0%

加密和哈希

安全相关概念: 加密 Encrypt哈希 Hash

Encrypt

  • 加密的概念:简单来说就是一组含有 参数 k变换 E信息 m 通过 变换 E 得到 c = E(m)。原始信息 m 为 明文,通过变换得到的信息 c 为 密文。从明文得到密文的过程叫做 加密变换 E加密算法参数 k 称作 秘钥。同一个加密算法,可以取不同的密钥,得出不同的加密结果。从 密文 c 恢复 明文 m 的过程称作 解密解密算法 D加密算法 E 的逆运算。解密算法也有参数,称作解密算法的秘钥。
  • 加密的方式: 私钥密码 - 对称加密公钥密码 - 非对称加密

私钥密码

又称对称密钥加密
这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。
私钥加密的秘钥是对称的,只要知道加密秘钥就能推出解密秘钥(所以称为 对称加密 )。

常见的对称加密算法有: DES3DESAESBlowfishIDEARC5RC6

公钥加密

概念

这种密码是非对称的,也就是说,不能从加密密钥推算出解密密钥,所以又称之为 非对称加密。加密密钥不需要保密,可以公开,称之为 公钥,只需要保守解密秘钥称之为 私钥。公钥和私钥是成对的。常见的非对称加密算法有: RSAElgamal背包算法RabinD-HECC

加密和认证

  • 加密 是保证数据的安全性
  • 认证 是确保用户的真实性。只有通信双方确定是真正要通信的双方,通信才有进行下去的必要

加密过程

  1. Bob 将他的公钥传送给 Alice
  2. AliceBob 的公钥加密她的消息,然后传送给 Bob
  3. Bob 用他的私钥解密 Alice 的消息

** Alice 使用 Bob 的公钥进行加密, Bob 用自己的私钥进行解密**

认证过程

Alice 有一对公私钥, Alice 想让 Bob 知道自己是真实的 Alice,而不是假冒的,整个身份认证的过程如下:

  1. Alice 用她的私钥对文件加密,从而对 文件签名
  2. Alice 将签名的文件传送给 Bob
  3. BobAlice 的公钥解密文件,从而 验证签名

** Alice 使用自己的私钥加密, BobAlice 的公钥进行解密**

思考

如何保证 公钥 的安全

对比

两种加密方式对比

Hash

哈希 (Hash) 是将目标文本转换成具有 相同长度 的、 不可逆 的杂凑字符串(或叫做 消息摘要 ),而 加密 (Encrypt) 是将目标文本转换成具有 不同长度 的、 可逆密文

两者有如下重要区别:

  1. 哈希算法往往被设计成生成具有相同长度的文本,而加密算法生成的文本长度与明文本身的长度有关
  2. 哈希算法是不可逆的,而加密算法是可逆的

Ref

  1. HTTPS 从原理到应用(一):加密 (Encrypt) 与哈希 (Hash)