[发明专利]一种检测和抵御差分故障攻击的方法有效
申请号: | 202110483728.4 | 申请日: | 2021-04-30 |
公开(公告)号: | CN113206734B | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 韦永壮;张小娜;武小年;李灵琛;张润莲 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | H04L9/00 | 分类号: | H04L9/00;H04L9/40 |
代理公司: | 桂林市华杰专利商标事务所有限责任公司 45112 | 代理人: | 杨雪梅 |
地址: | 541004 广西*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 检测 抵御 故障 攻击 方法 | ||
1.一种检测和抵御差分故障攻击的方法,其特征在于,所述方法包括三部分:
(1)构建冗余;
根据原始加密模块构建冗余加密模块;
(2)双重差分故障检测;
基于消息认证码方法检测冗余加密模块是否存在故障注入,并与原始加密模块对比检测原始加密模块是否存在故障注入,完成双重差分故障攻击或差分故障攻击检测;
(3)定位故障源及防护;
在确定存在差分故障注入后,基于密文差分值和感染函数检测目标算法的每一轮密文差分值,定位攻击者所注入的故障源,并使用随机数和感染函数对密文差分值进行隐藏实现防护;
所述构建冗余,具体是对某一分组加密算法E进行完全复制为E',称E为原始加密模块,E'为冗余加密模块;对E和E'分别输入相同的明文P和密钥K进行加密,输出原始密文为C=EK(P),冗余密文为C'=E'K(P);
所述双重差分故障检测,具体过程如下:
(2.1)为检测在冗余加密中是否存在故障注入,在冗余加密模块中增加一个检测模块,用于消息认证码检测;
(2.2)在冗余加密前,冗余加密模块先采用哈希函数根据密钥K计算E'的明文P的消息认证码MAC,将MAC(P)发送给检测模块,由检测模块接收并保存MAC(P);冗余加密模块再将明文P与MAC(P)合并在一起记为x作为输入,进行冗余加密;
(2.3)检测模块从冗余加密模块获取进行冗余加密后的输入数据x',并对输入数据x'进行数据分离,由于不确定原始的明文信息P是否已经发生改变,将所分离的明文信息记为P',采用哈希函数和密钥K计算P'的MAC值,记为MAC(P');
(2.4)检测模块判断MAC(P)值与MAC(P')值是否一致,若两者相同,转(2.5);若两者不同,转(2.6);
(2.5)若MAC(P)=MAC(P'),表明冗余加密模块中信息P没有被篡改,没有被注入故障,从而进行正常的加密,在去除消息认证码后,输出冗余加密的密文C'=E'K(P),转(2.7);
(2.6)若MAC(P)≠MAC(P'),表明冗余加密模块中信息P被篡改,冗余加密模块中有故障注入,将存在故障注入的明文信息记为P',输出冗余加密的密文C'=E'K(P'),转(2.11);
(2.7)将原始加密密文C=EK(P)和冗余加密密文C'=E'K(P)进行异或,得出密文差分值C为原始密文,C'为冗余密文;
(2.8)判断Δ是否为0,若Δ=0,转(2.9);若Δ≠0,转(2.10);
(2.9)若Δ=0,说明原始加密算法E中也没有被注入故障,结束检测;
(2.10)若Δ≠0,说明原始加密算法E中被注入了故障,进入定位故障源及防护的操作(3);
(2.11)将原始加密密文C=EK(P)和冗余加密密文C'=E'K(P')进行异或,得出密文差分值
(2.12)判断Δ是否为0,若Δ=0,转(2.13);若Δ≠0,转(2.14);
(2.13)若Δ=0,说明原始加密算法E中被注入了与冗余加密算法E'相同的故障,即检测到双重故障,结束检测;
(2.14)若Δ≠0,说明原始加密算法E中没有被注入故障,故障只在冗余加密模块E'中存在,进入定位故障源及防护的操作(3);
所述定位故障源及防护,具体过程如下:
(3.1)设加密算法E的总轮数为r轮,从高往低依次检测加密算法E的每一轮,设置检测的轮数为i,i=r-1;(3.2)计算第i轮的密文差分值其中,Ci为原始加密算法E第i轮的加密密文,Ci'为冗余加密算法E'第i轮的加密密文;
(3.3)判断Δi是否为0,若Δi=0,转(3.4);若Δi≠0,转(3.5);
(3.4)若Δi=0,表明所注入的故障在第i+1轮,转(3.7);
(3.5)若Δi≠0,为防止攻击者获取密文差分值Δi进行差分故障攻击,将第i轮的密文感染值输出并保存,其中,Ci为原始加密算法E第i轮正确加密的密文,Z(·)为感染函数,Δi为第i轮的密文差分值,αi和βi分别为第i轮的两个不同的随机值,i表示检测的轮数为第i轮;
(3.6)令i=i-1,转(3.2);
(3.7)根据第i+1轮的密文差分值Δi+1的值进行比特查询,找到Δi+1中不为0的比特位n,即为加密算法E中被注入故障的比特位,确定定位结果;
(3.8)输出定位结果,即故障位于第i+1轮的第n个比特位;
(3.9)为避免攻击者获取进行故障注入后的密文差分值Δi+1,使用随机数和感染函数对Δi+1进行隐藏,输出第i+1轮的密文感染值其中,Ci+1为原始加密算法E第i+1轮正确加密的密文,Z(·)为感染函数,Δi+1为原始加密算法E和冗余加密算法E'在第i+1轮的密文差分值,αi+1和βi+1分别为第i+1轮的两个不同的随机值,针对被隐藏后输出的密文感染值,攻击者将无法进行差分故障攻击,结束定位过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110483728.4/1.html,转载请声明来源钻瓜专利网。