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

低功耗SM4-CCM 算法硬件架構設計?

2024-01-29 02:22:58夏吉安胡光永
電子器件 2023年6期

陳 銳,李 冰,夏吉安,胡光永

(1.南京工業職業技術大學計算機與軟件學院,江蘇 南京 210023;2.東南大學微電子學院,江蘇 南京 210096)

近年來,物聯網技術被廣泛應用于各行各業,如智慧醫療[1]、智慧養殖[2]、智慧電力[3]、智慧城市[4]等。物聯網技術之所以被廣泛應用,主要是因為其采集數據的隱含價值。通過GPRS[5]、NB-IoT[6]、LoRa[3]等無線通信協議將采集數據傳遞至云端,借助于大數據、人工智能等技術,可實現數據挖掘、預測分析、智能決策等先進應用。在許多應用領域,物聯網終端設備采集的數據與用戶隱私、生命財產安全密切相關,使得物聯網攻擊事件頻發,如2010 年的“震網病毒”攻擊多國核電站[7]、2016 年Mirai 惡意代碼控制物聯網終端發起DDoS 攻擊導致大半個美國網絡癱瘓[8]。為了避免數據在傳輸過程中遭受篡改、泄露而引起安全事故,應在數據源即物聯網終端側對采集數據進行安全保護。數據的保護可以通過在物聯網終端設備上部署密碼學算法來實現。認證加密算法作為一類應用廣泛的密碼學算法,不僅可以保障數據的機密性,還可以保障數據的完整性。2021 年IETF 公布了RFC 8998 標準[9],提出基于國產分組密碼算法SM4 的兩種認證加密算法,SM4-CCM 就是其中一種。本文面向物聯網數據安全,以SM4-CCM 為對象,研究適合于物聯網資源受限場景下的數據安全保障方法。

由于物聯網終端資源受限,有些甚至采用電池供電,因而對算法實現的成本、功耗要求較高。相比于軟件實現計算密集的密碼學算法,硬件實現具有更高的性能、更低的功耗、更好的安全性、更少的ROM/RAM 資源占用等優勢。硬件實現的這些優勢促使我們研究和設計SM4-CCM 的專用硬件電路架構。

與本文相關的文獻主要集中針對SM4 算法的某一種工作模式的硬件實現(如CBC 模式[10-11],CTR 模式[12])、針對SM4 算法的指令集擴展[13-14]、針對SM4 算法本身的低開銷設計[15-17]等。本文也是針對SM4 算法的一種工作模式,但是與上述文獻不同的是:①采用資源復用技術,僅用一個輪函數就實現了CCM 模式所包含的CBC-MAC 模式和CTR模式,不僅實現了加解密功能,還實現了完整性校驗功能;②為了降低SM4-CCM 算法的功耗,引入基于Decoder-Switch-Encoder(DSE)[18]架構的Sbox,與其他設計相比,功耗降低明顯。

1 SM4 與SM4-CCM 算法簡介

SM4 算法是國家密碼局2010 年公布的分組密碼算法行業標準,2016 年成為國家標準,2021 年成為國際標準。該算法由加解密算法和密鑰擴展算法組成。加密算法和解密算法結構相同,均由32 輪迭代和1 個反序變換組成,二者不同之處在于輸入到迭代輪函數的輪密鑰順序相反。如圖1 所示,加解密算法迭代所需的輪密鑰由密鑰擴展算法依據輸入的128 比特主密鑰經過32 輪迭代生成,共32 個,每個輪密鑰32 比特。密鑰擴展算法與加密算法結構相似,但是不需要反序變換。關于SM4 算法的詳細介紹可以查看文獻[19]。

圖1 SM4 加解密算法和密鑰擴展算法示意圖

CCM 算法是美國NIST 提出的分組密鑰算法認證加密工作模式,由兩種工作模式組成:用于產生128 比特消息認證碼的CBC-MAC 模式和用于加解密的CTR 模式。因而,CCM 算法既能對輸入數據進行加解密,又能保障數據的完整性。關于CCM 模式的詳細介紹可以查看文獻[20]。CCM 算法對數據的處理可分為四個階段:Nonce 數據的處理、AAD 數據的處理、明文數據的處理以及認證碼的生成。圖2 為按照這四個階段繪制的CCM 算法簡化流程圖,其中,AAD 為認證附加數據,用于提升算法的安全性,不需要對其進行加解密。從圖2 中可以看,輸入的明文需同時送入工作于CBC-MAC 模式的SM4模塊和工作于CTR 模式的SM4 模塊。這兩個SM4模塊完全相同,只不過輸入的數據不同。

