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

基于3-DES算法的FPGA加密應用

2008-07-28
作者:李 騫, 汪學剛, 李漢釗

??? 摘 要: 闡述了一種針對SRAM工藝FPGA的加密保護方案,并給出了主要模塊的實現結構。該方案應用當前流行的3-DES" title="3-DES">3-DES算法對校驗數據加密,可靠性高,占用資源少,具有較高的實際應用價值。
??? 關鍵詞:? DES;? 3-DES;? FPGA加密;? CPLD

?

??? 在現代電子設計中,以FPGA為代表的數字系統現場集成技術正得到越來越廣泛的應用。由于大規模高密度可編程邏輯器件一般都采用SRAM工藝,因此每次上電" title="上電">上電時,都要對FPGA器件重新進行配置,從而可以通過監視配置位數據流的方法對設計進行復制。因此,對于關鍵的核心設備有必要采用加密技術" title="加密技術">加密技術,以保護設計者的知識產權。
??? 數據加密標準DES(Data Encryption Standard)是美國國家標準局頒布的由IBM公司研制的一種非機密數據的正式數據加密標準,是一種世界公認的較好的加密算法。而3-DES算法是為了克服DES算法密鑰只有56位的缺點提出的,它將密鑰擴展為168位,到目前為止還沒有人給出攻擊3-DES的有效方法。本文給出一種基于3-DES算法的FPGA加密保護的硬件實現方法,具有較強的健壯性,足以滿足安全需求。
1 SRAM工藝FPGA存在的保密性問題及加密方法
??? 一般來說,采用SRAM工藝的FPGA芯片的配置方法主要有三種:由計算機通過下載電纜配置,用專用配置芯片配置,采用存儲器加微控制器的方法配置,這三種方法在加電時都需要將配置數據寫入FPGA。因此,只要對配置引腳進行采樣就可以得到配置數據信息,從而可以對另一塊FPGA芯片進行配置,完成對內部電路設計的復制。
??? 由于上電時的配置數據可以被復制,因此單獨的一塊FPGA芯片無法實現有效加密。FPGA芯片供應商對位數據流的定義是不公開的,所以無法通過外部的配置數據流信息推測內部電路。也就是說,即使得到配置信息也無法知道內部電路結構。因此在配置完成后使FPGA處于非工作狀態,利用另外一塊保密性較強的CPU產生密碼驗證信息與FPGA進行信息交互,只有在驗證成功的情況下才能使FPGA正常工作,這樣就能實現對設計的加密。
2 DES及3-DES算法介紹
2.1 DES算法

??? DES加密技術是一種常用的對稱加密技術。該技術算法公開,加密強度大,加解密采用同一個密鑰,解密為加密的逆過程,明文長度64位,輸出密文64位,64位密鑰中包括8位奇偶效驗位,因此有效長度為56位。DES算法的總體流程如圖1所示,加密過程分成三個階段:首先,64位的明文經過初始變換(IP)被重新排列;然后,進行l6輪相同函數的作用,每輪的作用都含有置換和代換過程,第16輪迭代的64位輸出經過左右32位的互換產生預輸出;最后,預輸出再被與初始變換(IP)互逆的逆初始變換(IP-1)作用,產生64位的密文。圖1的右半部分給出了使用56位密鑰的過程。開始時,密鑰經過壓縮變換(1)得到C、D兩部分,然后經過循環左移(1)……(16)和壓縮變換(2)分別得到子密鑰K1……K16 ,供每一輪的迭代加密使用,每輪置換函數相同,但由于密鑰位的重復迭代使得子密鑰互不相同。

?

?


2.2 3-DES算法
??? 隨著計算機的運算能力不斷提高,傳統的DES已經不能完全滿足人們對數據傳輸的安全性要求,56位密鑰在窮舉攻擊之下比較脆弱,因此,新的更長密鑰的對稱加密算法逐步取代DES算法。3-DES使用三個不同的密鑰對數據塊進行三次DES加密,其中第二次DES運行在解密模式,這樣密鑰的長度就能擴展到l68位,從而充分防范窮舉攻擊。
3 系統設計方案
??? 本設計使用一塊CPLD芯片對FPGA進行加密處理,系統的加密能力主要由CPLD的加密能力決定,這就要求加密算法要足夠復雜,使得對驗證信息的捕獲與識別足夠困難。具體加密過程如下:首先產生兩個相同的偽隨機序列發生器:一個位于SRAM工藝的FPGA內;另一個位于CPLD內。FPGA上電配置完畢后每隔一段時間產生一個新驗證數據并且向CPLD發出一個觸發信號,CPLD在接收到觸發信號后其內部的序列發生器也生成一個相同的偽隨機數" title="隨機數">隨機數并在加密后串行發出,FPGA接收數據并將其解密后與自身產生的數據進行比較,若結果一致則通過驗證,若結果不一致或在規定的時間內沒接收到數據,則進入鎖定狀態不能正常工作。之所以采用3-DES算法進行加密是因為使用單純的偽隨機數加密在窮舉攻擊下極易被破解,而在3-DES算法加密之后通過對引腳采樣的方法只能取得當前的數據流信息,無法實時產生正確的驗證信息,因而系統的安全性可以得到極大的提高。
4 系統的硬件實現
4.1 整體結構

