《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于FPGA的DES加密算法的實(shí)現(xiàn)

基于FPGA的DES加密算法的實(shí)現(xiàn)

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

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

??? 關(guān)鍵詞: DES算法; FPGA; 仿真

?

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

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

?

?

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

1 子密鑰生成模塊?

??? DES算法每一輪次迭代都需要一個(gè)子密鑰,要實(shí)現(xiàn)DES算法就需要提前生成子密鑰,并且按照時(shí)序準(zhǔn)確地傳遞給迭代過程。?

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

?

?

??? 因?yàn)槊枯喴莆坏拇螖?shù)不同,所以每輪子密鑰產(chǎn)生的時(shí)間也不相同,所以會(huì)給迭代運(yùn)算帶來延遲,這也是采用VHDL設(shè)計(jì)存在的不足。從VHDL設(shè)計(jì)結(jié)果可以看出,原密鑰與每輪子密鑰之間有固定的關(guān)系,因此,可以通過軟件分析,建立子密鑰相對(duì)于原始密鑰的關(guān)系表,在硬件實(shí)現(xiàn)時(shí)直接使用此關(guān)系表即可,這樣也可以有效地節(jié)省硬件資源。?

2 迭代變換?

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

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

?

?

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

?

?

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

?

?

?

??? 本文通過對(duì)各個(gè)模塊特別是S盒與子密鑰生成模塊的詳細(xì)分析,給出了DES加密的一種實(shí)現(xiàn)方法,并在此基礎(chǔ)上對(duì)部分模塊進(jìn)行了驗(yàn)證仿真,給出了硬件仿真線路圖。這種設(shè)計(jì)方法是根據(jù)功能模塊分層進(jìn)行的,因此可以節(jié)省設(shè)計(jì)時(shí)間,減少設(shè)計(jì)輸入的錯(cuò)誤,簡(jiǎn)化驗(yàn)證的過程。?

參考文獻(xiàn)?

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

[2] 胡向東,魏琴芳.應(yīng)用密碼學(xué)[M].北京:電子工業(yè)出版社,2006.?

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

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

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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 花传媒季app| a毛片免费视频| 欧美日韩国产成人高清视频| 囯产精品一品二区三区| 1000部精品久久久久久久久| 少妇人妻无码精品视频| 久热这里只有精品12| 波多野结衣大战欧美黑人| 国产xxxx视频在线观看| 日本免费色视频| 在线观看网站污| 中文字幕日韩精品一区二区三区| 欧美精品无需播放器在线观看| 好大好硬好深好爽的视频| 久久男人的天堂色偷偷| 欧美精品黑人粗大| 冻千秋的堕落h污文冬妃| 麻豆第一区MV免费观看网站 | 91抖音在线观看| 国产视频xxxx| xl上司带翻译无马赛樱花| 日本xxxx高清| 亚洲AV无码专区亚洲AV不卡| 毛色毛片免费观看| 午夜a成v人电影| 蜜桃成熟时仙子| 国产成人免费一区二区三区| 51国产黑色丝袜高跟鞋| 天堂一区二区三区精品| 亚洲国产三级在线观看| 神马伦理电影看我不卡| 国产一区二区精品人妖系列| 久久综合热88| 国产精品秦先生手机在线| av无码精品一区二区三区| 成人午夜小视频| 久久五月天婷婷| 最好看的中文字幕视频2018| 亚洲国产视频网站| 波多野结衣伦理电影在线观看| 国产又粗又猛又爽视频|