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

密码杂凑算法XuanWu512设计原理详解

密码杂凑算法XuanWu512设计原理详解

什么是密码杂凑算法?

密码杂凑算法是一类单向压缩算法,它的输入为任意长度(通常为不大于2^64位,2^128位,2^256位)的一段消息,输出为固定长度(通常为128位,160位,224位,256位,384位,512位)且看似随机的杂凑值。其可以应用于密码存储,网盘文件上传,密钥扩展算法,区块链,消息完整性验证,随机数生成,以及数字签名等。作为对称密码的重要分支之一,密码杂凑算法在信息安全领域的重要性不言而喻,同时该类算法的设计与分析是既是重点也是难点。

密码杂凑算法的整体结构

常见的密码杂凑算法整体结构有经典MD结构(MD5,SHA-0,SHA-1,SHA-2,SM3,HAVAL,DHA-256等),宽管道结构(Grøstl,GOST等),UBI模式(Unique Block Iteration链式结构)(Skein)HAIFA结构(BLAKE等)和海绵结构(Sponge Structure)(SHA-3,JH,PHOTON,QUARK,Ketje,Keyak等)。

密码杂凑算法的设计应该满足三条基本准则:

  1. 抗碰撞性:对于密码杂凑算法Hash,找到消息M1不等于M2,使得Hash(M1)= Hash(M2)是困难的;
  2. 抗原像攻击:对于密码杂凑算法Hash,找到给定杂凑值H对应的原像M是困难的;
  3. 抗第二原像攻击:对于密码杂凑算法Hash,给点原像M找到不同的M2使得Hash(M)=Hash(M2)是困难的。

    其次,好的密码杂凑算法也应该满足不可逆性伪随机性和雪崩效应。

不可逆性:正向计算是简单的,逆向计算是困难的;

伪随机性:密码杂凑算法的输出在统计上应与真正的随机函数无法区分。即使知道部分输入或输出的关系,也无法有效预测其他输出;

雪崩效应:输入消息的微小改变(例如翻转一个比特),会导致输出哈希值发生巨大的、不可预测的改变(大约一半的比特翻转)。

本文提出的XuanWu512算法是基于经典MD结构设计的,其使用了SBOX32To128和SBOX512To2048两个4倍膨胀S盒(不是双射)和非线性扩散函数MMMM4M(是双射),分别提供了密码杂凑算法必须的混淆性和扩散性,更加保证了该算法具有良好的雪崩效应和不可逆性。

XuanWu512为基于经典MD结构(消息填充,消息扩展,消息压缩)设计的迭代型密码杂凑算法。其支持输入的消息长度不大于2256比特,输出杂凑值的长度为(256比特,512比特,1024比特),推荐使用512比特长度的杂凑值。本算法有2大亮点,一是压缩函数使用先膨胀后挤压的设计理念,这保证了算法的单向性(不可逆性),也即XuanWu512算法正向计算很容易,反向计算很困难;二是使用了基于4维二元非线性扩散函数MMMM4M(基于模加运算),因为模加运算相比异或运算更加复杂及其密码学性质更好,所以这使得该算法保证了高效率的同时兼具安全性。容易证明,MMMM4M为双射。证明过程详见基于4维二元扩散矩阵的线性变换和非线性变换的双射性质证明

XuanWu512算法的执行过程可以分为3个部分(消息填充算法,消息扩展算法,消息压缩算法),如下图所示:

其中初始链接变量如下图所示:

以下我将详细介绍XuanWu512算法的详细设计细节。

(1)消息填充算法

首先对输入的消息进行填充,使其长度变为512的倍数。填充方法是在原始消息末尾添加一个“1”位,然后添加一定数量的“0”位,最后再添加256位的消息长度HEX(Length),使得填充后的消息长度为512的整数倍。然后将填充后的消息以512位为单位进行分组。

(2)消息扩展算法(MsgExtend)

MsgExtend的输入为512比特的当前消息分组M,16个32比特常量Const,输出为64个32比特的扩展消息ExtM。具体实现细节如下图所示:

(3)消息压缩算法(共16轮)

将当前链接变量(2048位共64个32位字)与2048位扩展后的消息依次输入压缩函数进行压缩运算,直到最后一个消息块处理完毕,此时压缩函数的输出的结果的低512位(如果杂凑值为512位)即是该消息的杂凑值。XuanWu512的消息压缩算法如下图所示:

其中按行分组函数Row如下图所示:

其中按列分组函数Column如下图所示:

其中512位到2048位膨胀函数SBOX512To2048AC如下图所示:

其中512位到2048位膨胀函数SBOX512To2048BD如下图所示:

其中512位到2048位膨胀函数SBOX512To2048EG如下图所示:

其中512位到2048位膨胀函数SBOX512To2048FH如下图所示:

其中32位到128位膨胀函数SBOX32To128AC如下图所示:

其中32位到128位膨胀函数SBOX32To128BD如下图所示:

其中32位到128位膨胀函数SBOX32To128EG如下图所示:

其中32位到128位膨胀函数SBOX32To128FH如下图所示:

其中非线性扩散函数MMMM4M如下图所示:

其中行移位变换ShiftRow如下图所示:

其中列移位变换ShiftColumn如下图所示:

本文的总结

密码杂凑算法的设计是一个高度专业化的领域,需要在数学基础、密码学原理和工程效率之间取得精妙的平衡。其核心在于设计一个健壮的压缩函数(或置换函数)并将其嵌入到一个安全的结构(如 Sponge)中。分析则是一个持续的攻防过程,利用各种密码分析技术不断检验算法的安全边界。

理解密码杂凑算法的设计与分析,对于构建安全的密码系统、评估现有系统的安全性以及应对未来威胁(如量子计算)都至关重要。

注意:本文中的XuanWu512算法未经公开的评估和测试,学术设计仅用于教学与研究,切记不要在工作环境中使用该算法,违者后果自负。

http://www.cnnetsun.cn/news/3789009.html

相关文章:

  • G-Helper:华硕笔记本轻量化控制工具的完整使用指南
  • Wand-Enhancer终极指南:3步解锁WeMod完整功能,免费获得专业版体验
  • 如何快速搭建智能交易系统:Chanlun-pro缠论量化工具的完整指南
  • MemoRizz文件系统提供器实战:本地持久化记忆的快速实现
  • 变压器流固耦合温度场仿真技术与工程实践
  • 深度解析DLX:自托管翻译API服务的实战指南与架构揭秘
  • AI渠道归因不是算法竞赛,而是归因治理革命:3步完成数据血缘对齐、模型可观测性部署与业务侧可信交付
  • 3步搭建私有AI聊天平台:为什么Open WebUI是你的最佳选择?
  • Lobe TTS浏览器兼容性测试:从Chrome到Safari的全面适配
  • 还在为Windows无法打开iPhone照片而烦恼?HEIF Utility帮你彻底解决HEIC格式兼容问题
  • Unity音频可视化神器LaspVfx:让你的游戏特效随音乐律动
  • AI越来越聪明,造它的人却越来越害怕
  • 2026年最新英语教学智能工具 一线教师亲测超实用避坑指南
  • 如何高效使用CompressO:开源视频图片压缩工具的完全指南
  • Box64终极指南:5个技巧让ARM设备高效运行x86程序
  • 计算机单片机毕设实战-基于 RTC 时钟的定时智能水循环控制系统设计 基于 STM32 与 WiFi 的环境水温采集控制系统研发(016701)
  • 谁还在手动排版论文[特殊字符]10分钟搞定全校格式规范✅
  • Seroval 未来路线图:即将推出的 5 大新功能预览
  • 制作AI短剧需要多少算力?从一条生产链看云算力平台怎么选
  • MOSS-Transcribe-Diarize 0.9B:端到端语音理解模型的深度解析与实战部署
  • 销售自动电子发票插入用户卡包—东方仙盟自动化运营
  • Vin象棋:重新定义中国象棋AI辅助体验的智能解决方案
  • 基于NVIDIA Jetson与Llama2的本地语音聊天机器人全栈部署指南
  • NVIDIA Profile Inspector终极指南:3步解锁隐藏显卡性能的完整解决方案
  • 【Zynq7100实战】H3-CZ08P-7100 基于QT的LCD触控屏方案开发全流程
  • We0.ai:重新定义AI原生网站生成的下一代开发范式
  • AI 公司批量抢购 2022 年前的旧书:互联网被 AI 污染后,干净语料成了最后的矿脉
  • Puppet模块管理神器librarian-puppet:支持Forge、Git与本地路径的完整方案
  • 2026年横评:16款降AI率软件实测,这款让导师都夸“原创性强”!
  • 公司信息高效采集终极方案:gh_mirrors/co/company-crawler爬虫框架全解析