浅谈--什么是非对称加密?(加密通信的原理)

为什么会写这个专题呢?主要还是在学习https如何保护信息安全的时候涉及到了这个基础,为此我也是恶补了一下,当然为了避免忘记,这一专栏我将对这一块内容进行陆续讲解更新。如果觉得有用,欢迎大家一件三连!!!

今天开启第一部分----非对称加密。


目录

1.对称加密

2.非对称加密

3.数字签名

4.总结


 谈到非对称加密就绕不开对称加密,本文先介绍一下对称加密。

1.对称加密

在进行网络通信的时候,通信安全是一定要考虑的,也就要对信息进行加密与解密处理。

1976年以前,所有的加密方法都是同一种模式:

(1)甲方选择某一种加密规则,对信息进行加密;

(2)乙方使用同一种规则,对信息进行解密。

 Alice对信息m用密钥进行了加密处理(比如+e)得到密文c,【这个过程中,密文是可以放心的在互联网上传播的,被窃听了也没人能看懂】Bob收到后用同样的方式进行解密(-e)就可得到Alice发送的信息m。这个e就可以理解为密钥。

浅谈--什么是非对称加密?(加密通信的原理)

因为加密和解密实用的方式是一样的,用的都是e,所以又叫对称加密

进一步思考:这种方式好么?

可以肯定这种方式本身没有毛病。但是问题是Alice如何只让Bob知道密钥e,别人不知道呢?

①私下找到Bob,趴在他耳朵边告诉他密钥是e,和他说:“你别乱说”。

②通过网络将e安全的传递给Bob。

分析:

方法①在Bob不乱说的情况下可以认为是绝对安全的,但是密码换了或者距离很远,你也不能总跑来跑去把?并且都现代社会了,总要用现代社会的方式解决问题啊。

方法②的关键是如何将密钥e安全的传递给Bob?因为如果 Alice 不能安全的把密钥传递给 Bob ,那么加密通信就实现不了。而如果不能实现加密通信,那又怎么可能安全的传递密钥呢,所以对称加密在互联网上使用,就有了这个鸡生蛋蛋生鸡的问题。非对称加密被发明出来,就是为了解决对称加密的这个最为致命的痛点。

2.非对称加密

所谓非对称加密就是说加密的密钥和解密的密钥不一样。

浅谈--什么是非对称加密?(加密通信的原理)

基本流程如下:

信息的接收方Bob利用RSA算法,产生一对儿密钥,用来放在网络上传输的我们叫公钥,自己保管的叫私钥

①Bob将公钥传递给Alice。

②Alice拿到公钥后对要发送的信息进行加密

③加密的密文再传递给Bob

【传输过程中密文即使被捕获了也无法破解,因为只能用私钥破解,而私钥无法获得】

④Bob用自己的私钥就能破解并获得Alice发送得信息。

这种方式就有效的解决了加密数据通信得问题。但是这种非对称加密方法并不能加密大段信息【原因我将在后续博文中说明】,因此我们常常是和对称加密方法一起实用。原理就是将【对称加密的密钥】进行非对称加密,让通讯双方能够安全的【获得对称加密的密钥】,随后再进行正常对称加密通信就好了。

3.数字签名

在解决了加密通信问题之后,又会出现个问题:就是Bob接收到了Alice发送的信息,可如何证明这信息就是Alice发出的呢?又如何证明这个信息没有被别人篡改呢?这时候就用到了数字签名,这个可以类比人类社会,你在一个文件上签名了,那么就可以证明这个文件是你发送的。数字签名也是一样的。

【注:私钥加密的东西,公钥也能解开,因为公钥和私钥是有联系的,我后续的博文会说明】

浅谈--什么是非对称加密?(加密通信的原理) 

①Alice自己利用RSA算法产生一对儿密钥(公钥和私钥)。

②为了防止信息被篡改,Alice对传递的信息m进行散列算法处理(Hash哈希处理),产生一个固定长度的字符串。【一旦原文内容有变化,那么散列算法处理后的结果是不一样的】

③随后Alice利用自己的私钥对这个散列后的字符串进行加密就得到了数字签名。

④Alice将原文信息经过对称加密和数字签名一起传递给Bob。

⑤Bob接收后,先对原文信息解密,随后对解密的信息也进行散列化处理并得到散列字符串。

⑥Bob利用Alice给的公钥对Alice传递的数字签名进行解密就得到了原信息的散列值。

⑦Bob将自己散列化处理的字符串和对数字签名解密后的字符串进行对比,如果一样就能证明两件事:第一、信息没有被篡改【因为信息散列值一样(哈希一样)】第二、信息确实是Alice发送的【因为你能用Alice的公钥解密她加密的数字签名】

数据和HASH值如果直接传递就有都被篡改的风险.所以我们要进行加密。明文数据有时会比较大,不适合使用RSA非对称加密算法【后续博文会介绍】,那么数据的HASH值(散列值)是比较小的。这个数据是用于校验有无篡改的,它完全可以使用RSA来加密。所以在数据传递的时候,我们将明文数据(对称配合非对称加密的方式传递)加上通过RSA加密的HASH值(散列值)一并传递给对方。那么这个通过RSA加密的HASH值(散列值)我们称之为数字签名

4.总结

详细看完本文,一定会对加密通信全过程有个非常清晰的认识,至于具体细节,我将在后续博文中介绍。

 

上一篇:Alice&Brown(AtCoder-2400)


下一篇:Https核心加密算法-Diffie–Hellman key exchange