通信威胁
- Eve(被动): 捕获通信过程中的流量, 并进行分析.
- Mallory(主动): 篡改通信过程中的信息, 伪装成通信者进行通信.
被动攻击往往很难被发现; 主动攻击虽然很容易被发现, 但其带来了更大的威胁.
密码系统
对称密码系统
对称密钥系统采用分组加密或流式加密, 而最常用的就AES(Advanced Encryption Standard).
公钥密码系统
公钥能够将信息加密, 被动攻击者无法获取有用的信息; 私钥能够给信息签名, 接受者能够确认对方的身份.
在RSA算法下, 任何人都能解开签名的信息, 所用签名信息应该用接收者的公钥在加密一遍.
混合密码系统
公钥密码系统传输信息的性能很低, 一般只用于创建临时会话的对称密钥.
公钥与主体的可靠关联
通信之前需要获取对方的公钥, 并且要确保公钥未被篡改. 如何保证公钥真实可靠呢?
可信证书: 主体 + 公钥 + 第三方签名.
So, 问题就变为: 可靠的获取第三方的公钥!
Oh, 这会是个无尽的信任链, 所以操作系统会预先安装一些权威机构的证书.
当证书不在可信时, 证书颁发机构会对其进行撤销.
客户端可以通过Certificate Revocation List / Online Certificate Status Protocol获取证书的状态.
RSA算法
定义$\Phi(n)$: [1, n]
中满足下列条件的数的个数.
- 该数的质数分解式与n的质数分解式没有相同的质数因子.
根据数论知识可推出如下公式:
$$ m^{k*\Phi(n)+1} \equiv m \mod n $$
如果$n=prime_1 * prime_2$, 那么只有完成质数分解才能够计算$\Phi(n)=(prime_1 - 1) * (prime_2 - 1)$.
那么$key_1 * key_2 = k * \Phi(n) + 1$, 并且这两个key逻辑上是对等的, 任意一个都可以留作私钥.