网络加密技术


加密技术:利用技术手段把数据变为乱码(加密)传送,到达目的地后再用 相同或不同的手段还原(解密)。

哈希加密

基本原理

哈希函数是一个单向函数,它将目标文本转化为固定长度的字符串。由于是单向函数,不具备可逆性,实现加密保护。
在这里插入图片描述

Q:我用哈希函数加密了明文,从此以后,不仅攻击者解读不了加密后的字符串,我也不懂了鸭?

A:某些应用场景是不需要解密的,即,被保护的数据只需要做验证,举个栗子:

简单的用户登录场景

你的用户名与密码存储(没有使用哈希加密)在服务器数据库中,当服务器数据库泄露数据时,你的用户名与密码也就泄露了。

假设,你的用户名和密码经过哈希加密,那么服务器数据库中将存储加密后的密文,即使泄露数据也是一大堆哈希字符串。

而正常的登陆验证过程,只需要验证密文是否已知就行不需要知道明文。如下图:

在这里插入图片描述

常用的哈希函数

  1. MD5
  2. SHA
  3. MAC
  4. CRC
  5. SM3(国产哈希算法)

对称加密(单密钥加密)

基本原理

加密: R = E ( S , K e ) R=E(S,K_e) R=E(S,Ke)R为密文, S为明文, K e K_e Ke为密钥,经过函数 R R R后,明文变密文;
解密: S = D ( R , K e ) S=D(R,K_e) S=D(R,Ke)S为密文, R为明文, K e K_e Ke为密钥,经过函数 S S S后,密文变明文;
在这里插入图片描述PS:加密(Encrypt)、解密(Decrypt)

特点

  1. 加密和解密都是用同一个秘钥
  2. 加密、解密效率高
  3. 秘钥被窃取,容易造成数据不安全

常用的对称加密算法

  1. DES
  2. 3-DES
  3. AES
  4. IDEA
  5. SMS4
  6. RC5
  7. TRIVIUM

DES

加密:

  1. 明文按64位分组,每组明文经初始排列
  2. 通过子密钥k1~k16进行16次乘积变换
  3. 通过最终排列(第3步)得到64位密文

解密:与加密运算一样,只是所取子密钥 的顺序相反,从k16到k1

如图:
在这里插入图片描述

非对称加密(公开密钥)

基本原理

公钥:可以告诉全网的密钥
私钥:只能自己知道的密钥

在这里插入图片描述

特点

  1. 用公钥加密用私钥解密
  2. 加密、解密相对于对称加密效率更低,但是比对称加密更安全。
  3. 公钥可能被中间人伪造,造成数据不安全。

常用的非对称加密技术

  1. RSA
  2. EIGamal
  3. ECC

RSA

算法:

  1. 选择两个大素数, p p p q q q,均应大于 1 0 100 10^{100} 10100;
  2. 计算 n = p ∗ q n = p * q n=pq z = ( p − 1 ) ∗ ( q − 1 ) z = (p-1)*(q-1) z=(p1)(q1);
  3. 选择一个与 z z z互为质数的数,令其为 d d d;
  4. 找到一个 e e e使其满足 ( e ∗ d ) m o d z = 1 {(e*d )}mod z =1 (ed)modz=1;

对于报文m

加密需计算密文 c = m e ∗ ( m o d   n ) c=m^e*(mod\ n) c=me(mod n)
解密c需计算 m = c d ∗ ( m o d   n ) m=c^d*(mod\ n) m=cd(mod n)

PS:实施加密需要e和n,实施解密需要d和n。因此,公开密钥由(e, n)构成,秘密密钥由(dn)或只是d构成。n限制明文块的大小。

举例:

  1. 取p = 7, q = 11
  2. n = pq = 77, z = (p-1)(q-1) = 60
  3. 取e = 43, d= 7 使得e*d mod z = 301 mod 60 = 1
  4. 得到公钥(e=43, n=77),密钥(d=7, n=77)
  5. 设我们的明文为m = 42
  6. 加密c = m e m^e me mod n = 4 2 43 42^{43} 4243 mod 77 = 14
  7. 解密m = c d c^d cd mod n = 1 4 7 14^7 147 mod 77 = 42

对称+非对称

由于对称加密效率高,非对称加密效率低,通常将两者结合起来,即用非对称加密进行身份验证,传递对称密钥,利用对称加密进行数据传输。HTTPS就是一个例子

HTTPS加密

简单的HTTPS加密过程,忽略协议协商等具体细节:

  1. 客户端发起HTTPS连接
  2. 服务器返回包含公钥的数字证书
  3. 客户端生成对称密钥
  4. 客户端通过公钥加密,发送对称密钥
  5. 客户端与服务器进行密文通信

其中,

第2步保证了服务器公钥的真实性;

第4步为非对称加密;

第5步为对称加密;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39021670/article/details/109533886