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

        ?

        輕量級安全內(nèi)存:RISC-V嵌入式微處理器安全增強(qiáng)*

        2021-09-24 11:12:26牛世權(quán)
        關(guān)鍵詞:加解密計(jì)數(shù)器引擎

        牛世權(quán)

        (國防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073)

        1 引言

        近年來,針對嵌入式設(shè)備中硬件的新型攻擊不斷出現(xiàn),嚴(yán)重威脅嵌入式設(shè)備的安全。特別是2018年曝出的Spectre[1]和Melt-down[2]針對微處理器硬件的攻擊,使人們意識到信息安全不僅僅只是軟件層面的安全,硬件層面的安全也同樣重要。

        一方面,微處理器設(shè)計(jì)者們的目標(biāo)總是越來越高的性能,缺乏對安全性的考量。這一現(xiàn)狀在硬件安全問題頻發(fā)的今天需要改變。特別是嵌入式微處理器,由于其應(yīng)用領(lǐng)域通常較專一,對安全性與功耗、面積等方面的開銷要求更高。如何在提升嵌入式微處理器安全性的同時(shí)保證合理的性能與開銷,成為嵌入式微處理器安全設(shè)計(jì)的一個(gè)難點(diǎn)。另一方面,隨著非易失性存儲(chǔ)器被配備到了嵌入式設(shè)備中,就需要考慮如何保護(hù)配備非易失性存儲(chǔ)器的嵌入式設(shè)備。非易失性存儲(chǔ)器的特點(diǎn)是設(shè)備掉電后數(shù)據(jù)不會(huì)消失,存儲(chǔ)在非易失性存儲(chǔ)器中的敏感數(shù)據(jù)容易被獲取[3]。因此,有必要針對配備非易失性存儲(chǔ)器的嵌入式設(shè)備設(shè)計(jì)一種輕量級、低開銷的安全內(nèi)存加密引擎來保證其安全。此外,觀察到以往對安全內(nèi)存的研究大都針對通用微處理器[4,5],且集中于性能的提高[6 - 8],本文則針對嵌入式微處理器的特點(diǎn),綜合平衡安全性、面積開銷和訪存延時(shí)等因素來設(shè)計(jì)安全內(nèi)存加密引擎。

        本文的主要貢獻(xiàn):首先是針對嵌入式微處理器設(shè)計(jì)了一種輕量級、低開銷的安全內(nèi)存加密引擎;其次,將該安全內(nèi)存加密引擎集成到了RISC-V嵌入式微處理器中;最后,對該安全內(nèi)存加密引擎進(jìn)行了評估。

        2 研究背景與動(dòng)機(jī)

        2.1 RISC-V嵌入式微處理器平臺(tái)

        RISC-V是加州大學(xué)伯克利分校設(shè)計(jì)并發(fā)布的一種開源指令集架構(gòu)。RlSC-V開源指令架構(gòu)的特點(diǎn)在于簡潔、模塊化和可擴(kuò)展,通過將這種模塊化的指令集進(jìn)行組合或者擴(kuò)展,幾乎可以構(gòu)建適用于任何一個(gè)領(lǐng)域的微處理器?;赗lSC-V開源指令架構(gòu)的特點(diǎn),選擇基于RISC-V開源指令集架構(gòu)實(shí)現(xiàn)的開源微處理器Ariane[9]作為本文的安全內(nèi)存設(shè)計(jì)平臺(tái)。Ariane是瑞士蘇黎世聯(lián)邦理工大學(xué)設(shè)計(jì)開發(fā)的一款RISC-V開源微處理器核。它擁有完整的6級流水線且是單發(fā)射順序執(zhí)行的,主要實(shí)現(xiàn)了64位的I、M、A、C指令[10]以及M、S、U 3個(gè)特權(quán)級別的擴(kuò)展[11]。此外,它還支持進(jìn)行FPGA驗(yàn)證,方便本文在FPGA上進(jìn)行評估。

        2.2 內(nèi)存加密確保嵌入式微處理器安全

        2.2.1 安全模型

        在本文的設(shè)計(jì)中,將嵌入式系統(tǒng)劃分為2個(gè)部分。一個(gè)部分是安全區(qū)域,包括嵌入式微處理器核、高速緩存、安全內(nèi)存加密引擎等這些片內(nèi)模塊。它們都被認(rèn)為是可信的和受保護(hù)的,因?yàn)榍度胧轿⑻幚砥餍酒瑑?nèi)部的狀態(tài)很難通過物理手段來進(jìn)行篡改或破壞。另一個(gè)部分是不安全區(qū)域,包括片外內(nèi)存和各種外圍設(shè)備。與傳統(tǒng)片外內(nèi)存相比使用了非易失性存儲(chǔ)器的片外內(nèi)存,在設(shè)備掉電后數(shù)據(jù)不消失,物理攻擊者能夠輕易地對其中的敏感數(shù)據(jù)進(jìn)行訪問或者對其中的敏感數(shù)據(jù)進(jìn)行修改[3]。

        2.2.2 加密方式比較

        安全內(nèi)存加密的一種直接方式就是利用只有全局密鑰Key的塊密碼算法AES(Advanced Encryption Standard)直接對數(shù)據(jù)進(jìn)行加密[12],如圖1所示。在這種加密方式中,由于所有的數(shù)據(jù)都使用相同的密鑰進(jìn)行加密,相同的明文產(chǎn)生相同的密文,攻擊者只需對比加密后的數(shù)據(jù)就能知道哪些數(shù)據(jù)內(nèi)容相同。這就使得該種加密方式容易受到字典攻擊和重放攻擊[13]。

        Figure 1 Encryption method using only Key圖1 只使用全局密鑰的加密方式

        為了增強(qiáng)加密方式的安全性,可以同時(shí)利用全局密鑰和地址來對數(shù)據(jù)進(jìn)行加密,這樣就可以保證不同地址中的數(shù)據(jù)加密后不相同。但是,只要觀察該地址的連續(xù)寫回,攻擊者依然能夠發(fā)起字典攻擊。如圖2所示,為了進(jìn)一步增強(qiáng)加密方式的安全性,本文在利用全局密鑰和地址的同時(shí),加入計(jì)數(shù)器來對數(shù)據(jù)進(jìn)行加密,每一次將數(shù)據(jù)寫回內(nèi)存時(shí)計(jì)數(shù)器執(zhí)行加一操作。這樣即便是同一地址的連續(xù)寫回操作,數(shù)據(jù)加密后也不相同。該加密方式相比于利用全局密鑰和地址的加密方式安全性更強(qiáng)。

        Figure 2 Encryption method using Key, Addr and Ctr圖2 Key+Addr+Ctr的加密方式

        2.2.3 計(jì)數(shù)器模式的加密

        安全內(nèi)存加密在使嵌入式微處理器獲得更高安全性的同時(shí),也會(huì)影響嵌入式微處理器的訪存性能。其原因在于,在加入了安全內(nèi)存加密引擎后,每一次訪存都需要對數(shù)據(jù)進(jìn)行加解密操作。如果這些加解密操作是串行執(zhí)行的,那勢必會(huì)帶來很大的延時(shí)開銷。

        為了降低加解密操作所帶來的延時(shí)開銷,本文選用計(jì)數(shù)器模式的加密方式[14]。在計(jì)數(shù)器模式的加密方式中,一種被稱為一次性填充OTP(One Time Pad)的技術(shù)能夠減少嵌入式微處理器在訪存過程中的延時(shí)開銷[15]。如圖3所示,一次性填充技術(shù)將訪存過程和計(jì)算一次性填充的過程并行化。通過在訪存的同時(shí)計(jì)算一次性填充,之后再將一次性填充與訪存時(shí)的明文或密文進(jìn)行異或操作來進(jìn)行加解密,能夠大大降低加解密操作所帶來的訪存延時(shí)。

        Figure 3 Process of reducing latency in counter mode encryption圖3 計(jì)數(shù)器模式加密減少訪存延時(shí)的過程

        利用計(jì)數(shù)器模式對內(nèi)存數(shù)據(jù)進(jìn)行加解密的具體過程則如圖4所示。當(dāng)要將數(shù)據(jù)寫回內(nèi)存時(shí),首先利用密鑰、地址和計(jì)數(shù)器來生成一次性填充,然后再將該一次性填充與要寫回內(nèi)存的明文進(jìn)行異或操作,以實(shí)現(xiàn)加密。當(dāng)要從內(nèi)存中讀取數(shù)據(jù)時(shí),同樣也需要計(jì)算一次性填充,然后再將一次性填充與從內(nèi)存中取到的密文進(jìn)行異或操作,以實(shí)現(xiàn)解密??傊?,計(jì)數(shù)器模式的加密在兼顧安全性的同時(shí)能降低加解密操作所帶來的訪存延時(shí)。

        Figure 4 Counter mode encryption圖4 計(jì)數(shù)器模式加密

        3 安全內(nèi)存加密引擎架構(gòu)

        安全內(nèi)存加密引擎SME(Secure Memory Encryption Engine)的總體架構(gòu)如圖5所示。從圖5中可以看出,安全內(nèi)存加密引擎由3個(gè)主要的模塊組成,分別是PUF(Physically Unclonable Function)[16]模塊、計(jì)數(shù)器緩存模塊和AES加密模塊。其中,PUF模塊為整個(gè)安全內(nèi)存加密引擎提供全局密鑰。計(jì)數(shù)器緩存模塊則用來緩存計(jì)數(shù)器值。在片上緩存計(jì)數(shù)器值可加快安全內(nèi)存加密引擎的加解密速度,減小訪存延時(shí)開銷。AES加密模塊則利用PUF模塊產(chǎn)生的全局密鑰、訪存地址以及計(jì)數(shù)器緩存模塊提供的計(jì)數(shù)器值來生成一次性填充。生成的一次性填充再與明文或密文進(jìn)行異或操作,從而完成加解密工作。

        Figure 5 Secure memory encryption engine architecture圖5 安全內(nèi)存加密引擎架構(gòu)

        當(dāng)高速緩存中的數(shù)據(jù)被寫回內(nèi)存時(shí),安全內(nèi)存加密引擎首先從計(jì)數(shù)器緩存單元中查找相應(yīng)的計(jì)數(shù)器值。如果查找到相應(yīng)的計(jì)數(shù)器值,則直接取出該計(jì)數(shù)器值。然后對該計(jì)數(shù)器值執(zhí)行加一操作,并用這個(gè)新的計(jì)數(shù)器值來對即將要寫回的數(shù)據(jù)進(jìn)行加密,同時(shí)更新計(jì)數(shù)器緩存模塊中的計(jì)數(shù)器值。當(dāng)加密完成后就將加密后的數(shù)據(jù)和新的計(jì)數(shù)器值寫回內(nèi)存。當(dāng)高速緩存向內(nèi)存發(fā)出讀數(shù)據(jù)請求時(shí),安全內(nèi)存加密引擎首先從計(jì)數(shù)器緩存中查找相應(yīng)的計(jì)數(shù)器值,找到相應(yīng)的計(jì)數(shù)器值則直接用該計(jì)數(shù)器值對數(shù)據(jù)進(jìn)行解密。解密后再送入高速緩存中。

        3.1 PUF模塊

        PUF全稱為物理不可克隆函數(shù),可以從硬件復(fù)雜的物理特性中動(dòng)態(tài)地生成密鑰,而不需要使用片上存儲(chǔ)器來保存密鑰。與傳統(tǒng)的密鑰生成和存儲(chǔ)方式相比,基于 PUF 生成的密鑰具有不用保存、防篡改和防克隆等優(yōu)點(diǎn),能夠?yàn)楸疚牡那度胧轿⑻幚砥魈峁┌踩詮?qiáng)、開銷低的全局密鑰[17]。

        本文使用FPGA類型的Anderson PUF[18]來生成128位密鑰。Anderson PUF利用FPGA切片(Slice)中可配置為移位寄存器的查找表單元LUT(Look Up Table)和進(jìn)位邏輯中的級聯(lián)二選一開關(guān)搭建出互相競爭的2路延時(shí)通路,并使用Slice內(nèi)部的一個(gè)觸發(fā)器進(jìn)行輸出值的判斷,從而實(shí)現(xiàn)1位邏輯0或邏輯1的響應(yīng)輸出。PUF模塊中,生成1位PUF響應(yīng)需要4個(gè)Slice,生成128位的PUF響應(yīng)需要512個(gè)Slice。

        Table 1 AES encryption standard表1 AES不同加密標(biāo)準(zhǔn)

        Table 2 Area overhead after synthesis表2 綜合后面積開銷

        3.2 AES模塊

        AES[19]全稱為高級加密標(biāo)準(zhǔn),它由美國國家標(biāo)準(zhǔn)技術(shù)研究所于2001年發(fā)布,目前已成為對稱密鑰加密中最流行的算法之一。AES算法是一種對稱分組密碼算法,通過多輪置換迭代操作得到密文。在AES標(biāo)準(zhǔn)規(guī)范中,分組長度只能是128 bit,而密鑰的長度可以使用128 bit、192 bit或256 bit。密鑰的長度不同,推薦加密輪數(shù)也不同。表1列出了不同的AES加密標(biāo)準(zhǔn)。

        AES加密過程是在一個(gè)4×4的字節(jié)矩陣上進(jìn)行的,其初值就是一個(gè)明文塊。各輪AES加密循環(huán)(除最后一輪外)均包含4個(gè)步驟:字節(jié)替換(SubBytes)、行移位(ShiftRows)、列混合(MixColumns)和輪密鑰加(AddRoundKey)。其中,字節(jié)替換(SubBytes),是通過非線性的替換函數(shù),用查找表的方式把每個(gè)字節(jié)替換成對應(yīng)的字節(jié)。行移位(ShiftRows),是將矩陣中的每個(gè)橫列進(jìn)行循環(huán)式移位。列混合(MixColumns),是為了充分混合矩陣中各個(gè)列的操作,這個(gè)步驟使用線性轉(zhuǎn)換來混合每列的4個(gè)字節(jié)。輪密鑰加(AddRound- Key),則是將矩陣中的每一個(gè)字節(jié)都與該次輪密鑰做異或運(yùn)算。

        本文的設(shè)計(jì)選用了AES-128作為加解密模塊。AES模塊利用PUF模塊產(chǎn)生的128 bit的密鑰對由數(shù)據(jù)地址和數(shù)據(jù)計(jì)數(shù)器組成的128 bit的種子值進(jìn)行加密,從而生成一次性填充。該一次性填充再與數(shù)據(jù)明文或密文進(jìn)行異或,完成對數(shù)據(jù)的加解密操作。

        3.3 計(jì)數(shù)器高速緩存

        由于數(shù)據(jù)所對應(yīng)的計(jì)數(shù)器值與數(shù)據(jù)一起存放在內(nèi)存中,導(dǎo)致每次加解密時(shí)都需要先訪存來得到計(jì)數(shù)器值,然后才能對數(shù)據(jù)進(jìn)行加解密,這樣勢必會(huì)造成很大的訪存延時(shí)[5]。為了降低該訪存延時(shí),本文在安全內(nèi)存加密引擎中加入一個(gè)計(jì)數(shù)器高速緩存,將計(jì)數(shù)器值緩存在計(jì)數(shù)器高速緩存中,從而減少數(shù)據(jù)加解密時(shí)的訪存次數(shù),大大提高加解密速度。

        3.4 將安全內(nèi)存加密引擎集成到RISC-V嵌入式微處理器

        結(jié)合RISC-V嵌入式微處理器Ariane的特點(diǎn),將設(shè)計(jì)的安全內(nèi)存加密引擎集成到了Ariane的高速緩存和內(nèi)存控制器之間,如圖6所示。從Ariane核發(fā)出的有效訪存請求都會(huì)首先經(jīng)過安全內(nèi)存加密引擎。安全內(nèi)存加密引擎會(huì)對訪存的數(shù)據(jù)進(jìn)行加解密操作,完成加解密操作后再將數(shù)據(jù)送往內(nèi)存控制器或者Ariane的高速緩存。Ariane的高速緩存一次性讀寫128 bit的數(shù)據(jù),能夠與使用AES模塊加密生成的128 bit的一次性填充進(jìn)行異或操作來進(jìn)行加解密。生成一次性填充時(shí),使用到了該數(shù)據(jù)的地址以及該數(shù)據(jù)的計(jì)數(shù)器值。

        Figure 6 Secure memory encryption engine location圖6 安全內(nèi)存加密引擎位置

        4 評估

        本文使用SystemVerilog設(shè)計(jì)的安全內(nèi)存加密引擎,并使用Vivado 2018.2在Genesys2 FPGA開發(fā)板上進(jìn)行了綜合實(shí)現(xiàn),以評估安全內(nèi)存加密引擎對RISC-V嵌入式微處理器訪存性能方面的影響和面積方面的影響。

        (1)訪存性能方面。安全內(nèi)存加密引擎在Genesys2 FPGA開發(fā)板上的時(shí)鐘頻率和RISC-V內(nèi)核的一致,RISC-V內(nèi)核訪存一次平均需要110個(gè)時(shí)鐘周期,AES模塊加密一次需要21個(gè)時(shí)鐘周期。在PUF模塊生成密鑰且計(jì)數(shù)器高速緩存命中的情況下,只需要11個(gè)時(shí)鐘周期就能生成一次性填充。生成的一次性填充再與訪存得到的數(shù)據(jù)進(jìn)行異或操作就能完成加解密。由于加密生成一次性填充的過程與訪存的過程可以并行進(jìn)行,一次性填充能夠提前完成,這種情況下只需等待訪存獲得數(shù)據(jù)后再進(jìn)行異或操作就能完成加解密,其訪存延時(shí)還是110個(gè)時(shí)鐘周期。而如果采用直接加密的方式來設(shè)計(jì)安全內(nèi)存加密引擎,由于其直接使用AES來對訪存數(shù)據(jù)進(jìn)行加解密,AES模塊的加解密延時(shí)將會(huì)附加到訪存延時(shí)上,其訪存延時(shí)將變?yōu)?11個(gè)時(shí)鐘周期。相比于直接加密,本文設(shè)計(jì)的計(jì)數(shù)器模式的安全內(nèi)存加密引擎對訪存性能的影響更小。

        (2)面積方面。使用Vivado 2018.2在Genesys2 FPGA開發(fā)板上對集成了安全內(nèi)存加密引擎的RISC-V嵌入式微處理器進(jìn)行了綜合。綜合后的面積開銷情況如表2所示。從表2中可以看出,在總的LUT單元使用情況方面,安全內(nèi)存加密引擎只占到了整個(gè)RISC-V嵌入式微處理器的13%,其中計(jì)數(shù)器高速緩存所占用的LUT單元數(shù)較多,達(dá)到了7%。在FF單元使用情況方面,安全內(nèi)存加密引擎只占到了整個(gè)RISC-V嵌入式微處理器的11%,其中AES加密單元所使用的FF單元數(shù)較多,達(dá)到了7.8%??梢钥闯?,安全內(nèi)存加密引擎的面積開銷相對于整個(gè)RISC-V嵌入式微處理器來說是比較小的,對整個(gè)RISC-V嵌入式微處理器的面積影響較小。

        5 結(jié)束語

        本文主要利用PUF和計(jì)數(shù)器模式的AES加密技術(shù),設(shè)計(jì)了一種適用于嵌入式微處理器的輕量級、低開銷的安全內(nèi)存加密引擎,不僅將其集成到了RISC-V嵌入式微處理器中,而且還通過Genesys 2 FPGA開發(fā)板對其進(jìn)行了評估。評估結(jié)果表明,安全內(nèi)存加密引擎能夠在提升RISC-V嵌入式微處理器安全性的同時(shí),保證其合理的訪存性能,以及較小的面積開銷。

        猜你喜歡
        加解密計(jì)數(shù)器引擎
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        PDF中隱私數(shù)據(jù)的保護(hù)方法
        電子取證中常見數(shù)據(jù)加解密理論與方法研究
        基于FPGA的LFSR異步加解密系統(tǒng)
        計(jì)數(shù)器競爭冒險(xiǎn)及其處理的仿真分析
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募咏饷芟到y(tǒng)研究
        軟件工程(2014年11期)2014-11-15 20:02:46
        任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
        河南科技(2014年10期)2014-02-27 14:09:30
        少妇愉情理伦片丰满丰满| 青青草激情视频在线播放| 丰满少妇被爽的高潮喷水呻吟| 人妻少妇被粗大爽视频| 日本成本人片视频免费| 亚洲欧美日韩成人高清在线一区| 中文字幕一区二区三区日韩精品| 亚洲色大网站www永久网站| 亚洲天堂在线播放| 少妇高潮尖叫黑人激情在线| 人妻熟妇乱又伦精品视频app| 久久成年片色大黄全免费网站| 亚洲AV无码一区二区三区性色学| 一区二区无码精油按摩| 日本免费a一区二区三区| 国产午夜精品视频观看| 一区二区三区四区国产99| 国产精品久久成人网站| 国产免费av片在线播放| 亚洲av成人无码网天堂| av天堂精品久久久久| 久久精品女人天堂AV一个| 少妇高潮精品正在线播放| 91久久综合精品久久久综合| 男人扒开女人双腿猛进视频| 日韩一卡2卡3卡4卡新区亚洲| 综合无码一区二区三区四区五区| 2021最新久久久视精品爱| 亚洲国产综合久久精品| 二区视频在线免费观看| 性无码一区二区三区在线观看| 蜜臀久久99精品久久久久久小说| 久久免费大片| 成人国产一区二区三区精品不卡| 老岳肥屁熟女四五十路| 亚洲中文字幕精品乱码2021 | 成人免费看aa片| 天天躁人人躁人人躁狂躁| 日韩在线精品在线观看| 蜜桃精品国产一区二区三区| 国产精品婷婷久久爽一下|