當前位置:外匯行情大全網 - 信用卡套現 - 徹底理解非對稱加密(公鑰)

徹底理解非對稱加密(公鑰)

在上壹篇文章中,詳細解釋了對稱加密和算法原理。那麽對稱加密是否萬無壹失呢?對稱加密有壹個天然的缺點,即加密器和解密器必須持有相同的密鑰。可以提問:既然需要加密解密,當然雙方都要持有密鑰。有什麽問題?別急,我們繼續往下看。

我們先來看壹個例子。小明和小紅想要通信,但是他們不想讓別人知道通信的內容,所以他們決定使用對稱加密。他們做了以下工作:

1.雙方同意加密和解密算法。

2.雙方確定密鑰。

3.該密鑰用於通信期間的加密和解密。

這是壹個看似完美的方案嗎?但是壹步到位有漏洞!

問題出在第二步:雙方確定關鍵!

妳肯定會問,雙方都不確定關鍵。加密和解密呢?

問題是如何讓雙方都知道確定的關鍵。鑰匙也可以在傳輸過程中被盜!這就引出了壹個經典問題:密鑰分發問題。

小明和小紅在約定鑰匙的過程中壹定會多次溝通鑰匙是什麽。即使是壹次性單方面確定,也要發給對方。加密是為了保證信息傳輸的安全,但密鑰本身就是信息。如何保證密鑰傳輸的安全性?有必要再次加密密鑰的傳輸嗎?這不是死循環嗎?

妳是不是在想,即使密鑰被盜,也沒有加密算法保證信息安全?如果妳真的有這個想法,那就趕緊回顧壹下上壹篇關於杜絕安全隱患的文章吧。任何算法最終都會被破譯,不能靠算法的復雜程度來保證安全。

小明和小紅現在進退兩難。如果他們要加密,就得互相發送密鑰,但是發送密鑰並不能保證密鑰的安全性。他們應該怎麽做?

密鑰分發問題有以下解決方案:

非對稱加密也稱為公鑰加密。我更喜歡非對稱加密這個術語。因為可以體現為加密和解密使用不同的密鑰。

在對稱加密中,我們只需要壹個密鑰,雙方同時持有。不對稱加密需要四個密鑰。每個通信方準備壹對公鑰和私鑰。公鑰是公開的,由信息接收者提供給信息發送者。公鑰用於加密信息。私鑰由信息接收者保留並用於解密。由於公鑰是公開的,所以不存在保密問題。換句話說,非對稱加密不存在密鑰分發問題!妳看,這是解決密鑰分發問題的完美方案嗎?

回到剛才的例子,肖明和夏虹經過研究發現非對稱加密可以解決他們通信的安全問題,於是他們做了以下事情:

1,小明確定了自己的私鑰mPrivateKey和公鑰mPublicKey。我留著私鑰,把公鑰mPublicKey發給小紅。

2.小紅已經確定了她的私鑰hPrivateKey和公鑰hPublicKey。我保留了私鑰,把公鑰hPublicKey發給了小明。

3.小明發送消息“周六早上10 soho t 1樓下見”,用小紅的公鑰hPublicKey加密。

4.小紅收到消息後用她的私鑰hPrivateKey解密。然後回復“收到,不要遲到”,用小明的公鑰mPublicKey加密。

5.收到消息後,小明用自己的私鑰mPrivateKey解密。看完信息,我心裏想:提醒我不要遲到?妳總是遲到,不是嗎?

以上過程是壹個完整的請求和響應。通過這個例子,我們整理出壹個信息傳輸的非對稱加密和解密過程:

1.消息接收者準備公鑰和私鑰。

2.私鑰接收者保存它,公鑰被釋放給消息發送者。

3.消息發送方使用接收方的公鑰加密消息。

4.消息接收方用自己的私鑰解密消息。

公鑰只能用於數據加密。用公鑰加密的數據只能用相應的私鑰解密。這是不對稱加密的核心概念。

讓我用壹個更生動的例子來幫助妳理解。

我有壹個像下面這樣的郵箱。

因為我只想收到我期望與之通信的朋友的來信。於是我給投遞口加了壹把鎖,我可以把這把鎖的密鑰(公鑰)復制N份,發給我想收信的人。只有這些人可以用這把鑰匙打開郵件端口,把信放進去。

相信通過這個例子,可以幫助妳徹底理解公鑰和私鑰的概念。

RSA是使用最廣泛的非對稱加密算法。在本節中,我們將簡要介紹RSA加密和解密的過程。

RSA加密和解密算法實際上非常簡單:

密文=明文^E模n

明文=密文^D模式n

RSA算法不像對稱加密那樣通過玩魔方來擾亂原始信息。RSA加密和解密使用相同的數字n..公鑰是public,也就是說n也是public。所以私鑰也可以認為只是d。

我們來看看n,e,d是怎麽計算的。

1,求n

首先妳需要準備兩個非常大的質數a和b,太小容易破解,太大太貴。我們可以使用565438+2048 bit的號碼,對於安全性要求高的可以使用1024,2048 bit的號碼。

N=a*b

2.找到l

l只是生成密鑰對過程中產生的壹個數,不參與加密和解密。l是(a-1)和(b-1)的最小公倍數。

3.查找E(公鑰)

有兩個限制:

1 & lt;E & lt

e和l的最大公約數是1。

第壹個條件限制了E的取值範圍,第二個條件是保證有壹個D對應E進行解密。

4.查找D(私鑰)

d也有兩個限制:

1 & lt;D & ltL

E*D mod L = 1

第二個條件保證密文解密時能成功獲得原始明文。

因為原理涉及到很多數學知識,這裏就不贅述了。我們只需要知道這個過程中用到的這些數字和公式。這是理解RSA安全性的基礎。

由於n在公鑰中是公開的,所以只需要破解d就可以解密明文。

在實際使用場景中,素數A和B壹般至少是1024 bit,所以n的長度在2048 bit以上。D的長度接近n,以現在計算機的計算能力,暴力破解D是非常困難的。

公鑰是公開的,也就是說E和N都是公開的,那麽D可以從E和N推斷出來嗎?

E*D mod L = 1

如果要計算D,首先需要計算L。l是(a-1)和(b-1)的最小公倍數。想知道l,需要知道質數a和b,破解者不知道這兩個質數,只能暴力破解。這個和直接破解D壹樣難。

等等,n是公的,n = a * b,那麽n可以分解成質因數得到a和b嗎?好在人類還沒有找到高效的素因子分解方法,所以可以認為做素因子分解是非常困難的。

但是,壹旦有壹天發現了快速素數分解的算法,RSA就不再安全了。

可見大素數A和B在rs A算法中的重要性。保證了A和B的安全性,也就保證了RSA算法的安全性。a和b由偽隨機發生器產生。壹旦偽隨機數發生器的算法有問題,隨機性差或者可以推斷。那麽RSA的安全性將被徹底摧毀。

中間人攻擊是指雙方渠道上攻擊者的混合。他假裝是接收者的發送者和廣播的接收者。

當他聽說雙方都發送了公鑰後,他偷偷篡改了消息,把自己的公鑰發給了雙方。然後我保存了雙方的公鑰。

經過這種操作後,雙方都使用攻擊者的公鑰進行加密,因此後續的所有通信在被攔截後都可以被攻擊者解密,信息內容可以被篡改,然後用接收者的公鑰加密。接收者將得到被篡改的信息。實際上,發送方和接收方都是在和中間人溝通。

為了防止中間人,我們需要使用公鑰證書。這壹部分將在下壹篇文章中介紹。

與對稱加密相比,非對稱加密具有以下特點:

1,非對稱加密解決了密碼分發問題。

2.非對稱加密的處理速度只有對稱加密的百分之幾。它不適合加密長消息。

3.新應用程序不應使用1024位的RSA。至少需要2048位RSA。

RSA解決了密碼分發的問題,但效率較低。所以有時候根據需求,對稱和非對稱加密可能會壹起使用,形成壹個混合的密碼體制,各有各的優勢。

最後提醒壹下,RSA也可以用於簽名,但是要註意是私鑰簽名和公鑰驗證。發送方用自己的私鑰簽名,接收方用對方的公鑰校驗。關於簽名,下面的文章會詳細解釋。

  • 上一篇:淘寶商家如何開通信用卡收款功能?
  • 下一篇:網上辦信用卡可信嗎?辦理信用卡需要註意什麽
  • copyright 2024外匯行情大全網