公鑰加密以及混合加密

文章來源:公衆號-智能化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系統。每週都有技術文章推送,包括原創技術乾貨,以及技術工作的心得分享。掃描下方關注。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章