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

基于RISC-V 指令擴展的低開銷SM4 算法設計與實現*

2021-03-23 09:23:14劉向東
電子器件 2021年1期
關鍵詞:指令

陳 銳,李 冰,劉向東

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

近年來,物聯網(Internet of Things,IoT)已被廣泛應用于各個領域,特別是在工業領域[1]。 越來越多的物聯網設備被安裝在車間、廠房、機械裝置和工業裝備上[2]。 工業物聯網不僅提高了生產效率,而且降低了生產成本[3]。 隨著聯網設備的增多,物聯網面臨的安全問題也越來越嚴峻[4]。 造成這一問題的主要原因是三個。 首先,出于成本方面的考慮,物聯網設備資源受限,無法提供先進的安全技術保障[5]。 其次,物聯網設備數量的增多,導致探索潛在安全漏洞的機會增多。 最后,物聯網設備產生、處理和交換大量對公共安全至關重要的數據以及對隱私敏感的信息[6],這些數據和信息對攻擊者具有一定的吸引性。 一般而言,物聯網設備采集的數據會通過網絡傳遞到云端服務器進行分析和處理[7]。這些數據在傳輸過程中,可能被中間人篡改、刪除,從而破壞了數據的完整性、可靠性和機密性。 考慮到這些數據可能對公共安全至關重要或者對隱私敏感,應該在傳輸數據之前,對這些數據進行加密處理。

對稱密碼算法可用于數據加密。 常見的對稱密碼算法有美國的AES 標準、中國的SM4 標準等。SM4(也稱為SMS4)已成為中國國家標準,與AES相比,SM4 具有以下特點,使其更適合于資源受限的環境:(1)SM4 的安全特性等效于AES-128[8];(2)加密和解密的結構相同;(2)用于加密和解密的Sbox 相同;(4)輪函數僅需要4 個Sbox(每個具有256×8 位),而在AES 中則需要16 個。 SM4 算法的實現可以通過軟件、硬件或者軟硬協同的方式。 軟件實現的性能較低,特別是對于性能和延時比較敏感的工業場景,軟件執行引入的延時是難以滿足工業場景對于性能和延時的需求。 因此,相關研究工作主要關注于硬件電路實現。 雖然SM4 算法本身已具備適合于資源受限環境的眾多優勢,但是考慮到物聯網設備成本方面的因素,需要盡可能地降低SM4 算法硬件實現時帶來的資源開銷。 目前已經有不少參考文獻致力于降低SM4 算法的硬件電路資源開銷,比如基于復合域算術實現Sbox[8-9],降低了Sbox 導致的資源開銷;基于異步多米諾邏輯實現SM4[10],降低功耗的同時也降低了面積開銷。 然而,從物聯網設備成本方面考慮,SM4 算法硬件電路資源開銷還需進一步地降低。

為了降低SM4 硬件資源開銷,本文提出以軟硬件協同設計的方式實現SM4 算法。 首先,分析了SM4 軟件實現的性能瓶頸。 其次,基于軟件分析結果,在開源指令集RISC-V[11]的基礎上,提出了兩條自定義指令,分別用于實現SM4 算法的加解密算法和密鑰擴展算法的輪函數。 最后,提出一種復用RISC-V 處理器寄存器資源的方法,以減少SM4 存儲資源開銷,并設計了一款低開銷的SM4 指令功能單元電路結構。 實驗結果顯示,相對于軟件實現的性能,本文方法能夠將吞吐率提升4.47 倍,延時縮短81.72%。 在SMIC 180nm 工藝下的綜合結果顯示,與參考文獻相比,本文方法的硬件資源開銷至少降低38.9%。

1 SM4 算法簡介

該算法由加解密算法(如圖1(a)所示算法1)和密鑰擴展算法(如圖1(b)所示算法2)兩部分組成,分組長度和密鑰長度均為128 bit。 加解密算法與密鑰擴展算法均采用32 輪非線性迭代結構。 從算法1 可以看出,加密算法和密鑰擴展算法都需要32 輪的計算才能得到最終結果,因而每輪計算所消耗的時間決定了整個算法所消耗的時間。 為了評估SM4 軟件實現的性能,本文以Linux 內核中的SM4算法源代碼為基礎,在一款商業級的開源RISC-V處理器SCR1[12]上運行,以獲取時鐘周期精確的仿真結果,然后對其進行了性能剖析。

圖1 SM4 加密算法和密鑰擴展算法

圖2 SM4 算法子函數性能分析

分析結果如圖2 所示,僅通過Sbox 完成一個字節的非線性變換就消耗了6 個時鐘周期,而密鑰擴展和加密算法輪函數的單次迭代分別需要41 和49個時鐘周期。 值得注意的是,完成32 次輪函數迭代,密鑰擴展和加解密分別需要1 802 和2 178 個時鐘周期,而這兩個值并不等于41×32 和49×32。 造成這一現象的主要原因是,每次輪函數的迭代都需要通過多個訪存指令從存儲器中將數據載入到寄存器中。 基于上述的分析,得出的結論是,為了消除SM4 軟件性能瓶頸,提升SM4 性能,降低時延,必須做到:(1)降低Sbox 非線性變換消耗時間;(2)降低輪函數單次迭代消耗時間;(3)減少輪函數中的訪存指令以減少訪問存儲器消耗時間。

從算法1 中的4~7 行和算法2 的3 ~7 行可以發現,輪函數中包含的運算較多,如果能將這些運算通過一條指令完成,則可以達到降低輪函數單次迭代消耗時間的目的,而Sbox 非線性變換已然包含在輪函數中了,因此上述結論(1)也可以通過擴展指令來消除或掩蓋。 考慮到開源指令RISC-V 指令集定義了32 個通用寄存器,如果能夠借用部分通用寄存器用于存放加解密或者密鑰擴展算法運算過程中產生的中間數據,則可以減少不必要的存儲器訪問從而消除存儲器訪問消耗時間。

2 RISC-V 指令擴展

基于上述的分析,依據開源RISC-V 指令規范,本文定義了兩條自定義指令,SM4.KEY.RF 和SM4.ENC.RF。 擴展指令SM4.KEY.RF 用于實現密鑰擴展算法輪函數單次迭代中所有運算,包括異或、Sbox 非線性變換、線性變換,如算法2 中4 ~7 行所示。 擴展指令SM4.ENC.RF 用于實現加解密算法輪函數單次迭代中的所有運算,如算法1 中4 ~7 行所示。 二者指令編碼格式如圖3 所示。 依據RISC-V指令規范,選取7 位二進制數0001011 作為SM4 擴展指令的操作碼,以便于與其他類型指令進行區分。在擴展指令SM4.KEY.RF 中,目標寄存器由編譯器決定,可以為任意寄存器,源寄存器只需要1 個,用于載入CK 參數。 在擴展指令SM4.ENC.RF 中,將指定目標寄存器為x28,以減少不必要的存儲器訪問,而源寄存器用于載入密鑰擴展算法生成的輪密鑰。

圖3 本文提出的兩條RISC-V 擴展指令

3 低開銷SM4 指令功能單元結構設計

依據兩條擴展指令的功能,本文設計了一款低開銷的SM4 指令功能單元,并對RISC-V 處理器的寄存器堆的電路結構進行了修改,具體結構如圖4所示。 從圖4 可以看出,SM4 指令功能單元有6 個輸入和1 個輸出端口,其中5 個輸入用于傳遞輪函數單次迭代所需的數據,而這5 個輸入直接從寄存器堆引入。 需要注意的是,這5 個從寄存器堆直接引入的輸入,有4 個是固定連接到某一個寄存器,剩余1 個由指令傳遞的rs1 選取。 之所以這樣設計,主要原因有3 個:(1)由于輪函數單次迭代需要5個32 位的數據,固定連接寄存器后,數據直接從寄存器中讀取,無需等待,提升指令執行效率;(2)借用處理器的4 個通用寄存器存放輪函數每次迭代產生的臨時數據,無需再通過存儲器訪問指令從存儲器中載入數據,減少訪問存儲器次數,縮短算法延時;(3)輪函數計算結果直接寫入固定寄存器,無需編譯器指定存放位置,省去讀取寄存器時間,提升指令執行效率。

