论文标题
针对电源侧渠道确保优化的代码
Securing Optimized Code Against Power Side Channels
论文作者
论文摘要
侧通道攻击对加密算法构成了严重威胁,包括广泛使用的算法,例如AES和RSA。这些攻击利用了硬件或软件中的算法实现来通过侧渠道提取秘密信息。软件掩蔽是一种缓解措施,旨在将旨在隐藏秘密的依赖性依赖性的侧沟攻击,从而摆脱脆弱实施的功率足迹。但是,这种类型的软件缓解通常取决于通用编译器,这些编译器不能保留非功能性能。此外,微体系式特征(例如内存总线和寄存器重复使用)也可能泄漏秘密信息。这些抽象在该程序的高级实施中不可见。相反,它们是在编译时间决定的。为了解决这些问题,安全工程师通常通过关闭编译器优化和/或执行本地兼容后转换来牺牲代码效率。本文提出了通过施工代码生成(SECCG)的安全性,这是一种基于约束的编译器方法,可针对电源侧通道代码生成优化但安全的。 SECG通过根据处理器成本模型有效地搜索最佳的低级实施来控制缓解程序的质量。在我们的实验中,在MIPS32和ARM拇指上具有多达100行代码的十二个密码功能的实验中,与非优化的安全代码相比,SECCG将生成的代码从75%增加到8倍,而不是高度7%的高价,而不是高度优化的代码,而优化的代码则是高度汇编成本的费用。总而言之,本文提出了一个正式模型,以生成功率侧通道免费的低级代码。
Side-channel attacks impose a serious threat to cryptographic algorithms, including widely employed ones, such as AES and RSA. These attacks take advantage of the algorithm implementation in hardware or software to extract secret information via side channels. Software masking is a mitigation approach against power side-channel attacks aiming at hiding the secret-revealing dependencies from the power footprint of a vulnerable implementation. However, this type of software mitigation often depends on general-purpose compilers, which do not preserve non-functional properties. Moreover, microarchitectural features, such as the memory bus and register reuse, may also leak secret information. These abstractions are not visible at the high-level implementation of the program. Instead, they are decided at compile time. To remedy these problems, security engineers often sacrifice code efficiency by turning off compiler optimization and/or performing local, post-compilation transformations. This paper proposes Secure by Construction Code Generation (SecCG), a constraint-based compiler approach that generates optimized yet secure against power side channels code. SecCG controls the quality of the mitigated program by efficiently searching the best possible low-level implementation according to a processor cost model. In our experiments with twelve masked cryptographic functions up to 100 lines of code on Mips32 and ARM Thumb, SecCG speeds up the generated code from 75% to 8 times compared to non-optimized secure code with an overhead of up to 7% compared to non-secure optimized code at the expense of a high compilation cost. In summary, this paper proposes a formal model to generate power side channel free low-level code.