个人随笔
目录
常见加密算法及常见加密算法原理
2019-11-25 23:22:28

加密算法和协议

一、对称加密

简介:加密和解密使用同一个密钥

常见的算法:

  • DES:Data Encryption Standard;
  • 3DES:Triple DES;
  • AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
  • Blowfish
  • Twofish
  • IDEA
  • RC6
  • CAST5

过程:

A主机将要发送的数据,用密钥加密得到密文。将密文发送至B主机,B主机用相同的密钥解密得到明文

特性:

  1. 密钥过多;
  2. 密钥分发困难;

二、单向加密

简介:即提出数据指纹;只能加密,不能解密;主要用来验证数据是否完整

过程:

A主机将要传输的数据进行一次单向加密,得到数据指纹。当接收方收到数据之后,也进行一次单向加密,如果得到的数据指纹相同,则可以认为数据在传输过程中没有被篡改。

特性:

  • 定长输出
  • 雪崩效应;

算法:

  • md5:Message Digest 5, 128bits
  • sha1:Secure Hash Algorithm 1, 160bits
  • sha224, sha256, sha384, sha512

三、非对称加密:

简介:非对称性加密,也叫公钥加密,加密解密的过程使用不同的密钥。

密钥分为公钥与私钥:

  • 公钥:从私钥中提取产生;可公开给所有人;pubkey
  • 私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;私钥加密的数据只能使用与之配对的公钥解密。而私钥一般只有一个,而公钥可以有多个主机同时拥有。

用途:

  • 数字签名:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”;
    过程:将发送的数据进行一次hash,再用私钥对hash后的数据摘要加密,对方收到密文之后用公钥解密,然后再对数据进行一次hash比对。如果与数字摘要值相同,则数据是完整的。

  • 密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
    过程:对称加密中有一个问题,就是如果密钥被截获了,这时候就算传输是密文,第三方也很容易就可以解密成。所以非对称加密也可以用来传送密钥,这样就可以保证密钥的安全。具体如下:

上面其实是一个数字签名和加密的流程,其中在前面和加密上都使用到了非对称秘钥,签名是用私钥加密生产的数字签名,加密是用公钥加密解密用的秘钥,请注意这里加密的是加密数据的对称加密解密秘钥

  • 数据加密:可以做到数据加密但是一般不用来传输数据,因为非对称加密过程,速度要比对称加密慢3个数量级。

常用算法:

  • RSA
  • DSA
  • ELGamal

密钥交换: IKE(Internet Key Exchange)

公钥加密

公钥加密,也就是非对称加密方式交换密钥,这种方式交换密钥有一个问题就是。假如有一个主机C,他截获了A和B的通信。C可以生成密钥对,当A向B请求B的公钥的时候,C伪装成B将自己的公钥给他,这时候A发送的密文,可以被C解开。因为A加密的公钥是C的公钥,这时候C还能冒充A去与B通信。所以A以为是在与B进行通信,但是其实是A和B同时与C进行通信,这时候C就可以对会话内容进行修改。这就是中间人攻击,解决的办法一般要依赖pki体系。后面会介绍。

PKI(Public Key Infrastructure)

简介:PKI(Public Key Infrastructure)公钥基础设施。

原理

解决上述身份验证问题的关键是确保获取的公钥途径是合法的,能够验证服务器的身份信息,为此需要引入权威的第三方机构CA(如沃通CA)。CA 负责核实公钥的拥有者的信息,并颁发认证”证书”,同时能够为使用者提供证书验证服务,即PKI体系(PKI基础知识)。
基本的原理为,CA负责审核信息,然后对关键信息利用私钥进行”签名”,公开对应的公钥,客户端可以利用公钥验证签名。CA也可以吊销已经签发的证书。具体的流程如下

DH(Deffie-Hellman)

简介
需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。
原理

  1. 有两个全局公开的参数,一个素数q和一个整数a,a是q的一个原根.
  2. 假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA(XA

————————————————
版权声明:本文为CSDN博主「十五十六」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/L835311324/article/details/81540641

 366

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2