信息安全中哈希函数的要求是什么?
加密哈希函数是一种转换,它创建输入(或消息)并恢复固定大小的字符串,称为哈希值。哈希值 h 由以下形式的函数 H 生成:
h = H(M)
其中 M 是可变长度的消息,H(M) 是固定长度的哈希值。
哈希函数通常在密码学中用作数学函数来执行安全操作。哈希函数将任意大小的输入值转换为固定大小的值。因此,输入可以是任何长度,但生成的输出始终是固定长度。生成的输出称为哈希值或哈希。
哈希的常用用途是密码检查。当用户输入密码时,会生成密码的哈希值,并将其与数据库中的哈希值进行比较。如果两个哈希值相等,则允许用户登录,否则用户需要再次输入密码。
哈希值在消息在源处被认为或已知正确时添加到消息中。接收方通过重新计算哈希值来验证消息。
哈希函数将任何长度的字符串作为输入,并创建一个固定长度的字符串,作为所支持信息的签名类型。在这种方法中,了解哈希值的人无法计算出原始消息,但了解原始消息的人可以证明哈希是从该消息生成的。
加密哈希函数应该像随机函数一样工作,同时仍然是确定性的并且可以有效计算。加密哈希函数是密码学领域的基本工具,用于执行许多安全目标,如真实性、数字签名、伪随机数生成、数字隐写术、数字时间戳等。
哈希函数的一些要求如下:
哈希函数生成文件、消息或其他信息块的指纹。哈希函数 H 应具有以下属性:
哈希函数可用于任何大小的信息块。
对于任何给定的 x,H(x) 相对容易计算,使硬件和软件实现都变得实用。
对于任何给定的值 h,在计算上不可能找到 x 使得 H(x) = h。这称为单向属性。
对于任何给定的块 x,在计算上不可能找到 y ≠ x 使得 H(y) = H(x)。此属性定义为弱碰撞抵抗。
在计算上不可能找到一些对 (x, y) 使得 H(x) = H(y)。此属性称为强碰撞抵抗。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP