《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 一種高能效的Keccak算法ASIC設計與實現
一種高能效的Keccak算法ASIC設計與實現
2019年電子技術應用第10期
庹 釗,陳 韜,李 偉,南龍梅
解放軍戰略支援部隊信息工程大學 密碼工程學院,河南 鄭州450001
摘要: 設計并實現了能同時支持SHA3四種模式的Keccak算法完整硬件電路。在對海綿結構和Keccak算法詳細分析的基礎上,將電路結構劃分為并行執行的填充模塊和置換模塊,減少了算法執行的時鐘周期。在所設計的Keccak算法硬件電路基礎上,從能效角度對三種現有置換函數實現結構進行了比較分析。在65 nm工藝庫下進行綜合, SHA3-256標準下單位面積性能達到0.55 Mbps/gate,相較現有結構能效提高了約52%。
中圖分類號: TN402
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190522
中文引用格式: 庹釗,陳韜,李偉,等. 一種高能效的Keccak算法ASIC設計與實現[J].電子技術應用,2019,45(10):40-44,49.
英文引用格式: Tuo Zhao,Chen Tao,Li Wei,et al. Design and implementation of an energy-efficient Keccak algorithm ASIC[J]. Application of Electronic Technique,2019,45(10):40-44,49.
Design and implementation of an energy-efficient Keccak algorithm ASIC
Tuo Zhao,Chen Tao,Li Wei,Nan Longmei
Cryptography College,Information Engineering University,Zhengzhou 450001,China
Abstract: The complete hardware circuit of Keccak algorithm which can support the four modes of SHA3 is designed and implemented. Based on the detailed analysis of the sponge functions and Keccak algorithm, the modular idea is used to divide the circuit structure into parallel filling modules and replacement modules, which reduces the clock cycle of task execution. Based on the designed Keccak algorithm hardware circuit as the basic structure, the three existing permutation function implementation structures are compared and analyzed from the aspect of energy efficiency. Integrated under the 65 nm process technology library, the SHA3-256 standard energy efficiency reaches 0.55 Mbps/gate, which is about 52% more energy efficient than existing structures.
Key words : Keccak;sponge function;SHA3;ASIC;energy-efficient

0 引言

    2012年10月,Keccak[1]算法被美國NIST選為SHA3[2](Secure Hash Algorithm 3)的標準算法。Keccak算法具有加密速度快、散列值位分布均勻、抗碰撞性強等特點,并且較其他雜湊算法具有更好的硬件實現性能,因此Keccak算法得到了廣泛關注。

    目前關于Keccak算法硬件實現的研究中,對填充過程的設計和完整算法電路的分析較少,如文獻[3]對算法結構的分析只基于了置換過程而沒有考慮填充過程;并且這類研究聚焦于算法的實現性能而沒有考慮面積資源,如文獻[4]采用流水線實現置換過程,文獻[5]、[6]將寄存器插入置換過程間減少關鍵路徑,文獻[7]串聯多級置換運算單元,這些提高性能方式都是以面積資源的增加為代價。

    本文通過分析Keccak完整算法流程,以32 bit作為輸入數據位寬,對算法數據填充和狀態置換過程設計獨立的模塊,簡化了控制結構的復雜度,實現了加密過程中的數據填充與置換過程的并行執行;通過分析和實驗結果可知,本文設計的結構平衡了性能和資源消耗,并具有較高的能效

1 Keccak算法過程描述

    Keccak算法是基于海綿結構設計的雜湊算法,海綿結構具有可變長度輸入和任意長度輸出。

1.1 海綿結構

    海綿結構使用置換f建立具有可變輸入長度和任意輸出長度的函數[f,pad,r],置換f對固定數量的比特進行操作,其位寬為b。

    如圖1所示,海綿結構的置換過程分為吸收階段和擠壓階段。

