《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > SM3算法的FPGA設計與實現
SM3算法的FPGA設計與實現
來源:微型機與應用2012年第5期
丁冬平,高獻偉
(北京電子科技學院 電子系,北京 100070)
摘要: 在分析SM3算法的基礎上詳細介紹了目前Hash函數的4種硬件實現策略,同時給出了迭代方式和基于充分利用時鐘周期的循環展開方式下的FPGA實現。該循環展開方式有效地減少了一半的工作時鐘數和11%的運算時間,吞吐量提高了11%,且占用的硬件資源較少。
Abstract:
Key words :

摘  要: 在分析SM3算法的基礎上詳細介紹了目前Hash函數的4種硬件實現策略,同時給出了迭代方式和基于充分利用時鐘周期的循環展開方式下的FPGA實現。該循環展開方式有效地減少了一半的工作時鐘數和11%的運算時間,吞吐量提高了11%,且占用的硬件資源較少。
關鍵詞: SM3;迭代方式;循環展開方式;FPGA;VHDL

 Hash函數是密碼學中最基本的模塊之一,在密碼學中扮演著極其重要的角色,廣泛應用于數字簽名、消息鑒別和偽隨機數生成器等領域,是近幾年密碼學研究的熱點領域[1]。
Hash函數是將任意長度的信息通過算法變成固定長度的輸出,且這個變換過程是不可逆的。Hash函數的不可逆特性使得攻擊者不能通過Hash值推出任何部分的原始信息。因為對于原始信息中的任意一個比特數據發生改變,其Hash值都將發生明顯變化。此外,Hash函數還具有碰撞約束性,即不能找到一個輸入使其輸出結果等于一個已知的輸出結果,或者不能同時找到兩個不同的輸入使其輸出結果完全一致。正是這些特性,使得Hash值可以用來驗證信息是否被修改。
1 SM3算法簡介
 為了滿足電子認證服務系統等應用需求,國家密碼管理局于2010年12月發布了SM3密碼Hash算法。該算法適用于商用密碼應用中的數字簽名和驗證、消息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。SM3算法能夠對任何小于264 bit的數據進行計算,輸出長度為256 bit的Hash值。
SM3算法包括預處理、消息擴展和計算Hash值三部分。預處理部分由消息填充和消息分組兩部分組成。首先將接收到的消息末尾填充一個“1”,再添加k個“0”,使得填充后的數據成為滿足Length=448 mod 512 bit的數據長度,再在末尾附上64 bit消息長度的二進制表示數,然后將消息分成512 bit的子塊,最后將每個512 bit的消息子塊擴展成132個字W0,W1,…,W67,W0′,W1′,…,W63′用于Hash值的計算。SM3算法計算流程圖如圖1所示。

 SM3算法的Hash運算主要是在壓縮函數部分,壓縮函數共包含64輪,每輪包括12步運算,64輪循環計算結束后,再將計算結果與輸入到本輪計算的初始數據進行異或運算,即上一次Hash運算的Hash值輸出Hi與輸入到本輪計算的初始數據異或得到本次Hash值輸出Hi+1。Hn即為最終的Hash值,H0為設計者提供的初始值IV。
2 Hash算法的硬件實現策略
 在通過FPGA編程實現Hash算法過程中,提高吞吐量以及減少硬件資源占用是衡量硬件實現算法的重要指標,高效率、低功耗以及面積優化設計都是FPGA設計中最受關注的方面。目前為止,Hash算法的FPGA實現策略大致有以下4種方式[1-2],如圖2所示。

?。?)迭代方式:該方式將單步運算的結果重新反饋到輸入端,在節約硬件資源的同時造成了較大的時延,雖然效率較低,但比較實用。
?。?)循環展開方式:該方式根據算法的具體特性,將多步運算合并成單步運算,以加大并行運算規模的方式來提高單步運算的效率。
?。?)流水線方式:該方式將所有單步運算全部在時鐘的控制下予以實現,每個時鐘均有輸出。全流水線時的吞吐量達到最高,但是硬件資源消耗相當大。由于Hash函數的運算特點,該方式很少在實際中使用。
?。?)混合方式:該方式實現的算法能在面積和速度上取得平衡。
3 SM3算法的FPGA實現
 由于SM3算法消息擴展部分的軟硬件實現的效率相差不大,因此本文著重討論該算法的計算部分在FPGA上的兩種實現方式。
