加密算法
透明加密,顧名思義有兩個要素:“透明”和“加密”。那么是“如何實現(xiàn)透明”的,但如果要問究竟如何完成加密工作,那就必須涉及到加密算法和密鑰
通常所說的加密算法類別有兩類:對稱算法和非對稱算法。所謂對稱算法是指加密運算和解密運算都采用同一個密鑰。而非對稱算法則相反,加密運算和解密運算采用兩個不同但配對的密鑰,其中一個稱為“公鑰”,另一個稱為“私鑰”。在非對稱算法中,要么采用公鑰加密而私鑰解密,要么采用私鑰加密而公鑰解密。一般來說,非對稱算法的可靠性更強。但是非對稱加密也有一些局限性。首先,報文的發(fā)送方和接收方在事先必須各自掌握一對密鑰中的其中之一。也就是說,要么由發(fā)報方生成一對密鑰,并將其中的公鑰(所謂公鑰,即“可以公開的密鑰”)事先告知收報方;要么由收報方來生成一對密鑰并將其中的公鑰事先告知發(fā)報方。其次,非對稱算法的運算量較大,信息處理的時間相對要長。由于這些特性,非對稱算法通常用于安全級別較高的單位,而且通常是用于通訊加密。
由于透明加密的特性是要求內(nèi)部機器都能夠打開公司的所有密文,所以目前透明加密系統(tǒng)只能夠采用對稱算法。對稱算法中,也有一些非常的經(jīng)典的算法。算法本身是公開的。但是算法公開并不意味著可靠性降低。非法用戶即便獲取了密文,也知道相應的算法,但是只要他不知道密鑰也無法破解。例如DES算法就是這樣。二戰(zhàn)結(jié)束以前,人們很重視算法本身的保密,因為當時并沒有出現(xiàn)具備這種特性的對稱加密算法。但是二戰(zhàn)后,人們幾乎放棄了算法本身的保密,而將重點放在了算法的改良、改進以及密鑰的保密上了。
值得說明的是,對稱算法還可以分為兩類:數(shù)據(jù)流加密和數(shù)據(jù)塊加密。前者的運算更快一些,實現(xiàn)起來也更簡單一些;但是后者的可靠性更高一些,實現(xiàn)起來也相對要復雜一點。上面所說的DES算法,就是數(shù)據(jù)塊加密算法。
加密的可靠性,除了算法之外,關鍵就是密鑰。在同樣的算法的前提下,密鑰越長,可靠性越強。而且正如前文所述,當今人們已經(jīng)不再關注算法的保密,甚至大量地采用公開算法。這個時候,密鑰就非常關鍵了。一般來說,密鑰長度低于64位是不可取的。對于民用而言,128位和256位的長度都是足夠的。需要注意的是,密鑰長度越長,運算量越大,消耗的計算資源(包括機器性能和時間)就越多。
密鑰的保管也是關鍵問題。這包括密鑰的生成、傳送和備份。密鑰的生成,多數(shù)加密系統(tǒng)都解決得比較好。通常的做法是根據(jù)全球唯一的硬件特征碼來生成全球唯一的密鑰。這個硬件特征碼,有的是指客戶的硬件(例如服務器),有的是廠商提供的硬件(例如Ukey)。這都是可行的。需要注意的是,廠商是否也掌握客戶的密鑰?如果掌握,那么客戶就需要考慮采購合同中的保密條款。密鑰的傳送和備份,是密鑰保管的重點環(huán)節(jié)。一般而言,密鑰的傳送和備份,都需要進行加密,也就是說對密鑰本身進行加密。