matlab Spongent算法

news2024/12/16 3:04:26

1、内容简介


5-可以交流、咨询、答疑

2、内容说明

Spongent 是一种轻量级 Hash 算法,其原理与“海绵”类似,分为“吸收”
和“榨取”两个阶段,所以又可以称之为“海绵结构”算法。
Hash 函数之所以有广泛的应用,是因为它具有以下几个性质:
(1)单向性,对于任意的 Hash 码 h,找到能使 H(x)=h 成立的 x 在计算上是
不可行的。
(2)抗弱碰撞性,对于任意的 x,找到能使 H(x)=H(y)成立的 y 在计算上是不
可行的。
(3)抗强碰撞性,对于任意指定的 Hash 算法,想找到不同的输入得到相同的
输出是不可行的。
下面简单的介绍一下 Spongent 算法的原理。
Spongent 算法是 Bogdanov 等人在 CHES 2011 上提出的轻量级 Hash 函数。
Spongent 算法用 Spongent-n/c/r 表示,是由迭代函数 Spongent- ߨ ܾ 、比特率 r、
容量 c、轮数 R 等组成的海绵结构的算法。给定有限数量的输入位,它将产
生一个 n 位的哈希值。在 Spongent- ߨ ܾ 中,b 作为置换位的宽度,即 state 结
构的容量,b=c+r。Spongent 算法的加密步骤如图 1 所示
从图中可以看出 Spongent 算法的“吸收”和“榨取”过程。具体加密步骤
及各模块内部结构及运算方法如下:
1、初始化阶段:
该输入数据将由一个单一的位 1 填充,后跟必要数量的 0 位,位数
直 到 达 到 r 位 的 倍 数 ( 例 如 , 如 果 r=8, 则 1 位 消 息 “0”将 转 换 为
“01000000”)。然后将其切成 r 位的块。简单举例来说,如果 r=8,而
有一个输入数据是 10 位,那么在此数位最右边补上一个单一的 1 后,
用 0 来将其填充至 r=8 的最小倍数数位 16。因为 r=8,所以位数为 16
的数据不能一次性输入(为什么不能一次性输入后面详谈),应该分为
数据块依次输入。因为是 8 的整倍数,所以将其分为 p=16/8=2 数据块
来进行输入。其他位数的数据同样是这种处理方法。简单来说就是,令
|m|为经过填充处理的数据 m 的长度,则 p=|m|/r。
2、吸收阶段:
如图 1 所示,比特率 r 和容量 c 初始数据都为 0,图 1 中所示的 ݉ ͳ ݉ ʹ ǥ
݉ ݅ 为初始化阶段中对处理后的输入数据 m 分块处理后的结果,例如初始化阶段所
举例子经过填充处理位数为 16 的数据经过分块处理后,分为了两个数据块,那
么位数为 16 的数据在输入阶段就对应着 ݉ ͳ ݉ ʹ 两段输入,以此类推。如图 1
所示,很清楚的可以知道,被分块后 ݉ ͳ 首先与状态值(state)的前 r 位的值进
行异或运算(state 的位数为 b,而 b=r+c,此处前 r 位的值为 0,前面举例 r=8
是指 r 的位数为 8,而 r 的初值都是 0,如果说 r=8,就是指 r 为 8 位的全 0 数
据,即“00000000”),而后 c 位的值不与 ݉ ͳ 进行异或运算,如图 1 所示,经过
异或运算后 b 位的新状态值(state)被送入 ߨ ܾ 中进行运算( ߨ ܾ 中的运算很复杂, 后面进行讲解),得出运算过后的新 b 位状态值,同样,重复前一个步骤,因为
的分得的数据块的位数相同都是 r 位,再将新的状态值的前 r 位与数据块第二块
݉ ʹ 进行异或运算,后 c 位仍然不参加运算,得到的新状态值后再送入下一个 ߨ ܾ
中(注:在 n/c/r 都相同的一个 Spongent 算法中,每一个 ߨ ܾ 中的运算都是不一
样的,并不是相同的,不过他们的运算轮数都是一样的,后面会在对 Spongent- ߨ ܾ
的介绍中提到),以此类推,直到将 m 所分的块全部都进行输入完为止,即若分
块为 ݉ ͳ ݉ ʹ ǥ ݉ ݅ ,则一直到 ݉ ݅ 输入并进行运算后,吸收阶段才会结束,如
图 1 所示。
3、榨取阶段:
如图 1 所示,榨取阶段的原理其实和吸收阶段的原理近似相同,对数据进行
置换的函数依旧是 Spongent- ߨ ܾ ,只不过没有吸收阶段的异或过程,榨取阶段的
第一个输入为吸收阶段的最后一个置换函数 ߨ ܾ 的输出,因为吸收与榨取阶段的置
换函数类型相同(内部运算不同),所以其输入输出都是 b 位的状态值,榨取阶段
每次 ߨ ܾ 输出 b 位状态值,取其前 r 位作为输出 ݄ ݅ ,同时将此次置换函数输出的 b
位状态值作为下一个置换函数 ߨ ܾ 的输入,以此类推。对于不同的 Spongent 算法
类型,榨取阶段输出 r 位的组数也不同,已知 Spongent-n/c/r 中的 n 为算法的
最终输出数据的位数,所以需要 j=|n|/|r|组置换函数的输出。例如,对于
Spongent-88/80/8 来说,r=8,n=88,则榨取阶段应该输出 j=|n|/|r|=88/8=11
个 r=8 比特的数据组再将每一次的输出 ݄ ͳ ݄ ʹ ǥ ݄ ͳ ͳ 整合为 n=88 位的输出数
据,如图

