哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Verilog硬件描述語(yǔ)言實(shí)現(xiàn)SHA-1算法的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:清華大學(xué)學(xué)報(bào)(自然科學(xué)版 ? 作者:黃諄,白國(guó)強(qiáng),陳弘 ? 2020-11-28 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單向散列函數(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ì)算量也較大,加上每次迭代都需要依賴(lài)上次的計(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ù)加法。

算法分析

從算法描述可以看出,SHA-1最核心的計(jì)算是一個(gè)計(jì)算5個(gè)中間變量的迭代:

An=S5(A n-1)+f n(B n-1,C n-1,D n-1)+

E+Wn+Kn,

Bn=A n-1,

Cn=S30(B n-1),

Dn=C n-1,

En=D n-1.

在硬件實(shí)現(xiàn)中,5個(gè)變量在一個(gè)周期內(nèi)同時(shí)由組合邏輯電路根據(jù)上次迭代的計(jì)算值產(chǎn)生,因此每次迭代所需要的時(shí)間是由最慢的計(jì)算過(guò)程決定。這樣一條最慢的計(jì)算路徑也就是所謂的關(guān)鍵路徑。如果完全按照SHA-1的原始算法進(jìn)行硬件設(shè)計(jì),那么很明顯的關(guān)鍵路徑是變量A的計(jì)算。在每次迭代過(guò)程中,計(jì)算變量A需要進(jìn)行4次32bit的整數(shù)加法和若干組合邏輯。這些計(jì)算一共需要的時(shí)間也就是算法硬件實(shí)現(xiàn)的最短周期。正是因?yàn)樽兞緼的計(jì)算比較復(fù)雜,造成SHA-1算法硬件實(shí)現(xiàn)的工作頻率難以提高。

因此,加快SHA-1硬件實(shí)現(xiàn)的計(jì)算速度關(guān)鍵就是改變迭代結(jié)構(gòu),從而縮短每次迭代過(guò)程的關(guān)鍵路徑。

硬件快速實(shí)現(xiàn)的新結(jié)構(gòu)

觀(guān)察算法可發(fā)現(xiàn),除了變量A以外,其他4個(gè)變量的計(jì)算都相當(dāng)簡(jiǎn)單。因此,如果將變量A的計(jì)算過(guò)程通過(guò)一定方式分解成若干并行的計(jì)算,那么就可以在不增加迭代次數(shù)的前提下,縮短整個(gè)計(jì)算的關(guān)鍵路徑。

出于這種目的,1997年A.Bosselaers等人對(duì)SHA-1算法的結(jié)構(gòu)進(jìn)行了分析,發(fā)現(xiàn)SHA-1算法的數(shù)據(jù)流圖可以分解成并行的7路數(shù)據(jù)處理,每路數(shù)據(jù)上一個(gè)周期只需一個(gè)基本操作:加法、“異或”或者循環(huán)移位。

在此關(guān)于SHA-1結(jié)構(gòu)結(jié)論的基礎(chǔ)上,本文通過(guò)引入中間變量的方法,將計(jì)算的關(guān)鍵路徑分解成若干個(gè)較短的路徑,從而達(dá)到加速硬件計(jì)算的效果。考慮到硬件實(shí)現(xiàn)中32bit整數(shù)加法的延時(shí)遠(yuǎn)遠(yuǎn)大于循環(huán)移位和普通邏輯運(yùn)算,所以分析關(guān)鍵路徑時(shí)只考慮加法的代價(jià),而忽略其他邏輯運(yùn)算的延時(shí)。

首先引入中間變量P n-1=fn(B n-1,C n-1,D n-1)+E n-1+Wn+Kn,那么可以得到An=S5(A n-1)+P n-1。也就是說(shuō),將第n次迭代的部分計(jì)算提前到第n-1次迭代中進(jìn)行計(jì)算。變形后,第n次迭代中A的計(jì)算只需要進(jìn)行一次32bit整數(shù)加法。

但是這種方式下,變量P的計(jì)算仍然需要依賴(lài)于同一次迭代中的其他變量,也就是說(shuō)在一次迭代中需要在計(jì)算完其他變量后才能計(jì)算出P,這樣的話(huà)計(jì)算的關(guān)鍵路徑還是沒(méi)有縮短。所以還要充分利用A到E5個(gè)變量之間的相互關(guān)系

