中国科学院软件所在分组加密算法差分密码分析方面取得进展

中国科学院软件研究所可信智能系统研究团队在分组加密算法的差分密码分析方面取得进展。该工作设计了一个面向分组加密算法的领域编程语言 EasyBC,在此基础上提出了通用、可扩展的差分密码分析方法,研制了全自动分析工具平台EasyBC (如图1)。

该研究成果以_EasyBC: A Cryptography-Specific Language for Security Analysis of Block Ciphers against Differential Cryptanalysis_为题被编程语言国际顶级会议POPL 2024录用,通讯作者是软件所计算机科学国家重点实验室宋富研究员。

图1. EasyBC平台流程图

分组加密算法(block cipher)是将明文分成多个等长的模块(block),使用对称密钥对每组分别加密或解密,广泛应用于电子邮件加密、银行交易转帐等多个领域。作为极其重要的加密协议组成,主流分组加密算法有中国国家密码管理局颁布的SM1、SM4和SM7,美国政府核定的标准算法AES和3DES。而差分密码分析在评估分组加密算法的安全性方面发挥着核心作用,是分组加密算法标准化不可或缺的安全性分析手段。当前已有的差分密码分析方法在通用性、自动化程度方面存在一定不足,同时建模过程复杂导致用户需要熟悉大量的建模方法及底层分析工具的应用。

为解决上述不足,研究团队设计了一种分组加密算法的密码学专用高级编程语言EasyBC,提供了完整的语法、类型和语义的形式定义,为分组加密算法安全性自动分析奠定了良好基础;提出了三种不同分析精度和性能的差分密码分析方法,不仅统一和优化了已有的各类加密操作的建模方法,并提出了多种新的建模方法。

研究团队实现了23个加密原语,包括美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)认证加密方案的底层置换算法以及多种常用分组加密算法(如图2);并对其中的分组密码原语进行了安全性分析(如图3),进而验证了EasyBC语言的表达能力以及EasyBC工具平台安全性自动分析的有效性。

图2.EasyBC语言实现的23个加密原语

图3.Word-wise实现的加密原语差分密码安全性分析结果

该研究对分组加密算法的差分密码分析研究具有重要意义,为后续密码学相关研究者们进行分组加密算法的安全性全自动分析和各类运算操作建模方法性能评估提供了良好的研究基础和平台支撑。

论文信息:

EasyBC: A Cryptography-Specific Language for Security Analysis of Block Ciphers against Differential Cryptanalysis. Pu Sun (ShanghaiTech University), Fu Song* (Institute of Software Chinese Academy of Sciences, and University of Chinese Academy of Sciences), Yuqi Chen (ShanghaiTech University), Taolue Chen (Birkbeck, University of London). Proc. ACM Program. Lang. 8, POPL, Article 29 (January 2024), 33 pages.https://doi.org/10.1145/3632871