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

news2024/11/28 12:54:45

基于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.coloradmin.cn/o/1599319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鱼哥推荐书籍第18期:《推荐系统》算法 案例与大模型

鱼哥推荐书籍第18期:《推荐系统》算法 案例与大模型 什么是推荐系统?推荐系统解决了哪些问题?推荐系统的应用领域常用的推荐算法:基于内容的推荐算法协同过滤算法: 如何系统学习推荐系统:第一部分&#xff…

【Java探索之旅】数组使用 初探JVM内存布局

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、数组的使用1.1 元素访问1.2 数组遍历 二、JVM的内存布局🌤️全篇总结 …

聚道云软件连接器助力企业实现滴滴出差报销自动化

一、客户介绍 某机械有限公司是一家在机械设备制造领域拥有深厚底蕴和卓越实力的企业。自公司成立以来,该公司始终秉承创新、务实、高效的发展理念,专注于机械设备的研发、生产和销售。经过多年的发展,公司已成为国内机械行业的佼佼者&#…

PyQt介绍——弹框介绍和使用

PyQt介绍——弹框介绍和使用 一、QMessageBox QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈 QMessageBox类提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。这…

软考证书有用吗?软考证书的含金量大吗?

一、以考代评 通过考试并获得相应级别计算机专业技术资格(水平)证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据《工程技术人员职务试行条例》有关规定和工作需要,从获得计算机专业技术资格…

诺奖得主与巨资“铸剑”:两年内,Pasqal冲刺量子计算的商业化大关

PASQAL的量子计算机 几年前,中性原子技术似乎是最不可能取得突破的领域。因为它们没有电荷,这使得控制它们显得尤为困难。然而,随着哈佛大学和麻省理工学院的最新研究进展,以及像QuEra这样的私营初创公司的努力,中性原…

修改百度百科的词条的方法

百度百科作为国内最大的百科全书网站之一,是广大网民获取各类知识的重要途径之一。所以,如何修改百度百科的词条成为了很多人关心的话题。本文将介绍修改百度百科的方法,并提供一些技巧和注意事项。 注册百度账号 首先,进入百度百…

2024/4/6—力扣—简化路径

代码实现&#xff1a; // 分割/得到名字 char **split(const char *s, int *returnSize) {int n strlen(s);char **ans (char **)malloc(sizeof(char *) * n);int l 0, r 0, len 0;while (r < n) {while (r < n && s[r] /) {r;}l r;while (r < n &…

Flask前端页面文本框展示后端变量,路由函数内外两类

一、外&#xff01;路由函数外的前后端数据传输 Flask后端 ↓ 首先导入包&#xff0c;需要使用 后端&#xff1a;flask_socketio来进行路由外的数据传输&#xff0c; from flask_socketio import SocketIO, emit 前端&#xff1a;还有HTML头文件的设置。 <!DOCTYPE …

面试突击---MySQL索引

面试突击---MYSQL索引 面试表达技巧&#xff1a;1、谈一下你对于mysql索引的理解&#xff1f;&#xff08;为什么mysql要选择B树来存储索引&#xff09;2、索引有哪些分类&#xff1f;3、聚簇索引与非聚簇索引4、回表、索引覆盖、最左匹配原则、索引下推&#xff08;1&#xff…

实验案例二:配置路由器实现互通

一.实验环境 实验用具包括两台路由器&#xff08;或交换机)&#xff0e;一根双绞线缆&#xff0c;一台PC&#xff0c;一条Console线缆。 二.需求描述 如图6.14所示&#xff0c;将两台路由器的Gig0/0接口相连&#xff0c;通过一台PC连接设备的Console端口并配置IP地址&#x…

跟风Spring的context继承风格写的一个业务处理器,无聊

忽然记起spring的context的N重继承风格&#xff0c;一个抽象类实现一部份功能&#xff0c;想从那重改复写就从哪重开始。脑子一抽&#xff0c;也在业务代码里面玩了下。效果嘛。学得是有模有样&#xff0c;感觉就是越搞越复杂。有点过度设计了&#xff0c;折腾个啥呢。哈哈哈……

防止企业数据泄密的四种有效措施

防止企业数据泄密的四种有效措施 泄密大案每天都在上演&#xff0c;受害者既有几十人的小型企业&#xff0c;也有上万人的世界500强&#xff0c;为什么这些企业都难逃数据泄露的噩梦呢&#xff1f;我们应该采取什么措施来防止信息泄密呢&#xff1f; 首先我们来看看数据泄密的…

聚贤帮赵远峰:照亮希望 激励奋斗

在2023年河北涿州灾情爆发后,聚贤帮的一众学员深入困难群众中去,力所能及贡献自己的一份力量。其实早在2022年4月,聚贤帮的许多成员就曾多次踏入山区,开展慈善活动,用自己的力量为当地居民带来温暖和关爱。 “照亮希望,激励奋斗”成为了大家慈善活动的信仰。通过捐款和物资,聚…

swiper 插件 轮播图

html代码 <div class"text_box"><div class"swiper mySwiper"><div class"swiper-wrapper"><div class"swiper-slide"><imgsrc"https://cdn.pixabay.com/photo/2023/11/08/09/58/leaf-8374442_640.jp…

Linux --- 高级IO

目录 1. 什么是IO 2. 阻塞的本质 3. 五种IO模型 3.1. 通过故事认识五种IO模型 3.2. 上述故事的总结 3.3. 具体的五种IO模型 3.3.1. 阻塞IO 3.3.2. 非阻塞轮询式IO 3.3.3. 信号驱动IO 3.3.4. 多路转接IO 3.3.5. 异步IO 4. 非阻塞IO 4.1. fcntl 系统调用 1. 什么是I…

怎么清除3D模型杂质?---模大狮模型网

在进行3D建模过程中&#xff0c;模型可能会受到各种杂质的影响&#xff0c;这些杂质可能来自于模型本身的结构问题、导入导出过程中的错误、或者是不当的编辑操作所留下的痕迹。清除这些杂质是保证模型质量和渲染效果的关键步骤之一。本文将介绍几种常见的清除3D模型杂质的方法…

【Android】重温Activity生命周期

前言 Android中用得最多的组件是Activity&#xff0c;而它的生命周期也是最基础的知识&#xff0c;从刚接触Android到工作中会频繁依赖这部分知识。可能大多数人能说出页面新建到页面关闭会走的生命周期&#xff1a;onCreate、onStart、onResume、onPause、onStop、onDestory&…

计算机网络 Cisco路由器基本配置

一、实验内容 1、按照下表配置好PC机IP地址和路由器端口IP地址 2、配置好路由器特权密文密码“abcd&#xff0b;两位班内序号”和远程登录密码“star” 3、验证测试 a.验证各个接口的IP地址是否正确配置和开启 b.PC1 和 PC2 互ping c.验证PC1通过远程登陆到路由器上&#…