简述常见加密算法及常见加密算法原理

一、加密算法简介

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

二、为什么要使用加密算法

在网络上传输保证数据安全有三点:

  1. 保密性:确保自己的信息不被任何无关的第三方看到,能看明白。

  2. 完整性:通信双方在实现通信时整个通信报文不会产生信息丢失,如果发生丢失,要让接收端知道。

  3. 可用性:通信方任何一方所产生的信息应当对授权实体可用。

很多互联网著名的协议都没有自己去实现加解密的功能。为了保证上面提到的数据安全,所以要使用加密算法。

三、加密算法有哪些

在两端主机之间进行加密通信,运用到了下面这些密匙算法和协议

  1. 对称加密
    在两边主机对数据的发送前和接收后都用同一个密钥进行加密和解密。它是将原始数据分割为固定大小的块,然后逐个进行加密的。加密的算法有主流的DES、3DES、AES和一些商业版加密Blowfish、Twofish、IDEA、RC6、CAST5。这种加密算法在数据传输时有密钥过多,密钥分发困难的缺点。

  2. 公钥加密
    公钥加密所用到的密钥可以分为公钥和私钥两种,其中私钥是使用者通过工具创建,而公钥是从私钥中提取产生。使用者要保证私钥安全秘密存放,而公钥则是公开给所有人使用的。使用公钥加密的数据,只能使用与之配对的私钥解密,反之亦然。因为公钥加密的加解密数据比对称加密的加解密数据性能低太多,所以平常应用中都用来做数字签名和密钥交换来使用,一般不用来对较大数据进行加密。

  3. 单向加密
    单向加密又称为不可逆加密算法,在加密过程中不使用密钥,明文由系统加密处理成密文,密文无法解密。一般适合于验证,在验证过程中,重新输入明文,并经过同样的加密算法处理,得到相同的密文并被系统重新认证。广泛使用于口令加密。其中单向加密的算法有md5,sha1,sha224,sha256,sha384,sha512等。

  4. 密钥交换
    1976 年,Whitfield Diffie 和 Martin Hellman 一起发明了一个密匙交换方式,被称为 “迪菲-赫尔曼密钥交换 Diffie–Hellman key exchange 简称 D-H”。因为使用DH时密码不在互联网传送,而双方都能得到一致的密码,所以DH比较多人用的原因。

  • DH密匙交换过程:
    Alice:选择两个数 p,n 来做模运算,随机出一个数x,
    --> p^x%g = B,通过运算生成一个数B,然后Alice把 p,n,B 告诉了Bob。
    Bob:随机出一个数 y
    --> p^y%g = A,生成数A,Bob将 A 的值告诉了Alice。
    现在,Alice和Boc开始生成密钥,
    Alice:key = A ^ x % n
    Bob :key = B ^ y % n
    通过上面的运算,Alice和Bob生成了他们之间的密匙key。

四、加密算法原理实例讲解

假设Alice要和Bob通信,我们来模拟这次通信的加密过程:


加密解密.png
加密发送的过程
  • 第一步:Alice现在有数据要发送,为了把数据安全无误保密的送达Bob,Alice先用单向加密算法计算出这段数据的特征码。
  • 第二步:Alice用自己的私钥加密这段特征码并将结果附加在数据后面。
  • 第三步:Alice生成一个临时的对称密钥,并使用这个对称密钥加密这整段数据。
  • 第四步:Alice获取到Bob的公钥,使用这个公钥加密刚才的临时对称密钥,并附加在整段数据后面,接着把加密好的整段数据发送给Bob。
解密的过程
  • 第一步:Bob用自己的私钥去解密这段加密的临时对称密钥
  • 第二步:用对称密钥去解密整段加密的内容
  • 第三步:用Alice的公钥去解密这段特征码,能解密的话可以确定是Alice发送的数据
  • 第四步:Bob用同样的对称加密算法,对这段数据计算出特征码并与解密出来的特征码进行比较,如果两个特征码相同,证明这段数据是完好无损的。

你可能感兴趣的:(简述常见加密算法及常见加密算法原理)