CN112054887A - 一种功耗碰撞攻击方法及装置 - Google Patents
一种功耗碰撞攻击方法及装置 Download PDFInfo
- Publication number
- CN112054887A CN112054887A CN202010899871.7A CN202010899871A CN112054887A CN 112054887 A CN112054887 A CN 112054887A CN 202010899871 A CN202010899871 A CN 202010899871A CN 112054887 A CN112054887 A CN 112054887A
- Authority
- CN
- China
- Prior art keywords
- collision
- box
- size
- power consumption
- constructing
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000010276 construction Methods 0.000 claims description 41
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据处理技术领域,公开了一种功耗碰撞攻击方法及装置,该方法包括:采集明文输入的功耗能量迹;通过数学关系构造S盒碰撞;通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥;通过数学关系构造S盒碰撞,使用模板匹配的方法确定S盒碰撞输出值,提高并增强了碰撞攻击的适用性和实用性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种功耗碰撞攻击方法及装置。
背景技术
如果在一个密码算法中某个函数输入两个不同值,对应的该函数的输出相同,则称发生了内部碰撞。碰撞攻击的基本思想是寻找特定位置的碰撞,通过碰撞产生的关系式推导出密钥的一些信息,因此每发生一次碰撞都会减小密钥搜索空间。现有的碰撞攻击主要用于具有SPN结构的分组密码算法,不具有普适性。
发明内容
本发明的主要目的在于提出一种功耗碰撞攻击方法及装置,通过数学关系构造S盒碰撞,使用模板匹配的方法确定S盒碰撞输出值,提高并增强了碰撞攻击的适用性和实用性。
为实现上述目的,本发明提供的一种功耗碰撞攻击方法,包括:
采集明文输入的功耗能量迹;
通过数学关系构造S盒碰撞;
通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥。
可选地,所述通过数学关系构造S盒碰撞包括:
判断所述明文输入是否为SPN结构;
若是,使用第一阶段构造方法构造S盒碰撞;
否则,若所述明文输入为Feistel结构,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞。
可选地,所述第二阶段构造方法包括:
构造明文输入与中间值的数学关系;
根据所述数学关系,构造S盒碰撞。
可选地,所述通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小包括:
通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
根据所述唯一的S盒碰撞输出值反推出各子密钥值。
可选地,所述根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
作为本发明的另一方面,提供的一种功耗碰撞攻击装置,包括:
采集模块,用于采集明文输入的功耗能量迹;
构造模块,用于通过数学关系构造S盒碰撞;
匹配模块,用于通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
反推模块,用于根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥。
可选地,所述构造模块包括:
判断单元,用于判断所述明文输入是否为SPN结构;
第一构造单元,用于当所述明文输入为SPN结构时,使用第一阶段构造方法构造S盒碰撞;
第二构造单元,用于当所述明文输入为Feistel结构时,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞。
可选地,所述第二构造单元包括:
构造明文输入与中间值的数学关系;
根据所述数学关系,构造S盒碰撞。
可选地,所述匹配模块包括:
确定单元,用于通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
反推单元,用于根据所述唯一的S盒碰撞输出值反推出各子密钥值。
可选地,所述反推模块具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
本发明提出的一种功耗碰撞攻击方法及装置,该方法包括:采集明文输入的功耗能量迹;通过数学关系构造S盒碰撞;通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥;通过数学关系构造S盒碰撞,使用模板匹配的方法确定S盒碰撞输出值,提高并增强了碰撞攻击的适用性和实用性。
附图说明
图1为本发明实施例一提供的一种功耗碰撞攻击方法的流程图;
图2为图1中步骤S20的方法流程图;
图3为本发明实施例一提供的第一阶段工作流程示意图;
图4为图1中步骤S30的方法流程图;
图5为本发明实施例二提供的一种功耗碰撞攻击装置的示范性结构框图;
图6为本发明实施例二提供的一种构造模块的示范性结构框图;
图7为本发明实施例二提供的一种匹配模块的示范性结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
如图1所示,在本实施例中,一种功耗碰撞攻击方法,包括:
S10、采集明文输入的功耗能量迹;
S20、通过数学关系构造S盒碰撞;
S30、通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
S40、根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥。
在本实施例中,通过数学关系构造S盒碰撞,使用模板匹配的方法确定S盒碰撞输出值,所需功耗曲线较少,匹配结果准确度较高,计算复杂度较低,提高并增强了碰撞攻击的适用性和实用性。
在本实施例中,该功耗碰撞攻击方法针对Feistel结构的分组密码算法,可以扩展到SPN算法结构,适用面更广。以SM4算法为例,将模板攻击和碰撞攻击相结合。通过对被攻击的密码设备进行加密操作,构造算法S盒输出值碰撞,记录并采集相应的S盒输出功耗能量迹;然后通过采集到的功耗能量迹,使用模板匹配方法确定算法S盒输出碰撞值大小和每一轮中任一子密钥值大小;然后通过上述的构造碰撞方法,反推出每一轮各子密钥大小,从而获得前4轮全部的子密钥信息,然后通过密钥扩展算法反推出原始的工作密钥。
如图2所示,在本实施例中,所述步骤S20包括:
S21、判断所述明文输入是否为SPN结构;
若是,S22、使用第一阶段构造方法构造S盒碰撞;
否则,S23、若所述明文输入为Feistel结构,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞。
在本实施例中,构造碰撞分为两个阶段,第一阶段:明文前m比特输入为0,后n比特任选其中1字节为基准,对剩余字节同时进行遍历。第二阶段:构造明文输入与中间值的数学关系,然后基于第一阶段的方法,逐字节构造碰撞。若m、n分别为128、0,则对应SPN结构,使用第一阶段的构造方法即可;若m、n分别为32、96或64、64,则对应Feistel结构,需要在第一阶段的构造方法基础上,继续使用第二阶段的构造方法。
在本实施例中,所述第二阶段构造方法包括:
构造明文输入与中间值的数学关系;
根据所述数学关系,构造S盒碰撞。
在本实施例中,以SM4加密算法为例,假设明文输入Xi为128bit,即16个字节,Xi表示字节,i取值为0-15。
如图3所示,为第一阶段工作流程示意图,输入明文中前96bit(前12个字节)全为(00)16,使用剩余的后4个字节来构造S盒输出值碰撞,其中S盒输出值碰撞是指其中的任意两个及以上个数的S盒输出值相等。具体地,选择其中的任一字节为基准,如选择X12为基准,令X12为(00)16,对X13、X14、X15同时进行遍历(00-FF)16,遍历次数为256次,在遍历过程中,当X13、X14、X15中的某一个与X12产生碰撞后,获取到的S盒输出功耗曲线应该大致相同(进一步的可以进行计算二者相关系数大小),然后记录当下该字节的值v1,对剩余字节进行后续的遍历。重复上述操作,获得v1、v2、v3。
根据加密算法流程可知,S盒变换过程如下:
若在第一轮加密过程中,S盒输出发生碰撞,以X12与X13为例:
因为对于同一个密码设备(黑盒),密钥值虽然未知但是固定,因此,rk0与rk1也是一个固定值,它们的差值ΔKi也是固定的。因此可得:
由上式例子可知,ΔK为固定值,因此,对于遍历得到的v1、v2、v3则分别为以X12为基准字节的情况下,分别得到的ΔK1、ΔK2、ΔK3,即:
通过模板匹配确定S盒的输出值res,并根据ΔK1、ΔK2、ΔK3可以恢复出第一轮子密钥的各字节,设定的基准字节为(00)16,因此对应字节的S盒输出值res便是其子密钥值,则第一轮子密钥恢复方法如下:
rk0=res
在第二阶段,若要构造第一轮之后的S盒输出值碰撞,则需要先计算上一轮最后产生的Xi+1、Xi+2、Xi+3、Xi+4。而且从SM4的每一轮加密算法中可以看出,在进行非线性变化(S盒)后,还需要进行线性变化(循环左移)。因此,输入的128bit明文与之后四轮所产生的中间值存在着一定的数学关系,通过计算其中的数学关系可以简化其中的操作以实现第一轮之后的S盒输出值碰撞。
对于同一个密码设备(黑盒),密钥值虽然未知但是固定。因此,通过第一阶段的方法构造碰撞后,可以确定第一轮的子密钥。对于第二、三、四轮加密过程中,数学关系计算如下:
其中,m表示轮次(m=0,1,2,3),j表示该轮的第j个字节(j=0,1,2,3),B(m,j)表示第m轮第j个字节经过S盒变换输出后的值,<<为算术左移操作,即左移n位后补0。而Val(m,j)为固定值,其计算方法如下:
该公式计算是基于第一阶段获得子密钥后,对输入的128bit明文逐列构造之后每一轮的S盒输出值碰撞。
如图4所示,在本实施例中,所述步骤S30包括:
S31、通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
S32、根据所述唯一的S盒碰撞输出值反推出各子密钥值。
在本实施例中,在构造碰撞时,在某一次遍历过程中第一轮的res输出值应该全部相等,即4个S盒输出相同值。通过获取的功耗能量迹,可以观察到第一轮的每一个S盒操作的功耗能量迹大致相同。在模板匹配过程中,需要通过计算相关系数r来确定出res的汉明重量与模板的相关系数大小。相关系数r计算公式如下:
其中x,y分别代表模板曲线与实际测量的功耗曲线。分别代入各曲线点坐标值可以计算出二者的相关数大小,取其中相关系数r最大值所对应的模板曲线,即可确定出ΔK的汉明重量值大小。Hw为汉明重量,虽然S盒输出值res未知,但是可以通过获取的功耗能量迹匹配来去确定。因为在8bit数中相同汉明重量的字节的个数固定,即对于汉明重量0的字节只有(00)16,因此对于汉明重量为0到8的字节数分别有1、8、28、56、70、56、28、8、1。所以,通过模板匹配可以先大致划分出res的汉明重量为多少,然后通过在该汉明重量下的字节来逐一匹配验证,即可确定唯一的res。在获取了唯一的res后,则可以通过反推得出子密钥。
在本实施例中,所述步骤S40具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
实施例二
如图5所示,在本实施例中,一种功耗碰撞攻击装置,包括:
采集模块10,用于采集明文输入的功耗能量迹;
构造模块20,用于通过数学关系构造S盒碰撞;
匹配模块30,用于通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
反推模块40,用于根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥。
在本实施例中,通过数学关系构造S盒碰撞,使用模板匹配的方法确定S盒碰撞输出值,所需功耗曲线较少,匹配结果准确度较高,计算复杂度较低,提高并增强了碰撞攻击的适用性和实用性。
在本实施例中,该功耗碰撞攻击方法针对Feistel结构的分组密码算法,可以扩展到SPN算法结构,适用面更广。以SM4算法为例,将模板攻击和碰撞攻击相结合。通过对被攻击的密码设备进行加密操作,构造算法S盒输出值碰撞,记录并采集相应的S盒输出功耗能量迹;然后通过采集到的功耗能量迹,使用模板匹配方法确定算法S盒输出碰撞值大小和每一轮中任一子密钥值大小;然后通过上述的构造碰撞方法,反推出每一轮各子密钥大小,从而获得前4轮全部的子密钥信息,然后通过密钥扩展算法反推出原始的工作密钥。
如图6所示,在本实施例中,所述构造模块包括:
判断单元21,用于判断所述明文输入是否为SPN结构;
第一构造单元22,用于当所述明文输入为SPN结构时,使用第一阶段构造方法构造S盒碰撞;
第二构造单元23,用于当所述明文输入为Feistel结构时,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞。
在本实施例中,构造碰撞分为两个阶段,第一阶段:明文前m比特输入为0,后n比特任选其中1字节为基准,对剩余字节同时进行遍历。第二阶段:构造明文输入与中间值的数学关系,然后基于第一阶段的方法,逐字节构造碰撞。若m、n分别为128、0,则对应SPN结构,使用第一阶段的构造方法即可;若m、n分别为32、96或64、64,则对应Feistel结构,需要在第一阶段的构造方法基础上,继续使用第二阶段的构造方法。
在本实施例中,所述第二构造单元包括:
构造明文输入与中间值的数学关系;
根据所述数学关系,构造S盒碰撞。
在本实施例中,以SM4加密算法为例,假设明文输入Xi为128bit,即16个字节,Xi表示字节,i取值为0-15。
如图3所示,为第一阶段工作流程示意图,输入明文中前96bit(前12个字节)全为(00)16,使用剩余的后4个字节来构造S盒输出值碰撞,其中S盒输出值碰撞是指其中的任意两个及以上个数的S盒输出值相等。具体地,选择其中的任一字节为基准,如选择X12为基准,令X12为(00)16,对X13、X14、X15同时进行遍历(00-FF)16,遍历次数为256次,在遍历过程中,当X13、X14、X15中的某一个与X12产生碰撞后,获取到的S盒输出功耗曲线应该大致相同(进一步的可以进行计算二者相关系数大小),然后记录当下该字节的值v1,对剩余字节进行后续的遍历。重复上述操作,获得v1、v2、v3。
根据加密算法流程可知,S盒变换过程如下:
若在第一轮加密过程中,S盒输出发生碰撞,以X12与X13为例:
因为对于同一个密码设备(黑盒),密钥值虽然未知但是固定,因此,rk0与rk1也是一个固定值,它们的差值ΔKi也是固定的。因此可得:
由上式例子可知,ΔK为固定值,因此,对于遍历得到的v1、v2、v3则分别为以X12为基准字节的情况下,分别得到的ΔK1、ΔK2、ΔK3,即:
通过模板匹配确定S盒的输出值res,并根据ΔK1、ΔK2、ΔK3可以恢复出第一轮子密钥的各字节,设定的基准字节为(00)16,因此对应字节的S盒输出值res便是其子密钥值,则第一轮子密钥恢复方法如下:
rk0=res
在第二阶段,若要构造第一轮之后的S盒输出值碰撞,则需要先计算上一轮最后产生的Xi+1、Xi+2、Xi+3、Xi+4。而且从SM4的每一轮加密算法中可以看出,在进行非线性变化(S盒)后,还需要进行线性变化(循环左移)。因此,输入的128bit明文与之后四轮所产生的中间值存在着一定的数学关系,通过计算其中的数学关系可以简化其中的操作以实现第一轮之后的S盒输出值碰撞。
对于同一个密码设备(黑盒),密钥值虽然未知但是固定。因此,通过第一阶段的方法构造碰撞后,可以确定第一轮的子密钥。对于第二、三、四轮加密过程中,数学关系计算如下:
其中,m表示轮次(m=0,1,2,3),j表示该轮的第j个字节(j=0,1,2,3),B(m,j)表示第m轮第j个字节经过S盒变换输出后的值,<<为算术左移操作,即左移n位后补0。而Val(m,j)为固定值,其计算方法如下:
该公式计算是基于第一阶段获得子密钥后,对输入的128bit明文逐列构造之后每一轮的S盒输出值碰撞。
如图7所示,在本实施例中,所述匹配模块包括:
确定单元31,用于通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
反推单元32,用于根据所述唯一的S盒碰撞输出值反推出各子密钥值。
在本实施例中,在构造碰撞时,在某一次遍历过程中第一轮的res输出值应该全部相等,即4个S盒输出相同值。通过获取的功耗能量迹,可以观察到第一轮的每一个S盒操作的功耗能量迹大致相同。在模板匹配过程中,需要通过计算相关系数r来确定出res的汉明重量与模板的相关系数大小。相关系数r计算公式如下:
其中x,y分别代表模板曲线与实际测量的功耗曲线。分别代入各曲线点坐标值可以计算出二者的相关数大小,取其中相关系数r最大值所对应的模板曲线,即可确定出ΔK的汉明重量值大小。Hw为汉明重量,虽然S盒输出值res未知,但是可以通过获取的功耗能量迹匹配来去确定。因为在8bit数中相同汉明重量的字节的个数固定,即对于汉明重量0的字节只有(00)16,因此对于汉明重量为0到8的字节数分别有1、8、28、56、70、56、28、8、1。所以,通过模板匹配可以先大致划分出res的汉明重量为多少,然后通过在该汉明重量下的字节来逐一匹配验证,即可确定唯一的res。在获取了唯一的res后,则可以通过反推得出子密钥。
在本实施例中,所述反推模块具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种功耗碰撞攻击方法,其特征在于,包括:
采集明文输入的功耗能量迹;
通过数学关系构造S盒碰撞;
通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥。
2.根据权利要求1所述的一种功耗碰撞攻击方法,其特征在于,所述通过数学关系构造S盒碰撞包括:
判断所述明文输入是否为SPN结构;
若是,使用第一阶段构造方法构造S盒碰撞;
否则,若所述明文输入为Feistel结构,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞。
3.根据权利要求2所述的一种功耗碰撞攻击方法,其特征在于,所述第二阶段构造方法包括:
构造明文输入与中间值的数学关系;
根据所述数学关系,构造S盒碰撞。
4.根据权利要求1所述的一种功耗碰撞攻击方法,其特征在于,所述通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小包括:
通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
根据所述唯一的S盒碰撞输出值反推出各子密钥值。
5.根据权利要求4所述的一种功耗碰撞攻击方法,其特征在于,所述根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
6.一种功耗碰撞攻击装置,其特征在于,包括:
采集模块,用于采集明文输入的功耗能量迹;
构造模块,用于通过数学关系构造S盒碰撞;
匹配模块,用于通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
反推模块,用于根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥。
7.根据权利要求6所述的一种功耗碰撞攻击装置,其特征在于,所述构造模块包括:
判断单元,用于判断所述明文输入是否为SPN结构;
第一构造单元,用于当所述明文输入为SPN结构时,使用第一阶段构造方法构造S盒碰撞;
第二构造单元,用于当所述明文输入为Feistel结构时,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞。
8.根据权利要求7所述的一种功耗碰撞攻击装置,其特征在于,所述第二构造单元包括:
构造明文输入与中间值的数学关系;
根据所述数学关系,构造S盒碰撞。
9.根据权利要求6所述的一种功耗碰撞攻击装置,其特征在于,所述匹配模块包括:
确定单元,用于通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
反推单元,用于根据所述唯一的S盒碰撞输出值反推出各子密钥值。
10.根据权利要求9所述的一种功耗碰撞攻击装置,其特征在于,所述反推模块具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010899871.7A CN112054887B (zh) | 2020-08-31 | 2020-08-31 | 一种功耗碰撞攻击方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010899871.7A CN112054887B (zh) | 2020-08-31 | 2020-08-31 | 一种功耗碰撞攻击方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112054887A true CN112054887A (zh) | 2020-12-08 |
CN112054887B CN112054887B (zh) | 2024-02-20 |
Family
ID=73607108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010899871.7A Active CN112054887B (zh) | 2020-08-31 | 2020-08-31 | 一种功耗碰撞攻击方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054887B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105281889A (zh) * | 2015-11-16 | 2016-01-27 | 中国电子科技集团公司第三十研究所 | 一种基于侧信道泄漏的算法还原方法和系统 |
CN105933108A (zh) * | 2016-05-30 | 2016-09-07 | 清华大学 | 一种对sm4算法实现破解的方法 |
CN106788974A (zh) * | 2016-12-22 | 2017-05-31 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
CN107070629A (zh) * | 2016-11-14 | 2017-08-18 | 成都信息工程大学 | 一种针对sm4密码算法轮输出的模板攻击方法 |
CN109347621A (zh) * | 2018-08-31 | 2019-02-15 | 南京航空航天大学 | 基于随机延时s盒的可防御碰撞攻击的高速aes加密电路 |
CN111030820A (zh) * | 2019-12-17 | 2020-04-17 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
-
2020
- 2020-08-31 CN CN202010899871.7A patent/CN112054887B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105281889A (zh) * | 2015-11-16 | 2016-01-27 | 中国电子科技集团公司第三十研究所 | 一种基于侧信道泄漏的算法还原方法和系统 |
CN105933108A (zh) * | 2016-05-30 | 2016-09-07 | 清华大学 | 一种对sm4算法实现破解的方法 |
CN107070629A (zh) * | 2016-11-14 | 2017-08-18 | 成都信息工程大学 | 一种针对sm4密码算法轮输出的模板攻击方法 |
CN106788974A (zh) * | 2016-12-22 | 2017-05-31 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
CN109347621A (zh) * | 2018-08-31 | 2019-02-15 | 南京航空航天大学 | 基于随机延时s盒的可防御碰撞攻击的高速aes加密电路 |
CN111030820A (zh) * | 2019-12-17 | 2020-04-17 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
Non-Patent Citations (3)
Title |
---|
JAKUB BREIER: "On Side Channel Vulnerabilities of Bit Permutations in Cryptographic Algorithms", IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY * |
刘亚;占婷婷;姒宏明;李玮;刘志强;: "改进的10轮Kalyna-128/256中间相遇攻击", 计算机应用研究, no. 07 * |
欧长海;王竹;黄伟庆;周新平;艾娟;庞娜;: "基于汉明重量模型的密码设备放大模板攻击", 密码学报, no. 05 * |
Also Published As
Publication number | Publication date |
---|---|
CN112054887B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103227717B (zh) | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的方法 | |
CN103647637B (zh) | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 | |
US8199909B2 (en) | Method and device for carrying out a cryptographic calculation | |
CN103825722B (zh) | 一种sm4密码算法的二阶侧信道能量分析方法 | |
CN108880783B (zh) | 一种针对sm4算法的联合攻击方法 | |
CN111030820B (zh) | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 | |
CN110474761A (zh) | 一种16轮sm4-256白盒密码实现方法 | |
CN111800255A (zh) | 一种适用于分组密码白盒化的动态白盒库生成和使用方法 | |
CN111756521A (zh) | 基于Feistel-SP结构的密码S盒设计方法 | |
EP0907269A1 (en) | Encryption device for information in binary code | |
CN110299988B (zh) | 轻量级分组密码算法抗攻击能力的检测方法及检测装置 | |
CN105281889A (zh) | 一种基于侧信道泄漏的算法还原方法和系统 | |
CN106330424A (zh) | 基于sm3算法的密码模块的防攻击方法及装置 | |
CN102404108A (zh) | 一种针对aes-128算法的新型故障攻击方法 | |
CN112054887A (zh) | 一种功耗碰撞攻击方法及装置 | |
CN113949500A (zh) | 一种针对sm4二阶能量分析攻击方法 | |
Abdeihaleem et al. | A chess-based chaotic block cipher | |
CN114417068B (zh) | 一种具有隐私性保护的大规模图数据匹配方法 | |
EP1087425B1 (en) | Method for the cryptographic conversion of binary data blocks | |
CN112398638B (zh) | 一种零相关线性密码分析方法、系统、介质及电子设备 | |
CN114765530A (zh) | 基于反馈移位寄存器的流密码相邻时钟差分能量分析方法 | |
CN112134679B (zh) | 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 | |
JP4122856B2 (ja) | 複数の要素に対する確率的同時位数検査方法および位数検査プログラム | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
Wen et al. | General application of FFT in cryptanalysis and improved attack on CAST-256 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |