亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RISC-V 指令擴展的低開銷SM4 算法設(shè)計與實現(xiàn)*

        2021-03-23 09:23:14劉向東
        電子器件 2021年1期
        關(guān)鍵詞:加解密寄存器密鑰

        陳 銳,李 冰,劉向東

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

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

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

        為了降低SM4 硬件資源開銷,本文提出以軟硬件協(xié)同設(shè)計的方式實現(xiàn)SM4 算法。 首先,分析了SM4 軟件實現(xiàn)的性能瓶頸。 其次,基于軟件分析結(jié)果,在開源指令集RISC-V[11]的基礎(chǔ)上,提出了兩條自定義指令,分別用于實現(xiàn)SM4 算法的加解密算法和密鑰擴展算法的輪函數(shù)。 最后,提出一種復(fù)用RISC-V 處理器寄存器資源的方法,以減少SM4 存儲資源開銷,并設(shè)計了一款低開銷的SM4 指令功能單元電路結(jié)構(gòu)。 實驗結(jié)果顯示,相對于軟件實現(xiàn)的性能,本文方法能夠?qū)⑼掏侣侍嵘?.47 倍,延時縮短81.72%。 在SMIC 180nm 工藝下的綜合結(jié)果顯示,與參考文獻(xiàn)相比,本文方法的硬件資源開銷至少降低38.9%。

        1 SM4 算法簡介

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

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

        圖2 SM4 算法子函數(shù)性能分析

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

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

        2 RISC-V 指令擴展

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

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

        3 低開銷SM4 指令功能單元結(jié)構(gòu)設(shè)計

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

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

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

        3.1 軟硬件協(xié)同工作

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

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

        圖5 SM4 算法軟硬件協(xié)同工作流程

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

        4 實驗與結(jié)果分析

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

        4.1 面積開銷

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

        表1 SMIC 180nm 工藝下的100MHz 綜合結(jié)果

        4.2 性能表現(xiàn)

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

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

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

        4.3 與參考文獻(xiàn)的對比

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

        表4 與參考文獻(xiàn)資源開銷的比較結(jié)果

        5 總結(jié)

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

        猜你喜歡
        加解密寄存器密鑰
        探索企業(yè)創(chuàng)新密鑰
        密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
        Lite寄存器模型的設(shè)計與實現(xiàn)
        一種對稱密鑰的密鑰管理方法及系統(tǒng)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        基于ECC的智能家居密鑰管理機制的實現(xiàn)
        PDF中隱私數(shù)據(jù)的保護(hù)方法
        電子取證中常見數(shù)據(jù)加解密理論與方法研究
        基于FPGA的LFSR異步加解密系統(tǒng)
        網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募咏饷芟到y(tǒng)研究
        軟件工程(2014年11期)2014-11-15 20:02:46
        97精品依人久久久大香线蕉97| 免费a级毛片18以上观看精品| 风韵少妇性饥渴推油按摩视频| 中文字幕有码无码人妻av蜜桃| 色五月丁香五月综合五月| 美丽人妻在夫前被黑人| 久久精品国产视频在热| 黑人巨大av在线播放无码| 性一乱一搞一交一伦一性| 国产精品白浆一区二小说| 人妻精品丝袜一区二区无码AV| 色一情一区二区三区四区| 色窝窝免费播放视频在线| av色综合网站| 久久丁香花综合狼人| 亚洲中文字幕第二十三页| 中文字幕乱码在线婷婷| 一本之道日本熟妇人妻| 亚洲最大中文字幕熟女| 中文在线中文a| 日韩人妻无码精品-专区| 男人边吻奶边挵进去视频| caoporen国产91在线| 国产精品亚洲ΑV天堂无码| 一区二区三区熟妇人妻18| 国产自拍一区二区三区| 91久久国产香蕉视频| 免费av一区二区三区| 亚洲av无码av在线播放| 超薄丝袜足j好爽在线观看| 国产在线视频国产永久视频| 国产目拍亚洲精品二区| 强迫人妻hd中文字幕| 日韩精品一区二区三区在线视频| 妺妺窝人体色www婷婷| 国产在线一区二区三区av| 国产剧情国产精品一区| 亚洲无码图| 亚洲av狠狠爱一区二区三区| 精品亚洲第一区二区三区| 国产两女互慰高潮视频在线观看 |