采用环形首尾互联互控的雪崩效应极好的Hash算法/杂凑函数RING-512设计原理详解

RING-512密码杂凑算法

黄金龙(QQ1435271638)

什么是Hash算法?

Hash算法,又称为哈希算法、杂凑函数、散列函数、消息摘要算法。它可以将相当长(一般不大于2^64Bit)的输入数据经过计算生成固定长度的Hash值,不同的输入数据对应不同的Hash值(产生碰撞的概率很小)。同时Hash计算的过程是不可逆的,也就是说,由Hash值无法逆推出输入数据。

Hash算法的应用非常多,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储、区块链等。

RING-512密码杂凑算法描述

RING-512密码杂凑算法采用类分组密码算法结构,消息分组长度为512bit,摘要长度为512bit。压缩函数状态大小为512bit,共64步,每步更新全部16个寄存器,这加快了算法的雪崩效应。

RING-512密码杂凑算法的初始值

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

RING-512密码杂凑算法的常量

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

RING-512密码杂凑算法的消息填充

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

RING-512密码杂凑算法的迭代压缩过程

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

FOR i=0 TO (n-1)

M(i)=MsgMix(B(i))

V(i+1)=CF(V(i),M(i))

ENDFOR

其中CF是压缩函数,V(0)为512 bit初始值IV,B(i)为填充后的消息分组,迭代压缩的结果为V(n)。

MsgMix为消息混乱函数,描述如下:

FOR i=0 TO 15

M[i]=((B[i]+CN[4*i])CN[4*i+1]+ CN[4*i+2])CN[4*i+3];

ENDFOR

RING-512密码杂凑算法的压缩函数

假定A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P为32位寄存器,T0,T1,T2,T3为中间变量,压缩函数V(i+1)=CF(V(i),M(i)),V(0)←IV0||……||IV15,0≤i≤n-1

状态更新过程描述如下:

ABCDEFGHIJKLMNOP←V(i);

FOR j=0 TO 63

T0=FFFF0(A,B,C,D);

E=E⊕T0+M[0]⊕A;

F=F⊕T0+M[1]⊕B;

G=G⊕T0+M[2]⊕C;

H=H⊕T0+M[3]⊕D;

T1=FFFF1(E,F,G,H);

I=I⊕T1+M[4]⊕E;

J=J⊕T1+M[5]⊕F;

K=K⊕T1+M[6]⊕G;

L=L⊕T1+M[7]⊕H;

T2=FFFF2(I,J,K,L);

M=M⊕T2+M[8]⊕I;

N=N⊕T2+M[9]⊕J;

O=O⊕T2+M[10]⊕K;

P=P⊕T2+M[11]⊕L;

T3=FFFF3(M,N,O,P);

A=A⊕T3+M[12]⊕M;

B=B⊕T3+M[13]⊕N;

C=C⊕T3+M[14]⊕O;

D=D⊕T3+M[15]⊕P;

Temp=A;A=B;B=C;C=D;D=E;E=F;F=G;G=H;

H=I;I=J;J=K;K=L;L=M;M=N;N=O;O=P;P=Temp;

ENDFOR

V(i+1)←ABCDEFGHIJKLMNOPV(i)

杂凑值为

ABCDEFGHIJKLMNOP←ABCDEFGHIJKLMNOPV(i)

4个混淆扩散函数(FFFF0,FFFF1,FFFF2,FFFF3)

Y=FFFF0(X0,X1,X2,X3)

{

}

Y= FFFF1(X0,X1,X2,X3)

{

}

Y= FFFF2(X0,X1,X2,X3)

{

}

Y= FFFF3(X0,X1,X2,X3)

{

}

SBOX32(Z)=SBOX32(z3||z2||z1||z0)=SBOX(z3)||SBOX(z2)||SBOX(z1)|| SBOX(z0)

SBOX查找表

RING-512密码杂凑算法的特点

