(一)數字簽名基礎知識

1、數字加密技術git

1)         單鑰密碼體制/對稱密碼體制算法

指加密密鑰和解密密鑰爲同一密鑰的密碼體制,所以通訊雙方必須共同持有該密鑰。安全

DES、AES是一種對稱密碼體制加密

2)         雙鑰密碼體制/非對稱密碼體制/公開密鑰密碼體制blog

指加密密鑰和解密密鑰爲兩個不一樣密鑰的密碼體制;這兩個密鑰之間存在着互相依存關係,即其中任一個密鑰加密的信息只能用另外一個密鑰進行解密。字符串

RSA、DSA是一種公鑰密碼體制。get

3)         總結:hash

對稱密碼和公鑰密碼都須要保證密鑰的安全,不一樣之處在於密鑰的管理和分發上面。在對稱密碼中,必需要有一種可靠的手段將加密密鑰(同時也是解密密鑰)告訴給解密方;而在公鑰密碼體制中,這是不須要的。解密方只須要保證本身的私鑰的保密性便可,對於公鑰,不管是對加密方而言仍是對密碼分析者而言都是公開的,故無需考慮採用可靠的通道進行密碼分發。這使得密鑰管理和密鑰分發的難度大大下降了。it

4)         分清概念:加密和認證權限

加密是將數據資料加密,使得非法用戶即便取得加密過的資料,也沒法獲取正確的資料內容。其重點在於數據的安全性。

身份認證是用來判斷某個身份的真實性,確認身份後,系統才能夠依不一樣的身份給予不一樣的權限。其重點在於用戶的真實性。

二者的側重點是不一樣的。

5)         摘要算法

摘要算法,又叫做Hash算法或散列算法,是一種將任意長度的輸入濃縮成固定長度的字符串的算法(不一樣算法散列值長度不同),注意是「濃縮」而不是「壓縮」,由於這個過程是不可逆的。它的特色是:

a)         不一樣內容的文件生成的散列值必定不一樣;相同內容的文件生成的散列值必定相同。因爲這個特性,摘要算法又被形象地稱爲文件的「數字指紋」。

b)         無論文件多小(例如只有一個字節)或多大(例如幾百GB),生成的散列值的長度都相同。

 

2、數字簽名與數字信封

公鑰密碼體制在實際應用中包含數字簽名和數字信封兩種方式

1)         數字簽名

指用戶用本身的【私鑰】對原始數據的哈希摘要進行加密所得的數據。數字簽名定義兩種互補的運算:一個用於簽名,另外一個用於驗證。"私鑰簽名,公鑰驗證"

簽名:發送方用特殊的hash算法,由明文中產生固定長度的【摘要】,而後利用本身的私鑰對造成的摘要進行加密。

驗證:接受方利用發送方的公鑰解密被加密的摘要獲得結果A,而後對明文也進行hash操做產生摘要B.最後,把A和B做比較。此方式既能夠保證發送方的身份正確性,又能夠保證數據在傳輸過程當中不會被篡改。

數字簽名(Digital Signature)技術是不對稱加密算法的典型應用。保證信息傳輸的完整性、發送者的身份認證、防止交易中的抵賴發生。

2)         數字信封

數字信封的功能相似於普通訊封。普通訊封在法律的約束下保證只有收信人才能閱讀信的內容;數字信封則採用密碼技術保證了只有規定的接收人才能閱讀信息的內容。

數字信封中採用了單鑰加密體制和公鑰密碼體制。信息發送者首先利用隨機產生的【對稱密碼】加密信息(由於非對稱加密技術的速度比較慢),再利用接收方的【公鑰】加密對稱密碼,被公鑰加密後的對稱密鑰被稱之爲數字信封。在傳遞信息時,信息接收方要解密信息時,必須先用本身的私鑰解密數字信封,獲得對稱密碼,才能利用對稱密碼解密所獲得的信息。

數字信封既發揮了對稱加密算法速度快、安全性好的優勢,又發揮了非對稱加密算法密鑰管理方便的優勢。

3、應用示例

  1. 爲了保證信息傳送的真實性、完整性和不能否認性,須要對要傳送的信息進行數字加密和數字簽名。其傳送過程以下:

發送者A:

1)         A準備要傳送的數字信息(明文)

2)         A對數字信息(明文)進行哈希(hash)運算,獲得一信息摘要。

3)         A用本身的【私鑰(SK)】對信息摘要進行加密獲得A的數字簽名,並將其附在數字信息上。(數字簽名)

4)         A隨機產生一個加密鑰(DES密鑰),並用此密鑰對要發送的信息(明文)進行加密,造成密文。(對稱加密)

5)         A用B的【公鑰(PK)】對剛纔隨機產生的加密密鑰進行加密,將加密後的DES密鑰連同密文一塊兒傳送給B。(數字信封)

接收者B:

1)         B收到A傳送過來的密文和加過密的DES密鑰,先用本身的私鑰(SK)對加密的DES密鑰進行解密,獲得DES密鑰。

2)         B而後用DES密鑰對受到的密文進行解密,獲得明文的數字信息,而後將DES密鑰拋棄(即DES密鑰做廢)。

3)         B用A的公鑰(PK)對A的數字簽名進行解密,獲得信息摘要。

4)         B用相同的has算法對收到的明文再進行一次hash運算,獲得一個新的信息摘要。

5)         B將收到的信息摘要和新生成的信息摘要進行比較,若是一致,說明收到的信息沒有被修改過。

 

 

 

做者:滴答的雨 
出處:http://www.cnblogs.com/heyuquan/ 

相關文章
相關標籤/搜索