1. 程式人生 > 其它 >安全加解密引擎基礎(PKE SM2)

安全加解密引擎基礎(PKE SM2)

關鍵詞:SM2、OpenSSL等。

1 基本概念

SM2演算法和RSA演算法都是公鑰密碼演算法,SM2演算法是一種更先進安全的演算法,在我們國家商用密碼體系中被用來替換RSA演算法

SM2橢圓曲線公鑰密碼演算法:我國自主智慧財產權的商用密碼演算法,是ECC(Elliptic Curve Cryptosystem)演算法的一種,基於橢圓曲線離散對數問題,計算複雜度是指數級,求解難度較大,同等安全程度要求下,橢圓曲線密碼較其他公鑰秒速昂發所需金鑰長度小很多。

SM2效能更優更安全:密碼複雜度高、處理速度快、機器效能消耗更小
  SM2 RSA
演算法結構 基本橢圓曲線(ECC) 基於特殊的可逆模冪運算
計算複雜度 完全指數級 亞指數級
儲存空間 192-256bit 2048-4096bit
祕鑰生成速度 較RSA演算法快百倍以上
解密加密速度 較快 一般

2 openssl進行SM2金鑰生成、加解密、簽名驗籤

生成SM2私鑰:

openssl ecparam -genkey -name SM2 -out sm2prikey.pem

 從私鑰中提取公鑰:

openssl ec -in sm2prikey.pem -pubout -out sm2pubkey.pem

檢視私鑰內容:

openssl ec -in
sm2prikey.pem -text -noout

結果如下:

read EC key
Private-Key: (256 bit)
priv:
    c8:6e:b5:6f:f9:0c:ca:62:a3:9d:de:53:d3:db:59:
    3d:dd:73:82:71:b2:96:9a:88:11:e5:af:ab:3c:c4:
    5b:ae
pub:
    04:71:db:b2:c6:90:8f:64:4d:ce:11:94:3e:15:c5:
    1e:1b:aa:d9:e2:d0:77:d3:16:32:9a:9e:37:27:39:
    e3:bc:6a:
80:97:29:3c:76:96:e4:e5:d1:9b:22:cd: 70:b1:be:9b:00:36:97:9e:c8:8a:a5:03:23:6d:3f: bc:d7:ac:38:e9 ASN1 OID: SM2

使用SHA256+SM2對sample.txt進行簽名,並將簽名儲存到sample.sign:

openssl dgst -sign sm2prikey.pem -sha256 -out sample.sign sample.txt 

使用SHA256+SM2對sample.sign進行驗籤:

openssl dgst -verify sm2pubkey.pem -sha256 -signature sample.sign sample.txt