CN116170128A - 一种针对esf密码算法的差分故障攻击方法 - Google Patents

一种针对esf密码算法的差分故障攻击方法 Download PDF

Info

Publication number
CN116170128A
CN116170128A CN202210247758.XA CN202210247758A CN116170128A CN 116170128 A CN116170128 A CN 116170128A CN 202210247758 A CN202210247758 A CN 202210247758A CN 116170128 A CN116170128 A CN 116170128A
Authority
CN
China
Prior art keywords
round
ciphertext
fault
output
difference
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.)
Pending
Application number
CN202210247758.XA
Other languages
English (en)
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.)
Hunan Tianhe Guoyun Technology Co Ltd
Original Assignee
Hunan Tianhe Guoyun Technology Co Ltd
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 Hunan Tianhe Guoyun Technology Co Ltd filed Critical Hunan Tianhe Guoyun Technology Co Ltd
Priority to CN202210247758.XA priority Critical patent/CN116170128A/zh
Publication of CN116170128A publication Critical patent/CN116170128A/zh
Pending legal-status Critical Current

Links

Images

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
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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
    • 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)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种针对ESF密码算法的差分故障攻击方法,其步骤包括:在S盒运算前注入比特型错误故障;结合差分方程与S盒在不同故障条件下输出差分不均匀性,获取内部状态信息;分析得出初始密钥。本发明具有操作简单、通用性强、能保证将密钥搜索空间降至最低等优点。

Description

一种针对ESF密码算法的差分故障攻击方法
技术领域
本发明主要涉及到网络安全技术领域,特指一种针对ESF密码算法的差分故障攻击方法。
背景技术
随着电子信息技术与物联网的发展,物联网使用的信息传感设备广泛应用,如射频识别(RFID技术)、传感器等,这些技术通过开放性的计算机网络实现信息交换和共享,同时也带来了交互效率低、安全保障低等问题。
区块链+物联网是未来的发展方向,区块链技术可以为物联网提供点对点直接互联的方式来传输数据,并且区块链的密码机制能够为物联网中的信息传输创造安全的环境。尤其在资源受限的物联网节点中需要对数据进行加密时,不可避免地引入具有占用资源少、功耗低、效率高、易于实现等优势的轻量级密码算法,同时对密码算法的安全性提出了更高的要求。
然而实际用于物联网设备中的轻量级分组密码算法日益凸显出安全漏洞,所以需要对该类算法进行分析研究,不断完善攻击过程与方法,以实现密码算法的更新换代,提升轻量级分组密码算法的防御能力,进一步提升区块链中密码技术的安全性。
八阵图算法(Eight-Sided Fortress,ESF)是一个64位的分组密码,是由刘宣等人基于LBlock算法进行改进的一种轻量级分组密码算法,结构简单且易于实现。该算法是一种具有广义Feistel结构的轻量级分组密码算法,以bit作为运算的基本单位,相对于半字节、字节运算单位的密码算法,其扩散效果更好,仅仅在迭代了几轮后,该算法64bit的中间状态全部受到影响。因此该算法的安全性更高。
目前针对ESF算法的分析主要是差分分析、不可能差分分析、相关密钥差分分析以及截断不可能差分分析等,这些方法在理论分析上容易实现,但数据复杂度和时间复杂度相对较高,而将差分故障攻击用于ESF算法,虽然物理实现要求高,但能加大减小复杂度。
“差分故障攻击”于1996年被Biham和Shamir首次提出,并且成功分析了DES算法。此后,差分故障攻击被广泛应用于公钥密码算法、分组密码算法等等。完成差分故障攻击最重要的一点就是在加密设备中引进故障,如电压瞬变、外部时钟骤变、激光束、X-射线等。差分故障攻击已经应用到了许多的轻量级密码算法分析中。差分故障攻击有多种类型的故障注入,有以bit为单位的故障注入模型、以半字节为单位的故障注入模型和以字节为单位的故障注入模型等等。
有从业者提出一种“用不可能差分法分析12轮ESF算法”(高宏杰,卫宏儒,计算机科学,2017,44(10):147-149.),该技术在8轮不可能差分路径的基础上,通过向前增加2轮、项后增加2轮的方式,进一步利用不可能差分将错误密钥进行淘汰。首先选择明文结构,包括240个明文,可形成279个明文对,选取2N个这样的结构进行12轮加密,则共有2N+40个明文,可形成2N+79个明密文对;然后过滤数据对,即选择满足条件的明密文对,剩下的明密文对为2N+41;接着进行密钥恢复。根据S盒的变换进行差分运算,分别猜测k12、k11、k1、k2的多个bit值;最后将总的时间复杂度降为260.43,数据复杂度降为253。该技术利用密钥编排算法部分子密钥间存在的依赖关系,给出了ESF算法的13轮不可能差分分析,恢复了80比特主密钥。首先选择满足特定条件的2n个明文结构,加密后得到2n+61个密文对;然后根据条件筛选出差分的密文对,筛选后得到2n+45个数据对;接着猜测第13轮子密钥K12。根据条件筛选出2n+17个数据对,分步猜测出K12 29-32、K12 25-28、K12 1-4,这一步骤计算量为2n+50;然后根据已猜测出的子密钥K12和密钥编排算法推导出K11、K10、K1、K0的部分bit值;最后将数据复杂度降为261.99,事件复杂度降为277.39
另有从业者提出了一种“轻量级分组密码算法ESF的相关密钥差分分析”(尹军,宋健,曾光,密码学报,2017,4(4):333–344.),该技术通过建立相关密钥下的MILP模型,利用搜索得到的11轮相关密钥差分特征,将相应的相关密钥差分区分器向后扩展2轮,提出了13轮的相关密钥差分攻击。首先通过MILP模型分析计算出10轮、11轮相关密钥差分概率分别是2-16和2-20,并得到11轮最小活跃S盒数量为10;然后有条件地选择2n个明文对(P,P')进行加密,得到2n-22对密文。接着猜测子密钥K5的部分bit、子密钥K6的部分bit、子密钥K11的部分bit;最后根据密钥编排算法猜测出主密钥的部分bit。将数据复杂度降至247,时间复杂度降至266
还有从业者提出了一种“轻量级分组密码ESF的差分故障攻击”(徐朋,网络安全技术与应用,2016,2016(1):99–100.),该技术方案设定了攻击条件,要求攻击者可以在任意一轮中间状态的任意部位导入故障,但故障具体数值未知,并得到相应的正确密文和错误密文;每个S盒所对应的4bit半字节随机故障值非0;对于相同的位置,攻击者可以重复导入故障并得到相应的错误密文。攻击原理是:随机选取明文P加密,获得正确密文。对所选择的相同明文,在算法运行至第32轮时对右半部分32bit输出导入故障,获得相应错误密文。根据正确密文与错误密文及S盒的差分分布特征,列出关于第32轮轮密钥的方程,穷举4bit轮密钥的所有值,利用s盒的差分特性确定对轮密钥。用轮密钥解密正确密文,获得32轮中间状态输出,再根据上述方法在第31轮右半部分输出导入故障从而确定该轮子密钥。其攻击过程概述为依次在第32轮、31轮、30轮中间状态的右半部分8个半字节中同时导入8个以bit为单位的故障来进行密钥分析,该密钥分析方法对故障注入的手段要求较高。
上述传统的技术方案仍然还是存在事件复杂度高、数据复杂度大、操作较为复杂、开销较大等不足,最终影响到了整个方案的效率和精确性。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种操作简单、通用性强、能保证将密钥搜索空间降至最低的针对ESF密码算法的差分故障攻击方法。
为解决上述技术问题,本发明采用以下技术方案:
一种针对ESF密码算法的差分故障攻击方法,其步骤包括:
在S盒运算前注入比特型错误故障;
结合差分方程与S盒在不同故障条件下输出差分不均匀性,获取内部状态信息;
分析得出初始密钥。
作为本发明的进一步改进:根据ESF置换层结构的特点,选定最后三轮作为故障注入的位置,分析故障扩散的程度,结合差分表分析出最后3轮轮密钥。
作为本发明的进一步改进:在第30轮随机多次注入1bit故障,对故障扩散影响的密文数量进行概率分析,至少需6个故障密文得出最后一轮轮密钥。
作为本发明的进一步改进:在第29轮、28轮各随机注入2个bit的故障,结合最后一轮轮密钥分析出第30轮和第31轮轮密钥。
作为本发明的进一步改进:恢复最后一轮轮密钥的步骤包括:
步骤S101:在第30轮轮函数运行前注入1bit随机故障到寄存器B30Nj中,其中1≤j≤8,获得故障密文D1;将正确密文C与错误密文D1进行异或,得到密文差分ΔD1;
步骤S102:通过查找表,由最后一轮S盒的输出差分列出相应S盒正确输入的候选值;
步骤S103:在第30轮轮函数运算前,多次注入1bit的随机故障,并重复步骤S101和步骤S102,不断缩小S盒正确输入的候选值的个数,直到剩下唯一一个;此时得到的就是S盒的正确输入值;
步骤S104:将正确S盒的输入值与正确密文的左边32bit异或,得到最后一轮轮密钥。
作为本发明的进一步改进:在步骤S101中,密文差分受上一轮输出的左边32bit的差分影响,通过直接观察最后一轮右边32bit密文差分,得到准确的进入逆运算的密文差分;密文差分经过逆P盒置换,得到最后一轮S盒的输出差分。
作为本发明的进一步改进:恢复第31轮轮密钥的步骤包括:
步骤S201:结合最后一轮轮密钥和最后一轮输出,逆推得到第31轮正确输出;此时,在第29轮注入1bit的随机故障到寄存器B29Nj中,其中1≤j≤8,获得故障密文D2,结合最后一轮轮密钥,逆推得到第31轮故障输出;将第31轮的正确输出与故障输出异或,得到中间状态密文差分;
步骤S202:通过查找表,由第31轮S盒的输出差分列出相应S盒正确输入的候选值;
步骤S203:在第29轮轮函数运算前,多次注入1bit的随机故障,并重复步骤S201和步骤S202,不断缩小S盒正确输入的候选值的个数,直到剩下唯一一个;此时得到的就是S盒的正确输入值;
步骤S204:将正确S盒的输入值与正确密文的左边32bit异或,得到第31轮轮密钥。
作为本发明的进一步改进:在步骤S201中,密文差分受上一轮输出的左边32bit的差分影响,通过直接观察第31轮的输出的右边32bit密文差分,得到准确的进入逆运算的密文差分;密文差分经过逆P盒置换,得到第31轮S盒的输出差分。
作为本发明的进一步改进:恢复第30轮轮密钥的步骤包括:
步骤S301:结合第31轮轮密钥和第31轮输出,逆推得到第30轮正确输出;此时,在第28轮注入1bit的随机故障到寄存器B28Nj中,其中1≤j≤8,获得故障密文D3,结合第31轮轮密钥,逆推得到第30轮故障输出;将第30轮的正确输出与故障输出异或,得到中间状态密文差分;
步骤S302:分析出第30轮轮密钥。
作为本发明的进一步改进:分析得到初始密钥的过程包括:
步骤S401:根据密钥的扩展方案,K30是K30的左32位,K30=K30[0:31]||K30[47:0];
步骤S402:移位之后:
K30=K30[13:31]||K30[47:0]||K30[0:12];
步骤S403:过S盒之后:
K30=S0(K30[13:16])||S0(K30[17:20])||K30[21:31]||K30[47:0]||K30[0:12];
步骤S404:加轮常量之后:
K31=S0(K30[13:16])||S0(K30[17:20])||K30[21:31]||K30[47:34]||K30[33:29]⊕i||K30[28:0]||K30[0:12];
步骤S405:K31是K31的左32位,移位之后:
K31=K30[26:31]||K30[47:34]||K30[33:29]⊕i||K30[28:0]||K30[0:12]||S0(K30[13:16])||S0(K30[17:20])||K30[21:25];
步骤S406:过S盒之后:
K31=S0(K30[26:29])||S0(K30[30:31]||K30[47:46])||K30[45:34]||K30[33:29]⊕i||K30[28:0]||K30[0:12]||S0(K30[13:16])||S0(K30[17:20])||K30[21:25];
步骤S407:加轮常量之后:
K32=S0(K30[26:29])||S0(K30[30:31]||K30[47:46])||K30[45:34]||K30[33:29]⊕i||K30[28:22]||K30[21:17]⊕i||K30[16:0]||K30[0:12]||S0(K30[13:16])||S0(K30[17:20])||K30[21:25];
步骤S408:K32是K32左32位,看出K32已知32+13+4+4+5=58位,剩余22位未知;通过穷举的方式获得初始密钥。
与现有技术相比,本发明的优点在于:
1、本发明的针对ESF密码算法的差分故障攻击方法,每次操作仅需要选择某一轮迭代的中间状态随机注入1bit的故障,并通过概率分析,得到最后三轮迭代的故障注入次数分别为6、2、2次。操作简单且通用性强,还能保证将密钥搜索空间降至最低。
2、由于差分故障攻击方法是一种利用物理手段进行故障注入的方法,本发明的针对ESF密码算法的差分故障攻击方法,能够在减小故障注入的难度的条件下,深入地分析故障扩散的情况,以最少的故障注入的手段,将密钥搜索空间缩小。
3、本发明的针对ESF密码算法的差分故障攻击方法,无需诱导某轮中间状态中的某些特殊字节,以致加密过程及加密结果产生特定故障;而且在攻击过程中无需大量的注入故障,仅根据故障扩散情况,找到最合适的故障注入的轮数。
4、本发明提出了一种针对置换层为拉线型的密码算法ESF的改进的差分故障攻击。通过选定最后三轮,分析故障扩散的程度,分别注入6次、2次、2次故障,共10次故障,并结合差分表能够分析出最后3轮轮密钥。结合最后3轮轮密钥和密钥编排,可将恢复主密钥的计算复杂度降至222。在本发明的差分故障分析中,为了保证方法的通用性,且避免最优情况的偶然性,分析过程都是利用概率较大的情况进行分析,例如本发明分析中,如果故障影响的比特数越多,密钥分析难度越低,但由于故障传播路径中至少产生2个比特故障,且产生2比特故障的概率较大,所以会优先利用实验中产生2比特故障的情况进行保守分析。这种办法通用性强,还可以用于其他具有类似置换层的密码算法中,分析置换层故障的传播特性和S盒的差分分布,可得到全部或部分密钥。
附图说明
图1是本发明方法的流程示意图。
图2是本发明在具体实施例中的流程示意图。
图3是本发明在具体实施例中针对ESF算法的攻击方法对比表。
图4是本发明在具体实施例中ESF中S7盒每一个输出差分可能的输入表。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1-图4所示,本发明的针对ESF密码算法的差分故障攻击方法,其步骤包括:
在S盒运算前注入比特型错误故障;
结合差分方程与S盒在不同故障条件下输出差分不均匀性,获取内部状态信息;
分析得出初始密钥。
根据ESF置换层结构的特点,使其能够发现故障的传播路径,由此可选择故障注入的位置。在具体应用实例中,本发明是通过选定最后三轮,分析故障扩散的程度,并结合差分表就能够分析出最后3轮轮密钥。
为了便于说明,本发明预先设定攻击条件:
(1)攻击者有能力选择一个明文进行加密,并获得相应的正确\故障密文;
(2)攻击者能够诱导1bit故障输入到加密的第30轮寄存器中;
(3)故障位置和值均未知。
在具体应用实例中,为了得到最后一轮轮密钥,本发明在第30轮随机多次注入1bit故障,然后对故障扩散影响的密文数量进行概率分析,至少需6个故障密文方可得出最后一轮轮密钥。为了得到第31轮、第30轮轮密钥,继续在第29轮、28轮各随机注入2个bit的故障,结合最后一轮轮密钥可分析出第30轮和第31轮轮密钥,共需要约10个故障密文,可将计算复杂度降为222
在具体应用实例中,恢复最后一轮轮密钥,详细步骤如下:
步骤S101:对同样的明文P进行加密,在第30轮轮函数运行前注入1bit随机故障到寄存器B30Nj(1≤j≤8)中,获得故障密文D1。将正确密文C与错误密文D1进行异或,得到密文差分ΔD1。此外,密文差分还受上一轮输出的左边32bit的差分影响,但可直接观察最后一轮右边32bit密文差分,得到准确的进入逆运算的密文差分。密文差分经过逆P盒置换,得到最后一轮S盒的输出差分。
步骤S102:参见图4,通过查找表,由最后一轮S盒的输出差分列出相应S盒正确输入的候选值。
步骤S103:在第30轮轮函数运算前,多次注入1bit的随机故障,并重复步骤S101和步骤S102,不断缩小S盒正确输入的候选值的个数,直到剩下唯一一个。此时得到的就是S盒的正确输入值。
步骤S104:最后将正确S盒的输入值与正确密文的左边32bit异或,即可得到最后一轮轮密钥。
在具体应用实例中,恢复第31轮轮密钥,详细步骤如下:
步骤S201:结合最后一轮轮密钥和最后一轮输出,可逆推得到第31轮正确输出。此时,在第29轮注入1bit的随机故障到寄存器B29Nj(1≤j≤8)中,获得故障密文D2,结合最后一轮轮密钥,可逆推得到第31轮故障输出。将第31轮的正确输出与故障输出异或,得到中间状态密文差分;此外,密文差分还受上一轮输出的左边32bit的差分影响,但可直接观察第31轮的输出的右边32bit密文差分,得到准确的进入逆运算的密文差分。密文差分经过逆P盒置换,得到第31轮S盒的输出差分。
步骤S202:参见图4,通过查找表,由第31轮S盒的输出差分列出相应S盒正确输入的候选值。
步骤S203:在第29轮轮函数运算前,多次注入1bit的随机故障,并重复步骤S201和步骤S202,不断缩小S盒正确输入的候选值的个数,直到剩下唯一一个。此时得到的就是S盒的正确输入值。
步骤S204:最后将正确S盒的输入值与正确密文的左边32bit异或,即可得到第31轮轮密钥。
在具体应用实例中,恢复第30轮轮密钥,详细步骤如下:
步骤S301:结合第31轮轮密钥和第31轮输出,可逆推得到第30轮正确输出。此时,在第28轮注入1bit的随机故障到寄存器B28Nj(1≤j≤8)中,获得故障密文D3,结合第31轮轮密钥,可逆推得到第30轮故障输出。将第30轮的正确输出与故障输出异或,得到中间状态密文差分;此外,密文差分还受上一轮输出的左边32bit的差分影响,但可直接观察第30轮的输出的右边32bit密文差分,得到准确的进入逆运算的密文差分。密文差分经过逆P盒置换,得到第30轮S盒的输出差分。
步骤S302:通过与恢复第30轮轮密钥类似的方法分析出第30轮轮密钥。
由上可知,在第30轮S盒运算前随机注入1bit故障,在第32轮至少能得到3个注入故障错误的S盒的输出,在这样的情况下,恢复第32轮的轮密钥所需要的错误密文则减少到6个。即平均每两对S盒的输入输出差分所对应的可能输入值的集合能确定唯一的S盒半字节输入值。
由于本发明是在第30轮的S盒运算前注入的故障错误,因此,在恢复最后一轮轮密钥的同时,也可以得到第31轮的至少12个注入了错误的S盒的输出,那么只需要在第29轮的S盒运算前再注入2bit的故障错误,得到2个错误密文就可以恢复第31轮轮密钥;在恢复最后一轮轮密钥时,已经得到第30轮的6个注入了错误的S盒的输出,在恢复第31轮轮密钥时,已经得到第30轮的至少4个注入了错误的S盒的输出,那么只需在第28轮S盒运算前注入2bit故障,即可恢复第30轮轮密钥。综上所述,理论上只需要约10个错误密文就可以恢复最后三轮子密钥K32、K31、K30。
在具体应用实例中,分析得到初始密钥的过程包括:
步骤S401:根据密钥的扩展方案,K30是K30的左32位,K30=K30[0:31]||K30[47:0];
步骤S402:移位之后:
K30=K30[13:31]||K30[47:0]||K30[0:12];
步骤S403:过S盒之后:
K30=S0(K30[13:16])||S0(K30[17:20])||K30[21:31]||K30[47:0]||K30[0:12];
步骤S404:加轮常量之后:
K31=S0(K30[13:16])||S0(K30[17:20])||K30[21:31]||K30[47:34]||K30[33:29]⊕i||K30[28:0]||K30[0:12]。
步骤S405:K31是K31的左32位,移位之后:
K31=K30[26:31]||K30[47:34]||K30[33:29]⊕i||K30[28:0]||K30[0:12]||S0(K30[13:16])||S0(K30[17:20])||K30[21:25];
步骤S406:过S盒之后:
K31=S0(K30[26:29])||S0(K30[30:31]||K30[47:46])||K30[45:34]||K30[33:29]⊕i||K30[28:0]||K30[0:12]||S0(K30[13:16])||S0(K30[17:20])||K30[21:25];
步骤S407:加轮常量之后:
K32=S0(K30[26:29])||S0(K30[30:31]||K30[47:46])||K30[45:34]||K30[33:29]⊕i||K30[28:22]||K30[21:17]⊕i||K30[16:0]||K30[0:12]||S0(K30[13:16])||S0(K30[17:20])||K30[21:25]。
步骤S408:K32是K32左32位,可以看出K32已知32+13+4+4+5=58位,剩余22位未知;
可以通过穷举的方式获得初始密钥,即初始密钥搜索空间降至222
本发明通过分析ESF密码的算法结构,提出了一种差分故障攻击方法。此方法针对结构中按位进行运算的算法具有通用性。本发明攻击方法的主要思想是,在S盒运算前注入比特型错误故障,结合差分方程与S盒在不同故障条件下输出差分不均匀性,进而获取内部状态信息,最后分析得出初始密钥。
本发明针对密码算法ESF改进的差分故障攻击,其明密文对数量约为10个,时间复杂度为222,如图3的表所示,描述了其他针对ESF算法的攻击方法以供对比,其中列举了部分其他攻击方法,针对ESF算法的时间复杂度和数据复杂度。同时,也列举了同样使用差分故障攻击方法所需要的复杂度。通过表中数据的对比,可以发现,本方法相较于前三种方法,有故障注入操作这一技术要求,但是时间复杂度和数据复杂度相对来说降低不少,这得益于差分故障攻击自身的优势;相较于第四种同样的差分故障攻击,本发明攻击方法中,攻击者不需要有高要求的故障注入手段,例如,通过对比攻击条件,本发明不需要限定在一轮的某个位置、或者某一部分注入故障,而是可以在某一轮中随机注入故障,然后充分完整地分析其故障扩散的规律,找到此攻击方法。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (10)

1.一种针对ESF密码算法的差分故障攻击方法,其特征在于,步骤包括:
在S盒运算前注入比特型错误故障;
结合差分方程与S盒在不同故障条件下输出差分不均匀性,获取内部状态信息;
分析得出初始密钥。
2.根据权利要求1所述的针对ESF密码算法的差分故障攻击方法,其特征在于,根据ESF置换层结构的特点,选定最后三轮作为故障注入的位置,分析故障扩散的程度,结合差分表分析出最后3轮轮密钥。
3.根据权利要求2所述的针对ESF密码算法的差分故障攻击方法,其特征在于,在第30轮随机多次注入1bit故障,对故障扩散影响的密文数量进行概率分析,至少需6个故障密文得出最后一轮轮密钥。
4.根据权利要求2所述的针对ESF密码算法的差分故障攻击方法,其特征在于,在第29轮、28轮各随机注入2个bit的故障,结合最后一轮轮密钥分析出第30轮和第31轮轮密钥。
5.根据权利要求2-4中任意一项所述的针对ESF密码算法的差分故障攻击方法,其特征在于,恢复最后一轮轮密钥的步骤包括:
步骤S101:在第30轮轮函数运行前注入1bit随机故障到寄存器B30Nj中,其中1≤j≤8,获得故障密文D1;将正确密文C与错误密文D1进行异或,得到密文差分ΔD1;
步骤S102:通过查找表,由最后一轮S盒的输出差分列出相应S盒正确输入的候选值;
步骤S103:在第30轮轮函数运算前,多次注入1bit的随机故障,并重复步骤S101和步骤S102,不断缩小S盒正确输入的候选值的个数,直到剩下唯一一个;此时得到的就是S盒的正确输入值;
步骤S104:将正确S盒的输入值与正确密文的左边32bit异或,得到最后一轮轮密钥。
6.根据权利要求5所述的针对ESF密码算法的差分故障攻击方法,其特征在于,在步骤S101中,密文差分受上一轮输出的左边32bit的差分影响,通过直接观察最后一轮右边32bit密文差分,得到准确的进入逆运算的密文差分;密文差分经过逆P盒置换,得到最后一轮S盒的输出差分。
7.根据权利要求2-4中任意一项所述的针对ESF密码算法的差分故障攻击方法,其特征在于,恢复第31轮轮密钥的步骤包括:
步骤S201:结合最后一轮轮密钥和最后一轮输出,逆推得到第31轮正确输出;此时,在第29轮注入1bit的随机故障到寄存器B29Nj中,其中1≤j≤8,获得故障密文D2,结合最后一轮轮密钥,逆推得到第31轮故障输出;将第31轮的正确输出与故障输出异或,得到中间状态密文差分;
步骤S202:通过查找表,由第31轮S盒的输出差分列出相应S盒正确输入的候选值;
步骤S203:在第29轮轮函数运算前,多次注入1bit的随机故障,并重复步骤S201和步骤S202,不断缩小S盒正确输入的候选值的个数,直到剩下唯一一个;此时得到的就是S盒的正确输入值;
步骤S204:将正确S盒的输入值与正确密文的左边32bit异或,得到第31轮轮密钥。
8.根据权利要求7所述的针对ESF密码算法的差分故障攻击方法,其特征在于,在步骤S201中,密文差分受上一轮输出的左边32bit的差分影响,通过直接观察第31轮的输出的右边32bit密文差分,得到准确的进入逆运算的密文差分;密文差分经过逆P盒置换,得到第31轮S盒的输出差分。
9.根据权利要求2-4中任意一项所述的针对ESF密码算法的差分故障攻击方法,其特征在于,恢复第30轮轮密钥的步骤包括:
步骤S301:结合第31轮轮密钥和第31轮输出,逆推得到第30轮正确输出;此时,在第28轮注入1bit的随机故障到寄存器B28Nj中,其中1≤j≤8,获得故障密文D3,结合第31轮轮密钥,逆推得到第30轮故障输出;将第30轮的正确输出与故障输出异或,得到中间状态密文差分;
步骤S302:分析出第30轮轮密钥。
10.根据权利要求2-4中任意一项所述的针对ESF密码算法的差分故障攻击方法,其特征在于,分析得到初始密钥的过程包括:
步骤S401:根据密钥的扩展方案,K30是K30的左32位,K30=K30[0:31]||K30[47:0];
步骤S402:移位之后:
K30=K30[13:31]||K30[47:0]||K30[0:12];
步骤S403:过S盒之后:
K30=S0(K30[13:16])||S0(K30[17:20])||K30[21:31]||K30[47:0]||K30[0:12];
步骤S404:加轮常量之后:
Figure FDA0003545545670000031
步骤S405:K31是K31的左32位,移位之后:
Figure FDA0003545545670000032
步骤S406:过S盒之后:
Figure FDA0003545545670000033
步骤S407:加轮常量之后:
Figure FDA0003545545670000034
Figure FDA0003545545670000041
步骤S408:K32是K32左32位,看出K32已知32+13+4+4+5=58位,剩余22位未知;通过穷举的方式获得初始密钥。
CN202210247758.XA 2022-03-14 2022-03-14 一种针对esf密码算法的差分故障攻击方法 Pending CN116170128A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210247758.XA CN116170128A (zh) 2022-03-14 2022-03-14 一种针对esf密码算法的差分故障攻击方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210247758.XA CN116170128A (zh) 2022-03-14 2022-03-14 一种针对esf密码算法的差分故障攻击方法

Publications (1)

Publication Number Publication Date
CN116170128A true CN116170128A (zh) 2023-05-26

Family

ID=86415160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210247758.XA Pending CN116170128A (zh) 2022-03-14 2022-03-14 一种针对esf密码算法的差分故障攻击方法

Country Status (1)

Country Link
CN (1) CN116170128A (zh)

Similar Documents

Publication Publication Date Title
Zhang et al. A framework for the analysis and evaluation of algebraic fault attacks on lightweight block ciphers
Saha et al. RK‐AES: An Improved Version of AES Using a New Key Generation Process with Random Keys
Luo et al. General differential fault attack on PRESENT and GIFT cipher with nibble
CN112653546A (zh) 一种基于功耗分析的故障攻击检测方法
CN111224770B (zh) 一种基于门限技术的抗侧信道与故障攻击的综合防护方法
Salam et al. Random differential fault attacks on the lightweight authenticated encryption stream cipher grain-128AEAD
Joshi et al. SSFA: Subset fault analysis of ASCON-128 authenticated cipher
Liu et al. Fault attacks on authenticated encryption modes for GIFT
Achkoun et al. SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes
Zhang et al. Free fault leakages for deep exploitation: algebraic persistent fault analysis on lightweight block ciphers
Lu Cryptanalysis of block ciphers
Li et al. Differential fault analysis on Camellia
Luo et al. Differential fault analysis of SHA-3 under relaxed fault models
Qiu et al. A dual dynamic key chaotic encryption system for industrial cyber-physical systems
CN116170128A (zh) 一种针对esf密码算法的差分故障攻击方法
Hou et al. DNFA: Differential no-fault analysis of bit permutation based ciphers assisted by side-channel
Guo et al. Persistent fault analysis against SM4 implementations in libraries Crypto++ and GMSSL
Shah et al. A new guess-and-determine attack on the A5/1 stream cipher
Long et al. An improved differential fault analysis on block cipher klein-64
Li et al. Improved meet‐in‐the‐middle attacks on reduced‐round Joltik‐BC
Ghafoori et al. PNB based differential cryptanalysis of Salsa20 and Chacha
Yu et al. Automatic Search of Meet-in-the-Middle Differential Fault Analysis on AES-like Ciphers
Chang et al. Research on forgery attack on authentication encryption algorithm ACE
Jin et al. A lightweight nonlinear white-box sm4 implementation applied to edge iot agents
Ma et al. Differential fault analysis on 3DES middle rounds based on error propagation

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