數字簽名與數字加密的區別


軟件設計師教程在講加密技術和認證技術的時候,提到了數字簽名和數字加密,兩者還是有區別的,以下對兩者的主要過程做一個簡單介紹。

 

預備知識

對稱加密:

        對稱加密采用了對稱密碼編碼技術,特點是文件加密和解密使用的相同的密鑰,在密碼學中稱為對稱加密法。常用的對稱加密算法有:數據加密標准算法(Digital Encryption Standart, DES)、三重DES、RC-5、國際數據加密算法(International Data Encryption Adleman, IDEA)、高級加密標准算法(Advanced Encryption Standard, AES)。

非對稱加密:

  非對稱加密算法需要兩個密鑰:公開密鑰(Publickey) 和 私有密鑰(Privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只要用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。
  因為加密和解密使用的是兩個不同的密鑰,所以稱為非對稱加密算法。常用的非對稱加密算法:RSA(Rivest, Shamir and Adleman)。

Hash函數:

  Hash(哈希)函數提供了這樣一個計算過程:輸入一個長度不固定的字符串,返回一串固定長度的字符串,又稱Hash值。單向Hash函數用於產生信息摘要。
  信息摘要簡要地描述了一份較長的信息或文件,可以被看作一份長文件的“數字指紋”。信息摘要用於創建數字簽名,對於特定的文件而言,信息摘要是唯一的。常用算法有:MD5算法。

 

數字簽名

數字簽名主要經過以下幾個過程

1. 信息發送者使用一個單向散列函數(Hash函數)對信息生成信息摘要
2. 信息發送者使用自己的私鑰簽名信息摘要
3. 信息發送者把信息本身和已簽名的信息摘要一起發送出去
4. 信息接收者通過使用與信息發送者使用的同一個單向散列函數(Hash函數)對接收的信息本身生成新的信息摘要,再使用信息發送者的公鑰對信息摘要進行驗證,以確認信息發送者的身份和信息是否被修改過

過程圖示如下:

  

 

數字加密

數字加密主要經過以下幾個過程

1. 當信息發送者需要發送信息時,首先生成一個對稱密鑰,用該對稱密鑰加密要發送的報文
2. 信息發送者用信息接收者的公鑰加密上述對稱密鑰
3. 信息發送者將1、2步驟的結果結合在一起傳給信息接收者,稱為數字信封
4. 信息接收者使用自己的私鑰解密被加密的對稱密鑰,在用此對稱密鑰解密被發送方加密的密文,得到真正的原文

過程圖示如下:

  

 

總結

  數字簽名使用的是發送方的密鑰對,發送方用自己的私有密鑰進行加密,接收方用發送方的公開密鑰進行解密,這是一個一對多的關系,任何擁有發送方公開密鑰的人都可以驗證數字簽名的正確性;數字加密則使用的是接收方的密鑰對,這是多對一的關系,任何知道接收方公開密鑰的人都可以向接收方發送加密信息,只有唯一擁有接收方私有密鑰的人才能對信息解密。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM