數字簽名

簽名獲取算法:算法

一、 首先計算被簽名數據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的絕對安全)

相關文章
相關標籤/搜索