密鑰分為兩種:對稱密鑰與非對稱密鑰
兩種密鑰
根據密碼算法所使用的加密密鑰和解密密鑰是否相同、能否由加密過程推導出解密過程(或者由解密過程推導出加密過程),可將密碼體製分為對稱密碼體製(也叫作單鑰密碼體製、秘密密鑰密碼體製、對稱密鑰密碼體製)和非對稱密碼體製(也叫作雙鑰密碼體製、公開密鑰密碼體製、非對稱密鑰密碼體製)。
對稱密鑰加密,又稱私鑰加密或會話密鑰加密算法,即信息的發送方和接收方使用同一個密鑰去加密和解密數據。它的最大優勢是加/解密速度快,適合於對大數據量進行加密,但密鑰管理困難。
非對稱密鑰加密係統,又稱公鑰密鑰加密。它需要使用不同的密鑰來分別完成加密和解密操作,一個公開發布,即公開密鑰,另一個由用戶自己秘密保存,即私用密鑰。信息發送者用公開密鑰去加密,而信息接收者則用私用密鑰去解密。公鑰機製靈活,但加密和解密速度卻比對稱密鑰加密慢得多。
所以在實際的應用中,人們通常將兩者結合在一起使用,例如,對稱密鑰加密係統用於存儲大量數據信息,而公開密鑰加密係統則用於加密密鑰。
對於普通的對稱密碼學,加密運算與解密運算使用同樣的密鑰。通常,使用的對稱加密算法比較簡便高效,密鑰簡短,破譯極其困難,由於係統的保密性主要取決於密鑰的安全性,所以,在公開的計算機網絡上安全地傳送和保管密鑰是一個嚴峻的問題。正是由於對稱密碼學中雙方都使用相同的密鑰,因此無法實現數據簽名和不可否認性等功能。
20世紀70年代以來,一些學者提出了公開密鑰體製,即運用單向函數的數學原理,以實現加、解密密鑰的分離。加密密鑰是公開的,解密密鑰是保密的。這種新的密碼體製,引起了密碼學界的廣泛注意和探討。
不像普通的對稱密碼學中采用相同的密鑰加密、解密數據,非對稱密鑰加密技術采用一對匹配的密鑰進行加密、解密,具有兩個密鑰,一個是公鑰一個是私鑰,它們具有這種性質:每把密鑰執行一種對數據的單向處理,每把的功能恰恰與另一把相反,一把用於加密時,則另一把就用於解密。用公鑰加密的文件隻能用私鑰解密,而私鑰加密的文件隻能用公鑰解密。 公共密鑰是由其主人加以公開的,而私人密鑰必須保密存放。為發送一份保密報文,發送者必須使用接收者的公共密鑰對數據進行加密,一旦加密,隻有接收方用其私人密鑰才能加以解密。 相反地,用戶也能用自己私人密鑰對數據加以處理。換句話說,密鑰對的工作是可以任選方向的。這提供了數字簽名的基礎,如果要一個用戶用自己的私人密鑰對數據進行了處理,別人可以用他提供的公共密鑰對數據加以處理。由於僅僅擁有者本人知道私人密鑰,這種被處理過的報文就形成了一種電子簽名----一種別人無法產生的文件。 數字證書中包含了公共密鑰信息,從而確認了擁有密鑰對的用戶的身份。
簡單的公共密鑰例子可以用素數表示,將素數相乘的算法作為公鑰,將所得的乘積分解成原來的素數的算法就是私鑰,加密就是將想要傳遞的信息在編碼時加入素數,編碼之後傳送給收信人,任何人收到此信息後,若沒有此收信人所擁有的私鑰,則解密的過程中(實為尋找素數的過程),將會因為找素數的過程(分解質因數)過久而無法解讀信息。