• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于雙重流水同步迭代的SM3算法高速硬件設(shè)計

      2020-04-20 11:48:48谷會濤武宗濤
      計算機與網(wǎng)絡(luò) 2020年2期
      關(guān)鍵詞:現(xiàn)場可編程門陣列

      谷會濤 武宗濤

      摘要:SM3算法是國家標準商用密碼雜湊算法,廣泛應用于數(shù)字簽名和驗證、消息認證碼的生成與驗證以及隨機數(shù)的生成等領(lǐng)域。介紹了SM3算法的基本流程,分析了SM3算法高速實現(xiàn)的3種方法,提出了基于雙重流水同步迭代的SM3算法高速硬件設(shè)計方法,進行了模擬驗證和FPGA設(shè)計實現(xiàn),給出了算法性能和綜合結(jié)果,結(jié)果表明所提方法具有較高的運算性能。

      關(guān)鍵詞:雜湊運算;SM3;高速設(shè)計;現(xiàn)場可編程門陣列

      中圖分類號:TN918.4文獻標志碼:A文章編號:1008-1739(2020)02-54-3

      0引言

      雜湊運算是不可逆的密碼運算過程,可將任意長度的數(shù)據(jù)信息變換成固定長度的數(shù)據(jù)輸出[1],在商用密碼中廣泛應用在數(shù)字簽名和驗證、消息認證碼的生成與驗證以及隨機數(shù)的生成等方面[2]。美國制定了安全雜湊算法(Secure Hash Algorithm,SHA)等系列標準,我國國家密碼管理局2010年公布了中國商用密碼雜湊算法標準SM3算法,該算法在SHA-256基礎(chǔ)上改進實現(xiàn),采用Merkle-Damgard結(jié)構(gòu),消息分組長度為512 bit,摘要值長度為256 bit[2]。

      SM3等密碼算法運算復雜,在計算機處理器上采用軟件實現(xiàn)SM3算法,性能難以滿足高速應用場景的使用需求。本文分析了SM3算法的實現(xiàn)原理,提出了一種高速實現(xiàn)方法,最后基于現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)進行了設(shè)計實現(xiàn),驗證了該方法的運算性能。

      1 SM3算法

      SM3算法標準約定,對于任意有限長度的消息,SM3算法可生成256 bit的雜湊值。SM3雜湊算法主要包括填充和迭代壓縮2個過程。

      ①將整個消息用1 bit1, bit0和64 bit消息長度進行填充,填充完畢的消息長度按512 bit對齊。消息填充后按512 bit進行分組,每個消息分組依次進行迭代壓縮運算。

      2 SM3算法實現(xiàn)方法

      SM3算法計算過程中,消息分組迭代壓縮過程計算較為復雜,實現(xiàn)邏輯直接影響算法的執(zhí)行效率。為了實現(xiàn)SM3快速運算,研究人員提出了多種FPGA迭代實現(xiàn)方法。SM3算法中,一個消息分組一般需要進行64輪運算,每輪運算包括消息擴展和壓縮函數(shù)2步運算。根據(jù)這2步運算的耦合程度和執(zhí)行順序,F(xiàn)PGA迭代實現(xiàn)方法可以分為順序迭代[3]、循環(huán)展開[4]和流水迭代[5]3種方法[6]。

      順序迭代方法如圖2所示,一個消息分組的輪運算串行執(zhí)行,每輪運算的消息擴展和壓縮函數(shù)運算也串行執(zhí)行。順序迭代實現(xiàn)方法控制簡單、實現(xiàn)方便。但如果將消息擴展和壓縮函數(shù)運算在一個時鐘周期內(nèi)完成,則導致硬件邏輯關(guān)鍵路徑較長,降低了時鐘頻率,進而影響運算速率。如果將消息擴展和壓縮函數(shù)運算劃分為2個時鐘周期執(zhí)行,則一個消息分組的運算需要128個時鐘周期左右,運算速率較低。

      循環(huán)展開方法如圖3所示,將消息分組的2輪消息進行擴展運算,2輪壓縮函數(shù)運算循環(huán)展開各放到一個時鐘周期執(zhí)行,因此可以將一個消息分組的運算時間降低到順序迭代方法的50%左右,一個消息分組的運算需要64個時鐘周期。如果將更多輪操作循環(huán)展開,運算時間還可以進一步壓縮。循環(huán)展開方法速率較高,但需要占用更多的硬件資源。由于一個時鐘周期完成的2輪壓縮函數(shù)運算存在相關(guān)性,必須串行執(zhí)行,因此單周期內(nèi)需要完成的運算更多,限制了整個算法實現(xiàn)的工作頻率。

      流水迭代方法如圖4所示,將消息擴展運算和壓縮函數(shù)流水實現(xiàn),且消息擴展運算與壓縮函數(shù)并行執(zhí)行。流水迭代方法控制簡單、實現(xiàn)方便,性能與循環(huán)展開方法相近,占用硬件資源較少。

      3雙重流水同步迭代技術(shù)設(shè)計與實現(xiàn)

      基于流水迭代方法,本文提出了SM3算法雙重流水同步迭代方法。該方法分別設(shè)計了消息擴展運算和壓縮函數(shù)運算2條流水線,并且第+1輪消息擴展運算和第輪壓縮函數(shù)運算同步執(zhí)行,2條流水線同步運算極大提升了數(shù)據(jù)塊運算效率。

      4 FPGA實現(xiàn)與性能評估

      本文基于雙重流水同步迭代方法,設(shè)計實現(xiàn)了SM3算法,采用ModelSim工具進行了功能驗證,采用標準給出的2組測試向量進行輸入,輸出結(jié)果與標準預期值相同。本文基于Xilinx公司XC7K325T芯片,采用ISE14.7進行了綜合實現(xiàn),綜合結(jié)果如表1所示,本文方法最高綜合頻率222 MHz。

      按此工作頻率設(shè)置測試用例,采用ModelSim工具對長消息進行運算,本文結(jié)構(gòu)性能達到約1 690 Mbps。表2給出了本文結(jié)構(gòu)與順序迭代方法、循環(huán)展開方法和流水迭代方法性能對比。從表中可以看出,文獻[3-4],算法硬件邏輯復雜、工作頻率較低,影響了計算性能。文獻[5]方法主頻和計算性能較高。不考慮器件選型的差異,相比這些方法,本文提出的方法在工作主頻和計算性能上最優(yōu)。

      5結(jié)束語

      本文介紹了SM3算法的基本運算步驟,分析了3種典型的SM3算法實現(xiàn)方法,提出了基于雙重流水同步迭代技術(shù)的SM3算法高速硬件設(shè)計方法。通過對本文方法進行模擬驗證和FPGA設(shè)計實現(xiàn),得出了算法性能和綜合結(jié)果。結(jié)果表明,本文提出的方法可獲得較高的工作頻率和算法性能。

      參考文獻

      [1]國家密碼管理局.GM/T 0004-2012 SM3密碼雜湊算法[S].北京:中國標準出版社,2012.

      [2]趙睿斌,楊紹亮,王毛路,等.基于商密體系的政務(wù)鏈解決數(shù)據(jù)安全共享交換的研究[J].信息安全與通信保密,2018,(5): 83-88.

      [3]王曉燕,楊先文.基于FPGA的SM3算法優(yōu)化設(shè)計與實現(xiàn)[J].計算機工程,2012,38(6):244-246.

      [4]周威,王博,張衛(wèi)東.SM3算法硬件實現(xiàn)研究與應用[J].電子測量技術(shù),2015,38(12):67-71.

      [5]劉宗斌,馬原,荊繼武,等.SM3哈希算法的硬件實現(xiàn)與研究[J].信息網(wǎng)絡(luò)安全,2011(9):191-193.

      [6]丁冬平,高獻偉.SM3算法的FPGA設(shè)計與實現(xiàn)[J].微型機與應用,2012,31(5):26-28.

      猜你喜歡
      現(xiàn)場可編程門陣列
      基于機器人的溫室大棚環(huán)境智能監(jiān)控系統(tǒng)
      一種PCI接口AFDX端系統(tǒng)模塊的設(shè)計與實現(xiàn)
      D—BLAST基帶系統(tǒng)的FPGA實現(xiàn)研究
      移動通信(2016年20期)2016-12-10 09:33:12
      雙目立體匹配算法的FPGA實現(xiàn)
      任務(wù)間通訊郵箱的硬件實現(xiàn)
      一種千兆以太網(wǎng)SerDes 接口與電接口的轉(zhuǎn)換方法
      卷積神經(jīng)網(wǎng)絡(luò)的FPGA并行結(jié)構(gòu)研究
      基于FPGA的遺傳算法在交通控制中的應用
      基于FPGA的顏色識別觸摸屏系統(tǒng)設(shè)計與實現(xiàn)
      基于FPGA的9/7小波變換算法實現(xiàn)
      光學儀器(2014年5期)2014-11-18 20:20:29
      密云县| 满洲里市| 当雄县| 怀来县| 鲁山县| 罗源县| 乌拉特中旗| 丹寨县| 嘉峪关市| 天水市| 沧源| 榆中县| 凤山市| 通道| 南投县| 镇坪县| 锦屏县| 偏关县| 静海县| 丰顺县| 温州市| 忻州市| 白银市| 宝丰县| 平顺县| 彩票| 毕节市| 长海县| 若羌县| 随州市| 罗城| 确山县| 揭东县| 安达市| 皋兰县| 绥棱县| 寻乌县| 米林县| 沛县| 田东县| 道真|