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

一種適用于SHE 規(guī)范的安全加密電路設(shè)計(jì)

2024-03-20 04:31:04史興強(qiáng)劉夢(mèng)影王芬芬
電子技術(shù)應(yīng)用 2024年2期
關(guān)鍵詞:指令

史興強(qiáng),劉夢(mèng)影,王芬芬

(1.中國(guó)電子科技集團(tuán)第五十八研究所,江蘇 無(wú)錫 214035;2.中科芯集成電路有限公司,江蘇 無(wú)錫 214072)

0 引言

當(dāng)今世界隨著全球信息化和網(wǎng)絡(luò)化的高速發(fā)展,信息安全問(wèn)題也與日俱增,信息安全問(wèn)題在各個(gè)領(lǐng)域越來(lái)越受到重視[1],汽車(chē)行業(yè)尤其顯著。當(dāng)前社會(huì)對(duì)于汽車(chē)的需求往往更偏向于功能的提升,因此汽車(chē)電子系統(tǒng)日漸復(fù)雜且越來(lái)越數(shù)字化,汽車(chē)電子系統(tǒng)不僅需要具備運(yùn)算更強(qiáng)的控制單元,更高速的數(shù)據(jù)傳輸功能[2],更集成了無(wú)人駕駛、物聯(lián)網(wǎng)和5G 等新技術(shù),因此,安全、智能、可靠和低碳環(huán)保的網(wǎng)聯(lián)汽車(chē)必然是全球汽車(chē)行業(yè)共同的發(fā)展趨勢(shì)[3]。汽車(chē)電子系統(tǒng)復(fù)雜化和數(shù)字化導(dǎo)致車(chē)載電子系統(tǒng)的數(shù)量越來(lái)越多,從而使得車(chē)輛越來(lái)越易受到網(wǎng)絡(luò)安全攻擊。汽車(chē)系統(tǒng)不僅存儲(chǔ)大量的用戶(hù)數(shù)據(jù)(包括車(chē)輛行駛記錄、車(chē)主個(gè)人信息和導(dǎo)航數(shù)據(jù)等),而且具有眾多ECU,用戶(hù)數(shù)據(jù)的竊取和篡改或者ECU 非法替換等都會(huì)造成經(jīng)濟(jì)甚至生命的損失,因此對(duì)汽車(chē)系統(tǒng)進(jìn)行信息安全防御是非常必要的。

近年來(lái),針對(duì)如何加強(qiáng)汽車(chē)信息安全,許多研究提出相關(guān)方案。王玲[4]提出了一種基于AES 的RKE 單向認(rèn)證協(xié)議改進(jìn)的雙向通信認(rèn)證協(xié)議,采用一個(gè)固定密鑰和一個(gè)動(dòng)態(tài)密鑰的AES 加密來(lái)保證數(shù)據(jù)的安全性,并將該協(xié)議應(yīng)用于免鑰門(mén)禁技術(shù),但是該協(xié)議不存在對(duì)密鑰的管理機(jī)制,存在密鑰泄露的風(fēng)險(xiǎn)。劉鵬[5]提出了一種適用于短碼場(chǎng)景的車(chē)聯(lián)網(wǎng)安全通信方案,采用ECC 和AES 結(jié)合的混合加密方案,選用QR 碼完成數(shù)據(jù)檢錯(cuò)糾錯(cuò),實(shí)現(xiàn)安全、可靠、高吞吐的數(shù)據(jù)傳輸。孫怡琳[2]在XXTEA 異或加密算法和HMAC 認(rèn)證算法的技術(shù)基礎(chǔ)上,設(shè)計(jì)了一種動(dòng)態(tài)加密機(jī)制來(lái)實(shí)現(xiàn)車(chē)內(nèi)網(wǎng)絡(luò)CAN 總線的安全通信。王龍[3]設(shè)計(jì)了一個(gè)面向汽車(chē)的數(shù)字身份管理系統(tǒng),可以對(duì)車(chē)輛本身和主要電子零部件的數(shù)字身份進(jìn)行有效識(shí)別和管理。

