一种检测has-160算法抵御差分故障攻击的方法

文档序号:9923455阅读:448来源:国知局
一种检测has-160算法抵御差分故障攻击的方法
【技术领域】
[0001] 本发明设及密码算法安全领域,特别是设及一种检测HAS-160算法抵御差分故障 攻击的方法。
【背景技术】
[0002] 从古至今,信息安全问题一直是人们关注的对象,随着数字化管理的普及,信息安 全问题引申成了密码学中算法安全性的问题。HAS-160算法是韩国数字签名标准中使用的 哈希函数,其结构类似于SHA-I算法,在甜A-I的基础上做了一些增加算法强度的变化。HAS-160算法在扩张明文的时候没有循环,使得算法安全性大大增加,然而HAS-160算法的分组 密码特性,致使其不能逃过差分故障攻击的威胁。
[0003] 差分故障攻击针对分组密码的结构和轮函数的特性,故障攻击结合差分分析,通 过多次实验,在算法执行时导入故障,分析其对密文影响,计算出可能的密钥,最终获得密 钥。目前还没有公开的报告评估HAS-160算法抵御差分故障攻击的能力,运给正在使用HAS-160 算法封装的产 品留下 了安全隐患。
[0004] 符号说明:
[0005] M:明文消息;
[0006] C:正常状态下,HAS-160算法处理消息后的正确输出;
[0007] C*: HAS-160算法加密时导入故障的错误输出;
[000引 A C:正确输出C与错误输出C*之间的差分值;
[0009] 异或运算;
[0010] A,B,C,D,E:缓冲区寄存器,每个大小均为32bit;
[OO^M] A Co、A Cl、A〔2、A〔3、A C4:分别代表缓存区中最后一轮输出结果的差分;
[001^ 41,81,。瓜瓜:第1步缓存区中的值,记[0,79]。

【发明内容】

[0013] 本发明所要解决的技术问题是提供一种检测HAS-160算法抵御差分故障攻击的方 法,能够评估出HAS-160算法抵御差分故障攻击的能力。
[0014] 本发明解决其技术问题所采用的技术方案是:提供一种检测HAS-160算法抵御差 分故障攻击的方法,包括W下步骤:
[0015] (1)随机生成要处理的明文消息;
[0016] (2)利用HAS-160算法处理所述明文消息,得到正确输出和错误输出;
[0017] (3)计算正确输出和错误输出的差分值;
[0018] (4)分析差分值,判断HAS-160算法是否受到差分故障攻击的影响,并推导出故障 导入的位置,分析其有效性。
[0019] 所述步骤(4)具体如下:令差分值A C= ( A Co, A Cl,A C2, A C3, A C4),保存于160比 特的缓存区中,缓存区用5个32比特长的寄存器(A,B,C,D,E)表示,其中,ACo, ACi, A C2, A C3和A C4均为32比特,分别代表缓存区中最后一轮输出结果的差分;其中,对故障位置的 有效性分析如下:
[0020]有效故障:
[0021 ] i)当A Co、A Cl、A C2、A C3辛0时,故障导入的位置为A77;
[0022] ii)当A Co、A Cl、A C2、A C4辛0时,故障导入的位置为B77;
[002;3] iii)当ACo、ACi、AC2、AC3、AC4中均不为加寸,故障导入的位置为A76W及A76之前 的任何位置;
[0024] 无效故障:
[0025] I)当差分值A C = O时,说明导入的故障值等于当前位置上的原值,相当于没有导 入故障,故障无效;
[0026] II)当差分值AC辛0时:
[0027] i)当ACo、ACi、AC2、AC3、AC4中有且仅有一个不为0时,
[002引 a)当ACo辛0时,故障导入的位置为Aso或E79;
[0029] b)当A打辛0时,故障导入的位置为Bso;
[0030] C)当A C2辛0时,故障导入的位置为Cso;
[00川 d)当A C3辛0时,故障导入的位置为Dso;
[0032] e)当A C4辛0时,故障导入的位置为Eso;
[003;3] ii)当ACo、ACi、AC2、AC3、AC4中只有两个同时不为0时,
[0034] a)当A Co辛0且A Cl辛0时,故障导入的位置为A79;
[0035] b)当A Co辛0且A C2辛0时,故障导入的位置为B79;
[0036] C)当A Co辛0且A C3辛0时,故障导入的位置为C79;
[0037] d)当A Co辛0且A C4辛0时,故障导入的位置为D79;
[003引 iii)当ACo、ACi、AC2、AC3、AC4中只有S个同时不为0时,
[0039] a)当A Co、A Cl和A C2辛0时,故障导入的位置为A78;
[0040] b)当A Co、A Cl和A C3辛0时,故障导入的位置为B78;
[0041 ] C)当A Co、A Cl和A C4辛0时,故障导入的位置为C78。
[0042] 所述步骤(2)具体包括W下子步骤:
[0043] (21)输入明文消息,控制实验环境不受其他任何不相关事物的干扰,使得HAS-160 算法能够正确无误地进行,从而得到正确的输出结果,将其记为正确输出;
[0044] (22)重新输入明文消息,再次用HAS-160算法对其进行处理,同时借助物理设备改 变运行环境,诱导产生故障来干扰HAS-160算法的处理过程,将输出结果记为错误输出。
[0045] 所述步骤(22)中借助物理设备改变时钟、电压、湿度、福射、压力、光和/或满电流 将故障随机地导入HAS-160算法处理流程,W得到错误的输出结果。
[0046] 有益效果
[0047] 由于采用了上述的技术方案,本发明与现有技术相比,具有W下的优点和积极效 果:本发明提供的方法准确且简单,易于实现,不仅可W评估HAS-160算法对差分故障攻击 的抵抗能力,还能推导出差分故障攻击的位置,给使用HAS-160算法封装的产品的安全性测 评提供了理论依据。
【附图说明】
[0048] 图1是本发明的流程图;
[0049] 图2是HAS-160算法的差分故障分析图;
[0050] 图3是本方案的实验环境示意图。
【具体实施方式】
[0051] 下面结合具体实施例,进一步阐述本发明。应理解,运些实施例仅用于说明本发明 而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人 员可W对本发明作各种改动或修改,运些等价形式同样落于本申请所附权利要求书所限定 的范围。
[0052] 使用HAS-160算法对于同一个消息M使用同一个密钥进行处理时,如果实验环境 (如时钟、电压、湿度、福射、压力、光和满电流等)不同,攻击者可W分别获得正确输出C和错 误输出折通过计算出运两个值的输出差分值(即AC二(;?(;'),即可推导出关键信息。攻击 者可W在处理设备运行HAS-160算法期间诱导故障发生,但是不知道故障发生的具体位置 W及具体的错误值。在某些特定条件下能从差分A C中推导出故障导入的位置,此时导入的 故障称为有效故障。相反,当导入故障为无效故障的时候,本次导入的故障并不能给分析密 钥提供帮助,即通过A C不能得到重要的信息。
[0053] 图1为本发明提供的检测HAS-160算法抵御差分故障攻击的方法的流程图,所述的 检测HAS-160算法抵御差分故障攻击的方法包括如下步骤:
[0054] 步骤1:随机生成当前要处理的消息,记为M;
[0055] 步骤2:处理消息M,得到正确输出和错误输出,分别记为C和C%
[0056] 步骤3:计算正确密文C和错误密文勺差分值,结果记为A C;
[0057] 步骤4:分析AC,推断出导入位置,并判断导入故障是否有效。
[005引针对步骤2,用HAS-160算法对M进行处理,实验过程中,对运行环境实施两种不同 的控制,即:
[0059] (1)输入消息M,控制实验环境不受其他任何不相关事物的干扰,使得HAS-160算法 能够正确无误地进行,从而得到正确的输出结果,将其记为C;
[0060] (2)重新输入消息M,再次用HAS-160算法对其进行处理,同时借助其他物理设备改 变运行环境,诱导产生故障来干扰HAS-160算法的处理过程,将输出结果记为
[0061] 其中,步骤(2)中诱导故障产生的方法包括:改变时钟、电压、湿度、福射、压力、光 和满电流等;
[0062] 针对步骤3,计算差分AC =(―'毎广,其中冷代表异或运算,A C为160比特,令A C = (ACo, ACi, A C2, A C3, A C4),保存于160比特的缓存区中,缓存区用5个32比特长的寄存器 (A,B,C,D,E)表示,令 AC=( ACo, ACi, AC2, AC3, AC4),ACo, ACi, AC2, AC3和 AC4均 为32比特,分别代表缓存区中最后一轮输出结果的差分;
[0063] 针对步骤4,对A C的差分分析及确定故障位置的原理如下:
[0064] HAS-160算法对消息按51化k特长的分组为单位进行处理,总共由4轮运算组成,每 一轮都对缓存区进行20步迭代运算,输出为160比特的化Sh值,HAS-160的中间结果和最终 结果保存于160比特的缓存区中,缓存区用5个32比特长的寄存器(A,B,C,D,E)表示,如图2 所示,第i+1步的迭代公式如下:
[00化]Ai+i=Sp(Ai)@/(Bi,Ci,Di)@Ei@'Wi@Ki,
[0066] Bi+i=Ai,
[0067] Cw = Sq(Bi),
[0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1