3.1 迭代方式
 由于SM3算法的每輪計算過程大致相同,因此可以采用迭代方式實現。實現過程中,將存放常數Tj和IV的常量矩陣利用ROM結構實現。分析SM3算法的消息擴展和壓縮函數的計算過程與特點可以看出,預先通過組合邏輯計算全部W0,W1,…,W67,W0′,W1′,…,W63′的值需要消耗大量的硬件資源。而在每輪的壓縮函數計算過程中,只需使用相應的一組Wj和Wj′,因此便無需預先將W0,W1,…,W67,W0′,W1′,…,W63′值全部計算出來,可以利用時鐘的控制,在每次運算壓縮函數之前,預先計算將要被使用的一組Wj和Wj′,顯然這將使獲得每輪壓縮函數運算結果消耗2個時鐘周期。加上初始值的輸入、明文輸入以及Hash結果輸出共消耗的3個時鐘周期,采用迭代方式進行一次SM3算法需要消耗1+1+1+64×2=131個時鐘周期。
3.2 循環展開方式
 仔細分析SM3算法的運算過程及迭代方式實現SM3算法的設計過程可知,時間主要耗費在消息擴展和壓縮函數的計算上[3]。在SM3算法的迭代方式實現中,每輪壓縮函數的運算和消息擴展運算中均需消耗一個時鐘周期,尤其是在進行消息擴展過程中,每組Wj和Wj′計算量都比較小,利用一個時鐘周期去進行運算實在過于浪費。如果在一個時鐘周期里進行兩組Wj和Wj′的計算,同時把一個時鐘中本來只進行一輪壓縮函數的運算也增加到兩輪,這樣不僅能更充分地利用一個時鐘周期提高計算速度,而且整個SM3算法核心運算過程的時鐘消耗也將縮短到64個時鐘周期。
3.3 FPGA實現結果
 本文采用Altera公司Stratix II系列的EP2S90F1508C3芯片,以Quartus II 8.1為開發環境[4],采用硬件描述語言VHDL進行SM3算法的FPGA實現。SM3算法實現的整體結構可分為庫函數模塊和主程序模塊兩大模塊[1,5]。在SM3算法庫函數模塊中定義了6個左循環移位函數ROL7、ROL9、ROL12、ROL15、ROL19、ROLk和4個函數FF、GG、P0、P1,均用組合邏輯資源實現,常數Tj和IV的常量矩陣利用ROM結構實現。主程序中定義了實體端口(如圖3所示),編譯生成的模塊圖如圖4所示。用狀態機對運算過程進行控制,SM3算法的主程序中包含了s00、s01、s02、s03、s04和s05 6個狀態。

 以2010年12月國家密碼管理局發布SM3算法所附錄的運算示例中提供的數據為標準,將實驗仿真所得到的計算數據與該標準進行對照,對于一個512 bit分組和兩個512 bit分組,采用迭代方式實現和采用循環展開方式實現均計算出了正確的Hash值“66c7f0f4 62eeedd9 d1f2d46b dc10e4e2 4167c487 5cf2f7a2 297da02b 8f4ba8e0”和“debe9ff9 2275b8a1 38604889 c18e5a4d 6fdb70e5 387e5765 293dcba3 9c0c5732”。實驗仿真結果分別如圖5~圖8所示。

 

 

 表1比較了兩種實現方式下的硬件資源占用、工作主頻、所需時鐘數、計算時間及吞吐量。由表1可得,循環展開方式的吞吐量是迭代方式的1.11倍,即工作效率提高了11%,循環展開方式的計算時間為迭代方式的0.9倍,即時間消耗減少了11%。

 本文成功將SM3算法進行了FPGA實現,并將基于充分利用時鐘周期的循環展開方式與迭代方式實現的SM3算法相比較,雖然硬件資源占用有所增加,但其時間消耗減少了11%,吞吐量提高了11%。由此可見,對于SM3算法的實現,采用循環展開方式比完全的迭代方式效率更高,時間消耗更少,而占用資源的增加與取得的收效相比并不算多,這對追求高效率、低資源消耗的移動設備至關重要。
