《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種密鑰可配置的DES加密算法的FPGA實現
一種密鑰可配置的DES加密算法的FPGA實現
姚 霽, 劉建華, 范九倫
摘要: 在傳統的DES加密算法的基礎上,提出一種對密鑰實行動態管理的硬件設計方案,給出了其FPGA實現方法。通過對DES加密原理的分析,利用其子密鑰的生成與核心算法相關性較弱的特點,對密鑰進行重新配置。DES算法采用資源優先方案,在輪函數內部設置流水線架構,提高了整體處理速度;在FPGA上實現輪函數和密鑰變換函數獨立運算,減少了相鄰流水線級間的邏輯復雜度,從而實現了DES算法在FPGA條件下的重構設計。最終通過對設計結果的功能仿真和測試分析,論證了整個設計的正確性。
Abstract:
Key words :

  摘 要: 在傳統的DES加密算法的基礎上,提出一種對密鑰實行動態管理的硬件設計方案,給出了其FPGA實現方法。通過對DES加密原理的分析,利用其子密鑰的生成與核心算法相關性較弱的特點,對密鑰進行重新配置。DES算法采用資源優先方案,在輪函數內部設置流水線架構,提高了整體處理速度;在FPGA上實現輪函數和密鑰變換函數獨立運算,減少了相鄰流水線級間的邏輯復雜度,從而實現了DES算法在FPGA條件下的重構設計。最終通過對設計結果的功能仿真和測試分析,論證了整個設計的正確性。
關鍵詞: DES; 移位寄存器" title="線性反饋移位寄存器">線性反饋移位寄存器; 混沌加密; FPGA

 

  隨著密碼學技術的飛速發展,軟件加密已經非常流行,但由于硬件加密的穩定性和兼容性更好而且速度更快,所以仍是商業和軍事用途的主要選擇。而FPGA在實現算法方面具有靈活性、物理安全性和比軟件更高的速度性能,已成為硬件實現加密算法的最好選擇。
數據加密標準[1]DES(Data Encryption Standard)是迄今為止世界上最為廣泛使用的一種分組密碼算法。本文提出了一種密鑰可配置的DES算法的FPGA實現方案:即在傳統DES算法的基礎上,采取密鑰可配置的方法,增加密鑰復雜度,加強密鑰保護,利用初始密鑰選擇的隨機性,增強算法抗攻擊能力,通過選擇多種密鑰產生方法,進行DES加密。因此,即便知道了密文和密鑰,由于不知道采取何種密鑰產生方式,仍然難以攻破。
1 加密算法理論
1.1 DES算法原理

數據加密標準DES算法是用于計算機數據加密保護的分組加密的數學算法,算法以64 bit為一個分組對數據進行加密。使用64 bit的密鑰加密64 bit分組的信息。首先將原始數據64 bit明文進行初始置換IP,然后與子密鑰(由加密密鑰產生)進行一系列迭代運算,最后再經過逆置換IP-1,即可得到64 bit密文(加密后數據)。在每一輪中,數列塊的右邊32 bit數據和密鑰(Key)一起傳送給函數f,函數f運算的結果再與數列塊左邊32 bit數據進行“異或”操作。其中S盒(S選擇函數)是DES算法的心臟,由它實現非線性變換。
解密過程與此類似,只是在應用子密鑰時,順序顛倒為k16,k15,…k2,k1。圖1所示為DES加密原理。從圖中可以看到輪密鑰產生器相對于DES算法是獨立運算的,這就為密鑰的配置提供了可能和便利。

 


因為該算法是公開的,因此64 bit的密鑰算法是極其重要的,因為它是導致由64 bit的明文到64 bit密文唯一集合的密碼運算。故DES的加密安全依賴于對密碼的保護。
1.2 線性反饋移位寄存器
線性反饋移位寄存器LFSR(Linear Feedback Shift Register)如圖2所示,是一種非常成熟的序列生成方法,已被廣泛地應用于密碼技術、通信技術等方面。

 


