數據加密(或稱爲密碼學)是一種用於對信息進行保密處理的科學。加密的目的是爲了防止信息被不該該獲取、不容許獲取的人獲得。加密算法(密碼學)在歷史上產生了深遠的政治、社會和道德影響。算法
數據加密如同數據壓縮同樣,是信息論的另外一種產物。這是數學領域的一個分支。安全
數據加密必定是有兩個過程:第一個過程,咱們稱之爲加密,在這個過程當中將可識別的數據(或稱爲明文)加密爲沒法識別的形式(也就是密文);第二個過程與第一個過程相反,將密文解密轉換回普通的原始明文。服務器
密碼背後的主要思想是:若是容許讀取數據,則從密文轉換爲明文應該是很容易的,相反,若是不容許讀取,則不可能實現從密文到明文的轉換。網絡
密碼使用一種稱爲「密鑰」的特殊信息,用於保證安全性。一旦用密鑰加密數據,只有知道正確密碼的人才能解密數據。事實上,對於任何好的加密算法,其關鍵屬性就是圍繞密鑰的安全性。更進一步說,好密碼的安全性不依賴於把密碼的算法保密。這就相似於,儘管人人都知道保險箱是如何工做的,可是沒有密碼就沒法打開保險箱的大門。加密
現代的加密算法,從如何使用的角度能夠分爲兩類:計算機網絡
一類是對稱加密,另外一類就是非對稱加密。blog
所謂對稱加密,是指加密和解密使用同一個密鑰,一般稱之爲「Session Key 」,也就是說任何知道密鑰的人便可以加密也能夠解密數據。文檔
而在非對稱的算法中,用來加密和解密的密鑰是不一樣的。用來加密的密鑰稱爲公鑰,也就是說能夠公開的密鑰,而用來解密的密鑰稱爲私鑰,這個是不能公開的,只有解密人才會持有。公鑰和私鑰協同工做,只有特定的私鑰才能解開由特定的公鑰加密過的數據。所以,只知道如何加密的數據並不意味着就能夠成功解密,必須擁有正確的私鑰才行。這樣也很好地避免了密鑰的傳輸安全性問題。數學
DES是一種典型的對稱加密算法。目前認爲DES是相對安全的,DES是和種效率較高的加密算法,甚至能夠直接在軟件中實現。io
RSA是最流行的公鑰加密算法之一。RSA是被認爲很是安全的加密算法,可是處理速度比DES要慢得多。所以,它經常使用來加密較小規模的數據。軟件實現的RSA已經開始用於計算機網絡加密,用來完成密鑰分配、數字簽名等功能。
電子郵件
電子郵件中的數據一般在非安全的通道上進行傳輸,好比Internet。Internet的普遍使用也使得加密帶有敏感信息的電子郵件成爲近些年來很是重要的應用。
電子貨幣
金融交易的一種手段,要使得交易能夠獲得認證可是沒法跟蹤。交易必須獲得認證,這樣參與交易的雙方纔不會被騙。交易必須是沒法跟蹤的,這樣每一方的隱私就能夠獲得保護。然而,在實踐中,若是沒有特殊的協議來協同支持的話,這些需求是很難實現的。
認證服務器
認證服務器解決處於網絡中不一樣端點處的兩個團體間的安全性問題。兩個團體間必須可以交換密鑰,而在同一時刻又必須確保它們在與正確的對方通話,而不是一個冒充者。認證服務器經過各類依賴加密機制的協議來實現這些功能。
數字簽名
用來驗證數據的歸屬者的一種方法,很像在文檔上簽字同樣。一種生成數字簽名的方法是使用公鑰加密。用戶A採用他的私鑰加密一段數據,並將其發給B。B認爲這個數據是來自A的,所以使用A的公鑰對數據進行解密驗證,若是可以成功解密數據,則能夠確定數據是來自於A的。
智能卡
一種不型的卡片密鑰。其中包含微型計算機以及少許的存儲空間。通常來講,智能卡多用於各類形式的信貸上。其餘類型的智能卡用於接入計算機或者建築物的門禁等。智能卡採用加密技術,由於經過它能夠完成某些重要的操做,好比修改銀行的帳戶以及進入安全環境。
*有興趣的朋友能夠關注,近期將更新DES算法和RSA算法的具體實現與分析,以及應用舉例。