唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的

基于数学难题的构造方法
MASH-1(ModularArithmeticSecureHash)是一个基于RSA算法的哈希算法 , 在1995年提出 , 入选国际标准ISO/IEC10118-4;MASH-2是MASH-1的改进 , 把第四步中的2换成了28+1;由于涉及模乘/平方运算 , 计算速度慢 , 非常不实用 。
利用对称密码体制设计哈希函数
分组密码的工作模式是:根据不同的数据格式和安全性要求 , 以一个具体的分组密码算法为基础构造一个分组密码系统的方法 。
基于分组的对称密码算法比如DES/AES算法只是描述如何根据秘钥对一段固定长度(分组块)的数据进行加密 , 对于比较长的数据 , 分组密码工作模式描述了如何重复应用某种算法安全地转换大于块的数据量 。
简单的说就是 , DES/AES算法描述怎么加密一个数据块 , 分组密码工作模式模式了如果重复加密比较长的多个数据块 。 常见的分组密码工作模式有五种:
电码本(ElectronicCodeBook , ECB)模式
密文分组链接(CipherBlockChaining , CBC)模式
密文反馈(CipherFeedBack , CFB)模式
输出反馈(OutputFeedBack , OFB)模式
计数器(Counter,CTR)模式
ECB工作模式
加密:输入是当前明文分组 。
解密:每一个密文分组分别解密 。
具体公式为:
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
ECB工作模式示意图
CBC工作模式
加密:输入是当前明文分组和前一次密文分组的异或 。
解密:每一个密文分组被解密后 , 再与前一个密文分组异或得明文 。
具体公式为:
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
CBC工作模式示意图
【唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的】CFB工作模式
加密算法的输入是64比特移位寄存器 , 其初值为某个初始向量IV 。
加密算法输出的最左(最高有效位)j比特与明文的第一个单元P1进行异或 , 产生出密文的第1个单元C1 , 并传送该单元 。
然后将移位寄存器的内容左移j位并将C1送入移位寄存器最右边(最低有效位)j位 。
这一过程继续到明文的所有单元都被加密为止 。
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
CFB工作模式示意图
OFB工作模式
OFB模式的结构类似于CFB
不同之处:
OFB模式是将加密算法的输出反馈到移位寄存器
CFB模式中是将密文单元反馈到移位寄存器
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
OFB工作模式示意图
CTR工作模式
加密:输入是当前明文分组和计数器密文分组的异或 。
解密:每一个密文分组被解密后 , 再与计数器密文分组异或得明文 。
具体公式为:
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
唯一机械|硬核丨一文读懂区块链中的哈希函数是如何构造的
文章图片
CTR工作模式示意图
工作模式比较
ECB模式 , 简单、高速 , 但最弱、易受重发攻击 , 一般不推荐 。
CBC模式适用于文件加密 , 比ECB模式慢 , 安全性加强 。 当有少量错误时 , 不会造成同步错误 。
OFB模式和CFB模式较CBC模式慢许多 。 每次迭代只有少数比特完成加密 。 若可以容忍少量错误扩展 , 则可换来恢复同步能力 , 此时用CFB或OFB模式 。 在字符为单元的流密码中多选CFB模式 。


推荐阅读