色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解析FPGA和USB芯片的加密盒設計與實現

電子工程師 ? 來源:微型機與應用 ? 作者:蘇振宇 ? 2021-04-06 10:08 ? 次閱讀

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

0 引言

隨著計算機網絡技術的發展,黑客襲擊事件逐年遞增,給用戶的數據安全造成很大的威脅。密碼技術是實現網絡信息安全的核心技術,是保護數據的重要工具[1]。通過在PC上運行軟件進行加密的方法占用CPU資源多、處理速度慢、安全性差。近年來,通過采用FPGA、DSP硬件實現密碼算法的技術得到了更多的應用。當前我國的商用密碼產品大多數采用PCI、USB接口,PCI接口的產品具有開發周期長、使用復雜等缺點,而USB接口的產品加密性能較差。

針對這些情況,設計了一種以FPGA為核心的USB加密盒,充分利用了FPGA的數據處理能力和控制能力,實現了安全可控的國產SM4對稱密碼算法。在使用中連接到用戶終端,保證重要數據在網絡中以密文的方式安全傳輸,具有加密速度快、靈活等優點,可廣泛應用于金融、電信、稅控等信息安全領域。

1 系統總體架構設計

6357025045329500007835198.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]。

6357025044201700003919130.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。

6357025036896100002657932.jpg

4 SM4控制模塊

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

6357025031034900004230778.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的訪問順序如下:

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

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

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

(4)上位機讀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是調試通過的波形圖。

