公钥密码系统组件详解
在密码学的发展历程中,公钥密码系统的出现是一次重大的变革。本文将深入探讨公钥密码系统的相关组件,包括公钥分发、单向函数等内容。
1. 私钥密码学的问题与公钥密码系统的引入
私钥密码学中,发送方使用加密函数 $e$ 和秘密密钥 $k$ 对消息 $m$ 进行加密,接收方使用相同密钥进行解密。然而,私钥密码学存在两个主要问题:
- 密钥分发问题 :每个实体都需要拥有密钥,因此需要一个安全的密钥分发通道。即时通信需要建立密钥交换机制。
- 认证和不可否认性问题 :使用公共密钥时,两个实体都可能是知识的来源,无法保证唯一实体的可证明知识。此外,$n$ 个实体在进行安全交换之前需要 $\frac{n(n - 1)}{2}$ 个不同的密钥。
为了解决这些问题,有两种可能的方法:一是在所谓的公钥分发系统上交换秘密密钥,二是使用公钥密码系统。公钥密码系统的特点是发送方和接收方使用不同的密钥。接收方准备一对密钥,即公钥和相应的私钥。公钥可以公开读取,供发送方用于加密;私钥由接收方持有,用于解密过程。第三方即使知道所使用的密码系统并拥有公钥,也无法估计出私钥。
2. 公钥分发
在 Diffie 和 Hellman 发表具有革命性的论文三年前,Hellman 的学生 Merkle 就已经开始关注密钥分发通道的安全性。
2.1 Merkle 的谜题
使用私钥密码时,通常需要在两个实体之间进行秘密密钥的交换。如果通信被拦截,保密性就会丧失。Merkle 的想法是放弃对保密性的要求,假设通信会被完全拦截。