【安全系列之加密算法】常用安全的加密算法

最近在做安全相关的工作,那么我们在什么情况下应该使用什么样的加密算法? 什么样的加密算法是安全的呢? 安全的基础上,性能如何呢? 这里记录一下

 1、首先,为什么要加密?

数据存储和传输存在的风险:

1. 防止不速之客查看机密的数据文件;

2. 防止机密数据被泄露或篡改;

3. 防止特权用户(如系统管理员)查看私人数据文件;

4. 使入侵者不能轻易地查找一个系统的文件。 

【安全系列之加密算法】常用安全的加密算法_第1张图片

 2、常见加密方式

在这里插入图片描述

 2.1对称加密

 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。特点:

  1. 加密速度快, 可以加密大文件
  2. 密文可逆, 一旦密钥文件泄漏, 就会导致数据暴露
  3. 加密后编码表找不到对应字符, 出现乱码
  4. 一般结合Base64使用

常见加密算法

DES : Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。
AES : Advanced Encryption Standard, 高级加密标准 .在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

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

名称

密钥长度

运算速度

安全性

资源消耗

DES

56位

较快

3DES

112位或168位

AES

128、192、256位

名称

数据大小(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

2.2 非对称加密

非对称加密算法又称现代加密算法。
非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey)
公开密钥和私有密钥是一对
如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。
如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

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

名称

成熟度

安全性(取决于密钥长度)

运算速度

资源消耗

RSA

DSA

只能用于数字签名

ECC

低(计算量小,存储空间占用小,带宽要求低)

2.3 对称与非对称算法比较

名称

密钥管理

安全性

速度

对称算法

比较难,不适合互联网,一般用于内部系统

快好几个数量级(软件加解密速度至少快100倍,每秒可以加解密数M比特数据),适合大数据量的加解密处理

非对称算法

密钥容易管理

慢,适合小数据量加解密或数据签名

3、消息摘要

无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出
只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出
消息摘要是单向、不可逆的

MD5:MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。

SHA1:是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的Hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。

HMAC:是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。也就是说HMAC是需要一个密钥的。所以,HMAC_SHA1也是需要一个密钥的,而SHA1不需要。

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

  • 对称加密: AES(128位),五种工作模式中,电码本模式(Electronic Codebook Book (ECB))不安全尽量不要使用。
  • 非对称加密: ECC(160位)或RSA(1024),
  • 消息摘要: MD5
  • 数字签名:DSA
  • 轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥)

参考:

重要(写的很详细,平时可以用):网络安全之密码学 信息安全/加密算法_Manaphy Chen的博客-CSDN博客_信息安全加密算法

常见的几种加密算法比较_传输数据

各种加密算法比较 - 落叶的瞬间; - 博客园

你可能感兴趣的:(应用安全,记录,安全)