wdz1-t1.gif

    吸收階段:輸入信息M根據規則pad進行填充后得到信息P,然后將P按照r bit長度劃分成消息分組M0,M1,…,Mn-1。M0與置換的初始狀態(初始狀態為全0)的前r bit進行異或,后c bit保持不變,將得到的b(b=r+c)比特狀態信息輸入到置換函數f;在吸收階段后續的每個置換函數f的輸入都是當前消息分組Mi與上個置換函數f的輸出前r bit異或得到的結果。當最后一個消息分組Mn-1進入置換函數產生結果后,吸收階段結束。

    擠壓階段:根據使用者所需要的輸出信息Z,從b bit狀態信息的前r bit進行截取;當所需輸出長度|Z|>r,首先將當前狀態信息的前r bit截取,然后將當前狀態數據輸入到置換函數f,從函數結果截取r bit,直到達到使用者所需的輸出長度后,擠壓階段結束。

1.2 填充規則

    Keccak算法的填充規則記為pad,具體過程如下:

    在輸入消息M后添加單個比特1,然后添加n比特0,最后添加單個比特1,使得填充后的長度|P|為r的整數倍。其中,n為滿足|M|+2+n≡0 mod r的最小整數;填充比特長度最短為2,最長為r+1。

    基于海綿結構的Keccak算法理論上可以生成任意長度的散列值,但NIST為了配合SHA2散列值,在SHA3標準中規定了4種模式。不同的模式下只有消息分組r與輸出長度Z的位寬不同,具體數據如表1所示。

wdz1-b1.gif

1.3 置換過程

    Keccak算法的置換過程記為Keccak-f[b],是針對狀態數組A的迭代過程,迭代輪數nr=24。狀態數組A是一個三維數組,數組中的元素屬于GF[2]域,狀態數組也可以看出一個位寬為1 600 bit的比特串S,狀態數組的置換函數f包括θ、ρ、π、χ、ι 5個步驟。其詳細描述如下:

1.3.1 映射規則

    比特串S到狀態數組A的映射規則為A[x][y][z]=S[64×(5×y+x)+z],其中(0≤x≤5,0≤y<5,0≤Z<64)。示例如下:

     wdz1-1.3.1-x1.gif

1.3.2 步驟描述

    (1)步驟θ:

wdz1-1.3.2-x1.gif

wdz1-b2.gif

     wdz1-b2-x1.gif

wdz1-b3.gif

2 Keccak算法ASIC設計

    分析海綿體結構和Keccak算法流程可知,Keccak寄存填充過程與置換過程是能夠并行執行的,其具體過程如圖2所示。

wdz1-t2.gif

    從圖2中看出,前一組消息分組進行置換時可以同時進行第二個消息分組的寄存或填充,因此在Keccak硬件電路中設計填充模塊和置換模塊來并行執行填充寄存過程和置換過程。

    Keccak硬件完整電路結構如圖3所示,填充模塊用于外部數據的接收,消息分組的寄存和算法的填充過程;置換模塊負責狀態數組的吸收擠壓過程和數據輸出過程。

wdz1-t3.gif

2.1 填充模塊

    在外部信號作用下,填充模塊每個時鐘周期接收串行輸入的32 bit消息數據,當寄存的消息數據構成一個r bit的消息分組后,將寄存的消息分組送入空閑狀態的置換模塊;若外部信號顯示當前為最后一個消息分組,則需要先對該消息分組進行填充,此過程由填充狀態機進行控制。

    填充模塊的內部包括存儲當前SHA3標準的模式寄存器,存儲最后消息分組有效長度位信息的長度寄存器, 存儲消息分組的填充寄存器,以及控制數據輸入或填充過程的狀態機。

    填充模塊的輸入信號包括寫信號Wen、地址信號Addr、最后一個消息分組的標志信號Last、位寬為32 bit輸入數據Datain及來自填充模塊的運算啟動標識信號start_Incore。

    填充寄存器電路結構如圖4所示,填充寄存器由36個32 bit移位寄存器構成,用于存儲外部輸入的消息分組和內部產生的填充數據。當外部32 bit數據Datain進入寄存器后,填充模塊內部的計數器進行計數操作,當計數值達到當前的SHA3模式所對應的消息分組時,代表一個消息分組存儲完成。若該過程中Last信號出現,由填充狀態機控制進行填充操作。通過對填充過程進行分析,得到可能出現的4種填充數據Fill_data,其數值如表4所示。

wdz1-t4.gif

