信息安全的基础:对称加密、非对称加密、摘要算法

加密分为两大类:对称加密、非对称加密,两类加密算法各有优点,在不同的场景使用不同的算法。

对称加密

加密方将原始数据和加密密钥一起经过特殊加密算法处理后,生成密文结果,解密方使用相同的秘钥及相同加密算法的逆算法对密文结果进行解密,公式如下:

加密方:密文结果 = 加密算法(原始数据 + 加密密钥)
解密方:原始数据 = 对应的逆算法(密文结果 + 解密秘钥)
加密密钥 == 解密秘钥

该算法具有以下特点:

  • 加密方和解密方使用相同的秘钥
  • 加解密的速度比非对称加密算法快,适合数据内容比较大的加密场景
  • 数据传输的过程不安全,且容易被破解
  • 密钥管理比较麻烦

应用场景:

  • 防止明文传输数据被窃取
  • 适合数据内容比较大的加密场景

非对称加密

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。

该算法具有以下特点:

  • 保密性比较好,消除了用户交换秘钥的需要
  • 算法强度复杂,安全性比较强
  • 加解密速度没有对称加密算法快
  • 用私钥加密,用其公钥解密,实现数字签名(注意:数字签名只是非对称加密的一种)。

应用场景:
1、公钥用于加密,私钥用于解密
请求的双方,接收方公布自己的公钥,发送方通过指定的加密算法和公钥对原始数据进行加密,接收方通过指定的逆加密算法和自己的私钥对密文数据进行解密。
发送方:密文结果 = 加密算法(原始数据 + 接收方的公钥)
接收方:原始数据 = 对应的逆算法(密文结果 + 接收方的私钥)
接收方的公钥 != 接收方的私钥

2、公钥用于解密,私钥用于加密(即数字签名)
请求的双方,发送方公布自己的公钥,发送方通过指定的加密算法和自己的私钥对原始数据进行加密,接收方通过指定的逆加密算法和发送方的公钥对密文数据进行解密。
发送方:密文结果 = 加密算法(原始数据 + 发送方的私钥)
接收方:原始数据 = 对应的逆算法(密文结果 + 发送方的公钥)
接收方的公钥 != 接收方的私钥

摘要

数据摘要算法是密码学算法中非常重要的一个分支,它通过对数据内容进行散列得到一个固定长度的密文信息。数据摘要算法也被称为哈希(Hash)算法、散列算法。

该算法具有以下特点:

  • 对于任何长度的输入内容,都可以通过摘要算法生成一个固定长度的密文信息
  • 摘要算法是防冲突的,即找不出摘要结果相同的两条信息
  • 摘要结果是不可逆的,也就是无法通过摘要结果还原出相应的原始内容
  • 任何输入内容的变化都将导致摘要结果的明显变化

应用场景:
当数据内容进行传输时,我们一般在传输前对数据内容进行摘要计算,并将数据内容和摘要结果发送给接收方,接收方收到数据后,使用相同的摘要算法对接收到的数据内容(不含发送方的摘要结果)也进行摘要计算,之后与发送方的摘要结果进行比较,如果结果一致,则说明数据是完整的,没有被串改,也没有发生数据丢失。常用的场景如下:

  • 下载文件时,文件的完整性校验
  • 接口交互时,交互数据的完整性校验
  • 数字证书的指纹生成算法

最近对加密算法比较感兴趣,整理一些文章,分享给大家,如有不正之处,欢迎批评指正。

参考资料

非对称加密算法
对称加密算法
摘要算法
数字签名
数字签名算法
对称加密、非对称加密、单向散列

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值