公钥加密以及混合加密
文章来源:公众号-智能化IT系统。
一. 引言
对称加密可以解决一部分的安全问题,而且加解密的速度很快。但是安全性上存在一定的隐患,隐患存在于**的配送上。
例如接收者生成了**,用邮件把**发送给消息的发送者,一旦邮件泄露,那么极有可能导致安全风险。企业合作就有很多这种情况,那么如何解决呢?
方式有多种,例如事先共享**,或者通过**分配中心,这里介绍通过技术手段的常用措施,公钥加密以及对称加密。
二. 公钥加密
1. 原理介绍
公钥加密是什么?和对称加密不同,这里的**不是一个,而是分为了公钥和私钥。发送者用公钥对消息进行加密,而接收者用私钥对消息进行解密。特点如下:
发送者只需要加密的**
接收者只需要解密的**
解密的**不可以被窃取
加密的**被窃取了也没关系,窃听者解密不了,因为加密的**和解密的**不同
2.通信流程
公钥加密的通信流程如下:
3.RSA原理
RSA是典型的公钥加密算法,其工作原理如下:
RSA 加密:密文 = 明文E mod N
RSA 解密:明文 = 密文D mod N
这里,E和N的组合,就是RSA的公钥;D和N的组合就是RSA的私钥。
那么问题来了,这些数是如何生成的呢?
RSA生成**对的步骤如下:
1. 求N
首先,准备两个很大的质数,p 和 q,N是p和q的乘积。写为如下:
N =p * q
2. 求L
L可以理解为仅仅是在生成**对的过程中需要用到的数
L就是p-1 和 q-1的最小公倍数,写为如下:
L =lcm(p-1,q-1)
3. 求E
E是一个比1大,比L小的数,并且,E和L的最大公约数必须为1。所以E可以有多个值,满足如下:
1<E<L
gcd(E,L)= 1
4. 求D
D是由数E计算得到的,需要满足:
1<D<L
E*D mod L = 1
只要要D能满足上述条件,通过E和N进行加密的密文,就可以通过D和N进行解密。
4.RSA案例
举例说明:
首先我们准备两个质数,15,17,作为p和q。
N = 17 * 19
= 323
L = lcm(p-1,q-1)
= lcm(14,18)
= 144
E的满足条件及有很多,只需要gcd(E,L) = 1。这里发现如下数都可以:5,7,11,13,17,19,但是我们只需要质数,所以暂用5作为E。
D通过同样的方式,满足E * D mod L = 1的,29可以满足。
所以在这个案例中:
我们的公钥是: E=5,N=323
我们的私钥是: D=29,N=323
三. 混合加密
公钥加密的方式,将安全性进行了提升,但是公钥加密有一个问题:性能较差。特别是对于加密数据较大的情况,尤为明显。
混合加密就是解决性能问题的方法。其将对称密码和公钥密码的优势进行了结合。
1. 组成机制
其组成机制如下:
1.用对称密码加密消息
2.通过伪随机数生成器生成对称密码加密中使用的会话**
3.用公钥密码加密会话**
4.从混合密码系统外部富裕公钥密码加密时使用的**。
2. 加密流程
加密流程如下图:
直接从上图,应该就一目了然,混合加密的运作流程。下面我们看一下混合解密的流程,其实就是加密的反向流程。
3. 解密流程
至此,本文防止信息泄露的算法已经给介绍完,但是安全的防范绝对不是仅此而已。
———————————————————
公众号-智能化IT系统。每周都有技术文章推送,包括原创技术干货,以及技术工作的心得分享。扫描下方关注。