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


基于数学难题的构造方法
MASH-1 (Modular Arithmetic Secure Hash)是一个基于RSA算法的哈希算法 , 在1995年提出 , 入选国际标准ISO/IEC 10118-4;MASH-2是MASH-1的改进 , 把第四步中的2换成了28+1;由于涉及模乘/平方运算 , 计算速度慢 , 非常不实用 。
利用对称密码体制设计哈希函数
分组密码的工作模式是:根据不同的数据格式和安全性要求 ,以一个具体的分组密码算法为基础构造一个分组密码系统的方法 。
基于分组的对称密码算法比如DES/AES算法只是描述如何根据秘钥对一段固定长度(分组块)的数据进行加密 , 对于比较长的数据 , 分组密码工作模式描述了如何重复应用某种算法安全地转换大于块的数据量 。
简单的说就是 , DES/AES算法描述怎么加密一个数据块 , 分组密码工作模式模式了如果重复加密比较长的多个数据块 。 常见的分组密码工作模式有五种:

  • 电码本( Electronic Code Book , ECB)模式
  • 密文分组链接(Cipher Block Chaining , CBC)模式
  • 密文反馈(Cipher Feed Back, CFB)模式
  • 输出反馈(Output Feed Back, 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工作模式
加密:输入是当前明文分组和计数器密文分组的异或 。
解密:每一个密文分组被解密后 , 再与计数器密文分组异或得明文 。
具体公式为:
硬核丨一文读懂区块链中的哈希函数是如何构造的
本文插图

硬核丨一文读懂区块链中的哈希函数是如何构造的
本文插图


推荐阅读