密码杂凑算法四大金刚系列算法回顾
密码杂凑算法四大金刚系列算法回顾密码杂凑算法(又称为哈希算法散列算法信息摘要算法等)四大金刚(青龙白虎朱雀玄武)系列算法均为本人所设计。只记得当时在学习对称密码学最开始学习的是分组加密算法的分析与设计接着又开始学习序列密码算法(太难了比分组加密算法要难多了)之后对密码杂凑算法很感兴趣在学习的同时脑子中也有很多自己的奇思妙想于是我开始设计自己的密码杂凑算法只是为了记录自己关于密码算法设计的一些创意和想法。我设计密码杂凑算法是出于自己的兴趣和爱好同时也希望我关于这些算法的奇思妙想能够给学习密码算法的人起到抛砖引玉的作用。注意本人(黄金龙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是保障系统安全的基本准则。

相关新闻

1B小模型训练实录:3天烧掉800元后,它在客服场景竟比GPT-5.4快2倍

1B小模型训练实录:3天烧掉800元后,它在客服场景竟比GPT-5.4快2倍

为什么还要训练小模型?深度剖析轻量化的商业价值 当团队首次提出用AI处理售后工单的需求时,我的第一反应是直接调用GPT-5.4这样的顶级大模型。然而经过为期两周的实测,我们发现了三个关键问题:单次响应延迟普遍超过1.2秒&#xf…

2026/9/16 18:50:29 阅读更多 →
如何免费解锁Microsoft 365完整功能:3步永久激活Office的终极指南

如何免费解锁Microsoft 365完整功能:3步永久激活Office的终极指南

如何免费解锁Microsoft 365完整功能:3步永久激活Office的终极指南 【免费下载链接】ohook An universal Office "activation" hook with main focus of enabling full functionality of subscription editions 项目地址: https://gitcode.com/gh_mirror…

2026/9/11 4:00:47 阅读更多 →
大模型API接入实战:价值、挑战与优化策略

大模型API接入实战:价值、挑战与优化策略

1. 项目概述:大模型API接入的价值与挑战去年我在帮一家跨境电商客户搭建智能客服系统时,第一次真正体会到API接入的价值。他们原本计划自建NLP团队,但评估后发现:训练一个勉强可用的中文对话模型,至少需要6个月时间和2…

2026/9/21 13:50:12 阅读更多 →

最新新闻

Bun 开发实战指南:基于 agentic-awesome-skills 技能库全面掌握 Bun 运行时

Bun 开发实战指南:基于 agentic-awesome-skills 技能库全面掌握 Bun 运行时

AI 技能AI 插件 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400 agentic skills. Includes CLI, local MCP, catalog, …

2026/9/23 16:26:25 阅读更多 →
Kubernetes 集群 TLS 证书与密钥创建实战:基于 CFSSL 的 CA 与组件证书生成全指南

Kubernetes 集群 TLS 证书与密钥创建实战:基于 CFSSL 的 CA 与组件证书生成全指南

Kubernetes 集群 TLS 证书与密钥创建实战:基于 CFSSL 的 CA 与组件证书生成全指南 【免费下载链接】kubernetes-handbook Kubernetes 架构与生态:从云原生到 AI 原生基础设施的构建指南 项目地址: https://gitcode.com/gh_mirrors/ku/kubernetes-handb…

2026/9/23 16:26:25 阅读更多 →
Play Framework 构件仓库指南:从 Maven Central 到 Nightly Snapshots 的完整解析

Play Framework 构件仓库指南:从 Maven Central 到 Nightly Snapshots 的完整解析

Play Framework 构件仓库指南:从 Maven Central 到 Nightly Snapshots 的完整解析 【免费下载链接】playframework The Community Maintained High Velocity Web Framework For Java and Scala. 项目地址: https://gitcode.com/gh_mirrors/pl/playframework 本…

2026/9/23 16:26:25 阅读更多 →
Mockery 处理 final 类与 final 方法:Proxy Mock 代理 Mock 原理与 Laravel 测试实战

Mockery 处理 final 类与 final 方法:Proxy Mock 代理 Mock 原理与 Laravel 测试实战

Mockery 处理 final 类与 final 方法:Proxy Mock 代理 Mock 原理与 Laravel 测试实战 【免费下载链接】sql-server-samples Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, an…

2026/9/23 16:26:24 阅读更多 →
一文搞懂重心的性质

一文搞懂重心的性质

3步搞定重心性质入门到精通 告别报错Stack Trace 昨晚跑代码,满屏红色的 Stack Trace 像天书一样糊脸,盯着 NullPointerException 或 IndexOutOfBounds…

2026/9/23 16:26:24 阅读更多 →
用户画像生成系统源码解析:从数据清洗到聚类分群的完整流水线

用户画像生成系统源码解析:从数据清洗到聚类分群的完整流水线

简介:一份基于Python构建用户画像生成系统的完整源码,面向数据分析、产品运营及后端开发人员,解决用户理解与精细化运营难题,演示从用户行为数据采集清洗、特征工程、行为分析、聚类分群到画像构建与可视化的全流程实现。资源共14…

2026/9/23 16:25:24 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →