基于ARX结构(模加运算循环移位异或运算)的密码杂凑算法Lemon512

基于ARX结构(模加运算&循环移位&异或运算)的密码杂凑算法Lemon512

黄金龙

QQ1435271638

密码杂凑算法

密码杂凑算法也称作“散列算法”或“哈希算法”,现在的密码行业标准统称其为密码杂凑算法,简称“杂凑算法”或“杂凑函数”。密码杂凑算法对任意长度的消息进行压缩,输出定长的消息摘要或杂凑值,可用于数字签名、完整性保护、安全认证、口令保护等。用于完整性保护时,杂凑算法常常与密钥一同使用,生成的杂凑值称为MAC,这样的杂凑算法称为带密钥的杂凑算法(Keyed-hash Message Authentication Code,HMAC)。目前比较常见的密码杂凑算法有MD5、HAVAL、RIPEMD、SHA-0、SHA-1、SHA-2、SHA-3和SM3等。

ARX结构型密码算法

采用ARX结构的密码算法仅使用模加运算&循环移位&异或运算,它的代数结构非常简单,非常易于软硬件实现。模加运算作为唯一的非线性运算,它提高了算法的非线性复杂度。循环移位从字层面为ARX密码提供了扩散能力,而异或操作从比特层面为ARX密码提供了混淆能力,模加运算提高了对 ARX 型密码算法的分析的困难程度。ARX类型算法具有良好的扩散和混淆性质,传统的差分攻击、线性攻击和代数攻击等密码分析方法针对该类算法的攻击效果通常并不理想。由于在效率、安全性和易实现性等方面的优势,ARX 型密码得到了广泛应用,多个国际对称密码标准都采用了ARX型设计。

Lemon512算法简介

Lemon512为基于ARX结构设计的密码杂凑算法,消息分组长度为512,杂凑值长度为512位,Lemon512的输入为长度不大于2^64的消息值,输出为512位的摘要值。

其中iv为链接变量初始值,hi-1为当前链接变量,mi-1为当前消息块,cf为压缩函数。

Lemon512算法使用ARX结构作为压缩函数的基本部件,因为仅仅使用了模加运算&循环移位&异或运算,这使得Lemon512算法在提高效率的同时安全性也得到了保证。Lemon512算法交替使用模加运算和异或运算,这比单纯使用模加运算或者异或运算更加复杂和更加能抵抗各种分析。

Lemon512算法的亮点

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

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

(3)典型密码杂凑算法的将每一块消息输入压缩函数,而本算法将前i轮的消息累加和输入压缩函数,这使得算法的扩散性更强,雪崩效应更好。

(4)由于步函数H3=H3FFFF1(H0,H1,H2,M3)M3(y=f(M)+M),步函数中含有两个消息字,故步函数无法表示成消息字的显示形式(M=f(x)),在差分分析时增加了消息修改的困难性。该算法有效地增加了运用消息修改技术的困难,并且得到良好的差分扩散特性。

Lemon512密码杂凑算法描述

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

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

相关文章

汽车零部件制造迎来智能化升级,3D视觉定位系统助力无人化生产线建设

随着新能源汽车市场的蓬勃发展,汽车零部件制造行业正面临着前所未有的机遇与挑战。为了提高产能和产品加工精度,某专业铝合金汽车零部件制造商决定引进智能生产线,其中,对成垛摆放的变速箱壳体进行机床上料成为关键一环。 传统的上…

Postgresql源码(125)游标恢复执行的原理分析

问题 为什么每次fetch游标能从上一次的位置继续?后面用一个简单用例分析原理。 【速查】 恢复扫描需要知道当前页面、上一次扫描到的偏移位置、当前页面一共有几条: 当前页面:HeapScanDesc结构中记录了扫到的页面(scan->rs_cb…

WPF中DataGrid主从数据(父子数据)展示

在wpf中可以使用DataGrid控件,进行主从数据展示,也称父子数据展示。下面展示纯原生控件编码实现功能(样式自己可以根据需求进行修改)。 效果如下: 点击图标,展开和收缩可以自由的切换,也可以自己重新写一个样式,比如+,-或者类似图标的样式,都是可以的。 1.首先创建一…

视频制作|专业人做专业事,分分钟剪出“薪”高度

随着视频的蓬勃发展,很多企业都有了通过视频传递企业信息和宣传企业形象的需求,如短视频、长视频、品宣视频、产品视频等。在了解短视频制作的好处与用途之后,视频在各行各业中都有了广泛的应用。 越来越多的企业选择在YesPMP平台将视频制作业…

GT资源-CPLL QPLL

一、前言 QPLL与CPLL是两种为GT Channel提供时钟的锁相环,其中CPLL与GT Channel绑定,每一个通道都有一个CPLL,而QPLL是与Quad绑定,每一个Quad有一个QPLL,4个通道共享一个QPLL 二、CPLL 每个GTX/GTH收发器通道包含一…

Java基础(变量)

什么是变量? 变量:在程序的执行过程中,其值有可能发生改变的量(数据) 变量的使用场景 当某个数据经常发生改变时,我们也可以用变量储存。当数据变化时,只要修改变量里面记录的值即可。 变量…

iframe嵌入海康威视摄像头监控视频画面

前言:海康威视有非常好的开放平台支持(海康开放平台),如遇到技术问题,可以先花点时间在开放平台视频教程板块学习一下。直接问客服可能会比较懵,而且sdk客服和api客服互相分离,一开始可能都不知道问谁。 在开放平台上…

linux三剑客精妙招式都汇总在本文了(建议收藏)

熟悉linux的都知道,linux中有著名的三个命令,即grep、sed、awk。这三个命令被称为linux三剑客。三剑客包含各种招式众多,熟练掌握这三个命令的用法,将大大提高我们对文件的处理速度,大大提升运维效率。 本文通过具体实…

Python零基础从小白打怪升级中~~~~~~~TCP网络编程

TCP网络编程 一、什么是TCP协议 TCP( Transmission control protocol )即传输控制协议,是一种面向连接、可靠的数据传输协议,它是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。 面向连接 :数据传输之前客户端和…

【环境】原则

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 一、培养项目系统性思维 1.1 系统性思维 1.2 系统性思维的价值 1.3 建模和推演&数字孪生 二、项目的复杂性和如何驾驭复杂性 2.1 复杂性的三个维度 2.2 如何驾驭复杂性 三、…

民航电子数据库:[E14024]事务内变更操作次数超过最大许可值10000,可通过系统参数max_trans_modify适当调整限制

目录 一、场景二、异常情况三、原因四、排查五、解决 一、场景 1、对接民航电子数据 2、执行delete语句时报错 二、异常情况 三、原因 通过报错信息就可以看出,是系统参数max_trans_modify配置导致 当删除的数据量 > max_trans_modify时,删除就会…

BypassUAC漏洞挖掘和代码集成

什么是UAC UAC是UserAccountControl的缩写,即用户帐户控制。是Windows操作系统中的一种安全特性,旨在保护计算机不被未经授权的应用程序和操作所破坏。UAC通过提示用户是否允许某个应用程序或操作修改计算机的设置或访问敏感数据,来帮助用户…