天天看点

加密-常见加密规则

加密

文章目录

  • 加密
  • ​​对称加密​​
  • ​​优缺点:​​
  • ​​DES数据加密标准​​
  • ​​AES加密​​
  • ​​非对称加密​​
  • ​​(RSA、DSA、ECC)​​
  • ​​优缺点​​
  • ​​常见的应用场景​​
  • ​​总结​​
  • ​​3、线性散列算法算法(MD5、SHA1、HMAC)​​
  • ​​SHA-1 与 MD5 的比较​​
  • ​​4、混合加密​​
  • ​​5、Base64​​

对称加密

优缺点:

优点: 加速密码快

**缺点:**密钥的传递和保存是一个问题,参与加密和解密的双方使用的密钥是一样的,这样密钥就很容易泄露

在实际的操作过程中,因为都是针对二进制的操作,采取补操作可以用异或操作来代替,另外,在其中的某些步骤还可以那数据和密钥进行位运算,具体不同加密算法实现不同

对称加密算法(AES DES 3DES)

对称加密算法是指加密和解密采用相同的密钥,是可逆的(即可解密)。

DES数据加密标准

数据加密标准(DES)算法在 1976 年被美国国家标准局定为使用标准,后来被广泛传播。目前已经被证明可以被暴力破解。所谓暴力破解,就是遍历所有可能的密钥解析数据的方法。举个例子,已知张三和李四传输的是中文,加密算法是 DES,那么拿出一小段数据进行暴力破解,尝试所有的密钥,如果能成功解析出中文词语(词语在词库中可以查到),那么说明破解成功。

DES 采用的 56 位密钥,每次计算加密 64 位的数据。

DES 采用的 56 位密钥,每次计算加密 64 位的数据。在实际的暴力破解过程中,比我上面描述的行为更加复杂。一个通用的暴力破解算法需要较大的算力,一些 DES 的破解算法需要 239-241 次操作。这个数量级的操作,目前还没有超出人类计算能力的极限,如果显卡好一点,或者机器多一些还是可以承受的。

因此后续很多组织开始利用 3 次 DES 操作来增加破解成本,具体的做法是用 3 个 56 位的密钥组合成一个 168 位的密钥,对数据进行 3 次 DES 操作,这样做大大增加了暴力破解的成本。但是目前针对 3DES 仍然有一些攻击策略,需要 290 次计算和 288 位内存,虽然有一定概率被攻破,但是成本非常高。

AES加密

AES加密算法是密码学中的高级加密标准,采用的是对称分组密码体制,密钥长度的最少支持为128,AES加密算法是美国联邦政府采用的区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界使用。

非对称加密

(RSA、DSA、ECC)

非对称加密算法是指加密和解密采用不同的密钥(公钥和私钥),因此非对称加密也叫公钥加密,是可逆的(即可解密)。公钥密码体制根据其所依据的难题一般分为三类:大素数分解问题类、​​离散对数​​问题类、椭圆曲线类

加密-常见加密规则

RSA加密算法是基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解极其困难,因此可以将乘积公开作为加密密钥。虽然RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击至今未被完全攻破。

优缺点

优点 : 加密和解密的密钥不一致,公钥是可以公开的,只需保证私钥不被泄露即可,这样就密钥的传递变的简单很多,从而降低了被破解的几率。

缺点 : 加密速度慢

RSA加密算法既可以用来做数据加密,也可以用来数字签名。

–数据加密过程:发送者用公钥加密,接收者用私钥解密(只有拥有私钥的接收者才能解读加密的内容)

–数字签名过程:甲方用私钥加密,乙方用公钥解密(乙方解密成功说明就是甲方加的密,甲方就不可以抵赖)

常见的应用场景

非对称加密算法目前广泛应用到各个领域,比如

  • HTTPS 协议的握手和交换密钥过程需要非对称加密算法;SSH 的通信需要非对称加密算法。
  • 另外,证书的生程,比如利用证书实现 git 账号的免密操作也是基于非对称加密算法。
  • 在线合同、数字货币的签名等都需要非对称加密算法。

总结

对称加密用同样的密钥,安全系数不够。非对称加密,用公钥 + 私钥的方式加强了安全系数。

那么是不是我们所有的加密的应用都应该用非对称加密呢?通常情况,非对称加密需要更多的运算资源。因此很多协议使用非对称加密解决最核心的安全问题,再用对称加密解决其他问题。

以 HTTPS 协议为例,客户端和服务器之间会先用非对称加密交换临时对称加密密钥,然后之后的通信会以对称加密执行,直到连接结束。也就是非对称加密仅仅存在于 HTTPS 连接建立后,用于交换密钥(对称加密密钥)的少数几次传输中。这样用非对称加密解决最核心的安全问题:交换对称加密密钥;然后利用对称加密进行数据的传输。

3、线性散列算法算法(MD5、SHA1、HMAC)

MD5全称是Message-Digest Algorithm 5(信息摘要算法5),单向的算法不可逆(被MD5加密的数据不能被解密)。MD5加密后的数据长度要比加密数据小的多,且长度固定,且加密后的串是唯一的。

适用场景:常用在不可还原的密码存储、信息完整性校验等。

信息完整性校验:典型的应用是对一段信息产生信息摘要,以防止被篡改。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

SHA-1 与 MD5 的比较

SHA-1摘要比MD5摘要长32 位,所以SHA-1对强行攻击有更大的强度,比MD5更安全。使用强行技术,产生任何一个​​报文​​使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。

在相同的硬件上,SHA-1 的运行速度比 MD5 慢。

4、混合加密

由于以上加密算法都有各自的缺点(RSA加密速度慢、AES密钥存储问题、MD5加密不可逆),因此实际应用时常将几种加密算法混合使用。

例如:RSA+AES:

采用RSA加密AES的密钥,采用AES对数据进行加密,这样集成了两种加密算法的优点,既保证了数据加密的速度,又实现了安全方便的密钥管理。

那么,采用多少位的密钥合适呢?一般来讲密钥长度越长,安全性越高,但是加密速度越慢。所以密钥长度也要合理的选择,一般RSA建议采用1024位的数字,AES建议采用128位即可。

5、Base64

继续阅读