Loading [MathJax]/jax/output/HTML-CSS/jax.js
高级搜索

留言板

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

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

基于混合整数线性规划的MORUS初始化阶段的差分分析

刘帅 关杰 胡斌 马宿东

刘帅, 关杰, 胡斌, 马宿东. 基于混合整数线性规划的MORUS初始化阶段的差分分析[J]. 电子与信息学报, 2023, 45(7): 2537-2545. doi: 10.11999/JEIT220735
引用本文: 刘帅, 关杰, 胡斌, 马宿东. 基于混合整数线性规划的MORUS初始化阶段的差分分析[J]. 电子与信息学报, 2023, 45(7): 2537-2545. doi: 10.11999/JEIT220735
LIU Shuai, GUAN Jie, HU Bin, MA Sudong. Differential Analysis of the Initialization of MORUS Based on Mixed-Integer Linear Programming[J]. Journal of Electronics & Information Technology, 2023, 45(7): 2537-2545. doi: 10.11999/JEIT220735
Citation: LIU Shuai, GUAN Jie, HU Bin, MA Sudong. Differential Analysis of the Initialization of MORUS Based on Mixed-Integer Linear Programming[J]. Journal of Electronics & Information Technology, 2023, 45(7): 2537-2545. doi: 10.11999/JEIT220735

基于混合整数线性规划的MORUS初始化阶段的差分分析

doi: 10.11999/JEIT220735
基金项目: 国家自然科学基金(61802437, 62102448)
详细信息
    作者简介:

    刘帅:男,博士生,研究方向为对称密码的设计与分析

    关杰:女,教授,研究方向为密码设计与分析

    胡斌:男,教授,研究方向为密码学与信息安全

    马宿东:男,博士生,研究方向为对称密码的设计与分析

    通讯作者:

    刘帅 sssshuai1993@163.com

  • 中图分类号: TN918.1

Differential Analysis of the Initialization of MORUS Based on Mixed-Integer Linear Programming

