熱度 12
相信很多開發(fā)者開發(fā)項目時初次遇到簽名驗(yàn)簽概念都會疑惑,簽名是怎么實(shí)現(xiàn)的?如何驗(yàn)簽?
要弄明白這兩個過程首先需要明確以下幾個基本概念:
1、密鑰對:在非對稱加密技術(shù)中,有兩種密鑰,即公鑰和私鑰。
2、公鑰:公鑰用來給數(shù)據(jù)加密,用公鑰加密的數(shù)據(jù)只能使用私鑰解密。
3、私鑰:用私鑰來解密公鑰加密的數(shù)據(jù)。
4、摘要:對需要傳輸?shù)奈谋荆鯤ASH運(yùn)算。
5、簽名:使用私鑰對需要傳輸?shù)奈谋菊M(jìn)行加密,得到的密文即被稱為該次傳輸過程的簽名。
6、簽名驗(yàn)證:數(shù)據(jù)接收端拿到傳輸文本,但是需要確認(rèn)該文本是否就是發(fā)送方發(fā)出的內(nèi)容,中途是否曾經(jīng)被篡改。因此接收方拿自己持有的公鑰對簽名進(jìn)行解密,得到了文本的摘要,然后使用與發(fā)送方同樣的方法對文本計算摘要值,再與解密得到的摘要做對比,發(fā)現(xiàn)二者完全一致,則說明文本沒有被篡改過。
簽名驗(yàn)簽過程簡述如下:
小明給小麗發(fā)送消息,小明先計算出消息的摘要,然后使用自己的私鑰加密消息摘要,被加密的消息摘要就是簽名。
小麗收到消息后,也會使用和小明相同的方法提取消息摘要,然后用小明的公鑰解密簽名,并與自己計算出來的消息摘要進(jìn)行比較(這個過程,叫做"驗(yàn)簽")。如果相同則說明消息是小明發(fā)送給小麗的。同時,小明也無法否認(rèn)自己發(fā)送消息給小麗的事實(shí)。
這個過程中我們可以發(fā)現(xiàn)簽名驗(yàn)簽過程的三個顯著特點(diǎn):
(1)鑒權(quán)。公鑰加密系統(tǒng)允許任何人在發(fā)送信息時使用公鑰進(jìn)行加密,簽名能夠讓信息接收者確認(rèn)發(fā)送者的身份。
(2)完整性。發(fā)送方對要傳輸?shù)臄?shù)據(jù)做摘要,接收方接收到數(shù)據(jù)之后再做摘要并對比是否與發(fā)送方的結(jié)果一致,可以確定數(shù)據(jù)是否在線路上已經(jīng)被篡改。
(3)不可抵賴。接收方可以通過數(shù)字簽名來防止所有后續(xù)的抵賴行為,因?yàn)榻邮辗娇梢猿鍪竞灻o第三方來證明信息的來源。
數(shù)字簽名技術(shù)的實(shí)現(xiàn)方法:
數(shù)字簽名算法依靠公鑰加密技術(shù)來實(shí)現(xiàn)的。在公鑰加密技術(shù)里,每一個使用者有一對密鑰:一把公鑰和一把私鑰。公鑰可以自由發(fā)布,但私鑰則秘密保存;還有一個要求就是要讓通過公鑰推算出私鑰的做法不可能實(shí)現(xiàn)。
LKT系列加密芯片支持國際上通用的對稱和非對稱算法以及數(shù)字簽名,還支持客戶移植算法以及程序。對于數(shù)據(jù)加密以及嵌入式版權(quán)保護(hù)數(shù)字簽名有需求的開發(fā)人員來說是一個的很好的選擇。
小屁孩123: 簽名驗(yàn)簽的過程,進(jìn)行了加解密運(yùn)算,這個過程是否影響了傳輸速度?
xiaoyuhzou1228: 文中說用公鑰加密的數(shù)據(jù)只能使用私鑰解密,那用私鑰加密的消息摘要是否只能用公鑰解密?