返回
Do Compilers Break Constant-Time Guarantees?
DOI:10.1007/978-3-032-07035-7_20.png)
摘要
En 中文
侧信道攻击是加密算法实现中的一个重要问题。数据遗忘编程是一种通过防止侧信道数据泄露来缓解侧信道攻击的学科。然而,由于现代编译器的各种优化,高阶语言中的数据遗忘性无法得到保证。本研究探讨了编译器优化违反数据遗忘性的程度。为此,我们提出了一种数据遗忘编译器检查器(DOCC),一种用于检测不同编译器配置下数据遗忘性违反的自动化二进制测试流水线。我们展示了DOCC适用于6种广泛使用的编译器。此外,DOCC可以改进现有分析工具,使其具备高级泄露模型,例如数据依赖指令执行时间和推测下的数据遗忘性。我们对5个主要加密库和最近提出的NIST轻量级加密基元进行了DOCC评估。我们在127个测试算法中的93个以及不同加密库、构建模块和编程语言中的12917个测试用例中的1845个中发现了数据遗忘性违反。我们证明了编译器及其优化的选择对最终二进制文件的属性有重大影响。
Keyword:
data-obliviousness
side-channel attacks
compiler optimizations
constant-time guarantees
cryptographic implementations
期刊
F
IF:
0
论文数:
20
被引数:
0
机构
引用论文
暂无论文信息

