加密算法在信息安全中的應用

在信息傳輸?shù)倪^程中會發(fā)生截取,中斷,篡改和偽造四種威脅,使得信息的完整性,可用性和保密性嚴重下降,影響著我們的信息安全。而加密技術是對付這四種安全威脅的有力武器。好的加密技術能隱藏自己的身份使得他不被中斷和截取,若加上必要的驗證信息則可以校驗其是否被篡改和偽造。所以在互聯(lián)網(wǎng)背景下,對加密技術的需求更加迫切,要求更加高,其作用也越來越重要。本文先介紹加密技術對四種安全威脅的低檔,在介紹目前流行的加密算法的應用。

加密幾乎就是針對截斷攻擊而產(chǎn)生的。截斷攻擊就是指一些未授權(quán)方獲得了訪問資源的權(quán)利,通俗來講就是被人竊取。而此時的信息如果是加過密的,其表現(xiàn)就是不能識別的亂碼,那么竊取者若不能正確解密,那么該信息對他來說是無用的,于是起到了保護作用。任何一種加密技術都具有偽裝自己的特點,所以對付截斷攻擊是必然的。

中斷攻擊是指系統(tǒng)資源的丟失,不可得或不可用。這類例子包括惡意的硬件破壞,程序或數(shù)據(jù)文件被刪除或操作系統(tǒng)文件管理器出現(xiàn)故障,導致不能找到所需的磁盤文件。這時如果對系統(tǒng)資源或權(quán)限獲得設置了加密則可以有效抵擋此類攻擊,首先,資源的加密使得他被保護,不能被外人發(fā)現(xiàn),即使攻擊者已經(jīng)知道,他若不能獲得訪問和刪除的權(quán)限,對他來說依然是沒有用的。

如果未授權(quán)方不僅訪問了資源而且修改了其內(nèi)容,這稱為篡改。有時候篡改對于攻擊者本身也許是無意義的,但是會影響到接收者得到的信息的正確性。通過加密有時可以達到校驗的作用,比如在發(fā)一條信息的同時附上其校驗信息比如HASHCODE,既可以達到偽裝的效果又可以防止被篡改或者傳輸過程中隨機產(chǎn)生的差錯。

偽造是指未授權(quán)放在計算機系統(tǒng)中創(chuàng)建假冒的對象。入侵者想網(wǎng)絡通信系統(tǒng)中插入偽造的事物處理或想數(shù)據(jù)庫中添加記錄。使用合適的加密也可以防止偽造,一方面加密可以保護權(quán)限,使得入侵者不能得到修改的權(quán)限。另一方面,可以通過加密起到證書的作用以確保信息來源的正確性,如RSA公鑰算法就具有電子證書的作用。

加密技術的使用由來已久,最早的有凱撒加密,它是替換加密法的代表,這種加密也可以起到偽裝作用防止截斷入侵。他歷時千年卻經(jīng)久不衰,他的特點是加密解密過程都非常簡單快捷,只要把原文的字母固定替換為另一個字母就可以產(chǎn)生一堆看不懂的東西了,這種加密增加了密文的混亂性。因為這種加密太簡單,所以破解也是很簡單的。由于替換加密屬于流加密,所以流的順序是沒有被破壞的,這就為破解提供了突破口,另外由于某一字母固定替換為另一字母,還可以通過某一字母的統(tǒng)計規(guī)律來破解,比如字母E在英文中出現(xiàn)的頻率是0.1268,那么分析密文中某一字母出現(xiàn)頻率與這個值非常接近那么可以斷定該字母是E的替換。雖然這種替換加密安全性不高,但作為簡單快捷的加密方式也是有一定使用價值的。

另一種稱為置換加密,這種加密有別于流加密的不同之處就是破壞了流的順序?qū)υ倪M行了重排,這種加密有時也成為塊加密,它增加了密文的擴散性。這對防止破解與篡改是很有幫助的,如果密文被插入了新的東西那么會破壞整個譯文的正確性,而塊加密很難通過統(tǒng)計方法得到破解??旒用茈m然具有很好的擴散性,但是加密過程卻非常繁瑣,而且會出現(xiàn)錯誤擴散的可能,如果傳輸產(chǎn)生一個錯誤那么可能整個譯文都受到影響。這種加密方式不宜用于大規(guī)模的數(shù)據(jù)。

再來介紹兩種加密思想,對稱加密與非對稱加密。對稱加密是指加密的密碼與解密密碼是相同的如DES,非對稱加密是指加密與解密使用的密碼是不同的如RSA,這兩種密碼方法各有自己的用途,是當前計算機信息傳輸中使用最多的兩種方法。

DES算法是替換加密與置換加密復雜而細致的結(jié)合。它的算法的健壯性源自于對這兩種加密技術的重復使用,一個緊接著一個,一共進行16次循環(huán)。透過16次反復替換和置換追蹤單獨的一位,其復雜性使普通的研究者最多能發(fā)現(xiàn)算法的一些一般性質(zhì)。DES 使用一個56 位的密鑰以及附加的 8 位奇偶校驗位,產(chǎn)生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術,其中將加密的文本塊分成兩半。使用子密鑰對其中一半應用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES 使用 16 個循環(huán),使用異或,置換,代換,移位操作四種基本運算。替換為它提供了混亂性,置換為它提供了擴散性,可見DES是一種非常好的加密算法。由于它的加密與解密使用的是同一個密碼,這樣使得密碼的保護尤為重要,一旦密碼在交換過程中被竊取,那么一切將是沒有意義的。

RSA公鑰算法可以稱得上非對稱加密中的代表。它用來加密與解密的密鑰是不同的,所以可以拿出一個作為公鑰,得到公鑰的一方可以讀取私鑰持有者發(fā)出的信息,卻不能偽造私鑰者的信息,私鑰者也可以接讀取公鑰持有者發(fā)出的信息而不被他人所截取。這就避免了DES算法中密碼交換的危險,因為不需要交換私鑰就可以完成信息的安全傳輸,公鑰是公開的,任何人可以獲得,不用擔心被非法者持有。從安全角度來看這種算法可以說是登峰造極了,但在實際應用中的缺點也是不能忽視的,其一就是這對公密鑰的產(chǎn)生,這需要大整數(shù)的計算和大素數(shù)的判別,這是一套非常復雜的算法,另外其加密過程也比DES慢好幾倍,因此這種算法通常只用來加密小規(guī)模數(shù)據(jù)。一個很好的想法就是用來交換DES的密碼,用接收密碼者的公鑰來加密,這樣的密碼只有持有私鑰才能讀取,這樣就把DES密碼交換的安全性提升到了RSA的水平,然后再用DES加密大量的信息,這樣的結(jié)合就有了安全性與快捷性的共同提高。RSA另一個廣泛的應用就是數(shù)字簽名。由于公鑰只能解碼私鑰加密的信息,所以私鑰的持有者發(fā)出的信息具有不可偽造的特點,于是私鑰持有者可以為自己設定數(shù)字簽名,使用私鑰加密自己的身份信息并公開同時公開公鑰,這樣大家知道了公鑰就可以讀取自己的身份信息,如果偽造者不能得到私鑰那么就不能用公鑰解開,而私鑰是不能向任何人透露的。

另外有一種重要加密稱為單向加密,即只能加密,不能解密,最典型的就是HASH編碼。如果使用同一原文加密得到同一密文,而得到密文卻很難得到正確的原文,另一方面可能同一密文有多個原文與之對應,于是這種加密方式多用來做比較驗證,如驗證數(shù)據(jù)傳輸過程中有沒有發(fā)生錯誤,可以在發(fā)送時附上其HASH編碼,在接收時再做一次,比較兩次HASH值是否一致,如果原文一致,那么密文也一定相同。還會用于驗證密碼,通常數(shù)據(jù)庫中保存的密碼是很有可能被他人看到的,但如果使用了單向加密即使看到也很難推出真正的密碼。而在密碼驗證時求取其HASH值與數(shù)據(jù)庫比較如果相同則可以通過驗證。

可以看到形形色色的密碼技術為我們安全傳輸信息提供了保障,不同的密碼方式也對應著不同的應用,使用正確的加密方式對我們安全快捷的信息傳輸具有深遠意義,因此學好密碼學是非常有用的,我們也期待更好的密碼技術可以產(chǎn)生,以便更好的為信息安全服務。