数字签名

签名获取算法:算法

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

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

三、 用RSA私钥加密H_BLOCK,获得E_SIGN:RSA(H_BLOCK, RSA_VK, E_SIGN)spa

四、 E_SIGN即为T_DATA的电子签名。T_DATA和E_SIGN通常会存放到一块儿,便于随时验证T_DATA的合法性和完整性。随机数

 

签名验证算法:数据

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

_RSA(E_SIGN, RSA_UK, H_BLOCK1)解密

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

SHA1(T_DATA,H_DATA1)

三、 比较H_DATA1和H_BLOCK1中的H_DATA,若是二者相等,则表示T_DATA是合法有效的;若是不相等,则多是T_DATA或者E_SIGN被篡改了。

 

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

相关文章
相关标签/搜索