公钥加密以及混合加密
文章來源:公眾號-智能化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系統。每周都有技術文章推送,包括原創技術干貨,以及技術工作的心得分享。掃描下方關注。
總結
以上是生活随笔為你收集整理的公钥加密以及混合加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Selenium爬取淘宝商品信息
- 下一篇: 这个需求的目的是什么?