一种针对DES密码算法末轮约减轮故障分析的攻击方法技术

技术编号:34169224 阅读:23 留言:0更新日期:2022-07-17 10:21
本发明专利技术公开了一种针对DES密码算法末轮约减轮故障分析的攻击方法,包括以下步骤:S1:对DES密码算法末轮的轮输入进行故障注入来减少迭代的轮数,获取DES密码算法后两轮的轮输入;S2:根据DES密码算法后两轮的轮输入推出后两轮的轮密钥,根据DES密钥扩展算法,逆向计算出初始密钥。采用上述分析方法不仅实现了针对DES密码算法末轮约减轮故障分析,而且降低攻击完整密钥所需的攻击次数,增强了攻击效率和成功率。成功率。成功率。

An attack method against the failure analysis of the last round reduction of Des cryptographic algorithm

【技术实现步骤摘要】
一种针对DES密码算法末轮约减轮故障分析的攻击方法


[0001]本专利技术涉及密码算法分析检测领域,尤其涉及一种针对DES密码算法末轮约减轮故障分析的攻击方法。

技术介绍

[0002]一般情况下,运行密码算法的硬件设备或软件程序都能够正确的执行各种密码算法运算,但是在有干扰的情况下,密码运算的单元模块可能会出现一些故障,比如运算异常或者寄存器故障。利用这些故障引起的错误信息来攻击恢复出密钥的方法称为密码故障分析。
[0003]目前密码设备的接口和实现对故障注入的防护措施都有欠缺,一般都比较容易受到攻击。1996年,Boneh等首先将故障注入的方法引入到密码算法的分析中,从此针对智能芯片的故障注入技术开始飞速发展。
[0004]根据攻击者侵入密码设备的程度,可以将故障注入分为3种,包括非侵入式故障注入、半侵入式故障注入和侵入式故障注入。顾名思义,后两种方式需要在物理上接触密码芯片,因此需要用于剖片处理的设备、化学用品以及用于注入故障的特殊设备。非侵入式的故障注入主要通过外界干扰的方式,如电压、时钟、磁场等,因此不需要这些昂贵的设备。
[0005]故障注入攻击通常由两个部分构成,即故障注入和错误数据利用。故障注入是在某些适合的时间诱导密码运行中的某些中间状态发生故障,这种攻击的实施方式和实际产生的效果依赖于攻击者使用的设备和工作环境。错误利用主要是利用故障注入所产生的结果即错误数据信息,并使用与其对应的分析方法来恢复出部分甚至全部密钥,攻击能否成功一般既依赖于密码系统的设计和实现,也依赖于其算法规范。
[0006]故障注入攻击的执行可以分为4个步骤:(1)选定故障模型攻击者在进行故障注入前需要明确给出错误注入时机、位置、动作和效果模型。典型的故障模型为:在加密过程中某中间轮发生单字节的瞬时故障。
[0007](2)故障注入根据故障模型,攻击者选定故障注入的手段,如电流、时钟、激光、射线等干扰方式进行错误注入。常用的诱导故障发生的方法分为3类:1.直接从外部加入非正常信息,如异常的时钟、电压、温度等;2.结合探测攻击,从内部引入错误;3.Skorobogatov和Anderson专利技术的半入侵攻击属于错误攻击,可在去除钝化层之后,使用激光或重粒子辐照芯片制定区域,引入错误。
[0008](3)错误样本筛选在故障注入完成后,攻击者根据故障模型,参考密码运行最终输出中的错误宽度、错误位置、错误值,甚至从错误注入后密码运行的时间长短来筛选理想的错误样本,该步骤对于错误分析效率具有较大影响。
[0009](4)密钥分析在筛选出理想的错误样本后,攻击者分析密码运行正确输出和错误输出之间的关系,使用一定的错误分析方法结合密码算法设计分析出相关密钥值。
[0010]DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准。DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组。
[0011]DES算法的主要流程如图1所示。DES算法的加密过程经过了三个阶段:首先,64位的明文在一个初始置换IP后,比特重排产生了经过置换的输入,明文组被分成右半部分和左半部分,每部分32位,以L0和R0表示。接下来的阶段是由对同一个函数进行16次循环组成的,16 轮迭代称为乘积变换或函数F,这个函数本身既包含有换位又包含有代替函数,将数据和密钥结合起来,最后1轮的输出由64位组成,其左边和右边两个部分经过交换后就得到预输出。最后阶段。预输出通过一个逆初始置换IP
‑1算法就生成了64位的密文结果。
[0012]设DES密码算法加密轮数为i,DES密码算法每轮的输入64位,每个64位的中间结果的左、右两个部分被当成两个独立的32位数据处理。每轮循环如图2所示,每轮变换的逻辑关系为:L
i
=R
i
‑1R
i
=L
i
‑1⊕
F(L
i
‑1,K
i
)在这个循环中使用的轮密钥K
i
的长度是48位,输入R
i
‑1是32位,先被扩展到48位,扩展变换E将32位输入扩展为48位输出,48位输出表示为m。扩展后得到的48位结果再与K
i
进行异或,这样得到的结果再经过一个代替函数S(S变换)产生48位的输出,最后经过P置换得到32位输出。
[0013]扩展变换E如下表所示,表中的数字代表位,左右两列数据是扩展的数据,可以看出,扩展的数据是从相邻两组分别取靠近的一位,4位变为6位。靠近32位的位为1,靠近1位的位为32。表中第二行的4取自上组中的末位,9取自下组中的首位。
3212345456789891011121312131415161716171819202120212223242524252627282928293031321
[0014]S变换由8个不同的S盒完成,每个S盒有6位输入4位输出,表示为b=SubByte(a),其中输入a,输出b。48位输入分为8个6位的分组,一个分组对应一个S盒, S盒对a进行代替操作。一个S盒就是一个4行16列的表,盒中的每一项都是一个4位的数。S盒的6个输入确定了其对应的输出在哪一行哪一列,输入的第一位和第六位的十进制值表示为行数H,中间四位的十进制值作为列数L,在S

