【一 直观感受下加密这件大事】
1 凯撒密码:
对军事命令进行加密,确保信息被拦截后,对方也无法解读。凯撒密码的加密算法是将每一个字母替换为其在字母表中之后某个位置的字母,把之后的某个位置命名为步长。比如对“hello”进行加密,加密的步长是5,加密后的内容为“mjqqt”,解密方需要将所有字母在字母表中往前挪动5个位置就能解读了。由于字母只有26个字母,人工可以很快对26种可能性进行尝试,进而对加密信息进行破解。加密算法简单,不利于信息的保密
2 复杂的凯撒密码
将步长设置为不同的数字,也是对"hello"进行加密,我们加密的密钥(加密的步长组合)设置为“17392”,加密后的内容为“ilouq”,如果要破解就有10的5次方种可能性,人工可能慢一点,但计算机一瞬间就能破解,所以密钥需要更长比如256位,计算机破解也需要很长一段时间计算。
【二 对称&非对称加密】
对加密方式进行分类,加密通信的双方使用的是同一套的钥匙和锁,称为对称加密,以上凯撒密码就是对称加密。和对称相反的是不对称加密,钥匙和锁是2套。密钥只被一方持有,对端只能使用打开的锁而不能把关闭的锁打开。分享2种比喻模型帮助理解不对称加密:
【第一种锁模型】
1 客户端向服务器端发送信息前,服务器端会向客户端发送一个打开锁的盒子,客户端将自己的信息放入到盒子A中,关闭锁后再发送给服务器端,服务器端用自己的钥匙a打开客户端发送来的盒子A,提取信息。
2 服务器向客户端发送信息也是同样的道理,发送信息前,客户端会向服务器端发送一个打开锁的B盒子,服务器端将自己要发送往客户端的信息放到盒子里,发送给客户端。客户端用自己的钥匙b开锁。
3 站在客户端来看,钥匙b就是私钥,锁A就是公钥。站在服务器的角度来看钥匙a是私钥,锁B是公钥。
【第二种邮箱模型】
每个通信端都有一个私人邮箱,邮箱上有2把锁。锁A锁着投递信件的入口,锁A配置了N把钥匙,给所有要给它邮箱投信的人使用。锁B锁着邮箱的出口,钥匙只有一把仅自己持有。
1 如果有人要向我投递信件:先找到邮箱的入口钥匙即公钥,打开锁投递信件。我拿出自己的出口钥匙即私钥,打开出口的锁,拿出信件,开始读信。
2 我要给对方寄回信,先找到对方的公钥,打开入口投入信件。对方用私钥打开出口,查看信件。
3 以上就是双方不对称加密的通信过程。
【在网络上通信时使用对称还是不对称加密?】
如果使用加密通信的双方是人类,可以找个隐蔽的山洞商量下大家使用什么算法规则对信息进行加密,比如大家用该字在葵花宝典中第一次出现时后面的第3个字做为加密规则。
如果加密通信的双方是计算机,是没有办法进行私下协商的,一切信息都要从公共网络上过,相当于把加密的规则公告给所有正在监听你们通信的黑客,这样的加密是不能实现保证安全的,所以选择不对称加密。
【对称和不对称加密的比较】
对称:不够安全但是加密速度快
非对称:比较安全,但是速度不快
为了更优的解决加密问题,现实中SSL协议对称和不对称加密都有使用。传输正式信息前,通信双方先用不对称加密的方式协商约定之后使用对称加密的密钥,后面大家就用这个协商出来的密钥进行通信。
【备注】
视频:https://www.bilibili.com/video/av29747740
网友评论