參考文獻
[1] 高獻偉,路而紅.密碼算法FPGA實現技術[M].北京:西苑出版社,2010.
[2] RODRIGUEZ-HENRIQUEZ R. SAQIB N A, Díaz Pérez A, et al . Cryptographic Algorithms on reconfigurable hardware[M]. Springer, 2006:189-220.
[3] 曾旭,高獻偉,路而紅,等.HASH算法MD5的高速實現[J].成都信息工程學報,2009,24(2):129-132.
[4] 李洪偉,袁斯華.基于Quartus II的FPGA/CPLD設計[M].北京:電子工業出版社,2006.
[5] 劉欲曉,方強.EDA技術與VHDL電路開發應用實踐[M].北京:電子工業出版社,2009.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲视频狠狠| 亚洲乱码精品一二三四区日韩在线| 亚洲老板91色精品久久| 久久在线播放| 欧美性大战久久久久久久蜜臀| 国产精品jvid在线观看蜜臀| 国产一区二区三区在线观看网站| 国产精品你懂的在线欣赏| 国产精品入口福利| 国产日产亚洲精品| 亚洲男人第一网站| 日韩一级片网址| 久久久www成人免费精品| 欧美日韩国产麻豆| 欧美.com| 欧美精品日韩综合在线| 久久久高清一区二区三区| 国产日本亚洲高清| 在线亚洲精品| 亚洲视频你懂的| 国产一区二区按摩在线观看| 国产精品久久久久天堂| 国产精品国产自产拍高清av王其| 久久九九免费| 欧美一区二区三区免费看| 亚洲国产专区校园欧美| 亚洲影院色在线观看免费| 在线精品一区| 国产精品毛片| 国产精品视频福利| 亚洲天堂av高清| 亚洲电影免费观看高清完整版| 日韩视频永久免费观看| 亚洲午夜视频| 很黄很黄激情成人| 久久久久**毛片大全| 久久免费视频观看| 久久综合色8888| 亚洲精品久久久久久久久久久久| 亚洲午夜极品| 一区在线播放视频| 亚洲香蕉网站| 欧美日韩日日夜夜| 久久激情五月丁香伊人| 欧美色精品天天在线观看视频| 欧美日韩午夜在线视频| 国产精品99久久久久久久vr| 久久免费精品日本久久中文字幕| 欧美午夜理伦三级在线观看| 亚洲伊人一本大道中文字幕| 你懂的网址国产 欧美| 黑人巨大精品欧美一区二区| 亚洲欧洲日本专区| 欧美综合国产精品久久丁香| 亚洲视频999| 亚洲网站在线| 狠狠色狠狠色综合日日五| 1024日韩| 国产精品精品视频| 国产一在线精品一区在线观看| 国产主播一区二区三区| 国产精品自拍一区| 国产精品福利片| 亚洲精品国精品久久99热| 日韩午夜电影av| 麻豆国产精品一区二区三区| 国产精品素人视频| 国产精品一区在线播放| 亚洲性感激情| 欧美成人免费播放| 亚洲精品字幕| 久久久久久九九九九| 国内精品写真在线观看| 蜜臀久久99精品久久久画质超高清| 亚洲福利专区| 亚洲高清视频的网址| 亚洲国产精品嫩草影院| 亚洲国产精品美女| 亚洲欧美日韩另类精品一区二区三区| 亚洲国产精品一区二区三区| 一区二区三区偷拍| 亚洲一区三区电影在线观看| 欧美日韩精品综合| 欧美成人午夜激情视频| 在线电影欧美日韩一区二区私密| 性欧美1819sex性高清| 亚洲大胆美女视频| 欧美一区二区观看视频| 亚洲伦理久久| 久久综合中文色婷婷| 国产日韩欧美日韩大片| 国产伦精品一区二区三区高清| 亚洲网站啪啪| 欧美日本在线播放| 亚洲伦理网站| 亚洲中无吗在线| 国产精品99久久久久久宅男| 国模 一区 二区 三区| 久久久久久国产精品一区| 久久天天狠狠| 久久久午夜电影| 激情久久综艺| 国产日韩1区| 国产精品一区二区久久国产| 欧美成人一区二区在线| 国产欧美日韩伦理| 亚洲视频电影在线| 欧美日韩免费一区二区三区视频| 欧美在线看片| 国产精品区免费视频| 一本高清dvd不卡在线观看| 国产伦精品一区二区三| 亚洲国产精品999| 国产女主播视频一区二区| 国产精品久久久久久久久久久久| 黄色成人小视频| 欧美视频二区36p| 欧美精品一区二区蜜臀亚洲| 国产精品日韩一区二区三区| 欧美成人首页| 欧美国产日韩在线| 亚洲破处大片| 午夜精品偷拍| 久久久精品网| 欧美欧美天天天天操| ●精品国产综合乱码久久久久| 亚洲激情电影在线| 欧美一区二区三区在线观看| 欧美日韩免费区域视频在线观看| 亚洲桃花岛网站| 在线日韩中文| 午夜精品久久久久久久蜜桃app| 国产日韩av在线播放| 日韩香蕉视频| 国产一区二区精品在线观看| 欧美精品少妇一区二区三区| 亚洲主播在线播放| 国产精品福利在线观看网址| 欧美国产国产综合| 久久国产精品久久久久久电车| 欧美母乳在线| 久久精品一本久久99精品| 亚洲精品一区在线| 国产精品va| 揄拍成人国产精品视频| 亚洲日本电影在线| 亚洲欧美日韩在线一区| 亚洲一区亚洲二区| 狠狠色综合色区| 国产一区91精品张津瑜| 亚洲欧美成人在线| 在线精品国精品国产尤物884a| 国产精品手机视频| 欧美激情精品久久久久| 欧美ab在线视频| 国产精品久久二区二区| 亚洲欧美成人一区二区三区| 欧美日韩精品免费观看视一区二区| 久久精品1区| 欧美国产先锋| 欧美日韩一区二区三区四区在线观看| 99精品国产一区二区青青牛奶| 一本大道久久精品懂色aⅴ| 国产伦精品一区二区三| 久久精品免费电影| 亚洲一区3d动漫同人无遮挡| 欧美日韩综合网| 激情久久久久久久| 激情亚洲一区二区三区四区| 欧美成人精品一区二区| 国产精品久久中文| 亚洲一区二区免费| 亚洲欧美国产精品桃花| 欧美成人午夜视频| 久久久久九九视频| 欧美一区二区三区日韩| 国产精品青草久久| 在线精品高清中文字幕| 欧美午夜不卡影院在线观看完整版免费| 亚洲国产日韩综合一区| 国产精品男女猛烈高潮激情| 久久精品欧洲| 在线日本高清免费不卡| 夜夜嗨av一区二区三区网站四季av| 亚洲人成在线播放网站岛国| 国产欧美一区二区三区久久| 国产精品久久久久久久久久久久| 激情综合自拍| 小黄鸭精品密入口导航| 另类酷文…触手系列精品集v1小说| 欧美日韩成人激情| 欧美刺激午夜性久久久久久久| 国产精品区一区二区三区| 亚洲欧美成人| 欧美日韩精品国产| 久久青青草综合| 国产精品成人在线| 国产欧美日韩一区二区三区在线观看| 久久av一区二区三区亚洲| 欧美freesex交免费视频| 欧美午夜精品一区二区三区| 国产伦精品一区二区三区照片91| 亚洲综合不卡| 国产一区深夜福利| 激情国产一区| 欧美精品一区二区高清在线观看| 99re成人精品视频| 亚洲一区二区三区乱码aⅴ| 欧美午夜女人视频在线| 欧美日韩午夜激情| 亚洲欧洲一级| 99re6这里只有精品视频在线观看| 欧美成人亚洲成人| 久久成人免费视频| 亚洲国产高清一区| 亚洲欧美另类在线| 国产精品男人爽免费视频1| 欧美日韩国产一区二区三区地区| 欧美三日本三级少妇三99| 欧美一区二区三区久久精品茉莉花| 亚洲午夜高清视频| 麻豆久久久9性大片| 久久综合亚州| 亚洲国产婷婷| 亚洲电影免费观看高清完整版| 亚洲精品一线二线三线无人区| 亚洲成人在线网| 亚洲欧美网站| 国产农村妇女精品一区二区| 尤物精品在线| 欧美日韩大片| 国产精品99久久99久久久二8| 亚洲国产天堂久久国产91| 亚洲欧洲在线免费| 香蕉久久一区二区不卡无毒影院| 亚洲永久免费视频| 国产精品99一区二区| 国模私拍一区二区三区| 国产精品久久久一区二区| 欧美成人乱码一区二区三区| 久久美女艺术照精彩视频福利播放| 亚洲激情亚洲| 在线成人中文字幕| 最新69国产成人精品视频免费| 一本一本久久| 香港成人在线视频| 欧美精彩视频一区二区三区| 国产精品麻豆成人av电影艾秋| 久久久精品国产99久久精品芒果| 久久影音先锋| 久久免费国产精品| 国产精品99免视看9| 欧美日韩一区二区三区四区五区| 欧美色视频在线| 亚洲国产成人tv| 欧美激情亚洲精品| 欧美一级黄色录像| 欧美成黄导航| 国内综合精品午夜久久资源| 久久夜色精品亚洲噜噜国产mv| 国产日韩欧美在线| 激情六月综合| 国产视频丨精品|在线观看| 亚洲欧美不卡| 欧美性大战xxxxx久久久| 老司机aⅴ在线精品导航| 国语精品一区| 亚洲人成网站在线观看播放| av成人免费在线| 午夜精品偷拍| 欧美成人亚洲成人| 欧美日韩妖精视频| 国产一区二区三区最好精华液| 欧美一级淫片播放口| 在线精品一区| 亚洲高清中文字幕| 麻豆视频一区二区| 精东粉嫩av免费一区二区三区| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美日韩成人高清在线一区| 亚洲电影av| 久久久女女女女999久久| 日韩视频在线播放| 久久精品视频亚洲| 欧美日韩国产va另类| 久热精品视频在线| 国产精品实拍| 99精品视频免费观看视频| 国产亚洲精品久久久久婷婷瑜伽| 欧美日韩在线精品一区二区三区| 欧美日韩午夜在线视频| 在线免费观看一区二区三区| 亚洲电影自拍| 欧美日韩八区| 亚洲毛片一区二区| 精品96久久久久久中文字幕无| 欧美精品日韩一区| 欧美激情欧美狂野欧美精品| 性欧美18~19sex高清播放| 亚洲一区二区三区视频播放| 欧美一区亚洲| 亚洲视频你懂的| 欧美一级淫片播放口| 伊人成人网在线看| 午夜精彩视频在线观看不卡| 国产在线乱码一区二区三区| 国产精品久久久久秋霞鲁丝| 91久久精品www人人做人人爽| 国精品一区二区三区| 国产精品视频一二三| 欧美美女视频| 亚洲一卡二卡三卡四卡五卡| 亚洲美女av网站| 欧美成人乱码一区二区三区| 欧美色综合天天久久综合精品| 欧美日本高清视频| 欧美日韩一区综合| 欧美风情在线观看| 亚洲香蕉在线观看| 欧美激情一区二区三区全黄| 免费人成精品欧美精品| 午夜精品久久久久久久白皮肤| 欧美夫妇交换俱乐部在线观看| 亚洲激情第一页| 国内揄拍国内精品久久| 国产视频一区二区三区在线观看| 欧美国产日韩视频| 红桃视频国产一区|