本文作者:kaifamei

针对SIMECK算法的密码分析方法

更新时间:2024-11-15 15:48:18 0条评论

针对SIMECK算法的密码分析方法


针对simeck算法的密码分析方法
技术领域
1.本发明涉及知识挖掘技术领域,特别是指一种针对simeck算法的密码分析方法。


背景技术:



2.轻量级密码算法是对称密码算法的一个子领域,旨在提供适合资源受限设备(例如rfid标签,无线传感器网络节点等)的合适、安全和紧凑的密码。例如present,led,lblock,simon/speck,prince,simeck,gift,hight等算法。
3.其中的simeck算法是由yang,zhu,suder,aagaard和gong在ches 2015提出来的轻量级分组密码算法,加密和解密都由按位与(

)、按位异或()和循环左移γ位(s
γ
)运算组成。simeck算法结合simon和speck算法的设计组件,旨在降低simon算法的硬件实现成本。
4.通过分析截获的密文来推断出原来的明文或密钥,这一过程叫做密码分析或密码攻击;由于密码分析所面临的数据量普遍较大,通常无法获得一些极其具体的中间数据以及精确的统计数据,因此研究人员总是根据某些成立的假设对算法进行安全分析。为了简化差分密码分析并提供参考安全证明,来学嘉等人在1991年引入了markov密码假设,其中迭代算法在不同轮之间相对独立或在不同轮密钥之间独立。基于markov密码假设,对完整的16轮des的攻击已成功执行。在轻量级分组密码的安全性分析中,由于密钥扩展算法相对简单,轮密钥之间的强相关性,基于该假设得出的结论可能与实际情况有较大偏差。已经有许多研究表明,在markov密码假设下,通过简单的分段差分概率乘法计算差分概率可能会导致不正确的概率、忽略一些区分器或产生不适当的密码分析结果。


技术实现要素:



5.有鉴于此,本发明的目的在于提出一种针对simeck算法的密码分析方法,基于构建的自动搜索模型进行密码分析,相比于现有的基于markov密码假设的方法,能保证搜索到有效的区分器,从而保证有效的密码分析结果。
6.基于上述目的,本发明提供一种针对simeck算法的密码分析方法,包括:
7.针对simeck算法的轮函数,建立使经过and运算的差分的传播有效的约束方程、线性运算的差分传播的约束方程,以及差分传播的概率的约束方程;
8.对所有的约束方程通过求解器求解,得到针对simeck算法的轮函数密码分析后的区分器。
9.进一步,所述方法还包括:
10.在相关密钥的条件,进一步针对simeck算法的密钥扩展算法,建立使经过and运算的差分的传播有效的约束方程、线性运算的差分传播的约束方程,以及差分传播的概率的约束方程;
11.对进一步建立的约束方程通过求解器求解,得到针对simeck算法的密钥扩展算法密码分析后的区分器。
12.进一步,所述方法还包括:进行多次迭代运算,得到汉明重量最小的区分器;
13.其中,在一次迭代计算过程中,根据本次迭代中设置的以及建立的各公式,通过求解器求解;若无解,则结束迭代;若有解,得到本次迭代计算的区分器,并递减用于下次迭代计算过程;
14.其中,为密钥扩展算法中第r轮的非线性变换的汉明重量。
15.进一步,所述方法还包括:对得到的区分器进行过滤,得到有效的区分器。
16.本发明还提供一种电子设备,包括中央处理单元、信号处理和存储单元,以及存储在信号处理和存储单元上并可在中央处理单元上运行的计算机程序,其中所述中央处理单元执行所述程序时实现如上所述的针对simeck算法的密码分析方法。
17.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的针对simeck算法的密码分析方法的步骤。
18.本发明的技术方案中,针对simeck算法的轮函数,建立使经过and运算的差分的传播有效的约束方程、线性运算的差分传播的约束方程,以及差分传播的概率的约束方程;对所有的约束方程通过求解器求解,得到针对simeck算法的轮函数密码分析后的区分器。通过应用自动化搜索方法得到有效的区分器。
19.更优地,在相关密钥的条件下,为simeck算法的轮函数部分,以及密钥扩展算法部分分别建模,得到simeck算法全版本的有效区分器。
20.更优地,还可在目标函数的约束条件支撑下获得更令人满意的,即密钥汉明重量尽量小,覆盖尽可能多轮的区分器。
21.更优地,还可再额外增加一些约束条件,这些约束条件将差分变换和值变换连接起来,以过滤无效的区分器,进一步保证输出的区分器的有效性。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1为本发明实施例一提供的一种针对simeck算法的密码分析方法流程图;
24.图2为本发明实施例一提供的simeck算函数的相关密钥差分传播示意图;
25.图3为本发明实施例二提供的一种针对simeck算法的密码分析方法流程图;
26.图4为本发明实施例三提供的一种针对simeck算法的密码分析方法流程图;
27.图5为本发明实施例五提供的电子设备硬件结构示意图。
具体实施方式
28.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
29.需要说明的是,除非另外定义,本发明实施例使用的技术术语或者科学术语应当
为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
30.本文的符号及术语说明如下:
31.x=(x
n-1
,

,x1,x0):n位布尔向量;x0是最低有效位;
32.x

