前言
Tor在建立虚电路以后,需要与路径上的节点商量**用于后续分组(packet)内容的多层加密。
使用对称加密算法时,**交换是个大难题,因此Tor采用的是Deffie-Hellman **交换算法。
先对Deffie-Hellman **交换算法做了简单介绍以及应用场景的介绍,然后介绍了该算法的原理,举了一个例子进行说明。
1. 介绍
Deffie-Hellman **交换算法是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个**。这个**可以在后续的通讯中作为对称**来加密通讯内容。
– wikipedia
Deffie-Hellman **交换算法是一种**交换算法。也就是说两个节点可以通过该算法交换**,但是后续的消息加密要用其他的算法来进行。
2. 原理与示例
Deffie-Hellman **交换算法基于一个数学难题:离散对数问题。简单的说:
, 已知 ,求的话容易,直接代入计算即可。但如果要从反向推导出的话则很难。Deffie-Hellman **交换算法中,**就是这里的。
下面用一个例子来说明这个算法的原理和过程。
假设现在Alice和Bob在通信前需要交换**,用于后续数据包的加密。
- 选取大素数,并公开
Alice: 选取大素数,公开
Bob: 选取大素数,公开
- 选取大随机数,计算key
Alice:
- 选择大随机数, ,保密
- 计算: ,公开
Bob:
- 选择大随机数 , ,保密
- 计算:,公开
- 计算**
Alice的**:
Bob的**:
4. 安全性分析
公开的:
保密的:
-
优点:
- 难以**:Deffie-Hellman **交换算法的安全性依赖于计算离散对数的困难程度。对于攻击者来说,知道 的情况下,难以**出 ;同理 的**也很困难,所以攻击者难以求出 或。因此,该算法可以保证通信双方在透明的信道中安全地交换**。
-
缺点:
- 没有身份验证信息
- 拒绝服务
- 重放攻击
- 中间人攻击
5. 总结
尽管有一些缺点,但是由于该算法能在透明的信道中安全地交换**,因此Tor网络中需要交换**的时候采用的是该算法。