B n-1=A n-2,

C n-1=S30(B n-2),

D n-1=C n-2,

E n-1=D n-2.

將P的計(jì)算變化為P n-1=f n(A n-2,S30(B n-2),C n-2)+D n-2+Wn+Kn。如此之后,第n-1輪的P值可以完全依賴(lài)于前一輪也就是第n-2輪的變量值計(jì)算而得。迭代計(jì)算的關(guān)鍵路徑就分裂成變量A和P兩路并行的計(jì)算。

類(lèi)似的再引入其他中間變量,不斷的分解關(guān)鍵路徑,最終的迭代可變形為

An=S5(A n-1)+P n-1,

Pn=f n+1(A n-1,S30(B n-1),C n-1)+Q n-1,

Qn= C n-1+R n-1,

Rn=W n+3+K n+3,

Bn=A n-1,

Cn=S30(B n-1)。

可以發(fā)現(xiàn)通過(guò)引入中間變量,使得計(jì)算變量A的關(guān)鍵路徑分解成A、P、Q、R的4路并行計(jì)算,所需要的4次加法平均在4個(gè)周期內(nèi)完成。這樣每次迭代過(guò)程中任何一個(gè)變量的計(jì)算最多只需要一次32bit整數(shù)加法和少量組合邏輯。在此基礎(chǔ)上,SHA-1算法可以通過(guò)如下方法來(lái)計(jì)算

1)將輸入的512bit消息分成16個(gè)字W0,W1, …,W15;

2)For t=16 to 79 let Wt=S1(W t-3

W t-8

W t-14

W t-16);

3)LetA=H0,B=H1,C=H2,D=H3;

4)LetP=f 0 (B,C,D)+E+W0+K0,Q=D+W1+K1,R=W2+K2;

5)Fort=0 to 79 do

a)TEMP=S5(A)+P;

b)P=f t+1(A,S30(B),C)+Q;

c)Q=C+R;

d)R=W t+3+K t+3;

e)B=A;C=S30(B);A=TEMP;

6)LetH0=H0+A,H1=H1+B,H2=H2+C,H3=H3+S30(A76),H4=H4+S30(A75)。

雖然引入中間變量的計(jì)算后,每塊數(shù)據(jù)需要額外增加一個(gè)預(yù)計(jì)算的步驟4),但是因?yàn)殛P(guān)鍵路徑得以縮短,整體硬件實(shí)現(xiàn)的速度仍然會(huì)大大提高。

實(shí)現(xiàn)結(jié)果

使用Verilog硬件描述語(yǔ)言按本文提出的優(yōu)化方法實(shí)現(xiàn)了SHA-1算法,并使用Synopsys Design Compiler在0.18Lm標(biāo)準(zhǔn)單元庫(kù)下綜合,得到表1中的結(jié)果。表1中還包括了文[6]的實(shí)現(xiàn)結(jié)果。文[6]同樣使用了0.18Lm工藝,但是實(shí)現(xiàn)SHA-1算法的方法仍然是傳統(tǒng)的直接計(jì)算ABCDE5個(gè)中間變量的方法。

表1ASIC實(shí)現(xiàn)結(jié)果比較

從前文的算法分析可以看出,傳統(tǒng)實(shí)現(xiàn)方法的關(guān)鍵路徑上有4次加法,如果把這4次加法按樹(shù)型組織,那么關(guān)鍵路徑的延時(shí)大約為3個(gè)32bit加法器的延時(shí);通過(guò)本文方法改進(jìn)后,關(guān)鍵路徑延時(shí)可以縮短為1個(gè)32bit加法器延時(shí)加上少量組合邏輯延時(shí)。因此理論上速度大約可以提高為傳統(tǒng)方法的2~3倍。從表1和使用傳統(tǒng)方法實(shí)現(xiàn)的文[6]對(duì)比可以發(fā)現(xiàn),實(shí)現(xiàn)結(jié)果和理論分析完全一致。改進(jìn)方法因?yàn)橛?jì)算中引入了中間變量,所以面積比傳統(tǒng)方法要略大;同時(shí)為了計(jì)算中間變量的初值,每塊數(shù)據(jù)也需要多兩個(gè)周期的計(jì)算。但是因?yàn)殛P(guān)鍵路徑得以明顯縮短,整體的計(jì)算速度大大提高,吞吐量達(dá)到傳統(tǒng)方法的兩倍以上。

