密码学基础与哈希函数理论入门
在密码学领域,哈希函数扮演着至关重要的角色。它是一种将通常非常大甚至无限的定义域元素映射到小范围的数学函数,具有压缩性。例如,SHA - 256哈希函数可以处理任意长度(不超过$2^{64} - 1$位)的输入,并生成256位的哈希值。然而,仅具备压缩性对于大多数密码学任务是不够的,哈希函数还需具备一些特殊的安全属性,如单向性,即受限计算能力的对手在给定随机哈希值时,找到原像的概率极小。
1. 符号约定
为了便于后续的学习和研究,我们需要明确一些贯穿始终的符号约定:
- 标准符号 :用$\mathbb{Z}$表示整数集,$\mathbb{N}$表示自然数集,$\mathbb{R}$表示实数集,$\mathbb{R}^+$表示正实数集,$\mathbb{R}^+_0$表示非负实数集,$\mathbb{N}^+$表示正整数集。
- 赋值与等式 :$A := B$表示通过定义使$A$和$B$相等;$x \leftarrow 5$表示将$x$赋值为5;$x \leftarrow^{\$} S$表示从集合$S$中均匀随机选取一个值赋给$x$;$x = y$用于测试$x$和$y$是否相等。
- 字符串 :由有限集$S$中的元素组成的有限有序元组称为字符串,我们主要使用由${0, 1}$组成的位串。用$|x|$表示字符串$x$的长度,${0, 1}^{\ell}$表示长度为$\ell$的所有位串集合,${0, 1}^ $表示所有有限长度位串集合,${0, 1}^{\infty}$表示所有无限二进制字符串集合,${0, 1}^{\le
超级会员免费看
订阅专栏 解锁全文
3732

被折叠的 条评论
为什么被折叠?