本文基于AES 算法,設(shè)計(jì)了一個(gè)適用于SHE 規(guī)范的安全加密電路。該電路支持ECB 和CBC 模式下的AES-128 加密解 密、CMAC 生成和驗(yàn)證、Miyaguchi-Preneel 壓縮算法等。此外,該安全加密模塊符合SHE 規(guī)范標(biāo)準(zhǔn),支持密鑰管理、運(yùn)算隔離等保護(hù)措施,具有嚴(yán)格的訪問(wèn)權(quán)限,由硬件域控制加密密鑰的管理,保護(hù)密鑰免受軟件攻擊,提高設(shè)備信息安全性能,以獲得比軟件執(zhí)行更好的硬件性能和保護(hù)。

1 AES 加密算法

AES 算法是2001 年由NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所)為替代數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)而發(fā)布的新一代數(shù)據(jù)高級(jí)加密標(biāo)準(zhǔn)[6]。該算法是由比利時(shí)科學(xué)家Joan Daemen 和Vincent Rijmen 提出的,它是一種明文分組長(zhǎng)度和秘鑰長(zhǎng)度均可變的分組密碼算法,也是一個(gè)對(duì)稱(chēng)分組算法。其明文分組長(zhǎng)度和秘鑰長(zhǎng)度都可獨(dú)立地設(shè)定為128、192 或256 比特[7],與秘鑰相關(guān)的迭代輪數(shù)Nr 分別為10、12 或14 輪[8]。在AES高級(jí)加密標(biāo)準(zhǔn)規(guī)范中限定明文分組長(zhǎng)度只能是128 比特,秘鑰長(zhǎng)度可選擇三者中的任意一種。

1.1 AES 加密流程

AES 加密算法主要完成明文到密文的轉(zhuǎn)換,包含字節(jié)替換、行移位、列混淆和輪秘鑰加4 個(gè)步驟[9],其算法結(jié)構(gòu)如圖 1 所示,共計(jì)10 輪變換。

AES 算法以字節(jié)為單位進(jìn)行運(yùn)算,其中的明文是一個(gè)128 比特分組,即16 個(gè)字節(jié),被描述為一個(gè)4×4 的狀態(tài)矩陣,其中前4 個(gè)字節(jié)被復(fù)制到第1 列,緊接著的4 個(gè)字節(jié)被復(fù)制到第2 列,依次往下,最后4 個(gè)字節(jié)被復(fù)制到第4 列。例如一個(gè)128 比特?cái)?shù)據(jù)A,其表示為:A=a0,a1,a2,…,a15,則在進(jìn)行加密運(yùn)算時(shí),表示為矩陣S,形式如:

字節(jié)替換又叫做S 盒替換,用來(lái)完成明文分組的字節(jié)到字節(jié)的替換,它可通過(guò)S 盒把輸入或中間態(tài)s 中的每一個(gè)字節(jié){xsys}映射為另一個(gè)字節(jié),對(duì)每一個(gè)字節(jié)數(shù)據(jù)中的每一位都能起到混淆作用。AES 中,只有字節(jié)替換是非線性變換,因此在面對(duì)已知攻擊時(shí)字節(jié)替換具有極其重要的作用,在秘鑰擴(kuò)展過(guò)程中也使用了該運(yùn)算。S 盒替換運(yùn)用查找表的形式實(shí)現(xiàn),雖然該方法占用較大的硬件資源,但關(guān)鍵路徑短、速度快、結(jié)構(gòu)簡(jiǎn)單且設(shè)計(jì)實(shí)現(xiàn)難度小,綜合考慮硬件資源和速度兩個(gè)因素,該方法最為合適。

行移位是對(duì)狀態(tài)矩陣S的行進(jìn)行循環(huán)的移位操作,將某個(gè)字節(jié)從一列移動(dòng)到另一列,它的線性距離是4 字節(jié)的倍數(shù),這個(gè)轉(zhuǎn)換能夠確保每列中的任意一個(gè)字節(jié)都移到不同的列中。對(duì)于一個(gè)4×4 的狀態(tài)矩陣,秘鑰長(zhǎng)度為128 比特,第0、1、2、3 行根據(jù)密鑰長(zhǎng)度分別向左移動(dòng)0、1、2、3 個(gè)字節(jié)。

列混淆是對(duì)行移位后的狀態(tài)矩陣S進(jìn)行列的變換,將狀態(tài)矩陣的每一列看作系數(shù)取自有限域GF(28)且次數(shù)小于4 的多項(xiàng)式,然后與多項(xiàng)式c(x)相乘并模多項(xiàng)式x4+1。AES 算法給出c(x)={03}x3+{01}x2+{01}x+{02}[10]。

