999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SHA算法的硬件設計與實現

2020-10-20 07:55:56張陽
科學與信息化 2020年17期

張陽

摘 要 本文先簡單介紹了一種用于消息認證的加密算法——SHA的原理,接著結合FPGA的硬件特性,重點闡述了一種用于安全協處理器中的SHA密碼芯片的方案設計及優化方法,最后給出了硬件實現過程和較好的測試結果。

關鍵詞 散列函數;安全散列算法;SHA

引言

Hash函數是把可變輸入長度串轉換成固定長度輸出串的一種函數。一個安全的hash函數必須滿足下面的條件:對任意長度的消息,產生固定長度的hash值;由消息到hash值的映射過程易于實現;由hash值反映射為原始消息是不可行的;欲構造任意兩個不同的明文,使其有相同的hash值,也是不可行的。常用的單向hash函數有MD5,SHA等,而SHA因其實現更簡單,安全性更高,而更為廣泛地應用于身份認證,數據完整性鑒別等方面。

SHA(Secure Hash Algorithm)由美國國家標準和技術協會(NIST)開發,于1993年作為聯邦信息處理標準(FIPS PUB 180)發表。SHA由麻省理工學院的Ron rivest開發,設計很近似于MD4模型,易于硬件實現。本文所述的SHA密碼芯片采用FPGA技術實現,主要應用于安全協處理器中[1]。

1 SHA算法原理

SHA對長度不超過264的消息產生160位的消息摘要輸出,其步驟如下:

(1)消息預處理。先填充附加位,使消息長度對512取模余448。即使信息已經達到需要的長度,也需進行填充,因此填充消息長度范圍是1至512。附加位為單個“1”和若干個“0”。按上述方式填充后,再填充64位原消息長度,使消息長度恰好是512的整數倍。

(2)SHA運算。其運算流程如圖1所示。圖中,CV為160位的hash值。先將其初始化為CV0,與對應的消息分組Y0作SHA運算后生成hash值CV1;再將CV1與Y1作SHA運算后生成CV2。共進行L次迭代運算后得到的CVL即為最終的hash函數值。

將CV用5個32位字(A,B,C,D,E)表示,其初始值CV0為如下16進制值:

A=67452301;B=EFCDAB89;C=98BADCFE;D=10325476;E=C3D2E1F0。

在圖1的SHA運算功能模塊中,先將Yi分為80個16位的子分組;再分別參與80輪迭代;最后將最終迭代結果的每個字與CVi的對應字作模232加法,從而生成CVi+1。

Y的子分組過程為:先將512位Y分為16個32位M t(t=0~15),再由此產生80個32位子分組W t(t=0~79)。產生方式如下:

W t=M t ,(t=0~15);

Wt=(M t-3⊕M t-8⊕M t-14⊕M t-16)<<1,(t=16~79)。

<<表示循環左移,+表示模232加,Ft與Kt隨t變化。

(3)輸出hash值。將進行L次SHA運算后得到的CVL緩存后輸出。

2 密碼芯片的方案設計

該SHA密碼芯片用于安全協處理器(PCI板)上,受外圍電路時鐘頻率和數據寬度限制。為使該設計芯片和外圍電路協調工作,可將SHA算法系統的設計方案分為如下三個模塊:消息預處理模塊、SHA算法實現模塊和hash值輸出模塊 [2]。SHA算法實現模塊是設計的核心模塊,主要完成SHA運算。根據其流程特點及硬件結構,進行如下設計和優化。

2.1 子分組W的生成

如上節所述,1次SHA運算需要80個32位子分組Wt,而在實際設計時,根據其產生規律和硬件結構,僅需16×32位的RAM和1個32位的寄存器即可。先將Wt(t=0~15)依次存于RAM中;而32位寄存器用以存儲從RAM中取出4個相應的Wt進行異或移位的值;此后,每個新的Wt均直接從該寄存器中直接讀取,并同時更新RAM中對應的Wt的值。因此,每個新的Wt的產生公式則變為:

wt <=(w(t mod 16) xor w((t+2)mod 16) xor w((t+8)mod 16) xor w((t+13)mod 16))<<1;

