? ? ? ? 在先前我寫的密碼學體制文章中談到,現代密碼學分為兩大體制,介紹了一些有關對稱密碼體制諸如流密碼和分組密碼的內容。本文的主要內容則切換到公鑰密碼體制(又稱非對稱密碼體制),簡述了公鑰密碼體制的基本思想和應用方向。
一、傳統對稱加密體制的缺陷
????????對稱加密體制的缺陷確實是推動公鑰密碼體制發展的重要因素。讓我們詳細探討這些缺陷:
(1)密鑰管理困難
????????在對稱加密中,通信雙方必須共享相同的密鑰。如果N個人的團隊,用戶要兩兩之間進行安全通信,每個人都要保存另外N-1個人的密鑰。整個團隊共需要個不同的密鑰,因為每一對用戶都需要一個獨立的密鑰。隨著網絡規模的增長,密鑰的數量將呈指數級增長,這給密鑰的管理帶來了極大的挑戰。
(2)密碼分發困難
????????我的加密目的就是為了將消息安全的送達對方,但傳統對稱加密體制卻要求,我實現需要通過一條安全通道共享密鑰,如果我能安全的送達,那為什么還需要加密呢?即:用戶之間如何在安全通信前共享秘密?
????????這實際上形成了一個悖論:為了安全通信,我們需要密鑰;但要安全地分發密鑰,我們又需要一個安全的通信渠道,而這正是我們希望通過加密來實現的。
(3)不支持開放系統
????????如果兩個人沒有預先建立關系,他們之間就沒辦法進行安全通信來共享密鑰。在開放的網絡環境中,如互聯網,用戶之間通常沒有預先建立的信任關系或通信渠道。對稱加密要求通信雙方在交互之前必須共享一個密鑰,這在現實世界中往往是不可能的,特別是在大規模的、動態變化的網絡中。缺乏一種機制來允許陌生人之間安全地建立通信,限制了對稱加密在開放系統中的應用。
二、公鑰加密體制的基本思想
(1)主要思想
????????在現實生活中,任何人都能通過一把公用的鑰匙把門鎖上,但只有特殊的人使用自己私人的鑰匙才能把門打開。
? ? ? ? ?公鑰加密正是借鑒了這種思想。有一些問題呈現出“非對稱性”,正向計算簡單,逆向計算復雜。
例如:大整數分解問題和離散對數問題
(2)基本概念
每個用戶生成一個密鑰對:一個公鑰pk和一個對應的私鑰sk
- 公鑰將在系統內被公開
- 私鑰由用戶本人安全保管
私鑰由用戶本人使用,而公鑰則由系統重其他用戶使用。
(3)基本思想概念圖
????????Bob想將消息傳遞給Alice,Bob先要拿Alice的公鑰加密明文,再將加密后的密文傳遞給Alice,Alice用自己的密鑰對密文進行解密得到Bob傳來的消息。
(4)公鑰密碼體制的優勢
????????公鑰密碼體制通過引入公鑰和私鑰的概念,解決了傳統對稱加密體制的問題:
-
密鑰管理:每個用戶只需保管好自己的私鑰,而公鑰可以公開,無需像對稱加密那樣進行密鑰的分發和管理。
-
密鑰分發:在公鑰密碼體制中,密鑰分發變得簡單,因為接收方只需將自己的公鑰發布出去,發送方使用此公鑰加密消息即可,無需擔心密鑰在傳輸過程中的安全性。
-
支持開放系統:公鑰密碼體制允許用戶在沒有預先建立信任關系的情況下進行安全通信。任何想要與某人通信的人都可以從公開渠道獲取該人的公鑰,而無需擔心密鑰的安全性。
三、公鑰體制的應用方向
(1)加密通信【加密模型】
? ? ? ? 在上面公鑰加密的基本思想中,已經詳細介紹了公鑰密碼體制在加密通信中的使用。這里強調一個細節:加密通信是用公鑰加密,私鑰解密。
(2)數字簽名【認證模型】
????????公鑰密碼體制不僅限于公鑰加密模型,還涉及到了另一個重要的模型——認證模型。在公鑰密碼學中,認證模型主要用于驗證信息的完整性和來源的真實性,其中數字簽名技術是最為關鍵的組成部分之一。
????????數字簽名是基于公鑰密碼體制的一種認證手段,它允許發送者對消息進行簽名,以證明該消息的來源和完整性。我會專門寫一篇文章來介紹數字簽名,在這里就不展開了。這里只強調一個細節:數字簽名是用私鑰加密,公鑰解密。