首页 > 编程语言 >对称加密算法和非对称加密算法说明

对称加密算法和非对称加密算法说明

时间:2022-10-13 18:25:37浏览次数:54  
标签:加密 摘要 解密 对称 非对称 私钥 数据 加密算法

加密算法和协议

  • 对称加密:

  • 非对称加密

  • 单向加密:哈希(hash)加密

  • 认证协议

1. 对称加密:

加密和解密:

  • 加密和解密使用的是同一个密钥

加密方式:

  • 是通过将原始数据分割成若干块来逐个进行加密

特点:

  • 效率高、速度快

缺点:

  • 加密解密使用的密钥相同,需要提前把密钥发给别人且不能确定数据来自于发送方。

1.1 常见的对称加密算法:

  • DES:56位加密,把数据切成56Bit一块来进行加密(3DES:DES的方式加密三次)

  • AES:高级加密标准,密钥长度是可变的。 (128, 192, 256bits)

  • IDEA,RC6,CAST5

2. 非对称加密算法:

加密和解密:

  • 密钥成对出现,加密和解密用的密钥不相同,并且通信双方都需要各自的密钥和私钥

特点:

  • 公钥加密、私钥解密,可以确认数据的来源
公钥:public key,公开给所有人,

私钥:secret key,private key  私有的,必须保证其私密性,用于自已加密签名

数字签名概念:

  • 采用私钥来进行加密、使用公钥来进行解密。(其他人的到的数据只能使用他的公钥来解密,这样就能确定数据的来源性)

公钥加密私钥解密和私钥加密公钥解密的区别:

  • 公钥加密、私钥解密:加密的数据只能自己解开。能保证数据的安全

  • 私钥加密、公钥解密:能确定数据的来源性。实现数字签名(缺点:复杂程度高)

2.1 常见的非对称加密常见算法:

  • RSA:三个发明人首字母简称。加密和数字签名都可以实现

  • DSA(Digital Signature Algorithm):数字签名算法,只能做来源确认,不能做数据加密。

  • ECC:椭圆曲线密码编码学,比RSA加密算法使用更小的密钥,提供相当的或更高等级的安全

堆成加密和非对称加密的使用场景:
  • 对称加密算法适合加密大的数据

  • 非对称加密算法合适加密小的数据

3. 哈希(hash)算法(散列算法)

是一种单向的加密算法,是不可逆的。

作用:

  • 用来确认数据的完整性。因为数据发生改变,摘要也会随之发生改变。

摘要(digest)的概念:

  • 哈希算法加密出来的结果就叫做摘要。

摘要的长度和内容:

  • 长度固定,内容不同。

摘要的特点:

  • 通过摘要无法推出原有数据的内容

3.1 摘要的使用场景

用来检查数据是否被篡改。因为数据不变,摘要也不会发生改变。

摘要类似于人的指纹,不同的人(数据)有不同的指纹(摘要),知道了指纹(摘要),也不知道是谁(不能通过摘要推出原数据)

3.2 常用的哈希算法

  • md5: 摘要是128bits字符 已经被破解了

  • sha1: 摘要是160bits字符 已经被破解了

  • sha224、sha256、sha384、sha512

3.3 加盐的概念:

加盐就是在进行哈希加密的时候加上随机字符串。

例如:

  • 两个账号的密码一样,但是得到的哈希摘要不一样,这是因为为了保证信息的安全,在加密密码之前加盐(随机字符串)处理,然后再进行加密。这样就保证了同样的密码,生成的哈希摘要不一样的原因。

4. 两类加密算法的组合使用

4.1 通过对称和非对称的组合使用实现数据加密

  • 采用对称和非对称密钥的组合使用。(无法验证数据完整性和来源)
    image
张三先使用对称加密来加密数据文件,
然后使用李四的公钥来加密这个对称加密的密钥文件。
最后把这两个文件发给李四。


李四收到这两个文件后,先使用自己的私钥解密加密的密钥文件得到对称加密的密钥,
最后使用这个密钥来解密数据。

4.2 通过数字签名实现数据完整性验证

不加密数据,可以保证数据来源的可靠性、数据的完整性和一致性
image