圖4 本文提出的SM4 指令功能單元

如圖4 所示,當處理器執行到SM4.ENC.RF 或者SM4.KEY.RF 指令時,寄存器堆中的寄存器t0-t3構成移位寄存器,數據可以從t3移入,然后通過移位從t0移出。 之所以這樣設計,是為了在輪函數單次迭代結束之后,能夠自動進行為移位,為下一次的迭代準備數據,從而不需要再通過指令從其他位置加載數據,因而可以提升效率。

3.1 軟硬件協同工作

SM4 指令功能單元僅完成輪函數單次迭代計算,完成整個加密算法或者密鑰擴展算法,還需要軟件的配合,軟件主要負責算法流程的控制。 為了節省擴展密鑰所占用的資源開銷,本文不采用在線密鑰擴展,而是在加解密之前預先執行密鑰擴展算法,并將生成的32 個32 位的擴展密鑰存放到數據存儲器中。 如圖5(a)所示,在調用SM4.KEY.RF 指令進行密鑰擴展之前,需要先將128 位的用戶密鑰存放到指定的4 個寄存器中,然后才能開始循環迭代。每次迭代都會生成一個32 位的輪密鑰,這些密鑰交由編譯器指定存放位置。 在32 個輪密鑰生成完畢之后,可以開始數據加解密。

如圖5(b)所示,在調用SM4.ENC.RF 指令進行加解密之前,需要先將128 位的明文或者密文存放到指定的4 個寄存器中,然后才能開始循環迭代計算。 每次迭代均會先載入一個輪密鑰,然后執行SM4.ENC.RF,每次迭代計算的結果直接寫入到寄存器t3(x28),32 次迭代結束之后,直接從寄存器t0-t3讀取數據即可。

圖5 SM4 算法軟硬件協同工作流程

圖6 SM4 指令功能單元嵌入到開源RISC-V 處理器SCR1 中

4 實驗與結果分析

為了驗證擴展指令的功能,評估指令功能單元的資源開銷,本文采用Verilog HDL 對其進行了描述,然后將其集成到商業級開源RISC-V 處理器SCR1 中。 如圖6 所示,SCR1 配置成了二級流水線結構,而SM4 指令功能單元嵌入到流水線的第二級,與算術運算單元ALU 處于同一個流水級。

4.1 面積開銷

為了評估資源開銷,本文將未修改的SCR1 以及修改之后的SCR1 分別以100 MHz 的時鐘頻率在SMIC 180 nm 工藝下,通過Synopsys Design Compiler進行綜合,綜合結果如表1 所示。 從表1 可以看出,SM4 引入的硬件資源開銷只有1684 等效門。

表1 SMIC 180nm 工藝下的100MHz 綜合結果

4.2 性能表現

為了評估性能,本文將SM4 算法分別采用有指令集擴展和沒有指令集擴展的方式進行軟件實現,并通過RISC-V 處理器提供的CYCLE 計數器對算法消耗的時鐘周期數進行計數。 軟件實現通過修改之后的RISC-V GCC 交叉編譯器進行編譯,然后將編譯輸出的Hex 文件以測試激勵的方式載入到Synopsys VCS 仿真平臺,以獲得時鐘周期精確的仿真結果。 如表2 所示,添加指令集擴展之后,密鑰擴展、加密和解密所需的時鐘周期分別縮減了81.72%、87.69%、82.40%,而吞吐率分別提升了4.47 倍、7.12倍和4.68 倍。

表2 有/無擴展指令延時(時鐘周期)對比

表3 有/無擴展指令100 MHz 時鐘頻率下的吞吐率對比

4.3 與參考文獻的對比

