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

一種大流量報文HMAC-SM3認證實時加速引擎*

2021-02-03 04:08:16李丹楓趙國鴻
計算機工程與科學 2021年1期
關鍵詞:流水

李丹楓,王 飛,趙國鴻

(國防科技大學計算機學院,湖南 長沙 410073)

1 引言

隨著互聯網普及率的提高,人類社會越來越依賴以IP為核心的互聯網基礎設施。然而,網絡核心架構在設計初期未能充分考慮密碼安全問題,網絡IP報文通信面臨著源地址欺騙、內容篡改、報文注入和DDoS等威脅。使用消息驗證碼MAC(Message Authentication Code)正是保證信息真實認證和完整性的一種高效解決方案[1]。

消息驗證碼是經過特定加密算法生成的一段二進制碼。通信雙方在收發消息時,利用提前共享的密鑰通過加密算法計算出該消息的驗證碼,在共享密鑰未泄露的前提下,消息驗證碼可保證通信雙方消息來源可靠且未被篡改。計算MAC的加密算法通常基于密碼雜湊算法[2],即基于Hash的消息驗證碼HMAC(Hash-based MAC)算法。雜湊算法可將任意長度的明文映射為固定長度的雜湊值且過程不可逆,是驗證消息完整性的通用手段。目前常用的國際標準雜湊算法包括SHA-2系列(SHA-256,SHA-384和SHA-512)和SHA-3。我國于2010年公布了具有完全自主知識產權的SM3密碼雜湊算法[3],可以為HMAC內部核心算法的安全性提供有效支撐。

目前關于SHA系列算法的研究較多,而關注SM3算法的研究較少,相關研究大多停留在算法硬件實現效率提高上,例如通過開發SM3算法的流水化[4]進行優化,但沒有將流水技術進一步拓展到HMAC-SM3中,更缺乏將SM3應用到自主網絡報文驗證的相關研究。核心網絡流量大、流認證密鑰維護量大、要求延遲低,需要高性能SM3加速引擎和多流報文及密鑰管理系統支撐。

本文首次提出并設計面向大流量網絡報文的HMAC-SM3實時加速引擎方案,通過大流量報文-密鑰對輸入輸出管理和SM3計算核流水處理,能夠實時完成大流量報文HMAC計算任務。設計了基于存儲地址的報文-密鑰對快速存儲匹配技術,開發了多報文亂序哈希下的有序輸出架構,并通過展開SM3的輪計算設計了流水化的SM3子模塊,可在同一時刻進行64條報文-密鑰對的HMAC-SM3計算。實驗表明,本方案在Stratix IV平臺上最高時鐘頻率為172.41 MHz,平均吞吐量為65.18 Gb/s,在相同平臺Cyclone IV上是現有的串行HMAC-SM3驗證方案[5]吞吐量的34.86倍。

本文第2節分析國內外相關工作,第3節介紹HMAC算法和SM3算法,第4節闡述加速引擎設計方案,第5節為實驗分析,最后在第6節進行小結。

2 相關工作

決定HMAC算法安全性和實現效率優劣的關鍵在于雜湊函數的選擇。在安全性方面,SHA-2算法是SHA-1算法的摘要輸出加長版本,計算方式未有本質區別,而后者已于2005年被破解[6],雖然至今尚未出現對SHA-2有效的攻擊,但其安全性仍不斷受到質疑[7 - 9]。在此背景下,美國國家標準與技術研究院NIST(National Institute of Standards and Technology)于2015年批準發布了SHA-3算法,安全性得到了提高[6,10]。對標國際標準,我國自主提出SM3算法,其安全性相關數據已由文獻[11,12]量化給出。

SM3密碼雜湊算法作為中國標準,急需高效的自主可控實現與應用。文獻[12]在XILINX Virtex-5平臺上對比了SHA-256、SHA-512、SHA-3和SM3的實現效率,其中SM3的FPGA實現面積最小,吞吐量面積比僅次于SHA-3,總體效率與SHA-256相當。文獻[4]對SM3算法實現了流水化展開,并通過發掘算法計算步驟中的流水潛能,縮短了SM3單輪計算周期,實現了73.54 GB/s的高吞吐量。文獻[5]將SM3與HMAC相結合并在FPGA上仿真實現,由于采用串行SM3驗證核,吞吐量僅為1.02 GB/s,無法滿足大流量的網絡報文驗證需求。

