目前主要的旁路攻击方法有:功耗攻击、电磁攻击、时间攻击、碰撞攻击等。
功耗攻击
通过分析密码设备的能量消耗获得其密钥。分为三大类:简单功耗分析(SPA, Simple Power Analysis),差分功耗分析(DPA,Differential Power Analysis)和相关性功耗攻击(CPA, Correlation Power Analysis)。
简单功耗攻击(SPA)
通过分析硬件工作时的功耗与硬件状态之间的联系,观察硬件功耗曲线,分析得到电路工作状态,进而通过电路工作状态与密钥之间的关系,分析得到密钥。这种攻击对于算法中存在依赖于密钥的分支语句,且分支语句执行的运算不相同的电路非常有效。如,传统的二进制扫描法实现的 RSA,存在直接由密钥的某位决定的条件分支,且分支之后的两种情况的功耗特性有很大差异。攻击者通过在功耗曲线中解读这些条件分支,达到破解密钥的目的。如果芯片运算时的关键信息被噪声或其他因素掩盖,用SPA分析得到的密钥就会非常困难,因此对SPA的防御相对简单。
差分功耗攻击(DPA)
属于统计方法,通过滤除功耗曲线中的无关信息,放大电路不同状态下功耗曲线的不同。如单比特DPA,首先,根据密码芯片内部的算法结构构造一个合适的划分函数,此函数根据输入数据或者已知的中间数据以及密钥的一部分产生一个具体的值(0或1),且取值与电路功耗相关。然后,采样大量相同密钥下不同数据的功耗曲线。接着,