首页> 中国专利> 检测MD4散列函数抵御差分故障攻击的方法

检测MD4散列函数抵御差分故障攻击的方法

摘要

本发明公开了一种检测MD4散列函数是否受到差分故障攻击的方法,包括:1)将随机生成需要MD4处理的消息,保存在M中;2)使用MD4散列函数,以M作为输入进行处理,获取正确输出结果Y;3)对MD4散列函数实施故障导入,获取错误输出Y

著录项

  • 公开/公告号CN104158656A

    专利类型发明专利

  • 公开/公告日2014-11-19

    原文格式PDF

  • 申请/专利权人 东华大学;

    申请/专利号CN201410244502.9

  • 申请日2014-06-04

  • 分类号H04L9/32;H04L29/06;

  • 代理机构上海申汇专利代理有限公司;

  • 代理人翁若莹

  • 地址 201620 上海市松江区人民北路2999号

  • 入库时间 2023-12-17 03:31:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-01

    授权

    授权

  • 2014-12-17

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20140604

    实质审查的生效

  • 2014-11-19

    公开

    公开

说明书

技术领域

本发明主要应用于信息安全技术领域,具体涉及检测MD4散列函数是否抵 御到差分故障攻击的方法,主要应用于MD4散列函数的安全性防御与评估。

背景技术

在实际应用领域中,散列函数在电子签名、消息认证、身份识别上有着广泛 的商业应用,传统的单纯从散列函数算法的数学结构分析研究已经不足以应对当 前复杂的互联网环境。

旁路攻击作为散列函数分析研究的重要方式,是指绕过对散列函数的繁琐分 析,利用散列函数算法的硬件实现的运算中泄露的信息,如执行时间、功耗、电 磁辐射等,结合统计理论快速的破解散列函数系统。作为旁路攻击的一种重要且 有效攻击方式,故障攻击凭借着出色的攻击能力和简单的软件实现等特点已经引 起国内外的广泛关注。因此散列函数在实际应用中是否受到差分故障攻击直接影 响着相应的商业应用产品的安全性。

发明内容

本发明所要解决的技术问题是现有检测技术不能检测MD4散列函数是否受 到差分故障攻击,无法确保MD4散列函数的安全性。

在差分故障攻击过程中,利用输出差分ΔY推导得到输入消息M,而导入故 障的位置,对输出差分ΔY有着重要的影响,只有在有效位置导入故障得到的输 出差分ΔY才能推导出输入消息M。如果故障导入在无效位置,则MD4散列函 数对差分故障攻击是安全的。

为了解决上述问题,基于以上思路,本发明提供了一种检测MD4散列函数 抵御差分故障攻击的方法,其特征在于,包括以下步骤:

步骤1):将随机生成MD4散列函数的输入消息,保存在M中;

步骤2):使用MD4散列函数处理输入消息M,得到正确输出结果Y;

步骤3):再次使用MD4散列函数对输入消息M进行处理,并在处理过程 中实施故障导入;得到故障导入后的错误输出结果Y*

步骤4):基于所获取到的正确和错误输出结果,计算输出差分ΔY;

步骤5):根据输出差分值ΔY,确定MD4散列函数是否受到差分故障攻击 以及故障所导入的位置。

优选地,所述步骤3)的具体方法如下:

步骤i:将消息M做为MD4散列函数的输入;

步骤ii:在MD4散列函数处理M过程中,导入随机故障,影响MD4散列 函数的正常处理操作;

步骤iii:在导入故障后,记录MD4散列函数处理的输出结果Y*

进一步地,所述步骤ii导入随机故障的具体方法为:

步骤a):分析MD4散列函数处理流程,找出有效故障的导入位置;

步骤b):在MD4散列函数处理过程中,利用电磁脉冲、激光辐射等手段, 导入随机故障;

步骤c):采用仿真技术模拟步骤b)所述电磁脉冲、激光辐射等导入故障手 段;

步骤d):记录输出结果,保存在Y*中。