y:x和y按位与;
33.:x和y按位异或;
34.x|y:x和y按位或;
35.x||y:x和y级联;
36.:x按位取反;
37.wt(x):布尔向量x的汉明重量;
38.x<<<γ,s
γ
(x):x循环左移γ位;
39.x>>>γ,s-γ
(x):x循环右移γ位;
40.δar:第r轮的左半支输入差分;
41.δbr:第r轮的左半支输入差分;
42.δdr:第r轮and运算的输出差分;
43.由于simeck算法的密钥长度始终为4n,因此在本文中简单的记为simeck2n。simeck算法的轮函数定义为:
44.simeck算法的非线性密钥扩展算法直接重用该算法的轮函数来生成轮密钥。为了从给定的主密钥k=(k3,k2,k1,k0)生成第i轮的轮密钥ki,首先将主密钥k分割成四个字并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加载,其中k的最低有效n比特加载到k0中;而最高有效n比特被放入t2中;即:k=k3||k2||k1||k0。为了更新寄存器并生成轮密钥,直接重用轮函数操作,其中轮常数cr∈{0xfffc,0xfffd}。密钥序列更新操作可以表示如下公式1示:
[0045][0046]
本发明的发明人考虑到,自动化搜索方法是密码分析的最新趋势,已成功应用于许多密码分析技术,其背后的思想是到覆盖尽可能多轮的区分器。对于使用布尔和算术运算的密码,它可以转换为布尔可满足性问题(sat)或可满足性模块问题(smt)。在密码分析问题被成功建模后,可以调用某个特定的求解器来评估它,最终返回它是否可满足。如果该分析模型是可满足的,还提供了一个解决方案,则可用于算法区分。
[0047]
当输入差分经过线性操作时,将以概率“1”进行传播,输出差分唯一,如and-rx操作中的按位异或和循环移位操作。当输入差分经过非线性操作时,输出差分不唯一,概率小
于“1”,如and-rx操作中的按位与操作。差分经过and运算时的传播规律,如下定理1所示。
[0048]
定理1.令其中gcd(n,a-b)=1,n为偶数,a>b,设α和β分别为输入差分和输出差分,则差分α传播到差分β的概率为:
[0049][0050]
其中,varibits=sa(α)∣sb(α),
[0051]
在定理1的基础上,可以构造合适的基于sat/smt的有效(相关密钥)差分模型。基于此,本发明的基本思路为:
[0052]
在单密钥的条件下,为simeck算法的轮函数部分建模,得到区分器;
[0053]
在相关密钥的条件下,为simeck算法的轮函数部分,以及密钥扩展算法部分分别建模,得到区分器;
[0054]
更优地,还可在目标函数的约束条件支撑下获得更令人满意的,即密钥汉明重量尽量小,覆盖尽可能多轮的区分器。
[0055]
更优地,还可再额外增加一些约束条件,这些约束条件将差分变换和值变换连接起来,以过滤无效的区分器,进一步保证输出的区分器的有效性;而根据有效的区分器可以获得全部或大部分的密钥,也就是说,相比于现有的基于markov密码假设的方法,能保证搜索到有效的区分器,从而保证有效的密码分析结果。
[0056]
下面结合附图详细说明本发明的技术方案。
[0057]
实施例一
[0058]
本发明实施例一提供了一种针对simeck算法的密码分析方法,具体流程如图1所示,包括如下步骤:
[0059]
步骤s101:针对simeck算法的轮函数,建立使经过and运算的差分的传播有效的约束方程;
[0060]
具体地,本文使用δar和δbr来分别表示轮函数的第r轮的n比特左支和右支输入差分特征,使用δdr表示经过and运算的n比特输出差分。这种表示法的示意图如图2所示。
[0061]
从上述定理1中了解到差分通过and运算时的传播规则,布尔约束条件可以从定理1中导出。当and运算的输入差分为δar时,为了使经过and运算的差分的传播有效,即δar经过sa(x)

