Page 372 - 《软件学报》2025年第5期
P. 372

2272                                                       软件学报  2025  年第  36  卷第  5  期


                 DEFAULT  密码算法的参数和加解密过程. 第           3  节提出基于代数关系的统计故障分析, 具体包括基本假设、故障
                 模型、S  盒分析及主要步骤. 第       4  节从故障数和时间等多个指标分析实验结果. 第              5  节总结全文.

                 1   相关工作
                    自  DEFAULT  密码于亚洲密码学年会公布以来, 研究学者对其安全性进行了深入研究                       [26−28] . 设计者  Baksi 等
                 人  [26] 指出, DEFAULT  密码不仅可以抵御线性分析、差分分析等经典密码分析方法, 而且能够抵抗常见侧信道分
                 析. 2021  年, Dey  等人  [27] 针对该密码实现了差分故障攻击, 通过在最后一轮注入故障进行筛选, 利用差分关系, 将
                 密钥空间缩减到      2 16  . 后来, 设计者升级了密钥编排方案的构造, 将每轮运算采用相同的原始密钥, 更新为基于原始
                 密钥产生   4  个轮密钥, 循环参与到每轮运算中         [26] . 2022  年, Nageler 等人  [28] 在最后一轮注入半字节故障, 结合最后
                 6  轮的逐轮故障注入, 并建立归一化方程, 利用差分故障分析进一步降低了分析代价. 同年, Jang                         等人  [30] 提出了
                 DEFAULT  密码的量子实现并证明其安全性. 表           1  给出了  DEFAULT  密码的现有安全性分析方法比较.

                                             表 1 DEFAULT  密码的安全性分析对比

                              分析类型            基本假设         攻击轮数        首次故障注入轮          文献
                              线性分析          已知明文攻击            11            -            [26]
                            不可能差分分析         选择明文攻击            7             -            [26]
                              差分分析          选择明文攻击            8             -            [26]
                              代数分析          选择明文攻击            8             -            [26]
                              积分分析          选择明文攻击            12            -            [26]
                             差分故障分析         选择明文攻击            80         倒数第1轮          [27,28]
                             统计故障分析          唯密文攻击            80         倒数第3轮          本文

                    在基于代数关系的密码分析发展历程中, 国内外学者提出了多种攻击方法, 例如代数分析、代数故障分析等,
                 用于检验密码的设计和实现安全性. 2003           年, Courtois 等人  [31] 首次提出了代数分析, 通过将密码表示为包含若干变
                 量的方程组, 并将搜集到的明文密文对代入方程求解, 进而破译了                    Toyocrypt 和  LILI 等流密码. 2007  年, Courtois
                 等人  [32] 针对分组密码  DES  算法的组成部件分别建模为代数方程, 利用代数求解器为方程求解, 有效提升了分析效
                 率. 2009  年, Courtois 等人  [33] 针对流密码  Hitag2, 使用代数求解器实现了代数攻击, 可以在       6 h  内恢复完整密钥.
                 2013  年, Zhang  等人  [34] 针对轻量级分组密码  Piccolo  算法采用代数故障分析方法, 对加解密过程和密钥编排算法
                 建立代数方程, 仅需单个故障破译出全部密钥. 2014             年, Zhao  等人  [35] 仅用  8  个故障实现了针对分组密码   GOST  的
                 代数故障分析, 提高了攻击效率. 2017        年, Chen  等人  [21] 针对分组密码  HIGHT, 提出用一组代数方程组来表示密码
                 和注入故障的方法, 实现了代数故障分析. 2019            年, Le 等人  [22] 通过引入差分轨迹, 借助求解器实现了针对分组密
                 码  SIMON  的代数差分故障分析. 2021       年, Gruber 等人  [36] 通过注入单比特翻转故障, 实现了认证加密算法
                 Subterranean 2.0  的代数故障分析. 近两年, Fang  等人  [37,38] 基于  S  盒分解, 使用代数持续故障分析, 在  9 s 内破译了
                 分组密码    SKINNY. 2023  年, Qiu  等人  [39] 改进代数系统, 加快了求解效率, 将代数故障分析应用于          AES、Serpent
                 和  SPEEDY  等经典分组密码中, 拓展了代数故障分析的攻击范围. 上述分析方法均在选择明文攻击下实现, 利用
                 代数关系对加密过程或密钥编排算法建立代数方程, 再求解并筛选密钥.
                    2013  年, Fuhr 等人  [18] 首次提出了统计故障分析, 该方法利用故障注入产生的随机故障密文, 根据加密过程可
                 以计算部分中间状态值, 然后结合统计关系, 利用区分器对密钥进行筛选, 成功破译了                         AES  分组密码. 统计故障分
                 析基于唯密文的基本假设, 仅要求攻击者能够截获密文即可, 对攻击者的能力要求最弱, 因此在实际中更容易实
                 现. 2017  年, Nozaki 等人  [40] 使用统计故障分析, 通过引入时钟故障并对最后两轮加密过程进行分析, 成功破译了
                 Midori 轻量级分组密码算法. 2019     年, Ramezanpour 等人  [41] 通过在最后一轮的一对     S  盒中注入故障, 实现了对
                 ASCON  认证加密算法的统计故障分析. 2021         年, 李玮等人   [19] 通过在倒数第  2  轮注入半字节随机故障, 实现了对轻
                 量级分组密码     Piccolo  的统计故障分析. 2022  年, Bagheri 等人  [25] 通过引入持续故障, 实现了对   DES  和  Camellia 等
                 分组密码的统计无效持久故障分析.
   367   368   369   370   371   372   373   374   375   376   377