列混淆變換中每列的運(yùn)算可用如下矩陣表示:

輪密鑰加是將數(shù)據(jù)加密和密鑰結(jié)合的過(guò)程,通過(guò)列混淆后的矩陣S與輪密鑰矩陣W做相加運(yùn)算實(shí)現(xiàn),即進(jìn)行異或操作,配合相對(duì)復(fù)雜的密鑰擴(kuò)展流程可以保證該步驟的復(fù)雜度。其運(yùn)算過(guò)程如下所示:

密鑰矩陣W通過(guò)密鑰擴(kuò)展獲得,由圖 1 可知,整個(gè)AES 算法加密需要10 輪運(yùn)算共計(jì)11 次輪密鑰加,且每一輪相加的子密鑰均不同。秘鑰擴(kuò)展是加解密重要的組成部分,通過(guò)對(duì)初始的128、192、256 位秘鑰進(jìn)行擴(kuò)展,產(chǎn)生每輪輪變換中需要的秘鑰。

當(dāng)秘鑰長(zhǎng)度為128 比特時(shí),先將種子秘鑰劃分為4個(gè)字,再通過(guò)秘鑰擴(kuò)展運(yùn)算生成每輪迭代所需的4 個(gè)秘鑰字,最終完成44 個(gè)32 位字的構(gòu)造。

密鑰擴(kuò)展的基本原則如下[11]:

密鑰擴(kuò)展涉及的函數(shù)T是在簡(jiǎn)單的異或運(yùn)算中進(jìn)一步混淆密鑰生成過(guò)程[12],該計(jì)算過(guò)程如圖 2 所示。

圖2 中,Rcon[j]為輪常數(shù),其中j=i/4,Rcon[j]與j的關(guān)系在表 1 中列出。

表1 輪常數(shù)

1.2 AES 加密模式

NIST 于2000 年3 月為AES 散發(fā)公開(kāi)征集工作模式[13],并于2001 年公開(kāi)了5 種工作模式,分別為電子密碼本(Electronic Code Book,ECB)模式、密文分組鏈接(Cipher Block Chain,CBC)模 式、密文反 饋(Cipher Feedback,CFB)模式、輸出反饋(Output Feedback,OFB)模式、計(jì)算器(Counter,CTR)模式[14],SHE 規(guī)范涉及其中的ECB 和CBC 兩種工作模式。

ECB 模式是最早采用和最簡(jiǎn)單的模式,它將加密的數(shù)據(jù)分成若干組,每組的大小與加密密鑰長(zhǎng)度相同,每組使用相同的密鑰進(jìn)行加密。ECB 模式加密過(guò)程如圖3所示,該模式明文分組與密文分組是一一對(duì)應(yīng)的關(guān)系,且加密分塊之間不相互影響,可通過(guò)密文的規(guī)律推測(cè)出明文規(guī)律,存在一定的風(fēng)險(xiǎn)。

CBC 模式在加密當(dāng)前明文塊時(shí)需與前一個(gè)密文塊進(jìn)行異或計(jì)算后再進(jìn)行加密操作[15],第一塊需要初始向量進(jìn)行異或運(yùn)算,然后加密作為第一塊密文塊,隨后每一個(gè)明文分塊在加密前均需與前一個(gè)密文塊進(jìn)行異或運(yùn)算,隨后再進(jìn)行加密運(yùn)算。加密過(guò)程如圖4 所示。因此,每一次加密都需要前一次密文的參與,明文中微小的改變都會(huì)使后續(xù)所有的密文改變,該模式具有較高的安全性。

2 安全加密電路設(shè)計(jì)

本文設(shè)計(jì)了一種安全加密電路,該電路基于AES 加密算法,支持ECB 和CBC 模式下的AES-128 加密解密、CMAC 生成和驗(yàn)證、Miyaguchi-Preneel 壓縮算法等。此外,該安全加密模塊符合SHE 規(guī)范標(biāo)準(zhǔn),支持密鑰管理、運(yùn)算隔離等保護(hù)措施,提高設(shè)備信息安全性能,以獲得比軟件執(zhí)行更好的硬件性能和保護(hù)。

2.1 SHE 規(guī)范

