公钥加密以及混合加密
文章來源:公眾號-智能化IT系統(tǒng)。
一. 引言
對稱加密可以解決一部分的安全問題,而且加解密的速度很快。但是安全性上存在一定的隱患,隱患存在于密鑰的配送上。
例如接收者生成了密鑰,用郵件把密鑰發(fā)送給消息的發(fā)送者,一旦郵件泄露,那么極有可能導(dǎo)致安全風(fēng)險。企業(yè)合作就有很多這種情況,那么如何解決呢?
方式有多種,例如事先共享密鑰,或者通過密鑰分配中心,這里介紹通過技術(shù)手段的常用措施,公鑰加密以及對稱加密。
?
二. 公鑰加密
1.?原理介紹
公鑰加密是什么?和對稱加密不同,這里的密鑰不是一個,而是分為了公鑰和私鑰。發(fā)送者用公鑰對消息進(jìn)行加密,而接收者用私鑰對消息進(jìn)行解密。特點(diǎn)如下:
發(fā)送者只需要加密的密鑰
接收者只需要解密的密鑰
解密的密鑰不可以被竊取
加密的密鑰被竊取了也沒關(guān)系,竊聽者解密不了,因為加密的密鑰和解密的密鑰不同
?
2.通信流程
公鑰加密的通信流程如下:
3.RSA原理
RSA是典型的公鑰加密算法,其工作原理如下:
RSA 加密:密文 = 明文E?mod N
RSA 解密:明文 = 密文D?mod N
這里,E和N的組合,就是RSA的公鑰;D和N的組合就是RSA的私鑰。
?
那么問題來了,這些數(shù)是如何生成的呢?
RSA生成密鑰對的步驟如下:
1.??求N
首先,準(zhǔn)備兩個很大的質(zhì)數(shù),p 和 q,N是p和q的乘積。寫為如下:
N =p * q
2.??求L
L可以理解為僅僅是在生成密鑰對的過程中需要用到的數(shù)
L就是p-1 和 q-1的最小公倍數(shù),寫為如下:
L =lcm(p-1,q-1)
3.??求E
E是一個比1大,比L小的數(shù),并且,E和L的最大公約數(shù)必須為1。所以E可以有多個值,滿足如下:
1<E<L
gcd(E,L)= 1
4.??求D
D是由數(shù)E計算得到的,需要滿足:
1<D<L
E*D mod L = 1
只要要D能滿足上述條件,通過E和N進(jìn)行加密的密文,就可以通過D和N進(jìn)行解密。
?
4.RSA案例
舉例說明:
首先我們準(zhǔn)備兩個質(zhì)數(shù),15,17,作為p和q。
N = 17 * 19?
? = 323
L = lcm(p-1,q-1)
??= lcm(14,18)
? = 144
E的滿足條件及有很多,只需要gcd(E,L) = 1。這里發(fā)現(xiàn)如下數(shù)都可以:5,7,11,13,17,19,但是我們只需要質(zhì)數(shù),所以暫用5作為E。
D通過同樣的方式,滿足E * D mod L = 1的,29可以滿足。
所以在這個案例中:
我們的公鑰是: E=5,N=323
我們的私鑰是: D=29,N=323
?
三. 混合加密
公鑰加密的方式,將安全性進(jìn)行了提升,但是公鑰加密有一個問題:性能較差。特別是對于加密數(shù)據(jù)較大的情況,尤為明顯。
混合加密就是解決性能問題的方法。其將對稱密碼和公鑰密碼的優(yōu)勢進(jìn)行了結(jié)合。
?
1.?組成機(jī)制
其組成機(jī)制如下:
1.用對稱密碼加密消息
2.通過偽隨機(jī)數(shù)生成器生成對稱密碼加密中使用的會話密鑰
3.用公鑰密碼加密會話密鑰
4.從混合密碼系統(tǒng)外部富裕公鑰密碼加密時使用的密鑰。
?
2.?加密流程
加密流程如下圖:
直接從上圖,應(yīng)該就一目了然,混合加密的運(yùn)作流程。下面我們看一下混合解密的流程,其實就是加密的反向流程。
3.?解密流程
至此,本文防止信息泄露的算法已經(jīng)給介紹完,但是安全的防范絕對不是僅此而已。
———————————————————
公眾號-智能化IT系統(tǒng)。每周都有技術(shù)文章推送,包括原創(chuàng)技術(shù)干貨,以及技術(shù)工作的心得分享。掃描下方關(guān)注。
總結(jié)
以上是生活随笔為你收集整理的公钥加密以及混合加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Selenium爬取淘宝商品信息
- 下一篇: 这个需求的目的是什么?