CN105281889B - 一种基于侧信道泄漏的算法还原方法和系统 - Google Patents

一种基于侧信道泄漏的算法还原方法和系统 Download PDF

Info

Publication number
CN105281889B
CN105281889B CN201510783143.9A CN201510783143A CN105281889B CN 105281889 B CN105281889 B CN 105281889B CN 201510783143 A CN201510783143 A CN 201510783143A CN 105281889 B CN105281889 B CN 105281889B
Authority
CN
China
Prior art keywords
crypto
side channel
channel leakage
algorithm
leakage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510783143.9A
Other languages
English (en)
Other versions
CN105281889A (zh
Inventor
陈曼
吉庆兵
于飞
张李军
罗杰
刘丹
谈程
高鹏军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 30 Research Institute
Original Assignee
CETC 30 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 30 Research Institute filed Critical CETC 30 Research Institute
Priority to CN201510783143.9A priority Critical patent/CN105281889B/zh
Publication of CN105281889A publication Critical patent/CN105281889A/zh
Application granted granted Critical
Publication of CN105281889B publication Critical patent/CN105281889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及算法还原技术领域,本发明公开了一种基于侧信道泄漏的算法还原方法,其具体为:步骤一、分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄露模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄露模板库中包括所有密码运算组件的侧信道泄露波形;步骤二、获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄露模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;步骤三:根据密码算法中密码运算的不同类型,分别获取算法的参数细节,从而还原出密码算法。

Description

一种基于侧信道泄漏的算法还原方法和系统
技术领域
本发明涉及算法还原技术领域,尤其涉及一种基于侧信道泄漏的算法还原方法和系统。
背景技术
荷兰人A.Kerckhoffs早在19世纪就指出系统安全性不应依赖于对加密体制或算法的保密,而依赖于对密钥的保密,然而很多实际密码应用中仍采用了对算法保密或运算部件保密的方式来增强安全性。被保密的算法可能是公开的密码算法如AES、3DES等,也可能是开发商自行设计的专有密码算法。基于侧信道泄漏的算法还原技术是联合使用多种侧信道分析手段,识别被保密的公开密码算法,还原专有密码算法的全部细节,包括算法结构、参数信息等。
在公开密码算法识别技术方面,2008年,Nagireddy的硕士论文中提出,使用时间攻击、代码模式攻击的方法可以有效识别公开的密码算法。实验表明,当加密/解密数据量大于4MB时,OpenSSL 0.9.7a中实现的不同密码算法DES、AES、Blowfish、TDES可被有效区分。
在专有密码算法参数还原技术方面,2003年,斯洛文尼亚的Roman Novak首先提出了利用侧信道信息进行密码算法还原的方法,在可操控密钥及已知其中一个转换表的条件下还原了GSM卡使用的另外一个转换表;2004年,Christophe Clavier对侧信道逆向工程给出了一个概念化的描述;2005年,法国的Daudigny等人利用单比特能量差分分析方法成功地还原了DES使用的置换表及密钥生成方式,进一步地,他们也得出了子密钥的存储位置;2007年,法国的Christophe Clavier对Novak的方法进行了改进,弱化了COMP128算法还原需要的条件;荷兰的Dennis Vermoen等人对于平均后的波形使用波形匹配技术对一个商用的JAVA卡进行了分析,成功逆向了其上运行的指令字节;2011年,美国的HarakrishnanBhanu等人提出了用能量分析方法分析VPN的技术;Quisquater等人结合神经网络中的self-organizing maps技术对Vermoen等人的方法进行了改进,使得利用单条波形即可进行指令识别;2013年印密会上,Christophe Clavier等人利用选择明文碰撞能量分析攻击的方法,将侧信道分析与密码分析相结合,提出了逆向还原类AES的算法的思路;同年亚密会上,法国的MatthieuRivain等人提出了对SPN结构密码算法的侧信道逆向还原方法;2013年,混沌通信大会上,有人展示了可以利用侧信道逆向电视机顶盒上的程序;2013年,东南大学的杨明教授和武汉大学的唐明副教授分别对基于侧信道攻击的匿名通信流量识别、分析和追踪技术以及基于侧信道攻击的分组密码逆向分析方法进行了研究。
直至目前,针对基于侧信道泄漏的算法还原技术主要还存在以下问题:
(1)分析时需要的先验知识较多。目前的方法通常要求在已知算法架构,且算法的大部分细节已知的情况下进行,仅可对少数未知部件进行还原。
(2)缺乏完整的通用操作方法流程。目前的方法一般针对某种具体平台上的具体架构的算法进行分析,不能同时适用于软、硬件实现的密码算法,缺乏通用性。
发明内容
针对现有技术中的算法还原方法存在的上述问题,本发明公开了一种基于侧信道泄漏的算法还原方法和系统。
本发明公开了一种基于侧信道泄漏的算法还原方法,其具体包括以下的步骤:步骤一、分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄漏模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄漏模板库中包括所有密码运算组件的侧信道泄漏波形;步骤二、获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄漏模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;步骤三:根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节。
更进一步地,当密码运算部件为线性部件且密码运算的输入已知时,密码运算的输入和输出比特只有顺序不同,将密码运算输入从第1个比特开始直到最后一个比特进行编号,第1个比特的比特索引号为1,第2个比特的比特索引号为2,依此类推;将比特索引号i对应的比特值、与密码运算相关的侧信道泄漏作为输入,利用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列比特索引号,索引号的顺序即是上述密码运算的参数。
更进一步地,当密码运算部件为线性部件且密码运算的输入未知时,将前序运算的侧信道泄漏波形分成n段,使其分别对应当前密码运算的输入值的第1至n比特,令第i段前序运算侧信道泄漏波形的索引号为i,使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列前序运算索引号,索引号的顺序即是上述密码运算的参数。
更进一步地,于当密码运算部件为非线性部件时,首先记录密码算法第一次运算的侧信道泄漏及相应的输入值,将第二次运算的输入表示为上一次运算的输出并检测第二次运算的侧信道泄漏,查找密码运算输入输出表,得到对应的输入值,形成方程组;联立方程组与密码运算输出值的汉明重量分类来求解方程组,得到密码运算参数。
更进一步地,对密码运算的建模使用自组织特征映射方法来实现,自动寻找最优参考矢量集合来对输入模式集合进行分类,同时保持泄漏点之间的拓扑结构,其输出函数包含挑选出泄漏点以及泄漏点之间的关系式。
更进一步地,泄漏点的选取具体为:调整各个样本点处的权重,使得区分度最大,此时权重大于设定域值的样本点选取为泄漏点。
更进一步地,泄漏点的选取还可以为:对比各个样本点处的方差,选取方差大的样本点为泄漏点,并计算泄漏点之间的相互关系。
更进一步地,上述方法还包括步骤四、进行密码算法的验证,根据步骤三中所得到的密码算法,用一对明/密文对检验所还原出密码算法的正确性。
本发明还公开了一种基于侧信道泄漏的算法还原系统,其具体包括建模单元、运算组件还原单元以及参数还原单元;所述建模单元用于分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄漏模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄漏模板库中包括所有密码运算组件的侧信道泄漏波形;所述运算组件还原单元用于获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄漏模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;所述参数还原单元用于根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节。
通过采用以上的技术方案,本发明的有益效果为:采用本发明的方法能通用地对不同结构的密码算法进行还原,弥补了以前同类方法只能用于特定结构算法的缺点,该方法操作流程简单,对先验知识要求少,该方法提供了一套基于侧信道泄漏的算法还原技术的实现框架,即使有新的密码算法出现,使用本方法也能进行分析。
附图说明
图1为基于侧信道泄漏的算法还原方法的流程图。
图2为架构分析与模板构建分析及结果示意图。
图3为算法结构分析及结果示意图。
图4为参数信息获取分析及结果示意图。
图5为算法验证过程的示意图。
具体实施方式
下面结合说明书附图,详细说明本发明的具体实施方式。
本发明公开了一种基于侧信道泄漏的算法还原方法,如图1所示的基于侧信道泄漏的算法还原方法的流程,其具体包括四个步骤:
步骤一:分析算法的软/硬件实现架构,根据软/硬件实现架构的不同进行不同的建模,即区分算法是软件实现还是硬件实现,根据不同的硬件平台以及不同的软件实现方式进行不同的模板构建,所述模板包括密码运算原语模板库和侧信道泄漏模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄漏模板库包括密码运算组件的侧信道泄漏波形。所述软/硬件实现架构通过搜集密码产品的公开材料,从公开材料中寻找密码软/硬件实现架构的相关信息,或者将密码产品上电,使其进入工作状态,根据输入值在电路中的传播路径定位到密码操作的运行平台,该平台可以是微处理器、FPGA或者ASIC专用电路,每一种对应一个特定的软/硬件实现架构。获取算法软/硬件实现架构后,就要根据具体的平台来构建模板。
一方面,对密码运算原语与运算组件序列的对应关系建模,生成密码运算原语模板库;另一方面对密码运算组件的侧信道泄漏建模,生成相应的侧信道泄漏模板库(如图2所示的架构分析与模板构建分析及结果示意图)。
密码操作在运行过程中总会产生侧信道泄漏,然而算法的实现平台不同(软/硬件实现、单字节实现/多字节实现等)、工作模式不同(电码本模式、密码分组链接模式、密码反馈模式等),其泄漏的模式也不尽相同。因此,实施基于侧信道泄漏的算法还原方法的首要条件是获取软、硬件架构。一种直接的方法是搜集关于密码产品的公开材料,从其中寻找密码软/硬件架构的相关信息,若找到,则进入建模过程。假设公开材料中没有相关信息,则需要将密码产品上电,使其进入工作状态,根据输入值在电路中的传播路径定位到密码操作的运行平台,该平台可以是微处理器、FPGA或者ASIC专用电路,每一种对应一个特定的软/硬件实现架构。
获取算法软/硬件实现架构后,就要根据具体的平台来构建模板。密码运算原语模板库主要是从工业标准、学术论文,已有技术等方面获取密码实现方法,将密码运算原语的所有可能实现会产生的密码运算序列保存起来,形成库文件。
侧信道泄漏模型库的建模包括基于运算的建模和基于数据的建模。基于运算的建模,其目标是区分不同运算的侧信道泄漏的不同,不考虑运算数据对泄漏的影响;基于数据的建模,其目标是区分同一运算,不同运算数据的侧信道泄漏的不同。建模的首要条件是要有一个与密码算法运行平台相同的硬件平台。基于运算的建模是在硬件平台上多次重复执行相同的运算,记录其侧信道泄漏,然后提取出可以表征这些泄漏的函数。基于数据的建模是在运行同一运算时,改变运算的输入值,记录其侧信道泄漏,然后提取出可以表征这些泄漏的函数。当前的分组密码算法使用的基本运算包括异或、移位、加法、乘法、查表运算等,这些称为密码运算组件。基于侧信道泄漏的算法还原方法和系统是要基于密码运算组件的侧信道泄漏特征来重构密码算法,因此,要对所有的密码运算组件进行建模。记录得到的侧信道泄漏波形由样本点组成,建模的难点是从样本点中选取出泄漏点(即包含了信息量的样本点),以及区分度与计算复杂度的折中。不同密码运算产生的侧信道泄漏区分度较明显,而同一密码运算的不同数据产生的侧信道泄漏区分度较低,因此,在建模时采用不同方法。对密码运算的建模使用自组织特征映射方法来实现。自组织特征映射方法是一种无指导的聚类方法,自动寻找最优参考矢量集合来对输入模式集合进行分类,同时保持泄漏点之间的拓扑结构,其输出函数包含挑选出泄漏点以及泄漏点之间的关系式。对数据的模板构建时加入人为干预,根据实验现象逐步调整的过程。泄漏点选取的方法一是套用信噪比的概念,调整各个样本点处的权重,使得区分度最大,此时权重大于某一域值(与具体实验有关)的样本点选取为泄漏点;二是对比各个样本点处的方差,方差较大说明样本点区分度较大,选取方差大的样本点为泄漏点,并计算泄漏点之间的相互关系。将基于运算的建模和基于数据的建模得到的运算、数据与泄漏波形之间相互关系保存,形成侧信道泄漏模板库。
步骤二:将待还原算法的侧信道泄漏波形与侧信道泄漏模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语。(如图3所示的算法结构分析及结果示意图)。
首先,要定位密码算法的执行对应于侧信道泄漏波形中的位置,包括算法执行的起始位置和结束位置。准确的定位是重构密码结构的基础。若已知触发加密操作所需的指令,则侧信道泄漏波形中出现该指令的泄漏特性(即泄漏特征与侧信道泄漏模板库对相同指令建模的得到的特征吻合)则说明密码算法即将执行,可以利用该指令的泄漏特性来定位;另一方面,算法执行之前,必须将明文数据写入,根据侧信道泄漏模板库中构建的数据写入的模板,使用最小二乘法进行模板匹配,发现侧信道泄漏波形出现了大量数据写入操作的泄漏特征,则标志着算法运行的开始。算法结束时,必须将密文数据输出,若侧信道泄漏波形出现了大量输出操作的泄漏特征,则标志着算法运行的结束。
其次,利用模板匹配的方法将密码算法运行开始和结束之间的侧信道泄漏波形映射成为密码运算组件序列。通过上面的方法确定了侧信道泄漏波形中密码算法起始和结束对应的泄漏特征,密码算法运行过程中的泄漏波形即是密码算法起始和结束对应的泄漏特征之间的部分。将密码算法运行过程中的泄漏波形、侧信道泄漏模板库作为自组织特征映射方法的输入,这样,使用一条侧信道泄漏波形即可还原出所有的密码运算组件,且这些密码运算组件是有序排列的。本发明称有序排列的密码运算组件为运算组件序列。
最后,要从运算组件序列中重构出密码算法结构。已知密码算法是由同一函数进行多次迭代得到的,若找到迭代的规律,一方面可以缩短需要被重构的运算组件序列,另一方面,可以确定密码算法的轮数。根据密码实现方式,从密码运算原语模板库中查找对应关系得到相应的密码运算原语。将密码运算原语组合即可看出该密码算法的结构,即是SPN结构、Feistel结构、广义Feistel结构等。
步骤三:根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节。当密码算法的输入已知,且密码运算的输入和输出比特只有顺序不同时,将密码运算输入从第1个比特开始直到最后一个比特编号,第1个比特的比特索引号为1,第2个比特的比特索引号为2,依此类推;将比特索引号i对应的比特值、与密码运算相关的侧信道泄漏作为输入,利用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列比特索引号,索引号的顺序即是上述密码运算的参数。(如图4所示的参数信息获取分析及结果示意图)。密码算法常见部件包括S盒、乘法运算、转换表、扩展表、循环移位运算等,需要分别还原其参数。
还原扩展表、转换表、移位运算参数。
扩展表、转换表、移位运算的共同特点是其作用之后的数据与作用之前的数据之间存在一定的相关性。若把扩展表看成是一种特殊的转换表,则上述几种运算的输出比特是输入比特的一个重排序。
若这些密码运算的输入已知(如明文),则其输出比特(除顺序外)已知。将密码运算输入从第1个比特开始直到最后一个比特编号,第1个比特的比特索引号为1,第2个比特索引号为2,依此类推。将比特索引号i对应的比特值、与密码运算相关的侧信道泄漏作为输入,利用相关系数的方法来计算相关性。若相关性较高,则说明该比特在对应的时钟周期内被使用,记录比特索引号与侧信道泄漏点之间的对应关系。相关性计算完毕后,按照泄漏点的先后顺序排列比特索引号。索引号的顺序即是上述运算的参数。
若这些密码运算的输入未知,则上述方法失效。然而,该密码运算的输入是由前序运算计算得到的,前序运算(即当前密码运算之前的运算操作)的侧信道泄漏与输入值之间存在相关性。因此,前序运算的侧信道泄漏在一定程度上反映了当前密码运算的输入值。
当密码运算的输入未知,则将前序运算的侧信道泄漏波形分成n段,使其分别对应当前密码运算的输入值的第1至n比特,令第i段前序运算侧信道泄漏波形的索引号为i,使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列前序运算索引号,索引号的顺序即是上述密码运算的参数。
将前序运算的侧信道泄漏波形分成n段,使其分别对应当前密码运算的输入值的第1至n比特,令第i段前序运算侧信道泄漏波形的索引号为i。使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性。相关性计算完毕后,按照泄漏点的先后顺序排列前序运算索引号。索引号的顺序即是上述运算的参数。
还原S盒、乘法运算参数。
S盒和乘法运算的输入和输出差异性较大,乘法运算也可以用S盒来表示,因此,可以使用还原S盒的方式来还原乘法运算的参数。
当密码算法的输入和输出比特差异较大时,首先记录密码算法第一次运算的侧信道泄漏及相应的输入值,将第二次运算的输入表示为上一次运算的输出并检测第二次运算的侧信道泄漏,查找密码运算输入输出表,得到对应的输入值,形成方程组;联立方程组与密码运算输出值的汉明重量分类来求解方程组,得到密码运算参数。
首先,通过统计平均的方法,将S盒输出值的汉明重量分类。其次,由于第一次S盒的输入是已知的,测量S盒操作的侧信道泄漏,记录侧信道泄漏及相应的输入值。由于除S盒的部件已知,可以将第二次S盒的输入表示为上次S盒输出的一个表达式。检测第二次S盒运算的侧信道泄漏,查找S盒输入输出表,找到对应的输入值,形成方程组。联立方程组与S盒输出值的汉明重量分类来求解方程组,得到S盒参数。当算法中有多于一个S盒时,需要对不同的S盒分别建立侧信道泄漏与输入值的对应关系,求解过程会较为复杂,但依此原理进行类推即可,在此不详细进行赘述。
步骤四:进行密码算法的验证。根据步骤三中所得到的密码算法,用一对明/密文对即可检验密码算法的正确性。整个验证过程如图5所示。具体操作时首先实现还原出的密码算法,然后将密钥和明文作为输出,得到输出。判断输出与密文的一致性,若一致,则成功还原密码算法,否则还原不成功。该过程只需要一个明/密文对即可实现验证,简单易行。
上述的实施例中所给出的系数和参数,是提供给本领域的技术人员来实现或使用发明的,发明并不限定仅取前述公开的数值,在不脱离发明的思想的情况下,本领域的技术人员可以对上述实施例作出种种修改或调整,因而发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

Claims (8)

1.一种基于侧信道泄漏的算法还原方法,其具体包括以下的步骤:步骤一、分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄漏模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄漏模板库中包括所有密码运算组件的侧信道泄漏波形;步骤二、获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄漏模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;步骤三:根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节;
其中,当密码运算部件为线性部件且密码运算的输入已知时,密码运算的输入和输出比特只有顺序不同,将密码运算输入从第1个比特开始直到最后一个比特进行编号,第1个比特的比特索引号为1,第2个比特的比特索引号为2,依此类推;将比特索引号i对应的比特值、与密码运算相关的侧信道泄漏作为输入,利用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列比特索引号,索引号的顺序即是上述密码运算的参数。
2.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于当密码运算部件为线性部件且密码运算的输入未知时,将前序运算的侧信道泄漏波形分成n段,使其分别对应当前密码运算的输入值的第1至n比特,令第i段前序运算侧信道泄漏波形的索引号为i,使用前序运算索引号为i的波形代替比特索引号为i的密码运算输入,使用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列前序运算索引号,索引号的顺序即是上述密码运算的参数。
3.如权利要求1或2所述的基于侧信道泄漏的算法还原方法,其特征在于当密码运算部件为非线性部件时,首先记录密码算法第一次运算的侧信道泄漏及相应的输入值,将第二次运算的输入表示为上一次运算的输出并检测第二次运算的侧信道泄漏,查找密码运算输入输出表,得到对应的输入值,形成方程组;联立方程组与密码运算输出值的汉明重量分类来求解方程组,得到密码运算参数。
4.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于对密码运算的建模使用自组织特征映射方法来实现,自动寻找最优参考矢量集合来对输入模式集合进行分类,同时保持泄漏点之间的拓扑结构,其输出函数包含挑选出泄漏点以及泄漏点之间的关系式。
5.如权利要求4所述的基于侧信道泄漏的算法还原方法,其特征在于泄漏点的选取具体为:调整各个样本点处的权重,使得区分度最大,此时权重大于设定域值的样本点选取为泄漏点。
6.如权利要求4所述的基于侧信道泄漏的算法还原方法,其特征在于泄漏点的选取具体为:对比各个样本点处的方差,选取方差大的样本点为泄漏点,并计算泄漏点之间的相互关系。
7.如权利要求1所述的基于侧信道泄漏的算法还原方法,其特征在于所述方法还包括步骤四、进行密码算法的验证,根据步骤三中所得到的密码算法,用一对明/密文对检验所还原出密码算法的正确性。
8.一种基于侧信道泄漏的算法还原系统,其具体包括建模单元、运算组件还原单元以及参数还原单元;所述建模单元用于分析算法的实现架构,根据实现架构的不同进行不同的建模,模板包括密码运算原语模板库和侧信道泄漏模板库,所述密码运算原语模板库是密码运算原语与运算组件序列的对应关系,所述侧信道泄漏模板库中包括所有密码运算组件的侧信道泄漏波形;所述运算组件还原单元用于获取待还原算法的侧信道泄漏波形,将待还原算法的侧信道泄漏波形与侧信道泄漏模板库中的波形进行比对,获取密码算法的运算组件,然后从密码运算原语模板库中查找对应关系得到相应的密码运算原语;所述参数还原单元用于根据密码算法中密码运算的不同类型,分别获取线性部件和非线性部件密码算法的参数细节;
其中,当密码运算部件为线性部件且密码运算的输入已知时,密码运算的输入和输出比特只有顺序不同,将密码运算输入从第1个比特开始直到最后一个比特进行编号,第1个比特的比特索引号为1,第2个比特的比特索引号为2,依此类推;将比特索引号i对应的比特值、与密码运算相关的侧信道泄漏作为输入,利用相关系数的方法来计算相关性,相关性计算完毕后,按照泄漏点的先后顺序排列比特索引号,索引号的顺序即是上述密码运算的参数。
CN201510783143.9A 2015-11-16 2015-11-16 一种基于侧信道泄漏的算法还原方法和系统 Active CN105281889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510783143.9A CN105281889B (zh) 2015-11-16 2015-11-16 一种基于侧信道泄漏的算法还原方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510783143.9A CN105281889B (zh) 2015-11-16 2015-11-16 一种基于侧信道泄漏的算法还原方法和系统

Publications (2)

Publication Number Publication Date
CN105281889A CN105281889A (zh) 2016-01-27
CN105281889B true CN105281889B (zh) 2019-02-01

Family

ID=55150288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510783143.9A Active CN105281889B (zh) 2015-11-16 2015-11-16 一种基于侧信道泄漏的算法还原方法和系统

Country Status (1)

Country Link
CN (1) CN105281889B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3226460A1 (en) * 2016-04-01 2017-10-04 Institut Mines-Telecom Secret key estimation methods and devices
CN109347613B (zh) * 2018-09-18 2023-08-01 上海观源信息科技有限公司 用于旁路攻击的gpu加速方法
CN112883385B (zh) * 2019-11-29 2022-07-01 上海复旦微电子集团股份有限公司 侧信道泄露位置定位方法及装置、存储介质、终端
CN112054887B (zh) * 2020-08-31 2024-02-20 深圳技术大学 一种功耗碰撞攻击方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301095A (zh) * 2014-10-13 2015-01-21 深圳中科讯联科技有限公司 Des轮运算方法和电路
CN104717055A (zh) * 2015-03-25 2015-06-17 成都信息工程学院 一种针对sm4密码算法轮输入汉明重量的模板攻击方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9400636B2 (en) * 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301095A (zh) * 2014-10-13 2015-01-21 深圳中科讯联科技有限公司 Des轮运算方法和电路
CN104717055A (zh) * 2015-03-25 2015-06-17 成都信息工程学院 一种针对sm4密码算法轮输入汉明重量的模板攻击方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SCARE of Secret Ciphers with SPN Structures;Matthieu Rivain等;《Advances in Cryptology-asiacrypt》;20131231;第526-544页
Template Attacks;Suresh Chari等;《Cryptographic Hardware and Embedded Systems-CHES 2002》;20021231;第13-28页
针对密码芯片的电磁频域模板分析攻击;邓高明等;《计算机学报》;20090430;第32卷(第4期);第602-610页

Also Published As

Publication number Publication date
CN105281889A (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
Carlini et al. Cryptanalytic extraction of neural network models
Gilmore et al. Neural network based attack on a masked implementation of AES
CN105281889B (zh) 一种基于侧信道泄漏的算法还原方法和系统
Schneider et al. Leakage assessment methodology: A clear roadmap for side-channel evaluations
CN103138917B (zh) 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法
CN103166752B (zh) 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用
CN108604981B (zh) 用于估计秘密值的方法和设备
CN103577323B (zh) 基于动态关键指令序列胎记的软件抄袭检测方法
CN103679008B (zh) 一种高效的安全芯片功耗攻击测试方法
CN106576046A (zh) 将元数据与硬件固有属性绑定的系统和设备
CN103532973A (zh) 面向des算法电路的差分功耗攻击测试方法
Coron et al. Side-channel masking with pseudo-random generator
CN111934852A (zh) 一种基于神经网络的aes密码芯片电磁攻击方法及系统
CN106357378B (zh) 用于sm2签名的密钥检测方法及其系统
Martínez Padilla et al. Security evaluation of Tree Parity Re-keying Machine implementations utilizing side-channel emissions
CN108155984B (zh) 一种基于能量分析的密码算法簇逆向工程分析方法
CN113158179B (zh) 自动发现泄露模型的有学习的侧信道攻击方法及加密设备
CN110299988A (zh) 轻量级分组密码算法抗攻击能力的检测方法及检测装置
Luo et al. Cryptanalysis of a chaotic block cryptographic system against template attacks
CN104811295A (zh) 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法
AU2021104460A4 (en) an electromagnetic attack method of AES cryptographic chip based on neural network
Brumley et al. Consecutive S-box lookups: A Timing Attack on SNOW 3G
CN113452783B (zh) 区块链云架构的数字化paas开放平台系统及实现方法
CN106301756B (zh) 用于sm2签名的大数模幂求逆功耗检测方法及其系统
CN114285545A (zh) 一种基于卷积神经网络的侧信道攻击方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant