一、SM2加密运算
1.1加密原始数据
SM2加密运算首先是用户A对数据加密,用户A拥有原始数据
- 椭圆曲线系统参数
- 长度为klen比特的消息M
- 公钥Pb
椭圆曲线系统参数,已经在 椭圆曲线参数(二)中详细介绍;M就是需要加密消息,长度为klen;
1.1.1 公钥Pb的计算方式
公钥Pb=dBG,其中dB是私钥,是256bit的随机数(1<d<n,d为整数),n、G都为椭圆曲线参数。
1.2 SM2加密步骤
- 选取一个随机数k,计算C1=kG,k此时为用户A的临时私钥,是为了和解密用户B进行密钥交换。(解密用户B拿到C1,会进行s=dB C1=dB k G)
- 判断 S=hPb结果是否为无穷远点, 该步骤的意义是如果S 的结果不是无穷远点,后续步骤 kPb 就不可能是无穷远点。具体的详细证明见