CN109525384A - 利用神经网络进行拟合的dpa攻击方法及系统、终端 - Google Patents
利用神经网络进行拟合的dpa攻击方法及系统、终端 Download PDFInfo
- Publication number
- CN109525384A CN109525384A CN201811368271.7A CN201811368271A CN109525384A CN 109525384 A CN109525384 A CN 109525384A CN 201811368271 A CN201811368271 A CN 201811368271A CN 109525384 A CN109525384 A CN 109525384A
- Authority
- CN
- China
- Prior art keywords
- attack
- neural network
- training
- value
- energy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于密码算法分析检测领域,公开了一种利用神经网络进行拟合的DPA攻击方法及系统、终端,在训练阶段,预测神经网络根据训练能耗集,自动学习并得到能耗特征向量与中间组合值的映射关系;在高阶DPA攻击中,使用预测神经网络预测攻击能量迹的中间组合值,并计算预测中间组合值与猜测中间组合的相关系数,由此攻击设备密钥。本发明这种方法消除了在学习阶段必须了解掩码的要求,同时避免了高阶DPA对能耗交叉组合的需求,降低了攻击条件,且提高了攻击的效率;实验证实了该攻击算法的可行性和高效性。
Description
技术领域
本发明属于密码算法分析检测术领域,尤其涉及一种利用神经网络进行拟合的DPA攻击方法及系统、终端。
背景技术
目前,业内常用的现有技术是这样的:
在侧信道攻击中,利用到密码设备中能量消耗变化对其中密钥等私密信息进行攻击的方式,称为能量分析攻击。本质上,这种攻击利用了两类能量消耗的依赖性:数据依赖性和操作依赖性。基于该理论,Kocher等人在1999年首次提出DPA攻击的概念与方法,使得智能卡芯片等密码设备的安全性遭受了巨大挑战。该攻击基于的原理是,密码设备的能量消耗依赖于算法执行过程中所处理的中间值[2],例如AES加密算法中S盒的输出值。基于这点,通过分析能量消耗的轨迹曲线(简称为“能量迹”),即可得到作为攻击目标的某个中间值,并据此而进一步得到加密算法中所使用的密钥等私密信息。因为DPA攻击者无须了解关于被攻击设备的详细知识信息,所以DPA攻击也迅速成为了最流行和常用的能量分析攻击。
DPA攻击之所以会奏效,是因为密码设备的能量消耗变化依赖于设备所执行加密算法的中间值。因此,防御措施的目标,即是消除这种依赖性,让密码设备的能量消耗独立于密码算法的中间值。目前已公开的抗DPA攻击的各种对策在本质上可以分为两类,即隐藏技术和掩码技术。隐藏技术的基本思想是通过更改生产密码设备硬件的过程,使得设备的能量消耗特征发生改变,从而消除能量消耗的数据依赖性;而掩码技术的基本思想则是随机化密码设备所处理的中间值,动机是使得设备处理被随机化后的中间值所需的能量消耗,与处理实际中间值所需要的能量消耗,之间相互独立。该技术的优势在于,相对于隐藏策略来说,掩码策略无须改变处理器能量消耗特征,在实现可行性和成本方面都具有很大优势。因此,该对策在当前的加密设备中,使用最为广泛。经大量理论及实验证实,使用掩码实现的加密算法,可以不存在任何的一阶泄漏,即,无法通过DPA攻击而得到密钥等攻击者想要得到的目标信息。
目前针对于加掩实现的密码算法一般使用到的攻击方式是高阶DPA攻击。在Kocher等人首先提出了DPA的概念之后,2000年,针对于加掩密码算法,Messerges从各方面完善了n阶DPA的定义,并首次提出了2阶DPA概念及其实现方法,以加掩的DES算法为例,
通过实验证实了该方法的可行性。基于这些理论,针对于掩码策略,更多实用的方案和优化方法被提出。2004年,Jason等人提出了他们针对于2阶DPA的攻击模型以及相应算法,其中还包括一些攻击技巧,该方案在能量迹较短而相关系数较大时能取得较好的攻击效果。2005年,Marc等人提出了一套通用的二阶能量分析攻击的理论基础,并通过估计能量迹峰值的精确数值,进行了2阶DPA攻击算法的研究。高阶攻击的原理是基于能量迹中存在的某种联合泄漏,来进行的一种能量分析攻击。由于实施DPA攻击时并没有能迹上信息泄露的准确位置,必须使用遍历任意多个位置的能量消耗组合的方式进行攻击,因而攻击的时间复杂度非常高。在频率域进行能量分析攻击是一种提高DPA攻击效率的有效途径。Belgarric等于2014年提出一种对能迹进行时频分析的预处理方法。该方法针对具有一阶防护的软加密实现,通过在能迹上确定二阶DPA攻击所需的两个泄露信息的大致位置范围(窗口),采用傅里叶变换,在频域上进行攻击,从而避免对泄露能耗进行交叉组合的预处理,提高了攻击效率。
模板攻击是一种有学习的能量分析攻击方式,也被用于攻击加掩的密码算法。模板攻击利用对训练设备的已知信息,在学习阶段建立对泄露信息的精确噪音模型,从而极大地提高了攻击的效率。2006年,Oswald等人首次结合了模板攻击的方式,提出了基于模板的DPA攻击。2007年,Lemke-Rust等提出直接使用模板攻击加掩加密算法的方法。该方法利用训练设备,学习关于泄露中间值和掩码的综合模板,在攻击时同时攻击设备的掩码和密钥。2015年,Lerman等提出使用支持向量机建立关于掩码和去掩后中间值的模板。在攻击中利用掩码的模板首先攻击掩码,去掩后再攻击密钥。同年,Gilmore,R等提出相同的攻击思路,但其模板采用神经网络。这些研究中提出的方法均需要攻击者在学习阶段了解设备在每次加密中使用的随机掩码。这种要求非常苛刻,并不是在所有攻击中都能具备的。
现有技术中,存在如下特点:
一阶DPA:用于攻击没有掩码防护的加密设备的密钥。方法是计算多条能迹(一般几千条)上能耗与加密过程中的某个中间值的Person相关系数。中间值是根据猜测密钥计算的。因此,具有最高相关系数的猜测密钥被认为是正确的密钥。然后通过加密已知密文的明文,看加密结果与密文是否相同来判断密钥是否正确。
高阶DPA:用于攻击具有加掩防护的加密设备。由于每条能迹采用随机掩码,是信息无法在能迹的单个位置上泄露,无法用1阶DPA攻击。但多个能迹位置上能耗的组合(一般是相乘)与加密过程中的多个中间值的组合值有相关性(即有少量的泄露)。由于不知道这些中间值在能迹上对应位置,攻击中只能将能迹上的任意两个位置上的能耗进行组合,从而计算与各猜测密钥的中间组合值的相关系数。最终取具有最大相关系数的两个组合位置和猜测密钥。因此效率非常低下。
高阶DPA攻击:
DPA攻击具有这样的特性:可以预测出某一个中间值,并可以在攻击中利用这一个预测值。因为这些DPA攻击仅利用一个中间值,故称之为1阶DPA攻击。如果表达假设的过程中使用多个中间值,则称相应的DPA攻击为高阶DPA攻击。
高阶DPA攻击的原理是,多个中间值的某种组合值与多个位置上能耗的某种组合值的相关系数不等于0。而具体的中间值组合方式则需要通过理论分析建模以及多次实验尝试来确定,待定目标则是能量泄漏模型及中间值联合泄漏位置。
基于上述理论,一种较为简易的2阶DPA攻击的算法:
(1)假设两个中间值v1,v2的泄漏样本位置P1,P2之间的间距为W。选择一个P1的起始位置A0,即可计算出Person相关系数ρ(comb(v1,v2),pre(P1,P2))。其中,comb(v1,v2)是两个中间值的组合值,
pre(P1,P2)是两个样本位置上能量消耗的组合值。
(2)不断向右移动P1的位置A,记录相关系数ρ的最大值。
(3)并将w减小,返回步骤1重复执行上述步骤。
(4)所有遍历结束后,挑选其中最大的相关系数ρ作为最终结果。该值即为本次密钥猜测值k中相关系数ρ的最大值ρk(k)。
(5)针对可能的所有密钥猜测值进行上述操作,并将所有的ρk值进行排序,取ρk最大值所对应的密钥猜测值,作为本次2阶DPA攻击的最终结果。即密钥k的选择公式为:k=argmax[ρk(k)]。
该方法基于提出高阶DPA方式的文献,在理论上确实能够适用于掩码实现的加密算法,且在实验中取得了部分效果。但其劣势也很明显,算法在时间复杂度上呈指数形式,攻击成本过大,因为无掩中间组合值与能耗组合值的理论相关系数本身就比较低。这导致了在实践攻击中需要使用更多的攻击能迹。
综上所述,现有技术存在的问题是:
(1)在侧信道攻击中,作为抵抗一阶DPA攻击的对策,掩码策略是当前使用最为广泛的防御方式之一。目前针对于掩码策略通常使用高阶DPA。但由于高阶DPA攻击的是多种信息的联合泄露,需要对多个位置的能耗进行交叉组合,导致其攻击效率低下。假设能迹上攻击区域的样本数量为n,其能耗交叉组合的计算复杂度是O(nd),其中d为高阶攻击的阶数,也就是加掩防护中使用的掩码的数量加1,d≥2。能耗交叉组合后得到n种预处理能迹集,攻击中计算Person相关系数的复杂度为O(n*256)=O(n)。其总体计算复杂度为:O(nd)+O(n)=O(nd+1)。假设n=5000,二阶DPA攻击(d=2)需要进行50003=1250亿次计算。可见需要的计算量非常大。(2)高阶模板攻击是另一种攻击具有掩码防护加密设备的方法。高阶模板攻击需要在学习阶段同时对掩码和去掩中间值建立模板,因此必须了解每次加密中使用的随机掩码。攻击者必须能够完全控制训练设备(能够修改训练设备中的加密代码),才可以了解随机掩码,而这一条件一般都难以满足。因此,高阶模板攻击的可应用场景非常有限。
解决上述技术问题的难度和意义:
首先,降低了对加掩防护加密设备实施攻击的门槛。攻击者在训练阶段无需了解训练设备所采用的随机掩码,可以直接创建对中间组合值的拟合神经网络,使其能够预测攻击中使用的攻击能迹的中间组合值,从而获取被攻击设备的密钥。
其次,提高了对加掩防护加密设备的攻击效率,解决了高阶DPA攻击计算法复杂度极高的问题。假设能迹上攻击区域的样本数量为n,本发明在攻击时神经网络的前馈计算复杂度为O(n2),得到一种预处理结果(即预测的中间组合值),计算与猜测密钥对应的猜测中间组合值的Person相关系数的复杂度为O(256)=O(1)。总体计算复杂度为:O(n2)+O(1)=O(n2)。这样,本发明方法将攻击的计算复杂度从O(nd+1)降低到O(n2)。假设n=5000,二阶DPA攻击(d=2)需要进行50003=1250亿次计算,而本发明方法仅需要进行50002=2500万次计算。
发明内容
针对现有技术存在的问题,本发明提供了一种利用神经网络进行拟合的DPA攻击方法及系统、终端。
本发明是这样实现的,一种利用神经网络进行拟合的DPA攻击方法,所述利用神经网络进行拟合的DPA攻击方法包括:
在训练阶段,预测神经网络根据训练能耗集,自动学习并得到能耗特征向量与中间组合值的映射关系;
在高阶DPA攻击中,使用预测神经网络预测能量迹的中间组合值,并计算预测中间组合值与猜测中间组合的相关系数。从而判断猜测密钥正确性。
进一步,所述利用神经网络进行拟合的DPA攻击方法具体包括:训练与攻击两个阶段,其中,训练阶段包括:
(1)对加掩AES算法能量迹数据及能量泄漏模型,建立相对应的前向拟合神经网络net;
(2)选择目标中间组合值为S盒输入输出值异或的汉明重量并通过明确兴趣点和兴趣区间两种方式生成能耗特征向量;
(3)利用能量迹数据的能耗特征向量对预测网络进行训练,将输入的能量迹数据拟合为AES加密过程中的中间组合值;
攻击阶段包括:
1)利用训练好的预测网络,对攻击能迹e进行拟合,拟合结果为net(e);计算拟合值与猜测密钥k所对应的猜测中间值组合值comb(k)的相关系数ρ(comb(k),net(e));
2)将相关系数降序排列,选择最大相关系数的前n个猜测密钥作为候选密钥。
进一步,预测网络模型包括:
预测网络的输入为能迹特征向量,输出为拟合的中间组合值;在训练阶段,训练的损失函数采用最小均方差MSE;
假设神经网络的训练数据集Z+中,含有n个条能迹特征向量及其对应的正确中间组合值,记为[Pi,Ti],i∈Z+;训练时,神经网络的输出拟合值为Yi,有:
训练中采用误差梯度反向传播更新网络的连接权重。
进一步,攻击阶段进一步包括:
首先进入密钥猜测循环,猜测密钥k'取0至255;
令猜测中间组合值为
使用神经网络预测的中间组合值为z=net(e),其中e为攻击能迹特征向量;
计算y与z之间的相关系数其中,函数E为样本期望,函数D为样本方差;
猜测密钥加一,若猜测密钥小于256,则继续循环;循环结束后,根据每个猜测密钥对应的相关系数ρy,z进行排序,相关系数最大值对应的猜测密钥则为攻击结果;
若攻击结果与实际密钥相匹配,则代表攻击成功;将攻击测试次数记为N,攻击成功次数记为N0,则攻击成功率η为:
本发明的另一目的在于提供一种计算机程序,所述计算机程序运行所述的利用神经网络进行拟合的DPA攻击方法。
本发明的另一目的在于提供一种终端,所述终端至少搭载实现所述利用神经网络进行拟合的DPA攻击方法的控制器。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的利用神经网络进行拟合的DPA攻击方法。
本发明的另一目的在于提供一种运行所述利用神经网络进行拟合的DPA攻击方法的利用神经网络进行拟合的DPA攻击控制平台。
综上所述,本发明的优点及积极效果为:
针对高阶DPA攻击时间复杂度高,而模板攻击学习条件不易满足的问题,本发明提出有学习的高阶DPA攻击的方法,在不提高对学习条件的要求的前提下,有效提高高阶DPA攻击效率。该方法在学习阶段只需要了解训练设备的密钥,利用神经网络建立对无掩中间值的拟合模型。攻击中,利用模型获取攻击能迹的带掩中间值,然后利用一阶DPA攻击设备的密钥。由于一阶DPA不需要多个泄露位置上能耗的交叉组合,因此该方法可以显著地提高攻击效率。
实验也证实了本发明攻击的时间效率远高于高阶DPA攻击。在对二阶加掩的AES算法的加密设备的攻击实验中,采用5000条能迹进行的二阶DPA攻击耗时20.42小时,本发明的方法采用5万条能迹进行训练的时间为5148秒,采用5000条能迹攻击用时12s,耗时只有二阶DPA攻击的1/6100。虽然本发明方法训练神经网络模型还需要一定时间,但由于训练是一次性的,即训练好的神经网络模型可以反复用于攻击同类的不同密钥的设备,因此训练时间并不影响本发明方法攻击的高效性。由此可见,本发明方法极大地提高了对采用加掩策略的加密设备的攻击效率。
虽然本发明方法不需要攻击者了解训练能迹的随机掩码,与必须了解随机掩码的高阶模板攻击的应用场合不同,但为了公平起见,实验中也进行了高阶模板攻击。高阶模板攻击的实验中采用5万条已知掩码的训练能迹,建立的模板数量为:掩码数×中间值数=256×256=65536个模板。攻击中采用20条能迹即可攻击成功,攻击用时5.6s。无论从攻击所需要的能迹数和攻击时间上看,高阶模板攻击比本发明方法仍然有一定优势,但从攻击时间上看,优势并不明显,都在秒级的范围内。但高阶模板攻击必须了解训练能迹的随机掩码。绝大多数情况下,攻击者无法达到这一条件。而无需了解随机掩码则是本发明方法对高阶模板攻击的优势所在。
附图说明
图1是本发明实施例提供的前向神经网络结构示意图。
图2是本发明实施例提供的前向拟合神经网络结构示意图。
图3是本发明实施例提供的过拟合示意图。
图4是本发明实施例提供的加掩AES算法的能量轨迹示意图。
图5是本发明实施例提供的加掩AES算法能量迹中第一轮加密操作示意图。
图6是本发明实施例提供的前向拟合神经网络实验结构效果示意图。
图7是本发明实施例提供的以明确兴趣点输入神经网络的训练结果示意图。
图8是本发明实施例提供的以兴趣区间上多点输入神经网络的训练结果示意图。
图9是本发明实施例提供的隐藏层使用sigmoid作为激活函数的训练结果示意图。
图10是本发明实施例提供的具有2个隐藏层的神经网络训练结果示意图。
图11是本发明实施例提供的基于神经网络的高阶DPA攻击算法流程图。
图12是本发明实施例提供的不同能耗特征向量生成方式的实验对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明采用神经网络建立能耗对无掩中间组合值的拟合模型,基于拟合无掩中间组合值与猜测无掩中间组合值的相关系数进行攻击。
这种方法消除了在学习阶段必须了解掩码的要求,同时避免了高阶DPA对能耗交叉组合的需求,降低了攻击条件,且提高了攻击的效率。实验证实了该攻击算法的可行性和高效性。
本发明实施例提供的利用神经网络进行拟合的DPA攻击方法,包括:
在训练阶段,预测神经网络根据训练能耗集,自动学习并得到能耗特征向量与中间组合值的映射关系;
在DPA攻击中,使用预测神经网络预测能量迹的中间组合值,并计算预测中间组合值与猜测中间组合的相关系数。
下面结合神经网络对本发明做进一步描述。
人工神经网络,是一种在生物神经网络的启示下建立的数据处理模型。其通过大量的人工神经元相互连接进行计算,并根据外界信息改变自身结构。主要工作方式为通过调整神经元之间的权值来对输入的数据进行建模,并且最终获得解决实际数学问题的能力。
神经网络最主要的两个特点便是其自学习和自适应性以及非线性性。其中,自适应性是指一个系统能够根据外界环境的改变,而对自身结构与作用作出相应的变化的特性;而非线性性则是代表具有能够处理显示生活中两者之间非线性关系的能力。在神经网络中,神经元的状态可以表现出数学上的非线性关系,从而可以通过改变神经网络中的权值参数,使得神经网络的整体能够完成所需要的非线性映射功能。利用这两个特点,神经网络可以很好的对当前高阶能量分析攻击的方式进行改善,使得攻击算法能够具有自适应性,进而保证了攻击的成功率,并且非线性的映射关系能够完美的匹配高阶攻击中的能量泄漏模型。
神经网络类别:
从神经网络的网络结构来划分,可分为前向神经网络和递归神经网络。
在前向神经网络中,数据由输入层至输出层单向传播。通常情况下,每层神经元都是全连接到下一层的各个节点,每一个神经元上的激活函数采用Sigmoid函数。最简单的一种前向神经网络是“感知器”。感知器神经网络(单层感知器)是一种两层的网络结构,且该结构仅仅只能处理线性的数学问题。
其它常用的神经网络类型有:线性神经网络、BP神经网络、径向基神经网络、自组织竞争神经网络、反馈神经网络、随机神经网络,以及深度神经网络的各种结构等等。
在本发明采用的是前向拟合神经网络。
前向神经网络,如图1,
前向神经网络,是对神经元进行分层组织形成的一个具有分层结构的神经网络。其又分为单层前向神经网络和多层前向神经网络。通常情况下,其组织结构中具有多个层,且神经元仅在不同的相邻层之前连接,而不存在同层神经元之间的相互连接。前向神经网络的结构如图2所示。
前向神经网络隐层的神经元激活函数一般采用sigmoid函数,或tanh函数。
由于神经元的激活函数是非线性的,前向拟合神经网络具有非线性拟合能力。在训练中,需要定义一个损失函数,用以计算当前输出与目标值的误差。训练的目标是使该损失最小化。实现的方法是误差反向传播。
各神经元接收前一层的输入,并输出给下一层,传输信号不存在反馈。节点分为两类,即输入节点和计算节点,每一个计算节点可有多个输入,但只有一个输出,通常前向神经网络可分为不同的层,输入与输出节点与外界相连,称为输入层与输出层。其它中间层则称为隐层。隐藏层是前向拟合神经网络中位于输入层与输出层之间的中间层,层数为1层或多层。其作用为,把一类输入数据的模式中与其它类输入数据的模式不匹配的属性提取出来,再将提取的属性传递到输出层。最终,将由输出层对数据做出判断。这是一个抽取输入数据属性的过程,本质上是实现了输入层与隐藏层之间连接权系数的调整,体现了神经网络结构的自适应性。
在信号传输的同时,采用梯度下降等算法,将误差反向传播到网络中的每个连接上,以此作为更新连接权重的依据。在训练阶段,如果神经网络的输出值与期望值不一致,则将其误差从输出端开始反向传播,在该过程中不断修改各个权值,使得输出值向期望值不断靠近,最终完成对神经网络的训练。
下面结合中间组合值的学习和攻击模型对本发明作进一步描述。
基本思路:
学习阶段:用已知密钥的加掩加密设备加密很多明文,得到很多能迹。更加已知的密钥,计算加密过程的中间组合值,并训练神经网络,使其可以根据一段能耗,拟合出大致的中间组合值。这一过程并不需要知道掩码。
攻击阶段:对未知密钥的加掩防护的加密设备(同类的),加密很多明文,得到很多能迹。用这些能迹作为神经网络的输入,拟合出(神经网络的输出)中间组合值。计算拟合中间组合值与猜测密钥中间组合值的相关系数。取最大相关系数的密钥
基于神经网络的高阶攻击方式
高阶DPA攻击,是高阶DPA攻击算法中的一种常用方式。高阶DPA可以攻击采用掩码策略防护后的加密算法,然而由于其攻击中需要计算能迹上任意多个样本的能耗组合值,其攻击效率很低。为了解决这个问题,本发明提出结合神经网络的高阶DPA攻击方法。
高阶DPA攻击方式其效率非常低下。针对这一问题,本发明的思路是使用神经网络预测能量迹的中间组合值,进而计算预测中间组合值与猜测中间组合的相关系数。其中的关键在于,在高阶DPA攻击中,将能耗组合值替换为神经网络根据能耗特征向量预测的中间组合值。该神经网络成为“中间组合值预测网络”,在后文中简称为“预测网络”。预测网络在训练阶段根据训练能耗集,自动习得能耗特征向量与中间组合值的映射关系。理想情况下,神经网络模型能够完全正确地预测中间组合值。虽然在加掩算法中能耗组合值与目标中间组合值之间的相关系数小于1,神经网络将无法完全准确地预测正确的中间组合值,但仍然可以在一定程度上预测正确的中间组合值。这样,预测中间组合值与正确中间组合值之间的相关系数虽然小于1,但仍然大于0。因此,可以用于对正确密钥的判断。
这种方法相对于普通高阶DPA攻击的优势在于:
(1)在训练阶段,可以利用神经网络的高度非线性转换能力,自动识别出能耗特征向量中能耗的组合方式,而不需要人为指定能耗组合的计算公式。其识别的能耗组合方式有能力排除能迹特征向量中与目标中间组合值无关的能耗特征,同时对有效的特征提供更好的组合方法。
(2)攻击时,预测网络直接输入能耗特征向量,例如指定的一段样本区域,就可以得到预测的中间组合值。这样无需在样本区域中进行全排列以得到能耗组合值,因而极大地提高了攻击效率。
基于神经网络的高阶DPA攻击具体实现步骤分为训练与攻击两个阶段,其中,训练阶段的步骤为:
(1)针对加掩AES算法能量迹数据及其能量泄漏模型,建立相对应的前向拟合神经网络net。
(2)选择目标中间组合值为S盒输入输出值异或的汉明重量并通过明确兴趣点和兴趣区间两种方式生成能耗特征向量。
(3)利用能量迹数据的能耗特征向量对预测网络进行训练,使之能够将输入的能量迹数据拟合为AES加密过程中的中间组合值。
攻击阶段的步骤为:
(1)利用训练好的预测网络,对攻击能迹e进行拟合,拟合结果为net(e)。计算拟合值与猜测密钥k所对应的猜测中间值组合值comb(k)的相关系数ρ(comb(k),net(e))。
(2)将相关系数降序排列,选择最大相关系数的前n个猜测密钥作为候选密钥。
能迹特征向量的提取与预处理:
实验设备采集的能量迹上共包含几十万个样本点。显然,不可能将所有样本的能耗作为神经网络的输入。这会导致前向拟合神经网络的训练的时间复杂度和空间复杂度大为增加。对此,本发明需要提取出能迹上包含相关信息泄露的特定样本,从而将能迹转换为能迹特征向量,从而达到保留有效信息、降低数据维度的目的。实现能迹特征向量的提取可以有两种方案。一是寻找发生信息泄露的准确位置,称为兴趣点(POI),通过提取兴趣点得到能迹的特征向量;二是采用能迹上可能发生信息泄露的一段区域,称为兴趣区域(Regionof Interesting,ROI),提取该区域的能耗样本作为了就能迹的特征向量。
提取兴趣点的方法采用改进的专用局部搜索算法,对加掩AES密码算法的能量迹数据进行兴趣点查找工作。此方法基于一个由Durvaux等人提出的兴趣点检测工具“COSADE2015 POI”。使用到该兴趣点检测算法,本发明可以明确的找到S盒在输入输出时的信息泄漏位置,即兴趣点。该结果将作为第5章中“明确位置的兴趣点输入方式”的实验参数。
提取兴趣区域(ROI)采用可视化的方式,根据算法迭代运算在能迹上产生的能耗的规律性的变化,确定需要攻击的大致能耗范围。这种方式完全不需要了解训练中使用的掩码,但区域中包含的能耗样本数可能仍然很多,需要采用主成分分析(PrincipalComponent Analysis,PCA)进行降维处理。PCA是被各个领域广泛采用的维度缩减方法。其思路是将线性相关的多个特征转换为无关的特征(称为主成分)。主成分包含的信息用方差来表示。方差越大的主成分,其包含的原始信息越多。降维时,可以选择方差最大的前N各主成分,或者选择对方差的贡献率达到某个阈值的前N各主成分。
PCA不仅起到维度缩减的功能,其前面几个特征向量包含最多的信息,从而具有最大的信噪比。正因如此,PCA也有提高信噪比的作用。
输入数据归一化处理对前向拟合神经网络非常重要。由于输入的不同位置的能耗存在量级上的差异,PCA处理后得到的主成分也存在量级上的差异,如果直接作为神经网络输入,较大的能量消耗数值在训练中的影响较大,会造成其它能量消耗数据的影响弱化,最终影响神经网络的拟合能力。在本次研究中,由于神经元的激活函数使用到sigmoid函数或tanh函数,其函数值被固定在一个较小的范围之内,因此对数据进行归一化处理是十分必要的。归一化处理技术包括将数据映射为[-1,1]的MapMinMax方法,MVN(Mean VariantNormalization)以及z-score标准化方法等。本次研究中将采用z-score标准化对数据进行处理。z-score标准化处理基于数据的均值和标准差,来对数据进行归一化处理。其适用范围是,数据的最大值和最小值均未知,或者是针对于超出取值范围的数据。z-score将能耗特征向量的各维映射到均值为0,方差为1的范围。
下面结合具体分析对本发明作进一步描述。
预测网络及其训练:
预测网络是用于根据能迹特征向量预测加密过程的中间组合值的神经网络。由于能耗数据中包含的噪声很高,信噪比很低,在神经网络的训练中必须采用一些措施才能训练出有效的预测网络。以下介绍预测网络的模型及其训练方法。
预测网络模型:
由于本发明需要使用神经网络来预测中间组合值的具体数值,因此采用拟合神经网络,即神经网络的输出只有一个神经元。图2表达了一个具有输入层,隐藏层,输出层的前向神经网络结构。网络各层的神经元采用全连接。其中输入层的神经元数量等于能迹特征向量的维度,输入层神经元为线性激活函数。隐层可以包含多层,其层数和各层的神经元数量与训练数据集的大小,特征的数量相关,需要在实验中确定。隐层神经元的激活函数可以采用sigmoid,tanh,ReLU等。输出层仅包含一个神经元,其激活函数为线性函数,输出网络的拟合值。
预测网络的输入为能迹特征向量,输出为拟合的中间组合值。在训练阶段,训练的目标是尽可能减小预测网络的拟合中间组合值与真实中间组合值的差异。因此训练的损失函数采用最小均方差(MSE)。
假设神经网络的训练数据集Z+中,含有n个条能迹特征向量及其对应的正确中间组合值,记为[Pi,Ti],i∈Z+。训练时,神经网络的输出拟合值为Yi,那么有:
训练中采用误差梯度反向传播更新网络的连接权重。具体的算法可以采用LM(Levenberg Marquardt)算法或量化共轭梯度法(scaled conjugate gradient,SCG)等。
训练中防止过拟合:
过拟合是指训练得到的映射模型过分与训练数据匹配,导致模型失去了泛化能力。过拟合线性可以用图3的示意图表示。在训练集中,输出与目标拟合程度很高,而对于非训练数据,拟合程度则很差。过拟合现象的表现形式为,当训练过程进行到一定程度时,模型对训练数据和验证数据的损失分布减小到一定程度。此时,如果继续对神经网络进行训练,训练集的损失会进一步减小,而验证集的损失反而开始逐渐增大。
在一般情况下,过拟合是由于过度训练,造成模型中体现出过多的、仅出现在训练集中的“特征”。为了避免出现过拟合,神经网络训练时,一般将训练数据划分为两个子集:训练集和攻击测试集。当训练集的性能处于连续上升的状态而测试集的性能却在同时出现连续下降的状态,就表明出现了过拟合。此时,应该停止对神经网络的训练。这种防止过拟合的方法称为“early ending”。
然而,造成过拟合还有另一个因素,即训练数据中包含了过多的噪音。对于能迹特征向量,其信噪比很低,过拟合在训练的极早期即可能出现。此时,验证集的损失仍然非常大,网络的拟合能力非常差。此时,必须采用正则化训练方法来防止此类过拟合。
首先,正则化就是在最小化经验误差函数之上添加约束,该约束可以解释为先验知识,即,正则化参数等价于对参数引入先验分布。约束具有引导的作用,在优化误差函数的时候倾向于选择满足约束的梯度减少的方向,使目标函数的最终解倾向于符合先验知识。
其次,正则化解决了逆问题的不适定性,产生的解是存在且唯一的。同时,也依赖于数据。噪声对于训练的影响就会变弱,训练中就不会出现过拟合现象。而且,如果正则化适当,则训练中数学模型的参数也就更加符合真实情况。
L2正则化是机器学习算法中常用的正则化训练方法。L2正则化项可以认为是为模型导入了先验分布,对模型向量进行“惩罚”,从而避免单纯最小二乘问题的过拟合问题。L2正则化的方式是在损失函数之后增加一个正则化项:其中,C0代表原始的代价函数,则是L2正则化项,其中ω为神经网络中的所有权重,n为权重的数量,λ为正则项系数,用来权衡正则项与C0的比重。
L2正则化项有着使得神经网络中权重方差变小的效果。较小的权重方差代表神经网络的复杂程度低,对训练集数据的拟合程度是恰当的,不会存在对训练集数据过多无关细节的拟合。在实际应用中,使用到L2正则化后神经网络的训练效果,通常优于未经L2正则化处理过的神经网络训练效果,即过拟合很大程度上被抑制了。
下面结合实验分析对本发明作进一步描述。
为验证本发明提出的基于神经网络的高阶攻击方法,对AES加掩加密设备进行了攻击实验。实验分为两个部分,分别采用发现兴趣点的方法和设置兴趣区域的方法获取能迹特征向量对神经网络进行训练和攻击,以对比这两种方法的优劣。
本次实验基于一个执行在智能卡上的AES算法。实验设备由示波器,智能卡及其读卡器,计算机,电源等组成,其中的计算机负责向读卡器下发命令控制智能卡运行AES加密算法,同时,通过USB线向智能卡下发明文信息。并且,在智能卡工作的时,给示波器触发信号,用以进行能量迹采集。示波器将采集到的能量迹信息通过双绞线发送到计算机中进行存储。其中,示波器的采样信号为读卡器供电处串联电阻的两端电压。在能量迹数据测量与采样结束之后,再通过相应的分析软件对信号进行进一步的处理。
计算机控制智能卡实现随机明文的加密运算,并通过示波器采集每次加密运算中第一轮运算所产生的能量迹,采样率设为250MHz。对采集的第一轮运算的功耗进行简单滤波处理后如图4所示。
本发明的攻击对象为S盒的输入输出,对于攻击者来说有效的信息为关于S盒输入中间数据操作和S盒输出中间数据操作所产生的功耗,为减少无效的功耗信息,提高信噪比,后续可对能量迹数据进行归一化处理。
采样完毕之后我们得到了关于加掩实施AES算法的能量迹10000条,并将其作为样本进行后续的攻击实验。并样本分为训练集和攻击测试集两部分,其中,8000条能量迹作为训练集,2000条能量迹作为攻击测试集。
能迹特征向量提取与预处理:
(1)通过发现兴趣点提取能迹特征向量
根据寻找兴趣点的方法,在加掩AES算法的能量迹中第一轮S盒的范围内找到输入与输出部分的两个明确的兴趣点位置。在包含2000条能量迹的攻击测试集中,该位置将生成2000*2的能迹特征向量矩阵。
(2)通过指定兴趣区域提取能迹特征向量
通过平均能迹的可视化方法,可以发现轮操作范围及S盒的操作范围。
图5为加掩AES算法第一轮加密的能量消耗轨迹。从图上可以明显看出第一轮中的16个S盒操作的能量消耗变化规律。虚线框的范围就是第一个S盒置换操作的样本范围。
可以看出,一个S盒范围内的样本数较多,其中兴趣区间中的样本数量达到了4000左右,即实验中使用到的能量迹数据仍然过于庞大。因此在本次研究中,我们将使用到更加适合基于神经网络的高阶攻击方式的PCA降维技术,对能量迹进行处理。
使用描述的PCA步骤,首先根据可视化的方法选择兴趣区间,接着对兴趣区间上的数据进行处理,首先进行特征值分解,然后将能量迹转换为特征向量。将贡献度设置为0.8,并将能量迹数据的主成分对应的特征向量作为降维结果,在包含2000条能量迹的攻击测试集中,可以将2000*4000的矩阵缩减为2000*22的能迹特征向量矩阵。
(3)能迹特征向量的预处理
在得到能迹特征向量之后,使用训练特征向量集中的数据得到z-score的参数,即总体样本数据的数学期望,以及标准差,并使用该参数同时对训练特征向量集和验证特征向量集进行归一化处理。
神经网络结构与训练:
实验中采用描述的3层前向拟合神经网络。第一层为数据输入层;第二层为隐层,起到非线性转换的作用。其中的神经元具有非线性响应特征,对第一层的输入进行非线性转换。响应函数采用默认的tanh函数;第三层为输出层,仅包含一个神经元,对第二层的输出进行线性转换。其中,输入层的大小(包含的神经元数量),取决于输入数据的维度;隐层的大小,一般难以确定最优值。在一般情况下,更大的输入维度和更强的非线性转换,需要更大的隐层。但在“需要”的隐层大小上再增加其神经元数量,对非线性转换并没有提高作用,却会增加计算量。在实践中,隐层的大小通常是由多次试验的结果来确定。
在本次实验中,神经网络的输入是能耗特征向量,输出是加密过程的中间值组合值。需要说明的是,对每个需要攻击的子密钥,需要建立相应的神经网络,用于训练针对该子密钥的模板。前向拟合神经网络作为模板时的实验结构如图6所示:
具体的训练步骤为:
首先定义能量迹集合的总数量,训练集总数量,及攻击测试集总数量。接下来进入训练阶段,建立前向拟合神经网络fitnet,其中输入层节点数根据采用能量迹上的明确的兴趣点和兴趣区间上的多个点,两种不同的攻击方式而定。隐藏层大小为100,输出层节点数为1,输出为能量迹的拟合中间组合值,即然后,将训练集数据及其对应的中间组合值数据输入神经网络进行训练。
接下来,以明确兴趣点的攻击方式训练参数为例,介绍fitnet拟合神经网络训练结束条件采用的默认结束条件,训练结束时的各指标状态中,在训练进行的过程中,数据的变化代表着训练进度。
(1)Epoch为训练次数:在其右边显示的是最大的训练次数,可以设定,本次实验中设为1000,而进度条中显示的是实际训练的次数,本次训练进行了8次后结束。
(2)Time为训练时长,也就是本次训练进行的时间。
(3)Performance为性能指标,在本次训练中为最小均方差MSE。进度条中显示的是当前的MSE,右侧显示的则是设定的MSE阈值(若训练过程中MSE值小于阈值则停止训练)。
(4)Gradiengt为梯度,进度条中显示的是当前的梯度值,右侧显示的则是设定的梯度值阈值(若训练过程中梯度值小于阈值,则停止训练)。
(5)Mu即为LM算法中μ参数的值,进度条中显示的是该参数的当前值,而右侧显示的是μ参数的阈值,当μ参数的当前值高于阈值时结束训练。
(6)validation check为泛化能力检查,若连续6次训练中误差未能降低,则结束训练。
上述六个参数中有五个参数代表着训练的结束条件,并且该5个结束训练的条件只需达成一个条件即结束训练。从图中我们可以看出,本次训练是因为泛化能力检测而结束,即第2次训练时MSE达到最小值,且在之后的6次训练中未能降低,因此在第8次训练之后训练结束。
本实验对比了两种能量迹特征向量的生成方式,分别是提取兴趣点和使用能量迹中一段兴趣区间。对比实验的目的是为了证实该攻击方式可以在事先不能找到明确的泄漏位置时,对加掩实现的AES算法成功地攻击。另外,通过比较训练效果及攻击性能等参数,可以证实神经网络能够自动的找到能量迹中更加合适的中间值组合方式。在提取兴趣点作为能量迹特征向量时,神经网络输入层共含有两个节点;在使用兴趣区间作为能量迹特征向量时,神经网络输入层共含有多个节点,在本实验中输入层大小为22。
在拟合神经网络的训练中,使用到的训练集数据被分为train set,validationset和test set三部分。其中train set是用来训练模型或确定模型参数的,如神经网络中的权值等,validation set是用来做模型选择的,即作模型的最终优化与确定,如神经网络的结构,而test set则是用来检验最终选择最优模型性能的,目的是为了测试已经训练好的模型的推广能力。在本次实验中,将训练集的70%作为train set,15%作为validationset,以及15%作为test set,以此方式进行神经网络的训练。
两种方式的训练结果如图7与图8所示,其中,以明确兴趣点输入神经网络的训练方式中,最小均方差MSE值达到了2.0610;而以兴趣区间上的多点输入神经网络的训练方式中,最小均方差MSE值达到了1.9828。可以看出,后者的训练效果要优于前者,即后者训练出的神经网络,拟合的结果将更为精确。
然后,针对以兴趣区间上的多点输入神经网络的训练方式,我们将隐藏层激活函数由默认的tanh函数改为sigmoid函数做对比实验。其训练结果如图9所示。最小均方差MSE值达到了1.9775,其训练结果与隐层使用tanh作为激活函数的训练结果相差不大。
最后,将通过修改隐藏层的层数,做神经网络训练进一步的对比实验。为确保神经网络参数数量基本不变,我们将隐层的层数改为两层,其中,每一个隐含层分别含有40个神经元。该神经网络的训练结果如图10所示。
该训练中,最小均方差MSE值达到了2.0032,其训练结果与相较于单层隐藏层的神经网络而言有所下降。原因是神经网络的层数越多,针对于非线性关系的拟合能力就会越强大。同时,发生过拟合现象的可能性也将增大。从图中我们可以看出,在训练的后半部分,随着train set误差的逐步减小,validation set和test set的误差有着明显的升高现象,这是在之前对比试验中未出现的,说明该神经网络的拟合能力过强导致了过拟合现象的发生。由此可以看出,隐藏层的层数及节点数量,均需要基于理论分析和大量实验才能够确定。
下面结合基于神经网络的高阶DPA攻击对本发明做进一步描述。
在攻击阶段,前向拟合神经网络根据一个输入能耗向量(与训练能耗向量进行同样的归一化处理),输出一个中间组合值的拟合值。获取该特征向量的方式分为两种,即以明确兴趣点作为特征向量与将一段兴趣区间上的多点作为特征向量。
在采用多条能迹进行攻击的情况时,需要计算对某个猜测的子密钥,这些攻击能迹的联合概率。本次实验采用隐层大小为100的前向拟合神经网络作为模板,输出为汉明重量的拟合值。输入分别使用明确的兴趣点(采用第一轮,第一个S盒的输入和输出的两个准确的泄漏位置的能耗)和兴趣区间上的多点,两种方式,进行攻击性能对比。
接下来使用之前训练好的前向拟合神经网络对攻击测试集中的能量迹对加掩的AES算法的加密能迹进行高阶攻击,攻击目标为加掩AES算法第一轮加密中S盒的轮密钥。得到神经网络输出后计算目标相关系数并排序,将正确的轮密钥与排序结果对比。
具体的攻击步骤为:
(1)首先进入密钥猜测循环,猜测密钥k'取0至255。
(2)令猜测中间组合值为
(3)使用神经网络预测的中间组合值为z=net(e),其中e为攻击能迹特征向量。
(4)计算y与z之间的相关系数其中,函数E为样本期望,函数D为样本方差。
(5)猜测密钥加一,若猜测密钥小于256,则继续循环。循环结束后,根据每个猜测密钥对应的相关系数ρy,z进行排序,相关系数最大值对应的猜测密钥则为攻击结果。
(6)若攻击结果与实际密钥相匹配,则代表攻击成功。将攻击测试次数记为N,攻击成功次数记为N0,则攻击成功率η为:
攻击的流程图如图11所示。
在攻击测试集包含2000条能量迹的攻击中,以明确兴趣点作为输入的方式,神经网络输入层大小为2,正确的轮密钥排在结果中的第1位,相关系数为0.0891,排在第二位的猜测轮密钥的相关系数为0.0708。而以兴趣区间上的多点作为输入的方式,神经网络输入层大小为22,正确的轮密钥排在结果中的第1位,相关系数为0.1771,排在第二位的猜测轮密钥的相关系数为0.0750。
由于第二种攻击方式得出正确结果的相关系数与错误结果相差更大,而第一种方式的结果则是各个猜测密钥之间的相关系数相差很小,证明了使用兴趣区间上的多点作为神经网络输入的方式,攻击性能要明显优于使用明确兴趣点作为神经网络输入的方式。从图12中两种输入方式的结果比较可以看出,输入为兴趣区间上多点的方式,得到正确密钥的对应相关系数,与错误猜测的密钥相比,(横轴为1的函数值与其它位置的函数值相比)差距更加明显,使得攻击的成功率得到了很大地提高。
以上结果证明,虽然两种输入方式都可以攻击成功,但以兴趣区间上的多点作为输入的方式,攻击性能要明显优于以明确兴趣点作为输入的方式。这是因为,仅通过两个兴趣点来提取信息会导致大量泄漏信息的丢失,而使用到兴趣区域的提取方式则能够更好地保留这些泄漏信息,并通过神经网络来有效组织它们的组合方式,最大程度地利用了能迹上的泄漏信息。
为了验证本研究提出的基于神经网络的高阶攻击的攻击能力,我们又进行了最少攻击能迹的实验。实验中,将不断减少攻击中采用的攻击能迹数N,以正确密钥出现在攻击的候选密钥第一位时所需的最少能迹数量来衡量攻击的能力。最终,可以确定该方案至少需要使用到500条能量迹方可对加掩的AES算法攻击成功。相较于二阶DPA攻击方案中攻击成功所需的1000条能量迹而言,该方案在攻击条件上已有大幅度提高。这是因为,神经网络强大的非线性拟合能力及自适应性使得该攻击方式能够在与高阶DPA攻击相同的条件下,找到能耗组合值与中间值组合值更大的相关系数,从而提高了攻击效率。
下面结合具体效果对本发明作进一步描述。
神经网络在高阶DPA攻击中体现出较为明显的优势。这是因为神经网络具有较强的非线性映射能力,能够自动发现输入能耗数据与目标值的(接近)最佳的非线性映射方式。
在能量分析攻击中,主要分析了前向拟合神经网络在高阶DPA攻击中的应用,在攻击质量上取得了明显的提高。实验表明,神经网络具有强大的特征识别能力和非线性转换能力,能够提供比其它机器学习算法更好的学习效率及拟合结果,有利于减少训练和攻击能量迹的数量。在高阶攻击中,特别在我们设定的训练数据未知掩码的情况下,对于能耗与中间组合值的相关性,目前运用的神经网络方法已可有效的进行学习及拟合过程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种利用神经网络进行拟合的DPA攻击方法,其特征在于,所述利用神经网络进行拟合的DPA攻击方法包括:
在训练阶段,预测神经网络根据训练能耗集,自动学习并得到能耗特征向量与中间组合值的映射关系;
在DPA攻击阶段,使用预测神经网络预测能量迹的中间组合值,并计算预测中间组合值与猜测中间组合的相关系数,从而判断猜测密钥正确性。
2.如权利要求1所述的利用神经网络进行拟合的DPA攻击方法,其特征在于,所述训练阶段包括:
(1)对加掩AES算法能量迹数据及能量泄漏模型,建立相对应的前向拟合神经网络net;
(2)选择目标中间组合值为S盒输入输出值异或的汉明重量并通过明确兴趣点和兴趣区间两种方式生成能耗特征向量;
(3)利用能量迹数据的能耗特征向量对预测网络进行训练,将输入的能量迹数据拟合为AES加密过程中的中间组合值。
3.如权利要求1所述的利用神经网络进行拟合的DPA攻击方法,其特征在于,所述攻击阶段包括:
1)利用训练好的预测网络,对攻击能迹e进行拟合,拟合结果为net(e);计算拟合值与猜测密钥k所对应的猜测中间值组合值comb(k)的相关系数ρ(comb(k),net(e));
2)将相关系数降序排列,选择最大相关系数的前n个猜测密钥作为候选密钥。
4.如权利要求3所述的利用神经网络进行拟合的DPA攻击方法,其特征在于,所述预测网络模型构建方法为:
预测网络的输入为能迹特征向量,输出为拟合的中间组合值;在训练阶段,训练的损失函数采用最小均方差MSE;
假设神经网络的训练数据集Z+中,含有n个条能迹特征向量及其对应的正确中间组合值,记为[Pi,Ti],i∈Z+;训练时,神经网络的输出拟合值为Yi,有:
训练中采用误差梯度反向传播更新网络的连接权重。
5.如权利要求3所述的利用神经网络进行拟合的DPA攻击方法,其特征在于,所述攻击阶段进一步包括:
第一、进入密钥猜测循环,猜测密钥k'取0至255;
令猜测中间组合值为
第二、使用神经网络预测中间组合值z=net(e),其中e为攻击能迹特征向量;
第三、计算y与z之间的相关系数其中,函数E为样本期望,函数D为样本方差;
第四、猜测密钥加一,若猜测密钥小于256,则继续循环;循环结束后,根据每个猜测密钥对应的相关系数ρy,z进行排序,相关系数最大值对应的猜测密钥则为攻击结果;若攻击结果与实际密钥相匹配,则代表攻击成功。
6.一种计算机程序,其特征在于,所述计算机程序运行权利要求1~5任意一项所述的利用神经网络进行拟合的DPA攻击方法。
7.一种终端,其特征在于,所述终端至少搭载实现权利要求1~5任意一项所述利用神经网络进行拟合的DPA攻击方法的控制器。
8.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-5任意一项所述的利用神经网络进行拟合的DPA攻击方法。
9.一种运行权利要求1~5任意一项所述利用神经网络进行拟合的DPA攻击方法的利用神经网络进行拟合的DPA攻击控制平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811368271.7A CN109525384A (zh) | 2018-11-16 | 2018-11-16 | 利用神经网络进行拟合的dpa攻击方法及系统、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811368271.7A CN109525384A (zh) | 2018-11-16 | 2018-11-16 | 利用神经网络进行拟合的dpa攻击方法及系统、终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109525384A true CN109525384A (zh) | 2019-03-26 |
Family
ID=65778184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811368271.7A Pending CN109525384A (zh) | 2018-11-16 | 2018-11-16 | 利用神经网络进行拟合的dpa攻击方法及系统、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525384A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572251A (zh) * | 2019-08-13 | 2019-12-13 | 武汉大学 | 一种模板攻击方法以及设备抗模板攻击的评估方法 |
CN110751049A (zh) * | 2019-09-20 | 2020-02-04 | 浙江工业大学 | 一种面向信号采样梯度攻击的防御方法 |
CN111339577A (zh) * | 2020-02-12 | 2020-06-26 | 南京师范大学 | 一种具有优良dpa抗性s盒的构造方法 |
CN111597551A (zh) * | 2020-05-20 | 2020-08-28 | 中国科学技术大学 | 针对深度学习算法的侧信道攻击的防护方法 |
CN111953488A (zh) * | 2020-08-28 | 2020-11-17 | 南方电网科学研究院有限责任公司 | 一种hmac-sm3算法的密钥获取方法、装置、设备和存储介质 |
CN112560059A (zh) * | 2020-12-17 | 2021-03-26 | 浙江工业大学 | 一种基于神经通路特征提取的垂直联邦下模型窃取防御方法 |
CN112600659A (zh) * | 2020-11-26 | 2021-04-02 | 清华大学苏州汽车研究院(吴江) | 基于神经网络的安全芯片侧信道泄漏检测方法及系统 |
CN112787971A (zh) * | 2019-11-01 | 2021-05-11 | 国民技术股份有限公司 | 侧信道攻击模型的构建方法、密码攻击设备及计算机存储介质 |
CN113051628A (zh) * | 2021-03-22 | 2021-06-29 | 北京计算机技术及应用研究所 | 基于残差学习的芯片侧信道攻击降噪预处理方法 |
CN113158179A (zh) * | 2021-03-17 | 2021-07-23 | 成都信息工程大学 | 自动发现泄露模型的有学习的侧信道攻击方法及加密设备 |
-
2018
- 2018-11-16 CN CN201811368271.7A patent/CN109525384A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572251A (zh) * | 2019-08-13 | 2019-12-13 | 武汉大学 | 一种模板攻击方法以及设备抗模板攻击的评估方法 |
CN110751049B (zh) * | 2019-09-20 | 2022-04-29 | 浙江工业大学 | 一种面向信号采样梯度攻击的防御方法 |
CN110751049A (zh) * | 2019-09-20 | 2020-02-04 | 浙江工业大学 | 一种面向信号采样梯度攻击的防御方法 |
CN112787971B (zh) * | 2019-11-01 | 2023-02-28 | 国民技术股份有限公司 | 侧信道攻击模型的构建方法、密码攻击设备及计算机存储介质 |
CN112787971A (zh) * | 2019-11-01 | 2021-05-11 | 国民技术股份有限公司 | 侧信道攻击模型的构建方法、密码攻击设备及计算机存储介质 |
CN111339577A (zh) * | 2020-02-12 | 2020-06-26 | 南京师范大学 | 一种具有优良dpa抗性s盒的构造方法 |
CN111597551A (zh) * | 2020-05-20 | 2020-08-28 | 中国科学技术大学 | 针对深度学习算法的侧信道攻击的防护方法 |
CN111597551B (zh) * | 2020-05-20 | 2024-02-27 | 中国科学技术大学 | 针对深度学习算法的侧信道攻击的防护方法 |
CN111953488A (zh) * | 2020-08-28 | 2020-11-17 | 南方电网科学研究院有限责任公司 | 一种hmac-sm3算法的密钥获取方法、装置、设备和存储介质 |
CN112600659B (zh) * | 2020-11-26 | 2022-06-03 | 清华大学苏州汽车研究院(吴江) | 基于神经网络的安全芯片侧信道泄漏检测方法及系统 |
CN112600659A (zh) * | 2020-11-26 | 2021-04-02 | 清华大学苏州汽车研究院(吴江) | 基于神经网络的安全芯片侧信道泄漏检测方法及系统 |
CN112560059B (zh) * | 2020-12-17 | 2022-04-29 | 浙江工业大学 | 一种基于神经通路特征提取的垂直联邦下模型窃取防御方法 |
CN112560059A (zh) * | 2020-12-17 | 2021-03-26 | 浙江工业大学 | 一种基于神经通路特征提取的垂直联邦下模型窃取防御方法 |
CN113158179A (zh) * | 2021-03-17 | 2021-07-23 | 成都信息工程大学 | 自动发现泄露模型的有学习的侧信道攻击方法及加密设备 |
CN113158179B (zh) * | 2021-03-17 | 2022-07-22 | 成都信息工程大学 | 自动发现泄露模型的有学习的侧信道攻击方法及加密设备 |
CN113051628A (zh) * | 2021-03-22 | 2021-06-29 | 北京计算机技术及应用研究所 | 基于残差学习的芯片侧信道攻击降噪预处理方法 |
CN113051628B (zh) * | 2021-03-22 | 2023-11-03 | 北京计算机技术及应用研究所 | 基于残差学习的芯片侧信道攻击降噪预处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525384A (zh) | 利用神经网络进行拟合的dpa攻击方法及系统、终端 | |
Cao et al. | Comprehensive learning particle swarm optimization algorithm with local search for multimodal functions | |
CN109785928A (zh) | 诊疗方案推荐方法、装置及存储介质 | |
CN111310915B (zh) | 一种面向强化学习的数据异常检测防御方法 | |
Cox, Jr | Game theory and risk analysis | |
CN111111220B (zh) | 多人对战游戏的自对弈模型训练方法、装置和计算机设备 | |
CN108718310A (zh) | 基于深度学习的多层次攻击特征提取及恶意行为识别方法 | |
US20220176248A1 (en) | Information processing method and apparatus, computer readable storage medium, and electronic device | |
CN116759100B (zh) | 基于联邦学习构建慢性心血管疾病大模型方法 | |
Intisar et al. | Classification of online judge programmers based on rule extraction from self organizing feature map | |
CN113627596A (zh) | 基于动态图神经网络的多智能体对抗方法及系统 | |
CN113033822A (zh) | 基于预测校正和随机步长优化的对抗性攻击与防御方法及系统 | |
Chen et al. | Ltd: Low temperature distillation for robust adversarial training | |
Andersen et al. | The dreaming variational autoencoder for reinforcement learning environments | |
CN114417427A (zh) | 一种面向深度学习的数据敏感属性脱敏系统及方法 | |
CN108594793A (zh) | 一种改进的rbf飞控系统故障诊断网络训练方法 | |
Xiao et al. | Network security situation prediction method based on MEA-BP | |
CN113360917A (zh) | 基于差分隐私的深度强化学习模型安全加固方法及装置 | |
Lv | [Retracted] Martial Arts Competitive Decision‐Making Algorithm Based on Improved BP Neural Network | |
Pogossian | Effectiveness enhancing knowledge based strategies for SSRGT class of defense problems | |
Holdaway et al. | Risk-taking in adversarial games: What can 1 billion online chess games tell us? | |
Zhang et al. | A leader-following paradigm based deep reinforcement learning method for multi-agent cooperation games | |
Lu et al. | Counting crowd by weighing counts: A sequential decision-making perspective | |
US11494486B1 (en) | Continuously habituating elicitation strategies for social-engineering-attacks (CHESS) | |
CN116561302A (zh) | 基于混合知识图谱推理的故障诊断方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190326 |
|
RJ01 | Rejection of invention patent application after publication |