非对称加密算法介绍
# 非对称加密算法介绍
使用对称加密算法,难点在于如何交换密钥;那么有没这样一种可能,加密和解密使用不同的密钥?
# 非对称加密算法基本加密过程
其实,加密和解密并不一定要用同样的密钥,只需要保证能正常加解密即可!因此,我们可以用两个密钥,加密模式是这样的:
- 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得。但私钥则是保密的。
- 甲方获取乙方的公钥,然后用它对信息进行加密。
- 乙方得到加密后的信息,用私钥解密。
- 公钥加密的信息只有私钥解得开,用公钥是不能解密的,所以即使密文泄漏了,攻击者也无法解密
- 只要私钥不泄漏,通信就是安全的。
常见的非对称加密算法是 RSA,目前应用非常广泛,可以说是目前安全领域的一个重要算法。此外 DH 算法则用于交换密钥,这里先简单介绍下他们的历史,后面的文章则讲解数学的一些知识,再说说加解密的原理。
# DH 算法的诞生
1976 年,两位美国计算机学家 Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成密钥的传递。这被称为"Diffie-Hellman 密钥交换算法",简称 DH 算法。
这个算法启发了其他科学家,人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种新的加密模式被称为"非对称加密算法"。
DH 算法解决了密钥在双方不直接传递密钥的情况下完成密钥交换,这个神奇的交换原理完全由数学理论支持。更确切地说,DH 算法是一个密钥协商算法,双方最终协商出一个共同的密钥,而这个密钥不会通过网络传输。
# RSA 算法
1977 年,三位数学家 Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做 RSA 算法。从那时直到现在,RSA 算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有 RSA 算法。
这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长 RSA 密钥是 768 个二进制位。也就是说,长度超过 768 位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024 位的 RSA 密钥基本安全,2048 位的密钥极其安全。
小故事:其实,早在 1973 年和 RSA 等效的算法已经被一个英国情报部门工作的数学家 Clifford Cocks 弄出来了,只是由于工作性质,直到 1997 年他的这部分工作才解密,4 年后 RSA 三人才独立重新发明这个算法,还是 Whitfield Diffie 和 Martin Hellman 两个人的前期工作下(而这两人的“前期”工作也后于 Clifford Cocks)。
# 总结
希望读者们牢记非对称加密算法基本加密过程,后续我们会讲解其底层的数学原理。关于原理的讲解可能有点多,如果读者看不懂也没关系,但非对称加密算法基本加密过程,是一定要知道的,可以不知道具体的底层数学原理,但至少要会用这个算法。
- 01
- 中国网络防火长城简史 转载10-12
- 03
- 公告:博客近期 RSS 相关问题10-02