當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 這是為了讓您對(duì)哈希算法執(zhí)行過程中實(shí)際發(fā)生的事情有一個(gè)基本的了解。我使用SHA-512算法是為了幫助解釋哈希函數(shù)的內(nèi)部工作。 SHA-512是一種哈希算法,它對(duì)給定的數(shù)據(jù)執(zhí)行哈希函數(shù)。

這是為了讓您對(duì)哈希算法執(zhí)行過程中實(shí)際發(fā)生的事情有一個(gè)基本的了解。我使用SHA-512算法是為了幫助解釋哈希函數(shù)的內(nèi)部工作。

SHA-512是一種哈希算法,它對(duì)給定的數(shù)據(jù)執(zhí)行哈希函數(shù)。

哈希算法被廣泛應(yīng)用于網(wǎng)絡(luò)安全、數(shù)字證書甚至區(qū)塊鏈等領(lǐng)域。由于哈希算法在數(shù)字安全和密碼學(xué)中扮演著如此重要的角色,對(duì)于稱為SHA-512的哈希算法來說,這是一個(gè)易于理解的演練,包括一些基本和簡(jiǎn)單的數(shù)學(xué)知識(shí)以及一些圖表。它是一組稱為SHA-2的哈希算法的一部分,其中包括SHA-256,也用于比特幣區(qū)塊鏈的哈希算法。

在開始解釋SHA-512之前,我認(rèn)為有一個(gè)關(guān)于哈希值函數(shù)的特性的基本概念是很有用的。

哈希函數(shù)

哈希函數(shù)將一些數(shù)據(jù)作為輸入,并為輸入數(shù)據(jù)生成固定長(zhǎng)度的輸出(稱為哈希摘要)。然而,這個(gè)輸出應(yīng)該滿足一些有用的條件。

1. 均勻分布: 由于輸出哈希摘要的長(zhǎng)度是固定的,輸入大小可能會(huì)有所不同,因此很明顯,對(duì)于不同的輸入值,將會(huì)得到一些輸出值。即使是這樣,哈希函數(shù)也應(yīng)該是這樣的:對(duì)于任何輸入值,每個(gè)可能的輸出值都應(yīng)該是等可能的。也就是說,對(duì)于任何給定的輸入值,每個(gè)可能的輸出都有相同的可能性產(chǎn)生。

2. 固定長(zhǎng)度: 這應(yīng)該是不言自明的。輸出值都應(yīng)該是固定長(zhǎng)度的。例如,哈希函數(shù)的輸出大小可以是20個(gè)字符,也可以是12個(gè)字符,等等。SHA-512的輸出大小可以是512位。

3. 意見沖突: 簡(jiǎn)單地說,這意味著不存在任何不可能找到兩個(gè)不同的輸入哈希函數(shù),導(dǎo)致相同的輸出(哈希摘要)。

這是關(guān)于哈希函數(shù)的簡(jiǎn)單介紹?,F(xiàn)在讓我們看看SHA-512。

哈希算法- SHA-512

所以SHA-512分幾個(gè)階段工作。這些階段如下:

· 輸入格式

· 哈希緩沖初始化

· 消息處理

· 輸出

讓我們一個(gè)一個(gè)看。

1. 輸入格式:

SHA-512實(shí)際上不能散列任何大小的消息輸入,即它有輸入大小限制。這個(gè)限制是由它的結(jié)構(gòu)決定的,你可以在后面看到。整個(gè)格式化的信息基本上有三個(gè)部分:原始消息、填充位、原始消息的大小。它們的組合大小應(yīng)該是1024位的整數(shù)倍。這是因?yàn)楦袷交南⒈惶幚頌槊總€(gè)1024位的塊,因此每個(gè)塊應(yīng)該有1024位可以使用。

pic: original message》

填充位

接收輸入消息并向其添加一些填充位,以使其達(dá)到所需的長(zhǎng)度。用于填充的位只是帶有前導(dǎo)“1”(100,000…000)的“0”位。另外,根據(jù)算法,即使是1,也需要進(jìn)行填充。所以一個(gè)內(nèi)邊距只能是1。

總大小應(yīng)該等于128位,而不是1024的倍數(shù),因?yàn)槟繕?biāo)是將格式化的消息大小作為1024位的倍數(shù)(N x 1024)。

《pic:msg + pad》

帶有極限大小的消息

然后,附加算法的原始消息的大小。這個(gè)大小值需要用128位表示,這是SHA-512對(duì)其輸入消息有限制的唯一原因。

自原始消息的大小需要用128位表示,消息大小可以最多(212?1)位,也考慮到必要的單一填充,它最大的大小將(212?2)位。盡管這個(gè)極限存在,它實(shí)際上并不造成問題,因?yàn)閷?shí)際的限制是如此之高(212?2 = 680564733841876926926749214863536422910位)。

