加密算法总结

一、对称密码

加密算法
安全性
速度
说明
DES
不安全
DES密文可以在短时间内被破译[1],因此除了用它来解密以前的密文以外,现在我们不应该再使用DES了。
三重DES
安全
尽管三重DES目前还被银行等机构使用,但其处理速度不高,除了特别重视向下兼容性的情况以外,很少被用于新用途。
AES(Rijndael)
安全
目前为止还没有出现针对Rijndael的有效攻击

    现在大家应该使用的算法是AES(Rijndael),因为它安全、快速,而且能够在各种平台上工作。此外,由于全世界的密码学家都在对AES进行不断的验证,因此即便万一发现它有什么缺陷,也会立刻告知全世界并修复这些缺陷。

[1] 在1997年的 DES Challenge I 中用了96天破译密码,1998年的 DES Challenge II-1 中用了41天,1998年的 DES Challenge II-2 中用了56小时,1999年的 DES Challenge III 中用了22小时15分

二、公钥密码


加密算法
说明
RSA
最为普及的公钥密码算法,利用了质因数分解的困难度,但面临安全威胁。
ElGamal方式
利用了mod N下求离散对数的困难度。缺点是经过加密的密文长度会变为明文的两倍。
Rabin方式
利用了mod N下求平方根的困难度,与质因数分解的困难度相当。
椭圆曲线密码(ECC)[2]
最近备受关注的一种公钥密码算法。所需密钥长度比RSA短。国密SM2算法[3]即为一种椭圆曲线算法。
[2] 椭圆曲线密码(Elliptic Curve Cryptography, ECC)是利用椭圆曲线来实现的密码技术的统称。尽管名字里带有“密码”两个字,但椭圆曲线密码实际上包括以下内容:
  • 基于椭圆曲线的公钥密码
  • 基于椭圆曲线的数字签名
  • 基于椭圆曲线的密钥交换
[3] 国密算法:中国自主的算法标准,包含SM1,SM2,SM3,SM4算法

三、对称密码与公钥密码的对比

  1.安全性:公钥密码和对称密码的机密性的高低是根据密钥长度而变化的。
  2.密钥长度:具备同等地域暴力破解强度的密钥长度的比较

对称密码AES
公钥密码RSA
公钥密码ECC(国密SM2)
128
3072
256-383
192
7680
384-511
256
15360
512+

  3.速度:在采用具备同等机密性的密钥长度的情况下,公钥密码的处理速度只有对称密码的几百分之一。因此,公钥密码不适合用来对很长的消息内容进行加密。根据目的的不同,还可以配合使用对称密码和公钥密码。

注:一般来说,我们不应该使用任何 自制的密码算法,而是使用AES等公认安全的密码算法。因为在其选定的过程中,经过了全世界密码学家所进行的高品质验证工作,而对于自制的密码算法则很难进行这样的验证。

更多加密算法分析将逐步更新...

参考书目:图解密码技术(第三版)


你可能感兴趣的:(信息安全)