[摘 要]本文闡述了現(xiàn)在網(wǎng)絡(luò)中的黑客病毒的入侵,人們需要防范和保護數(shù)據(jù),并從加密的概念和加密的方法兩個方面闡述了加密技術(shù)。
[關(guān)鍵詞]黑客程序 加密技術(shù) 加密算法 密鑰
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全也就成為當今網(wǎng)絡(luò)社會的焦點中的焦點,幾乎沒有人不在談?wù)摼W(wǎng)絡(luò)上的安全問題,病毒、黑客程序、郵件炸彈、遠程偵聽等都無不讓人膽戰(zhàn)心驚?,F(xiàn)代的電腦加密技術(shù)就是適應了網(wǎng)絡(luò)安全的需要而應運產(chǎn)生的,它為我們進行一般的電子商務(wù)活動提供了安全保障,如在網(wǎng)絡(luò)中進行文件傳輸、電子郵件往來和進行合同文本的簽署等。
數(shù)據(jù)加密的基本過程就是對原來為明文的文件或數(shù)據(jù)按某種算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達到保護數(shù)據(jù)不被非法人竊取、閱讀的目的。
加密技術(shù)通常分為兩大類:“對稱式”和“非對稱式”。
對稱式加密就是加密和解密使用同一個密鑰,通常稱之為“Session Key”。這種加密技術(shù)目前被廣泛采用,如美國政府所采用的DES加密標準就是一種典型的“對稱式”加密法,它的Session Key長度為56Bits。
非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,它們兩個必需配對使用,否則不能打開加密文件。這里的“公鑰”是指可以對外公布的,“私鑰”則不能,只能由持有人一個人知道。它的優(yōu)越性就在這里,因為對稱式的加密方法如果是在網(wǎng)絡(luò)上傳輸加密文件就很難把密鑰告訴對方,不管用什么方法都有可能被別竊聽到。而非對稱式的加密方法有兩個密鑰,且其中的“公鑰”是可以公開的,也就不怕別人知道,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。
幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數(shù)據(jù)段(總是一個字節(jié))對應著“置換表”中的一個偏移量,偏移量所對應的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86 cpu系列就由一個指令“xlat”在硬件級完成這樣的工作。這種加密算法比較簡單,加密解密速度都很快,但是一旦這個“置換表”被對方獲得,那這個加密方案就完全被識破了。更進一步講,這種加密算法對于黑客破譯來講是相當直接的,只要找到一個“置換表”就可以了。這種方法在計算機出現(xiàn)之前就已經(jīng)被廣泛的使用。
對這種“置換表”方式的一個改進就是使用2個或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。這時,破譯變得更加困難,因為黑客必須正確地做幾次變換。通過使用更多的“置換表”,并且按偽隨機的方式使用每個表,這種改進的加密方法已經(jīng)變得很難破譯。比如,我們可以對所有的偶數(shù)位置的數(shù)據(jù)使用a表,對所有的奇數(shù)位置使用b表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切地知道用了兩張表。
與使用“置換表”相類似,“變換數(shù)據(jù)位置”也在計算機加密中使用。但是,這需要更多的執(zhí)行時間。從輸入中讀入明文放到一個buffer中,再在buffer中對他們重排序,然后按這個順序再輸出。解密程序按相反的順序還原數(shù)據(jù)。這種方法總是和一些別的加密算法混合使用,這就使得破譯變的特別的困難,幾乎有些不可能了。例如,有這樣一個詞,變換起字母的順序,slient 可以變?yōu)閘isten,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經(jīng)變化了。
但是,還有一種更好的加密算法,只有計算機可以做,就是字/字節(jié)循環(huán)移位和xor操作。如果我們把一個字或字節(jié)在一個數(shù)據(jù)流內(nèi)做循環(huán)移位,使用多個或變化的方向(左移或右移),就可以迅速的產(chǎn)生一個加密的數(shù)據(jù)流。這種方法是很好的,破譯它就更加困難。而且,更進一步的是,如果再使用xor操作,按位做異或操作,就使破譯密碼更加困難了。如果再使用偽隨機的方法,這涉及到要產(chǎn)生一系列的數(shù)字,我們可以使用fibbonaci數(shù)列。對數(shù)列所產(chǎn)生的數(shù)做模運算,得到一個結(jié)果,然后循環(huán)移位這個結(jié)果的次數(shù),將使破譯次密碼變的幾乎不可能。但是,使用fibbonaci數(shù)列這種偽隨機的方式所產(chǎn)生的密碼對我們的解密程序來講是非常容易的。
在一些情況下,我們想知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產(chǎn)生一些校驗碼,并且把這些校驗碼插入到數(shù)據(jù)流中。循環(huán)冗余校驗是一種典型的校驗數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來產(chǎn)生一個16位或32位的校驗碼,這使得丟失一位或兩個位的錯誤一定會導致校驗和出錯。這種方式很久以來就應用于文件的傳輸,例如xmodem-crc,這是方法已經(jīng)成為標準,而且有詳細的文檔。但是,基于標準crc算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。
總之,網(wǎng)絡(luò)安全是一個綜合性的課題,涉及技術(shù)、管理、使用等許多方面,一種技術(shù)只能解決一方面的問題,而不是萬能的。因此只有嚴格的保密政策、明晰的安全策略以及高素質(zhì)的網(wǎng)絡(luò)管理人才,才能保證信息的完整性和確證性。
參考文獻
[1]岳麗華.數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程[M].北京:機械工業(yè)出版社,2003.