0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-30 09:31 ? 次閱讀

1. 引言

隨著國際空間任務(wù)交叉合作增加,應(yīng)用地面公共數(shù)據(jù)網(wǎng)絡(luò)進(jìn)行空間任務(wù)控制和數(shù)據(jù)監(jiān)測越來越多,空間飛行器迫切需要數(shù)據(jù)安全保護(hù)機(jī)制。隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,原 來衛(wèi)星(如SPOT 衛(wèi)星)上使用的DES 加密算法已能夠被窮舉法破譯。為此,美國國家標(biāo)準(zhǔn) 和技術(shù)協(xié)會(huì)(NIST)于2000 年10 月2 日宣布采用Rijndael 作為下一代先進(jìn)加密標(biāo)準(zhǔn)(AES) 的正式算法[2]。2004 年,CCSDS(國際空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì))建議將AES 作為空間 數(shù)據(jù)加密算法標(biāo)準(zhǔn)[3][4]。目前,AES 加密算法已在NASA、FBI、CCSDS 等機(jī)構(gòu)得到廣泛 應(yīng)用。

隨著我國空間技術(shù)的快速發(fā)展,未來需要考慮空間數(shù)據(jù)安全性設(shè)計(jì)。傳統(tǒng)的星上加密 需要一個(gè)專門的裝置,占用的體積、功耗等資源均較大。AES 算法適用于軟硬件資源有限 的應(yīng)用中,同時(shí)與軟件加密相比,采用FPGA 進(jìn)行物理加密具有很好的防攻擊性,實(shí)時(shí)性好, 可實(shí)現(xiàn)高速數(shù)據(jù)處理,資源占用非常小,是空間數(shù)據(jù)加密的重要發(fā)展方向。

本文對AES 算法進(jìn)行了研究,并在一片F(xiàn)PGA 上進(jìn)行了仿真分析,確定了適合空間應(yīng) 用的AES 算法。

2. AES 加密算法及優(yōu)化實(shí)現(xiàn)

2.1. AES 加密算法

AES 是一種可變密鑰長度的迭代分組加密算法,明文被分成以128bit 為一塊進(jìn)行加密, 密鑰長度可分別為128bit、192bit、256bit。

AES 加密算法包括密鑰擴(kuò)展過程和加密過程。加密過程又包括一個(gè)作為初始輪的初始密鑰加法(AddRoundKey),接著進(jìn)行若干次輪變換(Round),最后再使用一個(gè)輪變換(FinalRound),如圖2.1.1 所示。

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

明文可以表示為4*4B 的狀態(tài)矩陣,加密的每一輪是對狀態(tài)矩陣進(jìn)行操作,得到中間結(jié) 果狀態(tài)矩陣。初始變換指的是狀態(tài)矩陣中每一列與初始密鑰進(jìn)行加運(yùn)算。輪變換的每一輪 包括字節(jié)替換(SubBytes)、行移位(Shiftrows)、列混合(Mixcolumns)、輪密鑰加 (AddRoundKey)。最后一輪變換不包括列混合(Mixcolumns)。經(jīng)過最后一輪變換,中間狀 態(tài)矩陣將輸出4*4B 的密文。

密鑰擴(kuò)展是對給定初始密鑰進(jìn)行運(yùn)算,得到每個(gè)輪變換的輪密鑰。主要包括三步:字 替換(Subword)、周期置換(Rotword)、圈常數(shù)字序列加運(yùn)算[2]。AES-128 與AES-192 密 鑰擴(kuò)展的每一輪都包括三個(gè)步驟,對于AES-256,并不是每一輪都包括三個(gè)步驟,當(dāng)密鑰 替換循環(huán)次數(shù)小于Nb*(Nr+1)(Nb 數(shù)據(jù)塊長度、Nr 圈數(shù)),同時(shí)循環(huán)次數(shù)對Nk(密鑰長度) 取模的結(jié)果為4 時(shí),只進(jìn)行字替換(Subword)。

表 2.1.1 給出了三種AES 加密的明文塊長度,密鑰長度,加密輪變換次數(shù)之間的關(guān)系。

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

