第3章 旁路攻击
旁路攻击又被称为旁路信道攻击或侧信道攻击。这种硬件层面的攻击通常以从电子设备获取机密信息为目标。对于密码算法,加密是将普通信息(称为纯文本或明文)转换为难以理解的文本(称为密文)的过程。对于密码电路,要访问秘密信息,需要知道加密过程中使用的密钥。与传统的功能测试不同,旁路攻击通常在执行某些操作时要利用加密设备泄露的并且是可观察到的物理信息。与密码分析中使用的理论模型(攻击者试图使用数学模型和输入/输出信息组来破坏密码操作)相反,旁路攻击针对的是密码算法的实际硬件系统,即利用特定硬件系统的某些特征对密码设备实施物理攻击,以恢复计算中涉及的秘密参数。鉴于此,这种攻击的通用性相对于密码分析要低得多,且受限于给定的硬件系统,比采用经典的密码分析方法功能更加强大,备受密码设备制造商的关注。
任何加密或解密算法都必须由特定(微)处理器或特定硬件电路来实现,具有与电路相关的物理属性。如果算法在处理器或微处理器中实现,则它将被转化为一组流水线指令来执行。如果算法在FPGA中实现,则它将被转化为基于FPGA的基本逻辑单元(包括寄存器和查找表等)。如果算法在ASIC中实现,则基本运算单元是来自某些工艺技术库的标准单元。无论采用哪种方式进行加密运算,其物理表现都包括时序差异、功耗、电磁(EM)辐射、声波、光学辐射、热量等。
利用旁路信道(侧信道)是攻击者获取秘密信息(如密钥)的最常见方法。此外,除了物理旁路信道,还存在其他可由跨层攻击者利用的旁路信道,如错误传播旁路信道、缓存访问定时旁路信道等。这些非物理的旁路信道有时候又被称为微架构旁路信道。
本章将讲解旁路信道泄露的起源,详细讨论每种旁路信道攻击,分析所述攻击的原理。3.2节将介绍现有的旁路信道攻击的模型。具体的旁路攻击将在3.3节中解释和讨论。3.4节将讨论新的发展和潜在的研究,以及针对现有旁路信道攻击的策略以及一些旁路信道漏洞评估方法。