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