??? 本系統分為兩個大模塊:CPLD上的FPGA_security模塊以及FPGA上的FPGA_decrypt模塊,連接方式如圖2所示。其中,FPGA_security模塊用來接收觸發信號、產生隨機數、加密并發送數據,而FPGA_decrypt模塊則負責產生隨機數、發送觸發信號并計時、接收數據、解密、判斷比較。兩芯片之間通過同步串行接口進行通信,TX_CLK為接口的同步時鐘,TX_BI指示數據發送的開始和結束,TXD為數據發送接口,trig_out觸發輸出,securty指示驗證是否成功。偽隨機序列發生器采用64級移位寄存器實現。

?


4.2? DES加密模塊
4.2.1 加密變換模塊

??? DES的初始變換和逆變換都是對數據的換位操作,在硬件實現上只需一些連線資源。在經過初始變換之后,明文被分為L和R兩部分,之后要經過16層加密變換,如圖3所示。每層變換的輸出作為下一輪迭代的輸入。每層變換的公式為:
???

?

?

??? 為節省硬件成本,16層加密變換過程通過對單層加密變換的反復調用來實現,每個時鐘周期" title="時鐘周期">時鐘周期將輸出結果用鎖存器鎖存,以便下次調用。整個加密變換過程需16個時鐘周期。每輪的密鑰為48位子密鑰,由子密鑰生成部分提供,f{R(n),K(n)}是加密函數,它是DES加密的核心。
4.2.2? f函數模塊
??? 加密函數f{R(n),K(n)}的運算主要包括擴展運算E,S盒運算和P盒運算。32位的輸入經過E表擴展為48位,然后與48位的子密鑰進行模2加得到48位的結果。48位的數據通過S盒變換為32位,再通過P盒進行一次置換得到加密函數的輸出。E運算和P盒實際上都是一次位的置換,沒有很復雜的運算。S盒由8個特殊的6位到4位的變換構成一個復雜的非線性變換[1],是加密函數的關鍵。考慮到所選用芯片內部的四輸入查找表結構,先將S盒的實現邏輯表達式進行化簡,化簡時先固定2個變量,化簡另外4個變量,在實現時使用雙重case語句,外層使用2個輸入,內層使用4個輸入,從而充分利用內部資源。
4.2.3? 子密鑰生成
??? 64位的輸入密鑰中第8,16,…,64位包含了8個奇偶效驗位,壓縮變換除去了奇偶效驗位,并對剩下的56位進行位置換,有效的56位密鑰經過壓縮變換后分成C和D兩部分。從第一個周期開始,每個時鐘C和D循環左移一位或兩位,鎖存后作為下一輪輸入, 同時C、D兩部分也在合并后通過壓縮變換產生48位的子密鑰K1、K2、K3……K16,作為f函數輸入。在解密過程中子密鑰的生成順序與加密過程正好相反,此時從第二個周期開始,每個時鐘C和D循環右移一位或兩位,即可得到K16、K15、K14……K1。
4.3? 3-DES加密/解密過程
??? 3-DES加密/解密實現框圖如圖4所示,其加密過程分三步:(1)使用密鑰KEY1對明文進行DES加密得到A;(2)使用密鑰KEY2對A進行DES解密運算得到B;(3)使用KEY3對B再進行一次DES加密得到密文。該算法最快速的實現方法是采用流水線實現,但由于運算速度對加密保護的影響不大,在設計時應優先考慮電路資源的節省。DES加密過程和解密過程的區別僅在于子密鑰給出的順序不同,因此選用循環迭代的設計,即對同一DES模塊調用三次。子密鑰的生成在三次DES運算中也使用同一模塊,其輸入信號包括時鐘clk、count[1:0]、密鑰key_in[64:1]、觸發信號trig,輸出信號為子密鑰keysub[48:1],其中count[1:0]指示DES運算的次數,用來控制C、D循環左/右移位。3-DES的解密過程為加密過程的反變換,即第一、三次變換為DES解密,第二次為DES加密,使用密鑰的順序與加密時相反。

