9.Basic key exchange
1.Trusted 3rd parties
2.Merkle Puzzles
3.The Diffie-Hellman protocol
4.Public-key encryption
1.Trusted 3rd parties
每个用户都要存储n个密钥
所以我们提出来在线可信任第三方(TTP)
问题是Alice和Bob如何生成这一共享密钥Kab
一个玩具协议,对窃听是安全的,对篡改或主动攻击不安全
攻击者监听会话也不知道共享密钥Kab
TTP发送给Alice用Alice密钥加密的信息,包括”这个共享密钥是AB之间的“和Kab。
TTP发给Alice的信息的另一部分叫做票据ticket,这个票据是用Bob的密钥加密的信息
Alice把票据给Bob,Bob用自己的密钥解密票据。
现在双方都得到了Kab
为什么这个协议是安全的,即使我们只考虑窃听攻击者eavesdropper。
因为窃听者无法解密这些数据。无法获得Kab
类似这样的机制是kerberos系统的基础。
2.Merkle Puzzles
Merkle Puzzles 不借助可信任第三方的密钥交换协议
只使用分组密码或哈希函数也可以,但是效率低。
攻击者需要做2的64次才能破解,依然不安全
协议不实用,参与者必须花线性时间,攻击者必须花平方时间
存在平方鸿沟quadratic gap
3.The Diffie-Hellman protocol
不能仅靠AES或SHA-256实现指数鸿沟,
我们必须使用拥有比对称原型更多结构的难题问题,用一点代数
选一个固定大质数p,600个十进制位或两千个二进制位
选一个固定整数g,在1到p的范围内
p和g是Diffie-hellman协议的参数,一经选择就不再改变
这个算法,普通数域筛法GNFS,a general number field sieve 可以计算Diffie-Hellman函数
这个算法运行时间的指数级的,有时也叫作亚指数算法sub-exponential,因为这里的指数项正比于n的立方根
他也不是真正的指数级时间的问题
筛法降低了问题复杂性
使用256位的密钥计算是效率很低的,使用质数模算术,arithmetic module of primes
DH函数难以计算,但是不是那么难
4.Public-key encryption
另一种密钥交换协议,用于公约加密的概念
一个基于公钥加的不同的方法
第一篇证明了如果我们只依赖于对称密码和哈希函数,那么merkle谜题对于密钥交换而言是最优的选择
事实上我们不能获得比平方鸿沟更好的结果
第二篇总结了我们讨论过的一些密钥交换机制,使用公钥密码学的密钥交换和使用DH的密钥交换