此篇文章将简单的讨论密码学的加密解密过程,看完后,你会理解非对称加密的优点以及黑客伪造公钥攻击的过程原理
文末有思维导图
背景:
加解密技术目的
- 即使信息被窃听或者截取,攻击者也无法知晓信息的真实内容。可以对抗网络攻击中的被动攻击。
- 通常使用加密机制来保护信息的保密性,防止信息泄密。信息的加密机制通常是建立在密码学的基础上。
加密算法:
1.对称加密算法
- IDEA(International Data Encryption Algorithm)
- DES/DES
- RC系列(RC2、RC4、RC5、RC6)
- AES
对称加密算法的主要问题:
a.加解密双方要使用相同的密钥(对称的密钥对),这个相同的密钥是在收发数据前要完成协商,公网传输密钥是个很大的安全问题
b.管理不便,大量的密钥管理十分的麻烦
缺陷:
双方建立信道用的是安全的信道,但是数据传输的通信链路是不安全的
改良:
问题描述:
对于网络中的多数量密钥,即每个人要保管多个对称密钥 (通信双方的密钥成对出现{对称},不能重复),但是密钥是要通过安全的信道传输的,这增大了网络传输的困难
解决:邮差原理
-
概述:
设置一个专门存放密钥与加密信息的的管理中心(信箱),这个信箱只有接收方可以打开
-
具体:
1.发送方在发送加密信息时,将解密的密钥也带上,发给接收方的信箱里
2.接收方只需要使用一把钥匙,即能打开自己的信箱的钥匙
3.打开后,用加密信息上带的解密用的钥匙,解开加密信息,完成数据通信
要理解上述步骤的关键是对称加密算法的一个特点是:
对称加密算法是一个公私钥对 -
公钥加密的信息可以用私钥解密
-
私钥加密的信息可以用公钥解密
其原理可概述为:
接收方将自己的公钥发出去,想要跟我通信的人,拿着这把公钥将数据加密,然后发送给我,只有我能解密,是因为我有跟这把公钥形成密钥对的私钥,所以只有我才能解密,这也就是对称加密的核心思想。即可变相的认为,我拿着一把私钥就可以解开所有的加密信息,一把钥匙打天下。
2.非对称加密算法(公钥加密算法)
- ECC(Elliptic Curves Cryptography)
- RSA
- Rabin
- Elgamal(基于Diffie-Hellman算法)
第一代非对称加密算法 DH算法(优质的密钥交互算法)
做法:
不需要知道对方的私钥 双方用自己的私钥与公开的公钥进行加密后交互新的加密算法(私钥+公钥)来形成相同的密钥
结果是拿到了别人无法猜透的值(利用这个值来实现对称密钥的交互)
目的:
用非对称加密算法来传递对称加密算法的密钥
本质:
数学中的取模运算 5模2 是1 但是根据2与1得不出来5(因为计算机中的数据是非常大的)
区别:
非对称加密算法的加解密用的不是同一把钥匙
总结:
(1)数据传输采用对称加密算法;
(2)对称加密的密钥通过非对称加密算法进行加解密。
加解密过程:
前言:
首先,要明确一点,一个公钥与私钥的密钥对是可以互相解密的
以下进行网络中的加密信息的详细加解密过程
Alice是发送方,Bob是接收方
1.Alice将原始信息先用HASH加密形成摘要,然后用自己的私钥加密生成数字签名
- 为什么要用到HASH?
a.HASH用较小的值代表原始数据(加快数据传输的速率)
b.用较小的代价发现原始数据的改变(Hash的值小)
c.加快私钥加密的速度(Hash的值小) - 数字签名
说明:
a.这个数字签名只有Alice才能生成
b.对原始信息负责,对Alice负责,即只有Alice才能生成这样的原始信息
c.数据与Alice才能合成这样的数字签名
意义:
这个数字签名代表了合同,具有实际效应
2.Alice将原始信息与数字签名发给拥有Alice公钥的Bob
3.Bob收信后,取下数字签名,用Alice的公钥解密,得到信件的摘要。由此证明,这封信确实是Alice发出的
4.Bob再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。–完成数据完整性的验证。
- Hack攻击
做法:
将自己的公钥换掉Bob上的Alice的公钥
问题核心:
Hack换掉的公钥,让Bob以为还是Alice的
解决:要证明这把公钥一定就是Alice给的
做法:
要有一个可信的机构CA (第三方可信机构)
1.Alice去CA中心申请一个证书 (证书有Alice的身份、身份验证机构、Alice的公钥等)
2.CA机构用自己的私钥对证书加密
3.生成一个数字证书
接下来
1.Bob使用CA的公钥,解开CA颁发发给Alice的数字证书,获得Alice的公钥
2.此时的Alice公钥是肯定正确的
至此完成数据的通信