AES相关故障注入攻击
2021-09-02王省欣朱嘉诚唐时博
王省欣,胡 伟,谭 静,朱嘉诚,唐时博
(西北工业大学 网络空间安全学院,陕西 西安 710072)
密码算法实现在执行过程中通常会泄漏一些算法功能规范之外的信息,如加密时间、能量消耗、电磁辐射和出错情况等。根据这些信息进行数学分析来获取秘密信息,即侧信道分析[1-2]。如通过对非对称加密算法(Rivest-Shamir-Adleman,RSA)的时序攻击来获取密钥[3]。常见的侧信道分析方法包括时序分析、能量分析、电磁分析和故障分析等[4]。其中,故障注入攻击通过向密码算法实现执行过程中引入故障,并通过观测故障效应和数学分析来恢复算法密钥。故障分析是一种针对对称和非对称加密算法非常有效的密码分析技术[5-7]。
当高级加密标准(Advanced Encryption Standard,AES)被普遍采用后,研究者提出了大量针对AES的故障注入攻击方法[8-15]。PARK等在字节变换中注入故障,分析S盒输入和S盒输出之间的关系,破解密钥[8]。一些研究通过向AES加密变换注入单字节故障来破解密钥[9-11],也有学者提出了针对密钥扩展的故障注入攻击方法[12]。GHALATY等提出利用差分故障强度分析,通过平均7次对AES的故障注入攻击,重建完整的128位加密密钥[13]。通过引发2字节故障,ZHANG等利用差分故障分析方法破解密钥[14]。POGUE等提出用增量故障分析的方法对不同密钥长度的AES加密算法进行破解[15]。然而,上述故障注入攻击方法大多对故障注入的位置、时机和数量有严格要求,且密钥恢复过程需要复杂的数学分析,或需要大量时间来训练故障攻击模板。
笔者提出一种针对AES的相关故障注入攻击方法,利用AES故障效应传播中的相关关系恢复密钥。……
