數字簽名的過程詳解

1. 數字證書的概念

數字證書又叫“數字身份證”、“網絡身份證”,是由證書認證中心CA發放並經認證中心數字簽名,包含公開密鑰擁有者以及公開密鑰相關信息的一種電子文件,可以用來證明數字證書持有者的真實身份。數字證書的格式一般採用X.509國際標準。

2. 數字簽名的過程

用戶A將待發送的信息原文經散列函數運算生成摘要信息,並用自己的私有密鑰對摘要信息進行加密,將形成的密文和原文傳送給用戶B。用戶B接收到密文後,使用A的公開密鑰驗證密文,得到摘要信息,並按照約定的摘要算法對原文進行摘要運算,再將兩個摘要值進行比對,一致則表明數據未被篡改。

數字簽名實現了用戶的身份認證,保證了數據在傳輸過程中的完整性、和交易的不可否認性;但是,任何擁有發送方公開密鑰的人都可以驗證數字簽名的正確性,因此無法保證數據的機密性

3. 加密的過程

加密:A首先要用B的公鑰對信息原文進行加密,形成密文,發送給B;B在收到密文後用自己的私鑰進行解密,將密文恢復爲原文。該過程實現了信息的保密性以及對信息接收方B的認證

由於加密和數字簽名都只保證了信息在傳輸過程中的完整性、保密性、不可否認性和真實性的一部分,只有將兩者相結合才能實現所有安全特性

所以真正AB信息傳遞過程中,完整的情況如下:

A的行爲

1、A把信息原文進行哈希運算,得到信息的數字摘要

2、A用自己私鑰,採用非對稱加密算法,對數字摘要進行加密,得到數字簽名

3、A用對稱算法的密鑰,採用對稱算法,對信息原文和數字簽名和A的公鑰一起加密,得到加密信息

4、A用B的公鑰,採用非對稱算法,把對稱密鑰加密,形成信封。就像是對稱密鑰裝到了B公鑰加密的信封裏面

5、A把加密信息和數字信封一起發給B

B的行爲

1、B收到數字信息,用自己的私鑰解密信封,拿到對稱密鑰

2、B用對稱密鑰,把加密信息解密,得到信息原文和數字簽名和A的公鑰

3、B用A的公鑰解密數字簽名,得到數字摘要1

4、B將原文用同樣的哈希算法,得到數字摘要2

5、將摘要1和摘要2對比。如果相等,則原文沒有被修改,簽名是真實的

詳細圖解:
在這裏插入圖片描述

4. 數字簽名兩大特性

數字簽名,它的作用跟手寫簽名其實是一樣的,用來證明某個消息或者文件是本人發出/認同的,利用公鑰加密系統保證不可僞造和不可抵賴兩個特性。

不可僞造
其他人因爲沒有對應的私鑰,所以沒法生成公鑰可以解密的密文,所以是不可僞造的。

不可抵賴
又因爲公鑰對應的私鑰只有一個,所以只要能成功解密,那麼發消息的一定是你,不會是其他人,所以是不可抵賴的。

5. 用到的部分名詞解釋

消息摘要:

消息摘要就是將消息哈希轉換成一個固定長度的值唯一的字符串,該過程不可逆,基本上做不到通過消息摘要轉換成消息的。
實際應用中,由於直接對原消息進行簽名有安全性問題,而且原消息往往比較大,直接使用RSA算法進行簽名速度會比較慢,所以我們一般對消息計算其摘要(使用SHA-256等安全的摘要算法),然後對摘要進行簽名。只要使用的摘要算法是安全的(MD5、SHA-1已經不安全了),那麼這種方式的數字簽名就是安全的。

非對稱加密:

在通信雙方,如果使用非對稱加密,一般遵從這樣的原則:公鑰加密,私鑰解密。同時,一般一個密鑰加密,另一個密鑰就可以解密。
因爲公鑰是公開的,如果用來解密,那麼就很容易被不必要的人解密消息。因此,私鑰也可以認爲是個人身份的證明。
如果通信雙方需要互發消息,那麼應該建立兩套非對稱加密的機制(即兩對公私鑰密鑰對),發消息的一方使用對方的公鑰進行加密,接收消息的一方使用自己的私鑰解密。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章