圖2 簡化之后的CCM 算法示意圖

由上述分析可知,SM4-CCM 算法可從兩個層面實現資源復用以降低資源開銷,即SM4 算法本身的實現層面和CCM 算法的實現層面。

2 硬件架構設計

基于前文分析,借助于資源復用技術,本節提出一種低開銷、低功耗的SM4-CCM 硬件架構設計。

2.1 整體架構

圖3 給出了本文提出的SM4-CCM 硬件架構。如圖3 所示,采用狀態機控制單個SM4 算法內核,以分時復用的方式實現SM4-CCM 正向加密和反向驗證算法。整體架構主要包括:SM4 算法內核、SM4-CCM 算法控制狀態機、總線讀/寫接口、3 個控制類寄存器和5 個128 比特的數據寄存器。其中,控制寄存器控制算法開關和工作模式,數據類型寄存器指示總線寫入數據的類型,狀態寄存器存放SM4-CCM 算法狀態或者驗證結果。為了降低設計難度,SM4-CCM IP 處理完一個128 比特的數據塊即返回空閑狀態。因此需要為每次輸入的數據塊指明數據類型,依據數據塊類型是計數器初值、AAD 還是明文數據塊觸發狀態機進入不同的模式,待計算完畢之后將SM4 算法內核的計算結果存入對應的結果寄存器中。當所有數據傳遞完畢之后,將數據類型寄存器中的“FINISH”標志位置高,那么狀態機將控制SM4 算法內核完成最后一次計算,生成MAC值寫入CBC-MAC 結果寄存器中,上位機通過總線讀接口讀取該值。

圖3 本文提出的SM4-CCM 硬件架構框圖

2.2 控制狀態機

本文提出的設計支持SM4-CCM 正向加密和反向驗證,圖4 給出狀態機狀態跳轉示意圖。當SM4-CCM IP 使能時,一旦檢測到總線寫接口向總線數據寄存器寫入數據即啟動狀態機。

圖4 本文提出的SM4-CCM 控制狀態機狀態跳轉示意圖

對于SM4-CCM 正向加密采用以下執行流程:①將密鑰存入SM4 算法內核中的密鑰狀態寄存器;②將總線數據寄存器中的數據存入SM4 算法內核中的加解密狀態寄存器;③依據數據類型,執行狀態跳轉,如果是計數器初值或者AAD 數據,則進行CBC-MAC 模式后返回空閑狀態(狀態跳轉路徑①→②→③→⑧);如果是明文數據則進入CBCMAC 模式之后再進入CTR 模式最后返回空閑狀態(狀態跳轉路徑①→②→③→⑤→⑥);如果數據傳遞完畢,在收到數據傳遞完畢信號(數據類型寄存器中“FINISH”標志置高)則直接進入CTR 模式,對計數器初值加密之后與CBC-MAC 結果異或得到所有數據的MAC(狀態跳轉路徑①→②→④→⑥)。

對于SM4-CCM 反向驗證采用以下流程:步驟①、②與SM4-CCM 正向加密流程完全一致;③依據數據類型,執行狀態跳轉,如果是計數器初值或者AAD 數據,則進行CBC-MAC 模式后返回空閑狀態(狀態跳轉路徑①→②→③→⑧);如果是密文數據則進入CTR 模式之后再進入CBC-MAC 模式最后返回空閑狀態(狀態跳轉路徑①→②→④→⑦→⑧);如果數據傳遞完畢,在收到數據傳遞完畢信號(數據類型寄存器中“FINISH”標志置高)則直接進入CTR 模式,對計數器初值加密之后與CBC-MAC 結果異或得到所有數據的MAC(狀態跳轉路徑①→②→④→⑥),最后將其與原始MAC 比較確認數據是否完整。

2.3 SM4 硬件架構

圖5 給出了SM4 算法內核的架構設計,該模塊負責完成SM4 算法的加解密算法和密鑰擴展算法。其中,密鑰擴展算法采用的是在線生成方法,因而無需存放32 個32 bit 的擴展密鑰。SM4 算法內核中包含一個密鑰擴展/加解密共享輪函數,其架構如圖6 所示。共享輪函數交替工作于密鑰擴展模式和加解密模式。密鑰擴展模式在前,加解密模式在后。密鑰擴展模式下產生的狀態數據存放于密鑰擴展狀態寄存器中,其低32 bit 輸出作為加解密模式下的輪密鑰。兩種模式交替執行32 次之后一個128 bit 的數據塊處理完畢。另外,由于SM4-CCM在CBC-MAC 和CTR 模式下輸入到SM4 算法內核進行加密的數據是不一樣的,需要特殊處理。在CBC-MAC 模式下,總線數據與上一個CBC-MAC 結果異或之后送入加解密狀態寄存器,在輪函數32 輪的迭代之后,直接將加解密狀態寄存器中的數據輸出寫入到CBC 結果寄存器。在CTR 模式下,輸入到加解密狀態寄存器的數據是計數器的值,在輪函數32 輪迭代之后,輸出結果與總線數據寄存器異或之后寫入到CTR 結果寄存器。