wdz1-b4.gif

    填充狀態機的跳轉是由模塊內的計數器、模式寄存器存儲數據、長度寄存器存儲數據控制,狀態機的轉換圖如圖5所示。

wdz1-t5.gif

    圖5中的各個狀態所代表的含義及功能如表5所示:Fill_S0代表狀態機空閑,該狀態下填充模塊由外部控制接收消息分組數據、長度數據、模式數據;Fill_S1、Fill_S2、Fill_S3、Fill_S4是進行數據填充的狀態;Fill_S5是數據準備狀態,在該狀態下代表當前的消息分組全部進入填充寄存器,等待送入置換模塊。

wdz1-b5.gif

2.2 置換模塊

    Keccak的置換模塊主要執行狀態數組的存儲、置換以及數據輸出三個操作。

    在置換模塊中,設計了一組狀態寄存器,用于存儲25×32 bit狀態數組,將置換函數映射成為θ、ρ、π、χ、ι 5個運算單元。置換模塊內部的狀態機具有4個狀態,其狀態轉換圖分別如圖6所示。

wdz1-t6.gif

    圖6中的各個狀態所代表的含義及功能如表6所示:Incore_S0為空閑態,該狀態下模塊內部不執行任何操作;Inocre_S1狀態下狀態寄存器組中的數據與填充模塊存儲完畢的消息分組異或來完成狀態的更新;Incore_S2狀態下,狀態數組進行24輪迭代置換操作;當所有消息分組完成置換過程后,進入Incore_S3狀態等待數據輸出。

wdz1-b6.gif

3 Keccak硬件結構能效分析

    Keccak算法電路的填充置換兩個過程結構的面積開銷占比如表7所示。

wdz1-b7.gif

    表7中的數據占比沒有包含電路中的控制部分;填充過程的非組合邏輯面積開銷主要為填充寄存器,置換過程的非組合邏輯面積開銷主要為狀態寄存器。

    目前Keccak算法實現區別主要在于置換結構,圖7為三種主要實現方式。

wdz1-t7.gif

    圖7中基礎結構是本文所使用的結構,特點是資源占用率少;展開結構是將置換函數兩級級聯,通過時鐘周期的減少來提高吞吐率;流水線結構是通過提高整個算法結構頻率,并采用流水線來執行不同信息來提高吞吐率。以基礎置換結構的Keccak完整電路面積、頻率、吞吐率、能效為單位,其他兩結構各數值如表8所示。

wdz1-b8.gif

    表8中將本文Keccak算法電路的面積、頻率、吞吐率、能效作為標準,比較了兩級的展開結構和流水線結構;由于輸入位寬為32 bit,導致填充寄存過程時鐘周期多于置換過程,因此展開結構中置換過程時鐘周期的減少實際并沒有影響單個消息分組處理時鐘周期,所以該結構吞吐率反而降低。流水線結構中增加的狀態寄存器必須放置在各步驟之間,因此頻率并不能隨插入寄存器的數量提升;當消息分組寄存填充所占時鐘周期大于置換過程迭代輪數,n級流水線結構中需要n個填充寄存結構,才能滿足數據填充過程進行流水,因此流水線結構面積開銷大。

    綜合上述分析,對于實現完整Keccak算法實現,置換過程的展開結構和流水線結構較基礎結構能效反而降低。

4 KeccaK算法ASIC實現及性能評估

    本文提出的結構和其他文獻結構實現結果對比如表9和表10所示。

wdz1-b9.gif

wdz1-b10.gif

    文獻[6]所設計的Keccak算法硬件電路采用64 bit輸入位寬,置換過程采用三輪級聯展開。分析表8的數據中可知,將置換過程級聯展開會消耗大量的面積資源,雖然提高了吞吐率,但導致了整個硬件電路能效的降低。從上表中數據分析得知,本文結構較文獻[6]結構在能效上提高了約50%。

    文獻[5]采用了兩級流水線結構,以面積資源換取了吞吐率的提高,但是當外界數據以單任務方式出現時,該結構吞吐率會降低一倍。從表中數據分析得到,當外界數據按多任務出現時,本文結構與文獻[5]的流水線結構能效相同;當外界數據按單任務出現時,本文結構較文獻[5]的流水線結構提高了約95%。

    從實驗結果及對比分析中可以看出,置換過程采用基本結構實現的完整Keccak算法硬件電路具有較高能效。本文采用模塊化思想所設計的Keccak算法硬件電路具有資源面積開銷小、能效高的特點。