SHE 在車(chē)聯(lián)網(wǎng)中,被應(yīng)用在車(chē)端ECU 中負(fù)責(zé)安全存儲(chǔ)和安全計(jì)算,是由HIS 制定的標(biāo)準(zhǔn)。它旨在將對(duì)加密密鑰的控制從軟件域移到硬件域,從而保護(hù)這些密鑰免受軟件攻擊,設(shè)備和數(shù)據(jù)的安全性?xún)H依賴(lài)于算法的強(qiáng)度和密鑰的機(jī)密性。

圖5 為SHE 邏輯結(jié)構(gòu)圖,有一塊單獨(dú)的安全區(qū)域,該區(qū)域中即為SHE 定義的模塊,該模塊包括控制邏輯、AES 算法、存儲(chǔ)單元、偽隨機(jī)數(shù)生產(chǎn)器,且該模塊僅與CPU 通信。同時(shí),SHE 必須被實(shí)現(xiàn)為微控制器的片上外圍設(shè)備,可通過(guò)多種方式連接到CPU,如:通過(guò)專(zhuān)用接口或內(nèi)部外圍總線,互連必須以其他外設(shè)或外部實(shí)體不能修改CPU 和SHE 之間傳輸數(shù)據(jù)的實(shí)現(xiàn)方式。

AES 算法即為AES-128 的加密和解密算法,通過(guò)控制邏輯模塊控制加載密鑰和數(shù)據(jù)信號(hào),輸入數(shù)據(jù)流等,調(diào)用AES 算法模塊以實(shí)現(xiàn)ECB 和CBC 模式下的AES 加解密、CMAC 生成、壓縮函數(shù)等算法;存儲(chǔ)單元存放密鑰數(shù)值、密鑰屬性等相關(guān)信息,密鑰相關(guān)信息僅允許控制邏輯訪問(wèn),且不能隨意讀取和修改;執(zhí)行命令的控制信號(hào)、輸入數(shù)據(jù)以及需要輸出的數(shù)據(jù)等,SHE 規(guī)范涉及的命令在表 2 中列出,每條命令實(shí)現(xiàn)不同的功能,且對(duì)應(yīng)一個(gè)FuncID,應(yīng)用程序?qū)⒁獔?zhí)行的命令、所需控制字段和輸入數(shù)據(jù)按照一定的格式通過(guò)總線寫(xiě)入存儲(chǔ)單元,控制邏輯從中讀取并解析,完成指令操作。

2.2 算法硬件實(shí)現(xiàn)

本文設(shè)計(jì)的安全加密電路支持AES-128 在ECB 和CBC 模式下的加密和解密、CMAC 的生成和校驗(yàn)、Miyaguchi-Preneel 壓縮算法,其中CMAC 的生成和Miyaguchi-Preneel 壓縮算法均基于AES 算法實(shí)現(xiàn)。

根據(jù)2.1 節(jié)介紹的AES 加密流程,設(shè)計(jì)了AES 算法模塊。輸入信號(hào)包括加載密鑰或數(shù)據(jù)控制信號(hào)Ld_cmd,128 比特的密鑰數(shù)值KEY,128 比特明文數(shù)據(jù)TextIn,輸出信號(hào)包括當(dāng)前明文加密完成信號(hào)AES_cipher_done,128 比特密文數(shù)據(jù)TextOut。圖6 所示為AES加密時(shí)序,T2 時(shí)鐘周期,Ld_cmd 有效,同時(shí)密鑰KEY 和密文TextIn 一并輸入;下個(gè)時(shí)鐘T3 周期密鑰擴(kuò)展開(kāi)始進(jìn)行計(jì)算得到第一輪擴(kuò)展密鑰wk[0:3],與明文進(jìn)行異或計(jì)算得到狀態(tài)矩陣Sa(T3);T4 周期,將狀態(tài)矩陣Sa(T3)通過(guò)S 盒替換,行移位和列混淆等計(jì)算,并與下一輪擴(kuò)展密鑰wk[4:7] 進(jìn)行異或計(jì)算得到第一輪狀態(tài)矩陣Sa(T3),以此類(lèi)推,在進(jìn)行最后一輪計(jì)算時(shí)即T14 時(shí)鐘周期,Sa(T13)通過(guò)S 盒替換和行移位計(jì)算后,與擴(kuò)展密鑰wk[40:43]進(jìn)行異或運(yùn)算得到最終的密文,此時(shí)加密完成信號(hào)AES_cipher_done 置為1,TextOut 輸出有效密文數(shù)據(jù)。

