日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

設(shè)計(jì)一種適用于嵌入式系統(tǒng)的加密IP核

出處:電子技術(shù)應(yīng)用 發(fā)布于:2011-09-04 19:11:02

 

  計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,使得現(xiàn)代社會(huì)高度信息化。在日常生活中,使用電子裝置儲(chǔ)存重要資料的方式日漸普及。隨之而來(lái)的是,信息安全受到了人們的普遍關(guān)注。當(dāng)使用者必須經(jīng)由不可信任的通道傳遞秘密信息時(shí),人們總是使用密碼系統(tǒng)保障信息的安全。 數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)自1977年被采用至今,已超過(guò)二十多年。面對(duì)各種新的攻擊方法,DES在某些應(yīng)用上已不堪使用。因此,在2000年10月,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)局(NIST)選定Rijndael算法為新的加密標(biāo)準(zhǔn),將獲得廣泛地應(yīng)用。

  1 AES算法

  1.1 AES算法描述

  密鑰密碼體制分為流密碼和分組密碼兩種。分組密碼是信息與網(wǎng)絡(luò)安全中實(shí)現(xiàn)數(shù)據(jù)加密、數(shù)字簽名、及密鑰管理的體制,具有速度快、易于標(biāo)準(zhǔn)化和便于軟硬件實(shí)現(xiàn)等特點(diǎn)。AES采用分組密碼的加密方式,其分組長(zhǎng)度分為128 bit、192 bit、256 bit三種,AES密碼在相同的輪函數(shù)作用下,迭代運(yùn)算次數(shù)的不同可達(dá)到不同級(jí)別的安全強(qiáng)度。128 bit分組長(zhǎng)度的情況下,循環(huán)輪數(shù)指定為11次,目前還沒(méi)有可行的算法可以對(duì)該模型進(jìn)行有效攻擊[1]。每一輪處理均為作用在中間結(jié)果上的一批運(yùn)算,該中間結(jié)果稱為狀態(tài),用4×4字節(jié)矩陣表示,其中,數(shù)據(jù)矩陣稱為State、密鑰矩陣稱為Key。AES加密涉及5種運(yùn)算,分別是字節(jié)代換(SubBytes)、行移變換(ShiftRows)、列混合變換(MixColumns)、密鑰加法(AddRoundKey)和密鑰擴(kuò)展(ExpandedKey)。

  字節(jié)代換是對(duì)State每個(gè)字節(jié)進(jìn)行獨(dú)立非線性變換,由字節(jié)在GF域中求其乘法逆并外加一個(gè)仿射變換完成[2]。具體實(shí)現(xiàn)中廣泛使用查表方式完成該步變換(實(shí)現(xiàn)該功能單元被稱為Sbox),以避免復(fù)雜的乘法運(yùn)算。

  行移變換是對(duì)State進(jìn)行按行移位操作,第0行不移位,第1行循環(huán)左移一位,第2行循環(huán)左移兩位,第3行循環(huán)左移三位。


  

 


  密鑰加法是將輪密鑰Key和狀態(tài)State中對(duì)應(yīng)字節(jié)按位“異或”。

  密鑰擴(kuò)展提供輪變換對(duì)應(yīng)密鑰加法用到的各輪密鑰。各輪運(yùn)算中使用到的輪密鑰都不相同,密鑰擴(kuò)展運(yùn)算通過(guò)控制迭代運(yùn)算次數(shù)計(jì)算出對(duì)應(yīng)輪所需輪密鑰。

  加密過(guò)程由11輪運(yùn)算組成,其中首輪只進(jìn)行密鑰加法,接著進(jìn)行9次輪變換,輪變換由字節(jié)代換、行移變換、列混合變換及密鑰加法4個(gè)步驟構(gòu)成,再進(jìn)行末輪變換,在末輪中跳過(guò)列混合變換。末輪完成后輸出密文數(shù)據(jù)。AES加密過(guò)程如圖1所示。

 

 

  1.2 常用AES優(yōu)化實(shí)現(xiàn)

  AES算法的輪操作特點(diǎn)看似更適合于在通用CPU平臺(tái)下編程實(shí)現(xiàn),而實(shí)際上,此種實(shí)現(xiàn)方式在性能方面存在加密速度慢等先天局限性。AES加密處理單元一般處于數(shù)據(jù)主干道上,其處理數(shù)據(jù)能力直接影響整個(gè)應(yīng)用系統(tǒng)的外在性能表現(xiàn),因此,研究數(shù)據(jù)處理能力強(qiáng)的硬件加密實(shí)現(xiàn)方式具有重要的意義。如何實(shí)現(xiàn)高性價(jià)比的硬件AES加密一直是加密算法應(yīng)用領(lǐng)域研究的熱點(diǎn)問(wèn)題。

  常見(jiàn)的硬件優(yōu)化實(shí)現(xiàn)有如下幾種方式:(1)串行方式。將輪函數(shù)展平,每輪對(duì)應(yīng)組合邏輯,11輪迭代過(guò)程直接相連,前輸出作為次的輸入,每一個(gè)時(shí)鐘周期均可完成一個(gè)分組處理;(2)迭代方式。各輪迭代只用一個(gè)對(duì)應(yīng)輪函數(shù)功能的組合邏輯實(shí)體實(shí)現(xiàn),每11個(gè)時(shí)鐘周期完成一個(gè)分組處理;(3)流水線方式。用于提高系統(tǒng)工作時(shí)鐘周期的流水線技術(shù),一般僅在局部使用,或是與串行方式并用,可提高工作時(shí)鐘頻率,使其滿足極大帶寬的應(yīng)用要求;(4)輪內(nèi)實(shí)現(xiàn)流水線。在輪函數(shù)對(duì)應(yīng)實(shí)體中插入寄存器,將一輪運(yùn)算分至多個(gè)邏輯段完成,每個(gè)時(shí)鐘周期仍能完成一個(gè)數(shù)據(jù)分組處理。

  以上AES算法實(shí)現(xiàn)方式各有優(yōu)缺點(diǎn),但總體來(lái)說(shuō)缺乏靈活性。當(dāng)前應(yīng)用于嵌入式系統(tǒng)的AES加密模塊在靈活性、資源占用上還不是很理想。在對(duì)常用優(yōu)化方法進(jìn)行研究后,本文針對(duì)嵌入式系統(tǒng)設(shè)計(jì)一種AES加密IP核、實(shí)現(xiàn)低資源占用、高性能要求、32位數(shù)據(jù)位寬、且能方便進(jìn)行并行連接,實(shí)現(xiàn)數(shù)據(jù)位寬擴(kuò)展。

  2 IP核設(shè)計(jì)

  2.1 系統(tǒng)架構(gòu)設(shè)計(jì)

  IP系統(tǒng)分為時(shí)序控制、密鑰處理、數(shù)據(jù)處理三個(gè)主要單元,其系統(tǒng)結(jié)構(gòu)如圖2所示。系統(tǒng)的工作模式分為閑置模式、密鑰輸入模式、單輪加密模式及連續(xù)加密模式。復(fù)位后系統(tǒng)處于閑置模式,單輪加密模式可以直接切換為連續(xù)加密模式,而連續(xù)加密模式需進(jìn)入到閑置模式至少一個(gè)時(shí)鐘周期后才可切換到單輪加密工作模式。

 

 

 

    生成供在密碼系統(tǒng)中使用的密碼密鑰的方法與裝置,包括密鑰發(fā)生器,用于從較大的B位密鑰生成縮小的密鑰空間密鑰的子集。按照秘密的散列或分配密鑰將密鑰的子集隨機(jī)分布在B位密鑰空間上以提供帶有較大的表面工作因子的密鑰。工作因子取決于給定的密鑰位長(zhǎng)度的可能的不同密鑰數(shù)目,并向敵意的攻擊者提出對(duì)應(yīng)的解碼難度級(jí)。不知道秘密散列密鑰,密碼密鑰的工作因子呈現(xiàn)為高達(dá)S=2↑[B],而攻擊者必須進(jìn)行高達(dá)2↑[B]次猜測(cè)來(lái)肯定地確定一個(gè)特定的密鑰。對(duì)于攻擊者破譯該系統(tǒng),這一難度級(jí)通常對(duì)應(yīng)于很大計(jì)算量。然而,知道了秘密散列密鑰,工作因子便明顯地降低了。從而,可將密鑰的工作因子降低到小得足以滿足政府出口或進(jìn)口要求的級(jí)別而不降低該系統(tǒng)的保護(hù)級(jí)或強(qiáng)度。單個(gè)密碼密鑰發(fā)生器(機(jī))能容易地適應(yīng)在要求不同的工作因子的不同國(guó)家中使用。

  數(shù)據(jù)處理單元在加密模式下對(duì)明文數(shù)據(jù)進(jìn)行迭代運(yùn)算。該單元檢測(cè)到當(dāng)前是末輪數(shù)據(jù)處理時(shí)自動(dòng)跳過(guò)列混合運(yùn)算。在系統(tǒng)進(jìn)入加密模式后,數(shù)據(jù)處理單元從輸入端口分4次讀入128位明文數(shù)據(jù),經(jīng)過(guò)接下來(lái)的40個(gè)時(shí)鐘周期數(shù)據(jù)運(yùn)算過(guò)程后,得到密文中的個(gè)32位數(shù)據(jù)段。

  時(shí)序控制單元負(fù)責(zé)整個(gè)系統(tǒng)關(guān)鍵控制信號(hào)的生成,控制信號(hào)集中由一個(gè)單元負(fù)責(zé)產(chǎn)生,不僅利于軟件綜合出較高的時(shí)鐘頻率,而且輸出的時(shí)鐘相位也有較優(yōu)的一致性。

  系統(tǒng)正常工作狀態(tài)為先進(jìn)行密鑰載入操作,然后觸發(fā)進(jìn)入加密模式進(jìn)行多次的數(shù)據(jù)加密。在需要時(shí)可以在閑置狀態(tài)下再次進(jìn)行密鑰模式對(duì)密鑰進(jìn)行更新。

  在系統(tǒng)閑置狀態(tài)下,密鑰加載信號(hào)被檢測(cè)為有效時(shí),系統(tǒng)進(jìn)入密鑰輸入模式,對(duì)密鑰數(shù)據(jù)進(jìn)行讀入、保存及生成輪密鑰待用,而忽略密鑰處理單元中是否先前已存在密鑰數(shù)據(jù)。數(shù)字簽名通常是使用被稱為消息的相關(guān)信息來(lái)加密附屬于這個(gè)信息的標(biāo)簽,也稱為消息摘要或簡(jiǎn)稱摘要。如果簽名是在信息被修改后創(chuàng)建的,那么兩個(gè)標(biāo)簽將不再匹配。發(fā)現(xiàn)修改通常并不能提供誰(shuí)修改、怎樣修改或修改了什么的信息。數(shù)字簽名可以使用加密,但更多的是使用哈希函數(shù)。哈希函數(shù)和加密之間的區(qū)別在于哈希函數(shù)是單向操作,而加密通常是雙向過(guò)程,因?yàn)樵济魑目梢杂谜_的密鑰和算法重新構(gòu)建。在進(jìn)行大量數(shù)據(jù)處理時(shí),載入密鑰及載入組加密數(shù)據(jù)的幾個(gè)時(shí)鐘周期均可忽略,系統(tǒng)性能為每40個(gè)時(shí)鐘周期處理128位數(shù)據(jù)。在讀入明文時(shí),若檢測(cè)到載入數(shù)據(jù)信號(hào)無(wú)效,則退出連續(xù)加密模式,系統(tǒng)回復(fù)到閑置狀態(tài)。

  2.2 設(shè)計(jì)要點(diǎn)

  嵌入式系統(tǒng)中資源相對(duì)較少,一般數(shù)據(jù)位寬為32位或更少,如果設(shè)計(jì)的AES數(shù)據(jù)通道位寬達(dá)到128位或更多,雖然輪處理時(shí)間較短,但數(shù)據(jù)通道在I/O接口段必然利用率不高,而且占用資源難以降低,故本設(shè)計(jì)采用主通道數(shù)據(jù)位寬為32位的結(jié)構(gòu)。由于每輪中列混合變換需要的32位數(shù)據(jù)與前4個(gè)時(shí)鐘周期的行移變換輸出結(jié)果相關(guān),因此在行移與列混合單元間使用128位數(shù)據(jù)位寬,每4個(gè)時(shí)鐘周期進(jìn)行State0到State1轉(zhuǎn)換。

  從AES加密方法流程圖中可見(jiàn)首輪與末輪均有特殊處理,未經(jīng)過(guò)完整的4個(gè)輪處理過(guò)程,在一些設(shè)計(jì)中將首輪與末輪使用單獨(dú)硬件實(shí)現(xiàn),這樣可使硬件代價(jià)減少2輪的運(yùn)算時(shí)間。首輪結(jié)構(gòu)簡(jiǎn)單,與標(biāo)準(zhǔn)輪處理過(guò)程差異較大,單獨(dú)實(shí)現(xiàn)只需要在輸入端加上32個(gè)“異或”門,能以較小的代價(jià)換取一輪的運(yùn)算時(shí)間。而末輪與標(biāo)準(zhǔn)處理過(guò)程僅差列混合運(yùn)算,單獨(dú)實(shí)現(xiàn)需要將近多一倍的輪處理硬件,所以在本設(shè)計(jì)中由時(shí)序控制單元控制末輪處理時(shí)跳過(guò)列混合運(yùn)算。

  Sbox作為非線性運(yùn)算部分,必需具有良好的差分特性和比較復(fù)雜的代數(shù)結(jié)構(gòu),如果使用獨(dú)立邏輯電路實(shí)現(xiàn),面積優(yōu)化空間不大,多采用查表法實(shí)現(xiàn)。AES實(shí)現(xiàn)中的密鑰擴(kuò)展與數(shù)據(jù)處理都需要多個(gè)Sbox,通過(guò)分析綜合軟件資源消耗結(jié)果可知單個(gè)Sbox占用資源為208個(gè)LCs或是2KB RAM。減少Sbox的使用無(wú)疑成為降低資源占用的主要手段。經(jīng)過(guò)調(diào)研,一般嵌入式系統(tǒng)對(duì)AES加密性能要求在160 Mb/s到480 Mb/s之間,考慮到本設(shè)計(jì)可靈活擴(kuò)展的特性,設(shè)計(jì)中在數(shù)據(jù)處理路徑使用4個(gè)Sbox進(jìn)行時(shí)分復(fù)用,另采用4個(gè)Sbox進(jìn)行密鑰實(shí)時(shí)擴(kuò)展。

  3 硬件實(shí)現(xiàn)

  在虛擬專用網(wǎng)(VPN)和波分復(fù)用系統(tǒng)的光纖鏈路、視頻加密、Internet高端路由器等高速應(yīng)用中,硬件實(shí)現(xiàn)才是解決方案。硬件實(shí)現(xiàn)能確保加密算法及其密鑰擴(kuò)展的物理安全,因?yàn)橛布?shí)現(xiàn)通常不容易被外部攻擊者接觸或修改。

  本硬件實(shí)現(xiàn)在QuartusII8.0下使用 Verilog HDL語(yǔ)言進(jìn)行描述,在ModelSim6.2環(huán)境下進(jìn)行調(diào)試與仿真,使用Synplify9協(xié)助完成綜合與關(guān)鍵路徑分析工作。主要分析該IP核綜合到目標(biāo)器件EP1C4F324C6中在80 MHz頻率的性能表現(xiàn)及資源占用情況。同時(shí)在更高性能的目標(biāo)器件EP2S15F484C3中也進(jìn)行了綜合及后仿真,以作縱向?qū)Ρ取?/P>

  在QuartusII環(huán)境下選定目標(biāo)器件為低成本Cyclone系列EP1C4F324C6設(shè)置速度與面積均衡優(yōu)化模式,目標(biāo)工作頻率為90 MHz,使用邏輯單元實(shí)現(xiàn)Sbox查找表功能。綜合顯示實(shí)際綜合頻率為87.82 MHz(period=11.387 ns),本IP核占用資源2 647(Logic Cells),其中密鑰擴(kuò)展單元占用1 388(LCs),時(shí)序控制單元占用45(LCs)。文中均以此IP核運(yùn)行于80 MHz時(shí)鐘頻率進(jìn)行性能分析。

  選定綜合到StratixII系列中EP2S15F484C3器件,綜合頻率FMAX達(dá)到169.12 MHz時(shí)占用資源Logic utilization 9%,其中Combinational ALUTS 834/12 480(7%),Dedicated logic registers 598/12 480(5%)。將此綜合結(jié)果在ModelSim中用133 MHz時(shí)鐘驅(qū)動(dòng)進(jìn)行后仿真。

  4 數(shù)據(jù)分析

  仿真結(jié)果見(jiàn)表1,No.1采用常用測(cè)試數(shù)據(jù),密鑰為:2b7e1516_28aed2a6_abf71588_09cf4f3c,輸入明文為3243f6a8_885a308d_313198a2_e0370734時(shí),得到輸出密文3925841d_02dc09fb_dc118597_196a0b32,結(jié)果正確無(wú)誤。

 

 

  該IP核工作在80 MHz時(shí)鐘頻率下時(shí),數(shù)據(jù)吞吐量為128 bit×80 MHz/40 clk=256 Mb/s。速度/資源比(Mb/s)/Slice=256/(2647/2)=0.193。當(dāng)并行連接IP核進(jìn)行位寬擴(kuò)展時(shí),密鑰擴(kuò)展單元與時(shí)序控制單元可共用,進(jìn)一步提高資源利用率。當(dāng)擴(kuò)展為128位數(shù)據(jù)位寬時(shí),數(shù)據(jù)吞吐量成倍增加,而速度/資源比也有所提高,幾乎能達(dá)到 (Mb/s)/Slice=1024/((2647×4-(1388+45)×3)/2)=0.326。

   128位數(shù)據(jù)位寬的設(shè)計(jì)[6]中原文計(jì)算速度/資源比值時(shí)未考慮所占用的RAMs資源,而且文中設(shè)計(jì)為25 MHz時(shí)鐘頻率,進(jìn)行數(shù)據(jù)分析時(shí)卻將工作頻率直接換算為54 MHz,而未對(duì)其設(shè)計(jì)是否可正常工作于此頻率進(jìn)行論證。其設(shè)計(jì)主要考慮建立流水作業(yè)以提高性能。采用6級(jí)流水線技術(shù)及復(fù)合域方法優(yōu)化Sbox,達(dá)到了較優(yōu)的設(shè)計(jì)指標(biāo),但其固定的128位數(shù)據(jù)位寬在嵌入式系統(tǒng)中應(yīng)用有一定的局限性。

 

 

  在Synplify9下選定目標(biāo)器件EP2S15F484C3,優(yōu)先考慮提高速度,綜合結(jié)果時(shí)鐘頻率超過(guò)240 MHz,說(shuō)明本IP核設(shè)計(jì)合理,較好地利用了目標(biāo)器件資源。如果將本IP核應(yīng)用在更高性能目標(biāo)器件上或是設(shè)計(jì)為ASIC將會(huì)有更大的性能提升。

  本文設(shè)計(jì)的IP核在低端FPGA能以較低的資源消耗提供I/O性能,AES實(shí)現(xiàn)達(dá)到256 Mb/s,并提供適合應(yīng)用于嵌入式系統(tǒng)中32位數(shù)據(jù)界面。Rijndael算法在設(shè)計(jì)之初就將軟件實(shí)現(xiàn)的高效性、靈活性作為一個(gè)目標(biāo)。事實(shí)證明,Rijndael算法在通用處理器上能獲得相當(dāng)不錯(cuò)的性能。在933 MHz Pentium III處理器上用C語(yǔ)言和匯編語(yǔ)言實(shí)現(xiàn)了AES算法,128、192和256比特密鑰下的吞吐量分別達(dá)到325、275和236 Mb/s。文獻(xiàn)[27]的方案使用比特滑動(dòng)術(shù)處理256比特?cái)?shù)據(jù),僅花費(fèi)170個(gè)時(shí)鐘周期(相當(dāng)于1 GHz Pentium III處理器上1.6 Gb/s的數(shù)據(jù)吞吐量)。


  
關(guān)鍵詞:嵌入式嵌入式系統(tǒng)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!