赞
踩
SM2非对称加密算法。由国家密码管理局于2010年12月17日发布。基于椭圆曲线密码的公钥密码算法标准,其密钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。
SM2采用的是ECC 256位的一种,其安全强度比RSA 2048位高,且运算速度快于RSA。随着密码技术和计算技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。SM2算法在安全性、性能上都具有优势。
椭圆曲线方程:
y^2 = x^3 + ax + b mod p
一个很典型的例子:
a = 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC
b = 0x28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93
p = 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF
x_g = 0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7
y_g = 0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0
n = 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123
M为待签名消息,数字签名结果为 ( r , s ) (r,s) (r,s) ,用户密钥对 ( d , P ) (d,P) (d,P)。
实现步骤:
M为明文, ( r , s ) (r, s) (r,s) 为签名结果,用户公钥P
实现步骤:
[ s ] G + [ t ] P [s]G + [t]P [s]G+[t]P 的结果可以推导出等于 [ k ] G [k]G [k]G
验证原理
[s]G + [t]P = sG + (r + s)P
= sG + (r + s)dG
= sG + sdG + rdG
= (1 + d)sG + rdG
= (1 + d)(1 + d)^{-1} * (k − rd)G + rdG
= (k − rd)G + rdG
= kG − rdG + rdG
= kG = (x1, y1)
M为明文字符串
C为密文字符串,klen为密文中C2的长度
SM2非对称加密的结果由C1,C2,C3三部分组成。
其中C1是生成随机数的计算出的椭圆曲线点,C2是密文数据,C3是SM3的摘要值。
最开始的国密标准的结果是按C1C2C3顺序的,新标准的是按C1C3C2顺序存放的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。