公開密鑰加密是什么意思?
公開密鑰密碼學(xué)(Public-key cryptography)也稱非對(duì)稱式密碼學(xué)(Asymmetric cryptography)是密碼學(xué)的一種算法,它需要兩個(gè)密鑰,一個(gè)是公開密鑰,另一個(gè)是私有密鑰;公鑰用作加密,私鑰則用作解密。使用公鑰把明文加密后所得的密文,只能用相對(duì)應(yīng)的私鑰才能解密并得到原本的明文,最初用來加密的公鑰不能用作解密。

由于加密和解密需要兩個(gè)不同的密鑰,故被稱為非對(duì)稱加密;不同于加密和解密都使用同一個(gè)密鑰的對(duì)稱加密。公鑰可以公開,可任意向外發(fā)布;私鑰不可以公開,必須由用戶自行嚴(yán)格秘密保管,絕不透過任何途徑向任何人提供,也不會(huì)透露給被信任的要通信的另一方。
基于公開密鑰加密的特性,它還能提供數(shù)字簽名的功能,使電子文件可以得到如同在紙本文件上親筆簽署的效果。
公開密鑰基礎(chǔ)建設(shè)透過信任數(shù)字證書認(rèn)證機(jī)構(gòu)的根證書、及其使用公開密鑰加密作數(shù)字簽名核發(fā)的公開密鑰認(rèn)證,形成信任鏈架構(gòu),已在 TLS 實(shí)現(xiàn)并在萬維網(wǎng)的 HTTP 以 HTTPS、在電子郵件的 SMTP 以 SMTPS 或 STARTTLS 引入。
另一方面,信任網(wǎng)絡(luò)則采用去中心化的概念,取代了依賴數(shù)字證書認(rèn)證機(jī)構(gòu)的公鑰基礎(chǔ)設(shè)施,因?yàn)槊恳粡堧娮幼C書在信任鏈中最終只由一個(gè)根證書授權(quán)信任,信任網(wǎng)絡(luò)的公鑰則可以累積多個(gè)用戶的信任。PGP 就是其中一個(gè)例子。
加密
非對(duì)稱加密往往需要密碼學(xué)安全偽隨機(jī)數(shù)生成器的協(xié)助來產(chǎn)生一對(duì)密鑰,其中一個(gè)可以隨便公開,稱為公鑰;另一個(gè)不公開,稱為私鑰,必須由用戶自行嚴(yán)格秘密保管,絕不透過任何途徑向任何人提供。
如果任何人使用公鑰加密明文,得到的密文可以透過不安全的途徑(如網(wǎng)絡(luò))發(fā)送,只有對(duì)應(yīng)的私鑰持有者才可以解密得到明文;其他人即使從網(wǎng)絡(luò)上竊取到密文及加密公鑰,也無法(在數(shù)以年計(jì)的合理時(shí)間內(nèi))解密得出明文。典型例子是在網(wǎng)絡(luò)銀行或購物網(wǎng)站上,因?yàn)榭蛻粜枰斎朊舾邢?,瀏覽器連接時(shí)使用網(wǎng)站服務(wù)器提供的公鑰加密并上傳數(shù)據(jù),可保證只有信任的網(wǎng)站服務(wù)器才能解密得知消息,不必?fù)?dān)心敏感個(gè)人信息因?yàn)樵诰W(wǎng)絡(luò)上發(fā)送而被竊取。
在現(xiàn)實(shí)世界上可作比擬的例子是,一個(gè)傳統(tǒng)保管箱,開門和關(guān)門都是使用同一條鑰匙,這是對(duì)稱加密;而一個(gè)公開的郵箱,投遞口是任何人都可以寄信進(jìn)去的,這可視為公鑰;而只有信箱主人擁有鑰匙可以打開信箱,這就視為私鑰。
數(shù)字簽名
相反,如果某一用戶使用他的私鑰加密明文,任何人都可以用該用戶的公鑰解密密文;由于私鑰只由該用戶自己持有,故可以肯定該文件必定出自于該用戶;公眾可以驗(yàn)證該用戶發(fā)布的數(shù)據(jù)或文件是否完整、中途有否曾被篡改,接收者可信賴這些數(shù)據(jù)、文件確實(shí)來自于該用戶,這被稱作數(shù)字簽名,大部分國家已經(jīng)立法承認(rèn)數(shù)字簽名擁有等同傳統(tǒng)親筆簽名的法律效力。公鑰可以透過數(shù)字證書認(rèn)證機(jī)構(gòu)簽授的電子證書形式公布,接收者透過信任鏈形成一套完整的公開密鑰基礎(chǔ)建設(shè)。例如,從網(wǎng)上下載的安裝程序,大部分都帶有程序制作者的數(shù)字簽名,可以證明該程序的確是該作者(公司)發(fā)布的而不是第三方偽造的且未被篡改過(身份認(rèn)證/驗(yàn)證)。而現(xiàn)時(shí)的網(wǎng)上銀行或購物網(wǎng)站都會(huì)使用 HTTPS,避免溝通過程中的信息泄露。

與對(duì)稱密碼學(xué)的比較
對(duì)稱密碼是指在加密和解密時(shí)使用同一個(gè)密鑰的方式,公鑰密碼則是指在加密和解密時(shí)使用不同密鑰的方式。
對(duì)稱密鑰加密牽涉到密鑰管理的問題,尤其是密鑰交換,它需要通信雙方在通信之前先透過另一個(gè)安全的渠道交換共享的密鑰,才可以安全地把密文透過不安全的渠道發(fā)送;對(duì)稱密鑰一旦被竊,其所作的加密將即時(shí)失效;而在互聯(lián)網(wǎng),如果通信雙方分隔異地而素未謀面,則對(duì)稱加密事先所需要的“安全渠道”變得不可行;非對(duì)稱加密則容許加密公鑰隨便散布,解密的私鑰不發(fā)往任何用戶,只在單方保管;如此,即使公鑰在網(wǎng)上被截獲,如果沒有與其匹配的私鑰,也無法解密,極為適合在互聯(lián)網(wǎng)上使用。
另一方面,公鑰解密的特性可以形成數(shù)字簽名,使數(shù)據(jù)和文件受到保護(hù)并可信賴;如果公鑰透過數(shù)字證書認(rèn)證機(jī)構(gòu)簽授成為電子證書,更可作為數(shù)字身份的認(rèn)證,這都是對(duì)稱密鑰加密無法實(shí)現(xiàn)的。
不過,公鑰加密在在計(jì)算上相當(dāng)復(fù)雜,性能欠佳、遠(yuǎn)遠(yuǎn)不比對(duì)稱加密;因此,在一般實(shí)際情況下,往往通過公鑰加密來隨機(jī)創(chuàng)建臨時(shí)的對(duì)稱秘鑰,亦即對(duì)話鍵,然后才通過對(duì)稱加密來傳輸大量、主體的數(shù)據(jù)。