亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的AES密碼算法設(shè)計(jì)

        2014-04-29 00:00:00蔡亮
        商業(yè)2.0 2014年11期

        中圖分類號(hào):TN918.4"文獻(xiàn)標(biāo)識(shí)碼:A

        摘要:在邏輯資源少的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)上實(shí)現(xiàn)高級(jí)數(shù)據(jù)加密標(biāo)準(zhǔn)(AES)"算法設(shè)計(jì)。

        關(guān)鍵詞:高級(jí)加密標(biāo)準(zhǔn);現(xiàn)場(chǎng)可編程邏輯陣列;低成本;并行總線接口

        引言

        密碼學(xué)是保障信息安全的核心技術(shù),應(yīng)用涉及軍事、國(guó)防、商貿(mào)及人們?nèi)粘I畹母鱾€(gè)方面。2001年美國(guó)標(biāo)準(zhǔn)技術(shù)研究所決定用AES算法逐漸取代日益不安全的56"bit密鑰長(zhǎng)度的""數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)算法。AES"算法是迭代分組密碼算法,分組長(zhǎng)度為128"bit,而密鑰長(zhǎng)度可為128"bit、192"bit、256"bit,其對(duì)應(yīng)不同的密鑰長(zhǎng)度相應(yīng)的迭代循環(huán)次數(shù)為"10輪、12輪、14"輪?,F(xiàn)在實(shí)現(xiàn)的是128"bit的AES算法。

        一種AES算法實(shí)現(xiàn)是采用輪展開(kāi)的流水線結(jié)構(gòu),吞吐量很大可達(dá)到"10"Gb/s"量級(jí),但消耗大量的邏輯面積??紤]在資源少的FPGA上實(shí)現(xiàn)AES算法,能滿足低端應(yīng)用的加、解密速度一般不超過(guò)100"Mb/s的需求?,F(xiàn)設(shè)計(jì)采用順序結(jié)構(gòu),多輪加密共用一個(gè)輪運(yùn)算結(jié)構(gòu),加密模塊和解密模塊共用一個(gè)密鑰擴(kuò)展模塊,能保持較高加解密速率,同時(shí)節(jié)省了邏輯面積,在50"MHz時(shí)鐘下加解密速率可達(dá)530"Mb/s。

        1、AES"算法描述

        AES算法中的字節(jié)表示為有限域"GF"(28)上的元素,并在有限域上定義加法和乘法兩種運(yùn)算,運(yùn)算的基本單位是字節(jié)和雙字(4個(gè)字節(jié))。AES算法將128位的中間結(jié)果和密鑰都分成16個(gè)字節(jié),構(gòu)成4×4以字節(jié)為元素的狀態(tài)矩陣,AES在加解密過(guò)程中就是以狀態(tài)矩陣為操作對(duì)象的。加密算法中每一次輪操作都由字節(jié)替換、行移位、列混淆和輪密鑰加這四個(gè)函數(shù)組成,最后一次輪操作不含列混淆操作。

        2、在"FPGA"上實(shí)現(xiàn)"AES"算法

        2.1"頂層結(jié)構(gòu)

        該設(shè)計(jì)的頂層結(jié)構(gòu)由控制模塊、加密模塊、解密模塊、密鑰擴(kuò)展模塊、隨機(jī)存儲(chǔ)器(RAM)和FIFO組成。接口采用16位并行數(shù)據(jù)總線結(jié)構(gòu)。加密數(shù)據(jù)流向?yàn)椋好魑臄?shù)據(jù)通過(guò)數(shù)據(jù)總線寫(xiě)入16位入128位出的FIFO緩存;由控制模塊啟動(dòng)AES加密模塊進(jìn)行一次加密運(yùn)算;"運(yùn)算完成輸出128bit密文存入128位入16位出的"FIFO中。解密過(guò)程與之相同。加密模塊和解密模塊完全獨(dú)立,保證模塊能同時(shí)進(jìn)行加密和解密運(yùn)算,以滿足快速雙向保密通信的需求。

        2.2""加解密部分設(shè)計(jì)

        2.2.1"加密模塊

        由于輸入8次16位數(shù)據(jù)才能提供一個(gè)128"bit明文,這一過(guò)程至少需要8個(gè)時(shí)鐘,因此采用邏輯面積較大的多輪展開(kāi)流水線結(jié)構(gòu)方式意義不大。該設(shè)計(jì)采用多輪運(yùn)算復(fù)用一個(gè)輪操作結(jié)構(gòu)的順序方式。

        輪運(yùn)算包括輪密鑰加、字節(jié)替換、行移位和列混淆"4"個(gè)部分。其中,輪密鑰加只是輪數(shù)據(jù)與輪密鑰進(jìn)行異或運(yùn)算,結(jié)構(gòu)比較簡(jiǎn)單;行移位也只是簡(jiǎn)單的邏輯連線,幾乎不產(chǎn)生時(shí)延并且?guī)缀醪缓倪壿嬞Y源。

        字節(jié)替換如果采用"GF(28")模乘求逆運(yùn)算[4]實(shí)現(xiàn),則邏輯延時(shí)較長(zhǎng),速度較慢。為加快速度,采用時(shí)延小的基于只讀存儲(chǔ)器(ROM)查找方式的S盒結(jié)構(gòu),即輸入8bit數(shù)據(jù)作為地址而相應(yīng)數(shù)據(jù)輸出則為字節(jié)替換后的8"bit數(shù)據(jù)。S盒結(jié)構(gòu)若采用基于塊存儲(chǔ)的查找表(LUT)來(lái)實(shí)現(xiàn),一個(gè)輪運(yùn)算中16個(gè)"S盒將占用16×128個(gè)"LUT,占用邏輯資源較大。可采用FPGA內(nèi)部集成的塊"RAM來(lái)實(shí)現(xiàn)"S"盒。

        列混淆是系數(shù)在有限域"GF(28)上的四次多項(xiàng)式矩陣乘法,輸入列向量(X0,"X1,"X2,"X3),輸出列向量(Y0,"Y1,"Y2,"Y3),加密過(guò)程是在GF(28)上乘以01、02、03、01,解密過(guò)程是乘以"09、0E、0B、0D。為了優(yōu)化用"FPGA"邏輯實(shí)現(xiàn),采用一個(gè)xtime函數(shù)來(lái)實(shí)現(xiàn)GF(28)上的乘02運(yùn)算,對(duì)輸入的一個(gè)字節(jié)b做以下變換:xtime"="{"b[6:0],"1'b0"}"^"("8'h1b"amp;{"8{"b[7]}"}")。則列混淆在GF(28)上所有矩陣乘法就可以通過(guò)分解成有限個(gè)xtime運(yùn)算和異或運(yùn)算來(lái)實(shí)現(xiàn)。

        輪密鑰加、行移位和列混淆三步運(yùn)算實(shí)現(xiàn)的邏輯資源較少并且邏輯時(shí)延較小,可以合并在一個(gè)寄存器傳輸層間實(shí)現(xiàn)。

        2.2.2"密鑰擴(kuò)展模塊

        密鑰擴(kuò)展模塊設(shè)計(jì)比較簡(jiǎn)單,只需要4"個(gè)"S盒和一個(gè)輪常數(shù)字計(jì)算模塊,外加一些異或運(yùn)算和邏輯連線即可完成。密鑰擴(kuò)展模塊也是一個(gè)迭代運(yùn)算的結(jié)構(gòu),與加密模塊的輪運(yùn)算同步,即每個(gè)時(shí)鐘計(jì)算出一輪加密的密鑰。當(dāng)解密密鑰更新時(shí),密鑰擴(kuò)展模塊計(jì)算出的各輪密鑰作為解密的輪密鑰,需要按每個(gè)時(shí)鐘存儲(chǔ)在"RAM"中,解密運(yùn)算時(shí)從RAM中讀取。

        2.3""接口設(shè)計(jì)

        模塊的外部接口采用了"16"位數(shù)據(jù)總線的接口。由于輸入的加密密鑰和解密密鑰各"128位,占用地址為128×2/16=16"個(gè)。另外,加密需要一個(gè)輸入明文寄存器和一個(gè)輸出密文寄存器,解密需要一個(gè)輸入密文寄存器和一個(gè)輸出明文寄存器。因此芯片地址數(shù)總共"20,即需要"5"位地址線。接口讀寫(xiě)時(shí)序的設(shè)計(jì)以"TMS320C5509"型號(hào)數(shù)字信號(hào)處理器(DSP)總線讀寫(xiě)時(shí)序作為標(biāo)準(zhǔn)。16"位數(shù)據(jù)線采用雙向三態(tài)設(shè)計(jì)。16"位三態(tài)口由片選信號(hào)"CS"和讀使能信號(hào)RDE"控制,當(dāng)"CS"和"RDE"均有效時(shí)三態(tài)口數(shù)值為輸出數(shù)據(jù)寄存器的值以輸出數(shù)據(jù),否則三態(tài)口數(shù)值為高阻將數(shù)據(jù)輸入。

        3、測(cè)試與分析

        3.1""加密模塊和解密模塊功能仿真

        用Xilinx"ISE"Simulator分別對(duì)加密模塊和解密模塊進(jìn)行信號(hào)仿真,仿真圖如圖1和圖2所示。

        兩圖中"text_in[127:0]為輸入數(shù)據(jù),key[127:0]為密鑰,text_in[127:0]為輸出數(shù)據(jù)。在圖4和圖"5中,明文均為(3243,"F6A8,"885A,"308D,"3131,"98A2,"E037,"0734"H),密鑰均為(2B7E,"1516,"28AE,"D2A6,"ABF7,"1588,"09CF,"4F3C"H),密文均為(3925,"841D,"02DC,"09FB,"DC11,"8597,"196A,"0B32"H),證明其加密和解密正確。

        圖1加密結(jié)果信號(hào)仿真

        圖2解密結(jié)果信號(hào)仿真

        3.2"功能測(cè)試

        將設(shè)計(jì)的FPGA模塊連接到TI的5509的DSP開(kāi)發(fā)板的總線擴(kuò)展口,F(xiàn)PGA"模塊通過(guò)"JTAG"線與計(jì)算機(jī)連接,DSP開(kāi)發(fā)板通過(guò)仿真器與計(jì)算機(jī)連接。通過(guò)"C"程序?qū)⒚魑暮兔荑€寫(xiě)入FPGA"模塊,加密后讀出密文,解密過(guò)程與之類似。通過(guò)"DSP"測(cè)試,結(jié)果與"3.1"仿真結(jié)果完全一致,證明"AES算法在FPGA"上準(zhǔn)確實(shí)現(xiàn)。

        使用在線調(diào)試邏輯分析軟件通過(guò)JTAG口對(duì)FPGA總線接口的信號(hào)波形進(jìn)行采樣并顯示,地址、數(shù)據(jù)和控制信號(hào)正確。通過(guò)加密或解密時(shí)連續(xù)輸出128"bit結(jié)果間隔的時(shí)鐘數(shù)可以計(jì)算出,在50"MHz時(shí),數(shù)據(jù)處理能力可達(dá)530"Mb/s。

        4、結(jié)語(yǔ)

        所采用的AES算法設(shè)計(jì)采用16位并行總線接口,能方便的與上層處理器擴(kuò)展。在算法實(shí)現(xiàn)上,采用多輪運(yùn)算共用一個(gè)輪結(jié)構(gòu)的迭代結(jié)構(gòu),適用于在較少邏輯資源的"FPGA"芯片上實(shí)現(xiàn),滿足了較高吞吐率和較小的芯片面積的應(yīng)用需求,能滿足當(dāng)前各種數(shù)據(jù)流的加密。算法的實(shí)現(xiàn)采用ROM來(lái)實(shí)現(xiàn)字節(jié)替換,同時(shí)優(yōu)化實(shí)現(xiàn)列混淆運(yùn)算。該設(shè)計(jì)在賽靈思(Xilinx)"公司的xc3s500e芯片上實(shí)現(xiàn),僅占用4230個(gè)Slice,其中7222個(gè)LUT和1758個(gè)觸發(fā)器,消耗的邏輯資源較少。

        作者簡(jiǎn)介:

        蔡亮(1982-)江西南昌人,江西科技學(xué)院計(jì)算機(jī)中心,助教,本科,研究方法:計(jì)算機(jī)應(yīng)用。

        亚欧美日韩香蕉在线播放视频| 男女真人后进式猛烈视频网站 | 中文字幕人妻精品一区| 在线中文字幕一区二区| 精品国产亚洲级一区二区| 日韩无码专区| 97久久久久人妻精品区一| 人人妻人人澡人人爽欧美一区九九 | 一本到亚洲av日韩av在线天堂 | 亚洲AV无码一区二区水蜜桃| 在线免费观看国产视频不卡| 国产精品久久国产精麻豆| 国产成人av三级在线观看韩国| 中文字幕亚洲一区二区不下| 亚洲字幕av一区二区三区四区| 亚洲成av人在线观看天堂无码| 无码精品国产va在线观看| 日日摸夜夜添夜夜添一区二区 | 中文字幕日本人妻久久久免费| 天堂资源中文最新版在线一区| 国产婷婷一区二区三区| 久久免费区一区二区三波多野在| 亚色中文字幕| av中文字幕在线资源网| av一区二区三区观看| 一本一道久久综合久久| 久久人妻少妇嫩草av| 久久99精品国产麻豆不卡| 免费a级毛片出奶水| 狠狠色丁香婷婷久久综合2021 | 欧美大屁股xxxx| 久久久久麻豆v国产精华液好用吗| 2021国产最新无码视频| 国产人妖赵恩静在线视频| 女同另类专区精品女同| 老鲁夜夜老鲁| 亚洲av无码xxx麻豆艾秋| 亚洲地区一区二区三区| 女优免费中文字幕在线| 久久精品国产亚洲av网站| 极品一区二区在线视频观看|