非对称算法之ECC和SM2

ECC:椭圆曲线密码
    ECC是RSA的后继更短的密钥长度、更快的签名、更快的密钥协商。
    密钥长度:
        公钥0x41(65字节)    私钥0x20(32字节)
    签名长度:
        不定长。0x46-0x48。
    签名格式:TLV嵌套格式。
        签名的主体分为R和S两部分。R(或S)的长度等于ECC私钥长度。R(或S)前的T为0x02,签名T为0x30。总体格式如下:
            30 + LEN1 + 02 + LEN2 + 00 (optional) + r + 02 + LEN3 + 00(optional) + s
            *当r或s的第1字节大于0x80时,需要在r或s前加1字节0x00。
            LEN3为,0x00(optional) + s 的字节长度。
            LEN2为,0x00(optional) + r 的字节长度。
            LEN1为,LEN2+LEN3+4字节长度。
    
 SM2:国密即国家密码局认定的国产密码算法。该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。
    旧标准的加密排序C1C2C3 新标准 C1C3C2,C1为65字节第1字节为压缩标识,这里固定为0x04,后面64字节为xy分量各32字节。C3为32字节。C2长度与原文一致。
    密钥长度:
        私钥0x20(32字节)
        公钥0x41(65字节)    
            SM2非压缩公钥格式字节串长度为65字节,压缩格式长度为33字节,若公钥y坐标最后一位为0,则首字节为0x02,否则为0x03。非压缩格式公钥首字节为0x04。
        SM2 公钥一般有两种表示方法:
            X|Y,分开展示,公钥 X,公钥 Y
    公钥加密:
        SM2 加密数据将会产生三个值:
            C1 为随机产生的公钥
            C2 为密文,与明文长度等长
            C3 为 SM3 算法对明文数计算得到消息摘要,长度固定为 256 位
    签名数据:
        SM2 加签之后产生的签名为(R,S),这一点与 RSA算法不同,RSA 算法加签之后签名就是一个值。
    签名长度:64字节。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值