3、仿真分析

4、参考论文

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

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

相关文章

图的应用4.0-----关键路径(AOE网)

目录 前言 AOE网 1.基本概念 2.应用 关键路径 1.算法理论 2.代码实现(C/C) 前言 前面学习了图AOV网的应用,即拓扑排序,那这一期我们学习AOE网的应用,这是一个图的一个很广泛问题,也就是关键路径。那…

红色荧光PLGA聚乙酸-羟基乙酸共聚物纤维膜 红色荧光PLGA静电纺丝纤维膜

一种含有荧光染料的硝酸纤维素微孔膜及其制备方法。将提供供体荧光分子的荧光染料直接加到铸膜液中,经相转换直接生产出一种带荧光的硝酸纤维素微孔膜,微孔膜中的荧光强度可以通过添加不同剂量的荧光素来控制调节,该微孔膜适用于生产荧光淬灭…

京东平台数据分析:2023年9月京东扫地机器人行业品牌销售排行榜

鲸参谋监测的京东平台9月份扫地机器人市场销售数据已出炉! 根据鲸参谋平台的数据显示,9月份,京东平台扫地机器人的销量近14万,环比增长约2%,同比降低约4%;销售额为2.9亿,环比降低约4%&#xff0…

行情分析——加密货币市场大盘走势(10.27)

目前大饼开始了震荡盘整,目前远离EMA21均线,预计会有大的回调动作。而MACD日线来看,昨日和今日开始呈现绿色空心柱,也在说明大饼在做震荡盘整。不排除大跌的可能性,大饼可以开始布局中长线空单,可以再35000…

企业im即时通讯软件私有化部署,确保信息安全与高效办公

随着企业应用即时通讯(IM)的普及,信息安全问题成为了企业最为关心的话题。为了保障内部信息安全,让员工专心办公,企业可以选择将IM系统私有化部署在内网,与互联网隔离开来。 对于需要与外网通信的需求&…

Vue引入异步组件

defineAsyncComponent 函数:异步引入组件。 Suspense 标签:异步引入组件时,显示默认的内容。 异步引入组件的基本使用: 异步引入组件: import { defineAsyncComponent } from vue; const Child defineAsyncComponen…

基于安卓android微信小程序的投票系统

