1. SM2
1.1 SM2加解密参数信息
1、 私钥长度与所选择的素域的比特串长度一致 或者与 二元扩域的比特长度一致
2、 公钥长度是私钥长度的两倍
3、 一般而言,选择Fp-256,从而私钥长度为256比特,公钥为512比特
4、 明文长度可以为任意值,其基本原理类似于流密码,由KDF生成与明文长度一致的密钥流,与明文进行异或。
1.2 基本概念
Fp:包含p个元素的素域
Fq:包含q个元素的有限域
F2m:包含2m个元素的二元扩域
O:椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位点
P:P=(xp,yp)是椭圆曲线上除O之外的一个点,其坐标xp,yp满足椭圆曲线方程
n:基点G的阶(n是#E(Fq)的素因子)
#E(Fq):E(Fq)上点的数目,称为椭圆曲线E(Fq)的阶
无特殊约定的情况下,用户身份标识ID的长度为16字节,其默认值从左至右依次为:
0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38
1.3 Fp上椭圆曲线消息加解密
椭圆曲线方程为:y2=x3+ax+b
示例1:Fp-256
素数p:256 bit
系数a:256 bit
系数b:256 bit
基点G=(xG,yG),其阶记为n
坐标xG:256 bit
坐标yG:256 bit
阶n: 256 bit
私钥dB:256 bit
公钥PB=(xB,yB)为:
坐标xB:256 bit
坐标yB&#