Although cryptographic algorithms may be mathematically secure, it is often possible to leak secret information from the implementation of the algorithms. Timing and power side-channel vulnerabilities are some of the most widely considered threats to cryptographic algorithm implementations. Timing vulnerabilities may be easier to detect and exploit, and all high-quality cryptographic code today should be written in constant-time style. However, this does not prevent power side-channels from existing. With constant time code, potential attackers can resort to power side-channel attacks to try leaking secrets. Detecting potential power side-channel vulnerabilities is a tedious task, as it requires analyzing code at the assembly level and needs reasoning about which instructions could be leaking information based on their operands and their values. To help make the process of detecting potential power side-channel vulnerabilities easier for cryptographers, this work presents Pascal: Power Analysis Side Channel Attack Locator, a tool that introduces novel symbolic register analysis techniques for binary analysis of constant-time cryptographic algorithms, and verifies locations of potential power side-channel vulnerabilities with high precision. Pascal is evaluated on a number of implementations of post-quantum cryptographic algorithms, and it is able to find dozens of previously reported single-trace power side-channel vulnerabilities in these algorithms, all in an automated manner.
翻译:尽管密码算法在数学上可能是安全的,但通常仍可能从算法的实现中泄露秘密信息。时序和功耗侧信道漏洞是密码算法实现面临的最常见威胁之一。时序漏洞可能更容易被检测和利用,如今所有高质量的加密代码都应采用常量时间风格编写。然而,这并不能阻止功耗侧信道的存在。对于常量时间代码,潜在攻击者可能利用功耗侧信道攻击来尝试泄露秘密。检测潜在的功耗侧信道漏洞是一项繁琐的任务,因为它需要在汇编层面分析代码,并基于操作数及其值推断哪些指令可能泄露信息。为帮助密码学家更轻松地检测潜在功耗侧信道漏洞,本文提出了Pascal:功耗分析侧信道攻击定位器,该工具引入了新颖的符号寄存器分析技术,用于对常量时间密码算法进行二进制分析,并以高精度验证潜在功耗侧信道漏洞的位置。Pascal在多个后量子密码算法的实现上进行了评估,能够以全自动方式在这些算法中发现数十个此前报告的、针对单迹的功耗侧信道漏洞。