密码协议的分类有很多种方式,这里我采取的是基于协议实现的目的来分类。可以将密码协议分成三类:认证协议、密钥建立协议、认证密钥建立协议。这些协议在密码学和网络安全中扮演着至关重要的角色,下面我来对密钥建立协议详细介绍
密钥建立协议
密钥建立协议在两个通信实体之间建立共享密钥。一般这个共享密钥是一个会话密钥。那么什么是会话密钥呢?
(1)什么是会话密钥?
在保密通信中,通常对每次通信会话采用不同的密钥进行加密,所以叫会话密钥。会话密钥只在通信的持续范围内有效。通信结束后,会话密钥会被清除。
① 会话密钥的定义
会话密钥是在两个或多个通信实体之间为一次特定的通信会话生成的一个临时密钥。这种密钥通常用于对数据传输进行加密和解密。这种密钥的设计目的是为了提供更高的安全性,并确保即使攻击者获取了一个会话密钥,他们也无法解密其他会话中的通信。
② 会话密钥的特点
- 临时性:会话密钥只在特定的会话期间使用,一旦会话结束,该密钥就会被销毁,从而减少了密钥被滥用的风险。
- 动态生成:每个新的会话都可能使用一个新的会话密钥,这使得攻击者更难以通过破解单个密钥来访问多个会话的内容。
- 加密强度:会话密钥通常具有较高的加密强度,以保护会话期间的数据不被窃听或篡改。
(2)密钥建立协议的两种主要类型及其特征
① 密钥协商协议
定义:密钥协商协议是由两个或多个通信实体共同参与,通过交换信息来建立一个共享的会话密钥。
特征:参与者需要互相交换信息以计算出一个共享的会话密钥。协商出的密钥通常用于一次性的通信会话,以提高安全性。可以扩展到多方环境中,建立一个多方共享的密钥,如会议密钥。可以采用单钥(对称加密)或双钥(非对称加密)体制来实现。有时需要借助可信的第三方来协助密钥的建立过程。
② 密钥传输协议
定义:密钥传输协议涉及一个实体将密钥安全地传输给另一个实体。
特征:一个实体生成密钥,并将其加密后传输给另一个实体。通常需要事先存在预共享密钥或公钥基础设施。与密钥协商不同的是,密钥传输通常是单向的。可以采用单钥(对称加密)或双钥(非对称加密)体制来实现。有时需要可信的第三方来验证身份或协助密钥的传输。
③ 两种类型的对比
密钥协商协议和密钥传输协议的主要区别在于密钥的产生方式:
- 密钥协商:双方或多方通过交互式的信息交换共同计算出一个共享的会话密钥。
- 密钥传输:一方生成密钥并通过安全的方式传输给另一方。
(3)不同的密码学体制都可以实现密钥建立协议
① 采用单钥体制的密钥建立协议
在单钥体制(也称为对称加密)下,加密和解密使用相同的密钥。在这种情况下,密钥建立协议通常涉及密钥的生成、分发以及可能的更新。
② 采用双钥体制的密钥建立协议
在双钥体制(也称为非对称加密)下,加密和解密使用不同的密钥对(公钥和私钥)。这种体制常用于密钥传输或密钥协商。
这种密钥建立协议无法确保从公钥池中获取的Bob公钥就一定是Bob的, 因此存在公钥合法性问题。对应公钥合法性问题可以采用PKI/CA数字证书技术解决,该技术的原理简单来说就是用一个可信第三方CA来将Bob公钥与Bob的身份绑定在一起,确保对外声称的Bob公钥就一定是Bob的公钥。
③ 采用数字签名的密钥交换
数字签名用于验证密钥传输的完整性和来源的真实性。这通常与双钥体制结合使用。
④ 单双钥混合实现密钥和消息传输
结合使用单钥和双钥体制来增强安全性。通常使用非对称加密来安全地传输对称密钥,然后使用对称密钥来加密实际的消息数据。
从上面的原理步骤中可以看出,会话密钥K仅由Alice一个人生成, 这对Alice提出了较高的要求,因为会话密钥的安全性直接影响到整个通信过程的安全性。对此可以做出改进。此外如果Alice想和多个人同时共享会话密钥,可以用如下的方式(密钥和消息广播):
⑤ Diffie-Hellman密钥交换协议
既然由单独某一个人来生成会话密钥K会存在一定安全风险,那么DH密钥交换协议就很好的解决了这个问题。DH协议基于离散对数问题的困难性,即给定一个大素数p和其本原根g,以及g的某个幂次模p的结果y,求解该幂次在计算上是不可行的。这种数学难题保证了协议的安全性。
通信双方无需事先共享任何秘密信息,即可在公开信道上协商出一个共享密钥。协议最终生成的共享密钥是对称的,即双方使用相同的密钥进行加密和解密。
【注】DH密钥交换协议还是没办法抵抗中间人攻击!