該設(shè)計(jì)采用迭代運(yùn)算過(guò)程和流水線結(jié)構(gòu),可以復(fù)用硬件邏輯循環(huán)迭代來(lái)進(jìn)行運(yùn)算,節(jié)約了邏輯資源,雖然需要消耗多個(gè)時(shí)鐘周期才能得到一個(gè)密文數(shù)據(jù),但其吞吐率能夠滿(mǎn)足SHE 規(guī)范規(guī)定的最大2 μs 的等待周期。

圖7 為CMAC 計(jì)算過(guò)程,將信息碼分為n個(gè)128 比特的信息塊,即M=M1||M2||…||Mn-1||Mn*,采用AES-128 CBC 模式,使用密鑰K對(duì)每塊信息碼進(jìn)行加密,對(duì)于最后一塊信息碼,不僅需要根據(jù)其位寬補(bǔ)全128 比特,還需根據(jù)密鑰K計(jì)算得到所需K1和K2,如果最后一塊信息碼Mn*為完整的信息碼,則Mn*與K1異或之后作為最后一個(gè)信息碼進(jìn)行AES-128 加密計(jì)算;如果Mn*為非完整的信息碼,則先補(bǔ)齊Mn*,再與K2異或之后作為最后一個(gè)信息碼進(jìn)行AES-128 加密計(jì)算。取最后一組密文的高有效位Tlen 作為MAC 值OUTn。

根據(jù)CMAC 計(jì)算過(guò)程,且為便于正確地處理密鑰載入和數(shù)據(jù)載入控制信號(hào),以及輸入數(shù)據(jù)流,本文在實(shí)現(xiàn)CMAC 算法硬件電路設(shè)計(jì)了一個(gè)有限狀態(tài)機(jī),其狀態(tài)和跳轉(zhuǎn)條件在圖 8 中詳細(xì)標(biāo)出。該狀態(tài)默認(rèn)處于空閑狀態(tài)(IDLE),當(dāng)密鑰載入控制信號(hào)有效,且密鑰數(shù)值K同時(shí)輸入,則狀態(tài)跳轉(zhuǎn)至K1、K2生成狀態(tài)(K1K2_GEN),此時(shí)調(diào)用AES-128 的CBC 模式加密算法,使用密鑰K對(duì)0128進(jìn)行加密;K1和K2計(jì)算完成之后,可載入待計(jì)算的數(shù)據(jù)Mi,如果Mi不為最后一個(gè)信息碼,狀態(tài)處于跳至計(jì)算前N個(gè)信息碼狀態(tài)(CAL_FRONT_NBLOCK),同樣調(diào)用AES-128 的CBC 模式加密算法,每次當(dāng)前信息碼加密完成之后,再載入新的數(shù)據(jù)進(jìn)行AES 加密;當(dāng)計(jì)算最后一個(gè)信息碼時(shí),狀態(tài)跳至CAL_LAST_BLOCK,該次加密得到的密文即為CMAC 結(jié)果。

Miyaguchi-Preneel 壓縮算法是一種單向密碼散列函數(shù),由Miyaguchi 和Preneel 于1992 年提出,主要用于數(shù)據(jù)完整性檢查、數(shù)字簽名等安全應(yīng)用場(chǎng)景。相較于SHA-1 和 MD5 等傳統(tǒng)的密碼散列函數(shù),MP 壓縮算法不僅可以提供相同的安全保障,而且具有運(yùn)算速度較快、安全性好、內(nèi)存占用小等優(yōu)勢(shì)。該壓縮算法的每一塊消息都會(huì)作為明文Mi,而前一塊明文的壓縮結(jié)果OUTi-1作為密鑰,對(duì)Mi進(jìn)行AES 加密計(jì)算,輸出之后的密文、Mi和OUTi-1三者進(jìn)行異或運(yùn)算,最終得到當(dāng)前明文的壓縮數(shù)據(jù)OUTi,該算法的表達(dá)式如下所示:

其中,OUT0=0128。

2.3 安全加密模塊硬件設(shè)計(jì)