张三先使用哈希算法得到一个摘要,摘要放在数据的后面,
然后使用私钥来加密这个摘要信息(数据没加密)。
然后把数据和数字签名发给李四。


李四通过张三的公钥来解密得到加密的摘要信息,(私钥加密、公钥解密)
然后再对数据使用相同的哈希算法来进行加密。
最后对比两个摘要是不是一样。一样就确定了数据是张三发来的。

加密和签名的实现

即实现数据加密,又可以保证数据来源的可靠性、数据的完整性和一致性
方法一:使用这种方法实现,如果数据很大的话。效率就会很低
image

张三加密过程:
先把数据使用哈希算法得到一个摘要,
然后使用私钥进行加密摘要得到签名。把数据放在这个签名的后面。
然后再使用接受者的公钥将他们进行加密。

李四解密过程:
首先使用自己的私钥进行解开得到里面的签名和数据。
然后使用同样的哈希算法对数据进行加密,并且使用张三的公钥将张三发送过来的摘要解密
最后对比两个摘要是都相同。

方法二:三种加密算法的综合使用
image

张三先使用哈希算法将数据进行加密,
将得到的摘要信息附加到数据后面,
再使用自己的私钥加密摘要信息的到数字签名。
然后使用对称加密的方式将他们全部加密,
再使用李四的公钥来加密这个对称密钥文件。

李四得到数据以后,首先通过自己私钥解密得到对称密钥,
然后再进行对称解密得到数据和张三的数字签名。
再通过张三的公钥来解密这个签名得到张三生成的摘要信息。
再通过同样的哈希算法生成一个摘要。
对比两个摘要是否一样。

标签:加密,摘要,解密,对称,非对称,私钥,数据,加密算法
From: https://www.cnblogs.com/heyongshen/p/16789191.html

相关文章

  • HTTPS涉及的加密算法讲解
    前言从2015年左右开始,Google、Baidu、Facebook等互联网巨头,不谋而合地开始大力推行HTTPS,国内外的大型互联网公司很多也都已经启用了全站HTTPS为鼓励全球网站的HTTPS......
  • OFF28 对称二叉树
    publicbooleanisSymmetric(TreeNoderoot){if(root==null){returntrue;}returnjudge(root.left,root.right);}......
  • 加密算法总结
    1.加密算法的分类根本不考虑解密问题;私用密钥加密技术:对称式加密(SymmetricKeyEncryption):对称式加密方式对加密和解密使用相同的密钥。通常,这种加密方式在应用中难以实施,......
  • MATLAB 对称矩阵
    已知A矩阵为: 4  20 12 8 3  15  7 40 8  22 12 36 11 30 18 46 将矩阵转变为对称矩阵 4 20 12  820 15  7 ......
  • 代码随想录day15 ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2
    102.二叉树的层序遍历1classSolution{2public:3vector<vector<int>>levelOrder(TreeNode*root){4//创建一个队列用于存储每一层的结点5......
  • 对称加密和非对称加密技术
    ## 对称密钥加密——共享密钥  共享密钥,就是加密和解密用同一把密钥。这就需要将密钥也传过去。问题又回到了加密之前,因为别人可以截获钥匙。问题来到了如何将密钥安......
  • 101.对称二叉树 100.相同的树
    注意compare比较的只是左右节点!!!/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;......
  • 代码随想录day15 | 102.二叉树的层序遍历 226.反转二叉树 101.对称二叉树
    102.二叉树的层序遍历题目|文章1.迭代思路1.创建一个队列2.确定每一层的节点个数,对每一层进行遍历,将结果输出。实现点击查看代码classSolution{public:ve......
  • AES加密算法原理及python实现
    AES对称加密算法  AES加密算法即密码学中的高级加密标准(AdvancedEncryptionStandard,AES),又称Rijndael加密法(2000年10月2日,比利时密码专家JoanDaemen和VincentRijmen提......
  • Windows Server 服务器漏洞:OpenSSL 信息泄露漏洞(CVE-2016-2183)和 OpenSSL弱加密算法
    一、更新openssl版本这个漏洞我目前了解到是直接使用系统自带版本,版本过低引起的弱加密信息泄露,直接更新。更新会同时把标题两个漏洞都补上先下载一波安装包: http://sl......