Fork me on GitHub

各种加密算法比较

算法分类

  • 对称加密:加密和解密用一个秘钥的方式称为共享秘钥加密,也叫对称秘钥加密。如DES、3DES、AES

  • 非对称加密:加密和解密使用的是一对非对称的秘钥,加密使用公钥进行加密处理,接收方使用秘钥进行解密。如RSA、DSA、ECC

  • 消息摘要:MD5

  • 数字签名:

对称加密算法(加解密密钥相同)

名称 密钥长度 运算速度 安全性 资源消耗
DES 56位 较快
3DES 112位或168位
AES 128、192、256位

非对称算法(加密密钥和解密密钥不同)

名称 成熟度 安全性(取决于密钥长度) 运算速度 资源消耗
RSA
DSA 只能用于数字签名
ECC 低(计算量小,存储空间占用小,带宽要求低)

对称与非对称算法比较

名称 密钥管理 安全性 速度
对称算法 比较难,不适合互联网,一般用于内部系统 快好几个数量级(软件加解密速度至少快100倍,每秒可以加解密数M比特数据),适合大数据量的加解密处理
非对称算法 密钥容易管理 慢,适合小数据量加解密或数据签名

总结

非对称加密处理比共享秘钥加密方式复杂,为了提高通信的效率。对于安全和效率要求比较高的情况下,可以采用非对称和对称加密算法一起使用的方式进行数据传输。推荐的一种做法是,A端和B端使用非对称加密方式中的公钥进行交换对称加密方式中的共享秘钥。确保交换秘钥的安全前提下,使用共享秘钥的加密方式进行通信。

Android中对于重要的信息可以使用AES加密请求参数,再使用RSA的秘钥对AES加密的请求参数进行加密;服务端使用RSA的公钥对请求的参数就行解密,再使用AES的共享秘钥就行解密请求参数从而获取重要参数。

散列算法比较

名称 安全性 速度
SHA-1
MD5

算法选择(从性能和安全性综合)

对称加密: AES(128位),

非对称加密: ECC(160位)或RSA(1024),

消息摘要: MD5

数字签名:DSA

轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥)
速度排名(个人估测,未验证):IDEA <DES <GASTI28<GOST<AES<RC4<TEA<Blowfish

简单的加密设计: 用密钥对原文做 异或,置换,代换,移位

名称 数据大小(MB) 时间(s) 平均速度MB/S 评价
DES 256 10.5 22.5
3DES 256 12 12
AES(256-bit) 256 5 51.2
Blowfish 256 3.7 64

单钥密码算法性能比较表

名称 实现方式 运算速度 安 全 性 改进措施 应用场合
DES 40-56bit密钥 一般 完全依赖密钥,易受穷举搜索法攻击 双重、三重DES,AES 适用于硬件实现
IDEA 128bit密钥8轮迭代 较慢 军事级,可抗差值分析和相关分析 加长字长为32bit、密钥为256bit,采用232 模加、232+1模乘 适用于ASIC设计
GOST 256bit密钥32轮迭代 较快 军事级 加大迭代轮数 S盒可随机秘密选择,便于软件实现
Blowfish 256-448bit密钥、16轮迭代 最快 军事级、可通过改变密钥长度调整安全性 适合固定密钥场合,不适合常换密钥和智能卡
RC4 密钥长度可变 快DESl0倍 对差分攻击和线性攻击具有免疫能力,高度非线性 密钥长度放宽到64bit 算法简单,易于编程实现
RC5 密钥长度和迭代轮数均可变 速度可根据三个参数的值进行选择 六轮以上时即可抗线性攻击、通过调整字长、密钥长度和迭代轮数可以在安全性和速度上取得折中 引入数据相倚转 适用于不同字长的微处理器
CASTl28 密钥长度可变、16轮迭代 较快 可抵抗线性和差分攻击 增加密钥长度、形成CAST256 适用于PC机和UNIX工作站

常见加密算法

  • DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
  • 3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
  • RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
  • IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
  • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法;
  • DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法;
  • AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法;
  • BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
  • MD5:严格来说不算加密算法,只能说是摘要算法;
  • PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。
  • SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用;
  • ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
  • TEA(Tiny Encryption Algorithm):简单高效的加密算法,加密解密速度快,实现简单。但安全性不如DES,QQ一直用tea加密
posted @ 2021-06-15 13:49  KevinAt2022  阅读(820)  评论(0)    收藏  举报