-
PGP 的加密过程如下:
- 1、Alice 用对称密钥 Ks 加密报文 m 得到 Ks(m)
- 2、Alice 用 Bob 的公钥 Kb+ 加密 Ks 得到 Kb+(Ks)
- 3、Alice 组合 Ks(m) 和 Kb+(Ks) 得到 P1
- 4、Alice 计算 P1 的 MAC,然后使用私钥 Ka- 加密该 MAC,将 P1 和 Ka-(MAC) 组合成 P2
-
Bob 收到该包后解密过程如下:
- 1、Bob 使用 Alice 的公钥 Ka+ 解密得到 MAC
- 2、Bob 计算 P1 的 MAC,并与解密得到的进行比较,如果不同则丢弃,相同继续。
- 3、Bob 使用自己的私钥 Kb- 解密得到 Ks
- 4、Bob 使用 Ks 解密 Ks(m) 得到原始报文 m
P18 假定 Alice 要向 Bob 发送电子邮件。Bob 具有一个公共-私有密钥对 (Kb+, Kb-),并且 Alice 具有 Bob 的证书。但 Alice 不具有公钥私钥对。Alice 和 Bob (以及全世界) 共享相同的散列函数 H(*)。
-
a.
Bob 选择一个鉴别密钥,用私钥加密然后发给 Alice,Alice 使用 Bob 的公钥解密后得到鉴别密钥,Alice 给 Bob 发送报文时,使用该密钥加密报文,Bob 没收到解密成功说明是 Alice 发送的报文- 上面的方法会收到中间人攻击而失效。如果 Alice 不具有公钥私钥对,则无法验证报文的确由 Alice 创建。
-
b.
- Alice 用 Bob 的公钥加密报文即可提供机密性。