轉 wiki
https://zh.wikipedia.org/zh-cn/公開密鑰加密
公開密鑰密碼學
(英語:Public-key cryptography),也稱為非對稱式密碼學(英語:asymmetric cryptography),是密碼學的一種算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密,另一個則用作解密。使用其中一個密鑰把明文加密后所得的密文,只能用相對應的另一個密鑰才能解密得到原本的明文;甚至連最初用來加密的密鑰也不能用作解密。由于加密和解密需要兩個不同的密鑰,故被稱為非對稱加密;不同于加密和解密都使用同一個密鑰的對稱加密。雖然兩個密鑰在數學上相關,但如果知道了其中一個,并不能憑此計算出另外一個;因此其中一個可以公開,稱為公鑰,任意向外發布;不公開的密鑰為私鑰,必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供,也不會透露給被信任的要通信的另一方。
加密
非對稱加密往往需要密碼學安全偽隨機數生成器的協助來產生一對密鑰,其中一個可以隨便公開,稱為公鑰;另一個不公開,稱為私鑰,必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供。
如果任何人使用公鑰加密明文,得到的密文可以透過不安全的途徑(如網絡)發送,只有對應的私鑰持有者才可以解密得到明文;其他人即使從網絡上竊取到密文及加密公鑰,也無法(在數以年計的合理時間內)解密得出明文。典型例子是在網絡銀行或購物網站上,因為客戶需要輸入敏感消息,瀏覽器連接時使用網站服務器提供的公鑰加密并上傳數據,可保證只有信任的網站服務器才能解密得知消息,不必擔心敏感個人信息因為在網絡上傳送而被竊取。
在現實世界上可作比擬的例子是,一個傳統保管箱,開門和關門都是使用同一條鑰匙,這是對稱加密;而一個公開的郵箱,投遞口是任何人都可以寄信進去的,這可視為公鑰;而只有信箱主人擁有鑰匙可以打開信箱,這就視為私鑰。
加密過程
在非對稱加密中,愛麗絲使用鮑伯的公鑰加密明文,得到密文,而只有鮑伯因為持有私鑰才可以解密,得到明文。
在數學上,讓我們使用典型的愛麗絲與鮑伯假設來解釋:
https://zh.wikipedia.org/zh-cn/公開密鑰加密
與對稱密碼學的比較
對稱密鑰加密牽涉到密鑰管理的問題,尤其是密鑰交換,它需要作者和讀者在通信之前先透過另一個安全的渠道交換共享的密鑰,才可以安全地把密文透過不安全的渠道發送;對稱密鑰一旦被竊,其所作的加密將即時失效;而在互聯網,如果通信雙方分隔異地而素未謀面,則對稱加密事先所需要的“安全渠道”變得不可行;非對稱加密則容許加密公鑰隨便散布,解密的私鑰不發往任何用戶,只在單方保管;如此,即使公鑰在網上被截獲,如果沒有與其匹配的私鑰,也無法解密,極為適合在互聯網上使用。
另一方面,公鑰解密的特性可以形成數字簽名,使數據和文件受到保護并可信賴;如果公鑰透過數字證書認證機構簽授成為電子證書,更可作為數字身份的認證,這都是對稱密鑰加密無法實現的。
不過,公鑰加密在在計算上相當復雜,性能欠佳、遠遠不比對稱加密;因此,在一般實際情況下,往往通過公鑰加密來隨機創建臨時的對稱秘鑰,亦即對話鍵,然后才通過對稱加密來傳輸大量、主體的數據。