《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于FPGA的DES加密算法的實現

基于FPGA的DES加密算法的實現

2009-01-14
作者:趙蓮清,王亞美

??? 摘? 要: 介紹了DES算法的基本原理與加密過程,給出了基于FPGA的DES算法的硬件實現,并且用Quartus II 實現了模塊仿真,驗證了DES加密算法。?

??? 關鍵詞: DES算法; FPGA; 仿真

?

??? 隨著網絡通信技術的發展,如何保護數據傳輸過程的安全已成為一項急迫的要求。政府部門、金融行業、通信行業、情報等系統都非常重視信息的安全。密碼安全技術則是所有安全服務的基礎。數據加密是信息安全的重要手段,DES密碼算法是最有代表性的分組加密算法,1976年被美國政府采用,隨后又被美國國家標準局和美國國家標準學會承認,發展至今已成為工業界的標準密碼算法,目前廣泛應用于保密通信中。DES算法用64位的密鑰對64位的明文加密,64位密鑰中每8位就有一奇偶校驗位,不參與運算,因此有效密鑰只有56位。此外,由于該算法的對稱性,其加密和解密運算過程完全相同,只是在迭代運算時子密鑰的使用順序不同[1]。DES加密算法有各種實現方案,本文提出一種DES加密算法的硬件實現方法。?

??? DES算法主要包括:初始置換、16輪迭代的乘積變換、初始逆置換以及16個子密鑰產生器[2]。DES 加密過程如圖1所示。?

?

?

??? 初始置換主要用于對明文中的各位進行換位,目的在于打亂明文中各位的排列次序,輸出結果按奇偶分為左右兩路送入乘積變換部分。在這個過程中不使用密鑰,僅僅對64位碼進行移位操作。而進行逆初始置換是為了使加解密統一使用同一種算法。初始置換與初始逆置換只是將64位輸入的數據按位進行重新排列,只需要一些輸入輸出端口,按照置換規則把輸入與輸出對應關聯即可[3]。下面只介紹密鑰的產生與16輪迭代乘積變換模塊的設計。?

1 子密鑰生成模塊?

??? DES算法每一輪次迭代都需要一個子密鑰,要實現DES算法就需要提前生成子密鑰,并且按照時序準確地傳遞給迭代過程。?

??? 子密鑰產生模塊由選擇控制、循環移位控制等部分構成。該模塊的輸入是64位初始密鑰,輸出為參加每次迭代運算的子密鑰,另外還有一個控制信號(time),用來控制在不同迭代過程中移位的次數。本設計采用硬件描述語言(VHDL)按照子密鑰產生的過程,通過置換選擇1、循環移位、置換選擇2,一步一步得到子密鑰的。循環移位仿真結果如圖2所示。圖中,c0、d0是經過置換選擇1后得到的前后28位,Time為控制移位次數的控制信號,k1為移位后的結果,再經過置換選擇2即可得子密鑰。?

?

?

??? 因為每輪移位的次數不同,所以每輪子密鑰產生的時間也不相同,所以會給迭代運算帶來延遲,這也是采用VHDL設計存在的不足。從VHDL設計結果可以看出,原密鑰與每輪子密鑰之間有固定的關系,因此,可以通過軟件分析,建立子密鑰相對于原始密鑰的關系表,在硬件實現時直接使用此關系表即可,這樣也可以有效地節省硬件資源。?

2 迭代變換?

??? DES算法是典型的迭代分組密碼算法,實現過程的核心是16輪次相同的迭代運算。輸入的64位明文先執行初始置換對明文進行換位處理;然后通過子密鑰k1~k16對明文進行16輪乘積變換,即進行16次迭代處理;最后經過逆初始置換的處理,得到64位的密文輸出。16次迭代的目的是使明文增加混亂性和擴散性,避免輸出密文殘留統計規律,使破譯者無法反向推算出密鑰。?

