现代密码学5.2--域扩张:Merkle-Damgard Transform

本文是博主对《INTRODUCTION TO MODERN CRYPTOGRAPHY》一书中关于哈希函数的Merkle-Damgard变换的学习笔记。内容涵盖了如何通过变换将固定长度输入扩展为任意长度,以及证明固定长度输入与任意长度输入在抗碰撞性上的等价性。通过两种情况的分析,解释了碰撞对如何在变换中产生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现代密码学5.2--域扩张:Merkle-Damgard Transform

博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。

Merkle-Damgard Transform

  • 根据5.1节哈希函数的定义,我们知道哈希函数是将任意长度的字符串映射到固定长度的字符串: { 0 , 1 } ∗ → { 0 , 1 } l , ∗ > l \{0,1\}^*\rightarrow \{0,1\}^l, *>l { 0,1}{ 0,1}l,>l
  • 但是实际中我们去构建一个哈希函数往往不会考虑对任意长度的输入,这样需要考虑的范围太广了
  • 我们考虑固定长度的输入,比如 2 n → n 2n\rightarrow n 2nn,压缩一半长度的哈希函数
  • 因为有域扩张,考虑固定长度输入与任意长度输入在抗碰撞性上是等价的,所以我们可以只考虑固定长度输入。

现在证明考虑固定长度输入 ( G e n , h ) (Gen,h) (Gen,h)与任意长度输入 ( G e n , H ) (Gen,H) (Gen,H)在抗碰撞性上是等价的:

  • 假设 ( G e n , h ) : { 0 , 1 } 2 n → { 0 , 1 } n (Gen,h):\{0,1\}^{2n}\rightarrow \{0,1\}^n (Gen,h){ 0,1}2n{ 0,1}n
  • ( G e n , H ) : x ∈ { 0 , 1 } ∗ → { 0 , 1 } n , ∣ x ∣ = L < 2 n (Gen, H):x\in\{0,1\}^*\rightarrow \{0,1\}^n,|x|=L<2^n (Gen,H)x{ 0,1}{ 0,1}n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值