嵌入式設備中支持國密算法的方法(二)

上一篇文章中我們爲大家介紹了嵌入式設備中支持國密算法的幾種方法。本篇我們詳細的介紹一下第一種方法:移植Miracl庫的具體操作步驟。
第一步 獲取源碼
MIRACL密碼庫是開源軟件,可以直接到官網下載,也可在csdn等論壇中獲取。
第二步 利用MIRACL庫函數實現SM2算法
實現sm2的功能需要用到MIRACL庫中的36個源文件,例如mraes.c、mrec2.c、mrarth0.c、mrcore.c、mrshs.c、mezzn2.c、mrxgcd.c、mrgcm.c、mrio1.c等。
然後需要新建一個sm2.c文件、sm2.h,用於實現sm2功能函數;一個sm3.c文件、一個sm3.h文件,用於實現sm3功能函數(之所以要增加sm3的功能是因爲sm2算法中需要sm3計算hash值功能。
下面給出生成密鑰對的示例,具體的函數定義可以聯繫凌科芯安獲取。
嵌入式設備中支持國密算法的方法(二)
嵌入式設備中支持國密算法的方法(二)
現在給出實現的函數接口功能,
sm3_e
sm2_keygen 生成密鑰對
sm2_sign 簽名函數
sm2_verify 驗證簽名
sm2_encrypt 加密函數
sm2_decrypt 解密函數
void sm2_keyagreement_a1_3密鑰協商的發起方調用此函數產生一對臨時公鑰(kx1, ky1)和相應的隨機數
sm2_keyagreement_b1_9
密鑰協商的接收方調用此函數協商出密鑰kbbuf
第三步 編譯動態庫
在linux環境下,需要先製作makefile文件,針對特定的編譯器環境,只需要修改cc等命令的定義來支持指定編譯器即可。以arm-linux-gcc編譯工具爲例器編譯文件,其編譯指令如下圖
嵌入式設備中支持國密算法的方法(二)
嵌入式設備中支持國密算法的方法(二)
之後運行指令腳本,./armlinux即可得到動態庫文件。
在windows環境下,直接在VS項目中選擇編譯成動態庫即可,配置生成動態庫如下圖
嵌入式設備中支持國密算法的方法(二)
第四步 測試功能
最後,需要驗證一下SM2.dll鎖提供的SM2接口函數運算結果的正確性。
在工程中添加動態庫的支持,即可調用功能並測試了。
下圖在爲輸出顯示測試結果,測試通過。
嵌入式設備中支持國密算法的方法(二)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章