ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

GIMLI置换算法的优缺点

GIMLI置换算法的优缺点 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轮迭代。每轮包含以下操作非线性层SP-box对每一列的96比特独立应用SP-box。给定三个32比特输入x,y,zSP-box按以下方式更新线性混合层Swap每隔两轮执行一次。当轮数i40时执行Small-Swap交换第一行相邻列对当i42时执行Big-Swap交换第一行的列块。常数加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是一个设计精良的轻量级密码置换适合资源受限环境下的加密、认证和哈希等应用场景。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进