国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RISC-V 和密碼協(xié)處理器的SOC 設(shè)計(jì)

2022-12-23 12:03明洋曲英杰
電子設(shè)計(jì)工程 2022年24期
關(guān)鍵詞:加解密存儲器寄存器

明洋,曲英杰

(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東青島 266061)

隨著工業(yè)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)關(guān)鍵技術(shù)的發(fā)展,越來越多的嵌入式設(shè)備應(yīng)用于工業(yè)生產(chǎn)和社會應(yīng)用中,隨之而來的網(wǎng)絡(luò)安全和隱私問題也愈發(fā)嚴(yán)重[1-2],IoT(Internet of Things,物聯(lián)網(wǎng))設(shè)備機(jī)器及其傳感器所產(chǎn)生的大量的敏感數(shù)據(jù)需要通過加密的方式進(jìn)行保存和傳輸,但是拘泥于其超低的功耗和有限的計(jì)算資源無法進(jìn)行全面有效地部署[3]。

加解密算法可以用軟件和硬件兩種方式實(shí)現(xiàn),使用軟件實(shí)現(xiàn),利用CPU 中原有的計(jì)算資源去做數(shù)據(jù)加解密的效率是非常低的。對延遲敏感的物聯(lián)網(wǎng)設(shè)備,為其擴(kuò)展加解密專用的協(xié)處理器是提高加解密效率的有效解決方式[4-7]。文獻(xiàn)[8]基于ARM 平臺設(shè)計(jì)實(shí)現(xiàn)了SM2 算法擴(kuò)展的SOC,但是在實(shí)際應(yīng)用中,為了提高加密效率,經(jīng)常會使用多種算法復(fù)合加密的方式進(jìn)行[9-10],AES 和RSA 算法分屬對稱和不對稱密碼算法,在國際上使用廣泛?;谶@兩種密碼算法設(shè)計(jì)開發(fā)密碼協(xié)處理器,搭配蜂鳥E203 MCU 組成適用于嵌入式應(yīng)用場景的信息安全SOC。

1 SOC體系結(jié)構(gòu)設(shè)計(jì)

在開源蜂鳥E203 MCU基礎(chǔ)上,通過EAI(Extension Accelerator Interface)接口設(shè)計(jì)擴(kuò)展AES、RSA 算法核,整個(gè)SOC 的體系結(jié)構(gòu)如圖1 所示,EAI 接口是通過RISC-V 指令集中預(yù)留的Custom 指令擴(kuò)展協(xié)處理器的接口。協(xié)處理器可通過EAI 接口中的存儲器訪存通道調(diào)用E203 核內(nèi)的存儲器資源,配合E203 內(nèi)核完成加解密的任務(wù)。

圖1 SOC系統(tǒng)架構(gòu)

RISC-V 32 位指令集中預(yù)留了4 條Custom 指令,指令12-14 位為控制讀源寄存器和寫目標(biāo)寄存器的Funct3 區(qū)間,25-31 位為作為額外編碼空間的Funct7區(qū)間。在本設(shè)計(jì)中,AES 使用Custom0,RSA 使用Custom1,并通過對Funct3 和Funct7 區(qū)間進(jìn)行編碼;如表1 與表2 所示,擴(kuò)展出加載數(shù)據(jù),開始加解密以及寫回?cái)?shù)據(jù)的對應(yīng)指令。

表1 Custum0擴(kuò)展指令定義

表2 Custom1擴(kuò)展指令定義

如圖2 所示,密碼協(xié)處理器核A&R(AES 和RSA)在蜂鳥E203 MCU 兩級流水線的位置與核內(nèi)的ALU(Arithmetic and Logic Unit,算術(shù)邏輯單元)平行。當(dāng)譯碼器譯到Custom 指令時(shí),就會將指令以及所用的操作數(shù)通過EAI 接口轉(zhuǎn)發(fā)到協(xié)處理器中進(jìn)行二次譯碼,完成對協(xié)處理的控制;通過EAI 接口的存儲器訪問通道占用LSU(Load Storage Unit,讀寫存儲器單元),訪存MCU 內(nèi)部的存儲器資源,完成數(shù)據(jù)在MCU 與協(xié)處理之間的傳輸。

