zoukankan      html  css  js  c++  java
  • 数字签名

    签名获取算法:

    1、 首先计算被签名数据T_DATA的SHA-1值H_DATA(20字节):SHA-1(T_DATA,H_DATA)

    2、 在H_DATA尾部填充随机数(n-20字节),得到和"RSA公钥/私钥"密钥长度(n字节)相同的H_BLOCK

    3、 用RSA私钥加密H_BLOCK,得到E_SIGN:RSA(H_BLOCK, RSA_VK, E_SIGN)

    4、 E_SIGN即为T_DATA的电子签名。T_DATA和E_SIGN一般会存放到一起,便于随时验证T_DATA的合法性和完整性。

     

    签名验证算法:

    1、 用RSA公钥解密E_SIGN,假设得到H_BLOCK1(长度位n字节)

    _RSA(E_SIGN, RSA_UK, H_BLOCK1)

    2、 计算被签名数据T_DATA的SHA-1值,假设输出为H_DATA1

    SHA1(T_DATA,H_DATA1)

    3、 比较H_DATA1和H_BLOCK1中的H_DATA,如果两者相等,则表示T_DATA是合法有效的;如果不相等,则可能是T_DATA或者E_SIGN被篡改了。

     

    (拥有PVK的才是合法的,必须保证PVK的绝对安全)

  • 相关阅读:
    class类文件具有错误的版本52.0,应为50.0
    git learn.
    git diff 命令用法
    vlan
    bridge
    Packet flow in l2(receive and transmit)
    /proc/uptime详解
    linux 内核数据结构之红黑树.
    linux 内核数据结构之 avl树.
    python学习.
  • 原文地址:https://www.cnblogs.com/utank/p/4583664.html
Copyright © 2011-2022 走看看