用于SM2签名的密钥检测方法及其系统与流程

文档序号:12751376阅读:816来源:国知局
用于SM2签名的密钥检测方法及其系统与流程

本发明涉及的是一种计算机安全领域的技术,具体是一种用于SM2签名的密钥检测方法及其系统。



背景技术:

在现实中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如:智能卡、RFID、密码协处理器、SoC密码芯片、密码机。在这些密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效的密码破译。这种环境下的攻击通常被人们称为”旁路攻击”(Side Channel Attack)。旁路攻击通常包括简单功耗分析(SPA)和差分功耗分析(DPA)。

其中,DPA攻击是通过记录密码设备对大量不同数据进行加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥,其分析效果也相对更加有效。DPA的思想能够应用于各种密码算法的分析中,包括对称密码算法和公钥密码算法。通常来说公钥密码算法执行时间更长,其泄露的功耗信息也越多,功耗信息利用方式也呈现多样化。但目前针对公钥ECC方案的分析,大都针对于其核心运算:标量乘运算。

由于标量乘运算是SM2乃至所有ECC方案安全性的基础,研究者们也提出了许多种针对标量乘运算的分析方法,包括:传统的DPA分析、水平分析以及水平碰撞分析等。为了防护这些分析方法,标量乘运算的实现方案也越来越安全,使得分析者很难从标量乘运算上获得有用信息。

如图1所示,基于椭圆曲线签名方案的SM2包含三大部分:标量乘运算、生成签名部分值r、生成整个签名对(r,s)。在生成整个签名对的过程中,存在针对密钥的求逆操作,即:(d+1)-1mod n,其中:d为签名的私钥且为不少于160bytes的大数,n为已知的SM2签名方案的公共参数。求逆操作(d+1)-1mod n有两种实现方式,一种为扩展欧几里德算法,该实现方式需消耗更多的硬件资源包括寄存器和电路面积;另一种通过模幂实现,即:(d+1)-1mod n=(d+1)n-2mod n。该方法能够复用原电路中的模乘模块,节省电路面积。

在传统的DPA分析下,针对SM2签名的分析一般分为两种:一是针对标量乘运算进行分析,恢复标量,但由于SM2签名方案的标量为随机数,因此该分析仅在单条曲线下分析才有意义;二是针对生成整个签名对中的运算r×d进行DPA分析。而这两种分析又非常易于防护:对于标量乘的分析在单条曲线下实现针对SPA的防护及水平攻击防护;针对r×d分析,可通过修改生成整个签名对中的求逆操作实现,即:(d+1)-1*(k-r×d)mod n=(d+1)-1*(k-r×(d+1-1))mod n=((d+1)-1(k-r)-r)mod n,其中:k为SM2标量乘运算中的随机数;如此一来,r×d运算就在求逆操作中消失了,也无法进行分析;而大多数SM2防护,都是针对标量乘和签名生成阶段r×d进行设计,而往往忽略了(d+1)-1的防护。

经过对现有技术的检索发现,中国专利文献号CN104683102A,公布日2015.6.3,公开了一种SM2签名计算方法和装置,方法包括:获取签名r、未知的临时密钥k、私钥d和模数n;计算第一值,所述第一值为私钥d加1后的值;计算第二值,所述第二值为所述第一值的模逆;计算第三值,所述第三值为签名r和所述未知的临时密钥k的和;计算第四值,所述第四值为第三值和所述第二值的乘积;获取SM2的签名结果S,所述签名结果S为所述第四值减去r后对n取模的值。但该技术的分析对象在于第四值的产生过程,适用性较窄,在应用防护措施时,第四值有可能已经变化。



技术实现要素:

本发明针对现有技术存在的上述不足,提出一种用于SM2签名的密钥检测方法及其系统,能够在密钥未知的情况下通过其公共信息建立模板,进而恢复完整的密钥。

本发明是通过以下技术方案实现的:

本发明涉及一种用于SM2签名的功耗分析方法,通过将待测密码系统生成的SM2签名的部分公共信息定位到签名求逆阶段,得到该部分公共信息在求逆阶段的泄露位置;确定签名输出阶段r或s的位置,然后根据r或s的单字节值对泄露位置的功耗曲线进行分类,建立每一类功耗曲线的单字节值的模板;再将待测密钥的部分公共信息在求逆输出阶段的功耗曲线与模板进行匹配,匹配正确后即得待测密钥的求逆结果,完成模板攻击;最后根据求逆结果恢复所有字节信息,对所有字节信息求逆后减1,恢复密钥信息。

所述的定位是指:确定求逆位置和r或s输出后将完成标量乘运算后生成的部分与r或s的功耗曲线做相关性分析。

所述的单字节模板为:hi=(mi,Ci),i∈[0,255],其中:hi为值为i的模板,mi为功耗曲线的均值,Ci为功耗曲线的协方差矩阵。

所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。

所述的匹配候选正确值为:v*=argmaxi(p(t;hi)),其中:v*为匹配候选正确值,maxi()为所有i中概率最大值。