若反饋函數為線性函數f(a1,a2,…an)=c1a1c2a2cnan,則稱為線性反饋移位寄存器(LFSR)。其中,a1,a2,…an為二值(0,1)存儲單元,這n個二值存儲單元稱為該反饋移位寄存器的級。任一時刻,這些級的內容構成反饋移位寄存器的狀態,每個狀態可以用n長序列(a1,a2,…an)來表示,對應1個GF(2)域上的n維向量。反饋函數f(a1,a2,…an)是n元布爾函數。在時鐘脈沖的控制下,每經過1個時刻,每一級存儲器ai都要將自己存儲的內容向下一級ai-1傳遞,反饋函數由存儲器當前狀態計算出an下一時刻的內容。
由于線性反饋移位寄存器易于構造且易于應用軟件和數字硬件實現,所以密碼設計者常用它來構造序列密碼。本文采用線性反饋移位寄存器作為對初始密鑰的一種配置。
1.3 混沌密碼
由于混沌系統具有的寬頻譜、類隨機特性、對結構參數及初始狀態的極端敏感性等性質,日益成為密碼學的重要分支。混沌密碼在硬件實現時,應該在盡量提高精度、逼近混沌特性的同時,提高運算速度,滿足工程中實時處理的要求。而一維Logistic映射從數學形式上來看是一個非常簡單的混沌映射,但此系統具有極其復雜的動力學行為,在保密通信領域的應用十分廣泛[2]。因此本設計就采用了Logistic映射對密鑰進行混淆。
Logistic映射是混沌模型中的一種,它是一個離散混沌系統,表達式為:xn+1=u×xn×(1-xn),(n=1,2,),其中初始值x0∈(0,1)。混沌動力系統的研究指出,當3≤u≤4時,Logistic映射由出現倍分岔現象逐步趨于混沌狀態[3],即由初始條件在Logistic映射的作用下所產生的{xn,n=0,1,2,)是非周期、不收斂的,且對初始值非常敏感的混沌序列。當u=4時,表達式為:xn+1=4×xn×(1-xn), 此時構成的動態系統在連續域上是混沌的,x0取(0,1)內的值。
2 FPGA上的算法實現
采用基于SRAM技術的FPGA設計的電路雖然不具有保密性,但是基于Kerckhoff原則,所實現算法的硬件電路是可行且安全的。為了增強DES算法的安全性,本文提出了對密鑰進行動態配置來改進DES算法,利用線性反饋移位寄存器和Logistic映射增加初始密鑰的復雜度。具體配置方法為:根據控制信號,將輸入的64 bit密鑰進行配置,既可以直接將初始密鑰引入,參與DES加密算法,又可以經過線性反饋移位寄存器,得到新的密鑰流參與DES加密算法,還可以經過混沌加密進一步增強DES算法的密鑰安全性。
2.1 密鑰流生成器的選取
  本設計中,選取線性反饋移位寄存器和混沌序列作為密鑰流生成器。
由于N級線性反饋移位寄存器輸出的序列是周期性的,非常適合硬件實現,且最大周期為2n-1,為了產生64 bit的密鑰序列,設計5級移位寄存器(周期為31),其狀態關系為:

這樣無需等64個時鐘周期,只需31個周期就可以得到64 bit的密鑰。
為了從混沌序列中獲得每輪64 bit的輪密鑰,需要對產生的混沌序列進行有限精度的二進制編碼,即把混沌序列中的每一項與一個定長的二進制編碼相對應。當u=4時,量化后的表達式為:

初始值x0為(0,2n-1)之間的整數,取n=16 bit,使用映射函數把4個連續的序列項映射成1個輪密鑰,即rkey={key1,key2,key3,key4}。這樣產生的輪密鑰既有隨機性又有獨立性。
2.2 硬件實現結構
傳統的DES算法主要有2組輸入信號:明文datain[63:0]、密鑰keyin[63:0];2組輸出信號:密文dataout[63:0]以及有效信號dataout_en。為了實現對密鑰的配置,增加了密鑰選擇輸入信號key_sel[1:0]:當取00或者11時,直接將密鑰keyin送至DES模塊中的密鑰產生模塊;當取01時,將密鑰keyin先送至線形反饋移位寄存器中生成新的序列密碼作為新的密鑰送至密鑰產生模塊中;當keyin取10時,將密鑰keyin先送至混沌加密模塊中生成新的混沌序列作為新的密鑰參與后續的加密運算。這2個模塊不可能同時工作,當其中1個工作時,另1個關閉時鐘。采取關閉時鐘法選擇對應的加密算法,既能簡化電路,減少控制信號,減少門的翻轉次數,又能降低芯片集成度,進而達到降低功耗的目的。其邏輯結構如圖3所示。