80個子分組Wt在經過上述5輪RAM循環寫操作后全部產生。而80個子分組Wt參與加密運算,即對RAM的讀操作,也與寫操作同時進行。經過上述處理,能最大程度地節約FPGA中寶貴的存儲資源,并能較好的簡化硬件操作的復雜度。

3.2 80輪迭代

由于80輪迭代的流程完全相同,故可以設計一個迭代模塊,再對其復用80次,每次迭代的輸出存入寄存器中,作為下一輪迭代的輸入,這樣可極大的優化FPGA的硬件資源。其中,循環移位運算硬件容易實現。Ft是關于B、C、D和t的非線性函數,可采用多路選擇器產生。在具體實現時,可將B、C、D參與運算的可能的結果預先以異步方式先算出,再由t作判斷,指定1路結果[3]。

3.3 模232加法運算

模232加法運算多次應用于SHA運算過程中,直接關系到密碼芯片的運算速度。考慮到模塊的復用性,所有的模加運算均采用4個8位分塊的超前進位加法器并接實現,其結構如圖4所示。

參考文獻

[1] 殷輝,胡曉宇.適用于家庭安全網關的HMAC SHA3算法的硬件設計[J].集成電路應用,2020,37(5):14-17.

[2] 房海松,司偉建.基于FPGA的二維譜峰搜索算法硬件架構設計[J].空天防御,2020,3(1):58-64.

[3] 谷會濤,武宗濤.基于雙重流水同步迭代的SM3算法高速硬件設計[J].計算機與網絡,2020,46(2):54-56.

主站蜘蛛池模板: 国产乱人伦AV在线A| 欧美国产另类| 国产美女自慰在线观看| 国产91小视频在线观看| 亚洲成人网在线播放| 欧美三级日韩三级| 美女免费精品高清毛片在线视| 中文字幕欧美日韩| 国产麻豆永久视频| 亚洲国产精品日韩欧美一区| 999国内精品久久免费视频| 国产小视频在线高清播放| 日韩欧美高清视频| 日韩毛片在线播放| 欧美日韩一区二区三| a级高清毛片| 91精品小视频| 国产人成在线观看| 自慰网址在线观看| 在线观看av永久| 亚洲欧美另类中文字幕| 国产高清无码麻豆精品| 亚洲午夜福利精品无码不卡| 亚洲欧洲日韩久久狠狠爱| 国产精品久久久久无码网站| 国产色婷婷视频在线观看| 国产午夜一级淫片| 国产尤物在线播放| 久久一日本道色综合久久| 亚洲精品欧美日本中文字幕| 国产精品视频公开费视频| 亚洲一区二区日韩欧美gif| 免费av一区二区三区在线| 成人一区在线| 亚洲日韩Av中文字幕无码| 岛国精品一区免费视频在线观看| 国产成人亚洲日韩欧美电影| 色悠久久综合| 免费毛片全部不收费的| 日韩无码视频专区| 丁香亚洲综合五月天婷婷| 久久久久国产精品熟女影院| 天天色综网| 一本无码在线观看| 视频在线观看一区二区| 亚洲香蕉伊综合在人在线| 欧美特级AAAAAA视频免费观看| 国产欧美日韩在线一区| 91www在线观看| 青青操视频免费观看| 日韩中文字幕亚洲无线码| 毛片在线区| 中文无码毛片又爽又刺激| 91麻豆精品国产高清在线| 亚洲无码精品在线播放| 一级爱做片免费观看久久| 熟女成人国产精品视频| 亚洲人成网站观看在线观看| 免费A级毛片无码无遮挡| 欧美一区福利| 亚洲伊人久久精品影院| 精品三级网站| 国产欧美一区二区三区视频在线观看| 国产麻豆精品在线观看| 亚洲第一成年人网站| 婷婷亚洲视频| 亚洲久悠悠色悠在线播放| 91在线免费公开视频| 尤物午夜福利视频| 亚洲国产成人久久77| 精品一区二区三区四区五区| 国产成人一区二区| 欧美亚洲一区二区三区导航| 国产噜噜在线视频观看| 日本a级免费| 欧美亚洲一区二区三区导航| 免费又黄又爽又猛大片午夜| 亚洲αv毛片| 在线日韩日本国产亚洲| 91九色最新地址| 国内嫩模私拍精品视频| 国产精品美女自慰喷水|