目前尚未有將SM3密碼雜湊算法應用到核心網絡多發大流量報文實時認證的研究。本文提出的帶有多流消息及其認證密鑰存儲、調度和處理設計的HMAC-SM3實時加速引擎能夠滿足大流量網絡環境中報文的實時認證需求。

3 算法介紹

3.1 HMAC算法

HMAC算法是一種帶密鑰的消息鑒別碼算法,用于校驗數據完整性和來源合法性,適用于任何安全體系結構、進程或應用的安全服務。美國聯邦信息處理標準FIPS(Federal Information Processing Standards)對HMAC算法過程的定義為:

HMAC(K0,text)=

H(K0⊕opad,H(K0⊕ipad,text))

(1)

其中,K0為通信雙方提前共享的密鑰,H為Hash函數,text為待驗證數據,opad和ipad為算法定義的常數。FIPS標準中給出的HMAC算法流程如圖1所示。

Figure 1 Flowchart of HMAC algorithm圖1 HMAC算法流程

3.2 SM3算法

SM3是我國發布的一種基于分片迭代結構的密碼雜湊算法,它將長度l不超過264比特的消息m經過預處理、消息拓展和迭代壓縮3個步驟,生成256比特雜湊值。

算法1SM3

輸入:長度為l的比特序列m。

輸出:256比特雜湊值。

步驟1(預處理):在消息的末尾添加一個比特“1”和k個“0”,其中k是滿足l+1+k≡448 mod 512的最小的非負整數,將長度為l的二進制表示以64位比特串的格式添加至消息末尾,最后把填充后的消息m′按512比特進行分片:m′=B(0)B(1)…B(n-1),其中n=(l+k+65)/512。

步驟2(消息拓展):

(1)將消息分片B(i)劃分為16個字W0,W1,…,W15;

(2)定義置換函數

P1(X)=X⊕(X<<<15)⊕(X<<<23);

FORj=16TO67

Wj←P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕(Wj-13<<<7)⊕Wj-6

ENDFOR

(3)FORj=0TO63

W′j=Wj⊕Wj+4

ENDFOR

步驟3(迭代壓縮):設A、B、C、D、E、F、G、H為8個32位寄存器,迭代過程Vi+1=CF(V(i),B(i)),0≤i≤n-1,壓縮函數CF描述如下:

(A,B,C,D,E,F,G,H)←V(i);/*將V(i)的值平均分為8個部分,并按照從高到低的順序分別存入A~H中*/

FORj=0TO63