sb(x)运算后的输出差分δdr的概率不为0且不小于2-n+1
,应同时满足以下约束方程,如公式3、4所示:
[0062][0063][0064]
其中,δar为and运算的输入差分,δdr为δar经过sa(x)

sb(x)运算后的输出差
分,sa(
·
)表示循环左移a位,sb(
·
)表示循环左移b位,s
a-b
(
·
)表示循环左移a-b位,s
2a-b
(
·
)表示循环左移2a-b位;a、b为设定常数。
[0065]
步骤s102:针对simeck算法的轮函数,建立线性运算的差分传播的约束方程;
[0066]
具体地,为了保证轮函数部分下一轮的输入差分是上一轮的输出差分,在单密钥的条件下,线性运算的差分传播的过程由如下公式6、7所示的约束方程进行建模:
[0067]
δb
r+1
=δarꢀꢀꢀ
(公式6)
[0068][0069]
在相关密钥的条件下,线性运算的差分传播的过程由如上公式6和如下公式8所示的约束方程进行建模:
[0070][0071]
其中,δar和δbr来分别表示轮函数的第r轮的n比特左支和右支输入差分特征,sc(
·
)表示循环左移c位,δkr表示第r轮的n比特密钥差分。
[0072]
步骤s103:针对simeck算法的轮函数,建立差分传播的概率的约束方程;
[0073]
具体地,如果上述公式(3)和(4)的传播有效,则第r轮的传播概率由给出,建立的线性运算的差分传播的约束方程如公式5所示:
[0074][0075]
其中,为第r轮轮函数中非线性变换的汉明重量,为设定值;比如,可以设定为0,1,2,3等整数;wt(
·
)表示计算的汉明重量,即,计算二进制序列中1的个数。
[0076]
步骤s104:对上述的约束方程通过求解器求解,得到针对simeck算法的轮函数密码分析后的区分器;
[0077]
具体地,若在单密钥的条件,则得到汉明重量不超过设定值的、针对simeck算法的轮函数密码分析后的区分器,可以作为针对simeck算法全部的密码分析后的区分器。
[0078]
若在相关密钥的条件下,则还进一步需要对simeck算法的密钥扩展部分建立约束方程,对密钥扩展部分的差分传播进行建模。对simeck算法的密钥扩展部分建立约束方程,对密钥扩展部分的差分传播进行建模的具体方法将在实施例二中详述。
[0079]
实施例二
[0080]
在相关密钥的条件下,本发明实施例二提供了的一种针对simeck算法的密码分析方法中,除了包括上述实施例一中的图1所示的各步骤中的方法,还包括得到针对simeck算法的密钥扩展算法密码分析后的区分器;由于simeck算法的密钥扩展算法直接复用轮函数操作,所以密钥扩展算法建模类似于轮函数部分,具体流程如图3所示,包括如下步骤:
[0081]
步骤s301:针对simeck算法的密钥扩展算法,建立使经过and运算的差分的传播有效的约束方程;
[0082]
具体地,令δkar,δkbr和δkdr为第r轮的n比特差分向量,它们分别表示左支输入差分、右支输入差分和经过and运算的输出差分。类似地,要使密钥部分的差分的传播有效,应同时满足以下如公式9、10所示的布尔表达式:
[0083]
[0084][0085]
步骤s302:针对simeck算法的密钥扩展算法,建立线性运算的差分传播的约束方程;
[0086]
具体地,密钥扩展算法中的线性运算传播的过程由如下约束方程公式12、13、14进行建模:
[0087]
δkb
r+1
=δkarꢀꢀꢀ
(公式12)
[0088][0089]
δkr=δkbrꢀꢀꢀ
(公式14)
[0090]
其中,s1(
·
)表示循环左移1位。
[0091]
步骤s303:针对simeck算法的密钥扩展算法,建立差分传播的概率的约束方程;
[0092]
具体地,若约束方程(9)和(10)传播有效,则密钥扩展部分的概率由给出,建立的差分传播的概率的约束方程如公式11所示:
[0093][0094]
其中,为密钥扩展算法中第r轮的非线性变换的汉明重量,为设定值;比如,可以设定为0,1,2,3等整数。
[0095]
步骤s304:对上述步骤s301-s303建立的约束方程通过求解器求解,得到针对simeck算法的相关密钥差分密码分析后的区分器。
[0096]
实施例三
[0097]
simeck算法的区分器的汉明重量计算方式是明文部分的汉明重量加上密钥扩展部分的汉明重量,r轮最优区分器是指r轮的汉明重量w已达到最小,即汉明重量小于w时程序无解(unsat),即汉明重量小于w时没有满足条件的区分器。
[0098]
基于上述分析,本发明实施例三提供的一种针对simeck算法的密码分析方法中,基于目标函数进行多次迭代运算,得到汉明重量最小的区分器;在一次迭代计算过程中,根据本次迭代中设置的以及建立的如公式公式3-14,通过求解器求解;若无解,则结束迭代;若有解,得到本次迭代计算的区分器,并递减用于下次迭代计算过程。
[0099]
由于simeck密钥扩展算法的反馈移位寄存器的结构原因,在第r轮注入的密钥差分实际上是在第r-4轮产生的,在那里它的成本被“支付”。因此,密钥扩展部分r轮特征的总概率只需考虑第1轮至第r-4轮的成本。因此,将目标函数设置如公式15所示:
[0100][0101]
其中,r表示轮数,wd表示轮函数中非线性变换的汉明重量,2n表示针对simeck算法的密码分析过程中待解密的密文的长度。
[0102]
基于上述分析,本发明实施例三提供的一种针对simeck算法的密码分析方法中,为实现上述的目标函数可以进行多次迭代运算,得到汉明重量最小的区分器的具体方法,流程如图4所示,包括如下步骤:
[0103]
步骤s401:迭代初始化。
[0104]
本步骤中,设置迭代次数j=1;设置为初始值,为初始值。
[0105]
步骤s402:基于设置的以及针对simeck算法建立的约束方程,通过求解器进行求解。
[0106]
本步骤中,针对simeck算法建立的约束方程包括上述的公式3-14,此处不再赘述;进而,基于设置的针对建立的约束方程通过求解器进行求解。
[0107]
步骤s403:若建立的约束方程通过求解器求解得到区分器,则将递减,并将迭代次数j加1后,跳转到步骤s402进行下一次迭代计算;若建立的约束方程通过求解器无解,则执行如下步骤s404;
[0108]
步骤s404:结束迭代,并将上次迭代计算得到的区分器,作为汉明重量最小的区分器,即最优区分器进行输出。
[0109]
本步骤中,结束迭代,并将第j-1次迭代计算得到的区分器,作为汉明重量最小的区分器,即最优区分器进行输出。
[0110]
通过上述的迭代计算,可以得到实现上述的目标函数、汉明重量最小的最优区分器;也就是说,本发明实施例三的技术方案,在目标函数的约束条件支撑下获得更令人满意的,即密钥汉明重量尽量小,覆盖尽可能多轮的区分器。
[0111]
实施例四
[0112]
本发明实施例四的技术方案中,可以对得到的区分器进行有效性过滤。具体地,对于上述实例一、二或三的技术方案所得到的区分器均可采用本发明实施例四的技术方案进行有效性过滤。
[0113]
为了优化过滤无效区分器(无效的相关密钥差分特征)并获得相关密钥差分特征的紧界,我们添加了一个描述值转换和差分关系的模型。其思想是先独立地对差分转换和值转换进行建模,然后对每一轮的差值关系进行建模,用于连接差分转换和值转换。一旦构建了这样的模型,就可以确保发现的轨迹是有效的。具体建模过程如下所示。
[0114]
令其中表示从第r轮中密钥扩展算法的寄存器状态和轮常数cr导出轮密钥k
r+1
的函数。进一步令kr和(kr)

