##########经过评论里的旁友指出,这里应当是CPA不是DPA
以下为原文:
最近在学习偏信道攻击,很多论文里都会提到或者用到DPA,它们主要讲的是DPA的步骤,但是对于为什么要那么做我看得不太懂,下面是我的一些个人理解,如果有理解错误的地方欢迎指正。内容除了相关的博硕论文以外,主要参考《能量分析攻击》一书。
首先DPA的特点是它主要是分析能量消耗和被处理数据间的依赖关系,不像SPA通沿着时间直接分析密码设备的能量消耗。其他的相关概念就不再多提,基本都可以查得到,下面介绍DPA的每个步骤:
1.选择所执行算法的某个中间值。
这个中间值表现为一个函数f(d,k),这里的d一般是明文或者密文,而k是密钥的一部分。为什么这样取中间值可以结合密码的差分分析方法来理解,在差分分析方法里,一般通过研究某一个点(比如S盒)的输入和输出来获取密钥。所以这里的中间值函数里,d是变量,通过改变d的输入来得到密钥k的值。
2.测量密码设备在加/解密时的能量消耗。
这里取D个数据分组,将这些数据记作向量,