CN112054887B - 一种功耗碰撞攻击方法及装置 - Google Patents

一种功耗碰撞攻击方法及装置 Download PDF

Info

Publication number
CN112054887B
CN112054887B CN202010899871.7A CN202010899871A CN112054887B CN 112054887 B CN112054887 B CN 112054887B CN 202010899871 A CN202010899871 A CN 202010899871A CN 112054887 B CN112054887 B CN 112054887B
Authority
CN
China
Prior art keywords
box
collision
value
size
output value
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
CN202010899871.7A
Other languages
English (en)
Other versions
CN112054887A (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.)
Shenzhen Technology University
Original Assignee
Shenzhen Technology University
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 Shenzhen Technology University filed Critical Shenzhen Technology University
Priority to CN202010899871.7A priority Critical patent/CN112054887B/zh
Publication of CN112054887A publication Critical patent/CN112054887A/zh
Application granted granted Critical
Publication of CN112054887B publication Critical patent/CN112054887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution 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 (2)

1.一种功耗碰撞攻击方法,其特征在于,包括:
采集明文输入的功耗能量迹;
通过数学关系构造S盒碰撞;
通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥;
其中,所述通过数学关系构造S盒碰撞包括:
判断所述明文输入是否为SPN结构;
若是,使用第一阶段构造方法构造S盒碰撞;所述第一阶段构造方法包括:输入明文中前段字节,使用剩余的后段字节来构造S盒输出值碰撞,以所述后段字节中任一字节为基准对所述后段字节中其余字节进行遍历,同时进行S盒变换,所述S盒输出值碰撞是指其中的任意至少两个个数的S盒输出值相等;
否则,若所述明文输入为Feistel结构,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞;所述第二阶段构造方法包括:
构造明文输入与中间值的数学关系,根据所述数学关系构造S盒碰撞;所述数学关系计算如下:
其中,C(m+4,j)表示第m轮次的所述中间值,m表示轮次(m=0,1,2,3),j表示第m轮的第j个字节(j=0,1,2,3),B(m,j)表示第m轮第j个字节经过S盒变换输出后的值,<<为算术左移操作,而Val(m,j)为固定值,其计算方法如下:
所述通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小包括:
通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
根据所述唯一的S盒碰撞输出值反推出各子密钥值;
所述根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
2.一种功耗碰撞攻击装置,其特征在于,包括:
采集模块,用于采集明文输入的功耗能量迹;
构造模块,用于通过数学关系构造S盒碰撞;
匹配模块,用于通过模板匹配法确定S盒碰撞输出值的大小和子密钥值的大小;
反推模块,用于根据S盒碰撞输出值的大小和子密钥值的大小反推原始工作密钥;
其中,所述构造模块包括:
判断单元,用于判断所述明文输入是否为SPN结构;
第一构造单元,用于当所述明文输入为SPN结构时,使用第一阶段构造方法构造S盒碰撞;所述第一阶段构造方法包括:输入明文中前段字节,使用剩余的后段字节来构造S盒输出值碰撞,以所述后段字节中任一字节为基准对所述后段字节中其余字节进行遍历,同时进行S盒变换,所述S盒输出值碰撞是指其中的任意至少两个个数的S盒输出值相等;
第二构造单元,用于当所述明文输入为Feistel结构时,在第一阶段构造方法后使用第二阶段构造方法构造S盒碰撞;所述第二阶段构造方法包括:
构造明文输入与中间值的数学关系,根据所述数学关系构造S盒碰撞;所述数学关系计算如下:
其中,C(m+4,j)表示第m轮次的所述中间值,m表示轮次(m=0,1,2,3),j表示第m轮的第j个字节(j=0,1,2,3),B(m,j)表示第m轮第j个字节经过S盒变换输出后的值,<<为算术左移操作,而Val(m,j)为固定值,其计算方法如下:
确定单元,用于通过模板匹配法由所述功耗能量迹确定唯一的S盒碰撞输出值;
反推单元,用于根据所述唯一的S盒碰撞输出值反推出各子密钥值;
所述反推模块具体为:
通过密钥扩展算法由S盒碰撞输出值的大小和子密钥值的大小反推出原始工作密钥。
CN202010899871.7A 2020-08-31 2020-08-31 一种功耗碰撞攻击方法及装置 Active CN112054887B (zh)

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 CN112054887A (zh) 2020-12-08
CN112054887B true 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)

* Cited by examiner, † Cited by third party
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算法的选择明文相关碰撞攻击方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
On Side Channel Vulnerabilities of Bit Permutations in Cryptographic Algorithms;Jakub Breier;IEEE Transactions on Information Forensics and Security;全文 *
基于汉明重量模型的密码设备放大模板攻击;欧长海;王竹;黄伟庆;周新平;艾娟;庞娜;;密码学报(第05期);全文 *
改进的10轮Kalyna-128/256中间相遇攻击;刘亚;占婷婷;姒宏明;李玮;刘志强;;计算机应用研究(第07期);全文 *

Also Published As

Publication number Publication date
CN112054887A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
Mendel et al. Finding SHA-2 characteristics: searching through a minefield of contradictions
CN108880783B (zh) 一种针对sm4算法的联合攻击方法
CN111756521B (zh) 基于Feistel-SP结构的密码S盒设计方法
CN111800255A (zh) 一种适用于分组密码白盒化的动态白盒库生成和使用方法
Hamdi et al. A very efficient pseudo-random number generator based on chaotic maps and s-box tables
CN103067165A (zh) 公钥密码体制中的外包计算方法、设备和服务器
CN112054887B (zh) 一种功耗碰撞攻击方法及装置
CN111934852A (zh) 一种基于神经网络的aes密码芯片电磁攻击方法及系统
AU2017101168A4 (en) A method of testing the robustness of cryptographickey
CN111030820B (zh) 一种基于掩码sm4算法的选择明文相关碰撞攻击方法
CN106330424A (zh) 基于sm3算法的密码模块的防攻击方法及装置
Ma et al. Fast and accurate: efficient full-domain functional bootstrap and digit decomposition for homomorphic computation
CN105281889A (zh) 一种基于侧信道泄漏的算法还原方法和系统
Guo et al. A chosen-plaintext differential power analysis attack on HMAC-SM3
CN113204781B (zh) 用于保留格式加密算法的实现方法及装置
Miyashita et al. PNB-focused differential cryptanalysis of ChaCha stream cipher
CN113204780B (zh) 保留格式加密算法的实现方法及装置
CN112134679B (zh) 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质
Velichkov et al. Algebraic cryptanalysis of a small-scale version of stream cipher Lex
CN113949500A (zh) 一种针对sm4二阶能量分析攻击方法
CN106788979B (zh) 密码s盒评估方法
Lv et al. A miqcp-based automatic search algorithm for differential-linear trails of arx ciphers (long paper)
Tang et al. Toward reverse engineering on secret S-boxes in block ciphers
Bogos et al. Observations on the LPN solving algorithm from EUROCRYPT'16
Bogdanov et al. Large-scale high-resolution computational validation of novel complexity models in linear cryptanalysis

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