RING-512密码杂凑算法压缩函数整体结构为类分组密码结构,除了没有消息扩展函数外,还增加了多种新的设计技术,包括使用S盒作为非线性变换、使用了4个不同的加快雪崩效应的混淆扩散函数、每步更新16个寄存器的值等。这样能够有效地避免高概率的局部碰撞,有效地抵抗强碰撞性的差分分析、弱碰撞性的线性分析和比特追踪法等密码分析。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js+Express 路由配置,实现接口分类管理

首先创建一个路由目录及文件 routes/user.js代码 const express require(express); const router express.Router(); // 使用express提供的router对象 const db require(../dbserver/mysql);router.get(/api/user, (req, res) > {const sqlStr SELECT * FROM sys_user;…

mysql基础-表操作

环境&#xff1a; 管理工具&#xff1a;Navicat 数据库版本&#xff1a;5.7.37 mysql的版本&#xff0c;我们可以通过函数&#xff0c;version()进行查看&#xff0c;本次使用的版本如下&#xff1a; 目录 1.管理工具 1.1创建表 1.2.修改表名 1.3.复制表 1.4.删除表 2…

电子电器架构(E/E)演化 —— 车载以太网

电子电器架构&#xff08;E/E&#xff09;演化 —— 车载以太网 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 本文13000字。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一…

权威Scrum敏捷开发企业培训分享

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架。 这是一个两天的实训课程&#xff0c;面向研发管理者、项目经理、产品经理、研发团队等&#xff0c;旨在帮助学员全面系统地学习Scrum和敏捷开发, 帮助企业快速启动敏…

汽车驾驶的基础知识,驾照考试的科目练习

一、教程描述 本套驾驶教程&#xff0c;大小3.15G&#xff0c;共有274个文件。 二、教程目录 01-汽车驾驶的理论知识&#xff08;共95课时&#xff09; 02-汽车驾驶的场地练习&#xff08;共87课时&#xff09; 03-汽车驾驶的道路练习&#xff08;共55课时&#xff09; 0…

Golang leetcode707 设计链表 (链表大成)

文章目录 设计链表 Leetcode707不使用头节点使用头节点 推荐** 设计链表 Leetcode707 题目要求我们通过实现几个方法来完成对链表的各个操作 由于在go语言中都为值传递&#xff0c;&#xff08;注意这里与值类型、引用类型的而区别&#xff09;&#xff0c;所以即使我们直接在…

lambda表达式和包装器

正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 我们在使用库里的排序算法时如果排序的是自定义类型或者库里默认的排序不能满足我们则需求&…

python开发的app有哪些,python如何开发小软件

这篇文章主要介绍了python开发的app有哪些&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Python 无处不在&#xff0c;可以说是现代的 C 编程语言&#xff0c;你可以在任何地…

论文速递|Management Science 11月文章合集(下)

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 编者按 在本系列文章中&#xff0c;我们梳理了运筹学顶刊Management Science11月份发布的47篇文章的基本信息&#xff0c;旨在帮助读者快速洞察行业最新动态。本文为第三部分。 文章1 ● 题目&#xff1a;…

听GPT 讲Rust源代码--library/alloc

File: rust/library/alloc/benches/slice.rs 在Rust源代码中&#xff0c;rust/library/alloc/benches/slice.rs文件的作用是对&[T]类型&#xff08;切片类型&#xff09;进行性能基准测试。该文件包含了对切片类型的一系列操作的基准测试&#xff0c;例如切片迭代、切片排序…

扩散式过滤器 水泵角通除污器 0阻力过滤器直角过滤器工作原理

​ 1&#xff1a;扩散式除污器过滤器介绍 扩散除污器是一种在多个领域都有应用的设备&#xff0c;例如在泵站中用于拦截介质中的杂质&#xff0c;净化介质&#xff0c;保护管路&#xff0c;提高水泵效率&#xff0c;延长水泵寿命等。它还可以方便地进行变径处理&#xff0c;可以…

Ubuntu(WSL)创建用户并赋予权限

查看当前用户 创建新用户 1&#xff09;执行如下命令创建新用户 sudo adduser mysql57 // mysql57 为新用户名&#xff0c;可自定义 2&#xff09;若待创建用户已存在&#xff0c;则先删除已存在用户&#xff0c;然后创建新用户 // 删除用户名 userdel mysql57// 删除组…