Funds: The National Natural Science Foundation of China (61802437, 62102448)
  • 摘要: 认证加密算法 MORUS是凯撒 (CAESAR)竞赛的优胜算法,抗差分分析性能是衡量认证加密算法安全性的重要指标之一。该文研究了MORUS算法初始化阶段的差分性质,首先给出了一个差分推导规则,可以快速获得一条概率较大的差分链。在此基础上利用混合整数线性规划(MILP)自动搜索技术求解更优的差分链。为了提高搜索速度,结合MORUS初始化阶段的结构特点给出了分而治之策略。根据ΔIV的重量、取值将MILP模型划分为多个子模型并证明了部分子模型的等价性,大大缩减了模型的求解时间,得到了MORUS初始化阶段1~6步状态更新的最优差分链。最后给出了简化版MORUS的差分-区分攻击,该文的结果较之前的工作有较大的提升。
  • 认证加密算法广泛应用于各类安全系统中[1],是一类兼具消息认证与数据加密功能的密码算法。认证加密算法一般包括加密算法E与解密算法D。加密算法输入密钥K、NonceN、相关数据A、明文M,输出密文C、认证码T

    (C,T)=E(K,N,A,M) (1)

    解密算法D输入密钥K、NonceN、相关数据A、密文C、认证码T,认证通过时输出明文M,否则输出

    D(K,N,A,C,T){M,} (2)

    2014年,国际密码研究协会发起凯撒(Competition on Authenticated Encryption: Security, Apllicability, and Robustness, CAESAR)竞赛[2],面向全球密码工作者征集认证加密算法,最终于2018年公布了7个优胜算法,包括MORUS, ACORN, AEGIS, Ascon, COLM, Deoxys, OCB。2018年,美国国家标准与技术研究院(National Institute of Standards and Technology, NIST)发起征集兼具认证与加密功能的轻量级密码算法的进程[3],并于2021年公布了10个优胜算法。随着各种新型认证加密算法的提出,其安全性研究成为当前的热点问题[4-7]

    以往的安全分析往往依赖手工推导,1994年,Matsui[8]提出了分支定界搜索算法来搜索最优差分链,这是一种强有力的分析工具,拉开了自动化分析密码算法安全性的序幕[9-12]。2014年,Sun等人[13]建立混合整数线性规划(Mixed-Integer Linear Programming, MILP)模型刻画密码算法的差分性质,并利用Gurobi求解器求解MILP模型,以此来搜索最优差分链。为了提高MILP模型的求解速度,Zhou等人[14]针对沙盒置换网络(Sbox Permutation Net, SPN)结构的分组密码算法提出了分而治之策略,有效地提高了差分\线性链的搜索效率。

    作为CAESAR竞赛的优胜算法之一,认证加密算法MORUS由Wu等人[15]设计提出,遵循了流密码算法的设计思路,根据参数设置分为3个版本MORUS-640-128,MORUS-1280-128,MORUS-1280-256。自提出以来,MORUS的安全性分析得到了广泛的研究,张沛等人[16]从完全性和差分扩散性两个角度对MORUS-640的初始化阶段进行了研究,给出了MORUS初始化阶段的差分推导规则,并对简化版MORUS进行了差分-区分攻击,施泰荣等人[17]结合中间相遇思想研究了MORUS算法在故障模型中的差分性质。

    现有工作对MORUS算法的差分分析仍有较大改进空间,本文主要基于MILP自动搜索技术研究了MORUS算法初始化阶段的差分性质。首先给出一个改进的差分推导规则,相较张沛等人[16]的工作,在初始化阶段步数较大时可以找到更好的差分链。进而,给出了刻画MORUS初始化阶段差分性质的MILP模型,当初始化阶段步数较大时,MILP模型无法在有限时间内求解,本文针对MORUS初始化阶段的结构特点给出了分而治之策略,根据ΔIV的重量及取值,将MILP模型划分为多个子模型,并证明了其中大部分模型具有等价性,不需要对这一部分子模型进行求解,从而得到了初始化阶段1~6步状态更新的最优差分链。最后,根据得到的差分链给出了MORUS的差分-区分攻击。之前的工作[16,17]只分析了MORUS-640的差分性质,本文对MORUS的所有版本均给出了差分分析结果,且较之前的结果有较大提升。

    MORUS算法[15]包括3种参数设置:MORUS-640-128, MORUS-1280-128, MORUS-1280-256,表1给出了MORUS的具体参数设置。

    表 1  MORUS的参数设置(bit)
    参数MORUS-640-128MORUS-1280-128MORUS-1280-256
    密钥长度128128256
    IV长度128128128
    状态大小64012801280
    认证码长度128128128
    下载: 导出CSV 
    | 显示表格

    下文用MORUS-640指代MORUS-640-128,用MORUS-1280指代MORUS-1280-128与MORUS-1280-256。在具体介绍MORUS算法之前,先给出符号说明如表2所示。

    表 2  符号说明
    符号说明
    逐比特异或;
    &逐比特与;
    <<<循环左移;
    0ll bit 0;
    1ll bit 1;
    const000||01||01||02||03||05||08||0d||15||22||37||59||90||e9||79||62
    const1db||3d||18||55||6d||c2||2f||f1||20||11||31||42||73||b5||28||dd
    Sii步输入状态;
    Si,ji步第j轮输入状态;
    Si,jkSi,jk个bit块,对于MORUS-640,每个状态包含5个128 bit块,对于MORUS-1280,每个状态包含5个256 bit块;
    Si,jk,lSi,jk的第l bit。
    下载: 导出CSV 
    | 显示表格

    对于xbit(x=128,256)X=X1||X2||X3||X4,其中Xiybit(y=32,64)字,Rot\_x\_y(X,b)=(X1<<<b)||(X2<<<b)||(X3<<<b)||(X4<<<b)。MORUS的状态更新函数为Si+1=StateUpdate(Si,mi),状态更新函数包括5轮子函数,图1给出了其具体结构。

    图 1  MORUS的状态更新函数

    表3给出了状态更新函数中bi,wi(i=0,1,2,3,4)的取值。

    表 3  循环常数
    MORUS-640MORUS-1280MORUS-640MORUS-1280
    b0513w03264
    b13146w164128
    b2738w296192
    b3227w364128
    b4134w43264
    下载: 导出CSV 
    | 显示表格

    完整的MORUS加密算法包括4个阶段:初始化阶段、相关数据处理阶段、明文处理阶段、认证码生成阶段,下面给出MORUS-5n算法n=128,256的具体描述:

    (1) 初始化阶段。装填密钥KIV得到初始状态S0,对于MORUS-640,令

    S0,00=IV,S0,01=K,S0,02=1128,S0,03=const0,S0,04=const1 (3)

    完成KIV的装填后,初始化状态经过16步状态更新函数

    Si+1=StateUpdate(Si,0), i=0,1,,15 (4)

    最后进行密钥加

    S16,01=S16,01K (5)

    (2) 相关数据处理阶段。相关数据AD被分割成un bit块ADAD0||AD1||||ADu1,并参与接下来的状态更新

    S17+i=StateUpdate(S16+i,ADi), i=0,1,,u1 (6)

    (3) 明文处理阶段。明文P被分割成vn bit块PP0||P1||||Pv1,进行加密与状态更新:对于 i=0,1,,v1

    Ci=PiS16+u+i,0(S16+u+i,1<<<w2)(S16+u+i,2&S16+u+i,3) (7)
    S17+u+i=StateUpdate(S16+u+i,Pi)  (8)

    (4) 认证码生成阶段。令L1,L2分别为相关数据长度|AD|与明文长度|P|的64 bit二进制表示,令tmp=L1||L2||0n128S16+u+v,4=S16+u+v,4S16+u+v,0,继续进行状态更新

    S17+u+v+i=StateUpdate(S16+u+v+i,tmp), i=0,1,,9 (9)

    产生认证码

    T=S26+u+v,0(S26+u+v,1<<<w2)(S26+u+v,2&S26+u+v,3) (10)

    本节针对MORUS算法初始化阶段给出差分推导规则,意在寻找概率较高的差分链。MORUS算法中唯一的非线性操作是逐比特与运算,对于与运算y=x1&x2,假设输入变量差分为Δx1,Δx2,则输出差为

    Δy=(x1&x2)(x1Δx1)&(x2Δx2)=x1Δx2x2Δx1Δx1Δx2 (11)

    根据输入差分的不同,划分为以下4种情况:

    (1) Δx1=0, Δx2=0,则Δy=0

    (2) Δx1=0, Δx2=1,则Δy=x1

    (3) Δx1=1, Δx2=0,则Δy=x2

    (4) Δx1=1, Δx2=1,则Δy=x1x21

    从情况(2)—情况(4)中可以看到Δy的取值是与输入变量的值有关的,当输入变量的值已知时,Δy的值以概率1确定,当输入变量的值未知时,Δy以概率1/122取0,以概率1/122取1(事实上,MORUS初始化阶段仅第1步中的部分内部状态是已知的)。据此,本文将以上情况分为两类:

    A:Δy以概率1取定值;

    B:Δy以概率1/122取0,以概率1/122取1。

    对于MORUS状态更新函数中的任意内部状态差分ΔSi,jk,本文称ΔSi,jk中bit 1的数量为该内部状态差分的重量,记为|ΔSi,jk|。直观地,在差分推导过程中,为了提高差分链的概率,希望内部状态差分的重量尽可能小。为了方便描述本文暂时忽略所有移位操作,这对分析不会产生任何实质影响。

    首先看第i步状态更新函数中第1轮的与门Yi,0l=Si,00,lSi,01,l&Si,02,lSi,03,l,为了研究其输出差分ΔYi,0l的取值将会产生的影响,观察Yi,0l直接参与的所有运算:1个异或Yi,0lSi,22,lSi,23,l&Si,24,l,2个与门Yi,0l&Si,34,l, Yi,0l&Si,41,l。如果ΔSi,22,l=1, ΔSi,23,l=ΔSi,24,l=0,令ΔYi,0l=1可以降低ΔSi,32,l的重量,这个非0差分产生了“好的影响”。当ΔSi,34,l=0或者ΔSi,41,l=0时,ΔYi,0l=1使得上面两个与门变成了活跃的,但当ΔSi,34,l=ΔSi,41,l=1时,这两个与门必然是活跃的,则ΔYi,0l=1对这两个与门的活跃性不会产生实质性影响。综上当ΔSi,22,l=ΔSi,34,l=ΔSi,41,l=1, ΔSi,23,l=ΔSi,24,l=0时,ΔYi,0l=1将会产生“好的影响”,由此给出了如下差分推导规则:

    (1) 当与门属于A类情况时,ΔYi,0l可以唯一确定;

    (2) 当与门属于B类情况时,如果满足条件:ΔSi,22,l=ΔSi,34,l=ΔSi,41,l=1ΔSi,23,l=ΔSi,24,l=0,则令ΔYi,0l=1,否则令ΔYi,0l=0

    对于第i步状态更新函数中其他轮的与门同样如此,由此得到了状态更新函数完整的差分推导规则。本文需要确定初始状态的差分便可以进行差分推导,MORUS的初始化阶段的初始状态中S0,02, S0,03, S0,04是已知常数,差分固定为0,S0,01是密钥,在实际攻击中无法控制但可以进行多次加密,差分同样固定为0。S0,00只与IV有关,由于IV是已知的,可以选择ΔIV的值,根据经验ΔIV的重量为1时,更有可能得到好的差分链,此时ΔS0,00的值有128种可能。来看第1步状态更新函数第4轮的与门S0,30,l&S0,34,l,其中ΔS0,30,l=ΔS0,00,lS0,34,l的值是已知的,当ΔS0,30,l=ΔS0,00,l=1时,如果S0,34,l=1, Δ(S0,30,l&S0,34,l)=1,产生了一个非0差分,如果S0,34,l=0, Δ(S0,30,l&S0,34,l)=0,这表明了ΔS0,00中1的位置对差分传递是有影响的,据此给出了ΔS0,00的候选集合。令Δ(l)(l{0,1,,127})表示一个128 bit块,其第l bit为1,其余bit为0。

    对于MORUS-640,ΔS0,00的候选集合为

    {Δ(l)|l{0,1,,127}:S0,34,l=0} (12)

    对于MORUS-1280,ΔS0,00的候选集合为

    {Δ(l)||0128|l{0,1,,127}:S0,34,l=0} (13)

    加入移位操作,上面的分析仍然可行,在实际攻击中,把所有操作都考虑在内。表3给出了利用该差分推导规则得到的较高的差分转移概率。

    本文将表4与现有最好的结果进行对比,文献[16]中给出了MORUS-640状态更新步数为5,6,7时的差分转移概率分别为2228, 2301, 2455,当步数为5,7时,找到了概率更高的差分链,步数为6时,差分转移概率相同。另外,文献[16]中并未给出MORUS-1280的结果。

    表 4  MORUS初始化阶段差分转移概率
    状态更新步数1234567
    MORUS-6402128229282218023012453
    MORUS-12802128229286220123992681
    下载: 导出CSV 
    | 显示表格

    第3节的差分推导规则只能保证找到的差分链中活跃与门数量尽可能少,采用的是局部最优的思想。本节给出了MORUS的MILP差分自动搜索方法,以第3节的结果为基础,利用分而治之思想,搜索全局最优的差分链。MORUS的状态更新函数包括5轮子函数,本节将状态更新以轮为单位,例如,进行16轮状态更新就是进行3.2步状态更新函数。

    根据MORUS算法初始化阶段的初始状态装填,可以得到初始状态差分ΔS0,0=(ΔS0,00,ΔS0,01,ΔS0,02,ΔS0,03,ΔS0,04)表5所示。

    表 5  MORUS初始化阶段的初始状态差分ΔS0,0
    MORUS-640MORUS-1280
    ΔS0,00ΔIVΔIV||0128
    ΔS0,0101280256
    ΔS0,0201280256
    ΔS0,0301280256
    ΔS0,0401280256
    下载: 导出CSV 
    | 显示表格

    对于初始化阶段的前4轮状态更新,在已知差分ΔIV的情况下,手动推导可以得到以概率1成立的差分链,所以本文的MILP模型从初始化阶段的第5轮状态更新开始刻画,这样做可以大大减少模型中变量与不等式的数量,从而提高MILP模型的求解速度。表6给出了已知ΔIV第5轮状态更新的输入差分ΔS0,4=(ΔS0,40,ΔS0,41,ΔS0,42,ΔS0,43,ΔS0,44),这是容易推导得到的。

    表 6  MORUS初始化阶段第5轮状态更新的输入差分ΔS0,4
    MORUS-640MORUS-1280
    ΔS0,40Rot\_128\_32(ΔIV,b0)<<<w2Rot\_256\_64(ΔIV||0128,b0)<<<w2
    ΔS0,4101280256
    ΔS0,42Rot\_128\_32(ΔIV,b0+b2)Rot\_256\_64(ΔIV||0128,b0+b2)
    ΔS0,43Rot\_128\_32(ΔS0,40&(S0,04<<<w1),b3)Rot\_256\_64(ΔS0,40&(S0,04<<<w1),b3)
    ΔS0,4401280256
    下载: 导出CSV 
    | 显示表格

    MORUS初始化阶段的主要运算包括移位、模2加、与门。首先给出这些运算的MILP刻画,其中移位只涉及变量下标的变换,不需要额外的不等式进行刻画。

    对于模2加ab=c,可以用下面等式刻画其差分特性,这里需要引入一个新变量dummy

    Δa+Δb+Δc=2dummy (14)

    对于与门a\& b=c,可以用不等式(15)刻画其差分特性

    Δa+ΔbΔc (15)

    将每一轮中的模2加和与门看作一个整体a(b&c)d=e去刻画其差分特性

    Δa+Δb+Δc+ΔdΔe0Δa+Δb+ΔcΔd+Δe0Δa+Δb+Δc+Δd+Δe0Δa+Δb+ΔcΔdΔe2} (16)

    这样刻画将增加不等式的个数,但也大大减少了变量的个数。表7给出了对于R轮状态更新这两种刻画方式的比较。

    表 7  MORUS子轮函数两种刻画方式的比较
    刻画方式(2)+(3)(4)
    变量个数3RnRn
    不等式个数2Rn4Rn
    下载: 导出CSV 
    | 显示表格

    对于一个R轮状态更新,原本的刻画方式(2)+(3)需要引入新的变量来刻画与门的输出差,还要引入辅助变量dummy来刻画模2加,其变量个数是新的刻画方式(4)的3倍,从实验结果来看,刻画方式(4)加快了MILP模型的求解速度。

    r轮输出差分ΔSr/5,rmod50,ΔSr/5,rmod51,ΔSr/5,rmod52,ΔSr/5,rmod53,ΔSr/5,rmod54,为了进一步减少MILP模型中变量的个数,只对ΔSr/5,rmod5(r1)mod5进行刻画,其余4个bit块没有发生改变或者只进行了简单移位,不需要进行重复的刻画。

    MILP模型中除了设置变量与约束条件,还需要定义目标函数,本文的目标是求解r1r2轮状态更新中活跃与门数量的最小值,目标函数设为(|表示逻辑或,n=128256)

    minr2r=r1n1i=0(ΔSr15,(r1)mod5rmod5,i|ΔSr15,(r1)mod5(r+1)mod5,i) (17)

    本节建立了以下3种MILP模型:

    (1) MR:目标函数为求解MORUS初始化阶段R轮状态更新中活跃与门数量的最小值。

    (2) M[r1,r2][WΔIVx]:目标函数为求解MORUS初始化阶段第r1r2轮状态更新中活跃与门数量的最小值,限制ΔIV的重量大于等于x,也用WΔIV=x表示ΔIV的重量等于x

    (3) M[r1,r2][Dr=ΔS]:目标函数为求解MORUS初始化阶段第r1r2轮状态更新中活跃与门数量的最小值,限制第r轮的输入差分为ΔS

    为了叙述方便,将模型(2), (3)统一记为M[r1,r2][Con]Con表示限制条件。用Sol( )表示模型的解,本文的目的是求解Sol(MR),其他模型作为辅助模型,下文将根据分而治之思想求解Sol(MR)

    在利用MILP搜索差分链时,当轮数增加,搜索最优差分链的难度将呈指数级增加,要解决的首要问题是如何提高求解MILP模型的速度。2019年,Zhou等人[14]针对SPN结构,提出了分而治之策略以提高MILP模型的搜索能力,受他们的启发,为了使MOURS的MILP差分模型尽可能搜索更多轮,基于已有的差分链搜索经验我们提出了适用于MORUS的分而治之策略。分而治之策略的思想是将求解一个MILP模型的问题划分为求解多个MILP子模型的问题,其中大部分子模型的求解可以利用一些方法提前终止,这就大大减少了搜索时间。对于SPN结构的分组密码,输入输出差分是可以任意取值的,与SPN结构的分组密码不同的是,MORUS给定了状态的初始值,所以其初始状态差分也受到限制,这使得在搜索差分链时要“沿着”状态更新的方向。

    根据第4节开始部分的分析,由于MORUS初始化阶段1~4轮的差分传递是以概率1成立的,不需要考虑1~4轮的活跃与门,所以求解Sol(MR)实际上只需求解Sol(M[5,R][WΔIV1])。MORUS初始化阶段的初始状态中,只有IV是可以控制的,ΔIV=0则整个初始状态差分为0,考虑这种情况是没有意义的,将ΔIV根据重量分为3种情况考虑:|ΔIV|=1, |ΔIV|=2, |ΔIV|3,对应地模型M[5,R][WΔIV1]被划分为3个子模型M[5,R][WΔIV=1], M[5,R][WΔIV=2], M[5,R][WΔIV3],则有

    Sol(MR)=min(Sol(M[5,R][WΔIV=1]),Sol(M[5,R][WΔIV=2]),Sol(M[5,R][WΔIV3])) (18)

    表6,当ΔIV确定时,其对应的第5轮输入差分记为

    ΔS0,4(ΔIV)=(ΔS0,40(ΔIV),ΔS0,41(ΔIV),ΔS0,42(ΔIV),ΔS0,43(ΔIV),ΔS0,44(ΔIV)) (19)

    ΔIV的重量为x时,取值有Cx128种,对应的ΔS0,4(ΔIV)的取值有Cx128种,记ΔS0,4(ΔIV)Cx128种取值组成的集合为Ωx,则有定理1。

    定理1 对于MORUS初始化阶段的MILP差分模型MR,有

    Sol(MR)=min(minΔSΩ1Sol(M[5,R][D5=ΔS]),minΔSΩ2Sol(M[5,R][D5=ΔS]),Sol(M[5,R][WΔIV3])) (20)

    证明 根据上文的讨论M[5,R][WΔIV=x]可以进一步划分为多个子模型M[5,R][D5=ΔS](ΔSΩx),所以Sol(M[5,R][WΔIV=x])=minΔSΩxSol(M[5,R][D5=ΔS]),则有

    Sol(MR)=min(minΔSΩ1Sol(M[5,R][D5=ΔS]),minΔSΩ2Sol(M[5,R][D5=ΔS]),Sol(M[5,R][WΔIV3])) (21)

    证毕

    定义1 对于MORUS - 5n (n=128,256)的两个差分状态ΔS=(ΔS0,ΔS1,ΔS2,ΔS3,ΔS4), ΔS=(ΔS0,ΔS1,ΔS2,ΔS3,ΔS4),若存在b{0,1,,n/41}, w{0,n/4,2n/4,3n/4},使得对于所有i{0,1,2,3,4}, ΔSi=Rot\_x\_y(ΔSi,b)<<<w 成立,则称这两个差分状态是关于(b,w)循环等价的,或简称循环等价。

    定理2 若差分状态ΔS, ΔS是循环等价的,那么Sol(M[r1,r2][Dr=ΔS])=Sol(M[r1,r2][Dr=ΔS])

    证明 假设ΔS,ΔS是关于(b,w)循环等价的,对于MILP差分模型M[r1,r2][Dr=ΔS],假设Sol(M[r1,r2][Dr=ΔS])=NA,则对应一条差分链L,其第r轮输入差分是ΔS,第r1r2轮活跃与门数量为NA,显然存在一条差分链L,其每一轮的差分状态与L中对应轮的差分状态均是关于(b,w)循环等价的,特别地,其第r轮输入差分是ΔSL的第r1r2轮活跃与门数量为NA,所以有

    Sol(M[r1,r2][Dr=ΔS])NA=Sol(M[r1,r2][Dr=ΔS]) (22)

    同理有

    Sol(M[r1,r2][Dr=ΔS])Sol(M[r1,r2][Dr=ΔS]) (23)

    所以Sol(M[r1,r2][Dr=ΔS])=Sol(M[r1,r2][Dr=ΔS])

    证毕

    根据定义1,容易知道循环等价关系具有自反性、对称性、传递性,所以根据循环等价的定义将Ω1, Ω2中的差分状态进行分类,表8给出了MORUS-640与MORUS-1280的分类个数。

    表 8  Ω1, Ω2的分类个数
    MORUS-640MORUS-1280
    Ω122
    Ω2257382
    下载: 导出CSV 
    | 显示表格

    Ω1, Ω2的每一个分类中,任取一个元素作为代表元,这些代表元组成集合Ω1, Ω2,得到推论1。

    推论1 对于MORUS初始化阶段的MILP差分模型MR,有

    Sol(MR)=min(minΔSΩ1Sol(M[5,R][D5=ΔS]),minΔSΩ2Sol(M[5,R][D5=ΔS]),Sol(M[5,R][WΔIV3])) (24)

    证明 结合定理1、定理2以及Ω1,Ω2的定义,推论1是显然的。证毕

    根据推论1,把求解MORUS初始化阶段R轮状态更新中最优差分链的问题转化为求解多个MILP子模型的问题,这些子模型按照ΔIV的重量分为3类:{M[5,R][D5=ΔS]|ΔSΩ1}, {M[5,R][D5=ΔS]|ΔSΩ2}, M[5,R][WΔIV3],分别对应了|ΔIV|=1, |ΔIV|=2, |ΔIV|3,根据经验,ΔIV的重量越小,越容易搜索到好的差分链,所以按如下顺序求解MILP子模型:{M[5,R][D5=ΔS]|ΔSΩ1}, {M[5,R][D5=ΔS]|ΔSΩ2}, M[5,R][WΔIV3],为了方便描述,本文定义了一个有序集合

    Set={M[5,R][D5=ΔS]|ΔSΩ1}{M[5,R][D5=ΔS]|ΔSΩ2}{M[5,R][WΔIV3]} (25)

    集合长度为|Set|,用M(i)表示集合Set的第i个元素(i{1,2,,|Set|}),由表7,对于MORUS-640,|Set|=2+257+1=260,对于MORUS-1280,|Set|=2+382+1=385

    另外,为了更快计算这些MILP子模型,本文定义了两个指标:

    (1)最小活跃与门数量上界。对于MORUS初始化阶段R轮状态更新,UBR表示当前最优差分链的活跃与门数量。本文利用第3节的差分推导规则得到当前最优的差分链,并以其活跃与门数量作为初始的UBR,在整个搜索过程中,如果找到了一条更好的差分链UBR将被更新。

    (2)MILP差分模型M[r1,r2][Con]活跃与门数量下界。对于MILP差分模型M[r1,r2][Con], LB[r1,r2][Con]表示该模型最优解(即活跃与门数量的最小值)的下界。

    定理3 对于MILP差分模型M[r1,r2][Con], maxr1r<r2(LB[r1,r][Con]+LB[r+1,r2][Con])是该模型中活跃与门数量的下界。

    证明 假设模型M[r1,r2][Con]的最优差分链为L,对于任意rr1r<r2,差分链L可以分成两部分:一条r1r轮差分链L1,一条r+1r2轮差分链L2NA(L), NA(L1), NA(L2)分别表示L, L1, L2的活跃与门数量,显然NA(L)=NA(L1)+NA(L2),又有NA(L1)LB[r1,r][Con], NA(L2)LB[r+1,r2][Con],则

    Sol(M[r1,r2][Con])=NA(L)=NA(L1)+NA(L2)LB[r1,r][Con]+LB[r+1,r2][Con] (26)

    所以,LB[r1,r][Con]+LB[r+1,r2][Con]是MILP差分模型M[r1,r2][Con]中差分链活跃与门数量的下界,maxr1r<r2(LB[r1,r][Con]+LB[r+1,r2][Con])也是M[r1,r2][Con]中差分链活跃与门数量的下界。

    证毕

    定理3给出了计算M[r1,r2][Con]活跃与门数量下界的一种方法,对于轮数较少的模型,可以通过直接求解MILP模型得到其最小活跃与门数量从而获得最“紧致”的下界,也就是令LB[r1,r2][Con]=Sol(M[r1,r2][Con]);本文将利用Gurobi求解器求解所有模型,如果轮数较多可以通过将Gurobi中的参数MIPFocus设置为3,从而快速求得M[r1,r2][Con]的活跃与门数量下界。本文之所以将MORUS初始化阶段以轮为单位,就是为了充分利用定理3给出模型更加紧致的活跃与门数量下界。算法1给出了Sol(MR)完整的求解过程。

     算法1 基于MILP分而治之策略搜索MORUS初始化阶段差分链
     输入:R
     输出:Sol(MR)
     步骤1 根据第3节的差分推导规则,计算UBR的初始值,令
         i=0
     步骤2 令i=i+1
     步骤3 计算LB(M(i)),如果LB(M(i))UBR,返回步骤2,
         否则,执行步骤4;
     步骤4 求解Sol(M(i)),如果Sol(M(i))<UBR,令
         UBR=Sol(M(i))
     步骤5 如果i=|Set|,输出UBR,否则,返回步骤2。
    下载: 导出CSV 
    | 显示表格

    利用算法1,分别令R取5,10,15,20,25,30得到了MORUS-640与MORUS-1280初始化阶段状态更新步数为1~6的最优结果,如表9所示。表9与第3节中差分推导规则得到的结果相比:对于MORUS-640,状态更新步数为5,6时,得到了更好的差分链;对于MORUS-1280,状态更新步数为6时,得到了更好的差分链。可以看出,当状态更新步数较小时,第3节中的差分推导规则可以得到最优的差分链,但当步数增加时,基于分而治之策略的MILP模型可以找到更好的差分链。

    表 9  MILP模型中MORUS初始化阶段的最优差分转移概率
    状态更新步数
    123456
    MORUS-640212822928221792279
    MORUS-128021282292862 - 2012379
    下载: 导出CSV 
    | 显示表格

    本节给出初始化阶段为g步的简化版MORUS的差分-区分攻击,图2给出了简化版MORUS的示意图,这里令相关数据部分为空,图2只展示了初始化阶段与第1个密钥流块的生成。简化版MORUS经过g步初始化阶段的状态更新,其输出产生了第1个密钥流块Z

    图 2  简化版MORUS示意图
    Z=Sg,00(Sg,01<<<w2)(Sg,02&Sg,03) (27)

    前面所讨论的是初始状态(S0,00,S0,01,S0,02,S0,03,S0,04)到第g步输出状态(Sg,00,Sg,01,Sg,02,Sg,03,Sg,04)的差分链,为了对密钥流块Z进行差分-区分攻击,本文需要找到一条初始状态(S0,00,S0,01,S0,02,S0,03,S0,04)到第1个密钥流块Z概率较大的差分链,区别在于:这里不需要考虑第g步第5轮的与门,而需要考虑式(25)中的与门,这是因为Sg,04不参与Z的计算。本文建立了相应的MILP模型去寻找这样的差分链,求解过程仍利用了4.2节给出的分而治之策略,表10给出了搜索结果以及与目前最好结果的对比。

    表 10  简化版MORUS差分-区分攻击的差分转移概率
    状态更新步数MORUS-640MORUS-1280
    文献[16]本文文献[16]本文
    3238232232
    42101289291
    521842207
    622842380
    下载: 导出CSV 
    | 显示表格

    文献[16]只给出了初始化阶段为3步、4步的简化版MORUS-640的差分-区分攻击,并未给出MORUS-1280的攻击结果。对于MORUS-640,其密钥流块Z的长度为128,本文给出了初始化阶段为3步、4步的简化版MORUS-640的差分-区分攻击,本文搜索到的差分链优于文献[16]的结果;对于MORUS-1280,其密钥流块Z的长度为256,本文给出了初始化阶段为4步、5步的简化版MORUS-1280的差分-区分攻击,攻击结果见表11

    表 11  简化版MORUS的差分-区分攻击
    算法状态更新步数差分转移概率数据量区分优势
    MORUS-64032322350.999665
    42892920.999665
    MORUS-128042912940.999665
    5220722100.999665
    下载: 导出CSV 
    | 显示表格

    本文主要对MORUS初始化阶段的差分性质进行研究,首先给出一个改进的差分推导规则,能够快速找到一条较好的差分链。在此基础上,利用MILP自动搜索技术寻找最优差分链,为了提高MILP模型求解速度而采用了分而治之策略,得到了初始化阶段1~6步的最优差分链,最后利用得到的差分链对简化版的MORUS进行差分-区分攻击。本文的结果较之前的工作有较大提升,下一步将考虑把分而治之方法运用到MORUS的线性分析中,尝试给出MORUS更优的线性分析结果。

  • 图  1  MORUS的状态更新函数

    图  2  简化版MORUS示意图

    表  1  MORUS的参数设置(bit)

    参数MORUS-640-128MORUS-1280-128MORUS-1280-256
    密钥长度128128256
    IV长度128128128
    状态大小64012801280
    认证码长度128128128
    下载: 导出CSV

    表  2  符号说明

    符号说明
    逐比特异或;
    &逐比特与;
    <<<循环左移;
    0ll bit 0;
    1ll bit 1;
    const000||01||01||02||03||05||08||0d||15||22||37||59||90||e9||79||62
    const1db||3d||18||55||6d||c2||2f||f1||20||11||31||42||73||b5||28||dd
    Sii步输入状态;
    Si,ji步第j轮输入状态;
    Si,jkSi,jk个bit块,对于MORUS-640,每个状态包含5个128 bit块,对于MORUS-1280,每个状态包含5个256 bit块;
    Si,jk,lSi,jk的第l bit。
    下载: 导出CSV

    表  3  循环常数

    MORUS-640MORUS-1280MORUS-640MORUS-1280
    b0513w03264
    b13146w164128
    b2738w296192
    b3227w364128
    b4134w43264
    下载: 导出CSV

    表  4  MORUS初始化阶段差分转移概率

    状态更新步数1234567
    MORUS-6402128229282218023012453
    MORUS-12802128229286220123992681
    下载: 导出CSV

    表  5  MORUS初始化阶段的初始状态差分ΔS0,0

    MORUS-640MORUS-1280
    ΔS0,00ΔIVΔIV||0128
    ΔS0,0101280256
    ΔS0,0201280256
    ΔS0,0301280256
    ΔS0,0401280256
    下载: 导出CSV

    表  6  MORUS初始化阶段第5轮状态更新的输入差分ΔS0,4

    MORUS-640MORUS-1280
    ΔS0,40Rot\_128\_32(ΔIV,b0)<<<w2Rot\_256\_64(ΔIV||0128,b0)<<<w2
    ΔS0,4101280256
    ΔS0,42Rot\_128\_32(ΔIV,b0+b2)Rot\_256\_64(ΔIV||0128,b0+b2)
    ΔS0,43Rot\_128\_32(ΔS0,40&(S0,04<<<w1),b3)Rot\_256\_64(ΔS0,40&(S0,04<<<w1),b3)
    ΔS0,4401280256
    下载: 导出CSV

    表  7  MORUS子轮函数两种刻画方式的比较

    刻画方式(2)+(3)(4)
    变量个数3RnRn
    不等式个数2Rn4Rn
    下载: 导出CSV

    表  8  Ω1, Ω2的分类个数

    MORUS-640MORUS-1280
    Ω122
    Ω2257382
    下载: 导出CSV
     算法1 基于MILP分而治之策略搜索MORUS初始化阶段差分链
     输入:R
     输出:Sol(MR)
     步骤1 根据第3节的差分推导规则,计算UBR的初始值,令
         i=0
     步骤2 令i=i+1
     步骤3 计算LB(M(i)),如果LB(M(i))UBR,返回步骤2,
         否则,执行步骤4;
     步骤4 求解Sol(M(i)),如果Sol(M(i))<UBR,令
         UBR=Sol(M(i))
     步骤5 如果i=|Set|,输出UBR,否则,返回步骤2。
    下载: 导出CSV

    表  9  MILP模型中MORUS初始化阶段的最优差分转移概率

    状态更新步数
    123456
    MORUS-640212822928221792279
    MORUS-128021282292862 - 2012379
    下载: 导出CSV

    表  10  简化版MORUS差分-区分攻击的差分转移概率

    状态更新步数MORUS-640MORUS-1280
    文献[16]本文文献[16]本文
    3238232232
    42101289291
    521842207
    622842380
    下载: 导出CSV

    表  11  简化版MORUS的差分-区分攻击

    算法状态更新步数差分转移概率数据量区分优势
    MORUS-64032322350.999665
    42892920.999665
    MORUS-128042912940.999665
    5220722100.999665
    下载: 导出CSV
  • [1] BELLARE M and NAMPREMPRE C. Authenticated encryption: Relations among notions and analysis of the generic composition paradigm[J]. Journal of Cryptology, 2008, 21(4): 469–491. doi: 10.1007/s00145-008-9026-x
    [2] BERNSTEIN DJ. CAESAR call for submissions[EB/OL]. http://competitions:cr:yp:to/caesar-call.html, 2014.
    [3] LAWRENCE B. Submission requirements and evaluation criteria for the lightweight cryptography standardization process[EB/OL].https://csrc.nist.gov/projects/lightweight-cryptography, 2018.
    [4] SAHA D, SADAKI Y, SHI Danping, et al. On the security margin of TinyJAMBU with refined differential and linear cryptanalysis[J]. IACR Transactions on Symmetric Cryptology, 2020, 2020(3): 152–174. doi: 10.13154/tosc.v2020.i3.152-174
    [5] SONG Ling, TU Yi, SHI Danping, et al. Security analysis of Subterranean 2.0[J]. Designs, Codes and Cryptography, 2021, 89(8): 1875–1905. doi: 10.1007/s10623-021-00892-6
    [6] ZHOU Haibo, LI Zheng, DONG Xiaoyang, et al. Practical key-recovery attacks on round-reduced Ketje Jr, Xoodoo-AE and Xoodyak[J]. The Computer Journal, 2020, 63(8): 1231–1246. doi: 10.1093/comjnl/bxz152
    [7] LIU Shuai, GUAN Jie, and HU Bin. Fault attacks on authenticated encryption modes for GIFT[J]. IET Information Security, 2022, 16(1): 51–63. doi: 10.1049/ise2.12041
    [8] MATSUI M. On correlation between the order of S-boxes and the strength of DES[C]. The Workshop on the Theory and Application of of Cryptographic Techniques, Perugia, Italy, 1995: 366–375.
    [9] 叶涛, 韦永壮, 李灵琛. ACE密码算法的积分分析[J]. 电子与信息学报, 2021, 43(4): 908–914. doi: 10.11999/JEIT200234

    YE Tao, WEI Yongzhuang, and LI Lingchen. Integral cryptanalysis of ACE encryption algorithm[J]. Journal of Electronics &Information Technology, 2021, 43(4): 908–914. doi: 10.11999/JEIT200234
    [10] SHI Danping, SUN Siwen, DERBEZ P, et al. Programming the Demirci-Selcuk meet-in-the-middle attack with constraints[C]. The 24th International Conference on the Theory and Application of Cryptology and Information Security, Brisbane, Australia, 2018: 3–34.
    [11] HU Kai, SUN Siwei, TODO Y, et al. Massive superpoly recovery with nested monomial predictions[C]. The 27th International Conference on the Theory and Application of Cryptology and Information Security, Singapore, 2021: 392–421.
    [12] SASAKI Y and TODO Y. New algorithm for modeling S-box in MILP based differential and division trail search[C]. The 10th International Conference for Information Technology and Communications, Bucharest, Romania, 2017: 150–165.
    [13] SUN Siwei, HU Lei, WANG Peng, et al. Automatic security evaluation and (related-key) differential characteristic search: Application to SIMON, PRESENT, LBlock, DES(L) and other bit-oriented block ciphers[C]. The 20th International Conference on the Theory and Application of Cryptology and Information Security, Kaoshiung, China, 2014: 158–178.
    [14] ZHOU Chunning, ZHANG Wentao, DING Tianyou, et al. Improving the MILP-based security evaluation algorithm against differential/linear cryptanalysis using a divide-and-conquer approach[J]. IACR Transactions on Symmetric Cryptology, 2019, 2019(4): 438–469. doi: 10.13154/tosc.v2019.i4.438-469
    [15] WU Hongjun and HUANG Tao. The authenticated cipher MORUS (v2)[EB/OL]. http://competitions.cr.yp.to/caesar-submissions.html, 2014.
    [16] 张沛, 关杰, 李俊志, 等. MORUS算法初始化过程的混乱与扩散性质研究[J]. 密码学报, 2015, 2(6): 536–548. doi: 10.13868/j.cnki.jcr.000100

    ZHANG Pei, GUAN Jie, LI Junzhi, et al. Research on the confusion and diffusion properties of the initialization of MORUS[J]. Journal of Cryptologic Research, 2015, 2(6): 536–548. doi: 10.13868/j.cnki.jcr.000100
    [17] 施泰荣, 关杰, 李俊志, 等. 故障模型下MORUS算法的差分扩散性质研究[J]. 软件学报, 2018, 29(9): 2861–2873. doi: 10.13328/j.cnki.jos.005282

    SHI Tairong, GUAN Jie, LI Junzhi, et al. Research on differential diffusion property of MORUS in fault model[J]. Journal of Software, 2018, 29(9): 2861–2873. doi: 10.13328/j.cnki.jos.005282
  • 期刊类型引用(1)

    1. 刘帅,任小广,王世雄,关杰,张啸川,谭捷,王军. 基于MILP的轻量级密码算法ACE与SPIX的线性分析. 电子学报. 2024(09): 3065-3074 . 百度学术

    其他类型引用(1)

  • 加载中
图(2) / 表(12)
计量
  • 文章访问数:  486
  • HTML全文浏览量:  226
  • PDF下载量:  74
  • 被引次数: 2
出版历程
  • 收稿日期:  2022-06-06
  • 修回日期:  2022-08-03
  • 网络出版日期:  2022-08-08
  • 刊出日期:  2023-07-10

目录

/

返回文章
返回