系統安全密碼全面剖析三部曲之二:公鑰加密以及混合加密
一. 引言
上周我們提到了對稱加密,對稱加密可以解決一部分的安全問題,而且加解密的速度很快。但是安全性上存在一定的隱患,隱患存在於密鑰的配送上。
例如接收者生成了密鑰,用郵件把密鑰發送給消息的發送者,一旦郵件泄露,那麼極有可能導致安全風險。企業合作就有很多這種情況,那麼如何解決呢?
方式有多種,例如事先共享密鑰,或者通過密鑰分配中心,這裡介紹通過技術手段的常用措施,公鑰加密以及對稱加密。
二. 公鑰加密
1.原理介紹
公鑰加密是什麼?和對稱加密不同,這裡的密鑰不是一個,而是分為了公鑰和私鑰。發送者用公鑰對消息進行加密,而接收者用私鑰對消息進行解密。特點如下:
發送者只需要加密的密鑰
接收者只需要解密的密鑰
解密的密鑰不可以被竊取
加密的密鑰被竊取了也沒關係,竊聽者解密不了,因為加密的密鑰和解密的密鑰不同
2.通信流程
公鑰加密的通信流程如下:
3.RSA原理
RSA是典型的公鑰加密演算法,其工作原理如下:
RSA 加密:密文 = 明文Emod N
RSA 解密:明文 = 密文Dmod 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可以有多個值,滿足如下:
gcd(E,L)= 1
4.求D
D是由數E計算得到的,需要滿足:
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.解密流程
至此,防止信息泄露的演算法已經給介紹完,但是安全的防範絕對不是僅此而已。下周我們針對防止信息串改進行分享。
TAG:智能化IT系統 |