基于数学问题的构造方法
MASH-1是一种基于RSA算法的散列算法。它于1995年提出并被列入国际标准ISO/IEC 10118-4。Mash-2是Mash-1的改进,用28+1代替第四步中的2。由于模乘/平方运算,计算速度慢,不实用。
利用对称密码体制设计散列函数
分组密码的工作模式是根据不同的数据格式和安全要求,构造一个基于特定分组密码算法的分组密码系统。
基于块的对称密码算法(如DES/AES)只描述如何根据密钥对固定长度的数据进行加密。对于较长的数据,块密码工作模式描述了如何重复应用一种算法来安全地转换大于块的数据。
简单地说,DES/AES算法描述了如何加密一个数据块,分组密码的工作模式,如果重复加密较长的数据块。分组密码有五种常见的工作模式
电子码本(ECB)模式
密码块链(CBC)模式
密码反馈(CFB)模式
输出反馈反馈(OFB)模式
计数器(CTR)模式
ECB工作模式
加密:输入的是当前的明文数据包。
解密:每个密文包被单独解密。
具体公式如下:
ECB工作模式示意图
CBC工作模式
加密:输入当前明文组和前一密文组的异或。
解密:每一个密文包解密后,与前一个密文组进行异或运算,得到明文。
具体公式如下:
CBC工作模式示意图
循环流化床运行方式
加密算法的输入是一个64位移位寄存器,其初始值是初始向量IV。
加密算法输出的最左边(最有效位)J位与明文的第一单元P1进行异或,生成密文的第一单元C1并发送该单元。
然后移位寄存器的内容向左移位J位,C1被发送到移位寄存器的最右边(**有效位)J位。
这个过程一直持续到所有明文单元都被加密。
循环流化床运行方式示意图
OFB运行模式
OFB模式的结构与循环流化床相似
差异:
在OFB模式下,加密算法的输出反馈给移位寄存器
在CFB模式下,密文单元被反馈到移位寄存器
OFB运行方式示意图
CTR工作模式
加密:输入当前明文包和计数器密文包的异或。
解密:每个密文包被解密后,与反密文包进行异或运算得到明文。
具体公式如下:
CTR工作模式示意图
工作模式比较
ECB模式简单且高速,但它是最脆弱的,容易受到重传攻击。一般不建议使用。
CBC模式适用于文件加密,比ECB模式慢,安全性更强。当出现一些错误时,就没有同步错误。
OFB模式和CFB模式比CBC模式慢得多。在每次迭代中,只有少数比特被加密。如果能够容忍少量的错误扩展,则可以在交换中恢复同步能力。在这种情况下,可以使用CFB或OFB模式。在单位字符流密码中选择循环流化床模式。
CTR模式用于高速同步系统,不允许误差传播。
直接设计哈希函数
Merkle在1989年提出了迭代hash函数的一般结构(另一项工作是Merkel hash tree),1990年Ron Rivest提出了MD4。几乎所有哈希函数都使用这种结构
迭代hash函数的一般结构
将所有消息m分成固定长度的块Yi
**一个pad包含消息M的长度
设置初始值CV0
循环执行压缩函数f,CVI=f(CVI-1?yi-1)
**一个CVI是一个哈希值
算法中反复使用压缩函数f
F有两个输入,一个是上一轮输出的n位值cvi-1,称为链路变量,另一个是本轮算法的B位输入包yi-1
F的输出为n位值CVI,CVI作为下一轮的输入
在算法开始时,应该为链接变量指定一个初始值IV,最终输出的链接变量CVL是最终的哈希值
通常有Bgt;N,所以函数f称为收缩函数
算法可以表示为:CV0=IV=N比初值
CVi=f(CVi-1,Yi-1);1≤i≤L
H(M)=CVL
该算法的核心技术是设计难以发现碰撞的压缩函数f,而敌人对算法的攻击中心化在f的内部结构上
与分组密码一样,f由几轮处理组成
对F的分析需要找出F的碰撞,由于F是一个压缩函数,它的碰撞是不可避免的,所以在设计F时很难找出它的碰撞。
文章标题:如何在区块链中构造哈希函数
文章链接:https://www.btchangqing.cn/107362.html
更新时间:2020年12月02日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。