2.2. AES 算法優(yōu)化實(shí)現(xiàn)

2.2.1. 字節(jié)替換(SubBytes)

SubBytes 主要通過兩步來完成,一步是在GF(28)中取乘法逆,另外一步是通過特別 定義的GF(2)上的仿射作用。為了避免復(fù)雜的乘法運(yùn)算,在FPGA 上具體實(shí)現(xiàn)時(shí),構(gòu)造了 16*16B 的置換表,通過查表完成了字節(jié)替換,節(jié)省了運(yùn)算時(shí)間。

2.2.2. 行移變換(shiftrows)

ShiftRows 與列混合運(yùn)算相互影響,在多輪變換后,使密碼信息達(dá)到充分的混亂。行變 換是在狀態(tài)的每個(gè)行間進(jìn)行的,是狀態(tài)中的行按不同的偏移量進(jìn)行循環(huán)左移運(yùn)算[10]。通過 對每個(gè)字節(jié)的行移位實(shí)現(xiàn)該變換。

2.2.3. 列混合(MixColumns)

假設(shè)列混合運(yùn)算輸入為a,輸出為b,加密的列混合運(yùn)算可做如下表示:

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

式2.1 所示的矩陣運(yùn)算是伽羅華域上常數(shù)乘法運(yùn)算。伽羅華域上乘以任何常數(shù)的乘法 都可以通過反復(fù)的乘以02 和異或運(yùn)算來實(shí)現(xiàn)[5]。將GF(28)域中的每一個(gè)元素與02 的乘積 存儲(chǔ)在一張16*16 B 查找表中,通過異或運(yùn)算和查表即可實(shí)現(xiàn)列混合運(yùn)算。

2.2.4. 密鑰加法(AddRoundKey)

AddRoundKey 是將輪密鑰中的各個(gè)字節(jié)與狀態(tài)中的各個(gè)字節(jié)進(jìn)行逐位異或運(yùn)算,實(shí)現(xiàn) 密碼和密鑰的混合。輪密鑰是由初始密鑰通過密鑰擴(kuò)展得到的。

2.2.5. 密鑰擴(kuò)展(KeyExpansion)

初始密鑰和擴(kuò)展后的整個(gè)密鑰表可以看作是一個(gè)字(word)序列。密鑰擴(kuò)展是針對字進(jìn) 行的,為此又引入了兩個(gè)對字進(jìn)行處理的函數(shù):字替代(Subword)和字旋轉(zhuǎn)(RotWord)。字 旋轉(zhuǎn)將字的4 個(gè)字節(jié)循環(huán)右移一個(gè)單位。密鑰擴(kuò)展還包括引入輪常數(shù)Rcon。字替換和引入 輪常數(shù)均可使用查表法完成。字旋轉(zhuǎn)可以用簡單的交換字的順序?qū)崿F(xiàn)。

在FPGA 的實(shí)現(xiàn)過程中,若不進(jìn)行上述諸如查表法的優(yōu)化,將會(huì)造成資源占用過度,運(yùn) 行速率低下的情況。 3. AES 算法實(shí)現(xiàn)與仿真

3.1. AES 算法實(shí)現(xiàn)方案

圖3.1 為AES 加密算法實(shí)現(xiàn)框圖,其中明文有效標(biāo)志和密鑰有效標(biāo)志輸入給控制模塊, 初始密鑰送給密鑰擴(kuò)展模塊,明文輸入到初始變換模塊??刂颇K輸出加密完成標(biāo)志,最 終變換模塊輸出密文[7]。其中粗箭頭為數(shù)據(jù)線,細(xì)箭頭為控制線。為滿足加密過程的時(shí)序 要求,控制模塊對輸入的明文有效信號(hào)及密鑰有效信號(hào)進(jìn)行控制。密鑰擴(kuò)展模塊在不同輪 數(shù)下產(chǎn)生的擴(kuò)展密鑰分別送給初始變換模塊,輪變換模塊以及最終變換模塊。初始變換模 塊對明文加了初始輪密鑰;輪變換模塊進(jìn)行了四個(gè)變換步驟。最終變換模塊與輪變換模塊 不同在于沒有進(jìn)行混合列操作。

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

