李子涵
摘 要:現(xiàn)在隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的飛速發(fā)展,大量的信息可以直接通過網(wǎng)絡(luò)傳輸,如網(wǎng)上銀行的轉(zhuǎn)賬、支付、賬戶管理,以及電子郵件傳遞雙方的信息等,這些過程如果沒有數(shù)據(jù)加密技術(shù),那就存在著信息被竊取的風(fēng)險,造成個人或企業(yè)的損失。
關(guān)鍵詞:數(shù)據(jù)加密;密鑰;網(wǎng)絡(luò)安全
數(shù)據(jù)加密技術(shù)是為網(wǎng)絡(luò)安全的需要而應(yīng)運(yùn)產(chǎn)生的,是保護(hù)信息安全的一種方式?,F(xiàn)在隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的飛速發(fā)展,大量的信息可以直接通過網(wǎng)絡(luò)傳輸,如網(wǎng)上銀行的轉(zhuǎn)賬、支付、賬戶管理,以及電子郵件傳遞雙方的信息等,這些過程如果沒有數(shù)據(jù)加密技術(shù),那就存在著信息被竊取的風(fēng)險,造成個人或企業(yè)的損失。
一、數(shù)據(jù)加密的基本概念和一般原理
1、基本概念。數(shù)據(jù)加密的基本過程就是對原來為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱為“密文”。其只能在輸入相應(yīng)的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來數(shù)據(jù)的過程。
2、是未加密的報文,也稱明文,用P表示;二是加密后的報文,也稱密文,用Y 表示;三是加密解密算法E,D;四是加密解密的密鑰Ke,Kd。發(fā)送方用加密密鑰,通過加密設(shè)備或算法,將信息加密后發(fā)送出去。接收方在收到密文后,用解密密鑰將密文解密,恢復(fù)為明文。其數(shù)學(xué)表達(dá)式可以寫成:P=Dkd(Kd,Eke(Ke,P))。如果傳輸中有人竊取,也只能得到無法理解的密文,從而對信息起到保護(hù)作用。
一個完善的加密技術(shù)應(yīng)該滿足以下5個基本性能要求:一是必須提供高強(qiáng)度的安全性。二是具有高強(qiáng)度的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同時又便于理解、掌握和推廣應(yīng)用。三是安全性應(yīng)不依賴于算法的保密,其加密的安全性僅以加密密鑰的保密為基礎(chǔ)。四是必須適用于不同的用戶和不同的場合,加解密變換必須對所有密鑰均有效。五是理想的加密算法應(yīng)該對系統(tǒng)性能幾乎沒有負(fù)面影響。
二、數(shù)據(jù)加密技術(shù)的分類
目前使用的數(shù)據(jù)加密技術(shù)在密碼學(xué)上分為2類: 對稱密碼加密體制和公鑰密碼加密體制。
1、對稱密碼加密體制。該體制對應(yīng)的是對稱密碼算法。對稱密碼算法主要用于保證數(shù)據(jù)的機(jī)密性, 通信雙方在加密/解密過程中使用它們共享的單一密鑰。在對稱密碼加密體制中, 對信息的加密和解密都使用相同的鑰, 也就是說一把鑰匙開一把鎖。這種加密方法可簡化加密處理過程, 信息交換雙方都不必彼此研究和交換專用的加密算法。如果在交換階段私有密鑰未曾泄露, 那么機(jī)密性和報文完整性就可以得到保證。
2、公鑰密碼加密體制。該體制對應(yīng)的是公開密鑰算法, 也叫非對稱算法。公開密鑰算法廣泛應(yīng)用于身份認(rèn)證、數(shù)字簽名等信息交換領(lǐng)域, 通信雙方在加密/ 解密過程中使用不同的密鑰。在公鑰密碼加密體制中, 對信息的加密和解密使用不同的密鑰, 密鑰被分解為一對( 即公開密鑰和私有密鑰) 。這對密鑰中任何一把都可以作為公開密鑰( 加密密鑰) 通過非保密方式向他人公開, 而另一把作為私有密鑰( 解密密鑰) 加以保存。公開密鑰用于加密, 私有密鑰用于解密,私有密鑰只能由生成密鑰的交換方掌握, 公開密鑰可廣泛公布, 但它只對應(yīng)于生成密鑰的交換方。這種加密方法可以使通信雙方無須事先交換密鑰就可以建立安全通信。
三、密鑰的管理
密鑰既然要求保密,這就涉及到密鑰的管理問題,管理不好,密鑰同樣可能被無意識地泄露,并不是有了密鑰就高枕無憂,任何保密也只是相對的,是有時效的。要管理好密鑰我們還要注意以下幾個方面。
1、密鑰的使用要注意時效和次數(shù)。如果用戶可以一次又一次地使用同樣密鑰與別人交換信息,那么密鑰也同其它任何密碼一樣存在著一定的安全性,雖然說用戶的私鑰是不對外公開的,但是也很難保證私鑰長期的保密性,很難保證長期以來不被泄露。如果某人偶然地知道了用戶的密鑰,那么用戶曾經(jīng)和另一個人交換的每一條消息都不再是保密的了。另外,使用一個特定密鑰加密的信息越多,提供給竊聽者的材料也就越多,從某種意義上來講也就越不安全了。因此,一般強(qiáng)調(diào)僅將一個對話密鑰用于一條信息中或一次對話中,或者建立一種按時更換密鑰的機(jī)制以減小密鑰暴露的可能性。
2、多密鑰的管理。假設(shè)在某機(jī)構(gòu)中有100 個人,如果他們?nèi)我鈨扇酥g可以進(jìn)行秘密對話,那么總共需要多少密鑰呢?每個人需要知道多少密鑰呢?也許很容易得出答案,如果任何兩個人之間要不同的密鑰,則總共需要4950 個密鑰,而且每個人應(yīng)記住99 個密鑰。如果機(jī)構(gòu)的人數(shù)是1000、10000 人或更多,這種辦法就顯然過于愚蠢了, 管理密鑰將是一件可怕的事情。Kerberos提供了一種解決這個問題的較好方案,它是由MIT 發(fā)明的,使保密密鑰的管理和分發(fā)變得十分容易,但這種方法本身還存在一定的缺點(diǎn)。為能在因特網(wǎng)上提供一個實(shí)用的解決方案,Kerberos 建立了一個安全的、可信任的密鑰分發(fā)中心(Key Distribution Center,KDC),每個用戶只要知道一個和KDC 進(jìn)行會話的密鑰就可以了,而不需要知道成百上千個不同的密鑰。
四、數(shù)據(jù)加密的實(shí)現(xiàn)
使用數(shù)據(jù)庫安全保密中間件對數(shù)據(jù)庫進(jìn)行加密是最簡便直接的方法。主要是通過系統(tǒng)中加密、DBMS(數(shù)據(jù)庫管理系統(tǒng))內(nèi)核層( 服務(wù)器端) 加密和DBMS 外層( 客戶端) 加密。
在系統(tǒng)中加密, 在系統(tǒng)中無法辨認(rèn)數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系, 將數(shù)據(jù)先在內(nèi)存中進(jìn)行加密, 然后文件系統(tǒng)把每次加密后的內(nèi)存數(shù)據(jù)寫入到數(shù)據(jù)庫文件中去, 讀入時再逆方面進(jìn)行解密, 這種加密方法相對簡單, 只要妥善管理密鑰就可以了。缺點(diǎn)是對數(shù)據(jù)庫的讀寫都比較麻煩, 每次都要進(jìn)行加解密的工作, 對程序的編寫和讀寫數(shù)據(jù)庫的速度都會有影響。
在DBMS內(nèi)核層實(shí)現(xiàn)加密需要對數(shù)據(jù)庫管理系統(tǒng)本身進(jìn)行操作。這種加密是指數(shù)據(jù)在物理存取之前完成加解密工作。這種加密方式的優(yōu)點(diǎn)是加密功能強(qiáng), 并且加密功能幾乎不會影響DBMS的功能, 可以實(shí)現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合。其缺點(diǎn)是加密運(yùn)算在服務(wù)器端進(jìn)行, 加重了服務(wù)器的負(fù)載, 而且DBMS和加密器之間的接口需要DBMS開發(fā)商的支持。
在DBMS外層實(shí)現(xiàn)加密的好處是不會加重數(shù)據(jù)庫服務(wù)器的負(fù)載, 并且可實(shí)現(xiàn)網(wǎng)上傳輸, 加密比較實(shí)際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具, 根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加解密處理。采用這種加密方式進(jìn)行加密, 加解密運(yùn)算可在客戶端進(jìn)行, 它的優(yōu)點(diǎn)是不會加重數(shù)據(jù)庫服務(wù)器的負(fù)載并且可以實(shí)現(xiàn)網(wǎng)上傳輸?shù)募用埽?缺點(diǎn)是加密功能會受到一些限制, 與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。
數(shù)據(jù)庫加密系統(tǒng)分成兩個功能獨(dú)立的主要部件:一個是加密字典管理程序, 另一個是數(shù)據(jù)庫加解密引擎。數(shù)據(jù)庫加密系統(tǒng)將用戶對數(shù)據(jù)庫信息具體的加密要求以及基礎(chǔ)信息保存在加密字典中, 通過調(diào)用數(shù)據(jù)加解密引擎實(shí)現(xiàn)對數(shù)據(jù)庫表的加密、解密及數(shù)據(jù)轉(zhuǎn)換等功能。數(shù)據(jù)庫信息的加解密處理是在后臺完成的, 對數(shù)據(jù)庫服務(wù)器是透明的。
按以上方式實(shí)現(xiàn)的數(shù)據(jù)庫加密系統(tǒng)具有很多優(yōu)點(diǎn): 首先, 系統(tǒng)對數(shù)據(jù)庫的最終用戶是完全透明的, 管理員可以根據(jù)需要進(jìn)行明文和密文的轉(zhuǎn)換工作; 其次, 加密系統(tǒng)完全獨(dú)立于數(shù)據(jù)庫應(yīng)用系統(tǒng), 無須改動數(shù)據(jù)庫應(yīng)用系統(tǒng)就能實(shí)現(xiàn)數(shù)據(jù)加密功能; 第三, 加解密處理在客戶端進(jìn)行, 不會影響數(shù)據(jù)庫服務(wù)器的效率。
數(shù)據(jù)庫加解密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,位于應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間, 負(fù)責(zé)在后臺完成數(shù)據(jù)庫信息的加解密處理, 對應(yīng)用開發(fā)人員和操作人員來說是透明的。數(shù)據(jù)加解密引擎沒有操作界面, 在需要時由操作系統(tǒng)自動加載并駐留在內(nèi)存中, 通過內(nèi)部接口與加密字典管理程序和用戶應(yīng)用程序通信。數(shù)據(jù)庫加解密引擎由三大模塊組成:加解密處理模塊、用戶接口模塊和數(shù)據(jù)庫接口模塊。
參考文獻(xiàn):
【1】周明;淺談計算機(jī)安全技術(shù)之?dāng)?shù)據(jù)加密技術(shù)[J];科協(xié)論壇;2010年的10期
【2】許熠;孫一戈;楊歡馳;淺談計算機(jī)信息數(shù)據(jù)的安全與加密技術(shù)[J];科技研究;2018年第09期