圖5 SM4 算法內核硬件架構框圖

圖6 密鑰擴展/加解密共享輪函數硬件架構框圖

密鑰擴展/加解密共享輪函數架構較為簡單,如圖6 所示,輸入是4 個32 bit 數據,經過異或之后生成一個32 bit 數據。該數據將分4 個時鐘周期輪流將其各個字節送入到Sbox 中進行字節替換。替換之后的32 bit 數據依當前模式是密鑰擴展還是加解密模式,采用不同的移位和異或方式輸出并更新狀態寄存器。

2.3.1 基于DSE 架構的Sbox

為了降低功耗,本文采用了基于Decoder-Switch-Encoder 架構的Sbox[18]。這種Sbox 被認為是功耗最低的一種Sbox[21],但是面積較基于查找表的Sbox 或者基于復合域的Sbox 面積大。然而,由于本文只采用單個Sbox,因而對整個SM4-CCM IP的面積影響較小。其架構如圖7 所示,輸入為1 個字節8 個信號,經過譯碼器之后轉換成為256 個信號組成的獨熱信號。連線模塊將256 位的獨熱信號按照SM4 標準中定義的替換表固定連接輸入和輸出。經過連線模塊輸出依然是256 位的獨熱信號,再經過編碼器識別出256 位的獨熱信號1 的位置,將其轉換成8 比特的位置索引值。獨熱信號的引入使得Sbox 內部信號翻轉率降低,而功耗與信號翻轉率成正比,因而可以降低功耗。

圖7 基于Decoder-Switch-Encoder 架構的Sbox

3 實驗結果與分析

為了評估本文提出的SM4-CCM 算法硬件架構的性能、面積和功耗,本文采用Verilog HDL 對其進行了描述,采用Synopsys EDA 工具鏈對其進行功能驗證和仿真以獲得吞吐率報告、綜合以獲得面積報告、門級功耗分析以獲得功耗報告。

圖8 給出了SM4 模塊的仿真結果,當輸入數據塊和密鑰均為0123456789ABCDEFFEDCBA98765 43210 時,加密結果應為681EDF34D206965E86 B3E94F536E4246,仿真截圖證明SM4 模塊功能的正確性。

圖8 SM4 模塊的仿真結果

圖9 給出了SM4-CCM 仿真結果,實驗數據來源于文獻[9],Nonce 數值為00001234567800000000 ABCD,密鑰為 0123456789ABCDEFFEDCBA9876 543210,明文為AAAAAAAAAAAAAAAABBBBBB BBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDDDD DDDDDDDEEEEEEEEEEEEEEEEFFFFFFFFFFFFF FFFEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAA,AAD 數據為FEEDFACEDEADBEEFFEEDFACEDEADBEEFABADDAD2,最終的認證碼應該為16842D4FA186F56AB33256971FA110F4,圖9 仿真截圖證明本文設計的SM4-CCM 硬件電路的功能正確性。

圖9 SM4-CCM 的仿真結果

表1 給出了本文設計的性能評估結果。在90 nm工藝100 MHz 時鐘頻率下,本文設計的硬件電路吞吐率達到32.12 Mbps,面積為31 428 門,而功耗只有1.338 mW。

表1 本文設計的性能評估結果

為了獲得較為精確的功耗分析結果,本文首先采用門級后仿真的方式獲得SAIF 文件,然后將其載入到功耗分析工具PrimeTime-PX 進行分析,由此獲得了較為精確的功耗分析報告,具體結果如表2 所示。從表2 可以看出,本文架構的動態功耗、靜態功耗和泄露功耗分別為84.2 μW、1.223 mW 和30.96 μW,三者分別占了總功耗的6.29%、91.4%和2.31%。

表2 本文設計的門級功耗分析結果

