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

  • 相关阅读:
    51nod1278 相离的圆
    CodeForces
    SPOJ
    51nod 1040(欧拉函数)
    51nod1009 51nod1042(数位dp)
    51nod1264 线段相交
    51nod1050 循环数组最大子段和
    Spark SQL UDF示例
    Spark SQL官网阅读笔记
    Spark RDD
  • 原文地址:https://www.cnblogs.com/arnoldlu/p/16148275.html
Copyright © 2020-2023  润新知