6357025025582500002472128.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.

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603028
  • PCI
    PCI
    +關注

    關注

    4

    文章

    666

    瀏覽量

    130251
  • USB芯片
    +關注

    關注

    0

    文章

    18

    瀏覽量

    10502
  • SM4算法
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1535
收藏 人收藏

    評論

    相關推薦

    淺談加密芯片的一種破解方法和對應加密方案改進設計

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存儲和密文通訊來實現對主MCU方案的保護。比如把主MCU用到的一些參數、配置信息等存儲在加密
    發表于 12-20 15:31

    淺談加密芯片的一種破解方法和加密方案改進設計

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存儲和密文通訊來實現對主MCU方案的保護。比如把主MCU用到的一些參數、配置信息等存儲在加密
    發表于 12-20 15:10

    FPGA驅動AD芯片實現芯片通信

    概述:?利用FPGA實現AD芯片的時序,進一步實現與AD芯片數據的交互,主要熟悉FPGA對時序圖
    的頭像 發表于 12-17 15:27 ?157次閱讀
    <b class='flag-5'>FPGA</b>驅動AD<b class='flag-5'>芯片</b>之<b class='flag-5'>實現</b>與<b class='flag-5'>芯片</b>通信

    AG32 芯片保護與加密

    AG32 芯片保護與加密 代碼安全有兩種方式: 一種是 Lock flash,一個是代碼加密。 Lock flash: Lock flash 是在燒錄代碼后,鎖定 flash,防止外部
    發表于 09-19 16:01

    FPGA + USB2.0 PHY USB3300 實現高速USB2UART

    本帖最后由 jf_73911065 于 2024-9-23 16:23 編輯 Malogic FPGA + USB2.0 PHY CY7C68000或USB3300 實現高速
    發表于 09-02 18:01

    科普小課堂|不同版本USB接口詳細解析

    USB接口憑借其廣泛的兼容性和高性能,已成為連接多樣外設的主要接口,囊括了日常的鍵盤、鼠標等輸入設備以及其他更多的領域。不僅如此,USB還展現了高度靈活性,能夠便捷地轉換為其他總線接口,例如實現
    的頭像 發表于 06-27 09:40 ?5936次閱讀
    科普小課堂|不同版本<b class='flag-5'>USB</b>接口詳細<b class='flag-5'>解析</b>

    基于FPGA的AES256光纖加密設計

    AES算法的硬件實現,國內外研究學者大部分是基于FPGA的硬件實現。解放軍理工大學的呂游等人研究高級加密標準俄歇算法的設計原理,并通過加密
    發表于 06-19 19:50

    憶阻器誘導的超混沌、多渦旋和極端多穩態小數階HNN:鏡像加密FPGA實現

    電子發燒友網站提供《憶阻器誘導的超混沌、多渦旋和極端多穩態小數階HNN:鏡像加密FPGA實現.pdf》資料免費下載
    發表于 06-03 14:46 ?0次下載

    基于 FPGA 的光纖混沌加密系統

    。 作品難點與創新 3.1 AES 加密算法在 FPGA 上的實現 最常用的數據加密方式是軟件加密,即在通用微處理器
    發表于 04-26 17:18

    基于FPGA的光纖通信加密系統

    FPGA 設計加密算法具有安全性高,加密速度快,開發周期短,開發成本較低, 可重配,可靠性高以及移植性好等優點。 系統鏈路部分采用 Aurora 協議,該協議是一款輕量級的光纖鏈路協議,具有冗余少,可定制度高,鏈路速率快等特點。
    發表于 04-26 11:33 ?1233次閱讀
    基于<b class='flag-5'>FPGA</b>的光纖通信<b class='flag-5'>加密</b>系統

    KEIL下如何實現代碼的加密

    從STM32F0 到STM32F4,用了有好幾款芯片,都是在KEIL編譯,之前沒有關注到加密的問題,突然想到這個問題,不知道大家都是怎么來實現加密的。
    發表于 03-20 07:06

    fpga芯片工作原理 fpga芯片有哪些型號

    FPGA芯片的工作原理主要基于其內部的可配置邏輯單元和連線資源。包括以下工作原理: 首先,FPGA內部包含可配置邏輯模塊(CLB)、輸出輸入模塊(IOB)和內部連線(Interconnect)三個
    的頭像 發表于 03-14 17:17 ?1470次閱讀

    如何排查FPGAUSB之間的芯片通信問題?

    ”,而在SBBulkSourceSink固件中沒有顯示這個錯誤,可不可以證明我的FPGAUSB之間通信成功?另外,我該如何排查FPGAUSB之間的
    發表于 02-27 06:46

    應用方案:實時數據加密

    應用方案:實時數據加密 利用CPLD設計加密電路方便可行,能夠較好地實現加密功能。AG32系列MCU產品,在芯片內部內置了CPLD邏輯,可以
    發表于 01-15 08:57

    高性能加密芯片LKT4302U概述

    加密狗是一種關鍵的安全設備,扮演著數據安全的守護者。如果客戶需要支持USB接口的、可控GPIO的加密芯片,LKT4302U是不錯的選擇。
    的頭像 發表于 12-26 10:13 ?712次閱讀
    主站蜘蛛池模板: 国产免费人成在线视频视频| 99re6热这里在线精品视频| 亚洲免费三级电影| 亚洲免费久久| 最近中文字幕MV免费高清视频8| 97超在线视频| 纯肉合集(高H)| 国精产品一区一区三区有限在线 | 成人影片迅雷下载| 国产电影无码午夜在线播放| 国产亚洲精品久久久久5区| 久久久精品免费免费直播| 嗯啊好爽视频| 日韩一区二区三区精品| 亚洲高清无在码在线无弹窗| 在线高清视频不卡无码| 八妻子秋霞理在线播放| 国产剧情在线精品视频不卡| 久久婷婷五月综合色精品首页| 欧美伦理片第7页| 亚洲 欧美 另类 中文 在线| 在镜头里被CAO翻了H| 爱情岛aqdlttv| 极品少妇高潮啪啪无码吴梦 | 国精产品一区二区三区| 快播成电影人网址| 日日日夜夜在线视频| 亚洲无遮挡无码A片在线| jzz大全18| 鸡鸡插屁股| 秋霞三级理伦免费观看| 亚洲手机在线人成视频| hd性欧美俱乐部中文| 狠狠色色综合站| 人妖xxhdxx| 亚洲三级黄色片| 俄罗斯雏妓的BBB孩交| 久久久这里有精品999| 天天爽夜夜爽8888视频精品| 2012中文字幕手机在线| 国产午夜电影在线观看不卡|