自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析AES加密算法的硬件設(shè)計方法

安全 應(yīng)用安全 算法
本文簡要介紹了一種AES的流水線結(jié)構(gòu)的IP核設(shè)計方法,目前采用的是與CPU同源同頻[2]的時鐘,當然,推薦與處理器時鐘做異步處理,并且配合DMA(Direct Memory Access,直接存儲器訪問 )使用,這會使得AES工作在接近自身最大頻率(當然這也是一個功耗與速度的折中),從而能夠最大化緩解CPU的壓力,進一步的提升吞吐量與加密效率。

[[356976]]

在信息安全領(lǐng)域,美國一直處于集成電路IP核[1-6]的壟斷地位,近年,美國對華“斷供”事件愈演愈烈,“中興”、“華為”事件等美對華霸權(quán)行徑也再次讓全世界聚焦到芯片等處理器相關(guān)的信息安全領(lǐng)域[7]。

目前在安全領(lǐng)域,加密算法[14-17]主要通過軟硬件方式設(shè)計實現(xiàn),其中軟件易受設(shè)備限制且較不穩(wěn)定,容易降低數(shù)據(jù)傳輸質(zhì)量,而通過設(shè)計專用芯片的方式實現(xiàn)加密算法是當前信息安全領(lǐng)域的主流,該方法更易于嵌入,適用于完成復(fù)雜功能,IP核復(fù)用性強,具有高可靠性、高加密速率、總體成本較低等優(yōu)點[7]。

本文主要介紹基于FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)的一種AES(Advanced Encryption Standard,高級加密標準)算法的流水線結(jié)構(gòu)設(shè)計,并完成其功能驗證與性能評估[7-8]。

1引 言

1.1研究背景和意義

美國國家標準局于1977年將DES[15](Data Encryption Standard,數(shù)據(jù)加密標準)確定為FIPS(Federal Information Processing Standards,聯(lián)邦信息處理標準),隨后將DES應(yīng)用于各行各業(yè)。隨著密碼破譯技術(shù)[16]的不斷發(fā)展,DES的安全性與應(yīng)用前景面臨極大的挑戰(zhàn),研究人員證明采用DES加解密不再是安全可靠的算法,因此,國際廣泛需要設(shè)計一個安全等級更高、公開的、免費的加密算法-AES[14,30](Advanced Encryption)來適用各大信息敏感領(lǐng)域。NIST(National Institute of Standards and Technology,美國國家標準技術(shù)研究機構(gòu))于1997年向全世界征集新一代的加密算法,該算法需滿足如下(如圖1.1所示)條件:

圖1.1 新一代加密算法需滿足的條件

2000年,來自比利時的Joan Daemaen 和Vincent Rijmen以Square算法為原型設(shè)計的Rijndael算法通過最終評選。2001年,NIST將Rijndael設(shè)計的AES算法發(fā)布于FIPS PUB 197[14],次年成為新一代美國聯(lián)邦政府的區(qū)塊加密標準,從2006年起,AES廣泛應(yīng)用到于各行各業(yè)[7],該算法具備以下優(yōu)點:

1)在不同環(huán)境中(有無反饋)軟硬件實現(xiàn)后的性能表現(xiàn)優(yōu)異。

2)較短的密鑰拓展時間。

3)使用很小的內(nèi)存就可以實現(xiàn)該算法,適合在內(nèi)存較小的環(huán)境中使用。

4)抗攻擊能力強。

5)內(nèi)部循環(huán)結(jié)構(gòu)有益于指令級并行處理器提升性能。

1.2研究意義

圖1.2 AES加密算法應(yīng)用領(lǐng)域

如圖1.2,當今互聯(lián)網(wǎng)高速發(fā)展,加之WiFi與藍牙的成本與功耗逐漸降低,智能穿戴設(shè)備與智能家居極度普及,消費者越來越頻繁地進行在線網(wǎng)絡(luò)支付、電子商務(wù)、通信等日常事務(wù),因此大量的重要數(shù)據(jù)會通過各種計算機網(wǎng)絡(luò)與移動終端等通信設(shè)備進行傳輸。但在互聯(lián)網(wǎng)絡(luò)帶來高效便利的同時,個人數(shù)據(jù)的安全問題也隨之加劇,為避免個人數(shù)據(jù)遭受不法分子的竊取與攻擊,除了在軟件層面要進行安全防御外,更要重視硬件層面的安全防御。因此對處理器硬件加密速度與安全性的提升,是處理器硬件安全方面不可或缺的一部分[7, 23-28]。

