密鑰分為兩種:對稱密鑰與非對稱密鑰
對稱密鑰加密,又稱私鑰加密,即信息的發送方和接收方用一個密鑰去加密和解密數據。它的最大優勢是加/解密速度快,適合于對大數據量進行加密,但密鑰管理困難。
非對稱密鑰加密系統,又稱公鑰密鑰加密。它需要使用一對密鑰來分別完成加密和解密操作,一個公開發布,即公開密鑰,另一個由用戶自己秘密保存,即私用密鑰。信息發送者用公開密鑰去加密,而信息接收者則用私用密鑰去解密。公鑰機制靈活,但加密和解密速度卻比對稱密鑰加密慢得多。
對于普通的對稱密碼學,加密運算與解密運算使用同樣的密鑰。通常,使用的對稱加密算法比較簡便高效,密鑰簡短,破譯極其困難,由于系統的保密性主要取決于密鑰的安全性,所以,在公開的計算機網絡上安全地傳送和保管密鑰是一個嚴峻的問題。正是由于對稱密碼學中雙方都使用相同的密鑰,因此無法實現數據簽名和不可否認性等功能。
20 世紀 70 年代以來,一些學者提出了公開密鑰體制,即運用單向函數的數學原理,以實現加、解密密鑰的分離。加密密鑰是公開的,解密密鑰是保密的。這種新的密碼體制,引起了密碼學界的廣泛注意和探討不像普通的對稱密碼學中采用相同的密鑰加密、解密數據,非對稱密鑰加密
技術采用一對匹配的密鑰進行加密、解密,具有兩個密鑰,一個是公鑰一個是私鑰,它們具有這種性質:每把密鑰執行一種對數據的單向處理,每把的功能恰恰與另一把相反,一把用于加密時,則另一把就用于解密。用公鑰加密的文件只能用私鑰解密,而私鑰加密的文件只能用公鑰解密。 公共密鑰是由其主人加以公開的,而私人密鑰必須保密存放。為發送一份保密報文,發送者必須使用接收者的公共密鑰對數據進行加密,一旦加密,只有接收方用其私人密鑰才能加以解密。
相反地,用戶也能用自己私人密鑰對數據加以處理。換句話說,密鑰對的工作是可以任選方向的。這提供了"數字簽名"的基礎,如果要一個用戶用自己的私人密鑰對數據進行了處理,別人可以用他提供的公共密鑰對數據加以處理。由于僅僅擁有者本人知道私人密鑰,這種被處理過的報文就形成了一種電子簽名----一種別人無法產生的文件。 數字證書中包含了公共密鑰信息,從而確認了擁有密鑰對的用戶的身份。
簡單的公共密鑰例子可以用素數表示,將素數相乘的算法作為公鑰,將所得的乘積分解成原來的素數的算法就是私鑰,加密就是將想要傳遞的信息在編碼時加入素數,編碼之后傳送給收信人,任何人收到此信息后,若沒有此收信人所擁有的私鑰,則解密的過程中(實為尋找素數的過程),將會因為找素數的過程(分解質因數)過久而無法解讀信息。
對稱加密
采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。需要對加密和解密使用相同密鑰的加密算法。由于其速度,對稱性加密通常在消息發送方需要加密大量數據時使用。對稱性加密也稱為密鑰加密。所謂對稱,就是采用這種加密方法的雙方使用方式用同樣的密鑰進行加密和解密。密鑰實際上是一種算法,通信發送方使用這種算法加密數據,接收方再以
同樣的算法解密數據。因此對稱式加密本身不是安全的。
常用的對稱加密有:
DES、 IDEA、 RC2、 RC4、 SKIPJACK、 RC5、 AES 算法等采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。
非對稱加密
1976 年,美國學者 Dime 和 Henman 為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是“公開密鑰系統”。相對于“對稱加密算法”這種方法也叫做“非對稱加密算法”。與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰( publickey)和私有密鑰( privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數
據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費時間長、速度慢,它不適合于對文件加密而只適用于對少量數據進行加密。
經典的非對稱加密算法如 RSA 算法等安全性都相當高.
非對稱加密的典型應用是數字簽名。
采用雙鑰密碼系統的加密方法,在一個過程中使用兩個密鑰,一個用于加密,另一個用于解密,這種加密方法稱為非對稱加密,也稱為公鑰加密,因為其中一個密鑰是公開的(另一個則需要保密)。
公鑰
公鑰是與私鑰算法一起使用的密鑰對的非秘密一半。公鑰通常用于加密會話密鑰、驗證數字簽名,或加密可以用相應的私鑰解密的數據。公鑰和私鑰是通過一種算法得到的一個密鑰對(即一個公鑰和一個私鑰)其中的一個向外界公開,稱為公鑰;另一個自己保留,稱為私鑰。通過這種算法得到的密鑰對能保證在世界范圍內是唯一的。使用這個密鑰對的時候,如果用其中一個密鑰加密一段數據,必須用另一個密鑰解密。比如用公鑰加密數據就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功。
1976 年。當時在美國斯坦福大學的迪菲( Diffie)和赫爾曼(Hellman)兩人提出了公開密鑰密碼的新思想(論文"New Direction in Cryptography"),不僅加密算法本身可以公開,甚至加密用的密鑰也可以公開。但這并不意味著保密程度的降低。因為如果加密密鑰和解密密鑰不一樣。而將解密密鑰保密就可以。這就是著名的公鑰密碼體制。也稱作非對稱密碼體制。不同于對稱性的 密碼學, 在于其加密鑰匙只適用于單一用戶。
鑰匙的兩部分
一把私有的鑰匙,僅有用戶才擁有。一把公開的鑰匙,可公開發行配送,只要有要求即取得。每支鑰匙產生一個被使用來改變屬性的功能。私有的鑰匙產生一個私有改變屬性的功能,而公開的鑰匙 產生一個 公開改變屬性的功能。這些功能是反向相關的,例如,如果一個功能是用來加密消息,另外一個功能則被用來解密消息。不論此改變屬性功能的次序為何皆不重要。公開的鑰匙系統的優勢是兩個用戶能安全的溝通而不需交換秘密鑰匙。例如,假設一個送信者需要傳送一個信息給一個收信者,而信息的秘密性是必要的, 送信者以收信者的公開的鑰匙來加密,而僅有收信者的私有的鑰匙能夠對此信息解密。公開的鑰匙密碼學是非常適合于提供認證,完整和不能否認的服務, 所有的這些服務既是我們所知的數字簽名。
RSA 公鑰系統
RSA 公鑰系統發明于新思想提出后一年在麻省理工學院,里維斯特(RonaldRivest)、沙米爾(Adi Shamir)和阿德勒曼(Len Adleman)提出第一個較完善的公鑰密碼體制——RSA 體制,由三位發明人的姓氏首字母命名。這是一種建立在大數因子分解基礎上的算法。它是第一個成熟的、迄今為止理論上最成功的公鑰密碼體制。它的安全性是基于數論中的大整數因子分解。該問題是數論中的一個困難問題,至今沒有有效的算法,(即大整數因子分解不能在多項式時間內完成)這使得該體制具有較高的保密性。并且得到了廣泛應用。不為人知的是,早在 1970 年的秘密研究中,英國情報機構 GCHQ 的數學家 James H. Ellis 便已發明非對稱鑰匙密碼學,而且Diffie-Hellman 與 RSA 都曾被 Malcolm J. Williamson 與 Clifford Cocks 分別發明于前。這兩個最早的公鑰系統提供優良的加密法基礎,因而被大量使用。其他公鑰系統還有 Cramer-Shoup、 Elgamal、以及橢圓曲線密碼學等等。這些事件直到 1997 年歷史文件解密的時候才為大眾所知。
私鑰
與公鑰算法一起使用的密鑰對的秘密一半。
1,公鑰和私鑰成對出現
2,公開的密鑰叫公鑰,只有自己知道的叫私鑰
3,用公鑰加密的數據只有對應的私鑰可以解密
4,用私鑰加密的數據只有對應的公鑰可以解密
5,如果可以用公鑰解密,則必然是對應的私鑰加的密
6,如果可以用私鑰解密,則必然是對應的公鑰加的密