密码杂凑算法Banana512原理详解

密码杂凑算法Banana512原理详解

黄金龙

QQ1435271638

Banana512属于杂凑函数,与美国的SHA256(安全哈希算法)类似,都属于信息摘要算法,又被称为Hash算法,Hash算法主要用于完整性校验和提高数字签名的有效性

Hash算法的输入为任意长度的消息,输出为固定长度的Hash值该输出就是散列值。通过给定的消息正向计算Hash值是简单的,但是通过Hash值逆向计算对应的消息是困难的。

Banana512算法的亮点

(1)压缩函数的每一轮状态更新都使用到了全部的16个32位消息字,这使得算法的抗碰撞性大大增强,加上本算法使用S盒作为非线性部件,这使得模减差分分析和比特追踪法对本算法均已不再奏效。

(2)压缩函数中的轮函数使用Lai-Massey结构作为混淆扩散组件,这使得轮函数的扩散性好,同时使用Lai-Massey结构很容易构造满足双射特性的轮函数。

Banana512密码杂凑算法描述

Banana512算法采用了与SHA256相同的MD结构,Banana512的消息填充规则与SHA256一致,只是寄存器的个数变为16个,同时没有消息扩展算法,压缩函数也不太一样。Banana512压缩函数的每一轮更新全部16个寄存器的值,更新过程使用了全部的512Bit消息,也就是16个32位消息字。Banana512密码杂凑算法的消息分组长度为512bit,摘要长度为512bit。压缩函数状态大小为512bit,共64步,每步更新全部16个寄存器,这加强了算法的雪崩效应。压缩函数采用了分组密码中的Lai-Massey结构,同时压缩函数寄存器的状态更新算法混合使用了模加运算和异或运算,这比单纯的使用模加运算或者异或运算更加复杂和安全。压缩函数为双射,这是为了保证输出杂凑值各比特的平衡性。

Banana512密码杂凑算法的初始值

Banana512密码杂凑算法的初始值IV共512bit,由16个32bit字(IV0∽IV15)串联而成,具体值如下:

Banana512密码杂凑算法的常量

Banana512密码杂凑算法的常量为64个32bit字(CN0∽CN63),具体值如下:

Banana512密码杂凑算法的消息填充

对长度为l(l<2^64)比特的消息m,Banana512密码杂凑算法首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足(l+k+1)=448Mod512的最小非负整数。然后再添加一个64位比特串,该比特串是消息长度的二进制表示。填充后的消息m`的长度是512 的倍数。

Banana512密码杂凑算法的迭代压缩过程

将填充后的消息m`按512bit进行分组:m`=B(0)B(1)…B(n-1),其中n=(l+k+65)/512。对m`按如下方式迭代:

FOR i=0 TO (n-1)

V(i+</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/498392.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java八股文(算法)

Java八股文の算法 算法 算法 逆序输出字符串 题目描述&#xff1a;输入一个字符串&#xff0c;要求逆序输出。 public static String reverseString(String s) {StringBuilder sb new StringBuilder();for (int i s.length() - 1;i > 0;i--) {sb.append(s.charAt(i));}r…

科技改变财务规划:提升企业对自动化技术的管理

在当今快节奏的市场经济中&#xff0c;财务规划与分析团队不仅仅是数字运算者&#xff0c;他们在推动业务决策、识别风险和机遇以及制定未来战略计划方面发挥着关键作用。然而&#xff0c;对于大多数企业来说&#xff0c;现实情况是财务工作过于关注历史数据分析和报告&#xf…

在 Mac 上恢复已删除文件的 4 种方法 [完整指南]

几乎每个 Mac 用户都有过因删除、格式化硬盘或清空垃圾箱而导致数据丢失的经历。当您在 Mac 上删除文件并清空垃圾箱或使用“磁盘工具”擦除功能擦除整个硬盘驱动器时&#xff0c;您可能会认为已删除的文件或已擦除的数据已永远消失。事实上&#xff0c;事实并非如此。使用正确…

电池稳定性测试系统太阳光模拟器/数字源表/测试软件

太阳光模拟器又称太阳模拟器太阳能模拟器提供一个接近自然日光的环境&#xff0c;不受环境、气候和时间等因素影响实现24小时不间断光照。太阳光模拟器又称太阳能模拟器太阳模拟器广泛应用于太阳能电池特性测试、染料敏化电池&#xff08;DSSC&#xff09;、钙钛矿电池&#xf…

JavaNIO的Buffer详解

文章目录 1. 简介2. 相关属性3. 相关方法4. 直接内存深入理解5. 零拷贝6. Java生态中的0拷贝 1. 简介 Buffer缓冲区实际上就是一个数组&#xff0c;把数组的内容和信息包装成一个Buffer对象&#xff0c;它提供了一组访问这些信息的方法。 2. 相关属性 Capacity 作为一个内存…

【YOLOv5改进系列(6)】高效涨点----使用DAMO-YOLO中的Efficient RepGFPN模块替换yolov5中的Neck部分

文章目录 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ 添加yolov5_GFPN.yaml文件二、2️⃣添加extra_modules.py代码三、3️⃣yolo.py文件添加内容3.1 &#x1f393; 添加CSPStage模块 四、4️⃣实验结果4.1 &#x1f393; 使用yolov5s.pt训练的结果对比4.2 ✨ 使用…

某某消消乐增加步数漏洞分析

一、漏洞简介 1&#xff09; 漏洞所属游戏名及基本介绍&#xff1a;某某消消乐&#xff0c;三消游戏&#xff0c;类似爱消除。 2&#xff09; 漏洞对应游戏版本及平台&#xff1a;某某消消乐Android 1.22.22。 3&#xff09; 漏洞功能&#xff1a;增加游戏步数。 4&#xf…

【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)

使用介绍 1、【宝塔】删除ripro文件&#xff0c;上传最新ripro版本&#xff0c;然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖&#xff08;找到对应路径单个文件去覆盖&#xff09;。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺…

STM32使用USART发送数据包指令点亮板载LED灯

电路连接&#xff1a; 连接显示屏模块&#xff0c;显示屏的SCL在B10&#xff0c;SDA在B11。 程序目的&#xff1a; 发送LED_ON指令打开板载LED灯&#xff0c;发送LED_OFF关闭板载LED灯&#xff0c;与上一个博客不同&#xff0c;这个实际上是实现串口收发文本数据包。 …

【产品经理】全面解读“数字孪生”

理解数字孪生 随着互联网技术的深入发展&#xff0c;数字孪生被越来越多地提及&#xff0c;那么数字孪生到底是什么&#xff1f;数字孪生&#xff0c;翻译自英文“Digital Twin”&#xff0c;最早在2002年&#xff0c;被从事产品生命周期管理PLM的Michael Grieves教授&#xf…

SPDZ基础使用手册(深度学习视角)

基本类型 深度学习中最常使用的便是秘密定点数sfix&#xff0c;有关定点数的高级运算协议请参阅Paper: Secure Computation With Fixed-Point Numbers. 容器类型 SPDZ的深度学习框架主要基于TensorFlow实现&#xff0c;其中使用的容器是张量Tensor&#xff0c;在库中的定义如下…

高等数学基础篇(数二)之微分方程常考题型

常考题型&#xff1a; 一、方程求解 二、综合题 三、应用题 目录 一、方程求解 二、综合题 三、应用题 一、方程求解 二、综合题 三、应用题

springcloud微服务项目,通过gateway+nacos实现灰度发布(系统不停机升级)

一、背景 灰度发布的目的是保证系统的高可用&#xff0c;不停机&#xff0c;提升用户体验。在微服务系统中&#xff0c;原有系统不下线&#xff0c;新版系统与原有系统同时在线&#xff0c;通过访问权重在线实时配置&#xff0c;可以让少量用户先应用新版本功能&#xff0c;如…

excel 提取数字字符混合文本中的数字(快捷键ctrl+e)

首先&#xff0c;已知A列数据&#xff0c;在B1单元格输入A列中的数据&#xff0c;如3*4*6 第二部&#xff1a;全选对应的B列&#xff0c;然后&#xff1a; ctrld 批量复制 CTRLE 智能复制 由此可见&#xff0c;智能提取汉字与数字混合中的数字方法 。若想分别提取3个数字&am…

量化交易入门(二十六)RSI指标实现,能盈利吗?

RSI的理论学完了&#xff0c;我们接着用苹果股票的历史数据来回测一下&#xff0c;看看这个指标靠不靠谱。 示例代码 import backtrader as bt import yfinance as yf# 定义RSI策略 class RSIStrategy(bt.Strategy):params ((rsi_period, 14),(rsi_upper, 70),(rsi_lower, 30…

新手体验OceanBase社区版V4.2:离线部署单节点集群

本文源自OceanBase用户的分享 先简单总结如下&#xff1a; 1.本文适合初学者体验OceanBase社区版 v4.2.2 2.仅需准备一台配置为2C/8G的Linux虚拟机 3.通过离线方式安装&#xff0c;以便更直观地了解安装过程 一、Linux系统准备 在宿主机(即你的windows PC电脑)上安装vbox软…

李宏毅【生成式AI导论 2024】第5讲 让语言模型彼此合作,把一个人活成一个团队

GPD4,它也有非常强大的能力。但是GPT4如果跟其他的语言模型合作,他们其实可以发挥1加1大于二的力量。 为什么要让模型合作? 那怎么让模型彼此合作呢?有很多不同的方式。一个可能性是假设你现在手边就有一堆语言模型,他们可能有不同的能力使用,他们可能有不同的成本局来…

如何将几个长度相同的列表并列组合在一起(附:zip函数使用出错原因:巨坑~)

Python中列表对象使用很方便&#xff0c;用Python编程时&#xff0c;经常会遇到将多个长度相同的列表是针对某一组特定对象的&#xff0c;如何能方便的把这些列表组合起来一起使用呢&#xff1f;ZIP()函数可以方便的解决这个问题。 一、将几个长度相同的列表并列组合 例如&am…

2014年认证杯SPSSPRO杯数学建模B题(第二阶段)位图的处理算法全过程文档及程序

2014年认证杯SPSSPRO杯数学建模 B题 位图的处理算法 原题再现&#xff1a; 图形&#xff08;或图像&#xff09;在计算机里主要有两种存储和表示方法。矢量图是使用点、直线或多边形等基于数学方程的几何对象来描述图形&#xff0c;位图则使用像素来描述图像。一般来说&#…

3D产品可视化SaaS

“我们正在走向衰退吗&#xff1f;” “我们已经陷入衰退了吗&#xff1f;” “我们正在步入衰退。” 过去几个月占据头条的问题和陈述引发了关于市场对每个行业影响的讨论和激烈辩论。 特别是对于科技行业来说&#xff0c;过去几周一直很动荡&#xff0c;围绕费用、增长和裁…
最新文章