3.2. 仿真結(jié)果

本設(shè)計(jì)采用VHDL 語言,在Xilinx 公司的一款FPGA 上實(shí)現(xiàn)了AES 算法。分別對AES-128、 AES-192、AES-256 加密算法實(shí)現(xiàn)進(jìn)行仿真,在FPGA 資源占用率、數(shù)據(jù)處理速率等方面進(jìn) 行了對比分析。

(1) 仿真結(jié)果

圖3.2.1、3.2.2、3.2.3 分別是AES-256、AES-192、AES-128 的FPGA 實(shí)現(xiàn)仿真結(jié)果, 從圖中可以看出AES-256 可以在15 個(gè)時(shí)鐘周期內(nèi)完成,AES-192 可以在13 個(gè)周期實(shí)現(xiàn)加 密算法,AES-128 可以在12 個(gè)時(shí)鐘周期內(nèi)實(shí)現(xiàn)加密算法。

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

(2) 性能分析

在Xilinx 公司的一款X2V 系列FPGA 上所占用的資源情況對比如表3.1.1。

基于FPGA實(shí)現(xiàn)AES算法數(shù)據(jù)加密方案

根據(jù)密碼學(xué)理論,密鑰長度越長,其安全性能越好。AES-256 占用硬件資源較AES-128、 AES-192 多,但AES-256 可以提供最好的安全性。三種加密算法占用的資源數(shù)相當(dāng),數(shù)據(jù) 吞吐率隨著密鑰長度加長而變小。

4. 結(jié)論

