一种基于侧信道泄漏的算法还原方法和系统的制作方法_3

文档序号:9527361阅读:来源:国知局
操作)的侧信道泄露与输入值之间存在相关性。因此,前序运算的侧信道泄露在一定程度上反映了当前密码运算的输入值。
[0038]当密码运算的输入未知,则将前序运算的侧信道泄露波形分成η段,使其分别对应当前密码运算的输入值的第1至η比特,令第i段前序运算侧信道泄露波形的索引号为i,使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性,相关性计算完毕后,按照泄露点的先后顺序排列前序运算索引号,索引号的顺序即是上述密码运算的参数。
[0039]将前序运算的侧信道泄露波形分成η段,使其分别对应当前密码运算的输入值的第1至η比特,令第i段前序运算侧信道泄露波形的索引号为i。使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性。相关性计算完毕后,按照泄露点的先后顺序排列前序运算索引号。索引号的顺序即是上述运算的参数。
[0040]还原S盒、乘法运算参数。
[0041]S盒和乘法运算的输入和输出差异性较大,乘法运算也可以用S盒来表示,因此,可以使用还原S盒的方式来还原乘法运算的参数。
[0042]当密码算法的输入和输出比特差异较大时,首先记录密码算法第一次运算的侧信道泄露及相应的输入值,将第二次运算的输入表示为上一次运算的输出并检测第二次运算的侧信道泄漏,查找密码运算输入输出表,得到对应的输入值,形成方程组;联立方程组与密码运算输出值的汉明重量分类来求解方程组,得到密码运算参数。
[0043]首先,通过统计平均的方法,将S盒输出值的汉明重量分类。其次,由于第一次S盒的输入是已知的,测量S盒操作的侧信道泄露,记录侧信道泄露及相应的输入值。由于除S盒的部件已知,可以将第二次S盒的输入表示为上次S盒输出的一个表达式。检测第二次S盒运算的侧信道泄露,查找S盒输入输出表,找到对应的输入值,形成方程组。联立方程组与S盒输出值的汉明重量分类来求解方程组,得到S盒参数。当算法中有多于一个S盒时,需要对不同的S盒分别建立侧信道泄露与输入值的对应关系,求解过程会较为复杂,但依此原理进行类推即可,在此不详细进行赘述。
[0044]步骤四:进行密码算法的验证。根据步骤三中所得到的密码算法,用一对明/密文对即可检验密码算法的正确性。整个验证过程如图5所示。具体操作时首先实现还原出的密码算法,然后将密钥和明文作为输出,得到输出。判断输出与密文的一致性,若一致,则成功还原密码算法,否则还原不成功。该过程只需要一个明/密文对即可实现验证,简单易行。
[0045]上述的实施例中所给出的系数和参数,是提供给本领域的技术人员来实现或使用发明的,发明并不限定仅取前述公开的数值,在不脱离发明的思想的情况下,本领域的技术人员可以对上述实施例作出种种修改或调整,因而发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
【主权项】
1.一种基于侧信道泄漏的算法还原方法,其具体包括以下的步骤:步骤一、分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄露模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄露模板库中包括所有密码运算组件的侧信道泄露波形;步骤二、获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄露模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;步骤三:根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节。2.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于当密码运算部件为线性部件且密码运算的输入已知时,密码运算的输入和输出比特只有顺序不同,将密码运算输入从第1个比特开始直到最后一个比特进行编号,第1个比特的比特索引号为1,第2个比特的比特索引号为2,依此类推;将比特索引号i对应的比特值、与密码运算相关的侧信道泄露作为输入,利用相关系数的方法来计算相关性,相关性计算完毕后,按照泄露点的先后顺序排列比特索引号,索引号的顺序即是上述密码运算的参数。3.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于当密码运算部件为线性部件且密码运算的输入未知时,将前序运算的侧信道泄露波形分成η段,使其分别对应当前密码运算的输入值的第1至η比特,令第i段前序运算侧信道泄露波形的索引号为i,使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性,相关性计算完毕后,按照泄露点的先后顺序排列前序运算索引号,索引号的顺序即是上述密码运算的参数。4.如权利要求1或者2或者3所述的基于侧信道泄漏的算法还原方法,其特征在于当密码运算部件为非线性部件时,首先记录密码算法第一次运算的侧信道泄露及相应的输入值,将第二次运算的输入表示为上一次运算的输出并检测第二次运算的侧信道泄漏,查找密码运算输入输出表,得到对应的输入值,形成方程组;联立方程组与密码运算输出值的汉明重量分类来求解方程组,得到密码运算参数。5.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于对密码运算的建模使用自组织特征映射方法来实现,自动寻找最优参考矢量集合来对输入模式集合进行分类,同时保持泄露点之间的拓扑结构,其输出函数包含挑选出泄露点以及泄露点之间的关系式。6.如权利要求5所述的基于侧信道泄漏的算法还原方法,其特征在于泄露点的选取具体为:调整各个样本点处的权重,使得区分度最大,此时权重大于设定域值的样本点选取为泄露点。7.如权利要求5所述的基于侧信道泄漏的算法还原方法,其特征在于泄露点的选取具体为:对比各个样本点处的方差,选取方差大的样本点为泄露点,并计算泄露点之间的相互关系Ο8.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于所述方法还包括步骤四、进行密码算法的验证,根据步骤三中所得到的密码算法,用一对明/密文对检验所还原出密码算法的正确性。9.一种基于侧信道泄漏的算法还原系统,其具体包括建模单元、运算组件还原单元以及参数还原单元;所述建模单元用于分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄露模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄露模板库中包括所有密码运算组件的侧信道泄露波形;所述运算组件还原单元用于获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄露模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;所述参数还原单元用于根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节。
【专利摘要】本发明涉及算法还原技术领域,本发明公开了一种基于侧信道泄漏的算法还原方法,其具体为:步骤一、分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄露模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄露模板库中包括所有密码运算组件的侧信道泄露波形;步骤二、获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄露模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;步骤三:根据密码算法中密码运算的不同类型,分别获取算法的参数细节,从而还原出密码算法。
【IPC分类】H04L9/00, H04L25/02
【公开号】CN105281889
【申请号】CN201510783143
【发明人】陈曼, 吉庆兵, 于飞, 张李军, 罗杰, 刘丹, 谈程, 高鹏军
【申请人】中国电子科技集团公司第三十研究所
【公开日】2016年1月27日
【申请日】2015年11月16日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1