高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

对TweAES的相关调柄多重不可能差分攻击

蒋梓龙 金晨辉

蒋梓龙, 金晨辉. 对TweAES的相关调柄多重不可能差分攻击[J]. 电子与信息学报, 2023, 45(1): 344-352. doi: 10.11999/JEIT211147
引用本文: 蒋梓龙, 金晨辉. 对TweAES的相关调柄多重不可能差分攻击[J]. 电子与信息学报, 2023, 45(1): 344-352. doi: 10.11999/JEIT211147
JIANG Zilong, JIN Chenhui. Related-Tweak Multiple Impossible Differential Attack for TweAES[J]. Journal of Electronics & Information Technology, 2023, 45(1): 344-352. doi: 10.11999/JEIT211147
Citation: JIANG Zilong, JIN Chenhui. Related-Tweak Multiple Impossible Differential Attack for TweAES[J]. Journal of Electronics & Information Technology, 2023, 45(1): 344-352. doi: 10.11999/JEIT211147

对TweAES的相关调柄多重不可能差分攻击

doi: 10.11999/JEIT211147
基金项目: 国家自然科学基金(61772547, 61902428, 61802438)
详细信息
    作者简介:

    蒋梓龙:男,博士生,研究方向为分组密码设计与分析

    金晨辉:男,教授,博士生导师,研究方向为密码学和信息安全

    通讯作者:

    蒋梓龙 dracipher@126.com

  • 中图分类号: TN918.1

Related-Tweak Multiple Impossible Differential Attack for TweAES

