一種基於可編程門陣列晶片的sm4算法控制方法
2023-05-08 02:16:46
一種基於可編程門陣列晶片的sm4算法控制方法
【專利摘要】本發明涉及信息安全【技術領域】,特別涉及一種基於可編程門陣列晶片的SM4算法控制方法。本發明方法是通過現場可編程門陣列(FPGA)晶片的狀態機控制SM4分組密碼算法IP核實現的,採用了Mealy型狀態機作為SM4算法IP核的核心控制單元,對IP核進行控制和操作,實現了對SM4算法的控制。由於其基於可編程門陣列晶片與SM4密碼算法IP核的硬體方式實現了SM4對稱密碼算法,因此數據處理的速度更快,效率更高。
【專利說明】—種基於可編程門陣列晶片的SM4算法控制方法
【技術領域】
[0001]本發明涉及信息安全【技術領域】,特別涉及一種基於可編程門陣列晶片的SM4算法控制方法。
【背景技術】
[0002]SM4算法是國家密碼管理局批准的對稱密碼算法,主要應用於無線區域網產品。該算法的分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都採用32輪非線性迭代結構,解密算法與加密算法的結構相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
[0003]傳統的密碼算法的實現是通過在主機上運行加密軟體實現的。這種方法除佔用主機資源外,運算速度較慢,安全性也較差。而硬體加密是通過專用加密晶片、FPGA (可編程門陣列)晶片或獨立的處理晶片等實現密碼運算。相對於軟體加密,硬體加密具有加密速度快、佔用計算機資源少、安全性高等優點。
【發明內容】
[0004]為了解決現有技術的問題,本發明實施例提供了一種基於可編程門陣列晶片的SM4算法控制方法,其基於FPGA晶片與SM4密碼算法IP核的硬體方式實現了 SM4對稱密碼算法,因此數據處理的速度更快,效率更高。
[0005]本發明所採用的技術方案如下:
一種基於可編程門陣列晶片的SM4算法控制方法,是利用可編程門陣列晶片的狀態機對SM4對稱密碼算法IP核進行控制,所述的可編程門陣列晶片作為硬體控制單元,用於控制SM4算法IP核。
[0006]採用了算法IP軟核的方式實現了 SM4對稱密碼算法。
[0007]採用了可編程門陣列晶片的硬體描述語言VHDL,設計出一種算法狀態機,用於對SM4算法IP核進行控制。
[0008]方法具體包括以下步驟:
A、對狀態機模塊進行復位;
B、設置算法開始信號,啟動狀態機;
C、啟動寫密鑰操作;
D、向SM4算法IP核寫入一個長度為128bit的密鑰;
E、啟動數據加密或解密操作;
F、向SM4算法IP核寫入一個長度為128bit的待運算數據分組;
G、等待SM4算法IP核運算完成;
H、狀態機判斷IP核是否把所有的數據分組都處理完成,若沒有處理完成所有的消息分組,轉到步驟F處,向IP核發送下一個數據分組;
1、當所有的數據分組都運算完成後,SM4算法IP核發送結束信號,狀態機檢測到該信號後結束狀態機流程,至此完成了一筆數據的加密或解密過程。
[0009]在步驟D— I的操作過程中如果需要更換密鑰,則轉到步驟C。
[0010]本發明實施例提供的技術方案帶來的有益效果是:
本發明的方法主要用於對網絡、金融、電信等系統中重要數據的加密和解密,可滿足分組密碼應用的安全需求,保障交易的安全。核心是利用了 FPGA和SM4對稱密碼算法IP核,通過硬體描述語言VHDL設計出高效的狀態機,從而使得數據的處理過程變的快速。
【專利附圖】
【附圖說明】
[0011]圖1為本發明的FPGA晶片中狀態機模塊與SM4算法IP核的連接圖;
圖2為本發明的FPGA晶片的狀態機的控制流程圖。
【具體實施方式】
[0012]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0013]實施例一
如附圖1所示,是狀態機模塊與SM4算法IP核的連接圖,IP核的主要引腳說明如下: 輸入引腳CLK:IP核的時鐘引腳。
[0014]輸入引腳nReset:1P核復位引腳,O:復位;1:正常工作。
[0015]輸入引腳start:算法開始信號,高電平有效。
[0016]輸入引腳Data_in[127..0]:128位數據輸入引腳。
[0017]輸入引腳ορ[1..0]:功能選擇標誌,ορ=0時,選擇寫入密鑰操作;ορ=1時,選擇加密操作;ορ=2時,選擇解密操作。
[0018]輸出引腳Data_out[127..0]: 128位運算結果的輸出。
[0019]輸出引腳done:每個數據分組運算完成時產生的完成標誌,高電平有效。
[0020]輸出引腳finish:所有數據分組都運算完成後的算法結束標誌,高電平有效 附圖2是FPGA狀態機的控制流程圖,通過硬體描述語言VHDL實現狀態機的狀態轉移
和控制功能,工作流程詳解如下:
1.對狀態機模塊進行復位,nReset= 『0』 ;
2.設置算法開始信號sf_start= 『I』,啟動狀態機;
3.設置op=0,啟動寫密鑰操作;
4.向SM4算法IP核寫入一個長度為128bit的密鑰;
5.設置op=l或2,啟動數據加密或解密操作;
6.向SM4算法IP核寫入一個長度為128bit的待運算數據分組;
7.等待SM4算法IP核運算完成,使done信號變為高電平;
8.狀態機檢測到done= 『I』,並判斷IP核是否把所有的數據分組都處理完成,若沒有處理完成所有的消息分組,轉到步驟6處,向IP核發送下一個數據分組;
9.當所有的數據分組都運算完成後,SM4算法IP核使finish信號變為高電平,狀態機檢測到該信號後結束狀態機流程,至此完成了一筆數據的加密或解密過程。在操作過程中如果需要更換密鑰,則轉到步驟3處。[0021 ] 以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種基於可編程門陣列晶片的SM4算法控制方法,是利用可編程門陣列晶片的狀態機對SM4對稱密碼算法IP核進行控制,所述的可編程門陣列晶片作為硬體控制單元,用於控制SM4算法IP核。
2.根據權利要求1所述的一種基於可編程門陣列晶片的SM4算法控制方法,其特徵在於,所述的方法是採用了算法IP軟核的方式實現了 SM4對稱密碼算法。
3.根據權利要求1所述的一種基於可編程門陣列晶片的SM4算法控制方法,其特徵在於,所述的方法是採用了可編程門陣列晶片的硬體描述語言VHDL,設計出一種算法狀態機,用於對SM4算法IP核進行控制。
4.根據權利要求1-3中任意一條所述的一種基於可編程門陣列晶片的SM4算法控制方法,其特徵在於,所述的方法具體包括以下步驟: A、對狀態機模塊進行復位; B、設置算法開始信號,啟動狀態機; C、啟動寫密鑰操作; D、向SM4算法IP核寫入一個長度為128bit的密鑰; E、啟動數據加密或解密操作; F、向SM4算法IP核寫入一個長度為128bit的待運算數據分組; G、等待SM4算法IP核運算完成; H、狀態機判斷IP核是否把所有的數據分組都處理完成,若沒有處理完成所有的消息分組,轉到步驟F處,向IP核發送下一個數據分組; 1、當所有的數據分組都運算完成後,SM4算法IP核發送結束信號,狀態機檢測到該信號後結束狀態機流程,至此完成了一筆數據的加密或解密過程。
5.根據權利要求4所述的一種基於可編程門陣列晶片的SM4算法控制方法,其特徵在於,在步驟D— I的操作過程中如果需要更換密鑰,則轉到步驟C。
【文檔編號】H04L29/06GK103780608SQ201410015540
【公開日】2014年5月7日 申請日期:2014年1月14日 優先權日:2014年1月14日
【發明者】蘇振宇, 於飛, 李前 申請人:浪潮電子信息產業股份有限公司