《pic:msg + pad + size》

帶有填充大小的消息,即填充位和消息的大小已被追加,剩下的是完全格式化的SHA-512算法輸入。

2. 哈希值值緩沖初始化:

該算法的工作方式是使用前一個(gè)塊的結(jié)果處理來自消息的每個(gè)1024位的塊?,F(xiàn)在,這給前1024位塊帶來了一個(gè)問題,它不能使用任何以前處理的結(jié)果。這個(gè)問題可以通過使用第一個(gè)塊的默認(rèn)值來解決,以便啟動(dòng)該進(jìn)程。(看一下倒數(shù)第二張圖)。

由于每個(gè)中間結(jié)果都需要用于處理下一個(gè)塊,因此需要將其存儲(chǔ)在某個(gè)地方以供以后使用。這將由哈希值值緩沖區(qū)來完成,它還將保存SHA-512整個(gè)處理階段的最后一個(gè)哈希值值摘要,作為這些“中間”結(jié)果的最后一個(gè)。

因此,用于啟動(dòng)每個(gè)1024位塊的鏈處理的默認(rèn)值也存儲(chǔ)在處理開始時(shí)的哈希值值緩沖區(qū)中。實(shí)際使用的值無關(guān)緊要,但是對(duì)于感興趣的人來說,使用的值是通過取前8個(gè)素?cái)?shù)(2,3,5,7,11,13,17,19)平方根的小數(shù)部分的前64位得到的。這些值稱為初始向量(IV)。

為什么是8個(gè)質(zhì)數(shù)而不是9個(gè)?因?yàn)楣V稻彌_區(qū)實(shí)際上由8個(gè)子部分(寄存器)組成,用于存儲(chǔ)它們。

《pic:IV》

哈希緩沖區(qū)和初始化向量值

3. 消息處理:

消息處理是在格式化的輸入上進(jìn)行的,每次取一個(gè)1024位的塊。實(shí)際的處理是通過使用兩個(gè)東西來進(jìn)行的:1024位塊和前一個(gè)處理的結(jié)果。

SHA-512算法的這一部分包括幾個(gè)“回合”和一個(gè)加法運(yùn)算。

《pic:格式化輸入1024位塊;n, H.n-1) = H.n 》

因此,使用“消息序列發(fā)生”將消息塊(1024位)擴(kuò)展為“Words”。準(zhǔn)確地說,是80個(gè)單詞,每個(gè)單詞的大小為64位。

Rounds

消息處理階段的主要部分可以認(rèn)為是Rounds。每個(gè)輪需要3個(gè)東西:一個(gè)單詞、上一輪的輸出和SHA-512常量。第一Word沒有可以使用其輸出的前一輪,因此它對(duì)前一個(gè)1024位塊使用前一個(gè)消息處理階段的最終輸出。對(duì)于格式化輸入的第一個(gè)塊(1024位)的第一輪,使用初始向量(IV)。

SHA-512常量是預(yù)先確定的值,每個(gè)常量用于消息處理階段的每個(gè)輪。同樣,這些不是很重要,但是對(duì)那些感興趣的人來說,它們是前80個(gè)素?cái)?shù)的立方根的小數(shù)部分的前64位。為什么是80個(gè)素?cái)?shù)?因?yàn)橛?0輪,每輪都需要一個(gè)常數(shù)。

一旦Round函數(shù)接受這3個(gè)東西,它就對(duì)它們進(jìn)行處理,并給出512位的輸出。重復(fù)80輪。在第80輪之后,它的輸出被簡(jiǎn)單地添加到前一個(gè)消息處理階段的結(jié)果中,以獲得此消息處理迭代的最終結(jié)果。

4. 輸出:

在1024位的每個(gè)塊通過消息處理階段(即該階段的最后一次迭代)之后,我們將得到原始消息的最后512位哈希值值。因此,每個(gè)塊的中間結(jié)果都用于處理下一個(gè)塊。當(dāng)最后的1024位塊完成處理后,我們就得到了原始消息的SHA-512算法的最終結(jié)果。

因此,我們從原始消息中獲得最終的哈希值。SHA-512是一組哈希算法的一部分,它們的工作方式非常類似,稱為SHA-2。SHA-256和SHA-384等算法與SHA-512一起屬于這一組。SHA-256也是比特幣區(qū)塊鏈中指定的哈希值函數(shù)。

這是SHA-512哈希算法工作原理的簡(jiǎn)要概述。我打算進(jìn)一步詳細(xì)說明是什么使得哈希函數(shù)實(shí)際上是不可逆的(單向的),以及這對(duì)數(shù)字安全有什么幫助。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