《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA和USB芯片的加密盒設計與實現
基于FPGA和USB芯片的加密盒設計與實現
2014年微型機與應用第18期
蘇振宇
浪潮集團有限公司,山東 濟南 250101
摘要: 針對網絡信息安全領域對數據加密和快速處理的需求,設計了一種基于FPGA和USB2.0芯片的數據加密盒,實現了高安全性的國產SM4對稱密碼算法。該設備在30個明文分組、10 000次循環的測試條件下數據加密速度可達到126 Mb/s。
關鍵詞: PGA USB20 SM4 密碼算法
Abstract:
Key words :

  摘  要: 針對網絡信息安全領域對數據加密和快速處理的需求,設計了一種基于FPGA和USB2.0芯片的數據加密盒,實現了高安全性的國產SM4對稱密碼算法。該設備在30個明文分組、10 000次循環的測試條件下數據加密速度可達到126 Mb/s。

  關鍵詞: FPGA;USB2.0;SM4;密碼算法

0 引言

  隨著計算機網絡技術的發展,黑客襲擊事件逐年遞增,給用戶的數據安全造成很大的威脅。密碼技術是實現網絡信息安全的核心技術,是保護數據的重要工具[1]。通過在PC上運行軟件進行加密的方法占用CPU資源多、處理速度慢、安全性差。近年來,通過采用FPGA、DSP等硬件實現密碼算法的技術得到了更多的應用。當前我國的商用密碼產品大多數采用PCI、USB接口,PCI接口的產品具有開發周期長、使用復雜等缺點,而USB接口的產品加密性能較差。針對這些情況,設計了一種以FPGA為核心的USB加密盒,充分利用了FPGA的數據處理能力和控制能力,實現了安全可控的國產SM4對稱密碼算法。在使用中連接到用戶終端,保證重要數據在網絡中以密文的方式安全傳輸,具有加密速度快、靈活等優點,可廣泛應用于金融、電信、稅控等信息安全領域。

1 系統總體架構設計


001.jpg

  加密盒由USB2.0芯片CH378和FPGA構成,系統架構如圖1所示。通過Verilog語言在FPGA中設計了USB控制模塊、SM4 IP核、SM4控制模塊和雙端口RAM。其中USB控制模塊控制CH378,SM4 IP核實現SM4對稱算法,SM4控制模塊實現對IP核的控制,雙端口RAM作為數據的緩存。CH378使用30 MHz時鐘,利用鎖相環PLL把時鐘倍頻到60 MHz作為系統的主時鐘。FPGA各模塊的時鐘都為60 MHz,采用了完全同步的設計方式,可以有效避免毛刺,使系統穩定。

  數據的加密過程是:上位機準備好明文分組數據,啟動加密操作,USB控制模塊控制CH378把數據傳輸到雙端口RAM,數據傳輸完成后,啟動SM4控制模塊,把數據傳輸到SM4 IP核進行加密運算,運算完成后的密文分組數據由SM4控制模塊傳回到RAM,由上位機取回。數據解密過程完成從密文到明文的轉換。

2 USB控制模塊設計

  2.1 CH378接口設計

  CH378是南京沁恒電子公司的USB2.0芯片,支持USB設備方式和主機方式,內置了USB通信協議的基本固件和文件系統管理固件[2]。加密盒采用了USB設備方式、內部固件模式和8位并口的設計方式。CH378與FPGA的接口見圖1,其中D是8位數據總線;nRD與nWR分別是讀寫控制引腳,低有效;A0是命令口與數據口的區分引腳,為高時寫命令或讀狀態,為低時讀寫數據;nINT是中斷輸出引腳,低有效。

  2.2 狀態機設計

  狀態機是數字時序邏輯中重要的設計內容,通過狀態轉移圖設計手段可以將復雜的控制時序以圖形化表示,分解為狀態之間的轉換關系,將問題簡化[3]。狀態機是USB控制模塊的核心,實現對CH378的控制。其狀態轉移如圖2所示,對各狀態的編碼采用了格雷碼,可以有效地防止毛刺,使系統穩定[4]。