圖2 協(xié)處理器在MCU流水線的位置

2 密碼協(xié)處理器設(shè)計(jì)

如圖3 所示,協(xié)處理器核主要由控制單元、寄存器堆和AES、RSA 算法核組成。譯碼器在指令請求通道中譯到協(xié)處理器對應(yīng)的Custom 指令,會立刻通過指令反饋通道給MCU 反饋,進(jìn)入工作態(tài)或者進(jìn)入數(shù)據(jù)傳輸狀態(tài)。協(xié)處理器內(nèi)部設(shè)置了5×1 024 bit的寄存器堆,在訪問DTCM(Data Tightly Coupled Memory,數(shù)據(jù)緊耦合存儲器)存儲的數(shù)據(jù)時(shí),將數(shù)據(jù)暫存在寄存器堆中,等待分組數(shù)據(jù)完整加載后,再傳至AES、RSA 算法核進(jìn)行運(yùn)算。數(shù)據(jù)傳輸完畢后,就會關(guān)閉存儲器訪問通道,使協(xié)處理器單獨(dú)工作。

圖3 協(xié)處理器系統(tǒng)架構(gòu)圖

為了更高效地利用EAI 接口的存儲器訪存通道,在協(xié)處理內(nèi)部設(shè)計(jì)了地址自增的邏輯,使用EAI接口中的32 位數(shù)據(jù)總線,協(xié)處理器可以在32 個(gè)周期內(nèi)完成1 024 位數(shù)據(jù)的傳輸。當(dāng)協(xié)處理器完成加解密運(yùn)算后,會將結(jié)果保存到協(xié)處理器的Regfile中,AES、RSA 算法核可以繼續(xù)進(jìn)行下一組任務(wù),控制器單獨(dú)響應(yīng)程序中的寫回指令,將計(jì)算結(jié)果寫回到MCU,整個(gè)過程在MCU 內(nèi)軟件程序的控制下完成。

2.1 AES算法核設(shè)計(jì)

AES 算法主要分兩部分——加解密算法和密鑰擴(kuò)展算法,是迭代型分組密碼算法。加解密運(yùn)算主要由四種變換組成,分別是SubBytes(S 盒變換)、ShiftRow(行移位變換)、MixColumn(列混合變換)、AddRoundKey(輪密鑰加變換)[11]。該文實(shí)現(xiàn)的是128 bit 密鑰長度的AES 算法,前Nr輪操作相同,Nr+1 輪所做操作缺少M(fèi)ixCloumn,但仍可通過復(fù)用前Nr輪的邏輯電路進(jìn)行運(yùn)算。

為了降低ASIC(Application Specific Integrated Circuit,專用集成電路)實(shí)現(xiàn)的資源開銷,摒棄了使用寄存器堆或者RAM(Random Access Memory,隨機(jī)存取存儲器)單元實(shí)現(xiàn)S 盒變換的方式,而采用組合邏輯實(shí)現(xiàn)。除此之外,為了盡量減少核內(nèi)寄存器的使用,如圖4 所示,采用在線實(shí)時(shí)產(chǎn)生輪密鑰的方法,大量減少保存輪密鑰所需的寄存器,且明文密文共享一個(gè)寄存器。整個(gè)AES 核僅使用4 組128 位的寄存器,較傳統(tǒng)實(shí)現(xiàn)方法,節(jié)省了9 組128 位的寄存器。對于AES 算法中多輪迭代的結(jié)構(gòu),僅需實(shí)現(xiàn)一輪電路通過FSM(Finite State Machine,有限狀態(tài)機(jī))控制分時(shí)復(fù)用,大大減少了電路規(guī)模。同時(shí),為了保證AES 的加解密速度,并沒有采用S 盒復(fù)用的架構(gòu),AES 核內(nèi)同時(shí)實(shí)例化了16 個(gè)S盒,保留了AES 算法內(nèi)部固有的并行性,使得輪邏輯可以高速運(yùn)行。

