侧信道分析教学科研实验套件成果展示

  侧信道分析教学科研实验套件提供的配套分析软件面向用户开源,功能包括计时分析、简单能量分析、相关能量分析、差分能量分析、模板攻击、二阶相关能量分析、电磁分析等多种经典方法。
  在该套件的前期测试中,部分用户已将其广泛应用于多种密码算法的侧信道分析场景,产生了一系列代表性研究成果。下面列举出基于侧信道分析教学科研实验套件完成的若干已发表或待发表的论文中的实验结果示意图。
  > 针对MOV指令的AES算法相关能量分析实验
  AES算法在8051单片机上实现时,第一轮第一个S-box输出值的存储会泄露AES源密钥首字节信息,该存储操作为一条名为MOV的汇编指令。作者针对该指令,采集若干条能量波形,并执行相关能量分析,得到下图所示结果。每条原始波形包含2000个点,在每种密钥猜测下,对每个点均进行相关系数计算,因而得到密钥猜测—样本点—相关系数的三维图像。实验表明,密钥字节30被成功恢复。相关论文发表于LNCS系列国际会议ISPEC 2012。

图1 针对一条MOV指令的AES算法相关能量分析实验(密钥字节key=30)

  > 针对MOV指令的AES算法模板建立实验
  本例仍研究AES算法首轮第一个S-box输出值在一条MOV指令的泄露。作者选用0,1,3,7,...,255(汉明重量遍历0到8)这9个有代表性的数值,共采集9组能量波形,每组进行平均降噪后,得下图所示的9条平均波形来作为模板,并在随后的模板匹配与密钥恢复阶段成功恢复了密钥。该模板建立实验表明,在MOV指令所需的12个时钟周期中,第5/6/9/10周期的汉明重量信息泄露非常明显。相关论文发表于LNCS系列国际会议ISPEC 2012。

图2 针对一条MOV指令的AES算法模板建立实验

  > 基于列混合的后向错误检测机制的测试实验
  当AES算法首轮16个字节的密钥被恢复出来后,可能存在1个未被正确恢复的情况。首先对列混合处的波形做归一化处理,并用恢复出的密钥计算出列混合处的输出值,随后计算列混合波形和列混合输出值之间的相关性,以判断错误出现在了哪段密钥中。下图红色柱状图代表中间值汉明重量,蓝色圆圈代表波形点,显然(b)图中二者相关性更差,从而验证出它所对应的4个密钥字节可能发生了错误。相关论文发表于SCI期刊Science China Information Sciences。

图3 基于列混合的后向错误检测机制的测试实验

  > 对带防护的NTRU算法的差分能量分析与碰撞攻击实验
  针对NTRU算法现有的抗侧信道防护对策,给出了差分能量分析和碰撞攻击,二者均能够有效攻破现有NTRU抗侧信道攻击的防护对策。基于8051单片机实现NTRU并获得能量波形后,采用差分能量分析,只需对两条平均波形执行一次减法即可恢复密钥信息,相关论文发表于SCI期刊KSII Transactions on Internet and Information Systems。此外,也可以利用多项式乘法的行间碰撞来获得密钥信息,相关论文发表于SCI期刊Microprocessors and Microsystems。

图4 对NTRU算法的差分能量分析(前两幅子图相减得第三幅子图,正确密钥为1, 4, 5, 7, 12, 15, ...)


图5 对NTRU算法的碰撞攻击(正确密钥段03所对应的碰撞由图中红色尖峰确定)

  > 适应性选择明文的相关能量分析实验
  针对汉明重量分布不均衡特点,通过适应性选择明文来增加有效信息的利用率,从而使相关能量分析效率显著提高。基于8051单片机软件实现的AES算法,可对该适应性选择明文方案的参数选取进行研究和验证,并选取出了最优参数,如下图。相关论文发表于国际会议CIS 2014。

图6 适应性选择明文的相关能量分析中的参数选取实验

  > 对纵向重用型掩码的二阶相关能量分析实验
  针对AES算法的一种纵向重用型掩码,给出了其二阶相关能量分析方案。基于8051单片机软件实现的AES掩码,可在能量波形上剪辑出两段波,分别对应首轮第一个S-box输入和第一列列混合输入。随后利用二阶相关能量分析直接恢复AES第一字节密钥。此外,在进行相关能量分析之前,通常也可对波形进行泄露分析,以准确选定泄露点来进行后续的高效分析。相关论文发表于中文核心期刊《密码学报》。

图7 对纵向重用型掩码的二阶相关能量分析实验(正确密钥字节为70)


图8 相关能量分析中的信息泄露分析实验

  > 适应性选择明文碰撞攻击中的效率评估实验
  给出了一种边分析边采波的适应性选择明文碰撞攻击方法,可在碰撞攻击过程中大跨步地找到碰撞。针对8051单片机AES软件实施了一次攻击,共五步可找到碰撞,下图为评估每一步的正确性与所需波形条数之间的关系。实验表明,每一步采用1000条波进行模板匹配,可确保以很高的概率正确找到碰撞。

图9 适应性选择明文碰撞攻击中的效率评估实验

  > DES算法简单能量分析实验
  基于8051单片机实现了DES算法的PC-1置换,实现方法如下:设Y = PC1(X),先将56比特Y清零,随后对于X的每一比特进行索引。若X的当前比特是0,则不执行任何操作(因为查表后写到Y里,该比特仍为0),跳转到下一个比特;若X当前比特为1,当前分支语句不跳转,执行下一步写操作,把1写入Y的对应比特。因此,在能量波形可以反映操作的基础上,可通过观测能量波形,直接恢复X的值,也就是DES的源密钥。

图10 DES算法简单能量分析实验(密钥为0x7CD9B3E7CD9B3E)