成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析AES加密算法的硬件設計方法

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

[[356976]]

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

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

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

1引 言

1.1研究背景和意義

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

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

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

1)在不同環境中(有無反饋)軟硬件實現后的性能表現優異。

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

3)使用很小的內存就可以實現該算法,適合在內存較小的環境中使用。

4)抗攻擊能力強。

5)內部循環結構有益于指令級并行處理器提升性能。

1.2研究意義

圖1.2 AES加密算法應用領域

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

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

2AES算法原理

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

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

表2.1 AES三種模式下對應的密鑰長度、分組長度、迭代次數

2.1 AES算法中參數、符號和函數介紹

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

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

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

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

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

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

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

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

RotWord( ):在輪密鑰拓展過程中使用的函數,它接受一個四字節的字并執行循環排列。

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

表2.2 輪常量Rcon[j]

2.2加密過程

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

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

圖2.1 AES加密/解密流程圖

圖2.2 密鑰分組

2.2.1 字節替換

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

圖2.3 S-box

圖2.4狀態矩陣的字節替換過程

2.2.2 行移位

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

圖2.5行變換中循環移動狀態矩陣的后三行

2.2.3 列混合

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

圖2.6 狀態矩陣中列混合的操作

2.2.4 輪密鑰加

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

圖2.7 狀態矩陣的輪密鑰加變換圖

2.3密鑰拓展

圖2.8 密鑰拓展

 

2.4 AES解密過程

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

3AES流水線結構RTL實現

3.1 流水線AES電路結構

圖3.1流水線結構的AES整體結構圖

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

3.2 AES流水線結構加密電路

如圖3.2為流水線結構AES加密電路,現對其端口信號說明,如表3.1:

表3.1 加密單元端口信號

圖3.2 流水線結構AES加密電路模塊圖

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

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

解密電路設計請參考文獻[7]。

3.3 性能評估

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

【結語】

本文簡要介紹了一種AES的流水線結構的IP核設計方法,目前采用的是與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]. 李海東,來萍,師謙等譯. 北京:機械工業出版社,2014.2

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

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

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

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

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

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

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

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

[12] 任愛鋒,羅豐,宋士權等.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2014:100-114.

[13] 戴強,戴紫彬,李偉.基于增強型延時感知CSE算法的AES S盒電路優化設計[J].電子學報,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] 谷利澤,鄭世慧,楊義先.現代密碼學教程(第2版)[M].北京:北京郵電大學出版社,2015:73-85.

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

[17] 胡向東,魏琴芳,胡蓉.應用密碼學(第3版)[M].北京:清華大學出版社,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年國外信息安全態勢綜述[J].保密科學技術,2019(12):8-13.

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

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

993-1016.

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

[28] 洪澤,洪鋒,陳振嬌.針對車聯網信息安全的加密引擎芯片設計[J].網絡安全技術與應用,2020(02):36-38.

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

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

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

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

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

2023-08-01 07:24:05

2022-01-11 12:12:10

加密漏洞攻擊

2023-10-16 19:05:20

2013-09-25 11:03:10

2019-08-02 10:43:57

2012-09-13 09:58:38

2017-07-02 18:04:53

塊加密算法AES算法

2021-11-22 23:20:01

加密算法架構

2020-05-08 11:13:28

Python數據技術

2010-09-09 10:06:56

Zigbee協議棧加密算法

2009-08-13 18:12:11

C#數據加密

2024-12-31 08:00:00

SpringBoot開發加密

2023-07-30 17:44:24

CryptoJS加密字符串

2009-08-21 15:02:31

C#加密算法

2015-05-11 10:40:08

加密數字圖像加密加密算法

2020-05-09 14:20:11

信息安全加密
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久福利软件 | 国产精品影视在线观看 | 午夜精品三区 | av片在线观看网站 | 日本欧美在线视频 | 黄色在线观看国产 | 日本视频在线播放 | 丁香久久| 免费观看一级黄色录像 | 99精品亚洲国产精品久久不卡 | 亚洲福利在线视频 | 热99视频 | 久久久免费观看视频 | 精品在线一区 | 97狠狠干 | 日韩欧美三区 | 在线一区二区三区 | 在线中文视频 | 另类在线| 国产日韩视频在线 | 91av免费版| 91视频免费在观看 | 亚洲视频在线看 | 日韩伦理一区二区三区 | av在线播放免费 | h片免费看| 在线一区二区观看 | 国产精品久久久久久久久久免费看 | 久久在线免费 | 一区二区三区欧美在线 | 在线视频91| 日韩一区二区三区四区五区六区 | 黄视频网址 | 日本粉嫩一区二区三区视频 | 国产精品日韩一区 | 欧美一区精品 | 日韩欧美中文 | 日韩在线一区二区 | 国产伊人久久久 | 免费在线观看成人av | 久久精品一级 |