密码学基础术语

DH 的变种——基于“椭圆曲线”的 ECDH

  DH 算法有一个变种,称之为 ECDH(全称是“Elliptic Curve Diffie-Hellman”)。维基条目在“”   它与 DH 类似,差别在于: DH 依赖的是——求解“离散对数问题”的困难。 ECDH 依赖的是——求解“椭圆曲线离散对数问题”的困难。

RSADSAECDSA

◇概述

  PSK 是洋文“Pre-Shared Key”的缩写。顾名思义,就是【预先】让通讯双方共享一些密钥(通常是【对称加密】的密钥)。所谓的【预先】,就是说,这些密钥在 TLS 连接尚未建立之前,就已经部署在通讯双方的系统内了。   这种算法用的不多,它的好处是: 1. 不需要依赖公钥体系,不需要部属 CA 证书。 2. 不需要涉及非对称加密,TLS 协议握手(初始化)时的性能好于前述的 RSA 和 DH。   更多介绍可以参见维基百科,链接在“”。

◇密钥协商的步骤

(由于 PSK 用的不多,下面只简单介绍一下步骤,让大伙儿明白其原理)

◇如何防范偷窥(嗅探)

  使用这种算法,在协商密钥的过程中交换的是密钥的标识(ID)而【不是】密钥本身。   就算攻击者监视了全过程,也无法知晓密钥啥。

◇如何防范篡改(假冒身份)

  PSK 可以单独使用,也可以搭配签名算法一起使用。   对于单独使用   如果攻击者篡改了协商过程中传送的密钥 ID,要么服务端发现 ID 无效(协商失败),要么服务端得到的 ID 与客户端不一致,在后续的通讯步骤中也会发现,并导致通讯终止。   (下一篇讲具体协议的时候会提到:协议初始化/握手阶段的末尾,双方都会向对方发送一段“验证性的密文”,这段密文用各自的会话密钥进行【对称】加密,如果双方的会话密钥不一致,这一步就会失败,进而导致握手失败,连接终止)

◇补充说明

  PSK 与 RSA 具有某种相似性——既可以用来搞“密钥协商”,也可以用来搞“身份认证”。   所以,PSK 可以跟 DH(及其变种)进行组合。例如:DHE-PSK、ECDHE-PSK   关于 PSK 的更多细节,可以参见