2010-05-18 75 views
6

我對RSA的理解是,Alice可以創建一個公鑰和一個私鑰組合,然後將公鑰發送給Bob。然後,Bob可以使用公鑰對某些內容進行加密,Alice將使用公鑰和私鑰組合對其進行解密。公鑰加密如何工作

但是,Alice如何加密某些內容才能發送給Bob?鮑勃如何解密它?我問,因爲我很好奇,當我登錄我的銀行網站時,我的銀行向我發送了諸如我的在線報表等數據。我的瀏覽器如何解密這些信息?我沒有私鑰。

回答

3

簡單,你需要一個密鑰。

SSL/TLS通過在連接設置期間創建對稱會話密鑰來解決此問題。公鑰密碼術用於建立會話密鑰,然後用於雙向數據通信。 Read more about TLS

4

Alice will use the public and private key combo to decrypt it

愛麗絲只想用她的私鑰解密。

However, how can Alice encrypt something to be sent over to Bob? How would Bob decrypt it?

愛麗絲需要Bob的公鑰送點東西給他。 通常,公鑰加密用於身份驗證,不可否認(如簽名)和對稱密鑰的分發(加密/解密長消息的速度更快)。

0

在這種情況下,Alice將使用Bob的公鑰對數據進行加密,然後Bob將用他的私鑰對其解密。

基本上,公鑰加密數據和私鑰解密數據。由於每個用戶都有公鑰和私鑰,因此可以將數據安全地發送給其他任何用戶。

0

但是,Alice如何加密某些內容才能發送給Bob?鮑勃如何解密它?我問,因爲我很好奇,當我登錄我的銀行網站時,我的銀行向我發送了諸如我的在線報表等數據。我的瀏覽器如何解密這些信息?我沒有私鑰。

這是你錯了的地方;你有一個私鑰。作爲握手過程的一部分,每一方都會生成兩個密鑰:公鑰和私鑰。客戶端將其公鑰發送給服務器,服務器將使用它來加密發送給客戶端的所有數據。同樣,服務器生成兩個密鑰並將其公鑰發送給客戶端,客戶端將使用它來加密發送到服務器的所有數據。

在很多情況下,非對稱密鑰算法僅用於交換另一個密鑰,該密鑰用於對稱算法。

7

基本上,程序是:

  1. 客戶端連接到服務器並請求服務器的證書。證書包含公鑰和服務器身份信息。
  2. 假設客戶端對服務器的身份感到滿意,它會生成一個隨機數P並使用服務器的公鑰對其進行加密。
  3. 只有服務器可以解密P(使用私鑰 - 不與任何人共享),因此當客戶端將加密的隨機數發送到服務器時,服務器會對其解密。
  4. 客戶端和服務器都使用P產生在對稱加密算法中使用的對稱密鑰,因爲只有在客戶端和服務器知道用來生成密鑰P值的安全知識。
0

如果您連接到銀行的網站,它會處理大量的密碼問題。最重要的是,您使用銀行的公鑰將一條信息發送給銀行,因爲在每個SSL(https)連接服務器發送給客戶端時,它都是公鑰打包成一個證書。

證書和全球PKI的使用很重要。你要確定的是,如果你向銀行提供你的銀行卡,那另一邊是你的銀行,而不是其他人。這將得到解決,因爲在每臺計算機上都有少量知名組織(如VeriSign)的公鑰,而銀行不僅向您發送其服務器公鑰,而且還向您發送證書。證書是VeriSign簽署的一條消息,例如「這個公鑰真的來自銀行XYZ」。因爲您擁有VeriSign的公鑰,您可以先驗證該銀行的服務器證書是否正確。所以你可以肯定,那你真的與你的銀行溝通。

2

在一般筆記我努力去理解公鑰加密與PKI的其他元素,如數字簽名和證書,同時對微軟C#認證準備沿着相當長一段時間。

我在cgi.com上遇到了一個簡明而詳細的PDF格式的解釋。我知道它回到了好老愛麗絲和鮑勃!但它真的用圖表和筆記清理了我的東西,最後還有一些令人髮指的問題。絕對推薦它。

參觀http://www.cgi.com/files/white-papers/cgi_whpr_35_pki_e.pdf