BOX中查找第H行L列对应的数据即为b。
[0015]P置换把输入的每位映射到输出位,任何一位不能被映射两次,也不能被略去,映
射规则如下图3所示。
[0016]DES密钥扩展算法,DES算法规定密长度为64 bit,其中有效密钥长度为56 bit,在DES子密钥生成算法中直接使用,另外8 bit 在算法中并不直接使用,可作为校验位。如初始密钥中每8 bit密钥包含用户提供的7 bit 和1 bit校验位。校验位可以用奇偶校验码产生,即每8 bit密钥中保证有奇数个“1”(1的个数为奇数)。8 bit校验位数据分别放在8、16、 24、32、40、56和64位置上(位的序号为8的倍数)。
[0017]用户将初始密钥64 bit输人到子密码生成器中,子密钥生成过程如下图4所示,首先经过置换选择PC

1,PC

1变换如图5所示,将初始密钥的8 bit奇偶校验位去掉,并重新编排,留下真正的56 bit 有效密钥。接着,分为两部分,每部分28 bit,记为C0和D0,再分别经过一个循环左移函数,每部分循环左移1或2位,每轮次移位位数不同,具体如图6所示,记为C1和D1,然后再连接成56 bit数据C
1 || D1,再按置换选择PC

2做重排,PC

2如图7所示,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对DES密码算法末轮约减轮故障分析的攻击方法,其特征在于,所述方法包括以下步骤:S1:对DES密码算法后2轮的轮输入进行故障注入来减少迭代的轮数,获取DES密码算法后2轮的轮输入;S2:根据DES密码算法后2轮的轮输入推出后2轮的轮密钥,根据DES密钥扩展算法,逆向计算出初始密钥。2.根据权利要求1所述的针对DES密码算法后2轮的约减轮故障分析的攻击方法,其特征在于,所述S1具体包括以下步骤:S11:选择故障注入整体的位置为后2轮,选择完成之后设定sum=2,集合R={...

【专利技术属性】
技术研发人员:习伟姚浩兰天吴震杜之波王敏向春玲
申请(专利权)人:华大半导体有限公司成都信息工程大学成都芯安尤里卡信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1