安全加解密引擎基礎(PKE SM2)
阿新 • • 發佈:2022-04-15
關鍵詞: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 -insm2prikey.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