在密码学领域,有两种基本的加密方式:对称加密及非对称加密。对称加密,顾名思义,就是解密的**和加密的**相同(单钥密码学);非对称加密,顾名思义,解***与加***不同。
对称加密
对称密码学的典型算法有:AES、Twofish, Serpent, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer+/++ (Bluetooth), 以及 IDEA等。
对称密码学的优点是效率高,开销小,适合加密大量的数据。但对称密码学要求通信双方事先协商好**,这就要求在协商过程中必须做好保密,**只能让使用的人知道,不能泄露。另外,如果通信方数量庞大,比如A需要和数百个对象通信,为了安全起见,就需要在A上维护数百个不同的共享**,这就为**更新和管理带来诸多不便。
对称密码学容易遭受的攻击有:已知明文攻击,选择明文攻击、差分密码分析和线性密码分析等攻击。
对称加密优点:
1. 速度快
2. 开销小
3. 适合于加密大量数据
缺点:
1. **管理问题
2. 不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份
3. **传输不安全
非对称加密
鉴于对称加密的缺点,非对称加密横空出世,是一个密码学中的巨大进步。
对于非对称加密,对外公开的**是公钥(public key),只有所有者拥有的是私钥(private key),因此,非对称加密也称为公钥密码学。
1. 用公钥加密的信息只能用相应的私钥解密,反之用私钥加密的信息也只能用相应的公钥解密,即用其中任一个**加密的信息只能用另一个**进行解密。
2. 要想由一个**推出另一个**,在计算上是不可能的。
3. 用公钥加密私钥解密的安全性更高;用私钥加密公钥解密安全性很低
4. 公钥加密一般用于内容安全传输,私钥加密一般用于签名
非对称密码学,也称为双钥密码学。目前常用的公钥密码学算法有以下几种:
l RSA(Rivest, Shamir and Adleman),这个由三位发明者名字命名的算法是当前最著名、应用最广泛的公钥密码学算法。RSA可实现数据加解密、真实性验证和完整性验证。
l DSA(Digital Signature Algorithm),中文名称叫数字签名算法,可实现签名功能。
l DH(Diffie-Hellman),也是由发明者名字命名的一种**交换算法,通信双方通过一系列的数据交换,最终计算出**,以便用于以后的报文加密。
公私钥产生流程如下图所示:
非对称密码学中RSA及DH用的很广。
非对称加解密流程如下图所示:
非对称加密的常用使用方法:
(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称**。
(2) Alice的浏览器向银行的网站请求公钥。
(3) 银行将公钥发送给Alice。
(4) Alice的浏览器使用银行的公钥将自己的对称**加密。
(5) Alice的浏览器将加密后的对称**发送给银行。
(6) 银行使用私钥解密得到Alice浏览器的对称**。
(7) Alice与银行可以使用对称**来对沟通的内容进行加密与解密了。
非对称加密的优点
1. 安全性更高
非对称加密的缺点:
1. 加解密效率低,速度慢
2. 只适合加密少量数据
非对称加密的整个流程如下:
对称加密机非对称加密各有实用场景,有些适合会结合实用。譬如,通过非对称加密传输对称加密的秘钥,随后使用对称加密的秘钥进行数据的加密,保证交互过程的安全。
参考资料
https://www.cnblogs.com/ehcoo/p/6305355.html
https://forum.huawei.com/enterprise/zh/thread-220599.html
https://en.wikipedia.org/wiki/Symmetric-key_algorithm
https://en.wikipedia.org/wiki/Advanced_Encryption_Standard