SS1←((A<<<12)+E+(Tj<<

SS2←SS1⊕(A<<<12);

TT1←FFj(A,B,C)+D+SS2+W′j;

TT2←GGj(E,F,G)+H+SS1+Wj;

D←C;

C←B<<<9;

B←A;

A←TT1;

H←G;

G←F<<<19;

F←E;

E←P0(TT2);

ENDFOR

Vi+1←(A,B,C,D,E,F,G,H)⊕V(i);

其中,V(0)設置為初始值7380166f4914b2b917244 2d7da8a0600a96f30bc163138aae38dee4db0fb0e4e,置換函數P0(X)=X⊕(X<<<9)⊕(X<<<17),布爾函數

FFj(X,Y,Z)=

GGj(X,Y,Z)=

最終輸出的Vn即為256比特雜湊值。

4 加速引擎系統設計

4.1 總體結構

加速引擎系統設計可分為消息緩存(Message Buffer)、輸入調度(Message Dispatch In)、SM3計算、輸出調度和輸出排序(Output Reorder)等5個模塊,整體實現如圖2所示,輸入報文-密鑰對,加速引擎系統按輸入報文順序輸出對應的HMAC計算結果。報文Data與密鑰Key經RAM緩存后進入輸入調度模塊,該模塊按HMAC步驟生成需要進行SM3計算的參數組(Message,Abstract),同時通過控制單元生成一個包含本次HMAC執行步驟碼、初始緩存地址的信號,與SM3計算結果一同輸入輸出調度模塊,用于同步本次計算的狀態信息。輸出調度模塊根據HMAC執行步驟碼識別HMAC算法完成度,判斷將本輪SM3結果和初始緩存地址輸出至輸出排序模塊或回傳至輸入調度模塊準備下一輪SM3計算。輸出排序模塊根據初始緩存地址對收到的HMAC值進行排序輸出,完成計算并回收地址。

Figure 2 Structure of acceleration engine圖2 加速引擎結構

需要說明的是,網絡報文進行SM3計算時需切割為若干個512比特數據包并按SM3算法要求填充,本文將切割填充放在了加速引擎系統外部執行,即默認輸入的報文均為若干組帶2比特首尾標志位的共514比特的分片數據包。

4.2 報文-密鑰對快速存儲匹配

緩存模塊通過FIFO(First In First Out)存儲器緩存外部輸入的認證密鑰,并由一個地址管理FIFO給出空閑的密鑰存儲RAM(Random Access Memory)地址,控制密鑰流入RAM。系統初始化時,向地址管理FIFO順序寫入密鑰存儲RAM的所有地址,表示全部RAM空閑。當接收到密鑰后,由地址管理FIFO彈出空閑地址,將密鑰寫入RAM的對應地址中,完成密鑰裝載。使用密鑰時,地址信息將作為本條密鑰生命周期里的唯一標識,跟隨密鑰一同傳輸。最后,輸出排序模塊輸出計算完畢的HMAC值時,表示一條密鑰已使用完畢,加速引擎系統會將該密鑰地址回傳至緩存模塊的地址管理FIFO,說明該地址下的密鑰已無效,完成密鑰卸載和地址釋放。

Figure 3 Schematic diagram of message storage address allocation圖3 報文存儲地址分配示意圖

存儲報文時,緩存模塊采用了(基址,拓展地址)的二維地址分配方式。如圖3所示,加速引擎系統分配報文存儲地址時,以報文對應的認證密鑰地址為基址,再為報文存儲RAM分配額外的5比特拓展地址,使每個報文有獨立的25*514比特的存儲空間,在滿足了TCP/IP網絡協議下的最大長度報文存儲的同時,通過基址比對保留了密鑰與報文的對應關系。

4.3 SM3計算模塊流水設計與優化

分析SM3算法可知,對于報文的每個分片都需要進行64輪迭代壓縮計算,并且前一個分片的最終迭代壓縮計算結果會作為參數參與下一個分片的計算,即同一報文的分片在計算SM3雜湊值時存在數據相關,故只能開發不同報文之間的流水化潛能。本方案中SM3計算模塊流水結構如圖4所示。

Figure 4 Pipeline structure of SM3 computation module圖4 SM3計算模塊流水結構示意圖

T1周期開始時,報文Message1的第1塊分片M1_1輸入SM3計算模塊的0號計算單元Unit0,在T1周期內進行第1輪迭代壓縮。T2周期開始時,M1_1第1輪迭代壓縮計算結果進入1號計算單元Unit1,在T2周期內進行第2輪迭代壓縮,同時另一報文Message2的第1塊分片M2_1進入Unit0進行第1輪迭代壓縮計算。以此類推,后續T3~T64周期開始時均有不同報文的分片輸入Unit0,同時Unit(n)的計算結果輸入Unit(n+1)進行下一輪迭代壓縮計算。直至第64個周期后,M1_1分片的64輪迭代壓縮計算完畢,計算結果在下一計算周期T65與Message1的下一分片M1_2一同回傳至Unit0開始新一輪的迭代壓縮計算。

考慮到SM3算法有64輪迭代壓縮計算,本計算模塊通過對每一輪迭代壓縮設置獨立的計算單元,使得在輸入數據量足夠的前提下,SM3模塊可以同時進行64組SM3計算。除最初63個周期外,每一個計算周期結束后都有一個分片完成整個迭代壓縮計算并將結果輸出,從而讓整個SM3計算模塊的流水化性能達到飽和。

SM3計算模塊整體結構如圖5所示。

Figure 5 Overall structure of SM3 computation module圖5 SM3計算模塊整體結構示意圖

圖5中消息拓展邏輯Expend_n和計算邏輯SM3_n共同組成一級計算單元。計算邏輯按照SM3算法中迭代壓縮部分的算法設計,不作過多介紹。消息擴展邏輯用于生成SM3算法中的Wj和W′j。在SM3算法中,Wj生成了68次,前16次直接從輸入報文Message中截取得到,后52次需計算生成;W′j生成了64次,通過Wj與Wj+4按位異或計算得到。然而,SM3算法的第n輪迭代壓縮計算中僅用到了相對應的參數Wn與W′n,故基于本模塊的流水線結構可對SM3算法模塊進行優化,各級計算邏輯無需等待所有的Wj、W′j生成完畢,只需得到對應的Wj、W′j參數便可開始計算。分析SM3算法可知,在第0~11輪中,Wj、W′j可直接從輸入的Message中截取得到;自第12輪開始,Wj仍可直接從輸入的Message中截取得到,每輪僅需計算出一個新的Wj+4用于計算W′j,并將Wj+4附于Message之后,同時去除Message頭部等長的比特,輸入下一輪消息拓展邏輯,之后的消息拓展邏輯重復同樣的操作,直至循環的最后一輪。優化后的SM3算法模塊將計算邏輯與Wj、W′j生成邏輯并列執行,縮短了計算時間。

4.4 報文輸出排序

網絡報文長短不一,基于本方案的流水驗證機制,可能存在后傳入的短報文由于分片較少,會先于先傳入的多分片長報文完成HMAC計算的情況。本方案出于通用性考慮,未對HAMC輸出結果作更多標識,只將輸出順序作為輸出與輸入的唯一對應關系,故需要對HMAC計算結果進行排序處理。由前文闡述可以看出,消息緩存模塊所分配的初始緩存地址即包含了收到數據的順序信息,故可根據該地址進行排序。在輸出排序模塊中設置寄存器Current_Address,用于記錄當前應輸出HMAC值的消息對應的初始緩存地址的基址部分,該寄存器初始化時設為0。當輸出排序模塊收到上游模塊傳來的HMAC值和初始緩存地址時,將初始緩存地址的基址部分與Current_Address中的值進行比對,若相同則直接輸出,Current_Address中的值自增加1;否則以基址地址存入排序RAM,并將該地址的值有效位置1,待Current_Address中的值指向該地址時再輸出。

5 功能驗證與實驗分析

本節采用Verilog硬件描述語言,使用Quartus Prime與Modelsim搭建編譯仿真軟件環境,分別在Stratix IV和Cyclone IV平臺上基于本方案編譯生成仿真系統,驗證前文所述功能。

向仿真系統內依次輸入2,5,10段514 bit數據包及其對應的64 bit密鑰,以2 bit首位標志位區將其分為3個網絡報文包,測試多個網絡報文連續輸入情況下系統功能的正確性。仿真結果顯示,系統分別于第313,546和932個時鐘周期輸出正確計算結果。繼續向系統內依次輸入10,2,5段514 bit數據包及其對應的64 bit密鑰,測試計算量大的長報文需先輸出結果的情況下系統功能的正確性。仿真結果顯示,系統分別于第921,924和925個時鐘周期輸出正確計算結果。上述實驗表明,本方案能夠完成實時認證和有序輸出。

為測試本方案在網絡環境中的延遲和吞吐量,向系統輸入10 000組報文,當輸入的網絡報文平均分片數量為1~32時,每組報文的平均延遲如圖6所示。不同平均分片情況下系統吞吐量變化如圖7所示。由圖6和圖7可知,網絡報文經過本系統的平均延遲與報文平均分片數量大體呈線性關系,而吞吐量隨著報文平均分片數量增多而增大,但增長趨勢逐漸緩慢,最終趨于平穩。

Figure 6 Packet average delay with different number of segments圖6 報文平均延遲隨分片數量變化趨勢圖

Figure 7 Average throughput with different number of segments圖7 平均吞吐量隨分片數量變化趨勢圖

經仿真,本設計方案最高時鐘頻率達到了172.41 MHz(基于Stratix IV平臺),在此時鐘頻率下平均延遲為129.15 ns,平均吞吐量可達到65.18 Gb/s。與其他文獻中的設計實現結果的對比如表1所示。從表1中可以看出,通過應用流水化技術,相同條件下本方案吞吐量是串行HMAC-SM3吞吐量的34.86倍。

6 結束語

本文提出了一種在FPGA平臺上進行大流量網絡報文HMAC實時認證的方案,通過SM3流水化機制、報文-密鑰對快速存儲匹配技術和有序輸出架構,實現了網絡報文的高效驗證。實驗結果表明,在大流量報文環境中,本方案的實現性能優良,可在高速網絡HAMC認證相關應用場景發揮良好的作用。SM3計算模塊每5個時鐘周期才能輸出一個計算結果,是本方案的瓶頸,故在下一步的工作中,可設置多個SM3計算模塊,通過多核并行方式進一步提高本方案的吞吐量。

Table 1 Comparison of implementation performance 表1 實現性能對比

猜你喜歡
流水
讓情緒像流水一樣經過
傣家跟著流水走
云南畫報(2021年8期)2021-12-02 02:46:08
流水
文苑(2020年10期)2020-11-07 03:15:26
無題
揚子江(2018年1期)2018-01-26 00:36:54
流水有心
天津詩人(2017年2期)2017-11-29 01:24:12
小河流水嘩啦啦
前身寄予流水,幾世修到蓮花?
視野(2015年6期)2015-10-13 00:43:11
經過流水
六盤山(2015年3期)2015-06-29 12:26:37
紅葉有心,流水有情
火花(2015年1期)2015-02-27 07:40:13
落紅只逐東流水
海峽姐妹(2014年5期)2014-02-27 15:09:38
主站蜘蛛池模板: 内射人妻无码色AV天堂| 日本在线亚洲| 精品无码一区二区在线观看| 国产午夜人做人免费视频| 国产一区三区二区中文在线| 中文字幕乱妇无码AV在线| 欧美亚洲国产一区| 精品综合久久久久久97| 欧美亚洲日韩中文| 亚洲日韩精品无码专区| 天天色天天操综合网| 欧美国产另类| 国产精品尤物在线| 91小视频在线观看| 爆乳熟妇一区二区三区| 欧美不卡视频在线| 国产精品亚洲天堂| 伊人AV天堂| 18禁影院亚洲专区| 国产欧美又粗又猛又爽老| 日韩国产 在线| 国产精品无码翘臀在线看纯欲| 亚洲精品成人7777在线观看| 漂亮人妻被中出中文字幕久久| 亚洲精品黄| 国产97色在线| 亚洲成a人在线播放www| 国产一级片网址| 人人爱天天做夜夜爽| 高潮爽到爆的喷水女主播视频| 青草免费在线观看| 天堂网亚洲系列亚洲系列| 亚洲无码视频一区二区三区| 亚洲二区视频| 91精品专区国产盗摄| 国产成人亚洲精品蜜芽影院| 国产亚洲精久久久久久久91| 五月婷婷中文字幕| 精品国产美女福到在线不卡f| 亚洲AV无码乱码在线观看代蜜桃| 久久精品视频亚洲| 最新国产高清在线| 久久网综合| 亚洲国产亚洲综合在线尤物| 色屁屁一区二区三区视频国产| 欧美视频免费一区二区三区 | 九九这里只有精品视频| 国产成人综合网| 国产乱视频网站| 香蕉国产精品视频| 精品偷拍一区二区| 自拍欧美亚洲| 国产精品亚洲天堂| 在线免费观看a视频| 91在线精品免费免费播放| 国产精品国产三级国产专业不 | 亚洲精品无码av中文字幕| 欧美亚洲国产日韩电影在线| 找国产毛片看| 国产精品自在拍首页视频8| 男女性色大片免费网站| 夜夜拍夜夜爽| 一级不卡毛片| a级毛片免费网站| 日韩精品免费在线视频| 华人在线亚洲欧美精品| 国产视频欧美| a毛片在线播放| 国产精品精品视频| 国产成人你懂的在线观看| 毛片大全免费观看| 男人的天堂久久精品激情| 亚洲综合片| 思思99热精品在线| 国产欧美视频综合二区| 极品av一区二区| 国产成人麻豆精品| 欧美国产在线看| 天堂在线亚洲| 亚洲无码电影| 亚洲三级网站| 国产精品香蕉|