哈希函数是一种将任意长度的消息映射为固定长度的哈希值的函数。哈希函数的输出通常称为哈希值或消息摘要。哈希函数具有以下特点:
1. 输入长度可以是任意长度,输出长度是固定的。
2. 对于相同的输入,输出是唯一的。
3. 对于不同的输入,输出是不同的。
4. 对于输入的微小变化,输出的变化是不可预测的。
哈希函数在信息安全领域中被广泛应用,例如数据完整性验证、数字签名、密码学等方面。哈希函数的安全性是保证这些应用的基础。
ISO/IEC 10118-4:1998定义了一种使用模算术的哈希函数。该哈希函数使用了模运算和乘法运算,具有较高的安全性和效率。该标准定义了哈希函数的输入和输出格式、哈希函数的计算方法、哈希函数的安全性要求等方面的内容。
该标准规定了哈希函数的输入和输出格式。哈希函数的输入可以是任意长度的消息,输出是固定长度的哈希值。哈希函数的输出长度可以是任意长度,但是输出长度必须是8的倍数。哈希函数的输出格式可以是二进制格式或十六进制格式。
该标准定义了哈希函数的计算方法。哈希函数的计算方法包括初始化、消息处理和输出。哈希函数的初始化是将哈希函数的内部状态初始化为一个固定的值。消息处理是将输入消息分成若干个块,每个块的长度为哈希函数的输入块长度。对于每个块,哈希函数都会更新内部状态。输出是将哈希函数的内部状态转换为输出哈希值。
该标准还规定了哈希函数的安全性要求。哈希函数的安全性要求包括抗碰撞性、抗第二原像性和抗预像性。抗碰撞性是指对于不同的输入,哈希函数的输出是不同的。抗第二原像性是指对于给定的输入,很难找到另一个输入,使得它们的哈希值相同。抗预像性是指对于给定的哈希值,很难找到一个输入,使得它的哈希值等于给定的哈希值。
相关标准
- ISO/IEC 10118-3:2004 Information technology -- Security techniques -- Hash-functions -- Part 3: Dedicated hash-functions
- ISO/IEC 10118-5:2012 Information technology -- Security techniques -- Hash-functions -- Part 5: Hash-functions using polynomial evaluation
- ISO/IEC 10118-6:2004 Information technology -- Security techniques -- Hash-functions -- Part 6: Hash-functions using secret techniques
- ISO/IEC 10118-7:2010 Information technology -- Security techniques -- Hash-functions -- Part 7: Hash-functions using compression functions
- ISO/IEC 19790:2012 Information technology -- Security techniques -- Security requirements for cryptographic modules