硬核丨一文读懂区块链中的哈希函数是如何构造的( 二 )
CTR工作模式示意图
工作模式比较
- ECB模式 , 简单、高速 , 但最弱、易受重发攻击 , 一般不推荐 。
- CBC模式适用于文件加密 , 比ECB模式慢 , 安全性加强 。 当有少量错误时 , 不会造成同步错误 。
- OFB模式和CFB模式较CBC模式慢许多 。 每次迭代只有少数比特完成加密 。 若可以容忍少量错误扩展 , 则可换来恢复同步能力 , 此时用CFB或OFB模式 。 在字符为单元的流密码中多选CFB模式 。
- CTR模式用于高速同步系统 , 不容忍差错传播 。
Merkle在1989年提出迭代型哈希函数的一般结构;(另外一个工作是默克尔哈希树) , Ron Rivest在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时就应保证找出其碰撞在计算上是困难的
推荐阅读
- 拥有师匠的偷渡客|3大节点与2口硬核卡池将至,石头攒够了吗?,FGO:年前最后一冲
- 「计算机组成原理」:一文快速了解计算机原理知识点-附思维导图
- fgo|FGO:年前最后一冲,3大节点与2口硬核卡池将至,石头攒够了吗?
- 芯片|日本:中国自研光子芯片“弯道超车”,未来芯片将“一文不值”!
- 东方网|“五彩”服务包、校友会工作站……闵行吴泾“硬核”举措服务区域人才
- 汽湃|广汽传祺中国品牌“八冠王”是如何炼成的?,硬核实力不负期待
- 封面新闻|内蒙古老师硬核喊话叫停室外施工:上课呢!影响我们下一代
- 游艺随心|300万销量的单机游戏,本是硬核工业模拟,却被玩成了休闲游戏
- 中国青年网|人脸追踪、双目活体对齐……系统梳理人脸识别开发的硬核技巧
- 病例|一文读懂全球疫情:全球确诊超4024万例 专家警告美国第三波疫情很可能到来