本发明涉及一种实现上述方法的检测系统,包括:定位模块、模板处理模块、匹配计算模块和密钥恢复模块,其中:定位模块将随机输入签名结果中的公共信息通过相关性进行定位,并通过签名结果输出部分的功耗特征定位至签名的求逆阶段;模板处理模块对定位模块中的功耗曲线进行分类,并对每一类功耗曲线建立模板,计算模板信息;模板匹配模块根据模板处理模块中的模板信息与待测密钥对应的功耗曲线进行匹配,将匹配正确的结果输入至密钥恢复模块,通过密钥恢复模块得到正确的密钥信息。

技术效果

与现有技术相比,本发明通过模板攻击和线下计算,不需要知道密钥或者攻击者控制一台与待测密码系统完全相同或类似的设备,即可通过其公共信息建立模板进行模板攻击,恢复最终密钥;本发明关注点在于SM2签名算法中防护方案的短板,即在标量乘运算与签名生成阶段添加了防护,针对求逆结果的分析仍然能够恢复出签名的私钥;为SM2签名算法的安全防护提供新的方向。

附图说明

图1为SM2签名流程图;

图2为密钥检测方法示意图;

图3为SM2签名的生成与求逆的存储功耗曲线;

图4为SM2签名的生成与求逆的存储功耗曲线部分放大图;

图5为求逆结果单字节功耗噪声分布图;

图6为签名结果单字节功耗噪声分布图;

图7为恢复成功率图;

图8为检测系统示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例1

如图2所示,本实施例包括以下步骤:

步骤1、向密码系统中随机输入明文,循环执行SM2签名,将部分公共信息r定位到签名的求逆阶段,得到r在求逆阶段的泄露位置。

所述的定位是指:确定求逆位置和r或s输出后将完成标量乘运算后生成的部分与r或s的功耗曲线做相关性分析。

由于r或s的输出与求逆输出具有相同模式,因此两者都较易识别定位。

如图3和图4所示,求逆输出阶段和签名输出阶段的功耗曲线具有相似的行为模式,即”计算‐存储”,并且两者在功耗表现上模式也相同。在[1950,2150]的区间范围内,两者功耗体现出高度相似,而该处细微的差异则是由于噪声以及数据值不同造成的。

步骤2、根据单字节值对步骤1中的泄露位置的功耗曲线进行分类,建立每一类功耗曲线的单字节值的模板。

所述的单字节模板为:hi=(mi,Ci),i∈[0,255],其中:hi为值为i的模板,mi为功耗曲线的均值,Ci为功耗曲线的协方差矩阵。

步骤3、将待测密钥的部分公共信息r′在求逆阶段的功耗曲线与模板进行匹配,匹配正确后即得待测密钥的求逆结果。

所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。

所述的匹配候选正确值为:v*=argmaxi(p(t;hi)),其中:v*为匹配候选正确值,maxi()为所有i中概率最大值。

步骤4、根据步骤3得到的求逆结果恢复所有字节信息,结合已知模数进行线下计算,恢复待测密钥信息。

如图8所示,本实施例涉及上述密钥检测方法的系统,包括:定位模块、模板处理模块、匹配计算模块和密钥恢复模块,其中:定位模块将随机输入签名结果中的公共信息通过相关性进行定位,并通过签名结果输出部分的功耗特征定位至签名的求逆阶段;模板处理模块对定位模块中的功耗曲线进行分类,并对每一类功耗曲线建立模板,计算模板信息;模板匹配模块根据模板处理模块中的模板信息与待测密钥对应的功耗曲线进行匹配,将匹配正确的结果输入至密钥恢复模块,通过密钥恢复模块得到正确的密钥信息。

本实施例提出了一种新的信息利用方式,并寻找到了该信息利用的基础,即:SM2签名算法中不同位置的存储操作具有相同的存储模式及存储硬件。相同的存储模式及存储硬件是指在同一平台上实现的SM2签名算法如ASIC或FGPA,它们在存储器的硬件结构及存储模式上是相同的,只是在不同的时间发生存储行为。

所述的在不同的时间发生存储行为,是指在标量乘运算后存储结果坐标、计算得到签名部分公共信息r并进行存储、大数求逆结果存储及其他中间值计算的存储行为。基于不同时间的存储行为,其硬件表现形式相同,那么其功耗泄露情况也相似。

所述的功耗泄露情况相似,是指其在不同位置的泄露符合模板攻击的基本假设,即高斯噪声符合相同的分布,如图5和6所示。其中图5展示了签名输出阶段单点泄露最大值的噪声分布情况,而图6展示了求逆输出阶段单点泄露最大值的噪声分布情况。可以看到,两处几乎服从相同的分布,因此模板攻击能够发挥作用。

基于模板攻击,可以利用部分签名结果r的信息来建立模板,恢复(d+1)-1mod n结果后,再执行线下计算(((d+1)-1)-1mod n)-1,即可得到全部签名密钥。

所述的SM2签名方案中大数求逆,针对固定密钥值,其求逆结果相同。这意味着,对于SM2签名算法中大数求逆的模板匹配,能够运用多条曲线进行分析,能够保障其匹配的成功率,如图7所示,在实验情况下100条曲线即可达到95%的成功率。

本实施例对于SM2签名方案中高阶防护如标量运算的防护及签名生成时的防护都能产生有效攻击。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1