?


4.4 實現結果
??? 本設計中選用的兩塊芯片都是ALTERA公司的,CPLD為MAXⅡ系列的EPM1270T144C5,FPGA為cycloneⅡ系列的EP2C50F484C6。FPGA部分共使用868個LE單元, CPLD部分使用629個LE單元,只占LE單元總量的49%。為充分利用硬件資源,將加密算法做了進一步增強,在兩芯片中各增加三個64位的隨機序列產生器作為密鑰的輸入。這樣一來,在通信時不但每次發送的數據不同,而且每次加密/解密的密鑰也在不斷變化,從而在原有基礎上又增加了算法的健壯性。最終結果如下:對于CPLD,總LE為1 039/1 270(81%),對于FPGA,總LE為1 212/50 528(2%)。可見加密模塊只占用被加密芯片較少的硬件資源,對整個系統沒有造成大的負擔。圖5為仿真結果,圖中TX_CLKx為同步時鐘,trig_x為觸發信號(啟動驗證過程),TX_BI_x為數據發送起始標志位,TXD_x為串行數據發送端,code_add為加密前的信息,word_send_add為發送的加密后的信息,code_rec_x為接收信息,code_dec_x為解密后的信息,key_x為密鑰信息。由圖可見,當code_add與code_dec一致時驗證通過,此時驗證標志位security保持高電平。

?


