密码杂凑算法四大金刚系列算法回顾

发布时间:2026/7/25 18:30:35
密码杂凑算法四大金刚系列算法回顾 密码杂凑算法四大金刚系列算法回顾密码杂凑算法(又称为哈希算法散列算法信息摘要算法等)四大金刚(青龙白虎朱雀玄武)系列算法均为本人所设计。只记得当时在学习对称密码学最开始学习的是分组加密算法的分析与设计接着又开始学习序列密码算法(太难了比分组加密算法要难多了)之后对密码杂凑算法很感兴趣在学习的同时脑子中也有很多自己的奇思妙想于是我开始设计自己的密码杂凑算法只是为了记录自己关于密码算法设计的一些创意和想法。我设计密码杂凑算法是出于自己的兴趣和爱好同时也希望我关于这些算法的奇思妙想能够给学习密码算法的人起到抛砖引玉的作用。注意本人(黄金龙PLUS)所发布的系列密码杂凑算法等仅可用于学术交流和研究之用不可用在安全要求较高的工作环境中违者后果自负。本文的主要内容是对四大金刚系列算法作一个简单的回顾通过分析系列算法的参数和安全界限缺点和优点改进之处和算法总结来对该算法的设计细节作个简单回顾。毕竟温故能知新嘛密码杂凑算法四大金刚系列算法之QingLong512(青龙)算法1算法基本设计参数如下所示整体结构MD结构消息填充同SHA256算法消息分组512位最大消息长度2^256位消息字大小32位消息扩展算法同SHA256算法压缩函数轮数12轮杂凑值长度512位生日攻击界限2^256碰撞攻击界限2^256原像攻击界限2^512第二原像攻击界限2^5122算法优点向量循环移位VectorShift将16个32位字并联然后整体循环移位不同于普通的字内循环移位无疑这增强了链接变量的字间扩散性。线性扩散函数M16F3XM16F5XM16F7XM16F9XM16F11XM16F13X与非线性扩散函数M16F3MM16F5MM16F7MM16F9MM16F11MM16F13M。前者16个输出值线性(异或运算)依赖于3个5个7个9 个11个13个输入值后者16个输出值非线性(模加运算)依赖于3个5个7个9 个11个13个输入值。两者分别提供了密码杂凑算法必需的线性复杂度和非线性复杂度。线性扩散层和非线性扩散层的使用提高了比特之间的依赖程度保证了该算法具有良好的雪崩效应同时模加运算相比异或运算更加复杂及其密码学性质更好这使得该算法保证了高效率的同时兼具安全性。两个不同的8比特S盒SBOXP和SBOXQ的使用更进一步增强了QingLong512的抵抗未知攻击的能力。3算法缺点QingLong512算法的消息扩展算法与SHA256类似虽然生成了64 个消息字但是最终只选取了16个这可能导致安全缺陷进而不能抵抗未知的攻击。不能抵抗长度扩展攻击 (Length Extension Attack)这是MD结构的固有缺陷。攻击者即便不知道原始消息M只要知道Hash(M)和M的长度就可以推算出Hash(M || padding ||附加数据)的值。并且采用MD结构的算法安全性高度依赖于其核心的压缩函数。4改进之处SHA256和SHA512也是基于MD结构但是两者的安全性依旧健壮。QingLong512算法与前面两者有很多相似之处不同之处在于扩展消息字的选取规则与消息压缩算法我们有理由相信使用创新消息压缩算法的QingLong512算法也拥有好的安全性。或者我们可以另辟蹊径直接抛弃MD结构转而使用更安全的海绵结构(Sponge Structure)。5算法总结设计一个密码杂凑算法是一项复杂的系统工程。它不仅需要精巧地组合各种技术来满足严格的安全属性还必需前瞻性地考虑未来的安全威胁如量子计算和应用需求。从经典的MD结构到更灵活的Sponge结构从对差分攻击的防御到应对AI辅助分析这个领域始终在攻防博弈中演进不断追求着更安全、更高效的设计。QingLong512算法既有不足之处也有可取之处我会持续学习不断更新该算法的分析与设计方法。密码杂凑算法四大金刚系列算法之BaiHu512(白虎)设计原理详解1算法基本设计参数如下所示整体结构MD结构消息填充同SHA256算法消息分组512位最大消息长度2^256位消息字大小32位消息扩展算法同SHA256算法压缩函数轮数64轮杂凑值长度512位生日攻击界限2^256碰撞攻击界限2^256原像攻击界限2^512第二原像攻击界限2^5122算法优点向量循环移位VectorShift将16个32位字并联然后整体循环移位不同于普通的字内循环移位无疑这增强了链接变量的字间扩散性。线性扩散函数MMMMMMMM8X1MMMMMMMM8X2与非线性扩散函数MMMMMMMM8M1MMMMMMMM8M2。前者8个输出值线性(异或运算)依赖于5个输入值后者8个输出值非线性(模加运算)依赖于5个输入值。两者分别提供了密码杂凑算法必需的线性复杂度和非线性复杂度。7比特与9比特S盒(设计原理同SHA-3的5比特S盒)的使用提供了BaiHu512算法必需的的混淆性和扩散性更进一步增强了BaiHu512的抵抗未知攻击的能力。3算法缺点BaiHu512算法的消息扩展算法与SHA256类似虽然生成了64 个消息字但是最终只选取了16个这可能导致安全缺陷进而不能抵抗未知的攻击。不能抵抗长度扩展攻击 (Length Extension Attack)这是MD结构的固有缺陷。攻击者即便不知道原始消息M只要知道Hash(M)和M的长度就可以推算出Hash(M || padding ||附加数据)的值。并且采用MD结构的算法安全性高度依赖于其核心的压缩函数。4改进之处SHA256和SHA512也是基于MD结构但是两者的安全性依旧健壮。BaiHu512算法与前面两者有很多相似之处不同之处在于扩展消息字的选取规则(生成64个扩展消息字只选取16个)与消息压缩算法(前者每次更新8个寄存器中的2个BaiHu512每次更新16个寄存器中的全部16个)我们有理由相信使用创新消息压缩算法的BaiHu512算法也拥有好的安全性。或者我们可以另辟蹊径直接抛弃MD结构转而使用更安全的海绵结构(Sponge Structure)。5算法总结密码杂凑算法的设计是一个高度专业化的领域需要在数学基础、密码学原理和工程效率之间取得精妙的平衡。其核心在于设计一个健壮的压缩函数或置换函数并将其嵌入到一个安全的结构如 Sponge中。分析则是一个持续的攻防过程利用各种密码分析技术不断检验算法的安全边界。理解密码杂凑算法的设计与分析对于构建安全的密码系统、评估现有系统的安全性以及应对未来威胁如量子计算都至关重要。自行设计密码杂凑算法是充满挑战性的在此之前设计者需要了解针对它的各种密码分析方法例如差分和线性分析比特追踪法和消息修改技术中间相遇攻击猜测确定攻击等。只有这样(熟练掌握这些攻击方法)才能保证我们设计的密码杂凑算法能够抵抗常见的各种攻击方法。BaiHu512算法既有不足之处也有可取之处我会持续学习不断更新该算法的分析与设计方法。密码杂凑算法四大金刚系列算法之ZhuQue512 (朱雀)设计原理详解1算法基本设计参数如下所示整体结构MD结构消息填充同SHA256算法消息分组512位最大消息长度2^256位消息字大小32位消息扩展算法同SHA256算法压缩函数轮数64轮杂凑值长度512位生日攻击界限2^256碰撞攻击界限2^256原像攻击界限2^512第二原像攻击界限2^5122算法优点线性扩散函数MMMM4XPLUS1MMMM4XPLUS2MMMM4XPLUS3MMMM4XPLUS4与非线性扩散函数MMMM4MPLUS1MMMM4MPLUS2MMMM4MPLUS3MMMM4MPLUS4。前者4个输出值线性(异或运算)依赖于3个输入值后者4个输出值非线性(模加运算)依赖于3个输入值。两者分别提供了密码杂凑算法必需的线性复杂度和非线性复杂度。对4X4状态矩阵的行变换和列变换的轮流执行确保每1个比特都被充分的混淆和扩散这2个操作提供了ZhuQue512算法必需的雪崩效应。3算法缺点ZhuQue512算法的消息扩展算法与SHA256类似虽然生成了64 个消息字但是最终只选取了16个这可能导致安全缺陷进而不能抵抗未知的攻击。ZhuQue512算法的消息压缩算法有点过于简单非线性复杂度完全由MMMM4MPLUS提供。虽然每1轮更新全部的16 个寄存器但是MMMM4XPLUS和MMMM4MPLUS有可能导致高位差分相互抵消的情况这会使得差分攻击变得简单进而导致安全风险。不能抵抗长度扩展攻击 (Length Extension Attack)这是MD结构的固有缺陷。攻击者即便不知道原始消息M只要知道Hash(M)和M的长度就可以推算出Hash(M || padding ||附加数据)的值。并且采用MD结构的算法安全性高度依赖于其核心的压缩函数。4改进之处ZhuQue512算法与SHA256和SHA512两者有很多相似之处不同之处在于扩展消息字的选取规则(生成64个扩展消息字只选取16个)与消息压缩算法(前者每次更新8个寄存器中的2个ZhuQue512每次更新16个寄存器中的全部16个)ZhuQue512的消息压缩算法让我们有理由相信使用创新消息压缩算法的ZhuQue512算法也拥有好的安全性。或者我们可以另辟蹊径直接抛弃MD结构转而使用更安全的海绵结构(Sponge Structure)。5算法总结密码杂凑算法是构建数字信任的隐形支柱。它们无声地验证着我们下载文件的真伪守卫着我们账户密码的安全支撑着数字签名的权威并构成了区块链革命的基础。理解其基本原理、特性、主流算法和安全实践对于任何关注网络安全、软件开发或现代信息技术的人来说都至关重要。随着技术的演进和威胁的不断变化这些算法也将持续发展继续履行其在数字世界守护数据完整性与认证安全的使命。在选择和使用它们时保持警惕、遵循最佳实践并关注前沿进展是我们共同维护数字安全的责任。ZhuQue512算法既有不足之处也有可取之处我会持续学习不断更新该算法的分析与设计方法。密码杂凑算法四大金刚系列算法之XuanWu512 (玄武)设计原理详解1算法基本设计参数如下所示整体结构MD结构消息填充同SHA256算法消息分组512位最大消息长度2^256位消息字大小32位消息扩展算法同SHA256算法压缩函数轮数32轮杂凑值长度512位生日攻击界限2^256碰撞攻击界限2^256原像攻击界限2^512第二原像攻击界限2^5122算法优点4个512X2048的大规模S盒SBOX512To2048ACSBOX512To2048BDSBOX512To2048EGSBOX512To2048FH由4个32X128的小规模S盒SBOX32To128ACSBOX32To128BDSBOX32To128EGSBOX32To128FH所构成。非线性变换MMMM4M的使用4个输出值非线性(异或运算)依赖于3个输入值。SBOX32To128S盒的使用提供了消息压缩算法必需的混淆性和扩散性更加保证了XuanWu512算法具有良好的雪崩效应和不可逆性。SBOX512To2048S盒使用先扩展再压缩的执行规则这不仅使得压缩算法的混淆性和扩散性良好而且保证XuanWu512算法是单向函数增强了算法抵抗原像攻击和第二原像攻击的能力。3算法缺点XuanWu512算法的消息扩展算法与SHA256类似连续的16个消息字(非线性)影响第17个消息字以此类推这使得扩展消息字之间的依赖关系十分复杂很好的抵抗差分分析和比特追踪法同时抵抗未知的攻击。XuanWu512算法的消息压缩算法不是双射(因为使用了非双射S盒)所以输出比特有可能是不平衡的这会使得碰撞攻击变得简单进而导致安全风险。不能抵抗长度扩展攻击 (Length Extension Attack)这是MD结构的固有缺陷。攻击者即便不知道原始消息M只要知道Hash(M)和M的长度就可以推算出Hash(M || padding ||附加数据)的值。并且采用MD结构的算法安全性高度依赖于其核心的压缩函数。4改进之处XuanWu512算法与SHA256和SHA512两者有很多相似之处不同之处在于消息压缩算法(前者每次更新8个寄存器中的2个XuanWu512每次更新64个寄存器中的全部64个)XuanWu512的消息压缩算法让我们有理由相信使用创新消息压缩算法的XuanWu512算法也拥有好的安全性。或者我们可以另辟蹊径直接抛弃MD结构转而使用更安全的海绵结构(Sponge Structure)。5算法总结密码杂凑算法的设计是一个高度专业化的领域需要在数学基础、密码学原理和工程效率之间取得精妙的平衡。其核心在于设计一个健壮的压缩函数或置换函数并将其嵌入到一个安全的结构如 Sponge中。分析则是一个持续的攻防过程利用各种密码分析技术不断检验算法的安全边界。理解密码杂凑算法的设计与分析对于构建安全的密码系统、评估现有系统的安全性以及应对未来威胁如量子计算都至关重要。XuanWu512算法既有不足之处也有可取之处我会持续学习不断更新该算法的分析与设计方法。本文总结密码杂凑算法的设计与分析本质上是一个通过公开的“攻防战”不断推动自身演进的领域。一个算法的安全性并非绝对而是基于当前最优秀的公开分析结果。因此遵循行业最佳实践、使用经过充分公众审视的标准化算法如SHA-2、SHA-3、SM3是保障系统安全的基本准则。