002.jpg

  系統上電后FPGA首先對CH378初始化,狀態機處于空閑狀態。采用USB的批量端點進行數據的傳輸[5],下傳時數據由上位機傳輸到加密盒,端點號為0x02,支持最大包512 B;上傳時數據由加密盒傳輸到上位機,端點號為0x82,最大包也是512 B。CH378完成數據的下傳后通過nINT引腳向FPGA發送中斷。在TX_C22狀態FPGA向CH378寫命令字0x22,請求獲得中斷狀態值;狀態機在RX_INT狀態讀取中斷狀態值,若為0x04表示端點0x02的接收器接收到數據,否則說明未能接收到數據;在TX_C23狀態,狀態機釋放USB緩沖區;在TX_C29狀態,狀態機向CH378寫入命令字0x29和端點號0x02,使CH378準備從0x02端點緩沖區讀取數據塊,之后進入RX_DAT狀態,依次把從端點緩沖區讀取的數據分組長度和數據分組寫入RAM,傳輸完成后CH378釋放緩沖區,狀態機進入SM4_SF狀態,啟動SM4控制模塊。SM4模塊完成之后狀態機進入TX_C2A狀態,向CH378寫入命令字0x2A和端點號0x82,使CH378做好發送數據的準備,之后進入TX_DAT狀態,讀取RAM中的運算結果并寫入端點0x82的發送緩沖區,由CH378把數據發送到上位機。至此完成了數據的傳輸過程,狀態機回到空閑狀態。

3 SM4 IP核設計

  3.1 SM4算法簡介

  SM4算法是由國家密碼管理局發布的對稱密碼算法,分組長度和密鑰長度都為128位。加密算法與密鑰擴展算法都采用32輪非線性迭代結構[6]。解密算法與加密算法的結構相同,只是解密輪密鑰是加密輪密鑰的逆序。SM4算法的密鑰空間包含2128個密鑰,數量十分龐大,破解由SM4算法加密的密文難度極大,算法安全性很高。

  3.2 IP核關鍵邏輯設計


  SM4 IP核模塊的接口見圖1,start是算法啟動信號;op是模式選擇接口,為0時讀入密鑰,為1時進行加密操作,為2時進行解密操作;datain是數據輸入;dataout是數據輸出;done是運算結果輸出標志位。

  SM4加密算法采用了32輪非線性迭代結構,每輪變換的邏輯如圖3所示。初始明文分組為(X0,X1,X2,X3)∈(Z232)4,(Z232)4為4個32 bit字,從端口datain輸入,密文是(Y0,Y1,Y2,Y3)∈(Z232)4,輪密鑰為rki∈Z232,i=0,1,2,…,31。在每一輪中Xi+1,Xi+2,Xi+3與rki相異或后形成數據A,即A=Xi+1⊕Xi+2⊕Xi+3⊕rki,經過S盒非線性變換成為數據B,即Sbox(A)=B。S盒中的數據采用查找表的結構預先存儲于FPGA的ROM中,由16行×16列的字節數據構成。例如A的低8位數據A[7..0]=0xEF對應于S盒中第E行和第F列的值,經過S盒變換后成為B[7..0]=Sbox(A[7..0])=0x84。A需要經過4個S盒并行運算后成為數據B。對B進行循環移位、異或后形成C,C=B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24),最后C與Xi異或后形成Xi+4,即Xi+4=Xi⊕C。最終密文(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),從端口dataout輸出。解密變換與加密變換結構相同,加密時輪密鑰的使用順序是:rk0,rk1,…,rk31,解密時輪密鑰的使用順序與加密時相反。

  SM4算法的輪密鑰由128 bit的加密密鑰通過密鑰擴展算法生成,設加密密鑰MK=(MK0,MK1,MK2,MK3)∈(Z232)4,同樣從datain輸入。令Ki∈Z232,i=0,1,...,35,首先令(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3),其中(FK0,FK1,FK2,FK3)∈(Z232)4為已知的系統參數。輪密鑰的邏輯如圖4所示,其中CKi是固定參數。經變換后輪密鑰rki=Ki+4i=0,1,…,31。

003.jpg

4 SM4控制模塊

  SM4控制模塊的作用是控制SM4 IP核進行數據的加密或解密,核心同樣是狀態機,其狀態轉移如圖5所示,對狀態的編碼同樣采用了格雷碼。

004.jpg

  狀態機開始處于空閑狀態,由fsm_start信號啟動后進入RD_LEN狀態,讀取RAM中的數據分組長度。在RD_FLAG狀態讀取RAM中的模式選擇位,判斷執行加密或解密的操作;之后進入RD_KEY狀態,從RAM中讀取16 B的密鑰數據后發送給SM4 IP核;之后進入WAIT1狀態,等待IP核讀取密鑰;狀態機進入RD_DAT狀態后,依次讀取RAM中的16 B明文數據發送給IP核;進入WAIT2狀態后,等待IP核把一個分組的數據處理完成(加密或解密),done信號輸出高電平;進入WR_DAT狀態后,把IP核運算完成后的128 bit數據分組(密文或明文)寫入RAM;進入SF_JUDGE狀態后,判斷是否處理完所有的數據分組,若未處理完則返回到RD_DAT狀態,若處理完所有的數據分組則返回空閑狀態。一次USB批量傳輸可以處理的數據分組是1~30個。

5 雙端口RAM模塊

  雙端口RAM的作用是緩存數據,設計RAM的容量為512 B,上位機和FPGA可以對RAM進行獨立訪問,使設計更加靈活。對RAM的訪問順序如下:

 ?。?)上位機寫RAM:上位機把數據傳送到端點緩沖區后,CH378把數據寫入RAM,WR_addr是RAM的寫地址端口,ram_wr是寫使能端口,data是數據輸入端口。

  (2)SM4控制模塊讀RAM:啟動SM4控制模塊后,讀取RAM中的數據并傳送到SM4 IP核,RD_addr是RAM的讀地址端口,q是數據輸出端口。

 ?。?)SM4控制模塊寫RAM:當IP核完成數據運算后,SM4控制模塊將運算結果通過data端口寫入到RAM。

 ?。?)上位機讀RAM:CH378讀取RAM中的運算結果,傳輸到USB批量上傳端點的發送緩沖區并把數據發送到上位機。

6 實驗結果分析

  FPGA芯片選用了Cyclone IV系列的EP4CE15F17C8N,I/O引腳數為166,RAM總量為63 KB,邏輯單元LE為15 408個[7]。整個設計在Altera的開發工具Quartus II 11.1中先后完成綜合、功能仿真、布局布線后,通過邏輯分析儀并結合上位機軟件進行調試。最終綜合結果是:占用存儲單元3 KB,邏輯單元3 921個。另外,經時序分析所有信號的建立、保持時間無違規路徑。圖6是調試通過的波形圖。

005.jpg

  圖6顯示了一個明文的加密過程,start信號變高后,SM4 IP核從端口datain讀入明文,此時信號op=1指示加密過程的開始。運算完成后IP核的done信號變高,dataout端口輸出128 bit的密文;之后SM4控制模塊通過端口ram_di把密文寫入到RAM中,寫RAM地址WR_addr實現遞增,RAM寫使能控制信號ram_wr變為高電平。圖中明文、密鑰和密文與SM4算法標準數據一致。

  上位機軟件是結合CH378驅動程序和Visual C++6.0軟件在Windows XP環境下開發而成的。對SM4算法的性能進行測試,設置每次批量傳輸時數據的最大分組為30個,通過10 000次循環測試,測得數據加密(解密)的速率為126 Mb/s。

7 結論

  本文基于FPGA和USB2.0芯片的加密盒,通過FPGA實現了國密SM4對稱密碼算法,應用于工程實踐中,滿足用戶對數據加密的需求。與市場上的密碼產品相比,具有集成度高、加密速度快、性能高的優勢。作為后續的工作,可以在FPGA中集成多種其他的國產密碼算法,使得該加密盒的應用更加靈活和廣泛。

  參考文獻

  [1] 羅守山.密碼學與信息安全技術[M].北京:北京郵電大學出版社,2009.

  [2] 南京沁恒電子公司.U盤和SD卡高速文件管理控制芯片CH378[Z].2013,5.

  [3] 吳繼華,王誠.Altera FPGA/CPLD設計(高級篇)[M].北京:人民郵電出版社,2005.

  [4] 夏宇聞.Verilog數字系統設計教程(第2版)[M].北京:北京航空航天大學出版社,2008.

  [5] 蕭世文,宋延清.USB 2.0硬件設計(第二版)[M].北京:清華大學出版社,2006.

  [6] GM/T 0002-2012,SM4分組密碼算法[S].2012.

  [7] Altera Corporation.Cyclone IV Device Handbook[Z].2010.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          一区二区欧美视频| 99国产精品国产精品久久| 国产一区二区三区四区五区美女| 久久精品一二三| 亚洲国产综合在线| 日韩一区二区电影网| 国产精品成人v| 欧美成人免费全部观看天天性色| 亚洲一区bb| 国产亚洲在线| 亚洲精品视频中文字幕| 老司机亚洲精品| 亚洲国产成人在线播放| 久久综合给合久久狠狠色| 亚洲专区国产精品| 亚洲线精品一区二区三区八戒| 在线成人激情黄色| 亚洲三级毛片| 激情久久综艺| 国产精品免费一区豆花| 一区二区冒白浆视频| 国产一区二区三区黄| 欧美午夜不卡影院在线观看完整版免费| 亚洲亚洲精品三区日韩精品在线视频| 久久亚洲捆绑美女| 欧美大片va欧美在线播放| 久久久国产精品一区| 亚洲人人精品| 国产日韩欧美二区| 激情小说另类小说亚洲欧美| 模特精品裸拍一区| 中文无字幕一区二区三区| 亚洲一区二区成人| 99视频热这里只有精品免费| 国产精品视频一区二区高潮| 国产日韩1区| 午夜性色一区二区三区免费视频| 亚洲欧美成人一区二区三区| 欧美v亚洲v综合ⅴ国产v| 国精品一区二区三区| 午夜日韩在线观看| 亚洲国产小视频在线观看| 国产精品免费小视频| 在线观看日韩av电影| 久久九九有精品国产23| 亚洲激情电影中文字幕| 美女网站在线免费欧美精品| 欧美日韩国产综合久久| 久久亚洲美女| 国产丝袜一区二区三区| 亚洲天堂久久| 国产性做久久久久久| 亚洲一区二区毛片| 欧美日韩亚洲国产精品| 亚洲国产美女| 久久亚洲精品一区| 欧美日韩福利在线观看| 亚洲在线播放电影| 欧美三级在线视频| 欧美在线国产精品| 欧美日本三区| 国产一区二区按摩在线观看| 久久在线91| 久久riav二区三区| 欧美一区=区| 在线日韩av永久免费观看| 国产主播喷水一区二区| 亚洲欧美日本国产有色| 亚洲国产精品热久久| 国产精品视频免费观看| 欧美国产成人精品| 免费看成人av| 久久久人成影片一区二区三区观看| 国产日韩欧美另类| 国产欧美精品va在线观看| 欧美日本韩国一区二区三区| 黄色成人av网站| 国产精品亚洲片夜色在线| 国产精品九九久久久久久久| 亚洲第一色在线| 欧美啪啪一区| 久久人人爽人人| 一区二区三区毛片| 亚洲激情在线观看| 亚洲老板91色精品久久| 国产主播一区二区三区四区| 亚洲一区二区成人在线观看| 欧美午夜精品久久久| 欧美一区二区三区视频免费播放| 国产中文一区| 欧美视频免费在线| 欧美精品色网| 国产亚洲精品久久久久久| 国产精品天天摸av网| 欧美成人中文字幕| 欧美午夜精品久久久| 国产精品中文在线| 久久www成人_看片免费不卡| 欧美aⅴ一区二区三区视频| 欧美日韩免费一区二区三区视频| 好男人免费精品视频| 国产午夜一区二区三区| 欧美精品一区二区高清在线观看| 亚洲精选91| 亚洲日本免费| 激情久久久久久久久久久久久久久久| 99视频精品全国免费| 欧美专区18| 国产视频在线一区二区| 国产九九精品视频| 亚洲欧美一区二区在线观看| 国产一区观看| 艳妇臀荡乳欲伦亚洲一区| 欧美福利视频在线观看| 一区二区精品在线观看| 99精品免费| 国产精品一区二区久久国产| 久久精品成人一区二区三区蜜臀| 亚洲网站在线观看| 久久久久久穴| 亚洲无限乱码一二三四麻| 亚洲精品国久久99热| 亚洲自拍偷拍麻豆| 亚洲欧美日本国产有色| 久久精品30| 99国产麻豆精品| 影音先锋亚洲视频| 亚洲视频一二区| 国产精品视频免费在线观看| 久久久久久网站| 一区二区不卡在线视频 午夜欧美不卡'| 国产伦精品一区二区三区高清| 欧美区二区三区| 国产精品爽爽ⅴa在线观看| 狠狠色丁香久久婷婷综合丁香| 久久天堂精品| 国产在线精品成人一区二区三区| 亚洲一区二区成人| 国产精品久久久久久久久免费樱桃| 亚洲国产第一| 久久精品国产亚洲一区二区| 久久久欧美精品sm网站| 免费精品视频| 亚洲人成7777| 亚洲精品视频免费在线观看| 黄色一区二区在线| 好看的亚洲午夜视频在线| 欧美黄污视频| 久久久久一本一区二区青青蜜月| 亚洲一区二区三区成人在线视频精品| 国产精品久久久久aaaa九色| 亚洲欧美日韩在线综合| 亚洲国产精品美女| 亚洲一区二区在线免费观看视频| 亚洲国产视频a| 亚洲国产美国国产综合一区二区| 激情久久影院| 另类国产ts人妖高潮视频| 亚洲永久在线| 红杏aⅴ成人免费视频| 欧美成人a∨高清免费观看| 嫩模写真一区二区三区三州| 国产日韩视频| 亚洲精品一区二区三区不| 亚洲国产精品电影在线观看| 欧美日韩国产综合久久| 国产精品一区视频网站| 黄色国产精品| 国产亚洲综合性久久久影院| 日韩亚洲欧美中文三级| 欧美欧美在线| 韩国视频理论视频久久| 国产精品美女一区二区在线观看| 国产真实乱子伦精品视频| 欧美电影美腿模特1979在线看| 欧美日韩亚洲一区二区三区四区| 欧美日韩精品是欧美日韩精品| 国产欧美一区二区精品性| 99国产一区| 欧美精品激情在线| 国内精品国语自产拍在线观看| 国产午夜亚洲精品羞羞网站| 亚洲一区二区三区国产| 蜜臀a∨国产成人精品| 在线免费不卡视频| 久久精品国产精品亚洲综合| 老鸭窝亚洲一区二区三区| 日韩午夜在线观看视频| 伊人色综合久久天天五月婷| 亚洲激情婷婷| 亚洲精品免费观看| 国产精品一区二区视频| 一区二区三区在线免费播放| 久久中文字幕一区| 亚洲欧美日本视频在线观看| 久久精品99国产精品酒店日本| 国产精品白丝av嫩草影院| 久久国产综合精品| 亚洲激情黄色| 日韩一本二本av| 亚洲区国产区| 欧美区在线观看| 亚洲乱码国产乱码精品精天堂| 亚洲视频在线免费观看| 精品99一区二区| 久久久精品国产99久久精品芒果| 亚洲毛片网站| 欧美xart系列高清| 久久aⅴ乱码一区二区三区| 欧美精品18+| 黑人一区二区三区四区五区| 夜夜嗨一区二区三区| 欧美日韩一区二区三区四区在线观看| 欧美日韩亚洲一区二区三区在线| 亚洲精品精选| 欧美xx视频| 国产日韩精品一区观看| 怡红院精品视频在线观看极品| 亚洲伊人网站| 亚洲视频在线观看| 国产欧美在线视频| 欧美激情亚洲视频| 欧美三级午夜理伦三级中文幕| 欧美日韩高清在线一区| 久久精品国产亚洲5555| 免费在线国产精品| 亚洲尤物视频网| 中日韩在线视频| 国产亚洲va综合人人澡精品| 亚洲欧美日韩另类精品一区二区三区| 亚洲成人自拍视频| 欧美激情一区二区三区四区| 国产精品久久九九| 欧美日本不卡高清| 欧美午夜视频网站| 性伦欧美刺激片在线观看| 国产亚洲欧美在线| 中国成人亚色综合网站| 亚洲午夜激情免费视频| 激情综合色丁香一区二区| 在线看成人片| 欧美精品久久一区二区| 麻豆精品一区二区av白丝在线| 影音先锋另类| 久久高清免费观看| 国产日韩一区二区三区在线| 亚洲国产一区二区三区青草影视| 亚洲欧美成人| 国产精品一二三视频| 久久精品综合| 欧美一区二区三区男人的天堂| 国产一区二区三区观看| 亚洲性感激情| 午夜天堂精品久久久久| av成人黄色| 欧美jizzhd精品欧美巨大免费| 欧美怡红院视频一区二区三区| 国产精品久久久久av免费| 欧美极品欧美精品欧美视频| 久久狠狠久久综合桃花| 国产专区欧美专区| 亚洲国产精品成人综合| 性色av一区二区三区在线观看| 亚洲一区二区三区777| 免费成人黄色| 国产综合自拍| 欧美日韩在线电影| 国产精品二区影院| 亚洲精品自在在线观看| 国产精品免费看| 亚洲国产成人精品久久久国产成人一区| 在线观看视频一区二区欧美日韩| 欧美在线免费观看亚洲| 一本久道久久综合狠狠爱| 久久精品国产欧美亚洲人人爽| 国产精品国产三级国产专播品爱网| 欧美日韩视频在线一区二区| 亚洲一级二级在线| 国产精品乱码人人做人人爱| 亚洲国产欧美一区| 亚洲中无吗在线| 日韩亚洲欧美成人一区| 玖玖国产精品视频| 久久久久久久欧美精品| 国产区精品在线观看| 欧美日韩在线观看一区二区| 欧美一区二视频在线免费观看| 久久精品国产久精国产爱| 91久久在线视频| 国产精品网站视频| 欧美日韩在线播放三区| 欧美v国产在线一区二区三区| 欧美日韩伦理在线免费| 欧美成年人视频| 亚洲一区区二区| 亚洲婷婷国产精品电影人久久| 欧美成人一区二区三区在线观看| 欧美日韩国产综合一区二区| 国产精品一区三区| 久久精品国产欧美激情| 亚洲一卡二卡三卡四卡五卡| 欧美一区二区网站| 国产精品免费视频观看| 亚洲午夜伦理| 欧美日韩亚洲一区三区| 国产精品久在线观看| 亚洲国产精品久久久久秋霞不卡| 在线视频亚洲| 91久久极品少妇xxxxⅹ软件| 久久精品二区三区| 美女免费视频一区| 亚洲日本无吗高清不卡| 欧美一区二区免费观在线| 亚洲日本精品国产第一区| 国产自产女人91一区在线观看| 国内揄拍国内精品少妇国语| 亚洲免费在线视频一区 二区| 欧美伦理在线观看| 国产精品一二三四| 亚洲性线免费观看视频成熟| 久久久久久亚洲精品不卡4k岛国| 久久免费观看视频| 欧美成人精品不卡视频在线观看| 在线观看一区视频| 香蕉尹人综合在线观看| 美女亚洲精品| 亚洲欧美国产精品桃花| 亚洲人成在线观看网站高清|