就对称加密来说,通信双方必须使用相同的密钥并且该密钥要对其他人保密,为了减少攻击者攻陷密钥所危害的数据量,要频繁更换密钥。因此,任何密码系统的强度取决于密钥分发技术。对A和B来说,密钥分发的方式有:
A选择一个密钥后以物理的方式传递给B第三方选择密钥后物理地传递给A和B如果A和B先前或者最近使用过一个密钥,则一方可以将新密钥用旧密钥加密后发送给另一方如果A和B到第三方C有加密连接,则C可以在加密连接上传送密钥给A和B在方式1和2中,人工交付密钥,在分布式系统中是不实用的。在分布式系统中,任何给定的主机或者终端都可能需要同时与很多其他主机以及终端交换数据,因此每个设备都需要动态提供大量的密钥。如果是端到端加密的网络,或者IP层执行,那么网络中每对想要同学的主机都要一个密钥,若有N台主机,那么密钥的数量就是N(N-1)/2个。
方式3中,可以用于链接加密和端到端加密。但是如果攻击者成功获得下一个密钥,随后的密钥都会泄露,潜在的数百万密钥都必须进行重新分发
方案4中,负责为用户分发密钥的密钥分发中心是必需的,且为了密钥的分发,每个用户都需要和密钥分发中心共享唯一的密钥。
一种典型的方案如图所示,该方案假设每个用户和密钥分发中心共享唯一的密钥。
A向KDC发送请求一个会话密钥来保护到B的逻辑连接安全,其中刚有一个唯一标志N,称为临时交互号(nonce),这个可以是时间戳、计数器或者随机数等。nonce每次交互值都不一样KDC返回一次性会话密钥K就上面这种分发方式,以一种对终端用户透明的方式,对网络或者传输层提供点到点的加密,可以如图所示
对于密钥的分发中心必须是可信的,能够防破坏。但如果密钥是完全分布式的,则没有这个要求。分布式密钥分发如图所示
分布式密钥分发方式,绕过了密钥分发中心。
不同用途定义不同的会话密钥:
数据加密密钥PIN加密密钥,用于电子资金转账和销售点应用的个人识别码文件加密密钥基于密钥关联的特征,在限制密钥使用方式的系统中添加控制。会话密钥在KDC中产生,通过密码运算使得控制向量和密钥紧密关联在一起,如图所示
每个会话密钥有一个关联控制向量,该向量包含多个域,详细说明了会话密钥的用法和限制。控制向量的长度各不相同。
公钥加密系统的效率相对较低,几乎不会用于大数据块的直接加密,而是经常用于小块数据的加密。公钥密码系统最重要的应用之一是用于密钥的加密分发。
一个简单的方案如图所示,只需要几步就可以完成
A和B使用会话密钥通信,通信完成后丢弃。在通信开始之前和结束之后都不保存密钥,即使密钥被攻破的风险也是很小的。
当有攻击者截获消息然后再转发消息或者替换为其他消息,这个协议是不安全的,这就是中间人攻击,如图所示。
如下图所示协议就可以防止主动和被动攻击,提供保密性和认证。