1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是“公開密鑰系統”。相對於“對稱加密算法”這種方法也叫做“非對稱加密算法”。
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
貿易方利用該非對稱加密算法實現機密信息交換的基本過程是:貿易方甲生成一對密鑰並將其中的一把作為公用密鑰向其他貿易方公開;得到該公用密鑰的貿易方乙使用該密鑰對機密信息進行加密後再發送給貿易方甲;貿易方甲再用自己保存的另一把專用密鑰對加密後的信息進行解密。貿易方甲只能用其專用密鑰解密由其公用密鑰加密後的任何信息。
非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費時間長、速度慢,它不適合於對文件加密而只適用於對少量數據進行加密
在微軟的Window NT的安全性體系結構中,公開密鑰系統主要用於對私有密鑰的加密過程。每個用戶如果想要對數據進行加密,都需要生成一對自己的密鑰對(keypair)。密鑰對中的公開密鑰和非對稱加密解密算法是公開的,但私有密鑰則應該由密鑰的主人妥善保管。
使用公開密鑰對文件進行加密傳輸的實際過程包括四步:
(1)發送方生成一個自己的私有密鑰並用接收方的公開密鑰對自己的私有密鑰進行加密,然後通過網絡傳輸到接收方;
(2)發送方對需要傳輸的文件用自己的私有密鑰進行加密,然後通過網絡把加密後的文件傳輸到接收方;
(3)接收方用自己的公開密鑰進行解密後得到發送方的私有密鑰;
(4)接受方用發送方的私有密鑰對文件進行解密得到文件的明文形式。
因為只有接收方才擁有自己的公開密鑰,所以即使其他人得到了經過加密的發送方的私有密鑰,也因為無法進行解密而保證了私有密鑰的安全性,從而也保證了傳輸文件的安全性。實際上,上述在文件傳輸過程中實現了兩個加密解密過程:文件本身的加密和解密與私有密鑰的加密解密,這分別通過私有密鑰和公開密鑰來實現。