1.一种自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,所述自动发现泄露模型的有学习的侧信道攻击方法包括:
学习阶段通过训练攻击模型的神经网络,寻找泄露密钥信息的中间组合值的组合形式,以及泄露该信息的能耗组合形式;所述攻击模型包括中间组合值拟合网络和能耗组合值拟合网络;
攻击阶段使用所述攻击模型识别猜测子密钥的正确性;
根据攻击得到的子密钥,恢复出加密设备的主密钥。
2.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,中间组合值的组合形式为中间组合值拟合网络gvnet的连接权重;能耗组合形式为能耗组合值拟合网络genet的连接权重。
3.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,所述中间组合值拟合网络的输入包括:
采用子密钥进行加密操作时的输入状态的[-1,1]编码;加密过程产生的所有中间值的[-1,1]编码;加密中使用的子密钥的[-1,1]编码。
所述中间组合值拟合网络输出的中间组合值是输入状态与子密钥经过任意组合运算后得到的多种组合值。
4.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,所述能耗组合值拟合网络包括多层感知器拟合神经网络、基于卷积神经网络的拟合神经网络;
多层感知器拟合神经网络用于对齐能迹的侧信道攻击,基于卷积神经网络用于对抗具有抖动防护的、非对齐能迹的侧信道攻击;
所述能耗组合值拟合网络输入能迹上包括使用子密钥进行加密操作所对应的样本范围的能耗,或该范围能耗的pca主成分向量;
所述能耗组合值拟合网络的输出值为能耗的任意方式的组合值。
5.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,学习阶段使用一组已知子密钥的训练数据集,包括使用该子密钥进行加密操作的输入状态、子密钥本身和加密操作对应的能耗样本集;
对训练数据集中的任意一组训练数据,中间组合值拟合网络gvnet拟合出中间组合值v,v=gvnet(t,k);能耗组合值拟合网络genet拟合出能耗组合值e,e=gvnet(l);
网络模型训练的目标是使v和e的相关性最高;v和e的相关性是信息泄露的最终表现;采用pearson相关系数ρ表达v和e的相关性,训练的损失函数为:
其中,第i位的相关系数为:
式中,b是v和e的位数,也就是两个网络的输出层的神经元数量;当b>1时,中间组合值拟合网络和能耗组合值拟合网络拟合出多种泄露。
6.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,学习阶段训练攻击模型的神经网络中,将当前损失采用误差梯度向后传播的方法调节中间组合值拟合网络和能耗组合值拟合网络的连接权重,优化攻击模型。
7.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,攻击阶段使用一组未知子密钥的攻击数据集,包括使用未知子密钥进行加密操作的输入状态和加密操作对应的能耗样本集;中间组合值拟合网络gvnet输入猜测的子密钥k和加密操作的输入状态,输出拟合的中间组合值v(k);
能耗组合值拟合网络genet输入加密操作的能耗样本集,输出与猜测密钥无关的能耗组合值e;根据v(k)和e的匹配程度判断猜测密钥k的正确性;与e最匹配的v(k)所采用的猜测k为正确的子密钥。
8.如权利要求1所述的自动发现泄露模型的有学习的侧信道攻击方法,其特征在于,输出的v(k)和e的相关系数;具有最大相关系数的k为正确的密钥:
k*=argmaxkρ(v(k),e)。
9.一种计算机加密设备,其特征在于,所述计算机加密设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
学习阶段通过训练攻击模型的神经网络,寻找泄露密钥信息的中间组合值的组合形式,以及泄露该信息的能耗组合形式;所述攻击模型包括中间组合值拟合网络和能耗组合值拟合网络;
攻击阶段使用所述攻击模型识别猜测子密钥的正确性;
根据攻击得到的子密钥,恢复出加密设备的主密钥。
10.一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求1~8任意一项所述自动发现泄露模型的有学习的侧信道攻击方法,包括下列步骤:
学习阶段通过训练攻击模型的神经网络,寻找泄露密钥信息的中间组合值的组合形式,以及泄露该信息的能耗组合形式;所述攻击模型包括中间组合值拟合网络和能耗组合值拟合网络;
攻击阶段使用所述攻击模型识别猜测子密钥的正确性;
根据攻击得到的子密钥,恢复出加密设备的主密钥。