LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

安全加解密引擎基础(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 

 Python下SM2的使用参考《【原创】【pysmx】国密非对称密码算法SM2的使用方法 - 知乎 (zhihu.com)》。

posted on 2022-04-15 11:41  ArnoldLu  阅读(455)  评论(0编辑  收藏  举报

导航