基于AES 算法,本文設(shè)計(jì)了一種適用于SHE 規(guī)范的安全加密模塊,設(shè)計(jì)框圖如圖9 所示。該電路主要包括4 個(gè) 模塊:AES 算 法模 塊、SHE_ctrl 模 塊、PRAM_ctrl 模塊以及Flexram_ctrl 模塊。AES 算法模塊主要實(shí)現(xiàn)AES-128 加密和解密功能。SHE_ctrl 模塊主要實(shí)現(xiàn)SHE 指令解析、控制算法輸入信號(hào)和指令輸入輸出數(shù)據(jù)流等。用戶(hù)程序可通過(guò)總線向CSEc_PRAM 中按照規(guī)定的格式和地址寫(xiě)入命令相關(guān)信息,包括包含F(xiàn)uncID 的命令頭、控制字段和輸入數(shù)據(jù)等,安全加密模塊則通過(guò)PRAM_ctrl模塊從CSEc_PRAM 獲取指令相關(guān)信息,待SHE_ctrl 模塊完成該指令,將需輸出的數(shù)據(jù)和狀態(tài)信息寫(xiě)入CSEc_PRAM 供用戶(hù)程序獲取。FlexRAM 中存放密鑰及其相關(guān)信息,規(guī)定每個(gè)密鑰存放在相應(yīng)的地址,SHE_ctrl模塊通過(guò)Flexram_ctrl 對(duì)相應(yīng)的密鑰區(qū)域進(jìn)行讀寫(xiě)操作。由此可知,該安全加密模塊嚴(yán)格控制了密鑰的訪問(wèn)權(quán)限,僅SHE_ctrl 模塊可以讀取密鑰數(shù)值等相關(guān)信息;且在命令執(zhí)行過(guò)程中,運(yùn)算過(guò)程和數(shù)據(jù)不被其他模塊和應(yīng)用程序影響和訪問(wèn)。

本文設(shè)計(jì)的安全加密模塊支持表2 列出的所有指令,由于同一時(shí)間僅能夠執(zhí)行一條指令,且不同的指令存在訪問(wèn)相同地址區(qū)域、調(diào)用相同算法等共性操作,因此為節(jié)約硬件資源,提高指令完成效率,設(shè)計(jì)了指令處理狀態(tài)機(jī)(如圖 10 所示),該狀態(tài)機(jī)共有17 個(gè)狀態(tài)。

表2 SHE 指令

表3 對(duì)于每個(gè)狀態(tài)進(jìn)行了簡(jiǎn)要的闡述,根據(jù)命令操作的具體流程,合并相同的步驟,整理得到表中列舉的狀態(tài)。例如,Rd_CSEc_Pram_ST1 狀態(tài),每條指令都需跳轉(zhuǎn)至該狀態(tài),讀取命令頭,并判斷相關(guān)信息是否有效,如果命令頭判定為無(wú)效則狀態(tài)跳轉(zhuǎn)至ERR_ST,向CSEc_PRAM 中寫(xiě)入該錯(cuò)誤對(duì)應(yīng)的ERROR_BIT(具體對(duì)應(yīng)關(guān)系在表 4 詳細(xì)列出),否則根據(jù)當(dāng)前命令跳轉(zhuǎn)至其他狀態(tài)進(jìn)行下一步操作。

表3 SHE 命令處狀態(tài)描述

表4 錯(cuò)誤情況狀態(tài)跳轉(zhuǎn)

表5 AES 數(shù)據(jù)測(cè)試

以執(zhí)行指令ENC 為例,該命令是對(duì)所有明文進(jìn)行ECB 模式的AES-128 加密,該指令的硬件流程如圖11 所示。當(dāng)應(yīng)用程序通過(guò)總線寫(xiě)入該指令執(zhí)行所需數(shù)據(jù)信息、控制信號(hào)和命令頭,則狀態(tài)機(jī)從WAIT_ST 跳轉(zhuǎn)至Rd_CSEc_Pram_ST1,并判斷密鑰標(biāo)志和FuncID 是否有效,如果無(wú)效則狀態(tài)跳轉(zhuǎn)至ERR_ST 以向CSEc_PRAM錯(cuò)誤狀態(tài)位寫(xiě)入相應(yīng)的ERROR_BIT;否則跳轉(zhuǎn)至Rd_Flexram_ST,根據(jù)密鑰標(biāo)志從對(duì)應(yīng)的FlexRAM 地址讀取該密鑰數(shù)據(jù)及其屬性參數(shù),并判斷密鑰是否為空且密鑰屬性是否允許該密鑰使用,如果密鑰為空或密鑰屬性與當(dāng)前不匹配,則狀態(tài)跳轉(zhuǎn)至ERR_ST,否則跳轉(zhuǎn)至Rd_CSEc_Pram_ST2 讀取控制參數(shù)待加密明文個(gè)數(shù);緊接著再?gòu)腃SEc_PRAM 中讀取一個(gè)128 比特待加密明文,進(jìn)入AES-128 加密進(jìn)程;當(dāng)加密完成,生成的密文則寫(xiě)入CSEc_PRAM 相應(yīng)的地址,并判斷是否還有待加密明文,如果有則硬件繼續(xù)從CSEc_PRAM 中讀取明文并進(jìn)行AES 加密計(jì)算,并將密文結(jié)果寫(xiě)入CSEc_PRAM,如此反復(fù)上述操作,直至所有明文信息都完成加密,并輸出每個(gè)密文結(jié)果,此時(shí),狀態(tài)機(jī)跳轉(zhuǎn)至NO_ERR_ST,硬件在CSEc_PRAM 錯(cuò)誤狀態(tài)位寫(xiě)入0x800。至此,ENC_ECB 指令執(zhí)行完成。

圖1 128-AES 算法結(jié)構(gòu)

圖2 函數(shù)T 的計(jì)算過(guò)程

圖3 ECB 模式加密過(guò)程

圖4 CBC 模式的加密過(guò)程

圖5 SHE 邏輯結(jié)構(gòu)圖

圖6 AES 加密時(shí)序圖

圖7 CMAC 計(jì)算過(guò)程

圖8 CMAC 計(jì)算狀態(tài)機(jī)

圖9 安全加密模塊設(shè)計(jì)框圖

圖10 SHE 指令處理狀態(tài)機(jī)

圖11 ENC 指令硬件處理流程

3 仿真與分析

本文使用Verilog HDL 語(yǔ)言對(duì)所設(shè)計(jì)的安全加密電路進(jìn)行設(shè)計(jì)描述,在功能仿真中搭建測(cè)試設(shè)備模型,使用Cadence irun 和 Novas Verdi 聯(lián)合仿真環(huán)境。編寫(xiě)testcase 模擬應(yīng)用程序向系統(tǒng)發(fā)出SHE 指令。根據(jù)SHE協(xié)議提供的測(cè)試案例,將仿真結(jié)果和案例結(jié)果進(jìn)行對(duì)比,同時(shí)驗(yàn)證了該安全加密電路的設(shè)計(jì)是否合理可靠。

針對(duì)ENC_CBC 指令,采用密鑰KEY=128’h 2b7e151628aed2a6abf7158809cf4f3c,初始向量IV=128’h 000102030405060708090a0b0c0d0e0f,明文數(shù)據(jù)和密文在表 5 中列出,該結(jié)果與測(cè)試案例提供的結(jié)果一致。

圖12為加密模塊執(zhí)行該指令的仿真波形圖。cmd_cur_st為當(dāng)前狀態(tài)機(jī)狀態(tài)信號(hào),ld_cmd_aes為AES算法模塊加載明文控制信號(hào),AES_cipher_done 為AES 加密完成信號(hào),TextIn_aes 為輸入數(shù)據(jù),TextOut_aes 為輸出數(shù)據(jù)。從仿真圖可見(jiàn),狀態(tài)機(jī)跳轉(zhuǎn)符合圖 11 的設(shè)計(jì),每次加密完成則將密文信息寫(xiě)入CSEc_PRAM 相應(yīng)區(qū)域,csec_pram_wr_req連續(xù)置位4 次,完成1 個(gè)128 比特密文的寫(xiě)入。

圖12 ENC_CBC 仿真波形

在SHE 眾多指令中,執(zhí)行過(guò)程最為繁瑣的為L(zhǎng)OAD_KEY 指令,也是密鑰管理的主要指令,其涉及了AES 加密和解密算法、CMAC 計(jì)算、MP 壓縮算法等。該命令執(zhí)行流程可分為兩個(gè)子流程:密鑰加載/更新流程和校驗(yàn)信息生成流程,分別對(duì)應(yīng)圖13 和圖14。加密模塊通過(guò)壓縮函數(shù)算法和CMAC 函數(shù)計(jì)算得到M3,并與輸入?yún)?shù)M3′的值進(jìn)行對(duì)比,當(dāng)且僅當(dāng)兩參數(shù)相同(圖13 中黑色標(biāo)志處),狀態(tài)機(jī)進(jìn)入CMD_DECRYPT_PROC對(duì)相關(guān)參數(shù)解密得到密鑰更新值128′h0f0e0d0c0b0a090 80706050403020100、密鑰屬性以及計(jì)數(shù)器值,并將上述信息存入Flex_ram 中。

