最新电影在线观看,jrs低调看直播,avav天堂,囯产精品宾馆在线精品酒店,亚洲精品成人区在线观看

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

嵌入式設備中支持國密算法的方法——移植Miracl庫的步驟說明

 上一篇文章中我們為大家介紹了嵌入式設備中支持國密算法的幾種方法。本篇我們詳細的介紹一下第一種方法:移植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接口函數運算結果的正確性。

     在工程中添加動態庫的支持,即可調用功能并測試了。

    下圖在為輸出顯示測試結果,測試通過。

全部回復(20)
正序查看
倒序查看
2019-06-13 14:30
樓主講的太好了,國密算法移植過程和RSA一樣嗎?
0
回復
Mr_Wang_
LV.4
3
2019-06-13 16:36
@小屁孩456
樓主講的太好了,國密算法移植過程和RSA一樣嗎?
講解國密算法的太少了,萬幸碰到樓主了!這篇文章是否可以理解,如何使用軟件庫實現SM2算法呢?
0
回復
宇宙王
LV.3
4
2019-06-13 17:06
@Mr_Wang_
講解國密算法的太少了,萬幸碰到樓主了!這篇文章是否可以理解,如何使用軟件庫實現SM2算法呢?
確實是這樣,而且給出了使用不同軟件庫的兩種方法
0
回復
Hex315
LV.5
5
2019-06-13 21:00
@宇宙王
確實是這樣,而且給出了使用不同軟件庫的兩種方法
國密算法都支持這個方法移植嗎?
0
回復
2019-06-14 11:32
@Hex315
國密算法都支持這個方法移植嗎?
都支持,但不包含SM1,如文中所說的,SM1是硬件實現的。
0
回復
114W1
LV.5
7
2019-06-14 13:24
@人稱福爺
都支持,但不包含SM1,如文中所說的,SM1是硬件實現的。
國密算法目前還算比較小眾,不被大眾所熟知,希望樓主多分享些國密算法的文章
0
回復
鄧女士
LV.5
8
2019-06-14 17:03
@114W1
國密算法目前還算比較小眾,不被大眾所熟知,希望樓主多分享些國密算法的文章
文章中提到的凌科芯安,是嵌入式設備國密算法的權威嗎?很想了解一下。
0
回復
2019-06-14 17:31
@鄧女士
文章中提到的凌科芯安,是嵌入式設備國密算法的權威嗎?很想了解一下。
看樓主說聯系凌科芯安,意思他們家芯片支持國密??????
0
回復
Mr_Wang_
LV.4
10
2019-06-14 17:34
@miniminimini
看樓主說聯系凌科芯安,意思他們家芯片支持國密??????
當然了,這文章講的不就是國密嗎?
0
回復
2019-06-14 17:36
@Mr_Wang_
當然了,這文章講的不就是國密嗎?
不錯,是硬貨。對硬件肯定有要求,得能運行起來linux系統,
0
回復
鄧女士
LV.5
12
2019-06-14 20:35
@miniminimini
不錯,是硬貨。對硬件肯定有要求,得能運行起來linux系統,
具體的函數定義是只有凌科芯安才有嗎,還有別的途徑可以獲取嗎?
0
回復
BLoun
LV.5
13
2019-06-16 07:19
@鄧女士
具體的函數定義是只有凌科芯安才有嗎,還有別的途徑可以獲取嗎?
不是的,Miracl是一個公開庫。任何人都能用。
0
回復
2019-06-17 08:09
@BLoun
不是的,Miracl是一個公開庫。任何人都能用。
這個國密算法可以移植到任何一款嵌入式設備上使用嗎?如果可以的話還有什么商業價值呢?
0
回復
宇宙王
LV.3
15
2019-06-17 13:17
@人稱福爺
這個國密算法可以移植到任何一款嵌入式設備上使用嗎?如果可以的話還有什么商業價值呢?
重點是國密算法,不是嵌入式設備,如果國密算法是獨一無二的,您還敢說沒有商業價值嘛
0
回復
2019-06-17 15:13
@宇宙王
重點是國密算法,不是嵌入式設備,如果國密算法是獨一無二的,您還敢說沒有商業價值嘛
用在版權保護上,哪一款算法比較安全?
0
回復
BLoun
LV.5
17
2019-06-17 18:42
@小屁孩456
用在版權保護上,哪一款算法比較安全?
國密算法是一種安全算法,算法本身不會因為使用設備對算法安全有影響。只不過國密算法通常是用在國家要求的特定行業上最常用
0
回復
Hex315
LV.5
18
2019-06-17 19:37
@BLoun
國密算法是一種安全算法,算法本身不會因為使用設備對算法安全有影響。只不過國密算法通常是用在國家要求的特定行業上最常用
看來要想調用國密算法還真不簡單啊,需要通過移植支持庫的形式來實現,那是不是對硬件又有要求呢
0
回復
114W1
LV.5
19
2019-06-17 20:12
@Hex315
看來要想調用國密算法還真不簡單啊,需要通過移植支持庫的形式來實現,那是不是對硬件又有要求呢

樓主有推薦支持國密算法的芯片嗎?

0
回復
宇宙王
LV.3
20
2019-06-18 13:27
@114W1
樓主有推薦支持國密算法的芯片嗎?
LKT4305-GM,支持SM1/2/3/4/7國密算法
0
回復
Mr_Wang_
LV.4
21
2019-06-18 15:44
@宇宙王
LKT4305-GM,支持SM1/2/3/4/7國密算法
移植Miracl庫的步驟很詳細!不錯!
0
回復