1. 协议背景
对称密码体制:
Bob利用对称密钥K对信息进行加密并将加密结果发送给Alice,Alice收到信息之后,用同样的密钥进行解密。
问题1:Alice是如何知道对称密钥K的?------即,Bob首先需要将对称密钥K发送给Alice,Alice才能对信息进行解密。即:通信双方需要达成共识,也就是用什么样的秘钥进行加密。
由此推出:传递信息的前提是需要关于密钥达成共识,也就是传递密钥。
问题2:Diffile-Hellman未出现之前,即以往传递密钥采用什么样的方式?
(1)主要通过物理手段进行秘钥的传递,例如书信?等
问题(3)采用物理手段传递密钥有什么风险?
举例:假设采用书信的方式去传递密钥,那么会面临,首先是 书信可能会丢,其次,快递员如果打开书信就可以直接获取到密钥。显然不安全,极其容易被人截获。那么一旦秘钥被掌握,信息也就没有隐私可言。
问题(4)在不可信的环境下,如何实现密钥的传递?
答:Diffie-Hellman 秘钥交换。
1976年-Diffie-Hellman 在《New Direction in Cryptography》密码学新方向 论文中,提出秘钥交换协议,首次提出所谓的公钥思想。也为后面公钥密码体制的提出奠定了基础。(注:对称密钥面临最大的问题其实就是密钥分发。)
2. 秘钥交换协议详解
****************************************************************************************
2.1 数学基础(参考至抽象代数(近视代数))
2.1.1 简要了解(抽象代数的历史)
我们都知道一次,二次,三次,四次代数方程存在根式解
那么五次及以上是否存在根式解?(1)
即:抽象代数最初就是为了研究这个问题产生的一门学科。
如何一步一步对上述问题展开 研究的?
&阶段1:
(1)欧拉 1707-1783
(2) 拉格朗日 1736-1813
(3)数学王子-高斯 1777-1855
(1)(2)(3)这个阶段,做出的贡献就是证明了五次及以上代数方程不存在根式解。
&阶段2
(4)阿贝尔 Abel 1802-1829 除了证明五次及以上代数方程不存在根式解,之外,还找出一类特殊方程可用根式解。 例如: 很显然,是存在根式解的。
在数学中,一个问题有没有被彻底解决,最终看的 是否完成了充要条件。
********(5)伽罗瓦 一些理论彻底解决了这个问题,即 充要条件。
********************************************************************************************************
2.1.2 模运算 (求余运算)
理解同余的概念 模n同余
2.1.3 本原根
如果使得a^m≡1 mod n成立的最小正幂m满足m=φ(n),则称a是n的本原根。 其中φ(n)为欧拉函数。
2.1.4 欧拉定理:
若正整数n和整数a互质,那么就有,
其中欧拉函数φ(n)是小于n的正整数中和n互质的数的个数。
例如 n=17 那么欧拉函数 φ(n)等于多少?
附加:
密码学三大数学困难问题
1:大素数分解问题
(1) 给定两个素数p,q,计算乘积p·q=n很容易;
(2) 给定大整数n,求n的素因素p,q使得n=p·q非常困难.
应用 RSA算法
2:离散对数难题
已知有限循环群G={g∧k∣k=0,1,2,…}及其生成元g和阶n=∣G∣.
(1)给定整数a,计算元素g∧a=h很容易;
(2) 给定元素h,计算整数x,0≤x≤n,使得g∧x=h非常困难
3:椭圆曲线上的离散对数问题
已知有限域F_p上的椭圆曲线点群
E(F_p)={(x,y)∈F_p×F_p∣y²=x³+ax+b,a,b∈F_p}∪{O},
点P=(x,y)的阶为一个大素数.
(1)给定整数a,计算整数x,使得xP=(x_a,y_a)=Q很容易;
(2) 给定点Q,计算整数x,使得xP=Q非常困难.
注:在椭圆曲线上定义群的加法
2.2 协议(算法)流程
1:Alice随机选择两个大素数p,n再次随机选择一个数x
2: Alice通过运算生成一个数p
Alice将a,n p 发送给Bob
3: Bob随机选择一个数y,计算q
Bob将 计算计算出的q 发送给Alice
密钥
证明如下:(交换律)
分析:
(1)
上述公式中,已知a,p求解x是困难的。(著名的离散对数问题)
缺点:DH秘钥交换算法容易遭到中间人攻击
如何实现中间人攻击?
既然存在中间人攻击,后人肯定会对其进行改造。--------》Oakley算法