加密算法分
对称加密(加密与解密密钥相同):加解密的过程是可逆的。算法主要有
- DES:以 64 位为 分组对数据 加密,它的 密钥长度 是 56 位,加密解密 用 同一算法。DES 加密算法是对 密钥 进行保密,而 公开算法。
- 3DES:是基于 DES 的 对称算法,对 一块数据 用 三个不同的密钥 进行 三次加密,强度更高。
- AES :为了取代 DES 的,AES 具有更好的 安全性、效率 和 灵活性。密钥长度的最少支持为 128 位、 192 位、256 位,分组长度 128 位
非对称加密(加密密钥与解密密钥不同):它需要公钥和私钥。
-
如果使用 公钥 对数据 进行加密,只有用对应的 私钥 才能 进行解密。
-
如果使用 私钥 对数据 进行加密,只有用对应的 公钥 才能 进行解密。(数字签名)
算法 主要有
- RSA:是目前最有影响力的公钥加密算法,能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击。算法描述:
- 足够大的素数p,q。(对两个大素数的乘积进行因式分解极其困难)
- 计算n=pq。
- 计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。
- 找一个与f(n)互质的数e,且1<e<f(n)。
- 计算d,使得de≡1 mod f(n)。这个公式也可以表达为d ≡e-1 mod f(n) 注:≡是同余的符号
- 公钥KU=(e,n),私钥KR=(d,n)。
- 加密时,先将明文变换成0至n-1的一个整数M(如26个英文字母可以对应01-26)。若明文较长,可先分割成适当的组,然后再进行交换。设密文为C,则加密过程为:C≡Me(mod n)
- 解密过程为:M≡Cd(mod n)。
- DSA
散列:不需要密钥,加解密的过程不可逆。算法主要有
- MD5:用的是哈希函数,对一段信息产生信息摘要,无论是多长的输入,MD5 都会输出长度为128bits的一个串
-
SHA1 :SHA1 比 MD5 的安全性更强。对于长度小于 2 ^ 64 位的消息,SHA1 会产生一个 160 位的消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被应用在检查 文件完整性 以及 数字签名 等场景。
对称算法 | 非对称算法 | |
密钥管理 | 难,不适合互联网,一般用于内部系统 | 易 |
安全性 | 中 | 高 |
加密速度 | 快好几个数量级,适合大数据量的加解密处理 | 比较慢,适合小数据量 加解密或数据签名 |