參考文獻

[1] BERTONI G,DAEMEN J,PEETERS M,et al.Keccak[C].EUROCRYPT,2013:313-314.

[2] DWORKIN M J.SHA-3 standard:permutation-based hash and extendable-output functions[S].Federal Information Processing Standard(NIST-FIPS)-202,2015.

[3] IOANNOU L,MICHAIL H E,VOYIATZIS A G.High performance pipelined FPGA implementation of the SHA-3 hash algorithm[C].2015 4th Mediterranean Conference on Embedded Computing(MECO).IEEE,2015.

[4] SHARMA J,KOPPAD D.Low power and pipelined secure hashing algorithm-3(SHA-3)[C].India Conference.IEEE,2017.

[5] MESTIRI H,KAHRI F,BEDOUI M,et al.High throughput pipelined hardware implementation of the KECCAK hash function[C].International Symposium on Signal.IEEE,2017.

[6] Wu Xufan,Li Shuoguo.High throughput design and implementation of SHA-3 hash algorithm[C].2017 International Conference on Electron Devices and Solid-State Circuits(EDSSC).IEEE,2017.

[7] WONG M M,HAJ-YAHYA J.A new high throughput and area efficient SHA-3 implementation[C].2018 IEEE International Symposium on Circuits and System,2018.



作者信息:

庹  釗,陳  韜,李  偉,南龍梅

