色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 快速實(shí)現(xiàn)SHA-1算法的硬件結(jié)構(gòu)

          快速實(shí)現(xiàn)SHA-1算法的硬件結(jié)構(gòu)

          作者: 時(shí)間:2012-10-16 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:安全散列是數(shù)字簽名等密碼學(xué)應(yīng)用中重要的工具。目前最常用的安全散列-1,它被廣泛地應(yīng)用于電子商務(wù)等信息安全領(lǐng)域。為了滿足應(yīng)用對(duì)安全散列算法計(jì)算速度的需要,該文提出了一種快速計(jì)算-1算法的。該方法通過(guò)改變、引入中間變量,達(dá)到縮短關(guān)鍵路徑的目的,進(jìn)而提高計(jì)算速度。這種在0.18Lm工藝下的ASIC實(shí)現(xiàn)可以達(dá)到3.9Gb/s的數(shù)據(jù)吞吐量,是改進(jìn)前的兩倍以上;它在FPGA上實(shí)現(xiàn)的性能也接近目前-1算法商用IP核的兩倍。

          本文引用地址:http://cafeforensic.com/article/189849.htm

          關(guān)鍵詞:集成電路設(shè)計(jì);安全散列算法(SHA-1);關(guān)鍵路徑;硬件結(jié)構(gòu)

          單向散列函數(shù)是密碼學(xué)中一種重要的工具,它可以將一個(gè)較長(zhǎng)的位串映射成一個(gè)較短的位串,同時(shí)它的逆函數(shù)很難求解。許多安全技術(shù)中都會(huì)用到單向散列函數(shù)的這種特殊性質(zhì),比如數(shù)字簽名、密碼保護(hù)、消息鑒別等。鑒于單向散列函數(shù)在密碼系統(tǒng)中的重要地位,密碼學(xué)家們?cè)O(shè)計(jì)了各種各樣的安全散列函數(shù)。目前最常用的散列函數(shù)是NIST于1995年頒布的安全散列算法SHA-1。

          SHA-1算法和之前的MD4、MD5等安全散列算法原理很接近,但是安全性更好。它可以通過(guò)一系列的迭代計(jì)算把任意長(zhǎng)度的比特串壓縮成長(zhǎng)度為160bit的位串。而且一般認(rèn)為它的這個(gè)計(jì)算過(guò)程在密碼學(xué)意義上是單向的,也就是說(shuō)很難找到兩個(gè)不同的位串可以壓縮成相同的160bit。到目前為止,還沒(méi)有對(duì)SHA-1有效的攻擊方法。

          由于SHA-1算法的良好特性,它被廣泛使用在諸如電子商務(wù)這樣的現(xiàn)代安全領(lǐng)域,尤其是被大量應(yīng)用于公鑰密碼系統(tǒng)的數(shù)字簽名中。目前幾乎所有相關(guān)密碼協(xié)議、標(biāo)準(zhǔn)或者系統(tǒng)中,都包括了SHA-1算法,其中比較著名的有SSL、IPSec和PKCS。在這些場(chǎng)合下,能否快速計(jì)算出消息的散列值直接影響到整個(gè)系統(tǒng)的處理能力。但是,由于SHA-1算法本身是一個(gè)很復(fù)雜的算法,計(jì)算量也較大,加上每次迭代都需要依賴上次的計(jì)算結(jié)果,因此不論是硬件還是軟件實(shí)現(xiàn),計(jì)算速度都很有限,這大大限制了算法的適用場(chǎng)合。

          本文提出一種新的硬件實(shí)現(xiàn)方法,通過(guò)改變迭代結(jié)構(gòu),達(dá)到縮短關(guān)鍵路徑的目的,進(jìn)而提高SHA-1的計(jì)算速度。

          SHA-1算法

          算法描述

          SHA-1算法能夠?qū)⑷我忾L(zhǎng)的輸入壓縮成160bit的輸出。但是,SHA-1算法中的基本迭代只能處理512bit的數(shù)據(jù)塊,因此為了處理任意長(zhǎng)度的數(shù)據(jù),首先需要將輸入的消息每512bit分成一塊,并且將最后一塊不足512bit的消息按一定規(guī)則補(bǔ)齊。(限于篇幅,SHA-1算法的詳細(xì)描述見(jiàn)文[1],下面是算法進(jìn)一步的簡(jiǎn)單描述。)

          分塊之后就可以對(duì)每塊消息按下述方法依次進(jìn)行處理。

          1)在5個(gè)中間變量H0、H1、H2、H3和H4中置入特定初值。

          2)對(duì)每塊消息依次執(zhí)行步驟a)到e)

          a)將512bit的消息塊分成16個(gè)32bit的字W0,W1,…,W15;

          b)For t=16 to 79l etWt=S1(W t-3W t-8

          W t-14

          W t-16);

          c)LetA=H0,B=H1,C=H2,D=H3,E=H4;

          d)For t=0 to 79 do

          i)teMP=S 5 (A)+f t(B,C,D)+E+Wt+Kt;

          ii)E=D;D=C;C=S30(B);B=A;A=TEMP;

          e)LetH0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E。

          所有消息塊處理完后得到的5個(gè)32bit變量H0到H4構(gòu)成了160bit的數(shù)據(jù),這就是SHA-1算法輸出的散列值。

          算法中使用了一些簡(jiǎn)單的邏輯函數(shù)和常數(shù),其中函數(shù)ft()和常數(shù)Kt分別為

          算法中S1(*)、S5(*)和S30(*)分別表示按位循環(huán)左移1bit、5bit和30bit。算子“∧”、“∨”、“”和“+”分別表示按位“與”、按位“或”、按位“異或”以及32bit整數(shù)加法。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