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

簡述簽名驗籤

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