圖4 AES 的數(shù)據(jù)路徑

2.2 RSA算法核設(shè)計(jì)

RSA 作為一種經(jīng)典的非對稱密碼算法,其可靠性在于大數(shù)的因式分解,其系統(tǒng)核心是模冪運(yùn)算P=ME(modn)。設(shè)計(jì)采用基于改進(jìn)的蒙哥馬利算法的R-L 掃描法實(shí)現(xiàn)模冪運(yùn)算,算法需要兩個(gè)操作數(shù)進(jìn)行模乘循環(huán)n次實(shí)現(xiàn)。如算法1 所示,模乘主要是通過基2 的蒙哥馬利算法,轉(zhuǎn)化成模加運(yùn)算和移位操作實(shí)現(xiàn)。

算法1:(改進(jìn)的蒙哥馬利算法)

如圖5 所示,RSA 算法核由控制模塊(Control),蒙哥馬利模乘模塊(MM)和寄存器堆(Regfile)組成,參數(shù)N,C需要在軟件部分提前計(jì)算,通過Indata 端口直接輸入至RSA 核中,由RSA 核完成模冪運(yùn)算最終完成加解密流程。為了保證RSA 核的運(yùn)算速度,MM 模塊內(nèi)部采用脈動陣列結(jié)構(gòu)來解決長進(jìn)位鏈的問題。為了減小MM 的面積資源開銷,僅實(shí)現(xiàn)一行脈動陣列結(jié)構(gòu),將1 024 位加法分成32 個(gè)32 位加法器模塊,并進(jìn)行復(fù)用。

圖5 RSA的系統(tǒng)架構(gòu)

考慮到加法器模塊的復(fù)用,對蒙哥馬利模乘模塊中的加法器進(jìn)行了重新設(shè)計(jì),如圖6 所示,將qi的計(jì)算放到模塊外,模塊由兩個(gè)32 bit 的加法器組成,中間插入兩級寄存器,形成流水線,分別計(jì)算Ri中的兩次加法。

圖6 加法器的結(jié)構(gòu)設(shè)計(jì)

3 實(shí)驗(yàn)結(jié)果與分析

在華虹40 nm 工藝下單獨(dú)對AES 進(jìn)行綜合,并對其進(jìn)行靜態(tài)時(shí)序分析,其主頻可達(dá)400 MHz,面積為30 805 μm2,經(jīng)過詳細(xì)的物理設(shè)計(jì)后,版圖的面積為44 944 μm2(212 μm×212 μm),版圖后的靜態(tài)時(shí)序分析結(jié)果與綜合后的一致。根據(jù)設(shè)計(jì)中的電路結(jié)構(gòu),13 個(gè)時(shí)鐘周期即可完成一次128 bit 的加/解密,估算數(shù)據(jù)吞吐率為3.9 Gbps,對比同為邏輯復(fù)用結(jié)構(gòu)的低開銷ASIC 實(shí)現(xiàn)AES 算法的方案,如表3 所示,雖然面積要比同為低開銷設(shè)計(jì)的相關(guān)研究要大,但數(shù)據(jù)吞吐率與面積之比,該設(shè)計(jì)仍有較大優(yōu)勢。造成這一現(xiàn)象的原因主要是設(shè)計(jì)的側(cè)重點(diǎn)不同,如文獻(xiàn)[12]瞄準(zhǔn)的是超小面積,而該文的目的是在速度與面積之間達(dá)到平衡。

表3 AES ASIC實(shí)現(xiàn)與其他文獻(xiàn)的對比

設(shè)計(jì)中AES 算法核已在SMIC180 nm 工藝下順利流片,圖7為流片后的顯微照片。由于IO pad(Input&Output pad,輸入輸出端口)數(shù)量和性能的限制,設(shè)計(jì)改為8 bit輸入輸出,芯片尺寸為1 256 μm×1 028 μm,主頻可達(dá)100 MHz,數(shù)據(jù)吞吐率達(dá)980 Mbps。