??? 本文提出了一種FPGA加密保護的硬件方案,使用一塊CPLD與FPGA芯片進行實時信息交互,使用3-DES算法采用循環迭代方法對驗證信息加密,每次加密/解密運算需花費48個時鐘周期,使用三個56位的密鑰,且通信雙方的密鑰在每次信息驗證時都會不斷更新,每個密鑰序列的最大長度可達264-1,若對其密鑰空間中密鑰進行窮舉搜索,由于空間太大,這實際上是不可行的。實驗證明,該方案電路簡單、可靠性高,可以在FPGA芯片上正常工作。
參考文獻
[1] ?National institute of standards and technology.Data Encryptlon Standard(DES).FIPS PUB 46-3,1999.
[2] ?SCHAFFER T, GLASER A, FRANZON P D. Chip-package co-implementation of a triple DES processor, advanced Packaging. IEEE Transaction 2004,27(1):194-202.
[3] ?KITSOS P, GOUDEVENOS S, KOUFOPAVLOU O. VLSI implementations of the triple-DES block cipher Electronics, Circuits and Systems. Proceedings of the 2003 10th IEEE International Conference, 2003,1(14-17):76-79.
[4] ?郭棟,孫峰,唐值明.加密與解密實戰攻略.北京:清華大學出版社,2003:225-229.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区成人精品| 久久亚洲一区二区| 久久精品99国产精品日本| 中日韩男男gay无套| 亚洲欧洲日本国产| 亚洲电影在线看| 黄色资源网久久资源365| 国产美女诱惑一区二区| 国产精品久久久久久久浪潮网站| 国产精品video| 欧美色欧美亚洲高清在线视频| 欧美乱在线观看| 欧美激情一区在线| 蜜臀av一级做a爰片久久| 久久综合网络一区二区| 久久综合亚州| 蜜臀av性久久久久蜜臀aⅴ四虎 | 日韩亚洲国产欧美| 99国内精品久久| 在线亚洲观看| 亚洲综合成人在线| 欧美伊人影院| 久久精品官网| 美女诱惑一区| 欧美日韩欧美一区二区| 欧美视频在线一区| 国产精品久久久久久久久久直播| 国产精品日韩高清| 国产一区二区三区在线播放免费观看| 国产一区视频网站| 亚洲国产高清一区| 亚洲免费观看高清完整版在线观看| 亚洲免费不卡| 亚洲自拍另类| 久久精品国产亚洲一区二区| 亚洲欧洲综合| 亚洲天堂久久| 久久国产欧美精品| 久久综合色播五月| 欧美日韩国产综合在线| 国产精品乱子乱xxxx| 国产亚洲精品bv在线观看| 在线观看成人av电影| 亚洲免费观看在线观看| 亚洲在线免费观看| 亚洲第一视频网站| 亚洲一二三区在线| 久久精品成人| 欧美国产第二页| 国产精品久久久久久一区二区三区| 国产九九视频一区二区三区| 在线观看日韩www视频免费 | 久久精品在这里| 欧美高清在线| 国产美女一区| 亚洲区在线播放| 亚洲欧美一区二区激情| 亚洲韩国青草视频| 亚洲女人天堂av| 欧美va天堂| 国产麻豆精品视频| 最新日韩在线视频| 午夜性色一区二区三区免费视频 | 亚洲蜜桃精久久久久久久| 亚洲欧美在线免费| 模特精品在线| 国产精品免费网站在线观看| 韩国女主播一区| avtt综合网| 亚洲福利视频二区| 亚洲午夜电影网| 麻豆av一区二区三区| 国产精品久久中文| 91久久精品国产91久久性色tv| 亚洲一区二区三区高清不卡| 亚洲人成人一区二区三区| 午夜亚洲影视| 欧美精品一区二区三区视频 | 欧美一区激情视频在线观看| 中文国产成人精品久久一| 久久九九免费视频| 国产精品久久久久久久久婷婷 | 亚洲欧洲另类| 久久xxxx| 国产精品jizz在线观看美国| 亚洲国产高清在线观看视频| 欧美一区二区在线观看| 亚洲午夜视频在线| 欧美+日本+国产+在线a∨观看| 国产精品日日摸夜夜摸av| 91久久久久久国产精品| 欧美专区中文字幕| 一区二区高清视频| 麻豆久久久9性大片| 国产日韩欧美一二三区| 亚洲视频在线观看视频| 亚洲美女免费视频| 免费日韩av| 黄色日韩在线| 香蕉久久一区二区不卡无毒影院 | 亚洲靠逼com| 看片网站欧美日韩| 国内精品久久久久久影视8 | 欧美日本在线播放| 在线观看久久av| 亚洲电影免费观看高清完整版在线观看 | 久久国产欧美精品| 国产精品专区一| 亚洲手机成人高清视频| 亚洲视频999| 欧美日产在线观看| 亚洲精品社区| 99re6这里只有精品视频在线观看| 欧美 日韩 国产 一区| 伊人狠狠色j香婷婷综合| 久久国产精品久久久| 久久精品国产第一区二区三区| 国产嫩草一区二区三区在线观看| 亚洲一区二区高清| 午夜精品久久久久久久久久久久| 欧美日韩在线播放| 一本色道久久综合亚洲精品按摩| 中文一区二区| 欧美午夜不卡影院在线观看完整版免费| 亚洲精品美女久久7777777| 亚洲激情一区二区| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲福利视频一区二区| 亚洲精品国精品久久99热一| 欧美大片专区| 亚洲精品看片| 亚洲在线视频| 国产精品永久免费在线| 欧美在线视频不卡| 噜噜噜噜噜久久久久久91| 最近中文字幕mv在线一区二区三区四区 | 亚洲欧美日韩国产| 久久精品最新地址| 亚洲成人在线| 野花国产精品入口| 国产精品久久久久999| 午夜精品久久久久久久99水蜜桃| 久久精品日韩欧美| 在线观看免费视频综合| 99v久久综合狠狠综合久久| 国产精品啊啊啊| 午夜精品视频一区| 免费观看亚洲视频大全| 99视频在线精品国自产拍免费观看| 亚洲免费影院| 国产亚洲在线观看| 亚洲精品一区二区三| 国产精品国产三级国产专播精品人| 亚洲欧美成人综合| 美日韩免费视频| 一区二区三区 在线观看视| 欧美一区亚洲一区| 在线观看一区| 亚洲一区三区视频在线观看| 国产日产高清欧美一区二区三区| 欧美在线看片| 欧美日韩卡一卡二| 欧美一级午夜免费电影| 欧美激情综合色| 亚洲欧美制服中文字幕| 久久一区二区三区四区| 日韩视频专区| 久久久久免费观看| 99re6热只有精品免费观看| 久久精品视频99| 亚洲激情网站免费观看| 午夜精品偷拍| 亚洲激情另类| 久久久久国产成人精品亚洲午夜| 亚洲精品乱码| 久久影院午夜论| 亚洲午夜激情网站| 欧美wwwwww| 亚洲欧美一区二区视频| 女人色偷偷aa久久天堂| 亚洲一区欧美激情| 欧美高清影院| 久久国产精品99国产| 国产精品第一区| 91久久在线视频| 国产乱码精品| 亚洲天堂成人在线视频| 在线看日韩av| 欧美在线1区| 一区二区三区精品国产| 欧美bbbxxxxx| 久久精品成人一区二区三区| 国产精品福利网站| 日韩视频一区二区在线观看| 国产中文一区二区三区| 性欧美暴力猛交69hd| 亚洲美女视频网| 欧美成人午夜77777| 久久狠狠久久综合桃花| 国产精品手机视频|