1. 程式人生 > >數字簽名工作原理

數字簽名工作原理

數字簽名 華為vpn 華為vpn學習指南

數字簽名是指發送方用自己的私鑰對數字指紋進行加密後所得的數據,其中包括非對稱密鑰加密和數字簽名兩個過程,在可以給數據加密的同時,也可用於接收方驗證發送方身份的合法性。采用數字簽名時,接收方需要使用發送方的公鑰才能解開數字簽名得到數字指紋。

數字指紋又稱為信息摘要,是指發送方通過HASH算法對明文信息計算後得出的數據。采用數字指紋時,發送方會將本端對明文進哈希運算後生成的數字指紋(還要經過數字簽名),以及采用對端公鑰對明文進行加密後生成的密文一起發送給接收方,接收方用同樣的HASH算法對明文計算生成的數據指紋,與收到的數字指紋進行匹配,如果一致,便可確定明文信息沒有被篡改。

數字簽名的加解密過程如圖

1-20所示。甲也要事先獲得乙的公鑰,具體說明如下(對應圖中的數字序號):

技術分享

1-20 數字簽名的加解密過程示意圖

1)甲使用乙的公鑰對明文進行加密,生成密文信息。

2)甲使用HASH算法對明文進行HASH運算,生成數字指紋。

3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。

4)甲將密文信息和數字簽名一起發送給乙。

5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。

6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。

7)乙使用HASH算法對還原出的明文用與甲所使用的相同HASH算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。

從以上數字簽名的加/解密過程中可以看出,數字簽名技術不但證明了信息未被篡改,還證明了發送方的身份。數字簽名和數字信封技術也可以組合使用。但是,數字簽名技術也還有一個問題,獲取到對方的公鑰可能被篡改,並且無法發現。

試想一下,如果攻擊者一開始就截獲了乙發給甲公鑰的文件,然後就可用貍貓換太子的方法更改乙的公鑰,最終可能導致甲獲得的是攻擊者的公鑰,而非乙的。

具體過程是這樣的:攻擊者攔截了乙發給甲的公鑰信息,用自己的私鑰對偽造的公鑰信息進行數字簽名,然後與使用甲的公鑰(攻擊者也已獲知了甲對外公開的公鑰)進行加密的、偽造的乙的公鑰信息一起發給甲。甲收到加密信息後,利用自己的私鑰可以成功解密出得到的明文(偽造的乙的公鑰信息),因為這個信息的加密就是用甲的公鑰進行的,並且也可以通過再次進行HASH運算驗證該明文沒有被篡改。此時,甲則始終認為這個信息是乙發送的,即認為該偽造的公鑰信息就是乙的,結果甲再利用這個假的乙的公鑰進行加密的數據發給乙時,乙肯定是總解密不了的。此時,需要一種方法確保一個特定的公鑰屬於一個特定的擁有者,那就是數字證書技術了。因為用戶接收到其他用戶的公鑰數字證書時可以在證書頒發機構查詢、驗證的。

【經驗之談】許多人分不清非對稱密鑰加密和數字簽名的區別,其實很好理解。非對稱加密用的是接收方的公鑰進行數據加密的,密文到達對方後也是通過接收方自己的私鑰進行解密,還原成明文,整個數據加密和解密過程用的都是接收方的密鑰;而數字簽名則完全相反,是通過發送方的私鑰進行數據簽名的,經簽名的數據到達接收方後也是通過事先告知接收方的發送方的公鑰進行解密,整個數據簽名和解密的過程用的都是發送方的密鑰。


以上內容摘自剛剛上市的華為官方著作——《華為VPN學習指南》,是國家十三五重點規劃圖書,是華為官方指定的ICT培訓教材!當當網、京東網等書店均可正式購買了!本書配套實戰視頻課程即將發布,敬請關註本人課程中心http://edu.51cto.com/lecturer/user_id-55153.html

技術分享

本文出自 “王達博客” 博客,轉載請與作者聯系!

數字簽名工作原理