摘要
广泛接受的标准实践是实施加密软件,使得秘密输入不影响周期计数。遵循此范式的软件通常被称为“恒定时间”软件,通常涉及遵循三个规则:1)不在秘密相关条件下分支,2)不在秘密相关位置访问内存,3)避免对秘密数据使用可变时间算术操作。第三条规则需要了解此类可变时间算术指令,或者反之,哪些操作在秘密输入上使用是安全的。长期以来,这种知识基于文档或微基准测试,但关键的是,从未对未来微架构提供任何保证。随着英特尔CPU上数据操作数无关时序(DOIT)模式的引入,以及在某种程度上Arm CPU上的数据无关时序(DIT)模式,这种情况发生了变化。英特尔和Arm都记录了各自指令集的一个子集,这些子集旨在通过时序不泄露其输入的任何信息,即使在未来的微架构上,如果CPU设置为在专用DOIT(或DIT)模式下运行。
在本文中,我们提出了一种原则性解决方案,利用DOIT实现未来验证的恒定时间加密软件,确保即使在错误预测的分支或函数返回位置后的推测执行期间,也仅使用DOIT子集中的指令来处理秘密数据。对于此解决方案,我们基于Jasmin框架中现有的安全类型系统,用于高可信度密码学。
然后,我们使用我们的解决方案评估现有构建为“恒定时间”的加密软件在DOIT暗示的更严格范式下的安全程度,以及从恒定时间移动到未来验证恒定时间的性能影响。
作者
-
Santiago Arranz-Olmos
MPI-SP, Bochum, Germany -
Gilles Barthe
MPI-SP, Bochum, Germany; IMDEA Software Institute, Madrid, Spain -
Benjamin Grégoire
Inria, Sophia-Antipolis, France -
Jan Jancar
Masaryk University, Brno, Czechia -
Vincent Laporte
Inria, Nancy, France -
Tiago Oliveira
SandboxAQ, Palo Alto, USA -
Peter Schwabe
MPI-SP, Bochum, Germany; Radboud University, Nijmegen, The Netherlands
关键词
数据操作数无关时序, Jasmin, 高可信度, 恒定时间代码
出版信息
- DOI: https://doi.org/10.46586/tches.v2025.i3.644-667
- 出版日期: 2025-06-05
- 卷期: Vol. 2025 No. 3
- 章节: Articles
- 许可证: Creative Commons Attribution 4.0 International License
引用格式
Arranz-Olmos, S., Barthe, G., Grégoire, B., Jancar, J., Laporte, V., Oliveira, T., & Schwabe, P. (2025). Let’s DOIT: Using Intel’s Extended HW/SW Contract for Secure Compilation of Crypto Code. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2025(3), 644-667. https://doi.org/10.46586/tches.v2025.i3.644-667