Yang's blog Yang's blog
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xiaoyang

编程爱好者
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 现代密码学

    • Chapter 0:Introduction to Modern Cryptography
    • Chapter 1:Introduction and Classical Cryptography
    • Chapter 2:Perfectly Secret Encryption
    • PChapter 3:rivate-Key Encryption
    • Chapter 4:Message Authentication Codes
    • Chapter 5:CCA-Security and Authenticated Encryption
    • Chapter 6:Hash Functions and Applications
    • Chapter 9:Number Theory and Cryptographic Hardness Assumptions
    • Chapter 11:Key Management and the Public-Key Revolution
  • 对称加密

    • DES加密算法详解
  • 同态加密方案

    • RSA乘法同态
    • Paillier 加法同态
    • 可验证Paillier同态加密
    • CKKS EXPLAINED PART 1, VANILLA ENCODING AND DECODING
    • CKKS EXPLAINED, PART 2 FULL ENCODING AND DECODING
    • CKKS EXPLAINED, PART 3 ENCRYPTION AND DECRYPTION
    • CKKS EXPLAINED, PART 4 MULTIPLICATION AND RELINEARIZATION
    • CKKS EXPLAINED, PART 5 RESCALING
  • 隐私计算框架

    • pysyft

      • README
      • PySyfy介绍
      • 数据集与资产
      • 客户端和 Datasite 访问
      • 提出研究问题
      • 审查代码请求
      • 检索结果
  • 安全知识

    • 信息安全四大顶会与分级
    • 数字签名与数字证书关系
    • 伪随机函数在密码学中的作用及其应用实例
    • 伪随机函数在与哈希函数的关系
      • 1. 伪随机函数的定义
      • 2. 哈希函数的定义
      • 3. 基于哈希函数的伪随机函数
      • 4. 哈希函数作为伪随机函数的一部分
      • 总结
  • 密码学
  • 安全知识
xiaoyang
2024-05-07
目录

伪随机函数在与哈希函数的关系

# 伪随机函数在与哈希函数的关系

伪随机函数(Pseudo-Random Function, PRF)与哈希函数在密码学中有密切的关系。实际上,伪随机函数可以基于哈希函数构建,而哈希函数也可以用作伪随机函数的一部分。下面我们将详细介绍伪随机函数与哈希函数之间的关系。

# 1. 伪随机函数的定义

伪随机函数是一种将输入数据映射到伪随机输出的函数。它接受一个密钥和一个输入,并生成一个输出,这个输出在给定密钥和输入的情况下是可重现的。换句话说,对于相同的密钥和输入,伪随机函数应该始终生成相同的输出。

# 2. 哈希函数的定义

哈希函数是一种将任意长度的输入数据映射到固定长度的输出的函数。它接受一个输入,并生成一个固定大小的哈希值,这个哈希值在给定输入的情况下是唯一的。哈希函数的输出长度通常固定,例如SHA-256哈希函数生成256位(32字节)的哈希值。

# 3. 基于哈希函数的伪随机函数

在密码学中,可以使用哈希函数构建伪随机函数。常用的方法是使用哈希函数对输入进行多次迭代,并根据需要截取输出的一部分作为伪随机函数的结果。这种构造方法通常称为HMAC(Hash-based Message Authentication Code)。

HMAC使用两个密钥,一个是输入密钥(通常称为密钥K),另一个是用于增强哈希函数的密钥(通常称为密钥H)。它的计算过程如下:

  1. 将输入数据与密钥H进行按位异或(XOR)运算,得到结果R1。
  2. 将R1作为输入,使用哈希函数计算哈希值。
  3. 将结果R1与K进行按位异或运算,得到结果R2。
  4. 将R2作为输入,再次使用哈希函数计算哈希值。
  5. 重复上述步骤,直到满足所需的输出长度。

HMAC构造的伪随机函数具有伪随机性和抗相关性的特性,这使得它在密码学中广泛应用于消息认证码、密钥派生函数和伪随机数生成器等场景。

# 4. 哈希函数作为伪随机函数的一部分

另一种情况是将哈希函数直接用作伪随机函数的一部分。这种情况下,哈希函数的输入不仅包括密钥,还包括其他参数,例如计数器或其他上下文信息。通过将这些参数与密钥一起输入哈希函数,可以生成伪随机的输出。

例如,在密码学中常用的HMAC-SHA1伪随机函数就是将SHA1哈希函数与HMAC构造相结合。它接受一个密钥和一个输入,并使用SHA1哈希函数生成伪随机的输出。

# 总结

伪随机函数和哈希函数在密码学中有密切的关系。伪随机函数可以基于哈希函数构建,常见的构造方法是使用HMAC。另外,哈希函数本身也可以用作伪随机函数的一部分,通过将密钥和其他参数输入哈希函数来生成伪随机的输出。这些构造和使用方法使得伪随机函数和哈希函数在保证数据安全性和随机性方面发挥着重要的作用。

编辑 (opens new window)
上次更新: 2025/04/01, 01:48:12

← 伪随机函数在密码学中的作用及其应用实例

最近更新
01
操作系统
03-18
02
Nginx
03-17
03
后端服务端主动推送消息的常见方式
03-11
更多文章>
Theme by Vdoing | Copyright © 2023-2025 xiaoyang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式