圖13 LOAD_KEY 命令計(jì)算M3

圖14 LOAD_KEY 命令輸出校驗(yàn)信息

加載完新的密鑰之后,加密模塊需要產(chǎn)生校驗(yàn)信息M4 和M5 并輸出,應(yīng)用程序通過(guò)比對(duì)該數(shù)值與后臺(tái)計(jì)算的結(jié)果即可證明密鑰更新成功。

4 結(jié)論

本文基于AES 加密算法,設(shè)計(jì)了一款適用于SHE 規(guī)范的安全加密電路,其支持AES-128 加密解密、CMAC算法和Miyaguchi-Preneel 壓縮算法等。此外,其符合SHE 規(guī)范標(biāo)準(zhǔn),僅允許硬件管理密鑰,具有運(yùn)算隔離等保護(hù)措施。較之傳統(tǒng)的加密模塊,該安全加密電路具有嚴(yán)格的訪問(wèn)權(quán)限,由硬件域控制加密密鑰的獲取和加載更新,保護(hù)密鑰免受軟件攻擊,同時(shí),軟件不能夠干預(yù)數(shù)據(jù)流的加解密過(guò)程以及密鑰更新等操作,提高了設(shè)備和數(shù)據(jù)的安全性和機(jī)密性。

猜你喜歡
指令
聽(tīng)我指令:大催眠術(shù)
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
殺毒軟件中指令虛擬機(jī)的脆弱性分析
巧用G10指令實(shí)現(xiàn)橢圓輪廓零件倒圓角
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測(cè)算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動(dòng)制冷劑行業(yè)發(fā)展
主站蜘蛛池模板: 欧美国产日产一区二区| 婷婷六月激情综合一区| 成人福利在线视频| 亚洲综合香蕉| 国产成人喷潮在线观看| 中文字幕在线看视频一区二区三区| 91亚洲国产视频| 国产福利在线观看精品| 成人欧美在线观看| 婷婷开心中文字幕| 亚洲香蕉伊综合在人在线| 国产精品成人第一区| 午夜天堂视频| 欧美激情福利| 亚洲国产天堂久久综合| 亚洲欧洲日产国码无码av喷潮| 美美女高清毛片视频免费观看| www.99在线观看| 一级爆乳无码av| 国产美女无遮挡免费视频| 成人免费网站久久久| 国产在线观看人成激情视频| 中文成人在线视频| 色婷婷亚洲十月十月色天| 澳门av无码| 视频一区亚洲| 国产成人免费手机在线观看视频| 美女亚洲一区| 天天做天天爱天天爽综合区| 中文字幕首页系列人妻| 伊人久久大线影院首页| 国产精品短篇二区| 免费AV在线播放观看18禁强制| 91精品啪在线观看国产60岁 | 日韩毛片免费视频| 久久久久人妻一区精品色奶水| 在线观看的黄网| 一级成人欧美一区在线观看 | 热伊人99re久久精品最新地| 午夜视频www| 国产美女91视频| igao国产精品| 亚洲永久免费网站| 色婷婷色丁香| 日本免费新一区视频| 国产一区自拍视频| 91在线一9|永久视频在线| 找国产毛片看| 亚洲Av综合日韩精品久久久| 国产对白刺激真实精品91| 2022国产91精品久久久久久| 国产剧情国内精品原创| 成人午夜亚洲影视在线观看| 国产在线拍偷自揄拍精品| 欧美日韩一区二区三| 中文纯内无码H| 92午夜福利影院一区二区三区| 波多野结衣亚洲一区| 一级毛片在线播放| 国产精品久久自在自线观看| 丰满的少妇人妻无码区| 国产毛片片精品天天看视频| 中国国产一级毛片| 午夜电影在线观看国产1区| 亚洲码在线中文在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲国产欧美国产综合久久| 亚洲浓毛av| 精品国产91爱| 日本不卡在线视频| 女人18毛片水真多国产| 青草精品视频| 成人伊人色一区二区三区| 特级毛片免费视频| 一级毛片免费播放视频| 亚洲成a人片77777在线播放| 国产免费久久精品44| 自偷自拍三级全三级视频| 国产亚洲高清视频| 伊人成人在线| 99精品在线视频观看| 国产免费一级精品视频|