??? 輪迭代運算中的f函數是非線性的,它是每輪實現混亂和擴散的最關鍵的模塊,也是整個加密算法的核心,它包括E盒擴展置換、S盒置換和P盒置換,其基本過程如圖3[4]所示。其中,E盒擴展置換、P盒置換的原理和實現方法與初始置換以及逆初始置換類似,運算過程都是線性的,而S盒是一個復雜的非線性函數,正是經過了S盒的非線性變換,才使算法達到很好的“混亂”效果,從而具有較強的安全性。因此,S盒的設計是DES算法的關鍵部分,S盒設計的優劣將影響整個算法的性能。?

?

?

??? 基于S盒的表現形式是矩陣形式,因此在使用VHDL語言建立S盒模型時,一般都會想到直接用多重選擇CASE語句[5]。在這里即采用CASE語句實現。用CASE選擇語句實現S盒有兩種方式:一種是直接使用S盒的6位輸入為6個變量的CASE語句方式,另一種方式是使用雙重CASE嵌套語句,即外層使用2個輸入控制S盒的橫向選擇;內層使用4個輸入控制S盒的縱向選擇。采用雙重CASE語句可以直接定位輸出結果。這兩種方式下占用資源的情況如表1所示。?

?

?

??? 根據表1比較的結果可以看出,選擇雙重CASE語句建立S盒模型可以大大節省資源,其仿真結果如圖4所示。s0為S盒的輸入,s2為S盒的輸出,這樣就完成了非線性的變換。圖5為通過Quartus II實現的基于FPGA的DES加密算法的硬件仿真線路圖。?

?

?

?

??? 本文通過對各個模塊特別是S盒與子密鑰生成模塊的詳細分析,給出了DES加密的一種實現方法,并在此基礎上對部分模塊進行了驗證仿真,給出了硬件仿真線路圖。這種設計方法是根據功能模塊分層進行的,因此可以節省設計時間,減少設計輸入的錯誤,簡化驗證的過程。?

參考文獻?

[1] STALLINGS W. Cryptography and network security principles and practices[M]. prentice Hall, 1996.?

[2] 胡向東,魏琴芳.應用密碼學[M].北京:電子工業出版社,2006.?

[3] 高獻偉,周玉坤,路而紅,等.DES算法硬件實現的研究[J]. 北京電子科技學院學報, 2001,(1):11-15.?

[4] 張福泰.密碼學教程[M].武漢:武漢大學出版社,2006.?

[5] 李永彬,雷 菁.DES加密算法的高速FPGA實現[J].電子工程師,2005,(7):39-40.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 亚洲在线视频网站 | 国产欧美一区二区三区视频在线观看 | 欧美成人免费看片一区 | 一本综合久久国产二区 | 99精品免费久久久久久久久日本 | 1024国产欧美日韩精品 | 国产一级特黄aa级特黄裸毛片 | 欧美成人免费观看的 | 中国美女乱淫免费看视频 | 国产韩国精品一区二区三区久久 | 欧美 在线 成 人怡红院 | 亚洲精品成人一区二区 | 久夜色精品国产一区二区三区 | 成人69视频在线观看免费 | 农村寡妇一级毛片免费看视频 | 91精品国产免费久久 | 久草男人天堂 | 国内精品七七久久影院 | 国产精品久久久久a影院 | 亚洲一区 在线播放 | 国产在线视频网址 | 成人免费公开视频 | 午夜香蕉成视频人网站高清版 | 亚洲日本在线观看网址 | 草草影院www色极品欧美 | 久久性生大片免费观看性 | 成人国产欧美精品一区二区 | 欧美精品成人一区二区视频一 | 高清毛片aaaaaaaaa片 | 一区二区三区四区免费视频 | 免费一级欧美大片久久网 | 亚洲成人福利 | 日韩一级欧美一级在线观看 | 亚洲在线视频一区 | 日韩视频久久 | 国产一级强片在线观看 | 国产在线观看一区 | 亚洲精品美女 | 免费看黄网址 | 日韩在线视频不卡一区二区三区 | 亚洲经典在线中文字幕 |