一种抵抗基于格的错误攻击的sm2签名算法防护方法

文档序号:8530273阅读:356来源:国知局
一种抵抗基于格的错误攻击的sm2签名算法防护方法
【技术领域】
[0001] 本发明具体涉及一种抵抗基于格的错误攻击的SM2签名算法防护方法,属于信息 安全技术领域。
【背景技术】
[0002] 自从20世纪80年代,MiIler和Koblitz将椭圆曲线引入密码学,以及Lenstra提 出了利用椭圆曲线进行因数分解算法以来,椭圆曲线在密码学中的作用越来越大。ECC是基 于有限域椭圆曲线离散对数问题(ECDLP):在一个循环加法群中,G为生成元,且G的阶为 n,已知Q=kG和G,求k的值,其中Q=kG为有限域上的标量乘运算,具体为有限域上的 代数运算。
[0003] 若F为有限域,则至少含有两个元素,并存在一个加法+和一个乘法?运算,满足 如下条件:
[0004] I) (F,+)是一个交换群;
[0005]2) ^{0},?)是一个交换群;
[0006] 3)满足结合律:(a?b) ?c=a?(b?c)加法和乘法满足分配律,即对任何 a,b,cGR,a? (b+c) =a?b+a?c, (b+c) ?a=a?b+a?c〇
[0007] 密码应用中最常用的有限域包括:素数域和特征为2的扩张域(二元扩域),这里 主要介绍素数域。若P是素数,F= {0, 1,2,…,p-1}是关于modp的+和?构成的一个有 限域,记为Fp,称为素数域(Galois域),F/=FP/{0}是Fp中所有非零元构成的乘法群,由 于Fp*是循环群,所以在Fp中至少存在一个元素g,使得F5中任一非零元都可以由g的一个 方幂表示,称g为F/的生成元(或本原元),即?/=<g>,阶为p-1。
[0008] 若在素数域Fp(p是大于3的素数)上的椭圆曲线方程为:
[0009] y2=X3+ax+bmodp,a、bGFp,且(4a3+27b2)modp辛 0
[0010] 则有限域F1^椭圆曲线点集E(Fp)定义为:
[0011] E(Fp) = {(X,y) |x,yGFp,y2=X3+ax+bmodp}U{0},其中,0 为无穷远点。
[0012] 若点GGE(FP),且G的阶n为素数,则由G生成的循环群<G>= {0,G,2G,3G,… ,(n-l)G}为E(Fp)的循环子群。椭圆曲线点集E(Fp)的元素数目用#E(FP)表示,称为椭圆 曲线E(Fp)的阶。在ECC密码系统中,素数p、域F#椭圆曲线方程、基点G及其阶n均为 公开的域参数,任选私钥de[1,n-1],则相应的公钥P=dG。
[0013] 椭圆曲线上定义的点与点加法运算使用了弦切线法则,则E(Fp)为加法交换群,无 穷远点〇为单位元,P(x,y)+P(x,_y) =0。对E(Fp)上两点P、Q之和P+Q,若P乒Q,连接P、 Q的直线交E于点R',则R'关于X轴的对称点R即为P+Q之和,称为点加运算(A)。如图1 所示。
[0014] 若P=Q,做P点的切线交E于点R',则R'关于X轴的对称点R即为则2P,称为点 倍运算(D)。如图2所示。
[0015] 由椭圆曲线上的点加和点倍的几何意义,可以推断出E(Fp)在仿射坐标下运算法 贝1J,具体如下:
【主权项】
1. 一种抵抗基于格的错误攻击的SM2签名算法防护方法,其特征在于,在SM2签名生成 的运算中,包括以下步骤: 1) 签名者A对输入的待签名消息M进行哈希运算,并将运算结果Za与消息M联合得到 W ;其中,签名者A的公钥为Pa,私钥为dA;G为SM2签名算法椭圆曲线的基点,基点G的阶 为η ; 2) 对M进行杂凑压缩,得到一预处理结果e ; 3) 产生两随机数k,we [l,n-l];分别计算随机数k和基点G的标量乘kG,随机数w与 公钥标量乘wP A,然后相加得到一椭圆曲线点QU1, yj = kG+wPA; 4) 计算预处理结果e与点Q的坐标η加,即r = (e+x Jmod η ;若r = O或r+k = η则返回步骤3)重新获取两随机数进行计算;否则进行步骤5) ;mod为模运算; 5) 代入私钥dA、k、w、r,得到签名结果s,若s = 0则返回步骤3)获取两随机数重新计 算;否则得到签名结果(r,s)。
2. 如权利要求1所述的方法,其特征在于,所述随机数w、k为具有相同比特长的随机 数。
3. 如权利要求1或2所述的方法,其特征在于,利用公式s = (l+dArHicKw-iOddmod η计算所述签名结果s。
4. 如权利要求3所述的方法,其特征在于,所述运算结果Za= H V(ENTLA| I IDa);其中, IDaS签名者A的可辨别标识,ENTLaS IDa的比特长度,HvO为哈希函数。
5. 如权利要求3所述的方法,其特征在于,所述预处理结果e 其中,HvO为 哈希函数。
6. 如权利要求3所述的方法,其特征在于,所述将运算结果Z A与消息M联合为 .W=Z, M
【专利摘要】本发明公开了一种抵抗基于格的错误攻击的SM2签名算法防护方法。本方法为:1)签名者A对输入的待签名消息M进行哈希运算,并将运算结果ZA与消息M联合得到;2)对进行杂凑压缩,得到一预处理结果e;3)产生两随机数k,w;分别计算随机数k和基点G的标量乘kG,随机数w与公钥PA的标量乘wPA,然后相加得到一椭圆曲线点Q;4)计算e与点Q的坐标x1模n加得到一r值,5)代入私钥dA、k、w、r,得到签名结果s。使用本发明提出的新方法能够更有效、全面抵抗对SM2签名算法的格攻击。
【IPC分类】H04L9-32, G06F21-64
【公开号】CN104852805
【申请号】CN201510236365
【发明人】曹伟琼, 陈华, 郑晓光, 李大为, 罗鹏, 冯婧怡, 吴文玲, 韩绪仓, 李国友, 高顺贤
【申请人】中国科学院软件研究所, 北京中电华大电子设计有限责任公司, 国家密码管理局商用密码检测中心
【公开日】2015年8月19日
【申请日】2015年5月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1