更进一步地,所述步骤a)具体为:根据差分故障攻击原理以及MD4散列 函数处理流程,找出MD4散列函数中的有效故障的位置。

优选地,所述步骤4)的具体计算方法为:

对于获取的正确输出Y和错误输出Y*,计算输出差分值其中代表异或操作;

输出差分ΔY为128比特,将ΔY用(ΔY0,ΔY1,ΔY2,ΔY3)表示,其中 ΔY0,ΔY1,ΔY2和ΔY3均为32比特,即ΔY=YY*=(ΔY0,ΔY1,ΔY2,ΔY3).

优选地,所述步骤5)的具体检测判断的方法为:

(I)有效故障:若ΔY0、ΔY1和ΔY2≠0时,故障导入在γ46,当前导入故障为有 效故障;

(II)无效故障:

(1)当ΔY=0时,则导入的故障值和导入故障位置上正确值相同,导入位置为 任意位置;

(2)当ΔY≠0时:

(a)若(ΔY0,ΔY1,ΔY2,ΔY3)中只有一个不为0,

①若ΔY0≠0时,故障导入在α48

②若ΔY1≠0时,故障导入在α47或者β48

③若ΔY2≠0时,故障导入在γ48

④若ΔY3≠0时,故障导入在ε48

(b)若(ΔY0,ΔY1,ΔY2,ΔY3)有两个不为0,

①若ΔY0和ΔY1≠0时,故障导入在ε47

②若ΔY1和ΔY2≠0时,故障导入在β47或者α46或者ε46

③若ΔY1和ΔY3≠0时,故障导入在γ47

(c)若(ΔY0,ΔY1,ΔY2,ΔY3)有三个不为0,

①若ΔY1、ΔY2和ΔY3≠0时,故障导入在β46或者α45或者γ45或者ε45

(d)若(ΔY0,ΔY1,ΔY2,ΔY3)四个均不为0,故障导入在β45或β45之前任意位置。

根据最后得出的检测结果,确定MD4散列函数是否受到差分故障攻击,以 及故障所导入的位置。

本发明提供的检测MD4散列函数是否受到差分故障攻击的基本方法,将 MD4散列函数对差分故障攻击的抵御能力简化为对输出结果的判断,可以帮助 快速、准确的测评MD4散列函数相关产品的安全性,对散列函数及其相关安全 系统的防御和评估提供了更积极的意义和保障。

附图说明

图1为本发明的检测MD4散列函数模块是否受到差分故障攻击的方法的流 程图;

图2为差分故障攻击的的原理图;

图3为差分故障攻击中导入随机故障获得对应输出的基本配置图。

具体实施方式

为使本发明更明显易懂,兹以优选实施例,并配合附图作详细说明如下。

实施例

检测MD4散列函数模块是否受到差分故障攻击的方法,包括:

1)将随机生成MD4散列函数的输入消息,保存在M中;

2)使用MD4散列函数处理输入消息M,得到正确输出结果Y;

3)再次使用MD4散列函数对输入消息M进行处理,并在处理过程中实施 故障导入;得到故障导入后的输出结果Y*

4)基于所获取到的正确和错误输出结果,计算输出差分ΔY;

5)根据输出差分值ΔY,确定MD4散列函数是否受到差分故障攻击以及故 障所导入的位置。

如图1所示,其具体的流程方法如下:

S101:随机生成输入消息M;

S102:MD4散列函数处理消息M,获取正确输出Y;

S103:在MD4处理过程中,实施故障导入,获取错误输出Y*

S104:计算输出差分,即

S105:基于输出差分,确定MD4散列函数是否受到差分故障攻击以及故障 导入的位置;

其中步骤S103是通过故障导入,获取错误输出的过程,即实施差分故障攻 击的过程。其具体原理如图2所示,包括如下步骤:

a)确定有效故障位置。确定有效故障导入位置包含如下步骤:

从MD4散列函数处理过程中,观察到每一步都只针对模块β进行相应的处 理。根据图2所示,可以推导得β48为:

β48=(α47+f4748,ε48,α48)+Ψ[R(47)]+λ47)<<<s[47],

对MD4算法的正确输出Y为:

Y=(Y0,Y1,Y2,Y3) =(α480,β480,γ480,ε480),

将已知的初始值(α0,β0,γ0,ε0)代入上述等式,可得最后一步的输出值为 (α48,β48,γ48,ε48)。

根据消息处理过程,得如下关系式:

β47=γ48

γ47=ε48

ε47=α48

R(47)=15

以及

s[47]=15。

将上述式子代入β48的等式中,可推导得:

β48=(α47+f4748,ε48,α48)+Ψ[R(47)]+λ47)<<<s[47]

观察可得,在上述等式中,只有两个未知量Ψ[R(47)]和α47。而最终的目的是 要恢复Ψ[R(47)]。若可以求得α47的值,则Ψ[R(47)]可以通过下述等式求解:

Ψ[R(47)]=((β4848)<<<(32-s[47]))-α47-f4747,γ47,ε47)-λ47

通过MD4处理过程可以得知α47=ε46。那么获得α47的值等同于求解ε46。可 知在倒数第2轮γ46导入故障,获得ε46,即可求得当前轮所使用的子消息Ψ[R(47)]。 因此有效故障位置为γ46

b)在MD4散列函数处理过程中,利用电磁脉冲、激光辐射等手段,导入随 机故障;

c)采用仿真技术模拟步骤b)所述电磁脉冲、激光辐射等导入故障手段;

d)记录输出结果,保存在Y*中;

步骤d)记录输出结果,需要搭建一套记录输出的测量环境。

测量配置的主要部件包括:电磁脉冲设备,激光设备,加压设备和一台PC, 如图3所示,用PC输入消息以及记录输出值,根据PC记录的输出值,计算输 出差分。

具体检测判断的方法如下:

(I)有效故障:若ΔY0、ΔY1和ΔY2≠0时,故障导入在γ46,当前导入故障为有 效故障;

(II)无效故障:

(1)当ΔY=0时,则导入的故障值和导入故障位置上正确值相同,导入位置为 任意位置;

(2)当ΔY≠0时:

(a)若(ΔY0,ΔY1,ΔY2,ΔY3)中只有一个不为0,

①若ΔY0≠0时,故障导入在α48

②若ΔY1≠0时,故障导入在α47或者β48

③若ΔY2≠0时,故障导入在γ48

④若ΔY3≠0时,故障导入在ε48

(b)若(ΔY0,ΔY1,ΔY2,ΔY3)有两个不为0,

①若ΔY0和ΔY1≠0时,故障导入在ε47

②若ΔY1和ΔY2≠0时,故障导入在β47或者α46或者ε46

③若ΔY1和ΔY3≠0时,故障导入在γ47

(c)若(ΔY0,ΔY1,ΔY2,ΔY3)有三个不为0,

①若ΔY1、ΔY2和ΔY3≠0时,故障导入在β46或者α45或者γ45或者ε45

(d)若(ΔY0,ΔY1,ΔY2,ΔY3)四个均不为0,故障导入在β45或β45之前任意位置。

差分故障攻击过程依据上述检测判断的方法可知,当ΔY0、ΔY1和ΔY2≠0时, 故障导入在γ46为有效故障,其故障扩散影响如图2所示,此时导入故障对散列 函数模块构成威胁,即可通过差分故障攻击恢复出敏感信息。若导入故障为无效 故障则不会对该散列函数模块的安全性造成影响,通过我们的检测结论,不仅仅 可以确定散列函数模块在差分故障攻击下的安全性,同时也能部分的确定故障所 导入的位置。

尽管已经描述了本发明的具体实施例,但是本领域技术人员应当清楚,在不 脱离本发明实质的范围内,可以对上述方法进行各种修改或变形。

例如,更换表示符号,将MD4散列函数中对32比特长整数循环左移k位, 替换为等价形式的循环右移32-k位。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号