機密性算法
爲防止安全威脅,在計算機網絡中須要提供許多基本的安全服務,其中最基本的一項服務就是機密性。安全
機密性(Confidentiality):確保計算機系統中的信息或網絡中傳輸的信息不會泄露給非受權用戶。網絡
機密性與密碼學ide
咱們經過計算機傳輸數據時,若是沒法防止他人竊聽,能夠利用密碼學技術將發送的數據轉換成任何不知道如何作逆變換的人都不可理解的形式,從而保證數據的機密性。加密
這種變換稱爲加密(Encryption),加密後的數據稱爲密文(Ciphertext),而加密前的數據稱爲明文(Plaintext),接收方經過某種逆變換將密文從新變換回原來的明文稱爲解密(Decryption)。計算機網絡
密碼學家發現,加密和解密的過程能夠用一個密鑰(Key) 做爲參數,而且加密和解密的過程能夠公開,只有密鑰須要保密。即只有知道密鑰的人才能解密密文,而任何人,即便知道加密和解密算法也沒法解密密文。ip
採用這種方式的緣由是,若是你依靠密碼算法保密,一旦密碼算法泄露就必須放棄該算法。這意味着要頻繁的修改密碼算法,而開發一個密碼算法的難度是很大的。另外,密鑰空間很大,用密鑰將密碼算法參數化,同一個算法能夠爲大量用戶提供加密服務。開發
加密與解密過程get
待加密的明文X用加密算法E和加密密鑰KA獲得密文Y。it
利用解密算法D和解密密鑰KB可解出明文X。
這裏的加密密鑰和解密密鑰能夠相同,也能夠不一樣,取決於採用的是對稱密鑰密碼體制仍是公開密鑰密碼體制。
對稱密鑰密碼體制
數據加密和解密用的是同一個密鑰。在通訊前,雙方都須要知道這個密鑰,所以如何傳送密鑰也是一個很關鍵的問題,若是經過網絡傳送,極可能會被截獲。而且密鑰一旦泄露,加密數據將受到威脅,所以必須以絕對安全的方式傳送密鑰才能保證安全。
密鑰的傳輸方法能夠經過很是可靠的信使攜帶密鑰分發給互相通訊的各用戶。這種方法稱爲網外分發。但隨着用戶的增多和通訊量的增大,密鑰更換頻繁(密鑰必須按期更換才能保證安全可靠),派信使的問題將再也不適用。
所以經常使用的對稱密鑰分發方式是設立密鑰分發中心(KDC),KDC是一個你們都信任的機構,其任務就是給須要進行祕密通訊的用戶臨時分發一個會話密鑰。
假設A須要把一份明文M發送給B。通訊雙方已經有了密鑰KA。
A經過密鑰KA對明文M使用加密算法E獲得密文Y
B也用密鑰KA經過解密算法D對密文Y進行解密獲得明文M
主要的加密算法有:
公開密鑰密碼體制(非對稱密鑰密碼體制)
使用不一樣的密鑰對數據進行加密和解密。每一個通訊方都有一對密鑰,一個公鑰,能夠公佈出來,一個私鑰,須要保密。其餘想要給該方發送數據,均可以用公鑰進行加密,而後發送。
公鑰只能用於加密,沒法用於解密,所以公鑰能夠公開出來。全部的解密都依賴於接收方本身的私鑰,只要保護好這個私鑰,即便別人知道你的公鑰並獲取了你的密文也沒法對密文解密。
在這裏,本身的私鑰本身知道就行,別人無需知道,所以能夠避免傳輸泄露的問題。
公鑰算法有如下特性:
此外加密和解密運算能夠對調,即
Q&A
Q1: 如何保證這個公佈的公鑰不是僞造的?
A1: 經過一個可信的中介機構。對於公開密鑰密碼體制,認證中心(Certification Authority,CA) 來實現公鑰的簽發和認證。。
主要的加密算法: