當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]摘要:介紹AES 算法的原理以及基于FPGA 的高速實(shí)現(xiàn)。結(jié)合算法和FPGA 的特點(diǎn),采用查表法優(yōu)化處理了字節(jié)代換運(yùn)算、列混合運(yùn)算。同時,為了提高系統(tǒng)工作速度,在設(shè)計中應(yīng)用了內(nèi)外結(jié)合的流水線技術(shù),并應(yīng)用Altera 公司的開發(fā)

摘要:介紹AES 算法的原理以及基于FPGA 的高速實(shí)現(xiàn)。結(jié)合算法和FPGA 的特點(diǎn),采用查表法優(yōu)化處理了字節(jié)代換運(yùn)算、列混合運(yùn)算。同時,為了提高系統(tǒng)工作速度,在設(shè)計中應(yīng)用了內(nèi)外結(jié)合的流水線技術(shù),并應(yīng)用Altera 公司的開發(fā)工具及芯片進(jìn)行實(shí)際開發(fā)。

1 引言

隨著信息技術(shù)的迅速發(fā)展,信息已成為當(dāng)今社會的一種重要資源。但當(dāng)人們享受信息資源帶來的巨大便利的同時,也承受著信息被篡改、泄漏、偽造的威脅,安全問題日益嚴(yán)重。安全風(fēng)險制約著信息的有效使用,信息安全對現(xiàn)代社會健康有序的發(fā)展,保障國家安全和社會穩(wěn)定有著重要作用。加密技術(shù)是信息安全技術(shù)的核心,是保證信息資源安全的關(guān)鍵。

高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard, AES)作為傳統(tǒng)對稱加密算法標(biāo)準(zhǔn)DES 的替代者,由美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)于1997 年提出征集該算法的公告,2000 年最終選定了Rijndael 算法,并于2001 年正式發(fā)布了AES標(biāo)準(zhǔn)[1]。Rijndael 算法本質(zhì)上是一種對稱分組密碼體制,該算法匯聚了安全性能、效率、可實(shí)現(xiàn)性和靈活性等優(yōu)點(diǎn),已經(jīng)成為工業(yè)界、銀行業(yè)、政府部門的事實(shí)上的密碼標(biāo)準(zhǔn)[2]。

隨著網(wǎng)絡(luò)傳輸速度的快速提升,業(yè)界對算法的執(zhí)行速度的要求也越來越高,基于軟件的密碼算法便顯得性能不足,需要采用硬件加密的方式。另外,用硬件實(shí)現(xiàn)加密算法具有較更高的物理安全性。而FPGA 芯片兼有硬件的安全性和高速性以及軟件的靈活性和易維護(hù)性,從而成為研究和實(shí)現(xiàn)AES 算法的理想硬件平臺。

2 AES 加密算法簡介

AES 是一種分組迭代密碼,明文分組長度固定為128 b,而且僅支持128,196 或256b 的密鑰長度,本文著重對密鑰長度為128 b 的情況進(jìn)行討論。AES 加密算法的實(shí)現(xiàn)流程如圖1 所示,將輸入的明文填入一個4X4 的矩陣(16 進(jìn)制),并將其稱為狀態(tài)矩陣。算法的前round-1 輪包含四種變換,分別是:字節(jié)替換、輪密鑰加、行移位、列混合。對于每一輪,都有對應(yīng)的子密鑰。子密鑰由初始密鑰通過密鑰擴(kuò)展得到。最后一輪由字節(jié)替換、行移位和輪密鑰加組成。AES 解密過程為上述過程的逆過程。


字節(jié)替換:字節(jié)替換(SubBytes)是一個基于S 盒的非線性置換,它通過一個簡單的查表操作將輸入或中間狀態(tài)的每一個字節(jié)映射為另一個字節(jié)。查表的方法為:將輸入字節(jié)的高4 位作為S 盒的行值,低4 位作為列值,然后取出S 盒中對應(yīng)行和列的元素作為輸出。

行移位:行移位(ShiftRows)完成基于行的循環(huán)移位操作。具體的操作為:第0 行不動,第1 行循環(huán)左移1 個字節(jié),第2 行循環(huán)左移2 個字節(jié),第3 行循環(huán)左移3 個字節(jié)。

列混合:列混合(MixColumns)是對狀態(tài)矩陣中的列做線性變換,進(jìn)行四字節(jié)乘運(yùn)算。具體定義如下:將狀態(tài)矩陣的列看作有限域G(28)上的多項(xiàng)式,并在模x4+1 下與一個給定的多項(xiàng)式c(x)相乘,其中c(x)=03x3+01x2+01x+02。假設(shè)該步變換狀態(tài)的一列輸入為a,輸出為b,即b(x)=c(x)·a(x)mod(x4+1)。

密鑰加:密鑰加(AddRoundKey)是將輪密鑰的各字節(jié)和狀態(tài)矩陣中相應(yīng)位置的字節(jié)分別模2 加,實(shí)現(xiàn)狀態(tài)和密鑰的混合。輪密鑰的長度和狀態(tài)的長度是一樣的。該步驟的逆變換是其自身[3]。

3 算法實(shí)現(xiàn)的優(yōu)化

3.1 對算法本身的優(yōu)化

用查找表和組合邏輯的方式代替了復(fù)雜的乘法運(yùn)算[3],大大減少了芯片資源的占用,提高了加、解密步驟的執(zhí)行速度。字節(jié)替換是 Rijndael 密碼中唯一的非線性變換。該步驟是一種非線性面向字節(jié)的變換,是將一個8 位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為另一個不同的8 位二進(jìn)制數(shù)據(jù),這里要求一一對應(yīng),并且替換結(jié)果不能超出8 位,可以通過構(gòu)造可逆的S-盒來實(shí)現(xiàn)。

由于有限域GF(2)中總共有256 個元素,則可預(yù)先通過一定的算法計算出每個元素的逆元,再進(jìn)行對應(yīng)的仿射變換求出有限域GF(28)中每個元素經(jīng)過字節(jié)代換后所對應(yīng)的值,并將這個計算出的替代值寫入一個16×16 字節(jié)的置換表中相應(yīng)的位置作為步驟SubBytes 的S-盒。具體實(shí)現(xiàn)時,根據(jù)狀態(tài)的每一個字節(jié)的數(shù)值檢索出S-盒中對應(yīng)的替代值,即通過查表即可實(shí)現(xiàn)該步變換,避免復(fù)雜的乘法運(yùn)算[4]。

對于列混合變換,由于GF(28)有限域中的每一個元素都能夠?qū)懗?2 的不同冪次的和,因此,乘以任何常數(shù)的乘法都可以通過反復(fù)的乘以02 和異或運(yùn)算來實(shí)現(xiàn)。可將矩陣乘法中的常數(shù)因子分解為 02 的不同冪次和,矩陣乘法轉(zhuǎn)換為與02 的乘法和異或運(yùn)算。將GF(28)域中的每一個元素與02 的乘積存儲在一張16×16 字節(jié)查找表中,記作xtime(·)。所以,該步驟可以通過查表和異或運(yùn)算實(shí)現(xiàn)。

3.2 加密模塊結(jié)構(gòu)的優(yōu)化

加密模塊結(jié)構(gòu)直接影響 AES 算法的加解密速度,AES 算法加解密系統(tǒng)的速度是指單位時間內(nèi)完成的加密(解密)的比特數(shù),也稱為吞吐量(throughput),單位為兆比特每秒(Mbit/s)。其基本結(jié)構(gòu)可分為以下三種:外部流水線結(jié)構(gòu)、內(nèi)部流水線結(jié)構(gòu)和循環(huán)展開結(jié)構(gòu)[5]。其中循環(huán)展開結(jié)構(gòu)的速度是以芯片面積增加為代價的,而外部流水線結(jié)構(gòu)和內(nèi)部流水線結(jié)構(gòu)在反饋模式中速度受到限制,面積的增加并不能增加速度,所以這兩種結(jié)構(gòu)只適用于非反饋模式。內(nèi)部流水線結(jié)構(gòu)的速度在非反饋模式下隨著內(nèi)部流水線站數(shù)的增加而增加,但面積的相應(yīng)增長極小,具有很好的速度面積比。但在反饋模式下其速度面積比不具優(yōu)勢。因此,在外部應(yīng)用流水線結(jié)構(gòu)設(shè)計的同時,在內(nèi)部劃分流水線站,可以在外部流水線結(jié)構(gòu)的速度基礎(chǔ)上進(jìn)一步提高速度,而面積的增長極小,從而提高吞吐量和速度面積比?;谝陨戏治?,在本設(shè)計中采取了非反饋模式和內(nèi)外混合的流水線結(jié)構(gòu)。

4 硬件測試及應(yīng)用

本設(shè)計采用 ALTERA 公司的開發(fā)工具QuartusII,以VerilogHDL 為實(shí)現(xiàn)語言,在綜合仿真并測試無誤后,下載至ALTERA 公司的Cyclone 系列芯片上。該系列芯片具有相當(dāng)?shù)男詢r比,非常適合于大批量、低成本的應(yīng)用本設(shè)計方案。本設(shè)計既可以作為單獨(dú)的專用加密芯片完成加密任務(wù),也可以嵌入到復(fù)雜的數(shù)字系統(tǒng)中。具有非常廣闊的應(yīng)用市場。



參考文獻(xiàn):

[1].NISTdatasheethttp://www.dzsc.com/datasheet/NIST_2562226.html.


來源:lele0次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