表4 羅列了本文與參考文獻的比較結果。 雖然本文在延時和吞吐率方面的優勢都不明顯,但是面積和等效門數優勢突出,造成這一現象的主要是原因各個設計的設計目標可能不一致,比如文獻[13]瞄準的是高吞吐率,而本文的設計目標是低開銷。從表4 中數據可以看出,與參考文獻相比,面積開銷(等效門數)至少降低38.9%。

表4 與參考文獻資源開銷的比較結果

5 總結

面向低成本物聯網終端領域數據加密需求,針對SM4 算法,本文基于開源RISC-V 指令集,提出了兩條SM4 擴展指令,設計了一款低開銷的SM4 指令功能單元硬件電路結構,以軟硬件協同工作的方式實現SM4 密鑰擴展算法和加解密算法,并在性能和硬件資源開銷之間取得平衡。 本文提出2 條擴展指令分別用于實現SM4 密鑰擴展算法和加密算法輪函數中的所有運算。 從時鐘周期精確的仿真結果來看,與無擴展指令的實現方式相比,延時至少降低81.72%,吞吐率至少提升4.47 倍。 從SMIC 180 nm工藝下的綜合結果來看,與參考文獻相比,硬件資源開銷至少降低38.9%。 本文提出的方法能夠兼顧性能和資源開銷,因而較為適合于資源受限成本低廉的物聯網場景。

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 制服丝袜国产精品| 美女亚洲一区| 国产在线精品人成导航| 精品国产网站| 色噜噜狠狠色综合网图区| 国产精品美女免费视频大全| 久久国产精品77777| 亚洲va视频| 黄色网站在线观看无码| 国产裸舞福利在线视频合集| 国产精品色婷婷在线观看| 91成人免费观看在线观看| 国产精品极品美女自在线看免费一区二区| 国产91蝌蚪窝| 色成人综合| 国产超碰一区二区三区| 亚洲一区二区三区国产精品| 高清不卡一区二区三区香蕉| 久久精品66| 女人毛片a级大学毛片免费 | 伊人色婷婷| 成人综合网址| 国产成人久久综合777777麻豆| 露脸国产精品自产在线播| 午夜啪啪福利| 无码'专区第一页| 国产正在播放| 亚洲男人的天堂在线| 国产成人无码AV在线播放动漫| 国产不卡网| 极品av一区二区| 亚洲成人精品久久| 成人一级黄色毛片| 亚洲国产欧美国产综合久久 | 婷婷综合缴情亚洲五月伊| 精品国产免费人成在线观看| 国产91视频免费| 欧美a在线视频| 欧美精品在线视频观看| 国产成人1024精品下载| 亚洲高清在线天堂精品| 一级高清毛片免费a级高清毛片| 国产成人高清在线精品| 五月婷婷综合网| 91久久性奴调教国产免费| 4虎影视国产在线观看精品| 国产一线在线| 欧美精品二区| 国产欧美日韩91| 欧美午夜视频在线| 国产在线精彩视频论坛| 中文字幕2区| 国产爽妇精品| 狼友av永久网站免费观看| 尤物视频一区| 91无码人妻精品一区| 国产精品偷伦在线观看| 97精品久久久大香线焦| 国产麻豆福利av在线播放| 超清无码一区二区三区| 国产丝袜啪啪| 亚洲日韩高清无码| 中文字幕啪啪| 国产h视频免费观看| 72种姿势欧美久久久久大黄蕉| 国模视频一区二区| 精品国产成人av免费| 一级在线毛片| 九九香蕉视频| 国产中文一区二区苍井空| 国产免费a级片| 熟妇丰满人妻| 欧美午夜在线播放| 国产H片无码不卡在线视频| 久久精品人人做人人综合试看| 好吊日免费视频| 亚洲无卡视频| 人妻丰满熟妇αv无码| 好吊色国产欧美日韩免费观看| 波多野结衣久久高清免费| 欧美一级在线看| 成人看片欧美一区二区|