表3 羅列本文架構與參考文獻的比較結果。從表中可以看出,僅有本文設計實現了SM4-CCM 算法,并且本文設計的功能涵蓋列表中所有文獻的功能。與文獻[15,22]相比,本文設計功耗最低,但是由于SM4-CCM 算法復雜度相較于SM4 算法高很多,使得本文設計的面積開銷較二者高。雖然本文架構的吞吐率較其他文獻低,但是考慮到本文面向的是物聯網領域,而該領域的無線通信協議對數據速率要求較低(比如LoRa 的數據速率僅為250 kbps),因而可得出以下結論:本文提出的SM4-CCM 硬件架構是一種具有低開銷、低功耗、吞吐率適中、完全滿足物聯網應用需求的設計。

表3 本文設計與參考文獻的性能比較

最后,為了證明本文提出的硬件架構功能的正確性,我們將其實現并下載到DE10-Standard FPGA開發板,然后通過Signal Tap 邏輯分析儀抓取FPGA芯片運行結果,原型驗證環境如圖10(a)所示。我們將RFC 8998 提供的SM4-CCM 測試向量以MIF文件的方式載入到FPGA 中,然后通過邏輯分析儀抓取波形。圖10(b)所示的波形抓取結果與RFC 8998 中的結果完全一直,證明本文提出的硬件架構的功能正確性。

圖10 本文設計的FPGA 原型驗證環境和抓取波形

4 總結

面向物聯網終端數據安全保護需求,本文以SM4-CCM 認證加密算法為對象,借助于資源復用技術,研究和設計了一款SM4-CCM 算法專用硬件架構。在TSMC 90 nm 工藝下的實驗結果顯示,本文提出的硬件架構設計的面積開銷、功耗、吞吐率分別為31428 門、1.338 mW、32.12 Mbps@ 100MHz。實驗結果表明,本文提出的架構設計具有低開銷、低功耗、吞吐率適中的特點,能夠滿足物聯網終端對數據保護的應用需求。后續研究將面向物聯網數據安全,研究和設計更多的滿足物聯網應用需求的密碼算法IP。

主站蜘蛛池模板: 亚洲 日韩 激情 无码 中出| 亚洲黄色视频在线观看一区| 国产久草视频| 国产毛片基地| 亚洲v日韩v欧美在线观看| 欧美国产日本高清不卡| 亚洲一区二区三区在线视频| 9久久伊人精品综合| 一本大道无码日韩精品影视| 中文国产成人久久精品小说| 久久久久青草大香线综合精品 | 欧美激情,国产精品| 国产一级裸网站| 91精品国产无线乱码在线| 5555国产在线观看| 久久综合色播五月男人的天堂| 最新无码专区超级碰碰碰| 美女扒开下面流白浆在线试听| 久久无码av三级| 国产亚洲高清在线精品99| av在线手机播放| 97se亚洲综合在线天天| 亚洲丝袜第一页| 色综合激情网| 国产高清色视频免费看的网址| 日韩小视频网站hq| 国产精品亚洲专区一区| 欧美一区精品| 日韩在线2020专区| 国产手机在线ΑⅤ片无码观看| 久久国产黑丝袜视频| 91午夜福利在线观看| 三上悠亚在线精品二区| 精品三级网站| 国产精品19p| 午夜国产理论| 免费a级毛片视频| 91香蕉视频下载网站| 久久国产成人精品国产成人亚洲 | 91麻豆国产视频| 中文无码日韩精品| 国产亚洲一区二区三区在线| 日韩精品专区免费无码aⅴ| 国产第一页免费浮力影院| 一区二区三区四区在线| 久久久无码人妻精品无码| 香蕉eeww99国产在线观看| 青青操视频在线| 伊人久热这里只有精品视频99| jijzzizz老师出水喷水喷出| 精品无码一区二区三区在线视频| 自拍欧美亚洲| 一区二区三区四区日韩| 人妻丰满熟妇av五码区| 成人国产三级在线播放| AV网站中文| 国产H片无码不卡在线视频| 在线观看亚洲国产| 在线中文字幕网| 重口调教一区二区视频| 少妇精品久久久一区二区三区| 精品黑人一区二区三区| 精品国产免费观看| 在线另类稀缺国产呦| 久久男人资源站| 久久国产精品夜色| 久久男人视频| 精品久久香蕉国产线看观看gif| 亚洲第一黄色网| 亚洲综合欧美在线一区在线播放| 国产99视频免费精品是看6| 国产高清免费午夜在线视频| 亚洲人免费视频| 中文字幕在线播放不卡| 午夜国产在线观看| 91人妻日韩人妻无码专区精品| 乱人伦99久久| 国产精品香蕉| 香蕉久久国产超碰青草| 久久人人97超碰人人澡爱香蕉| 精品一区二区三区视频免费观看| 久久综合亚洲色一区二区三区|