(解放軍戰略支援部隊信息工程大學 密碼工程學院,河南 鄭州450001)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日本韩国在线| 国产欧美一级| 欧美中文日韩| 亚洲视频视频在线| 亚洲免费成人av| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜精品视频| 亚洲已满18点击进入久久| 99人久久精品视频最新地址| 亚洲另类视频| 亚洲精品永久免费| 亚洲免费av电影| 亚洲毛片在线免费观看| 亚洲青涩在线| 亚洲肉体裸体xxxx137| 亚洲欧洲日夜超级视频| 亚洲国产精品国自产拍av秋霞| 激情欧美一区二区| 在线精品国产成人综合| 在线不卡视频| 亚洲国产精品日韩| 亚洲激情婷婷| 亚洲人成啪啪网站| 99精品国产高清一区二区 | 激情视频一区| 亚洲国内欧美| 一本色道久久综合亚洲二区三区| 在线亚洲欧美视频| 亚洲欧美一区二区精品久久久| 性欧美xxxx视频在线观看| 欧美在线观看www| 亚洲人被黑人高潮完整版| 日韩视频免费观看高清完整版| 一区二区不卡在线视频 午夜欧美不卡在| 99成人在线| 亚洲欧美中日韩| 久久精品亚洲国产奇米99| 免费成人黄色片| 欧美日韩国产二区| 国产精品免费在线| 好吊视频一区二区三区四区| 亚洲国产天堂久久国产91| 99精品欧美一区| 午夜精品婷婷| 亚洲日本中文| 午夜欧美精品久久久久久久| 久久夜色精品国产欧美乱| 欧美精品精品一区| 国产精品实拍| 亚洲国产aⅴ天堂久久| 夜夜爽夜夜爽精品视频| 午夜天堂精品久久久久| 亚洲人成亚洲人成在线观看 | 亚洲尤物视频在线| 久久精品伊人| 欧美日本韩国| 国产色综合久久| 亚洲欧洲精品天堂一级| 亚洲一区在线看| 最新69国产成人精品视频免费| 中文在线不卡| 久久一二三四| 欧美视频在线观看| 一区二区亚洲精品国产| 亚洲最快最全在线视频| 久久精品国产99精品国产亚洲性色| 亚洲精品一区二区三区樱花| 小黄鸭精品aⅴ导航网站入口| 欧美大片18| 国产欧美1区2区3区| 亚洲国产日韩欧美在线99 | 欧美精品九九| 国产有码一区二区| 在线亚洲电影| 亚洲日本成人| 欧美一区国产在线| 欧美日韩国产在线观看| 国产综合久久久久久鬼色| 日韩午夜激情av| 亚洲高清视频在线观看| 亚洲一区二区三区国产| 免费观看一级特黄欧美大片| 国产精品女人毛片| 亚洲破处大片| 亚洲国产精品久久人人爱蜜臀| 一区二区精品在线| 欧美一区二区三区日韩| 欧美区一区二| 在线成人性视频| 欧美一区二区高清| 亚洲一区网站| 欧美精品一线| 伊人婷婷久久| 性久久久久久久| 亚洲伊人伊色伊影伊综合网| 欧美成人中文字幕| 国产一区二区日韩精品欧美精品| 在线亚洲激情| 亚洲天堂av综合网| 欧美久久精品午夜青青大伊人| 国产一区二区视频在线观看| 亚洲一区久久久| 亚洲一区久久久| 欧美日本一道本在线视频| 在线精品一区| 亚洲国产精品福利| 久久人人97超碰国产公开结果| 国产精品一区久久久久| 亚洲一级一区| 亚洲香蕉在线观看| 欧美日韩日本网| 日韩亚洲欧美高清| 亚洲精选视频免费看| 男人的天堂成人在线| 在线观看成人小视频| 欧美一区二区三区久久精品 | 国产精品久久久久久妇女6080| 亚洲另类春色国产| 一本大道久久a久久综合婷婷 | 午夜免费在线观看精品视频| 性久久久久久| 国产精品美女久久久| 一区二区三区视频在线观看 | 欧美黄免费看| 91久久国产精品91久久性色| 亚洲国产欧洲综合997久久| 久久综合狠狠| 亚洲第一天堂无码专区| 亚洲精品网站在线播放gif| 欧美成人中文| 亚洲精品影院| 亚洲一区二三| 国产精品自在欧美一区| 欧美一区1区三区3区公司| 久久久噜噜噜久久狠狠50岁| 国产亚洲一区二区三区在线观看| 欧美亚洲免费在线| 久久午夜视频| 最近看过的日韩成人| 宅男噜噜噜66一区二区66| 国产精品国产| 午夜欧美电影在线观看| 久久中文在线| 最新国产成人在线观看| 亚洲一二三级电影| 国产精品日韩欧美综合 | 亚洲一区国产视频| 国产精品中文在线| 久久精品日韩| 欧美精品日韩| 亚洲在线播放| 麻豆精品传媒视频| 日韩亚洲欧美成人一区| 香蕉视频成人在线观看 | 亚洲九九爱视频| 欧美视频在线观看| 午夜免费日韩视频| 欧美aaa级| 中文在线一区| 久久久久久久久久久成人| 在线免费日韩片| 亚洲综合色婷婷| 国产自产精品| 一本大道久久精品懂色aⅴ| 国产精品系列在线| 亚洲国产日本| 国产精品毛片a∨一区二区三区|国 | 激情久久综合| 亚洲视频综合| 国产自产在线视频一区| 一本久久a久久精品亚洲| 国产精品影片在线观看| 亚洲欧洲精品一区二区| 国产精品久久久久久五月尺| 亚洲二区在线观看| 欧美视频在线一区二区三区| 欧美在线视频全部完| 欧美日韩视频一区二区| 欧美一区二区三区的| 欧美日韩中文字幕精品| 欧美自拍偷拍| 国产精品久久久久久久久| 亚洲国产精品电影| 国产精品一区二区久久国产| 亚洲人成在线观看| 国产欧亚日韩视频| 国产精品99久久99久久久二8| 激情六月婷婷综合| 午夜精品久久一牛影视| 亚洲经典三级| 久久精品91久久香蕉加勒比| 日韩网站在线| 麻豆精品传媒视频| 亚洲欧美日韩一区二区在线 | 国产精品视频免费观看www| 亚洲精品久久久久久久久久久久久| 国产精品久久久久一区二区三区共| 亚洲区中文字幕| 国外精品视频| 香蕉精品999视频一区二区|