分别表示第r轮与主密钥k和k

相对应的n位轮密钥。
[0115]
为了保证密钥部分差分特征的有效性,即过滤得到的有效区分器,应满足如下约束方程,如公式16-19所示:
[0116][0117]
[0118][0119][0120]
简单来说,约束方程公式16、17确保轮密钥可以从主密钥(一致性)导出,而约束方程公式18、19确保它们具有相应的差分。
[0121]
一旦确定密钥扩展算法的差分特征是有效的,令表示第r轮的加密函数,其中(xr,yr)作为第r轮的加密函数的输入对,kr为第r轮的加密函数的轮密钥;并返回(x
r+1
,y
r+1
)作为第r轮的加密函数的输出。
[0122]
接下来,为了使区分器与公式16-19中到的轮密钥有效,也就是说,过滤得到的有效区分器,还应满足以下约束方程,如公式20-25所示:
[0123]
(x
r+1
,y
r+1
)=r(xr,yr,kr)
ꢀꢀꢀ
(公式20)
[0124]
((x
r+1
)

,(y
r+1
)

)=r((xr)

,(yr)

,(kr)

)
ꢀꢀꢀ
(公式21)
[0125][0126][0127][0128][0129]
综上,通过如上述公式16-25所示的约束方程,可以过滤得到有效区分器。而根据有效的区分器可以获得全部或大部分的密钥,也就是说,相比于现有的基于markov密码假设的方法,能保证搜索到有效的区分器,从而保证有效的密码分析结果。
[0130]
表1列出了本发明技术方案与现有技术的对比情况。
[0131]
表1
[0132][0133]
与现有技术中基于milp求解器的方法相比,本发明的方法不仅保证了simeck算法全版本的区分器最优性,同时本发明也保证了区分器的有效性,这对于利用区分器进行密钥恢复攻击来说至关重要。而现有技术除了simeck32/64参数,其他参数仍然难以获得更长的最优区分器。在有效性条件下,simeck32的区分器依旧能达到现有技术的复杂度为2
30
的14轮,该特征见表2。
[0134]
表2
[0135][0136]
对于simeck48版本,现有技术搜索到复杂度为2
48
的19轮非最优区分器,但是在有效条件下,根据本发明的搜索结果,19轮最低复杂度为2
50
,复杂度不超过2
48
的最优有效区分器不超过18轮,18轮的复杂度2
46
,该特征见表3。
[0137]
表3
[0138][0139][0140]
对于simeck64版本,现有技术搜索到复杂度为2
62
的22轮区分器,但是本发明能够搜索到的最优的兼容相关区分器不超过22轮,22轮的复杂度为2
63
,该特征见表3。综上,本发
明技术方案搜索到的区分器,相比于现有技术方案搜索到的区分器更优,更有效。
[0141]
实施例五
[0142]
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0143]
处理器1010可以采用通用的cpu(central processing unit,中央处理单元)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的基于稠密邻居的知识图谱表示增强方法。
[0144]
存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0145]
输入/输出接口1030用于连接输入/输出模块,可以与非线性接收机相连,从非线性接收机接收信息,实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0146]
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0147]
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0148]
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0149]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的针对simeck算法的密码分析方法的步骤。
[0150]
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例
如实施例中基于ssh反向隧道的内网设备连接方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0151]
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0152]
本发明技术方案中,针对simeck算法的轮函数,建立使经过and运算的差分的传播有效的约束方程、非线性变换的汉明重量的约束方程,以及线性运算的差分传播的约束方程;对所有的约束方程通过求解器求解,得到针对simeck算法的轮函数密码分析后的区分器。通过应用自动化搜索方法得到有效的区分器。
[0153]
更优地,在相关密钥的条件下,为simeck算法的轮函数部分,以及密钥扩展算法部分分别建模,得到simeck算法全版本的有效区分器。
[0154]
更优地,还可在目标函数的约束条件支撑下获得更令人满意的,即密钥汉明重量尽量小,覆盖尽可能多轮的区分器。
[0155]
更优地,还可再额外增加一些约束条件,这些约束条件将差分变换和值变换连接起来,以过滤无效的区分器,进一步保证输出的区分器的有效性。
[0156]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0157]
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
[0158]
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0159]
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种针对simeck算法的密码分析方法,包括:针对simeck算法的轮函数,建立使经过and运算的差分的传播有效的约束方程、线性运算的差分传播的约束方程,以及差分传播的概率的约束方程;对所有的约束方程通过求解器求解,得到针对simeck算法的密码分析后的区分器。2.根据权利要求1所述的方法,其特征在于,所述使经过and运算的差分的传播有效的约束方程,具体如公式3、4所示:约束方程,具体如公式3、4所示:其中,δa
r
为and运算的输入差分,δd
r
为δa
r
经过s
a
(x)

