基于改进差分错误攻击的sm2签名算法安全性验证方法

文档序号:8514623阅读:188来源:国知局
基于改进差分错误攻击的sm2签名算法安全性验证方法
【技术领域】
[0001] 本发明属于楠圆曲线密码算法巧CC)分析和错误攻击领域,具体设及一种基于改 进差分错误攻击的SM2签名算法安全性验证方法,属于信息安全技术领域。
【背景技术】
[000引 自从20世纪80年代,Miller和Koblitz将楠圆曲线引入密码学,W及Lenstra提 出了利用楠圆曲线进行因数分解算法W来,楠圆曲线在密码学中的作用越来越大。ECC是基 于有限域楠圆曲线离散对数问题巧CDLP);在一个循环加法群中,G为生成元,且G的阶为 n,已知Q=kG和G,求k的值,其中Q=kG为有限域上的标量乘运算,具体为有限域上的 代数运算。
[000引若F为有限域,则至少含有两个元素,并存在一个加法"+ "和一个乘法"?"运算, 满足如下条件:
[0004] 1)化+)是一个交换群;
[000引 。(F/ {0},?)是一个交换群;
[0006]如满足结合律;(a,b) -c=a?化-C)加法和乘法满足分配律,即对任何 a,b,CER,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由中所有非零元构成的乘法群, 由于F/是循环群,所W在FP中至少存在一个元素g,使得FP中任一非零元都可W由g的一 个方幕表示,称g为F/的生成元(或本原元),即F/= <g>,阶为P-1。
[000引若在素数域Fp(p是大于3的素数)上的楠圆曲线方程为:
[0009]y2=X3+ax+bmodP,a、bGFp,且(4a3+2化2)m〇dP声 0
[0010]则有限域Fp上楠圆曲线点集E(Fp)定义为:
[0011] E(Fp) = {(X,y) |x, y G Fp, y2= X 3+ax+b mod p} U {0},其中,0为无穷远点。 [001引若点G G E巧),且G的阶n为素数,则由G生成的循环群<G> ={0, G,2G,3G,… ,(n-l)G}为E(Fp)的循环子群。楠圆曲线点集EOg的元素数目用#E^)表示,称为楠圆 曲线E(Fp)的阶。在ECC密码系统中,素数P、域Fp的楠圆曲线方程、基点G及其阶n均为 公开的域参数,任选私钥d G [1,n-1],则相应的公钥P = dG。
[0013] 楠圆曲线上定义的点与点加法运算使用了弦切线法则,则E(Fp)为加法交换群,无 穷远点0为单位元,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,称为点 倍运算值)。如图2所示。
[001引 由楠圆曲线上的点加和点倍的几何意义,可朗t断出E(Fp)在仿射坐标下运算法 贝Ij,具体如下:
[001 引 点加:令P= (X。yi)GE化),Q= (X2, 72)eE化),且P声Q,则R(X3,y3) =P+Q, 其中,
【主权项】
1. 一种基于改进差分错误攻击的SM2签名算法安全性验证方法,其特征在于,所述方 法包括步骤: 1) 采用SM2签名算法对消息M进行签名,当生成的随机数k和SM2签名算法的椭圆曲 线基点G的标量乘迭代进行到第i轮时注入错误,使第i轮中间值y坐标的部分比特值改 变; 2) 利用步骤1)得到的签名结果,以及验签公钥Pa和消息M杂凑值e恢复出随机数k 的连续比特值; 3) 利用所述连续比特值和错误签名结果构造 HNP问题,采用格攻击分析出私钥,然后 根据该私钥判定当前SM2签名算法是否安全。
2. 如权利要求1所述的方法,其特征在于,所述第i轮迭代注入错误,使第i轮中间值 y坐标的部分比特值改变的方法为: 1. SM2签名算法对生成的随机数k与SM2签名算法的椭圆曲线基点G进行标量乘迭代 运算 kG;其中,k= (Ι^ν,Ι^,Ι?。)# [l,n-l],n 为基点 G 的阶; 2) 根据经验能量迹估计设定的第i轮迭代在当前SM2签名运算中出现时刻,在估计的 第i轮迭代将要结束时对中间值y坐标的存储器注入错误,使中间值y坐标的部分比特值 变化;继续迭代运算,得到最终的签名结果;查看当前能量迹的错误注入时刻,如果错误注 入在第i轮迭代将要结束时,则保留该签名,否则舍弃该签名。
3. 如权利要求2所述的方法,其特征在于,使用激光照射所述存储器实现注入错误;通 过调整激光照射强度或照射时间,使得变化的比特数A y < N,N为设定的阈值。
4. 如权利要求2或3所述的方法,其特征在于,所述阈值N小于32。
5. 如权利要求2或3所述的方法,其特征在于,所述恢复出随机数k的连续比特值的方 法为: 1) 首先利用所述签名结果、公钥Pa和消息M杂凑值e恢复出标量乘法运算的正确结果, 及注入错误后产生的错误标量乘法结果的横坐标; 2) 设随机数k部分连续比特可能值为,计算与以'对应的第i轮未注入错误的中间 值; 3) 将中的所有比特ξ转化为点/?>(;后,其中t e [i,m-l];根据从右到左的二进 制标量乘运算法则,以第i轮错误的中间值为初始点,将/〗,6'·按照t从小到大的顺序依 次进行伪加法运算,然后根据该伪加法运算公式和注入错误后产生的错误标量乘法结果的 横坐标得到第i轮迭代的错误中间值坐标巧;如果汉明距离函数#,则确定 为所述连续比特值k(i),否则返回步骤2)重新设定;其中,&为第i轮未注入错误 的中间值中的坐标;如果所有都不符合要求,则舍弃该签名。
6. 如权利要求5所述的方法,其特征在于,分析出所述私钥的方法为:根据所述签名结 果和确定出的所述连续比特值k(i)构造 HNP问题,然后将构造的HNP问题转化为CVP问题, 采用LLL和Babai算法求解,分析出私钥dA。
7. 如权利要求1所述的方法,其特征在于,在倒数第Iogn轮之前的某一轮迭代中注入 错误,其中,迭代轮数为η。
【专利摘要】本发明公开了一种基于改进差分错误攻击的SM2签名算法安全性验证方法。本方法为:1)采用SM2签名算法对消息M进行签名,当生成的随机数k和SM2签名算法的椭圆曲线基点G的标量乘迭代进行到第i轮时注入错误,使第i轮中间值y坐标的部分比特值改变;2)利用步骤1)得到的签名结果,以及验签公钥PA和消息M杂凑值e恢复出随机数k的连续比特值;3)利用所述连续比特值和错误签名结果构造HNP问题,采用格攻击分析出私钥,然后根据该私钥判定当前SM2签名算法是否安全。本发明能够更简便的注入错误,更全面分析SM2签名算法抵抗攻击的安全能力。
【IPC分类】H04L29-06, H04L9-32
【公开号】CN104836808
【申请号】CN201510239497
【发明人】冯婧怡, 陈华, 曹伟琼, 韩绪仓, 李大为, 罗鹏, 郑晓光, 李国友, 高顺贤, 朱少峰
【申请人】中国科学院软件研究所, 北京中电华大电子设计有限责任公司, 国家密码管理局商用密码检测中心
【公开日】2015年8月12日
【申请日】2015年5月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1