
1)具有消息摘要的數字簽名的步驟
下面給出具有消息摘要的數字簽名的實現步驟(包括數字簽名與驗證過程)
(1)將信息按散列算法核算得到一個固定位數的信息摘要值。在數學上確保:只需改動信息的任何一位,重新核算出的信息摘要就會與原先值不符。這樣就確保了信息的不可更改。
(2) 用發送者的私有密鑰對信息摘要值加密,生成密文即稱數字簽名。該數字簽名同原信息一同發送給接收者。
(3)接收方收到信息和數字簽名後,用相同的散列算法對信息計算摘要值,然後用發送者的公開密鑰對數字簽名進行解密,將解密後的結果與計算的摘要值相比較,若相等則報文的確來自發送者。
實現數字簽名也同時實現了對信息來源的簽別。但是,對傳送的信息M本身卻未保密。為了實現消息的保密性,發送方在生成信息的摘要後,把這個數字簽名作為要發送信息的附件和明文信息一同用接收方的公鑰進行加密,將加密後的密文一同發送給接收方。
2)具有保密性數字簽名的步驟
(1)運用單向散列算法對原始信息進行計算,得到一個固定長度的信息摘要。
(2)發送方用自己的私鑰加密的信息摘要,生成發送方的數字簽名。
(3)發送方把這個數字簽名作為要發送信息的附件和明文信息一起用接收方的公鑰加密,將加密後的密文一起發送給接收方。
(4)接收方把接收到的密文用自己的私鑰解密,得到明文信息和數字簽名,再用發方的公鑰對數字簽名進行解密,然後使用相同的單向散列函數來計算解密得到的明文信息,得到信息摘要。如果計算得出的信息摘要和發送方的信息摘要是相同的,這樣接收方就能承認數字簽名確實是發送方的,否則收到的信息是假造的或中途被篡改的。