在CPU處理器等硬件領(lǐng)域,隨著加州大學(xué)伯克利分校對RISC-V[7,14]指令集的開源,一個降低門檻的精簡指令集的CPU設(shè)計,例如加州大學(xué)伯克利分校的BOOM[18-19]、劍橋大學(xué)的LowRISC[20]、蘇黎世聯(lián)邦理工學(xué)院與意大利博洛尼亞大學(xué)的PULPino[21]、俄羅斯的RISC-V VHDL[22]等類似的處理器,勢必會在5G高速通信領(lǐng)域、AI(人工智能)、工業(yè)機器人、IOT物聯(lián)網(wǎng)、智能自動化甚至國防等領(lǐng)域大面積應(yīng)用,與此同時這些處理器的信息安全問題也必然會引起用戶的重視[7]。

2AES算法原理

AES加密算法(又稱Rijndael算法)采用對稱密碼體制,密鑰分為128bits/192bits/256bits三種長度,簡稱為AES-128/AES-192/AES-256(如表2.1)。該算法使用SP結(jié)構(gòu)(替代/置換),密鑰長度分為128bits、192bits、256bits三種模式,加密過程的輪函數(shù)由4層組成(字節(jié)替換、行位移、列混淆、輪密鑰加),其中S-box使用有限域上GF()的乘法逆運算,使其具備優(yōu)異的線性偏差與差分均勻性[7,14]。

本章簡要介紹了AES的算法中涉及到的參數(shù)等、加密過程、密鑰拓展等。

表2.1 AES三種模式下對應(yīng)的密鑰長度、分組長度、迭代次數(shù)

2.1 AES算法中參數(shù)、符號和函數(shù)介紹

SubBytes( ):使用對每個狀態(tài)矩陣中字節(jié)獨立操作的非線性字節(jié)替換表(S-box)完成對狀態(tài)矩陣中的密碼轉(zhuǎn)換。

ShiftRow( ):通過用不同的偏移量循環(huán)移動狀態(tài)矩陣的最后三行來完成狀態(tài)矩陣的密碼轉(zhuǎn)換。

Mixcolumns( ):列混淆,是加密過程中的轉(zhuǎn)換步驟,它獲取狀態(tài)矩陣的所有列并混合它們的數(shù)據(jù)(彼此獨立)以生成新列。

AddRoundKey( ):輪密鑰加,在AES加密/解密的過程中,通過輪數(shù)據(jù)與輪密鑰的異或,完成狀態(tài)矩陣的構(gòu)建時, 其中狀態(tài)矩陣與輪密鑰長度相等。

XOR:異或操作,操作符為[[356978]]。

InvsubBytes( ):解密過程中的轉(zhuǎn)換,即SubBytes( )的逆變換。

InvShiftRows( ):解密過程中的轉(zhuǎn)換,即ShirtRows( )的逆變換。

InvMixColumns( ):解密過程中的轉(zhuǎn)換,即MixColumns( )的逆變換。

RotWord( ):在輪密鑰拓展過程中使用的函數(shù),它接受一個四字節(jié)的字并執(zhí)行循環(huán)排列。

Rcon [ ] : 輪常量,Rcon[j]為一個字,j為輪數(shù),如表2.2所示:[7,14]

表2.2 輪常量Rcon[j]

2.2加密過程

AES加密/解密流程如圖2.1所示,以“AES-128”模式為例。

加密過程中第1至9輪的操作完全一致,輪函數(shù)由四個步驟組成:字節(jié)替換、行位移、列混合、輪密鑰加,第10輪沒有列混合這一環(huán)節(jié)。其中函數(shù)是密鑰調(diào)度的一個函數(shù)[7]。

圖2.1 AES加密/解密流程圖

圖2.2 密鑰分組

2.2.1 字節(jié)替換

字節(jié)替換(SubBytes( ))是獨立的非線性字節(jié)替換,使用S-box對狀態(tài)矩陣中的每個字節(jié)進行替換,如圖2.3與2.4。S-box通過RAM實現(xiàn)[13]是可逆的,作為字節(jié)代換的“查找表”,狀態(tài)矩陣中的元素(字節(jié))在進行替換時,可將該字節(jié)的高4bits看作“行坐標”,低4bits作為“列坐標”,將對應(yīng)坐標的值作為替換后的值輸出。例如加密時狀態(tài)矩陣輸出的字節(jié)為0xAB(左邊),則查S盒的第0xA行和0xB列,得到值為0x62(右邊),然后用0x62替換原有的0xAB[7,29]。

圖2.3 S-box

圖2.4狀態(tài)矩陣的字節(jié)替換過程

2.2.2 行移位

如圖2.5所示,在行變換(ShiftRow( ))中,狀態(tài)矩陣的第2、3、4行字節(jié)是循環(huán)的,每行有不同的偏移量。第1行不用移位,第2行左移一位,第3行左移兩位,第4行左移三位。

圖2.5行變換中循環(huán)移動狀態(tài)矩陣的后三行

2.2.3 列混合

如圖2.6,狀態(tài)矩陣進行列混合(MixColumns( ))變換時,是逐列進行的,每列均會被處理成上的一個4項式,并用一個特定的矩陣去與該列相乘。

圖2.6 狀態(tài)矩陣中列混合的操作

2.2.4 輪密鑰加

如圖2.1、2.7,輪密鑰狀態(tài)矩陣中的列與輪密文狀態(tài)矩陣中對應(yīng)的列進行異或操作(按列進行),生成新的輪密文狀態(tài)矩陣,作為下一次加密的輸入狀態(tài)矩陣。

圖2.7 狀態(tài)矩陣的輪密鑰加變換圖

2.3密鑰拓展

圖2.8 密鑰拓展

 

2.4 AES解密過程

AES-128解密過程本質(zhì)是加密的逆過程(如圖2.1,2.2),因此解密也需要進行10輪變換,篇幅有限,這里不展開介紹,具體請參考文獻[7]。

3AES流水線結(jié)構(gòu)RTL實現(xiàn)

3.1 流水線AES電路結(jié)構(gòu)

圖3.1流水線結(jié)構(gòu)的AES整體結(jié)構(gòu)圖

如圖3.1所示,流水線設(shè)計將AES的加密與解密單獨分開,并且各自做流水線處理,主要使用大量的組合邏輯,采用“犧牲面積換取速度”的策略[7]。

3.2 AES流水線結(jié)構(gòu)加密電路

如圖3.2為流水線結(jié)構(gòu)AES加密電路,現(xiàn)對其端口信號說明,如表3.1:

表3.1 加密單元端口信號

圖3.2 流水線結(jié)構(gòu)AES加密電路模塊圖

AES-128需要加密迭代10輪(Round_0至Round_9),在迭代之前,輸入的128bits明文會與初始的128bits密鑰進行AddRoundKey( )(輪密鑰加)操作,其結(jié)果會作為迭代的第一輪(Round_0)輸入;從第1-9輪每輪的變換次序與步驟相同,第1輪列混合產(chǎn)生的狀態(tài)矩陣會與第1輪產(chǎn)生的輪密鑰進行異或,其運算結(jié)果會作為第2輪的輸入,以此類推;第10輪則少一個列混合的環(huán)節(jié),但是為了和其它輪的操作時間對齊,使得其結(jié)果和第10輪產(chǎn)生的輪密鑰異或不會出錯,所以特意使用一個寄存器Shiftrow_delay延時一拍來代替少了的列混合環(huán)節(jié),這樣從Shiftrow_delay出來的結(jié)果再進行輪密鑰加時,就剛好與第10輪產(chǎn)生的輪密鑰對齊(在某種意義上可以有效的防止側(cè)信道攻擊)[7]。

KeyExpantion是密鑰拓展模塊,它也是需要10輪運算(RoundkeyGen_0至RoundkeyGen_9),它每輪都依次進行三個步驟:Rotword()、SubByte()、Rcon[j]異或,在第1到第9輪,每輪密鑰在進行輪常量異或完之后產(chǎn)生的狀態(tài)矩陣會與數(shù)據(jù)列混合之后的狀態(tài)矩陣進行異或操作,第10輪則是密鑰的輪常量異或完的狀態(tài)矩陣與數(shù)據(jù)的延時寄存器出來的狀態(tài)矩陣進行異或,此時會拉高valid_out信號,輸出密文[7]。

解密電路設(shè)計請參考文獻[7]。

3.3 性能評估

通過FPGA的測試與驗證,采用tt28nm工藝對該設(shè)計進行綜合,流水線結(jié)構(gòu)的AES設(shè)計面積為0.17mm2,這大約是循環(huán)迭代結(jié)構(gòu)(0.018mm2)的10倍,這也是情理之中的結(jié)果。該結(jié)構(gòu)的AES數(shù)據(jù)從輸入到寄存器的關(guān)鍵路徑用時為0.39ns,從寄存器到輸出的關(guān)鍵路徑用時也是0.39ns,因此理論上該結(jié)構(gòu)的最大頻率為:1GHz/0.39ns=2.56GHz[7]。

【結(jié)語】

本文簡要介紹了一種AES的流水線結(jié)構(gòu)的IP核設(shè)計方法,目前采用的是與CPU同源同頻[2]的時鐘,當然,推薦與處理器時鐘做異步處理,并且配合DMA(Direct Memory Access,直接存儲器訪問 )使用,這會使得AES工作在接近自身最大頻率(當然這也是一個功耗與速度的折中),從而能夠最大化緩解CPU的壓力,進一步的提升吞吐量與加密效率。

參考文獻

[1] 科普中國. IP核. [EB/OL].https://baike.baidu.com/item/

IP%E6%A0%B8#reference-[1]-677617-wrap

[2] Mohit Arora. The Art of Hardware Architecture: Design Methods and Techniques for Digital Circuits[M]. 李海東,來萍,師謙等譯. 北京:機械工業(yè)出版社,2014.2

[3] Michael D Ciletti. Verilog HDL高級數(shù)字設(shè)計[M]. 張雅綺,譯. 北京:電子工業(yè)出版社,2005

[4] ZainalabedinNavabi. Verilog HDL數(shù)字設(shè)計與綜合[M]. 夏宇聞,譯. 北京:電子工業(yè)出版社,2009

[5] J Bhasker. Verilog HDL入門[M]. 夏宇聞,譯. 北京:北京航空航天大學(xué)出版社,2008

[6] 蔡覺平.Verilog HDL數(shù)字集成電路高級程序設(shè)計[M].西安:西安電子科技大學(xué)出版社,2015.

[7] 馬浩. 高性能處理器安全模塊的設(shè)計與優(yōu)化[D]. 西安:西安電子科技大學(xué)碩士論文,2020.

[8] 張春生, 面向SOPC的IP核設(shè)計與IP核復(fù)用技術(shù)研究[D].長沙:國防科技大學(xué)學(xué)位論文,2006:7-10.

[9] 梁穎. SOPC中FPGA IP核配置方案研究與實現(xiàn)[D].西安:西安電子科技大學(xué)學(xué)位論文,2010:5-8.

[10] 孫濤. IP軟核驗證方法研究[D].北京:北京交通大學(xué)學(xué)位論文,2009:5-13.

[12] 任愛鋒,羅豐,宋士權(quán)等.基于FPGA的嵌入式系統(tǒng)設(shè)計[M].西安:西安電子科技大學(xué)出版社,2014:100-114.

[13] 戴強,戴紫彬,李偉.基于增強型延時感知CSE算法的AES S盒電路優(yōu)化設(shè)計[J].電子學(xué)報,2019,47(01):129-136.

[14] Secretary of Commerce. Federal Information Processing Standards Publication-197-2001. ADVANCED ENCRYPTION STANDARD (AES) [S]. America:National Institute of Standards and Technology (NIST),2001.Available at http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

[15] 谷利澤,鄭世慧,楊義先.現(xiàn)代密碼學(xué)教程(第2版)[M].北京:北京郵電大學(xué)出版社,2015:73-85.

[16] 鄭東,趙慶蘭,張應(yīng)輝.密碼學(xué)綜述[J].西安郵電大學(xué)學(xué)報,2013,18(06):1-10.

[17] 胡向東,魏琴芳,胡蓉.應(yīng)用密碼學(xué)(第3版)[M].北京:清華大學(xué)出版社,2014:108-130.

[18] Celio, Christopher and Patterson, et al. The Berkeley Out-of-Order Machine (BOOM): An Industry-Competitive, Synthesizable, Parameterized RISC-V Processor[R], EECS Department, University of California, Berkeley, June 2015.

[19] Christopher Celio, David Patterson, and Krste Asanovi′c, The Berkeley Out-of-Order Machine (BOOM) Design Specification[R],EECS Department, University of California, Berkeley,December 2016.

[20] Gavin Ferris, Robert Mullins, Wei Song et al. Open source 64-bit SoC[EB/OL],

https://www.lowrisc.org/, 2020-3

[21] PULPino User Manul[EB/OL], http://www.pulp-platform.org/documentation/, 2016-8

[22] Russia GNSS Sensor Company, RISC-V VHDL: System-on-chip[EB/OL],

https://github.com/sergeykhbr/riscv_vhdl/, 2020-3

[23] Christopher Schmitz,Sebastian Pape. LiSRA: Lightweight Security Risk Assessment for decision support in information security[J]. Computers & Security,2020,90.

[24] 劉陽.2019年國外信息安全態(tài)勢綜述[J].保密科學(xué)技術(shù),2019(12):8-13.

[25] 張煥國,林東岱,馬建峰等.網(wǎng)絡(luò)空間安全綜述[J].中國科學(xué):信息科學(xué),2016,46(02):125-164.

[26] 雷新鋒,宋書民,薛銳等.計算可靠的密碼協(xié)議形式化分析綜述[J].計算機學(xué)報,2014,37(05):

993-1016.

[27] 馮登國,徐靜,蘭曉.5G移動通信網(wǎng)絡(luò)安全研究[J].軟件學(xué)報,2018,29(06):1813-1825.

[28] 洪澤,洪鋒,陳振嬌.針對車聯(lián)網(wǎng)信息安全的加密引擎芯片設(shè)計[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2020(02):36-38.

[29] TimeShatter. AES加密算法的詳細介紹與實現(xiàn)[EB/OL]. https://blog.csdn.net/qq_28205153/

article/details/55798628.html/2017-02-19

[30] J.Daemen, V.Rijmen著.高級加密標準(AES)算法:Rijndael的設(shè)計[M].谷大武,徐勝波譯,北京:清華大學(xué)出版社,2003:216-220

 

責任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2023-08-02 07:27:53

2020-12-16 05:46:58

算法加密算法MD5

2021-12-03 18:03:06

算法場景Rsa

2011-08-18 12:12:29

2022-01-11 12:12:10

加密漏洞攻擊

2023-08-01 07:24:05

2023-10-16 19:05:20

2019-08-02 10:43:57

2013-09-25 11:03:10

2012-09-13 09:58:38

2017-07-02 18:04:53

塊加密算法AES算法

2021-11-22 23:20:01

加密算法架構(gòu)

2010-09-09 10:06:56

Zigbee協(xié)議棧加密算法

2020-05-08 11:13:28

Python數(shù)據(jù)技術(shù)

2009-08-13 18:12:11

C#數(shù)據(jù)加密

2024-12-31 08:00:00

SpringBoot開發(fā)加密

2023-07-30 17:44:24

CryptoJS加密字符串

2009-08-21 15:02:31

C#加密算法

2020-05-09 14:20:11

信息安全加密

2015-05-11 10:40:08

加密數(shù)字圖像加密加密算法
點贊
收藏

51CTO技術(shù)棧公眾號