项目介绍 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,投票系统小程序被用户普遍使用,为方便用户…

关于JAVA中字节码文件版本号、产品版本号及开发版本号的关系

目录 关于字节码版本对应关系清单关于字节码格式说明的资料关于这些版本号 关于字节码版本 以二进制打开字节码文件: 如上图中第5-8标识(圈起来的)的即字节码版本号 十六进制: 34 十进制: 52 jdk 8 对应关系清单 …

网络策略实战

网络策略实战 网络策略 在命名空间 dev 中创建⽹络策略 dev-policy,只允许 命名空间 prod 中的 pod 连上 dev 中 pod 的 80 端⼝,注意:这⾥有 2 个 ns ,⼀个为 dev(⽬标pod的ns),另外⼀个为prod(访 问源pod的ns) 🔋创建…

熟悉项目过程中

刑天机器人本身 背景知识: 刑天与地平线的关系、旭日派的关系? 地平线是一家公司,刑天机器人是他们家的一款产品,是硬件,旭日派也是他们家的一款产品,用作刑天机器人的大脑。 刑天机器人的源代码能安装…

【网络安全无小事】汽车网络安全:只有开局,没有尽头,聚光向前,安全到达

“ 汽车网络安全: 只有开局,没有尽头,聚光向前,安全到达。” 01 — 引言 汽车一直以来都将速度、激情、男性荷尔蒙和阳刚气息联系在一起,这种联系似乎已经成为了文化符号。然而,作为一名安全从业者,我时常担…

汽车电子 -- Bin、Hex、Srec、s19、elf等文件的区别

一、烧写文件 烧写文件有很多种格式,比如bin、Hex、s19等。下面对这几种文件格式做一下介绍。 1、bin文件 参看:【嵌入式烧录/刷写文件】-3.1-详解二进制Bin格式文件 bin是binary的缩写,翻译为“二进制”。binary file 二进制文件是一个…

idea提交代码冲突后,代码意外消失解决办法

敲了大半天的代码,解决冲突后,直接消失了当时慌的一批CCCCC 右击项目Local History ----show History 找到最近提交的内容右击选择Revert,代码全回来了

python+request接口自动化框架

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离! robot framework 的安装不过多说明,网上资料比较太多~ 实例:!!!&#xff01…

matlab simulink PMSM永磁电机DTC控制

1、内容简介 略 10-可以交流、咨询、答疑 2、内容说明 PMSM永磁电机DTC控制 PMSM、永磁电机、DTC控制 传 是 ,它的工作原理是:首先设定好运行期望值和滞环的容差值,然后把电机 到的差值 号输出,可以 示需要减小 大输出…

​LeetCode解法汇总1465. 切割后面积最大的蛋糕

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 矩形蛋糕的…

ChatGLM系列七:LangChain+ChatGLM-6B

背景介绍 在开发过程中,我们经常会遇到需要构建基于本地知识库的问答系统的问题。这种系统需要能够根据用户提供的问题,在本地的知识库中查找并返回相关答案。然而,要实现这样的功能并不容易,涉及到语言模型的选择、知识库的管理…

OpenCV+OpenCvSharp实现图片特征向量提取与相似度计算

图片特征向量是一种用于描述图片内容的数学表示,它可以反映图片的颜色、纹理、形状等信息。图片特征向量可以用于做很多事情,比如图片检索、分类、识别等。 本文将介绍图片特征向量的提取以及相似度的计算,并使用C#来实现它们。 文章开始前&a…

论文阅读——BART

Arxiv: https://arxiv.org/abs/1910.13461 一个去噪自编码器的预训练序列到序列的模型。是一个结合了双向和自回归transformers的模型。 预训练分为两个阶段:任意噪声函数破坏文本和序列模型重建原始文本 一、模型 input:被破坏的文本-->bidirecti…

折磨的Ts

先看下官网 这里的withDefault是给props设置默认值的 由于props传入了个函数在设置默认值的时候不知道怎么设置了 解决办法:直接不设置了。也不写了。