當(dāng)前位置:首頁>民俗> 52o1314心形小符號(hào)(心形符號(hào)大全 花樣符號(hào) 大號(hào))
發(fā)布時(shí)間:2026-01-22閱讀( 6)

根據(jù)昨天的討論,我們大概清楚了SHA-256算法在數(shù)字簽名過程中的重要性。

用三句話來概括一下昨天文章的要義:
1. SHA-256是一個(gè)安全的HASH算法,不管將什么作為輸入?yún)?shù),最終得到的結(jié)果總是一個(gè)包含256個(gè)二進(jìn)制位的數(shù)值。
2. 文本內(nèi)容的細(xì)微變更(哪怕是一個(gè)標(biāo)點(diǎn)符號(hào),空白格)都會(huì)對(duì)最終加密結(jié)果有著重大的影響。
3. 如果輸入的內(nèi)容一模一樣,那么用SHA-256函數(shù)來進(jìn)行加密總是能得到相同的最終加密結(jié)果。
正式由于SHA-256函數(shù)具備這些特性,才讓我們對(duì)他產(chǎn)生濃厚的興趣。
由于在下面的內(nèi)容中,我們又要頻繁的應(yīng)用到秘鑰的概念,這里再總結(jié)一下相關(guān)要義(但求易懂):
1. 秘鑰可以簡單理解為某一算法的輸入?yún)?shù),比如有一串?dāng)?shù):5201314,那么我們要現(xiàn)在給他加密,采用一個(gè)算法f(給每一位數(shù)字+2)=7423536. 這里f就可以理解為我們的加密算法即我們這里所說的SHA-256算法。這里的2就可以簡單的認(rèn)為是我們加密的秘鑰。
2. 如果加密的秘鑰和解密的秘鑰是相同的,則該類叫對(duì)稱加密法
3. 如果加密的秘鑰和解密的秘鑰是不相同的,那么該類就叫做非對(duì)稱加密法。在非對(duì)稱加密法中,用于加密的秘鑰叫做私鑰,用于解密的秘鑰叫做公鑰。私鑰只有加密的人自己知道,而公鑰則是公開的,目的是要能讓別人用公鑰去進(jìn)行解密。公鑰一般是將私鑰輸入某個(gè)算數(shù)計(jì)算出來的,由私鑰可以推導(dǎo)出公鑰,而反之則不能。
所以,我們又可以優(yōu)化一下我們之前討論的數(shù)字簽名了,前面我們說過:
SHA-256("小青欠小紅10000元")的結(jié)果當(dāng)做數(shù)字簽名(該結(jié)果是一個(gè)包含256位二進(jìn)制數(shù)的數(shù)值)。
但是,聰明的讀者朋友們,你們肯定可以猜想得到,這還不夠,一個(gè)前面不僅僅要滿足對(duì)應(yīng)性的需求,還要滿足可鑒別這個(gè)重要特性。
比如,當(dāng)一個(gè)人看到一個(gè)數(shù)字簽名之后,我們要確定這個(gè)是小青的簽名,而不是小紅,小剛,小明或者其他人的簽名。但是SHA-256函數(shù)是一個(gè)公開的算法,網(wǎng)上有很多的在線加密,解密的工具。
比如:SHA-256("小青欠小紅10000元")= 27848e760c837f0d3e31628b9f05196fd6694694d95ec158ea11f0610d5d3206。

用SHA-256函數(shù)雖然可以確保和內(nèi)容的對(duì)應(yīng)性,確保內(nèi)容不會(huì)被修改(如果被修改會(huì)導(dǎo)致加密結(jié)果的重大變化,詳細(xì)可參見前一天的文章"數(shù)字簽名")
但是,這樣仍然無法保證該條簽名是小青簽的,因?yàn)樾〖t,小剛,小明或者任何其他人都可以用SHA-256函數(shù)進(jìn)行加密得到相同的加密串。那如何來保證該條簽名是小青簽名的,而不是小紅,小剛,小李呢?
這里我們就用到了上面我們所說的非對(duì)稱加密的算法。大概的原理是這樣的:
小青用自己的私鑰加密(SHA-256("小青欠小紅10000元"))得到的結(jié)果就可以作為小青的簽名。
小青可以將自己的公鑰公布出來,這樣任意一個(gè)人就可以利用小青公布的公鑰對(duì)小青加密的內(nèi)容進(jìn)行驗(yàn)證了。
舉個(gè)簡單的例子:
小青用自己的私鑰加密(SHA-256("小青欠小紅10000元"))值加上自己的公鑰公布出來。
小紅可以利用小青公布出來的公鑰對(duì)小青的數(shù)字簽名進(jìn)行解密,得到一串hash值,然后小紅可以再用SHA-256("小青欠小紅10000元")計(jì)算得到的hash值和上面的hash值進(jìn)行對(duì)比,如果兩個(gè)hash值是相同的,那么可以說明兩個(gè)問題:
1. 這個(gè)簽名是小青簽署的,要不然不可能可以利用小青的公鑰對(duì)其解密。
2. 這個(gè)簽名的內(nèi)容是"小青欠小紅10000元",不然解密后的hash值不可能等于SHA-256("小青欠小紅10000元")
經(jīng)過這兩天的討論,我們可以歸納一下:
1. 數(shù)字簽名和簽名內(nèi)容的對(duì)應(yīng)性必須得到保證(這是用SHA-256函數(shù)來保證的)
2. 數(shù)字簽名必須可鑒別是誰簽名的(可以通過非對(duì)稱加密的私鑰,公鑰來進(jìn)行識(shí)別)
小伙伴們,你們聽懂了嗎?
每天學(xué)習(xí)一點(diǎn)點(diǎn),每天進(jìn)步一點(diǎn)點(diǎn),歡迎大家關(guān)注本頭條號(hào),共同學(xué)習(xí),共同進(jìn)步。
歡迎分享轉(zhuǎn)載→ http://m.avcorse.com/read-953864.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號(hào)-5 TXT地圖HTML地圖XML地圖