為了有效地控制密鑰生成模塊的工作,同時降低系統功耗,本設計采用了FPGA設計中的乒乓操作技巧[4],具體操作為:對線性反饋移位寄存器(LFSR)和混沌加密模塊(logistic)分別使用獨立的時鐘信號clk_lf、clk_lo,而不使用系統時鐘clk。通過密鑰選擇輸入信號key_sel的取值不同,使clk_lf和clk_lo的值分別等于0或是系統時鐘clk。
DES加密算法作為本設計中的核心算法,以多輪的密鑰變換輪函數、密鑰和數據運算輪函數為特征,相應的硬件實現方法有2種:一種是通過輪函數的16份硬件拷貝,達到深度細化的流水線處理,實現性能最優;另一種是通過分時復用,重復調用1份輪函數的硬件拷貝,以時間換空間,從而得到硬件資源占用的最小化。
本設計采取的是資源優先方案:即僅用硬件實現一套密鑰變換和密鑰加數據運算輪函數,通過反復16次調用這一硬件結構來實現1次DES加密運算。這樣可以大大減少了硬件開銷,但芯片的性能有所降低。因此,又采取在輪函數內部設置一級流水線來提高整體處理的速度。在硬件上實現數據加密鑰輪函數和密鑰變換函數的同步流水線架構,減少了相鄰流水線級間的邏輯復雜度,通過設置輪計數器對所進行的輪運算計數,控制數據選擇器,從而實現輪函數復用。其硬件結構如圖4所示。

 


3 仿真及驗證
本文所有算法均采用Verilog HDL實現,并在Modelsim仿真環境下,編寫了測試激勵,進行RTL級功能仿真,如圖5所示。由圖可以看到,此時key_sel和arith_sel輸入為1時,密鑰流采取了混沌加密,算法采用了DES算法,輸入明文為:636F6D7075746572,密鑰數據為7365637572697479,經過組合加密后得到的密文為49D28E37281FFFB2。

 

 

 

 

 

 


行為級仿真通過后,又采用了FPGA專用綜合工具Synplify對算法進行了綜合。結果表明:該組合加密模塊耗費3 056 LE,該模塊下載到Virtex-II芯片中,最高工作頻率可達50 MHz。由于本設計采用16級流水總線設計,所以最高數據編碼/解碼速率可達3 Gb/s。綜合完成后,又使用XILINX的ISE軟件進行布局布線,并提取了網表和延時文件,在Modelsim后仿其環境中進行了時序后仿真,結果完全符合時序要求,達到了設計目的。
加密數據的安全不僅依賴于加密算法的保密,更依賴于加密密鑰的安全。本文通過對整個加密算法的分析,提出了較為合理的密鑰動態配置的DES加密算法的設計方法和實現途徑,并在FPGA平臺上進行了測試和驗證,數據的連續加/解密傳輸達到了預先的設計要求。這種實現方法整體處理速度高,相鄰流水線級間的邏輯復雜程度低,程序對編譯器的依賴性少,提高了算法的整體性能。通過適當改進,可以設計出通用型芯片,實現對通信數據的實時、可靠加密傳輸,在通信、軍事、加密等領域有著廣泛的應用前景。


參考文獻
[1] 盧開澄.計算機密碼學(第三版). 北京:清華大學出版社,2003.
[2] 姜麗, 金衛雄. 混沌加密技術及算法的研究.淮海工學院學報, 2004,13(4):39-42.
[3] 呂金虎,陸君安,陳士華.混沌時間序列分析及其應用.武漢:武漢大學出版社, 2002.
[4] 華清軟件嵌入式培訓中心.FPGA應用開發入門與典型實例.北京:人民郵電出版社,2008. 

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 四虎电影免费观看网站 | 久久中文字幕免费 | 久久国产一久久高清 | 丁香激情综合 | 国产片在线观看播放 | 成人短视频在线观看 | 久久综合五月婷婷 | 国产99久久久国产精品免费直播 | 精品一区二区三区四区五区 | 色偷一区国产精品 | 激情五月综合婷婷 | 欧美中文在线 | 欧美视频区| 2021在线永久免费视频 | 伊人久久综合视频 | 男人的天堂最新网址 | runaway在线观看免费韩国动漫 | 亚洲国产免费 | 久久免费视频99 | 成人理论电影在线观看 | 精品久久一区二区三区 | 男人天堂.com| 国产亚洲美女精品久久久久狼 | 97在线观看免费观看高清 | sihu网站| 久久三级国产 | 国产成人理在线观看视频 | 日韩欧美一区二区久久 | 国产精品99在线观看 | 玖玖在线国产精品 | 亚洲免费一| 国产在线精品一区二区中文 | 欧美精品一区二区三区免费观看 | 日本不卡视频网站 | 黄色小视频免费网站 | 青青青视频蜜桃一区二区 | 欧美日韩另类在线 | 综合网婷婷| 国产永久免费高清动作片www | 黑人中文字幕在线精品视频站 | 国产国产成人精品久久 |