利索能及
我要发布
收藏
专利号: 2021104837284
申请人: 桂林电子科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种检测和抵御差分故障攻击的方法,其特征在于,所述方法包括三部分:(1)构建冗余;

根据原始加密模块构建冗余加密模块;

(2)双重差分故障检测;

基于消息认证码方法检测冗余加密模块是否存在故障注入,并与原始加密模块对比检测原始加密模块是否存在故障注入,完成双重差分故障攻击或差分故障攻击检测;

(3)定位故障源及防护;

在确定存在差分故障注入后,基于密文差分值和感染函数检测目标算法的每一轮密文差分值,定位攻击者所注入的故障源,并使用随机数和感染函数对密文差分值进行隐藏实现防护。

2.根据权利要求1所述的检测和抵御差分故障攻击的方法,其特征在于:所述构建冗余,具体是对某一分组加密算法E进行完全复制为E',称E为原始加密模块,E'为冗余加密模块;对E和E'分别输入相同的明文P和密钥K进行加密,输出原始密文为C=EK(P),冗余密文为C'=E'K(P)。

3.根据权利要求1所述的检测和抵御差分故障攻击的方法,其特征在于:所述双重差分故障检测,具体过程如下:

(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中被注入了故障,转(2.15);

(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'中存在;

(2.15)定位故障源及防护的操作,结束检测。

4.根据权利要求1所述的检测和抵御差分故障攻击的方法,其特征在于:所述定位故障源及防护,具体过程如下:

(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轮的两个不同的随机值,针对被隐藏后输出的密文感染值,攻击者将无法进行差分故障攻击,结束定位过程。