对称加密和非对称加密

对称加密和非对称加密有点复杂,这里就记录下逐渐认识过程吧!

第一次

看了《HTTP 权威指南》和《Java 网络编程》中介绍,对这两套加密算法的认知是这样的:
爱之初体验
然后,还没有:爱之在判断、爱之终决选

第二次

看了《Go 语言编程》中的介绍:

  1. 对称加密也叫做单秘钥加密,因为在加密和解密的过程中使用的秘钥只有一个。整个系统有:需要加密的明文、加密算法和秘钥。常见的单秘钥加密算法有:DES、AES、RC4等。
  2. 相应的非对称加密算法也叫做双秘钥加密。整个系统有:需要加密的明文、加密算法、公钥和私钥。在该系统中,公钥和私钥都可用作加密和解密,并且用公钥加密的明文必须使用对应的私钥解密,用私钥加密的明文必须使用对应的公钥解密。常见的双秘钥加密算法有:RSA等。
  3. 不论对称加密还是非对称加密,数据都可以加密,也都可以解密。实际上,我们还有一种加密需求,那就是只需要加密而不需要解密也不可解密,这种加密算法就是哈希算法。
  4. 哈希算法是一种从任意数据中创建固定长度摘要信息的办法。对于不同的数据,产生的摘要信息也是唯一的。常见的哈希算法有:MD5、SHA-1等。

数字签名

数字签名,是指用于标记数字文件拥有者、创造者、分发者身份的字符串。
数字签名拥有标记文件身份、分发的不可抵赖性等作用。
目前,常用的数字签名采用了非对称加密。例如:A 公司发布了一个可执行文件,称为 AProduct.exe,A 在 AProduct.exe 中加入了 A 公司的数字签名。A 公司的数字签名是用 A 公司的私钥加密了 AProduct.exe 文件的哈希值,我们得到打过数字签名的 AProduct.exe 后,可以查看数字签名。这个过程实际上是用 A 公司的公钥加密了文件哈希值,从而可以验证两个问题:AProduct.exe 是否由 A 公司发布,AProduct.exe 是否被篡改。

数字证书

我们登录网银时经常需要下载数字证书(U 盾的初始化过程就是向 U 盾中下载数字证书),这个数字证书就包含了银行的公钥,然后我们发给银行的信息都是经过这个公钥加密过的。

PKI 体系

PKI,全称公钥基础设施,是使用非对称加密理论,提供数字签名、加密、数字证书等服务的体系,一般包括权威认证机构(CA)、数字证书库、秘钥备份及恢复系统、证书作废系统、应用接口(API)等。