圖7 AES芯片顯微照片

單獨(dú)對RSA 算法核在華虹40 nm 工藝下綜合,所用標(biāo)準(zhǔn)單元面積為94 552 μm2,主頻可達(dá)到100 MHz,對其進(jìn)行詳細(xì)的物理設(shè)計(jì)后,面積為129 600 μm2(360 μm×360 μm),版圖后的靜態(tài)時(shí)序分析結(jié)果與綜合后一致,根據(jù)蒙哥馬利模乘模塊的運(yùn)算流程分析,1 024 bit RSA 共需執(zhí)行1 026 次模乘,單次模乘所需要的時(shí)鐘周期數(shù)為[2×(1 024+2)+1],可以估算一次RSA 加密所需要的時(shí)間為20.53 ms,吞吐率估算為49.87 kbps,對比同為低開銷ASIC 實(shí)現(xiàn)RSA 算法的方案,如表4 所示,所用等效門數(shù)與文獻(xiàn)[15]相比減少了29.5%。

表4 RSA ASIC實(shí)現(xiàn)與文獻(xiàn)的對比

在Xlinx-Artix 7 系列開發(fā)板上做SOC 的軟硬件聯(lián)合測試,測試之前分別編寫使用協(xié)處理器和不使用協(xié)處理器的C 程序,使用RISC-V 的編譯工具編譯后,通過JTAG(Joint Test Action Group,聯(lián)合測試工作組)接口將其上載到FPGA(Field Programmable Gate Array,可編程門陣列)開發(fā)板上。通過測試可見,AES、RSA協(xié)處理核可以正常進(jìn)行加解密,如表5、6所示,與沒有使用協(xié)處理器的AES 和RSA 算法程序相比,128 bit AES 加解密所用的處理器周期數(shù)減少為235.42,1 024 bit RSA 所用的處理器周期數(shù)減少了240.92。

表5 AES 有/無擴(kuò)展指令所用時(shí)鐘周期和指令條數(shù)對比

表6 RSA有/無擴(kuò)展指令所用指令條數(shù)核時(shí)鐘周期對比

4 結(jié)束語

面向工業(yè)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的加密應(yīng)用場景,使用EAI 接口將AES、RSA 算法核擴(kuò)展至蜂鳥E203 MCU上,完成了復(fù)合加密場景的RISC-V SOC 的設(shè)計(jì),針對協(xié)處理器核的ASIC 實(shí)現(xiàn)面積資源與運(yùn)算速度之間的平衡設(shè)計(jì)。在SOC 的軟硬件測試中可以看出,相對于無協(xié)處理器,AES 和RSA 的處理速度都得到了很大的提升。

猜你喜歡
加解密存儲器寄存器
靜態(tài)隨機(jī)存儲器在軌自檢算法
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
二進(jìn)制翻譯中動靜結(jié)合的寄存器分配優(yōu)化方法
移位寄存器及算術(shù)運(yùn)算應(yīng)用
PDF中隱私數(shù)據(jù)的保護(hù)方法
電子取證中常見數(shù)據(jù)加解密理論與方法研究
網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募咏饷芟到y(tǒng)研究
存儲器——安格爾(墨西哥)▲
Lx5280模擬器移植設(shè)計(jì)及實(shí)施
一種存儲器容錯(cuò)設(shè)計(jì)方法
江油市| 荃湾区| 花莲县| 江川县| 合山市| 东兰县| 合阳县| 贵港市| 佛学| 双辽市| 饶平县| 安多县| 工布江达县| 赞皇县| 伊金霍洛旗| 民县| 阿勒泰市| 邢台市| 丽江市| 肥东县| 崇文区| 盐津县| 宜宾县| 滨州市| 汾西县| 宁明县| 禄劝| 衡东县| 图片| 浮梁县| 赫章县| 新晃| 乐亭县| 图们市| 平邑县| 兰考县| 彭州市| 沾益县| 正阳县| 枣强县| 德钦县|