现代密码学5.2--域扩张:Merkle-Damgard Transform
博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。
- 第二章定义了完美安全及其对应的密码方案“一次一密”,
- 第三章介绍了安全定义和满足安全定义的密码方案:
- 3.1-3.3 计算安全,PRG和基于PRG构造的满足计算安全的密码方案;
- 3.4-3.5 CPA安全,PRF和基于PRF构造的满足CPA安全的密码方案
- 3.6 基于PRG和PRF构造的流密码和分组密码;
- 3.7 CCA安全,对非CCA安全密码方案的攻击
- 第五章介绍哈希函数:
- 5.1节介绍了哈希函数的定义
- 5.2节将介绍一种域扩张,可以将固定长度的输入扩张到任意长度的输入,这样我们就可以只考虑固定长度输入的哈希函数,简化了问题。
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 2n→n,压缩一半长度的哈希函数
- 因为有域扩张,考虑固定长度输入与任意长度输入在抗碰撞性上是等价的,所以我们可以只考虑固定长度输入。
现在证明考虑固定长度输入 ( 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