当前位置: 首页 > news >正文

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

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

密码杂凑算法(又称为哈希算法,散列算法,信息摘要算法等)四大金刚(青龙,白虎,朱雀,玄武)系列算法均为本人所设计。只记得当时在学习对称密码学,最开始学习的是分组加密算法的分析与设计,接着又开始学习序列密码算法(太难了,比分组加密算法要难多了),之后对密码杂凑算法很感兴趣,在学习的同时脑子中也有很多自己的奇思妙想,于是我开始设计自己的密码杂凑算法,只是为了记录自己关于密码算法设计的一些创意和想法。我设计密码杂凑算法是出于自己的兴趣和爱好,同时也希望我关于这些算法的奇思妙想能够给学习密码算法的人起到抛砖引玉的作用。注意:本人(黄金龙PLUS)所发布的系列密码杂凑算法等仅可用于学术交流和研究之用,不可用在安全要求较高的工作环境中,违者后果自负。

本文的主要内容是对四大金刚系列算法作一个简单的回顾,通过分析系列算法的参数和安全界限,缺点和优点,改进之处和算法总结,来对该算法的设计细节作个简单回顾。毕竟,温故能知新嘛!

密码杂凑算法四大金刚系列算法之QingLong512(青龙)算法

(1)算法基本设计参数如下所示:

整体结构:MD结构

消息填充:同SHA256算法

消息分组:512位

最大消息长度:2^256位

消息字大小:32位

消息扩展算法:同SHA256算法

压缩函数轮数:12轮

杂凑值长度:512位

生日攻击界限:2^256

碰撞攻击界限:2^256

原像攻击界限:2^512

第二原像攻击界限:2^512

(2)算法优点

向量循环移位VectorShift将16个32位字并联然后整体循环移位,不同于普通的字内循环移位,无疑这增强了链接变量的字间扩散性。线性扩散函数M16F3X,M16F5X,M16F7X,M16F9X,M16F11X,M16F13X与非线性扩散函数M16F3M,M16F5M,M16F7M,M16F9M,M16F11M,M16F13M。前者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^512

(2)算法优点

向量循环移位VectorShift将16个32位字并联然后整体循环移位,不同于普通的字内循环移位,无疑这增强了链接变量的字间扩散性。线性扩散函数MMMMMMMM8X1,MMMMMMMM8X2与非线性扩散函数MMMMMMMM8M1,MMMMMMMM8M2。前者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^512

(2)算法优点

线性扩散函数MMMM4XPLUS1,MMMM4XPLUS2,MMMM4XPLUS3,MMMM4XPLUS4与非线性扩散函数MMMM4MPLUS1,MMMM4MPLUS2,MMMM4MPLUS3,MMMM4MPLUS4。前者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^512

(2)算法优点

4个512X2048的大规模S盒SBOX512To2048AC,SBOX512To2048BD,SBOX512To2048EG,SBOX512To2048FH由4个32X128的小规模S盒SBOX32To128AC,SBOX32To128BD,SBOX32To128EG,SBOX32To128FH所构成。非线性变换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),是保障系统安全的基本准则

http://www.jsqmd.com/news/1262589/

相关文章:

  • 强化学习工程化实战:从PPO、DQN算法原理到调优部署全链路解析
  • Java逆向工程工具:从字节码到高质量可读代码的还原技术
  • 武汉助产学校2026招生简章 医护特色办学与校园管理全解析 - 升学择校早知道
  • 深圳日用消费品牌企业做GEO服务商怎么选?2026年五家服务商靠谱选型指南 - 企业新闻快传
  • Sherpa Onnx:企业级跨平台智能语音技术选型完整决策框架
  • AM62L RTC与定时器实战:低功耗唤醒与精准定时配置指南
  • Claude 4.8重构能力详测:语义保真度与模块拆分实测
  • 深入解析Tomcat类加载器:为何及如何打破Java双亲委派模型
  • FastAPI 高级特性与最佳实践完全指南:从依赖注入到微服务架构
  • MSP430/432量产利器:Gang Programmer批量编程实战与避坑指南
  • Google 3.6 Flash模型:AI生成数学艺术3D打印STL文件全流程
  • 深圳工商注册服务企业做GEO服务商怎么选?2026年五家服务商深度测评与本地靠谱选型指南 - 科技快讯
  • 2026年苏州靠谱财税咨询服务商介绍:工商注册、代理记账、税务筹划服务选择指南 - 海棠依旧大
  • Win11Debloat:让Windows系统重获新生的终极清理方案
  • 深入解析EDMA控制器:QDMA通道、区域管理与中断机制
  • 企业级API调试终极方案:IntelliJ IDEA插件Cool Request深度解析
  • 学术开题报告智能生成工具paperxie使用指南
  • Claude 4.8工程化接入指南:从需求分析到代码审查全流程
  • 【信息科学与工程学】【数据中心】第三十三篇 云数据中心综合解决方案探讨07
  • 大模型工具调用结果解析与异常处理实战指南
  • GXDE OS Wayland桌面环境解析:从deepin-mutter到兼容性实践
  • 基于Mask R-CNN的高尔夫球智能识别系统设计与优化
  • 架构剖析:Windows Defender 移除工具的技术实现与性能优化策略
  • AI测试智能体实战:基于Cursor、Claude Code、GitHub Copilot构建18个自动化测试方案
  • 东莞1688入驻哪家靠谱 - 热点速览
  • Docker部署Apache Doris实战:从零搭建实时分析集群
  • 深圳服饰品牌服务企业做GEO服务商怎么选?2026年五家代表性深度测评与靠谱选型指南 - 子柔传媒
  • 终极指南:3步完成磁力链接转种子文件,让下载永不失联
  • MSP430FR59xx时钟与低功耗模式实战:从数据手册到超长续航设计
  • 深入解析C6457 EDMA3架构:从寄存器到实战的数据搬运优化