检测SATURNIN密码算法抵御不可能差分故障攻击的方法与流程

文档序号:33277658发布日期:2023-02-24 20:06阅读:64来源:国知局
检测SATURNIN密码算法抵御不可能差分故障攻击的方法与流程
检测saturnin密码算法抵御不可能差分故障攻击的方法
技术领域
1.本发明涉及信息安全技术领域,特别是涉及一种检测saturnin密码算法抵御不可能差分故障攻击的方法。


背景技术:

2.随着现代计算机技术的飞速发展,信息安全问题逐渐突显出来,网络攻击、非法侵入等行为每年都在呈上升趋势,给人们在互联网的使用过程中带来了巨大的安全隐患。saturnin算法是于2020年在国际对称密码学期刊中提出的一种轻量级密码算法,该算法采用代换置换网络结构,算法的分组长度和密钥长度均为256比特。saturnin密码算法在保持高效轻巧的同时具有极高的安全性,被广泛应用在各种小型设备上,因此对它进行安全性分析具有重要意义。


技术实现要素:

3.本发明所要解决的技术问题是提供一种检测saturnin密码算法抵御不可能差分故障攻击的方法,能够评测使用saturnin密码算法封装的产品的安全性。
4.本发明解决其技术问题所采用的技术方案是:提供一种检测saturnin密码算法抵御不可能差分故障攻击的方法,包括以下步骤:
5.随机生成要处理的明文消息m;
6.利用saturnin密码算法处理明文消息m,得到正确输出密文y;
7.利用saturnin密码算法处理明文消息m,并在倒数第四轮超级轮的指定位置导入故障得到错误输出密文
8.根据得到的正确输出密文y和错误输出密文分别推导出倒数第一轮超级轮的中间状态值和再根据倒数第一轮超级轮的中间状态值推导出倒数第二轮超级轮的中间状态值和其中,mc-1
(
·
)表示列混淆逆运算,表示横切片行位移逆运算,cr表示第r轮的轮常数,sr
slice
(
·
)表示纵切片行位移运算,sc(
·
)表示s盒替换运算,k
rot
表示密钥k经过移位后得到的密钥;
9.计算中间状态值和的差分值利用得到一组不可能差分关系方程组,进一步压缩密钥搜索空间,重复导入故障和分析过程,最后推导出正确的密钥k。
10.所述不可能差分关系方程组为:
[0011][0012][0013][0014]
所述在倒数第四轮超级轮的指定位置导入故障时,通过改变在指定位置按位取反的方式将故障导入。
[0015]
所述故障采用随机半字节故障模型。
[0016]
所述故障通过软件模拟的方法、激光、电磁和/或电压干扰的方式进行导入。
[0017]
有益效果
[0018]
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过导入故障的方式得到错误密文,再根据正确密文和错误密文的中间状态值的差分值建立一组不可能差分关系方程式,从而进一步压缩密钥搜索空间,重复导入故障和分析过程,最后可以推导出正确的密钥k。本发明提供的方法易实现、速度快且准确性高,对saturnin密码算法的安全性研究具有重要的意义。
附图说明
[0019]
图1为本发明实施方式的流程图;
[0020]
图2为saturnin密码算法处理信息m过程中不可能差分故障分析的故障传播图;
[0021]
图3为saturnin密码算法分析图;
[0022]
图4为本发明实施方式中的实验环境示意图。
具体实施方式
[0023]
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所附权利要求书所限定的范围。
[0024]
本发明实施方式中用到的符号说明如下:
[0025]
m:明文;
[0026]
y:输出的正确消息密文;
[0027]
输出的错误消息密文;
[0028]cr
:第r轮的轮常数;
[0029]
k:密钥;
[0030]krot
:密钥k经过移位后得到的密钥;
[0031]
r:saturnin密码算法的超级轮的轮数;
[0032]
sc:s盒替换;
[0033]
sr
slice
:纵切片行位移,对中间状态值的每个纵切片进行独立的行位移;
[0034]
sr
sheet
:横切片行位移,对中间状态值的横切片进行行位移;
[0035]
mc:列混淆变换;
[0036]
行位移运算sr
slice
的逆运算;
[0037]
行位移运算sr
sheet
的逆运算;
[0038]
mc-1
:列混淆逆运算;
[0039]
第r轮经过sc运算后的中间状态值;
[0040]
导入故障后,第r轮经过sc运算后的中间状态值;
[0041]
第r-1轮经过mc运算后的中间状态值;
[0042]
导入故障后,第r-1轮经过mc运算后的中间状态值;
[0043]
异或运算。
[0044]
本发明的实施方式涉及一种检测saturnin密码算法抵御不可能差分故障攻击的方法,如图1所示,包括以下步骤:
[0045]
步骤1:随机生成要处理的明文消息,记为m;
[0046]
步骤2:利用saturnin密码算法处理明文消息m,得到正确输出密文y;其中,saturnin密码算法的过程如图3所示。
[0047]
步骤3:利用saturnin密码算法处理明文消息m,并在倒数第四轮超级轮的指定位置导入故障得到错误输出y;本步骤中通过改变在指定位置按位取反的方式将故障导入,导入的故障采用随机半字节故障模型,故障大小为半字节,其可以通过软件模拟的方法实现,也可以通过激光、电磁、电压干扰等技术手段对真实硬件进行处理来实现。
[0048]
在步骤2和步骤3中使用saturnin密码算法对明文消息m处理过程中,为保证实验结果的准确性,需要严格控制实验环境(见图4),从而得到相应的输出。其中,利用计算机来产生密码算法的输入消息m,并对信息m经过saturnin密码算法后的输出结果进行处理和分析;封装saturnin密码算法的设备是用来处理输入信息并得到相应的输出结果;导入故障的设备用来执行导入故障动作,将在saturnin密码算法运行过程中执行导入故障动作,进而得到错误信息的输出,具体的操作方法如下:
[0049]
实验环境1:输入消息m,控制实验环境不受其他不相关事务的干扰,使得saturnin密码算法能够准确无误地进行,从而得到正确的输出结果,将其记为y;
[0050]
实验环境2:重新输入消息m,再次用saturnin密码算法对其进行加密处理,同时在指定位置,诱导产生故障来干扰saturnin密码算法的处理过程,将导入故障后所输出的结果记为
[0051]
步骤4:根据得到的正确密文y和错误密文分别推导出倒数第一轮超级轮的中间状态值,分别记为根据倒数第一轮超级轮中间状态值可以推导出倒数第二轮超级轮的中间状态值和和为:
[0052][0053][0054][0055][0056]
上述推导过程是基于图2所示的saturnin密码算法处理信息m过程中不可能差分故障分析的故障传播图。
[0057]
步骤4:计算中间状态值和的差分值,记作利用可得到一组不可能差分关系方程组其中0≤i≤3,0≤j≤3,从而进一步压缩密钥搜索空间,重复导入故障和分析过程,最后可以推导出正确的密钥k。
[0058]
其中,不可能差分关系方程组如下:
[0059][0060][0061][0062][0063]
上述方程组中和分别为:
[0064][0065][0066]
其中,0≤i≤3,0≤j≤3。
[0067]
利用上述不可能差分关系方程组作为限制条件,遍历所有可能的子密钥候选值,筛选出符合要求的子密钥,最后根据密钥编排算法求得原始密钥k。
[0068]
利用上述分析方法,本发明在intel(r)core(tm)i5-7200u cpu@2.50ghz 2.70ghz8gb内存的计算机上,使用idea开发工具模拟导入故障和saturnin密码算法处理过程,重复执行3000次,实验结果表明上述检测方法准确无误。
[0069]
不难发现,本发明通过导入故障的方式得到错误密文,再根据正确密文和错误密文的中间状态值的差分值建立一组不可能差分关系方程式,从而进一步压缩密钥搜索空间,重复导入故障和分析过程,最后可以推导出正确的密钥k。本发明提供的方法易实现、速度快且准确性高,对saturnin密码算法的安全性研究具有重要的意义。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1