s
b
(x)运算后的输出差分,s
a
(
·
)表示循环左移a位,s
b
(
·
)表示循环左移b位,s
a-b
(
·
)表示循环左移a-b位,s
2a-b
(
·
)表示循环左移2a-b位。3.根据权利要求2所述的方法,其特征在于,所述线性运算的差分传播的约束方程,在单密钥的条件下,具体如公式6、7所示:δb
r+1
=δa
r
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(公式6)在相关密钥的条件下,线性运算的差分传播的过程由如上公式6和如下公式8所示:其中,δa
r
和δb
r
来分别表示轮函数的第r轮的左支和右支输入差分特征,s
c
(
·
)表示循环左移c位,δk
r
表示第r轮的密钥差分。4.根据权利要求3所述的方法,其特征在于,所述差分传播的概率的约束方程,具体如公式5所示:其中,为第r轮轮函数中非线性变换的汉明重量,为设定值;wt(
·
)表示计算的汉明重量。5.根据权利要求4所述的方法,其特征在于,还包括:在相关密钥的条件,进一步针对simeck算法的密钥扩展算法,建立使经过and运算的差分的传播有效的约束方程、线性运算的差分传播的约束方程,以及差分传播的概率的约束方程;对进一步建立的约束方程通过求解器求解,得到针对simeck算法的相关密钥差分密码分析后的区分器。6.根据权利要求5所述的方法,其特征在于,还包括:进行多次迭代运算,得到汉明重量最小的区分器;其中,在一次迭代计算过程中,根据本次迭代中设置的以及建立的各公式,通过求解器求解;若无解,则结束迭代;若有解,得到本次迭代计算的区分器,并递减
用于下次迭代计算过程;其中,为密钥扩展算法中第r轮的非线性变换的汉明重量。7.根据权利要求1、5或6所述的方法,其特征在于,还包括:对得到的区分器进行过滤,得到有效的区分器。8.根据权利要求7所述的方法,其特征在于,所述有效的区分器满足如下公式16-25所示的约束方程:示的约束方程:示的约束方程:示的约束方程:(x
r+1
,y
r+1
)=r(x
r
,y
r
,k
r
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(公式20)((x
r+1
)

,(y
r+1
)

)=r((x
r
)

,(y
r
)

,(k
r
)

)
ꢀꢀꢀꢀꢀꢀ
(公式21)(公式21)(公式21)(公式21)其中,其中表示从第r轮中密钥扩展算法的寄存器状态和轮常数c
r
导出轮密钥k
r+1
的函数;k
r
和(k
r
)

分别表示第r轮与主密钥k和k

相对应的n位轮密钥;其中,表示第r轮的加密函数,其中(x
r
,y
r
)作为第r轮的加密函数的输入对,k
r
为第r轮的加密函数的轮密钥;并返回(x
r+1
,y
r+1
)作为第r轮的加密函数的输出。9.一种电子设备,包括中央处理单元、信号处理和存储单元,以及存储在信号处理和存储单元上并可在中央处理单元上运行的计算机程序,其特征在于,所述中央处理单元执行所述程序时实现如权利要求1-8任一所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1-8中任意一项所述的针对simeck算法的密码分析方法的步骤。

技术总结


本发明公开了一种针对SIMECK算法的密码分析方法,所述方法包括:针对SIMECK算法的轮函数,建立使经过AD运算的差分的传播有效的约束方程、线性运算的差分传播的约束方程,以及差分传播的概率的约束方程;对所有的约束方程通过求解器求解,得到针对SIMECK算法的轮函数密码分析后的区分器。应用本发明能保证搜索到有效的区分器,从而保证有效的密码分析结果。果。果。


技术研发人员:

陆金玉 于博 刘国强 孙兵 李超 张若琳

受保护的技术使用者:

中国人民解放军国防科技大学

技术研发日:

2022.10.14

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-87413-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-29 16:32:13

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论