Funds: The National Natural Science Foundation of China (61772547, 61902428, 61802438)
  • 摘要: TweAES算法是在NIST轻量级密码标准竞赛中,进入到第2轮的认证加密候选算法。该文提出了对8轮TweAES算法的相关调柄多重不可能差分攻击。首先,利用两类不可能差分区分器,构造了两条攻击路径,每条攻击路径需要攻击16 Byte子密钥。值得注意的是,两条攻击路径有相同的明文结构和14 Byte的公共子密钥,攻击者可以利用同一个明文结构下的明文对,筛选两次错误子密钥,且因为有大量的公共子密钥,可以提高子密钥筛选的效率。此外,利用密钥生成算法的不完全性,有针对性地选择子密钥字节。利用子密钥之间的相关性,提高主密钥恢复效率,从而改进整体攻击方案的结果。与前人的分析结果相比较,该文对8轮TweAES的攻击方案在时间、数据、存储3项复杂度结果上均有所改进。
  • 在NIST轻量级密码标准竞赛中,TweAES算法[1]是进入到第2轮的认证加密候选算法。TweAES是类AES-128的可调分组密码,具体而言,是在AES-128算法[2]的基础上,可以额外选取4 bit主调柄,通过简单的线性运算将主调柄扩展为8 bit子调柄,将扩展的8 bit子调柄值与偶数轮输出进行异或加操作,即得到了TweAES算法。

    不可能差分攻击[3,4]是差分攻击的一种变体,之后Tsunoo等人[5]提出了多重不可能差分的思想,Boura等人[6,7]和Li等人[8,9]运用多重不可能差分攻击,对分组密码算法AES, CLEFIA[10], LBlock[11],Fox[12]等均得到很好的效果。经过了多年以来对AES-128的密码分析[13-18],大量的分析结果涌现而出,Leurent等人[19]在2021年的欧洲密码年会上,详细地分析了AES的密钥生成算法,揭示了子密钥扩散的不完全性。在这些攻击方案中,最好的攻击结果可以攻击到7轮的AES-128,不可能差分攻击也取得了很好的攻击结果。TweAES算法在AES-128的基础上,新引入了4 bit主调柄,所以其安全性更值得深入研究。

    TweAES算法设计报告[1]的第3.4.2小节,在选择调柄的条件下,设计者给出了TweAES算法对积分攻击、不可能差分攻击、截断差分攻击、中间相遇攻击的安全性分析。在这些攻击方案中,最有效的是不可能差分攻击,设计者构造了一个6轮的相关调柄不可能差分区分器,并给出了一个8轮的不可能差分攻击方案。Niu等人[20]利用自动求解器STP,搜索了更多高效TweAES算法的不可能差分区分器。此外,Niu等人还指出了TweAES算法设计报告中的8轮不可能差分攻击有瑕疵,其时间复杂度大于穷举攻击,所以不是一个有效攻击,并给出了对8轮TweAES算法的有效不可能差分攻击方案。

    为进一步研究TweAES算法抵抗不可能差分攻击的安全性,本文提出了对TweAES算法的相关调柄多重不可能差分攻击。首先,本文构造了两条都需要攻击16 Byte子密钥的攻击路径,他们有相同的明文结构与14 Byte公共子密钥。因相同的明文结构和大量的公共密钥,攻击者可以利用同一个明文结构下的明密对,筛选两次子密钥,提高了攻击方案对子密钥筛选的效率。此外,本文利用密钥生成算法的不完全性,有针对性地选择了子密钥位置,可以提高主密钥恢复阶段的效率,从而改进整体攻击方案。

    本文组织结构如下:第2节给出TweAES的算法描述和符号说明;第3节阐述6轮相关调柄的不可能差分区分器;第4节给出TweAES算法的8轮多重不可能差分攻击方案及复杂度分析;第5节总结全文。

    在本节,2.1节先简要描述了TweAES算法,2.2节对符号进行了说明。

    TweAES算法是基于AES-128的可调认证加密算法,属于SPN结构分组密码算法。其分组长度为128 bit,可看作一个16 Byte的4×4矩阵,主密钥长度设置为128 bit。由Byte替换SB、行移位变换SR、列混合变换MC、轮密钥加AK、调柄加AT这5种变换构成。其中前4种变换与AES-128完全一致,而调柄加变换每隔两轮注入一次调柄值,5种变换简述如下:

    (1)字节替换SB:由AES算法中的16个S盒并置而成,对128 bit输入进行非线性变换。

    (2)行移位变换SR:由行号值对每行循环左移,即第i行循环左移i Byte(i=0,1,2,3)。

    (3)列混合变换MC:由AES算法的左乘矩阵,对状态的每列进行乘法运算。

    (4)轮密钥加AK:每轮输入值与对应子密钥异或加,本文记k0为主密钥,其余子密钥是由AES-128的密钥扩展方案生成k1,k2,,k10共10个128 bit子密钥。

    (5)调柄加AT:4 bit主调柄为(t0,t1,t2,t3),然后通过简单的线性变换将其扩展为8 bit的子调柄,记t=t0t1t2t3,则扩展的8 bit调柄为

    (t0,t1,t2,t3)(t0,t1,t2,t3,tt0,tt1,tt2,tt3)

    记扩展的8 bit调柄为T=(t0,t1,t2,t3,t4,t5,t6,t7),将第i bit异或加到前两行第i Byte的最低比特位,字节位置如图1所示。子调柄加每隔两轮操作一次,即在第2, 4, 6, 8, 10轮注入扩展的8 bit子调柄。

    图 1  TweAES算法的轮函数图(偶数轮)

    关于TweAES算法的更多细节可以查阅文献[1]。

    若无特殊说明,本文使用表1所示符号约定。

    表 1  符号说明
    符号意义
    P明文
    C密文
    xI/SB/SR/MC/AK/ATi,(p,,r)i轮输入/字节替换/行移位变换/混合变换/轮密钥加/调柄加后的第(p,,r) Byte值
    Δxx的差分值
    ki,(p,,r)i轮子密钥ki的第(p,,r) Byte值
    airoundb差分ai轮加密后不能得到差分b
    下载: 导出CSV 
    | 显示表格

    本文运用的TweAES的6轮相关调柄不可能差分区分器与文献[1,20]相似,本文的攻击方案用到了8个区分器,具体的输入差分和输出差分如表2所示。在这里以第1个区分器为例,对其进行简要阐述,具体的区分器差分传递过程如图2所示。

    表 2  TweAES的8个6轮相关调柄不可能差分区分器
    类别序号区分器的输入差分(具体差分值)区分器的输入差分(截断差分值)
    1(a,a,0,0,0,0,0,0,0,0,0,0,a,a,0,0)(0,0,0,0,0,0,0,0,0,0,0,0,*,0,0,0)
    2(0,0,0,0,0,0,0,0,0,0,0,0,0,*,0,0)
    3(0,0,0,0,0,0,0,0,0,0,0,0,0,0,*,0)
    4(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,*)
    5(*,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
    6(0,*,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
    7(0,0,*,0,0,0,0,0,0,0,0,0,0,0,0,0)
    8(0,0,0,*,0,0,0,0,0,0,0,0,0,0,0,0)
    注:a为8 bit具体值0x01,*为8 bit任意非零值。主调柄差分值为(1001)。
    下载: 导出CSV 
    | 显示表格
    图 2  TweAES算法的6轮相关调柄不可能差分区分器

    本小节选取的主调柄4 bit差分值为(1,0,0,1),经过线性变换扩展的子调柄的8 bit差分值为(1,0,0,1,1,0,0,1)。注意,因为子调柄加操作是将1 bit值异或加至对应字节的最低比特位,所以子调柄差分非零字节对应的差分值均为0x01。以图2的不可能差分区分器为例,本文描述其性质如下:

    性质1 在选取的主调柄4 bit差分值为(1,0,0,1)的情况下,对分组密码算法TweAES,可得如下6轮的相关调柄不可能差分区分器:

    (α,α,0,0,0,0,0,0,0,0,0,0,α,α,0,0)6round(0,0,0,0,0,0,0,0,0,0,0,0,,0,0,0),

    其中,(α)的差分值为0x01,()为非零截断差分,输入差分的位置为ΔxAK2,输出差分的位置为ΔxSR8,差分传递过程如图2所示。

    证明 首先,主调柄4 bit差分值为(1,0,0,1),经过调柄扩展变换可得8 bit子调柄的差分值为(1,0,0,1,1,0,0,1),将其异或加至对应字节的最低比特位,可得调柄加操作下注入的子调柄差分值为(α,α,0,0,0,0,0,0,0,0,0,0,α,α,0,0)

    其次,区分器输入差分ΔxAK2在第(0,1,12,13) Byte位置上差分值为(α),其余字节位置上差分值为0。ΔxAK2与子调柄差分值异或加后,整体16 Byte差分值均为0。从第3轮开始,两轮加密的过程中差分值均为0,直到第4轮输出注入子调柄,使得ΔxAT4在第(0,1,12,13) Byte位置上差分值为0x01,其余字节位置上差分值为0。经过第5轮SB, SR变换后,可得差分ΔxSR5在第(0,9,12,13) Byte位置上差分值非零,经过列混合变换,可得差分ΔxMC5在第2列上差分值均为0。

    再次,区分器输出差分ΔxSR8在第12 Byte位置上差分值为非零,其余字节位置上差分值为0。经过第8轮SR1, SB1变换和第7轮脱密变换后,可得差分ΔxAT6在第(1,7,11,12) Byte位置上差分值为非零,其余字节位置上差分值为0。经过AT1变换后,ΔxMC6在第2, 3列中,分别只有第6 Byte,第11字节差分值非零,第2, 3列中的其余3 Byte差分为零。经过第6轮MC1, SR1, SB1变换后,可得差分ΔxMC5在第2列的第(4,7)Byte差分非零,这与之前差分ΔxMC5在第2列上差分值均为0矛盾,故构造出不可能差分区分器。

    综上

    (α,α,0,0,0,0,0,0,0,0,0,0,α,α,0,0)6 - round(0,0,0,0,0,0,0,0,0,0,0,0,,0,0,0)

    是算法TweAES的一个6轮的相关调柄不可能差分区分器。证毕

    其余的7个不可能差分区分器的证明,与上述证明类似。

    本节基于上述的两类6轮不可能差分区分器,提出8轮的多重不可能差分攻击方案。将上一节中,从第3轮到第8轮的6轮不可能差分区分器,分别往前和往后各扩展一轮,得到了第2轮到第9轮的8轮不可能差分攻击路径。用两类不可能差分区分器可以分别构造两条攻击路径,每条攻击路径需要攻击14 Byte子密钥,具体而言,第1条攻击路径需要攻击(k1,(0,1,5,6,10,11,12,15),k9,(0,7,9,10,12,13)),第2条攻击路径需要攻击(k1,(0,1,5,6,10,11,12,15),k9,(0,3,6,9,12,13))。值得注意的是,两条攻击路径有相同的明文结构,并且有12 Byte的公共子密钥(k1,(0,1,5,6,10,11,12,15),k9,(0,9,12,13))。第1条攻击路径如图3所示。

    图 3  TweAES算法的8轮相关调柄不可能差分攻击路径

    由文献[20]给出的8轮不可能差分攻击方案可知,时间复杂度最大的阶段在于数据处理阶段,即数据量过大,对明密文进行排序的时间远大于筛选错误子密钥的时间。针对这个情况,本文提出的改进可以降低所需要的数据量,从而可以降低整体攻击方案的时间复杂度,其降低数据量的思想如下:

    (1)因为两条攻击路径有相同的明文结构,则对一个明文结构中的明密文,可以用两条不同的攻击路径去筛选子密钥。相较于只用一条攻击路径,极大地提升了对错误子密钥的筛选效率,从而可以减少攻击方案数据量。

    (2)在每条攻击路径需要猜测14 Byte子密钥的情况下,有12 Byte的公共子密钥。在两条攻击路径筛选完毕后,得到候选子密钥(k1,(0,1,5,6,10,11,12,15),k9,(0,7,9,10,12,13))(k1,(0,1,5,6,10,11,12,15),k9,(0,3,6,9,12,13)),只有12 Byte公共子密钥(k1,(0,1,5,6,10,11,12,15),k9,(0,9,12,13))值相同时,才可以判定16 Byte子密钥(k1,(0,1,5,6,10,11,12,15),k9,(0,3,6,7,9,10,12,13))为候选密钥,此时错误密钥的通过率为2–96,可以再次提高对错误密钥的筛选效率,减少数据量。

    (3)利用密钥生成算法的不完全性,找到了子密钥间的关联,从而可以更高效地在主密钥恢复阶段筛选错误候选密钥。这样本文的攻击方案就可以在主密钥恢复阶段,筛选更多的错误密钥,从而可以减少一定的数据量。

    利用上述的改进,本文的攻击方案对3项复杂度均有所改进。

    本文攻击步骤包括:预处理阶段、数据处理阶段、子密钥筛选阶段和主密钥恢复阶段,一共4个部分。分别阐述如下:

    预处理阶段:

    Λ:对TweAES的S盒,在给定非零输入差Δin和非零输出差Δout时,方程S(x)S(xΔin)=Δout平均能求出一个解,构造表Λ,索引为(281)2个非零差分(Δin,Δout),每个(Δin,Δout)存储对应的一个输入值x

    H1:第2轮子调柄差分经MC1, SR1变换后,得到的一个具体差分值ΔxSB2,故这个差分值可以得到区分器的输入差分,将其存入表H1

    H2:由第1类区分器的4种截断式输出差分,经MC, AT变换后,得到的210个具体差分值ΔxAT8,故这210个差分值可以得到第1类区分器的输出差分,将这210个差分ΔxAT8存入表H2

    H3:由第2类区分器的4种截断式输出差分,经MC,AT变换后,得到的210个具体差分值ΔxAT8,故这210个差分值可以得到第3类区分器的输出差分,将这210个差分ΔxAT8存入表H3

    G1K:以8 Byte密钥k1,(0,1,5,6,10,11,12,15)为索引,构造264个表G1Ki,其中Ki为8 Byte密钥k1,(0,1,5,6,10,11,12,15)具体值。每个表G1Ki248 bit空间,以这248个对应子密钥k9,(0,7,9,10,12,13)具体值,初始化时这248个值全为0。这264个表G1Ki构成大表G1K,用来记录第1条攻击路径筛选出的错误密钥。

    G2K:以8 Byte密钥k1,(0,1,5,6,10,11,12,15)为索引,构造264个表G2Ki,其中Ki为8Byte密钥k1,(0,1,5,6,10,11,12,15)具体值。每个表G2Ki248 bit空间,以这248个对应子密钥k9,(0,3,6,9,12,13)具体值,初始化时这248个值全为0。这264个表G2Ki构成大表G2K,用来记录第2条攻击路径筛选出的错误密钥。

    注意,表Λ可以用来并行计算出S层的输入输出具体值。在子密钥筛选阶段,表H1, H2H3可以用来直接查表求解子密钥,将计算出的错误子密钥标记为1用表G1KG2K记录,故不用再反复进行加脱密计算,从而改进子密钥筛选阶段的时间复杂度。

    数据处理阶段:先选取两个主调柄记作T1, T2,且两个主调柄的差分值为(1,0,0,1)。在明文的(2, 3, 4, 7, 8, 9, 13, 14)这8 Byte位置取固定值,遍历其他8 Byte,可以得到264明文,将其称为一个明文结构。对每个明文结构下的264明文,用两个调柄T1, T2对这264个明文进行加密查询,分别可以得到两组264个密文。以两组密文的12 Byte (1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15)共24 Byte为指标,运用快速排序技术[20]对明文及对应的两组密文一同排序,将其存入表Ω中,再选取对应的有效明密对。

    第1条攻击路径的有效明密对:选取在密文的(1, 2, 3, 4, 5, 6, 8, 11, 14, 15)这10 Byte值相同的密文段,分别从两组密文中各取一个组成密文对,则保证了主调柄差分值为(1,0,0,1),且满足第1条攻击路径的明密对差分要求。在只使用一对主调柄的条件下,一个明文结构可以生成212880=248个有效明密对。

    第2条攻击路径的有效明密对:选取在密文的(1, 2, 4, 5, 7, 8, 10, 11, 14, 15)这10 Byte值相同的密文段,分别从两组密文中各取一个组成密文对,则保证了主调柄差分值为(1,0,0,1),且满足第2条攻击路径的明密对差分要求。在只使用一对主调柄的条件下,一个明文结构可以生成248个有效明密对。

    本文选取2n个明文结构,每条攻击路径可得2n+48对有效明密对。

    子密钥筛选阶段:对每个明文结构用4步筛选错误子密钥,将一个明文结构中的全部2n+48对有效明密对检测完毕后,再用下一个明文结构的有效明密文对检测,错误的子密钥记录在表G1KG2K中。第1~2步利用第1条攻击路径,排除部分的错误子密钥(k1,(0,1,5,6,10,11,12,15),k9,(0,7,9,10,12,13));第3~4步利用第2条攻击路径,排除部分错误的子密钥(k1,(0,1,5,6,10,11,12,15),k9,(0,3,6,9,12,13))。检测完全部的明密对后,由表G1KG2K中的候选密钥,在主密钥恢复阶段得到主密钥。子密钥筛选阶段的具体步骤如下:

    (1) 利用第1条攻击路径,求解k1,(0,1,5,6,10,11,12,15)。对于表Ω中符合第1条攻击路径的明密文对,以明文对差分为Δin,表H1中的差分为Δout,查表Λ可得xAK1,计算xAK1P可得密钥k1,(0,1,5,6,10,11,12,15),以密钥k1,(0,1,5,6,10,11,12,15)为索引查找表G1Ki

    (2) 对当前的明文对,求解k9,(0,7,9,10,12,13)。由当前明文对对应的密文对,对密文对进行SR1变换后,得到的差分为Δout,以表H2中的210个差分为Δin,查表Λ可得xSB9,计算SR(xSB9)C可得210个密钥k9,(0,7,9,10,12,13),判断其均为错误子密钥,将表G1k1,(0,1,5,6,10,11,12,15)中这210个错误子密钥k9,(0,7,9,10,12,13)对应的索引地址上的值改为1。

    (3) 利用第2条攻击路径,求解k1,(0,1,5,6,10,11,12,15)。对于表Ω中符合第2条攻击路径的明密文对,以明文对差分为Δin,表H1中的差分为Δout,查表Λ可得xAK1,计算xAK1P可得密钥k1,(0,1,5,6,10,11,12,15),以密钥k1,(0,1,5,6,10,11,12,15)为索引查找表G2Ki

    (4) 对当前的明文对,求解k9,(0,3,6,9,12,13)。由当前明文对对应的密文对,对密文对进行SR - 1变换后,得到的差分为Δout,以表H3中的210个差分为Δin,查表Λ可得xSB9,计算SR(xSB9)C可得210个密钥k9,(0,3,6,9,12,13),判断其均为错误子密钥,将表G2k1,(0,1,5,6,10,11,12,15)中这210个错误子密钥k9,(0,3,6,9,12,13)对应的索引地址上的值改为1。

    (5) 明文结构中的全部有效明密文对筛选完毕后,用下一个明文结构重复(1)至(4)步。若全部明文结构均已检测完毕,进入主密钥恢复阶段。

    主密钥恢复阶段:现有两个候选子密钥表G1KG2K,其中索引地址上值为0的为候选子密钥,值为1的为错误子密钥,设每个表中有Nk个候选密钥。只有12 Byte公共子密钥值相同时,才可以判定16 Byte(k1,(0,1,5,6,10,11,12,15),k9,(0,3,6,7,9,10,12,13))子密钥为候选密钥,故16 Byte候选密钥有(Nk)2×296个。

    文献[18,19]研究了AES的密钥生成算法,本文利用子密钥扩散的不完全性,提高主密钥恢复的效率。如表3所示,第9轮子密钥后12 Byte,只与第1轮部分子密钥字节相关。故本文先穷举部分第1轮子密钥字节,对比验证排除部分错误候选密钥后,再穷举第1轮其余部分子密钥字节,直至得到全部的第1轮子密钥。如果还未唯一确定正确密钥,再用加密验证排除剩余的错误密钥,直至得到正确密钥。现在已知第1轮子密钥k1,(0,1,5,6,10,11,12,15)与第9轮子密钥k9,(0,3,6,7,9,10,12,13)。主密钥恢复阶段的具体步骤如下:

    表 3  AES-128中第9轮子密钥后12 Byte与第1轮子密钥关联
    密钥字节关联字节密钥字节关联字节密钥字节关联字节
    4A16\{0,2,8,10}8A16\{0,1,4}12A16\{0,1,2,4,5,8,10}
    5A16\{1,3,9,11}9A16\{1,2,5}13A16\{1,2,3,5,6,9,11}
    6A16\{0,2,8,10}10A16\{2,3,6}14A16\{0,2,3,6,7,8,10}
    7A16\{1,3,9,11}11A16\{0,3,7}15A16\{0,1,3,4,7,9,11}
    注:密钥字节为第9轮子密钥字节位置,A16代表全部16 Byte,关联字节指与第1轮子密钥字节的关联:如k9,(4)与4 Byte子密钥k1,(0,2,8,10)无关,只需要知道子密钥k1其余的12 Byte,即可由AES-128的密钥生成算法得到。
    下载: 导出CSV 
    | 显示表格

    (1) 穷举第1轮子密钥中的5 Byte k1,(3,7,9,13,14),此时第1轮子密钥只有3 Byte k1,(2,4,8)未知,由表3k9,(12)k1,(2,4,8)无关,则可以由第1轮子密钥计算密钥k9,(12)的值,若与候选密钥k9,(12)的值不相符,则判定其为错误密钥排除。检测完还有(Nk)2×296×240×28=(Nk)2×264个候选密钥。

    (2) 穷举第1轮子密钥中的1 Byte k1,(4),此时第1轮子密钥只有2 Byte k1,(2,8)未知,由表3k9,(6)k1,(2,8)无关,则可以由第1轮子密钥计算密钥k9,(6)的值,若与候选密钥k9,(6)的值不相符,则判定其为错误密钥排除。检测完还有(Nk)2×264×28×28=(Nk)2×264个候选密钥。

    (3) 穷举第1轮子密钥中的1 Byte k1,(8),此时第1轮子密钥只有1 Byte k1,(2)未知,由表3k9,(9,10,13)k1,(2)无关,则可以由第1轮子密钥计算密钥k9,(9,10,13)的值,若与候选密钥k9,(9,10,13)的值不相符,则判定其为错误密钥排除。检测完还有(Nk)2×264×28×224=(Nk)2×280个候选密钥。

    (4) 穷举第1轮子密钥中的1 Byte k1,(2),此时得到了全部16 Byte第1轮子密钥,可以由第1轮子密钥计算密钥k9,(0,4,7)的值,若与候选密钥k9,(0,4,7)的值不相符,则判定其为错误密钥排除。检测完还有(Nk)2×296个候选密钥。若此时仍有多个候选密钥,则通过加密验证排除剩余的错误密钥,直至得到正确密钥。

    记本文选取2n个明文结构,则攻击方案所需要的数据复杂度是2n+64个选择明文。在一条攻击路径下,一个错误子密钥通过一个有效明密文对的概率是p=2102,则经过2n+48个有效明密文对检测后,候选密钥量个数Nk=(21121)×(1p)2n+48。各个阶段的复杂度分析如下所示。

    预处理阶段:时间复杂度可忽略不计,存储复杂度主要是构造表G1KG2K所需的存储空间,一共所需的存储复杂度为2×264×248=2113 bit。

    数据处理阶段:主要为排序算法所需的时间,故数据处理阶段的时间复杂度为Td=2n×264log2(264)=2n+70。为降低存储复杂性,本文先用一个明文结构里的全部有效明密对,作用于两条攻击路径,排除错误子密钥。然后释放存储空间,再存储下一个明文结构的明密文,故明密文所需的存储复杂度为264×160 bit。

    子密钥筛选阶段:第1步所需的时间复杂度为2n+48次查表,第2步所需的时间复杂度为2n+48×210=2n+58次查表;第3步所需的时间复杂度为2n+48次查表,第4步所需的时间复杂度为2n+48×210=2n+58次查表,故子密钥筛选阶段的时间复杂度为Tsk=2n+59次查表。

    本文的攻击方案,是以一个有效明密文对检测出错误密钥后,将其记录在对应表G1KG2K上,然后释放明密文空间,存储下一个明文结构中的数据,故明密文所需的存储复杂度为264×160,主要的存储复杂度仍是构造表G1KG2K,具体为2×264×248=2113bit。

    主密钥恢复阶段:由AES-128的密钥生成算法,由k1计算出k9需要8次查表。故第1步所需的时间复杂度为(Nk)2×296×240×23=(Nk)2×253次查表,第2步所需的时间复杂度为(Nk)2×264×28×23=(Nk)2×253次查表;第3步所需的时间复杂度为(Nk)2×264×28×23=(Nk)2×253次查表,第4步所需的时间复杂度为(Nk)2×280×28×23=(Nk)2×269次查表,若最后仍有候选密钥需加密验证,则需要(Nk)2×296次8轮AES加密验证。由文献知,一轮AES加密约为20次查表。主密钥恢复阶段所需的时间复杂度为4步所需时间总和,故主密钥恢复阶段时间复杂度为Tmk=3×(Nk)2×253+20×(Nk)2×296次查表。存储复杂度最大的在第2步,需要(Nk)2×264×(22×8)=(Nk)2×256.54bit。

    综上,本文攻击方案的数据复杂度为2n+64;存储复杂度为2113bit;时间复杂度为Ttotal=Td+Tsk+Tmk。本文取n=58.10,可得Td=2128.10次查表,Tsk=2117.10次查表,Nk=287.26Tmk=2123.10次查表,则Ttotal=Td+Tsk+Tmk=2128.14次查表。故本文攻击方案所需的数据复杂度为2122.10个选择明文,存储复杂度为2113 bit,时间复杂度为2128.14/(20×8)2120.82次8轮AES加密。本文的攻击方案改进了时间、数据、存储3项复杂度,表4给出了与TweAES算法相关的攻击结果。

    表 4  TweAES的攻击结果
    分析方法轮数时间复杂度数据复杂度存储复杂度调柄个数参考文献
    截断差分522625 CP228.582[1]
    积分攻击624525 KP24[1]
    不可能差分621192119 CP278.172[1]
    不可能差分72100299 CP2702[20]
    不可能差分*821272127 CP29624[1]
    不可能差分82124.362124.28 CP2118.812[20]
    不可能差分82120.822122.10 CP21132本文
    CP:选择明文  KP:已知明文  –:复杂度较小忽略不计
    *:由文献[20]修正后,时间复杂度超出穷举攻击,本表列出的为文献[1]中所声称的复杂度。
    下载: 导出CSV 
    | 显示表格

    本文提出了对8轮TweAES算法相关调柄的多重不可能差分攻击。首先,本文利用两类不可能差分区分器,构造了两条攻击路径,每条攻击路径需要攻击16 Byte子密钥。值得注意的是,两条攻击路径有相同的明文结构和14 Byte的公共子密钥,攻击者可以利用同一个明文结构下的有效明密文对,筛选两次子密钥,且因为有大量的公共子密钥,可以提高攻击方案对子密钥筛选的效率。其次,本文利用密钥生成算法的不完全性,有针对性地设置子密钥字节位置,利用子密钥之间的相关性,提高主密钥恢复效率,从而改进整体攻击方案的结果。本文的攻击方案在时间、数据、存储3项复杂度结果上均有所改进,所需的数据复杂复杂为2122.10个选择明文,时间复杂度为2120.82次8轮AES加密,存储复杂度为2113 bit。

  • 图  1  TweAES算法的轮函数图(偶数轮)

    图  2  TweAES算法的6轮相关调柄不可能差分区分器

    图  3  TweAES算法的8轮相关调柄不可能差分攻击路径

    表  1  符号说明

    符号意义
    P明文
    C密文
    xI/SB/SR/MC/AK/ATi,(p,,r)i轮输入/字节替换/行移位变换/混合变换/轮密钥加/调柄加后的第(p,,r) Byte值
    Δxx的差分值
    ki,(p,,r)i轮子密钥ki的第(p,,r) Byte值
    airoundb差分ai轮加密后不能得到差分b
    下载: 导出CSV

    表  2  TweAES的8个6轮相关调柄不可能差分区分器

    类别序号区分器的输入差分(具体差分值)区分器的输入差分(截断差分值)
    1(a,a,0,0,0,0,0,0,0,0,0,0,a,a,0,0)(0,0,0,0,0,0,0,0,0,0,0,0,*,0,0,0)
    2(0,0,0,0,0,0,0,0,0,0,0,0,0,*,0,0)
    3(0,0,0,0,0,0,0,0,0,0,0,0,0,0,*,0)
    4(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,*)
    5(*,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
    6(0,*,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
    7(0,0,*,0,0,0,0,0,0,0,0,0,0,0,0,0)
    8(0,0,0,*,0,0,0,0,0,0,0,0,0,0,0,0)
    注:a为8 bit具体值0x01,*为8 bit任意非零值。主调柄差分值为(1001)。
    下载: 导出CSV

    表  3  AES-128中第9轮子密钥后12 Byte与第1轮子密钥关联

    密钥字节关联字节密钥字节关联字节密钥字节关联字节
    4A16\{0,2,8,10}8A16\{0,1,4}12A16\{0,1,2,4,5,8,10}
    5A16\{1,3,9,11}9A16\{1,2,5}13A16\{1,2,3,5,6,9,11}
    6A16\{0,2,8,10}10A16\{2,3,6}14A16\{0,2,3,6,7,8,10}
    7A16\{1,3,9,11}11A16\{0,3,7}15A16\{0,1,3,4,7,9,11}
    注:密钥字节为第9轮子密钥字节位置,A16代表全部16 Byte,关联字节指与第1轮子密钥字节的关联:如k9,(4)与4 Byte子密钥k1,(0,2,8,10)无关,只需要知道子密钥k1其余的12 Byte,即可由AES-128的密钥生成算法得到。
    下载: 导出CSV

    表  4  TweAES的攻击结果

    分析方法轮数时间复杂度数据复杂度存储复杂度调柄个数参考文献
    截断差分522625 CP228.582[1]
    积分攻击624525 KP24[1]
    不可能差分621192119 CP278.172[1]
    不可能差分72100299 CP2702[20]
    不可能差分*821272127 CP29624[1]
    不可能差分82124.362124.28 CP2118.812[20]
    不可能差分82120.822122.10 CP21132本文
    CP:选择明文  KP:已知明文  –:复杂度较小忽略不计
    *:由文献[20]修正后,时间复杂度超出穷举攻击,本表列出的为文献[1]中所声称的复杂度。
    下载: 导出CSV
  • [1] CHAKRABORTI A, DATTA N, JHA A, et al. ESTATE: A lightweight and low energy authenticated encryption mode[J]. IACR Transactions on Symmetric Cryptology, 2020, 2020(S1): 350–389. doi: 10.13154/tosc.v2020.iS1.350-389
    [2] DWORKIN M J, BARKER E B, NECHVATAL J R, et al. Advanced encryption standard (AES)[EB/OL]. https: //doi. org/https://doi.org/10.6028/NIST.FIPS.197, 2001.
    [3] BIHAM E, BIRYUKOV A, and SHAMIR A. Cryptanalysis of Skipjack reduced to 31 rounds using impossible differentials[C]. Proceedings of International Conference on the Theory and Applications of Cryptographic Techniques, Czech Republic, 1999: 12-23.
    [4] AOKI K, ICHIKAWA T, KANDA M, et al. Camellia: A 128-bit block cipher suitable for multiple platforms — design andanalysis[C]. Proceedings of the 7th Annual International Workshop on Selected Areas in Cryptography, Ontario, Canada, 2000: 39-56.
    [5] TSUNOO Y, TSUJIHARA E, SHIGERI M, et al. Cryptanalysis of CLEFIA using multiple impossible differentials[C]. Proceedings of 2008 International Symposium on Information Theory and Its Applications, Auckland, New Zealand, 2008: 1-6.
    [6] BOURA C, NAYA-PLASENCIA M, and SUDER V. Scrutinizing and improving impossible differential attacks: Applications to CLEFIA, Camellia, LBlock and Simon[C]. Proceedings of the 20th International Conference on the Theory and Application of Cryptology and Information Security, Kaoshiung, China, 2014: 179-199.
    [7] BOURA C, LALLEMAND V, NAYA-PLASENCIA M, et al. Making the impossible possible[J]. Journal of Cryptology, 2018, 31(1): 101–133. doi: 10.1007/s00145-016-9251-7
    [8] LI Xinran, JIN Chenhui, and FU Fangwei. Improved results of impossible differential cryptanalysis on reduced FOX[J]. The Computer Journal, 2016, 59(4): 541–548. doi: 10.1093/comjnl/bxv073
    [9] LI Xinran, FU Fangwei, and GUANG Xuan. Multiple impossible differential cryptanalysis on reduced FOX[J]. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2015, 98(3): 906–911. doi: 10.1587/transfun.E98.A.906
    [10] SHIRAI T, SHIBUTANI K, AKISHITA T, et al. The 128-bit blockcipher CLEFIA (extended abstract)[C]. Proceedings of the 14th International Workshop on Fast Software Encryption, Luxembourg, 2007: 181-195.
    [11] WU Wenling and ZHANG Lei. LBlock: A lightweight block cipher[C]. Proceedings of the 9th International Conference on Applied Cryptography and Network Security, Nerja, Spain, 2011: 327-344.
    [12] JUNOD P and VAUDENAY S. FOX: A new family of block ciphers[C]. Proceedings of the 11th International Workshop on Selected Areas in Cryptography, Waterloo, Canada, 2004: 114-129.
    [13] BONNETAIN X, NAYA-PLASENCIA M, and SCHROTTENLOHER A. Quantum security analysis of AES[J]. IACR Transactions on Symmetric Cryptology, 2019, 2019(2): 55–93. doi: 10.13154/tosc.v2019.i2.55-93
    [14] GILBERT H. A simplified representation of AES[C]. Proceedings of the 20th International Conference on the Theory and Application of Cryptology and Information Security, Kaoshiung, China, 2014: 200-222.
    [15] MALA H, DAKHILALIAN M, RIJMEN V, et al. Improved impossible differential cryptanalysis of 7-round AES-128[C]. Proceedings of the 11th International Conference on Cryptology in India, Hyderabad, India, 2010: 282-291.
    [16] SUN Siwei, GERAULT D, LAFOURCADE P, et al. Analysis of AES, SKINNY, and others with constraint programming[J]. IACR Transactions on Symmetric Cryptology, 2017, 2017(1): 281–306. doi: 10.13154/tosc.v2017.i1.281-306
    [17] CUI Ting, JIN Chenhui, ZHANG Bin, et al. Searching all truncated impossible differentials in SPN[J]. IET Information Security, 2017, 11(2): 89–96. doi: 10.1049/iet-ifs.2015.0052
    [18] 张海青. AES型密钥编排方案扩散不完全性的研究及应用[D]. [硕士论文], 战略支援部队信息工程大学, 2019.

    ZHANG Haiqing. Research and application of incomplete diffusion of AES-like key schedule[D]. [Master dissertation], Information Engineering University, 2019.
    [19] LEURENT G and PERNOT C. New representations of the AES key schedule[C]. Proceedings of the 40th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Zagreb, Croatia, 2021: 54-84.
    [20] NIU Chao, LI Muzhou, WANG Meiqin, et al. Related-tweak impossible differential cryptanalysis of reduced-round TweAES[C]. Proceedings of the 28th International Conference on Selected Areas in Cryptography, Cham, Switzerland, 2021: 223-245.
  • 加载中
图(3) / 表(4)
计量
  • 文章访问数:  534
  • HTML全文浏览量:  229
  • PDF下载量:  64
  • 被引次数: 0
出版历程
  • 收稿日期:  2021-10-21
  • 修回日期:  2022-03-21
  • 网络出版日期:  2022-04-15
  • 刊出日期:  2023-01-17

目录

/

返回文章
返回