GIMLI置换算法的优缺点
2026/9/6 19:38:08 网站建设 项目流程

GIMLI置换算法的优缺点

一、GIMLI置换简介

GIMLI是由Bernstein等人在2017年CHES会议上提出的一种384-bit密码置换算法。它被设计为在广泛的计算平台上实现高安全性与高性能的平衡,并成为NIST轻量级密码标准化流程的第二轮候选算法。基于GIMLI置换,可以构建认证加密方案Gimli-Cipher和哈希函数Gimli-Hash等多种密码原语。

状态表示

GIMLI的状态为384比特,组织成一个3行×4列的矩阵,每个元素是一个32比特的字:

其中每一列包含96比特(3×32),每一行包含128比特(4×32)。

轮函数结构

GIMLI共进行24轮迭代。每轮包含以下操作:

  1. 非线性层(SP-box):对每一列的96比特独立应用SP-box。给定三个32比特输入x,y,z,SP-box按以下方式更新:


  1. 线性混合层(Swap):每隔两轮执行一次。当轮数i4=0时执行Small-Swap(交换第一行相邻列对);当i4=2时执行Big-Swap(交换第一行的列块)。
  2. 常数加(AC):每隔四轮执行一次,向第一个状态字S0,0异或轮常数0x9e377900(24-i

24轮GIMLI可以看作将上述4轮模式重复6次。


二、GIMLI置换的优点

1.跨平台高性能

GIMLI最显著的优势是在多种平台上都表现出色。它被设计为在64位Intel/AMD服务器CPU、64位和32位ARM智能手机CPU、32位ARM微控制器、8位AVR微控制器、FPGA以及带/不带侧信道防护的ASIC上都能高效运行。这种跨平台性能的平衡,使其区别于那些仅在特定平台上表现优异而其他平台性能骤降的密码原语。

具体实现中,GIMLI的核心策略是将384比特数据分为四个96位列独立处理,每两轮仅通过32比特字交换进行列间混合,这大幅提升了并行处理能力。

2.设计简洁、硬件开销低

GIMLI采用稀疏的线性层(Small-Swap和Big-Swap),每轮仅需少量的位运算(移位、异或、与、或)。这使得其逻辑门数量较少,适合资源受限的轻量级场景。例如,在FPGA上Gimli仅需21224个Slice资源。同时,其24轮完整置换的设计使其可作为统一原语直接用于海绵结构等模式,无需像分组密码那样依赖逆置换。

3.安全性余量充足

尽管学术界对GIMLI进行了持续的安全分析,但目前所有攻击都远未威胁到完整24轮版本的安全性。已有的攻击包括:

  • 对14轮GIMLI的零和区分器(比设计者给出的积分区分器多1轮);
  • 对完整24轮GIMLI的区分攻击(时间复杂度2129);
  • 对11轮GIMLI认证加密方案的状态恢复攻击。

这些分析虽然揭示了算法的一些特性,但并未破坏GIMLI作为完整密码原语的安全性。


三、GIMLI置换的缺点

1.扩散性较弱

GIMLI为实现跨平台高性能而采用的稀疏线性层是其安全性的主要薄弱环节。由于列间混合仅通过第一行32比特字的交换实现,列与列之间的信息扩散相对有限。研究者正是利用这一弱扩散性,成功构建了完整24轮GIMLI的区分攻击。

具体来说,GIMLI处理384比特数据时,四个96位列基本独立处理,每两轮才进行一次32比特字的列间交换。这种设计在提升性能的同时,也降低了混乱与扩散的效率。

2.侧信道防护开销较大

研究表明,未加掩码防护的GIMLI面临侧信道分析的威胁。虽然GIMLI的SP-box代数结构相对简单(类似于Keccak每轮代数次数仅为2),但要在实际应用中抵抗功耗分析等侧信道攻击,仍需引入掩码等防护措施,这会增加额外的实现开销。

3.状态大小非2的幂次

GIMLI的状态大小为384比特,不是2的整数次幂。这一特性在某些应用场景(如磁盘加密)中可能带来实现上的不便,因为存储总线通常以2的幂次大小(如256位、512位)组织数据。

4.安全性分析仍在持续

作为NIST轻量级密码竞赛的第二轮候选算法-,GIMLI的安全性仍在接受密码学界的持续审视。虽然目前没有致命攻击,但其弱扩散性已被多次利用于缩减轮数的攻击。随着分析技术的进步,未来是否会出现更有效的攻击仍有待观察。


总结

GIMLI置换在设计上成功实现了跨平台高性能充足安全余量的平衡,其简洁的ARX结构和稀疏线性层使其在从高端服务器到8位微控制器的各种平台上都能高效运行。然而,为实现性能而采用的弱扩散性也是其安全方面的主要顾虑,已被研究者利用于构建区分攻击和缩减轮数攻击。总体而言,GIMLI是一个设计精良的轻量级密码置换,适合资源受限环境下的加密、认证和哈希等应用场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询