通過(guò)縮短關(guān)鍵路徑加速SHA-1計(jì)算的方法不僅適用于ASIC設(shè)計(jì),而且一樣適用于基于FPGA的硬件設(shè)計(jì)。文[6,7]是目前常用的兩種SHA-1算法的商業(yè)IP核。使用本文提出的改進(jìn)方法在和文[6,7]同樣的FPGA芯片上(XilinxVirtex2II系列XC2V50025)實(shí)現(xiàn)SHA-1算法。具體結(jié)果以及和文[6,7]結(jié)果的對(duì)比見(jiàn)表2。

表2FPGA實(shí)現(xiàn)結(jié)果比較

結(jié)論

針對(duì)有理分式擬合中的保證生成二端口網(wǎng)絡(luò)無(wú)源性的問(wèn)題,本文提出了一種簡(jiǎn)單且有效的局部補(bǔ)償方法,其主要思想在于:在生成網(wǎng)絡(luò)的Y參數(shù)矩陣的對(duì)角元素上加上(相當(dāng)于并聯(lián))一個(gè)RLC串聯(lián)的濾波回路,使得該回路可以以恰好補(bǔ)償原網(wǎng)絡(luò)違反無(wú)源性條件的頻率段,而盡量少的引入誤差。經(jīng)過(guò)實(shí)驗(yàn)表明,該方法能很好的達(dá)到預(yù)期的目的,在保證無(wú)源性條件的同時(shí),能使引入的誤差限制在2%以?xún)?nèi)。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1664

    文章

    22497

    瀏覽量

    639002
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1277

    瀏覽量

    124931
  • 加法器
    +關(guān)注

    關(guān)注

    6

    文章

    183

    瀏覽量

    31542
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)如何使用Verilog硬件描述語(yǔ)言實(shí)現(xiàn)AES密碼算法?

    如何使用Verilog硬件描述語(yǔ)言實(shí)現(xiàn)AES密碼算法
    發(fā)表于 04-14 06:29

    Verilog硬件描述語(yǔ)言描述.

    本書(shū)簡(jiǎn)要介紹了Verilog硬件描述語(yǔ)言的基礎(chǔ)知識(shí),包括語(yǔ)言的基本內(nèi)容和基本結(jié)構(gòu) ,以及利用該語(yǔ)言在各種層次上對(duì)數(shù)字系統(tǒng)的建模方法
    發(fā)表于 03-27 23:44 ?101次下載

    VERILOG HDL硬件描述語(yǔ)言

    本書(shū)簡(jiǎn)要介紹了Verilog硬件描述語(yǔ)言的基礎(chǔ)知識(shí),包括語(yǔ)言的基本內(nèi)容和基本結(jié)構(gòu) ,以及利用該語(yǔ)言在各種層次上對(duì)數(shù)字系統(tǒng)的建模方法。書(shū)中列舉
    發(fā)表于 07-20 11:36 ?0次下載

    Verilog HDL硬件描述語(yǔ)言【書(shū)籍

    本書(shū)簡(jiǎn)要介紹了Verilog 硬件描述語(yǔ)言的基礎(chǔ)知識(shí),包括語(yǔ)言的基本內(nèi)容和基本結(jié)構(gòu),以及利用該語(yǔ)言在各種層次上對(duì)數(shù)字系統(tǒng)的建模方法。書(shū)中列舉
    發(fā)表于 07-02 14:55 ?124次下載

    verilog硬件描述語(yǔ)言課程講義

    verilog硬件描述語(yǔ)言課程講義
    發(fā)表于 05-21 15:01 ?33次下載
    <b class='flag-5'>verilog</b><b class='flag-5'>硬件</b><b class='flag-5'>描述語(yǔ)言</b>課程講義

    Verilog硬件描述語(yǔ)言參考手冊(cè)

    Verilog硬件描述語(yǔ)言參考手冊(cè),Verilog語(yǔ)法內(nèi)容介紹
    發(fā)表于 11-12 17:20 ?0次下載

    Verilog HDL硬件描述語(yǔ)言

    Verilog HDL硬件描述語(yǔ)言 有需要的下來(lái)看看
    發(fā)表于 12-29 15:31 ?0次下載

    Verilog硬件描述語(yǔ)言

    VHDL語(yǔ)言編程學(xué)習(xí)Verilog硬件描述語(yǔ)言
    發(fā)表于 09-01 15:27 ?0次下載

    Verilog HDL硬件描述語(yǔ)言

    Verilog HDL硬件描述語(yǔ)言,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-11 11:20 ?11次下載

    基于SHA-1算法硬件設(shè)計(jì)及實(shí)現(xiàn)(FPGA實(shí)現(xiàn)

    算法進(jìn)行深入研究,面向Xilinx K7 410T FPGA 芯片設(shè)計(jì)SHA-1算法實(shí)現(xiàn)結(jié)構(gòu),完成SHA-1
    發(fā)表于 10-30 16:25 ?4次下載
    基于<b class='flag-5'>SHA-1</b><b class='flag-5'>算法</b>的<b class='flag-5'>硬件</b>設(shè)計(jì)及<b class='flag-5'>實(shí)現(xiàn)</b>(FPGA<b class='flag-5'>實(shí)現(xiàn)</b>)

    基于Verilog硬件描述語(yǔ)言的IEEE標(biāo)準(zhǔn)硬件描述語(yǔ)言資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于Verilog硬件描述語(yǔ)言的IEEE標(biāo)準(zhǔn)硬件描述語(yǔ)言資料合集免費(fèi)下載:1995、2001、2005;Syst
    發(fā)表于 06-18 08:00 ?11次下載

    基于VHDL硬件描述語(yǔ)言實(shí)現(xiàn)CPSK調(diào)制的程序及仿真

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于VHDL硬件描述語(yǔ)言實(shí)現(xiàn)CPSK調(diào)制的程序及仿真。
    發(fā)表于 01-19 14:34 ?11次下載
    基于VHDL<b class='flag-5'>硬件</b><b class='flag-5'>描述語(yǔ)言實(shí)現(xiàn)</b>CPSK調(diào)制的程序及仿真

    如何使用VHDL硬件描述語(yǔ)言實(shí)現(xiàn)基帶信號(hào)的MPSK調(diào)制

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用VHDL硬件描述語(yǔ)言實(shí)現(xiàn)基帶信號(hào)的MPSK調(diào)制。
    發(fā)表于 01-19 14:34 ?2次下載
    如何使用VHDL<b class='flag-5'>硬件</b><b class='flag-5'>描述語(yǔ)言實(shí)現(xiàn)</b>基帶信號(hào)的MPSK調(diào)制

    Verilog硬件描述語(yǔ)言的學(xué)習(xí)課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog硬件描述語(yǔ)言的學(xué)習(xí)課件免費(fèi)下載。
    發(fā)表于 01-22 12:13 ?17次下載
    <b class='flag-5'>Verilog</b><b class='flag-5'>硬件</b><b class='flag-5'>描述語(yǔ)言</b>的學(xué)習(xí)課件免費(fèi)下載

    使用Verilog/SystemVerilog硬件描述語(yǔ)言練習(xí)數(shù)字硬件設(shè)計(jì)

    HDLBits 是一組小型電路設(shè)計(jì)習(xí)題集,使用 Verilog/SystemVerilog 硬件描述語(yǔ)言 (HDL) 練習(xí)數(shù)字硬件設(shè)計(jì)~
    的頭像 發(fā)表于 08-31 09:06 ?3124次閱讀
    岑溪市| 额敏县| 太仆寺旗| 寻甸| 潞西市| 连云港市| 兴山县| 应城市| 康平县| 静安区| 和林格尔县| 株洲市| 安阳县| 岱山县| 赞皇县| 中宁县| 遂宁市| 信丰县| 藁城市| 韩城市| 泸西县| 德安县| 左云县| 红原县| 原阳县| 精河县| 个旧市| 高安市| 苏尼特左旗| 陇南市| 崇阳县| 滦平县| 红安县| 敦煌市| 徐汇区| 天门市| 察雅县| 清远市| 卓资县| 宁陕县| 马龙县|