Rsa
何時使用公鑰加密/何時使用對稱加密?
我在“密碼學與網路安全”一書中讀到,幾乎已普遍接受公鑰密碼學僅限於用於密鑰管理(這是否意味著使用公鑰密碼系統安全地發送對稱密鑰?)和簽名應用。
- 如果這些真的是我們使用公鑰加密的唯一情況,有人可以解釋一下嗎?
- 此外,這是否意味著公鑰密碼學不能單獨用於發送消息,並且對於這樣的範例,我們同時使用公鑰密碼系統和對稱密碼系統來發送例如電子郵件?
- 此外,有人可以給我一些例子,說明我們在哪裡使用公鑰密碼學以及我們在哪裡使用對稱密碼學?
我知道這是很多問題,但我在網上和書中做了很多搜尋,似乎無法找到我問題的確切答案。
目前已知的公鑰方案的最大缺點之一是性能:它很慢。例如,現在使用 RSA 時,必須使用範圍內的數字 $ \left[2^{2047},2^{4096}\right] $ , 這真的很大。
您已經正確理解:通常,使用隨機“數據加密密鑰”快速使用對稱算法加密數據,然後使用公鑰密碼術加密此密鑰。
例如, PGP就是這種情況。因此,當您發送使用 PGP 加密的郵件時,大多數情況下,實際數據使用 AES 加密,而只有 AES 密鑰使用 RSA 加密。
這通常被稱為“混合密碼系統”。
大多數時候,對稱加密有效地用於加密數據。這適用於所有目前的方案和協議:TLS、PGP 等都依賴於數據的快速對稱加密。非對稱加密(也稱為公鑰)通常僅用於加密小數據包,如密鑰。
公鑰密碼學的另一個用途是用於簽名,但是當您簽署消息時,您將簽署的實際上是消息的雜湊,因此您受益於雜湊函式的速度和緩慢的公鑰操作是僅在雜湊上執行。
這也意味著公鑰加密是當今每個人在網際網路上使用的證書的核心,因為這些是公鑰簽名的一種特殊情況,以建立“信任鏈”。
最後,您提到了密鑰管理,並且公鑰加密也用於執行密鑰交換,以便在雙方都擁有彼此的公鑰的情況下,通過不受信任的通道在雙方之間建立公共密鑰。然後,該公共密鑰通常用於使用對稱算法在同一通道上加密數據。