本文對AES 算法進(jìn)行了研究,提出了面向空間應(yīng)用的AES 算法的FPGA 實(shí)現(xiàn)方案。通過 仿真分析,表明利用FPGA 進(jìn)行AES 進(jìn)行數(shù)據(jù)加密具有占用硬件資源較少,數(shù)據(jù)吞吐率高, 安全性好的特點(diǎn),門數(shù)在10 萬左右的小型FPGA 即可實(shí)現(xiàn)該算法??紤]到安全性,在實(shí)際 應(yīng)用中,AES-256 算法是最適合的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598895
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3971

    瀏覽量

    132958
  • 衛(wèi)星
    +關(guān)注

    關(guān)注

    18

    文章

    1679

    瀏覽量

    66503
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGAAES256光纖加密設(shè)計(jì)

    安全,實(shí)現(xiàn)軍用和民用任重道遠(yuǎn)。華為傳輸加密解決方案,采用L1層加密技術(shù),對業(yè)務(wù)層透明,采用高強(qiáng)度的美學(xué)256算法,確保各行業(yè)的
    發(fā)表于 06-19 19:50

    FPGA參賽作品】基于FPGAAES分組加密系統(tǒng)

    。本方案FPGA實(shí)現(xiàn)AES加密算法為目的,硬件角度加速AES
    發(fā)表于 06-12 23:12

    有木有知道使用RSA算法數(shù)據(jù)加密滴?

    有木有知道使用RSA算法數(shù)據(jù)加密滴?本人小小采購員一枚,工程那邊說要數(shù)據(jù)加密,采購加密芯片,還要有RSA
    發(fā)表于 11-26 13:59

    最強(qiáng)加密算法?AES加密算法的Matlab和Verilog實(shí)現(xiàn) 精選資料推薦

    目錄背景AES加密的幾種模式基本運(yùn)算AES加密原理Matlab實(shí)現(xiàn)Verilog實(shí)現(xiàn)Testbe
    發(fā)表于 07-28 07:34

    基于AES算法的無線加密數(shù)字傳輸系統(tǒng)

    本文實(shí)現(xiàn)了一種基于AES 算法的無線加密數(shù)字傳輸系統(tǒng),給出了該系統(tǒng)的結(jié)構(gòu),完成了AES 算法
    發(fā)表于 01-22 15:09 ?5次下載

    基于FPGAAES加密算法的高速實(shí)現(xiàn)

    介紹AES 算法的原理以及基于FPGA 的高速實(shí)現(xiàn)。結(jié)合算法FPGA 的特點(diǎn),采用查表法優(yōu)化處
    發(fā)表于 01-25 14:26 ?29次下載

    基于FPGAAES加密算法的高速實(shí)現(xiàn)

    介紹AES算法的原理以及基于FPGA的高速實(shí)現(xiàn)。結(jié)合算法FPGA的特點(diǎn),采用查表法優(yōu)化處理了字
    發(fā)表于 07-17 18:09 ?46次下載

    基于FPGA加密芯片的DPA實(shí)現(xiàn)與防御研究

    差分功耗分析是破解AES密碼算法最為有效的一種攻擊技術(shù),為了防范這種攻擊技術(shù)本文基于FPGA搭建實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)了對AES
    發(fā)表于 12-05 14:14 ?52次下載
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>加密</b>芯片的DPA<b class='flag-5'>實(shí)現(xiàn)</b>與防御研究

    基于AES和ECC的混合加密系統(tǒng)的設(shè)計(jì)

    基于AES加密算法具有速度快、強(qiáng)度高、便于實(shí)現(xiàn)等優(yōu)點(diǎn)和ECC加密算法具有密鑰分配與管理簡單、安全強(qiáng)度高等優(yōu)點(diǎn),采用AES
    發(fā)表于 03-20 10:24 ?42次下載
    基于<b class='flag-5'>AES</b>和ECC的混合<b class='flag-5'>加密</b>系統(tǒng)的設(shè)計(jì)

    基于AES算法加密模塊設(shè)計(jì)

    文中介紹了高級(jí)加密算法AES)的基本原理,并給出了基于AES算法硬件加密模塊設(shè)計(jì)方案。通過Mo
    發(fā)表于 02-21 15:52 ?0次下載
    基于<b class='flag-5'>AES</b><b class='flag-5'>算法</b>的<b class='flag-5'>加密</b>模塊設(shè)計(jì)

    AES加密算法說明

    1 引 言 AES加密算法的一種優(yōu)化的FPGA實(shí)現(xiàn)方法 隨著密碼分析水平,芯片處理能力和計(jì)算技術(shù)的不斷進(jìn)步,des的安全強(qiáng)度已經(jīng)難以適應(yīng)新的安全需要,其
    發(fā)表于 11-30 01:31 ?2050次閱讀

    用matlab實(shí)現(xiàn)AES加密算法

    AES加密算法是密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美
    發(fā)表于 05-25 15:18 ?11次下載
    用matlab<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>AES</b><b class='flag-5'>加密算法</b>

    使用FPGA實(shí)現(xiàn)AES算法的優(yōu)化設(shè)計(jì)

    AES算法作為DES算法的替代者應(yīng)用非常廣泛,其硬件實(shí)現(xiàn)方法已有不少討論,主要是通過提高算法頻率來提高吞吐量。但是在實(shí)際運(yùn)行中,為了保證整個(gè)
    的頭像 發(fā)表于 04-18 08:15 ?3400次閱讀
    使用<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>AES</b><b class='flag-5'>算法</b>的優(yōu)化設(shè)計(jì)

    如何低成本實(shí)現(xiàn)AES密碼算法的硬件

    Rijndael算法為高級(jí)加密標(biāo)準(zhǔn)AES。AES密碼算法加密速度快,安全級(jí)別高,已經(jīng)成為
    發(fā)表于 03-19 17:16 ?7次下載
    如何低成本<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>AES</b>密碼<b class='flag-5'>算法</b>的硬件

    使用FPGA實(shí)現(xiàn)AES分組密碼統(tǒng)一框架的詳細(xì)資料說明

    通過將AES算法模塊化、運(yùn)算一般化,給出了類AES算法的統(tǒng)一框架。在此框架下不僅可以同時(shí)實(shí)現(xiàn)AES
    發(fā)表于 03-26 15:58 ?16次下載