一文读懂区块链中的哈希函数是如何构造的_CFB:CBC

1.基于数学难题的构造方法

MASH-1(ModularArithmeticSecureHash)是一个基于RSA算法的哈希算法,在1995年提出,入选国际标准ISO/IEC10118-4;MASH-2是MASH-1的改进,把第四步中的2换成了281;由于涉及模乘/平方运算,计算速度慢,非常不实用。

2.利用对称密码体制设计哈希函数

分组密码的工作模式是:根据不同的数据格式和安全性要求,以一个具体的分组密码算法为基础构造一个分组密码系统的方法。

基于分组的对称密码算法比如DES/AES算法只是描述如何根据秘钥对一段固定长度(分组块)的数据进行加密,对于比较长的数据,分组密码工作模式描述了如何重复应用某种算法安全地转换大于块的数据量。

Worldcoin:今夏和今秋将在全球超35个城市扩展至1500个可用Orbs:7月25日消息,Worldcoin发推称,今年夏天和秋天将在全球超过35个城市扩展至1500个可用Orbs,在香港Orbs从7月24日开始在全市多个地点限时发售,直接在World App中查找位置和预订信息。[2023/7/25 15:56:52]

简单的说就是,DES/AES算法描述怎么加密一个数据块,分组密码工作模式模式了如果重复加密比较长的多个数据块。常见的分组密码工作模式有五种:

电码本(ElectronicCodeBook,ECB)模式

密文分组链接(CipherBlockChaining,CBC)模式

密文反馈(CipherFeedBack,CFB)模式

OPNX已上线测试版ios客户端:7月16日消息,加密索赔和交易平台Open Exchange(OPNX)在官推宣布,已在Testlight上推出平台的测试版ios客户端。[2023/7/16 10:57:49]

输出反馈(OutputFeedBack,OFB)模式

计数器(Counter,CTR)模式

ECB工作模式

加密:输入是当前明文分组。

解密:每一个密文分组分别解密。

具体公式为:

ECB工作模式示意图

CBC工作模式

加密:输入是当前明文分组和前一次密文分组的异或。

解密:每一个密文分组被解密后,再与前一个密文分组异或得明文。

PROOF推出Web3创作者加速计划“Outliers”:3月25日消息,NFT项目Moonbirds母公司PROOF在社交媒体宣布推出Web3创作者加速计划“Outliers”,旨在支持“尝试突破技术障碍并通过其艺术作品进行创新”的创作者,据悉首批入围2023春季队列的创作者共有15个,包括Terrell Jones、Alien Queen、Patrick Amadon等。[2023/3/25 13:25:50]

具体公式为:

CBC工作模式示意图

CFB工作模式

加密算法的输入是64比特移位寄存器,其初值为某个初始向量IV。

加密算法输出的最左(最高有效位)j比特与明文的第一个单元P1进行异或,产生出密文的第1个单元C1,并传送该单元。

前美国财政部官员:政策制定者必须考虑另类资产投资和代币化的风险:金色财经报道,前美国财政部官员John Rizzo表示,政策制定者必须考虑另类资产投资和代币化的风险。另类资产(Alternative Asset),即使是那些代币化的资产,对散户投资者来说也包含额外的下行风险。Rizzo解释称,市场参与者将面临来自华盛顿立法者和监管者的质疑,他们认为另类资产投资只是企业增加利润的一种手段,同时让消费者面临更大的损失风险。如果立法者(尤其是民主党),在明年将重点放在代币化上,而不是单个代币上,那么多年后美国可能会创造一个更加公平的经济未来。[2023/2/14 12:05:00]

然后将移位寄存器的内容左移j位并将C1送入移位寄存器最右边(最低有效位)j位。

这一过程继续到明文的所有单元都被加密为止。

CFB工作模式示意图

OFB工作模式

OFB模式的结构类似于CFB

不同之处:

OFB模式是将加密算法的输出反馈到移位寄存器

CFB模式中是将密文单元反馈到移位寄存器

OFB工作模式示意图

CTR工作模式

加密:输入是当前明文分组和计数器密文分组的异或。

解密:每一个密文分组被解密后,再与计数器密文分组异或得明文。

具体公式为:

CTR工作模式示意图

工作模式比较

ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。

CBC模式适用于文件加密,比ECB模式慢,安全性加强。当有少量错误时,不会造成同步错误。

OFB模式和CFB模式较CBC模式慢许多。每次迭代只有少数比特完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,此时用CFB或OFB模式。在字符为单元的流密码中多选CFB模式。

CTR模式用于高速同步系统,不容忍差错传播。

3.直接设计哈希函数

Merkle在1989年提出迭代型哈希函数的一般结构;(另外一个工作是默克尔哈希树),RonRivest在1990年利用这种结构提出MD4。(另外一个工作是RSA算法),这种结构在几乎所有的哈希函数中使用,具体做法为:

迭代型哈希函数的一般结构示意图

把所有消息M分成一些固定长度的块Yi

最后一块padding并使其包含消息M的长度

设定初始值CV0

循环执行压缩函数f,CVi=f(CVi-1||Yi-1)

最后一个CVi为哈希值

算法中重复使用一个压缩函数f

f的输入有两项,一项是上一轮输出的n比特值CVi-1,称为链接变量,另一项是算法在本轮的b比特输入分组Yi-1

f的输出为n比特值CVi,CVi又作为下一轮的输入

算法开始时还需对链接变量指定一个初值IV,最后一轮输出的链接变量CVL即为最终产生的杂凑值

通常有b>n,因此称函数f为压缩函数

算法可表达如下:CV0=IV=n比特长的初值

CVi=f(CVi-1,Yi-1);1≤i≤L

H(M)=CVL

算法的核心技术是设计难以找到碰撞的压缩函数f,而敌手对算法的攻击重点是f的内部结构

f和分组密码一样是由若干轮处理过程组成

对f的分析需要找出f的碰撞。由于f是压缩函数,其碰撞是不可避免的,因此在设计f时就应保证找出其碰撞在计算上是困难的

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:15ms0-0:475ms