1. 程式人生 > >簡述簽名驗簽

簡述簽名驗簽

曾經 疑惑 發出 計算 也會 自己的 加密技術 支持 說明

相信很多開發者開發項目時初次遇到簽名驗簽概念都會疑惑,簽名是怎麽實現的?如何驗簽?
要弄明白這兩個過程首先需要明確以下幾個基本概念:
1、密鑰對:在非對稱加密技術中,有兩種密鑰,即公鑰和私鑰。
2、公鑰:公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。
3、私鑰:用私鑰來解密公鑰加密的數據。
4、摘要:對需要傳輸的文本,做HASH運算。
5、簽名:使用私鑰對需要傳輸的文本摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。
6、簽名驗證:數據接收端拿到傳輸文本,但是需要確認該文本是否就是發送方發出的內容,中途是否曾經被篡改。因此接收方拿自己持有的公鑰對簽名進行解密,得到了文本的摘要,然後使用與發送方同樣的方法對文本計算摘要值,再與解密得到的摘要做對比,發現二者完全一致,則說明文本沒有被篡改過。
簽名驗簽過程簡述如下:
小明給小麗發送消息,小明先計算出消息的摘要,然後使用自己的私鑰加密消息摘要,被加密的消息摘要就是簽名。
小麗收到消息後,也會使用和小明相同的方法提取消息摘要,然後用小明的公鑰解密簽名,並與自己計算出來的消息摘要進行比較(這個過程,叫做"驗簽")。如果相同則說明消息是小明發送給小麗的。同時,小明也無法否認自己發送消息給小麗的事實。
這個過程中我們可以發現簽名驗簽過程的三個顯著特點:
(1)鑒權。公鑰加密系統允許任何人在發送信息時使用公鑰進行加密,簽名能夠讓信息接收者確認發送者的身份。
(2)完整性。發送方對要傳輸的數據做摘要,接收方接收到數據之後再做摘要並對比是否與發送方的結果一致,可以確定數據是否在線路上已經被篡改。
(3)不可抵賴。接收方可以通過數字簽名來防止所有後續的抵賴行為,因為接收方可以出示簽名給第三方來證明信息的來源。
數字簽名技術的實現方法:
數字簽名算法依靠公鑰加密技術來實現的。在公鑰加密技術裏,每一個使用者有一對密鑰:一把公鑰和一把私鑰。公鑰可以自由發布,但私鑰則秘密保存;還有一個要求就是要讓通過公鑰推算出私鑰的做法不可能實現。
LKT系列加密芯片支持國際上通用的對稱和非對稱算法以及數字簽名,還支持客戶移植算法以及程序。對於數據加密以及嵌入式版權保護數字簽名有需求的開發人員來說是一個的很好的選擇。

簡述簽名驗簽