公钥加密以及混合加密

文章来源:公众号-智能化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系统。每周都有技术文章推送,包括原创技术干货,以及技术工作的心得分享。扫描下方关注。



展开阅读全文

没有更多推荐了,返回首页