時間:2023-04-26 16:03:13
序論:在您撰寫數(shù)據(jù)加密技術(shù)論文時,參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
一:數(shù)據(jù)加密方法
在傳統(tǒng)上,我們有幾種方法來加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實現(xiàn),但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對系統(tǒng)性能幾乎沒有影響,并且還可以帶來其他內(nèi)在的優(yōu)點。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對一些敏感數(shù)據(jù)是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。
幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數(shù)據(jù)段(總是一個字節(jié))對應(yīng)著“置換表”中的一個偏移量,偏移量所對應(yīng)的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86cpu系列就有一個指令‘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ù)做模運算(例如模3),得到一個結(jié)果,然后循環(huán)移位這個結(jié)果的次數(shù),將使破譯次密碼變的幾乎不可能!但是,使用fibbonaci數(shù)列這種偽隨機的方式所產(chǎn)生的密碼對我們的解密程序來講是非常容易的。
在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產(chǎn)生一些校驗碼,并且把這些校驗碼插入到數(shù)據(jù)流中。這樣做對數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數(shù)據(jù)或程序是否加過密,是否有數(shù)字簽名。所以,加密程序在每次load到內(nèi)存要開始執(zhí)行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應(yīng)該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。
循環(huán)冗余校驗是一種典型的校驗數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來產(chǎn)生一個16位或32位的校驗和,這使得丟失一位或兩個位的錯誤一定會導(dǎo)致校驗和出錯。這種方式很久以來就應(yīng)用于文件的傳輸,例如xmodem-crc。這是方法已經(jīng)成為標準,而且有詳細的文檔。但是,基于標準crc算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。
二.基于公鑰的加密算法
一個好的加密算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產(chǎn)生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數(shù)學(xué)理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘a(chǎn)’執(zhí)行一個操作得到結(jié)果‘b’,那么我們可以基于‘b’,做一個相對應(yīng)的操作,導(dǎo)出輸入‘a(chǎn)’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數(shù)為0)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復(fù)的試驗,而這需要大量的處理時間。
rsa加密算法使用了兩個非常大的素數(shù)來產(chǎn)生公鑰和私鑰。即使從一個公鑰中通過因數(shù)分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現(xiàn)實上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實中加密算法都基于rsa加密算法。pgp算法(以及大多數(shù)基于rsa算法的加密方法)使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數(shù)據(jù)。這個對稱算法的密鑰是隨機產(chǎn)生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
我們舉一個例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個分割符或文件長度,以區(qū)分數(shù)據(jù)和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,并利用rsa私鑰解密出來,然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來解密數(shù)據(jù)。這樣就使得一個可靠的經(jīng)過高效加密的數(shù)據(jù)安全地傳輸和解密。
一些簡單的基于rsa算法的加密算法可在下面的站點找到:
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa
三.一個嶄新的多步加密算法
現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說是幾乎不可能被破譯的。這個算法在1998年6月1日才正式公布的。下面詳細的介紹這個算法:
使用一系列的數(shù)字(比如說128位密鑰),來產(chǎn)生一個可重復(fù)的但高度隨機化的偽隨機的數(shù)字的序列。一次使用256個表項,使用隨機數(shù)序列來產(chǎn)生密碼轉(zhuǎn)表,如下所示:
把256個隨機數(shù)放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產(chǎn)生一個表,隨意排序的表,表中的數(shù)字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的?,F(xiàn)在,產(chǎn)生了一個具體的256字節(jié)的表。讓這個隨機數(shù)產(chǎn)生器接著來產(chǎn)生這個表中的其余的數(shù),以至于每個表是不同的。下一步,使用"shotguntechnique"技術(shù)來產(chǎn)生解碼表?;旧险f,如果a映射到b,那么b一定可以映射到a,所以b[a[n]]=n.(n是一個在0到255之間的數(shù))。在一個循環(huán)中賦值,使用一個256字節(jié)的解碼表它對應(yīng)于我們剛才在上一步產(chǎn)生的256字節(jié)的加密表。
使用這個方法,已經(jīng)可以產(chǎn)生這樣的一個表,表的順序是隨機,所以產(chǎn)生這256個字節(jié)的隨機數(shù)使用的是二次偽隨機,使用了兩個額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個字節(jié)密文是這個256字節(jié)的表的索引?;蛘撸瑸榱颂岣呒用苄Ч?,可以使用多余8位的值,甚至使用校驗和或者crc算法來產(chǎn)生索引字節(jié)。假定這個表是256*256的數(shù)組,將會是下面的樣子:
crypto1=a[crypto0][value]
變量''''crypto1''''是加密后的數(shù)據(jù),''''crypto0''''是前一個加密數(shù)據(jù)(或著是前面幾個加密數(shù)據(jù)的一個函數(shù)值)。很自然的,第一個數(shù)據(jù)需要一個“種子”,這個“種子”是我們必須記住的。如果使用256*256的表,這樣做將會增加密文的長度?;蛘?,可以使用你產(chǎn)生出隨機數(shù)序列所用的密碼,也可能是它的crc校驗和。順便提及的是曾作過這樣一個測試:使用16個字節(jié)來產(chǎn)生表的索引,以128位的密鑰作為這16個字節(jié)的初始的"種子"。然后,在產(chǎn)生出這些隨機數(shù)的表之后,就可以用來加密數(shù)據(jù),速度達到每秒鐘100k個字節(jié)。一定要保證在加密與解密時都使用加密的值作為表的索引,而且這兩次一定要匹配。
加密時所產(chǎn)生的偽隨機序列是很隨意的,可以設(shè)計成想要的任何序列。沒有關(guān)于這個隨機序列的詳細的信息,解密密文是不現(xiàn)實的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉(zhuǎn)化成一些隨機的沒有任何意義的亂碼,每一個字節(jié)都依賴于其前一個字節(jié)的密文,而不是實際的值。對于任一個單個的字符的這種變換來說,隱藏了加密數(shù)據(jù)的有效的真正的長度。
如果確實不理解如何來產(chǎn)生一個隨機數(shù)序列,就考慮fibbonacci數(shù)列,使用2個雙字(64位)的數(shù)作為產(chǎn)生隨機數(shù)的種子,再加上第三個雙字來做xor操作。這個算法產(chǎn)生了一系列的隨機數(shù)。算法如下:
unsignedlongdw1,dw2,dw3,dwmask;
inti1;
unsignedlongarandom[256];
dw1={seed#1};
dw2={seed#2};
dwmask={seed#3};
//thisgivesyou332-bit"seeds",or96bitstotal
for(i1=0;i1<256;i1++)
{
dw3=(dw1+dw2)^dwmask;
arandom[i1]=dw3;
dw1=dw2;
dw2=dw3;
}
如果想產(chǎn)生一系列的隨機數(shù)字,比如說,在0和列表中所有的隨機數(shù)之間的一些數(shù),就可以使用下面的方法:
int__cdeclmysortproc(void*p1,void*p2)
{
unsignedlong**pp1=(unsignedlong**)p1;
unsignedlong**pp2=(unsignedlong**)p2;
if(**pp1<**pp2)
return(-1);
elseif(**pp1>*pp2)
return(1);
return(0);
}
...
inti1;
unsignedlong*aprandom[256];
unsignedlongarandom[256];//samearrayasbefore,inthiscase
intaresult[256];//resultsgohere
for(i1=0;i1<256;i1++)
{
aprandom[i1]=arandom+i1;
}
//nowsortit
qsort(aprandom,256,sizeof(*aprandom),mysortproc);
//finalstep-offsetsforpointersareplacedintooutputarray
for(i1=0;i1<256;i1++)
{
aresult[i1]=(int)(aprandom[i1]-arandom);
}
...
變量''''aresult''''中的值應(yīng)該是一個排過序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個數(shù)組是非常有用的,例如:對一個字節(jié)對字節(jié)的轉(zhuǎn)換表,就可以很容易并且非??煽康膩懋a(chǎn)生一個短的密鑰(經(jīng)常作為一些隨機數(shù)的種子)。這樣一個表還有其他的用處,比如說:來產(chǎn)生一個隨機的字符,計算機游戲中一個物體的隨機的位置等等。上面的例子就其本身而言并沒有構(gòu)成一個加密算法,只是加密算法一個組成部分。
作為一個測試,開發(fā)了一個應(yīng)用程序來測試上面所描述的加密算法。程序本身都經(jīng)過了幾次的優(yōu)化和修改,來提高隨機數(shù)的真正的隨機性和防止會產(chǎn)生一些短的可重復(fù)的用于加密的隨機數(shù)。用這個程序來加密一個文件,破解這個文件可能會需要非常巨大的時間以至于在現(xiàn)實上是不可能的。
四.結(jié)論:
由于在現(xiàn)實生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^程中不會被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應(yīng)該是足夠的困難,在現(xiàn)實上是不可能的,尤其是短時間內(nèi)。
參考文獻:
1.pgp!/
cyberknights(newlink)/cyberkt/
(oldlink:/~merlin/knights/)
2.cryptochamberjyu.fi/~paasivir/crypt/
3.sshcryptographa-z(includesinfoonsslandhttps)ssh.fi/tech/crypto/
4.funet''''cryptologyftp(yetanotherfinlandresource)ftp://ftp.funet.fi/pub/crypt/
agreatenigmaarticle,howthecodewasbrokenbypolishscientists
/nbrass/1enigma.htm
5.ftpsiteinukftp://sable.ox.ac.uk/pub/crypto/
6.australianftpsiteftp://ftp.psy.uq.oz.au/pub/
7.replayassociatesftparchiveftp://utopia.hacktic.nl/pub/replay/pub/crypto/
8.rsadatasecurity(whynotincludethemtoo!)/
一:數(shù)據(jù)加密方法
在傳統(tǒng)上,我們有幾種方法來加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實現(xiàn),但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對系統(tǒng)性能幾乎沒有影響,并且還可以帶來其他內(nèi)在的優(yōu)點。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對一些敏感數(shù)據(jù)是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。
幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數(shù)據(jù)段(總是一個字節(jié))對應(yīng)著“置換表”中的一個偏移量,偏移量所對應(yīng)的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86cpu系列就有一個指令‘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ù)做模運算(例如模3),得到一個結(jié)果,然后循環(huán)移位這個結(jié)果的次數(shù),將使破譯次密碼變的幾乎不可能!但是,使用fibbonaci數(shù)列這種偽隨機的方式所產(chǎn)生的密碼對我們的解密程序來講是非常容易的。
在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產(chǎn)生一些校驗碼,并且把這些校驗碼插入到數(shù)據(jù)流中。這樣做對數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數(shù)據(jù)或程序是否加過密,是否有數(shù)字簽名。所以,加密程序在每次load到內(nèi)存要開始執(zhí)行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應(yīng)該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。
循環(huán)冗余校驗是一種典型的校驗數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來產(chǎn)生一個16位或32位的校驗和,這使得丟失一位或兩個位的錯誤一定會導(dǎo)致校驗和出錯。這種方式很久以來就應(yīng)用于文件的傳輸,例如xmodem-crc。這是方法已經(jīng)成為標準,而且有詳細的文檔。但是,基于標準crc算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。
二.基于公鑰的加密算法
一個好的加密算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產(chǎn)生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數(shù)學(xué)理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘a(chǎn)’執(zhí)行一個操作得到結(jié)果‘b’,那么我們可以基于‘b’,做一個相對應(yīng)的操作,導(dǎo)出輸入‘a(chǎn)’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數(shù)為0)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復(fù)的試驗,而這需要大量的處理時間。
rsa加密算法使用了兩個非常大的素數(shù)來產(chǎn)生公鑰和私鑰。即使從一個公鑰中通過因數(shù)分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現(xiàn)實上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實中加密算法都基于rsa加密算法。pgp算法(以及大多數(shù)基于rsa算法的加密方法)使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數(shù)據(jù)。這個對稱算法的密鑰是隨機產(chǎn)生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
我們舉一個例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個分割符或文件長度,以區(qū)分數(shù)據(jù)和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,并利用rsa私鑰解密出來,然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來解密數(shù)據(jù)。這樣就使得一個可靠的經(jīng)過高效加密的數(shù)據(jù)安全地傳輸和解密。
一些簡單的基于rsa算法的加密算法可在下面的站點找到:
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa
三.一個嶄新的多步加密算法
現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說是幾乎不可能被破譯的。這個算法在1998年6月1日才正式公布的。下面詳細的介紹這個算法:
使用一系列的數(shù)字(比如說128位密鑰),來產(chǎn)生一個可重復(fù)的但高度隨機化的偽隨機的數(shù)字的序列。一次使用256個表項,使用隨機數(shù)序列來產(chǎn)生密碼轉(zhuǎn)表,如下所示:
把256個隨機數(shù)放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產(chǎn)生一個表,隨意排序的表,表中的數(shù)字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的?,F(xiàn)在,產(chǎn)生了一個具體的256字節(jié)的表。讓這個隨機數(shù)產(chǎn)生器接著來產(chǎn)生這個表中的其余的數(shù),以至于每個表是不同的。下一步,使用"shotguntechnique"技術(shù)來產(chǎn)生解碼表?;旧险f,如果a映射到b,那么b一定可以映射到a,所以b[a[n]]=n.(n是一個在0到255之間的數(shù))。在一個循環(huán)中賦值,使用一個256字節(jié)的解碼表它對應(yīng)于我們剛才在上一步產(chǎn)生的256字節(jié)的加密表。
使用這個方法,已經(jīng)可以產(chǎn)生這樣的一個表,表的順序是隨機,所以產(chǎn)生這256個字節(jié)的隨機數(shù)使用的是二次偽隨機,使用了兩個額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個字節(jié)密文是這個256字節(jié)的表的索引?;蛘撸瑸榱颂岣呒用苄Ч?,可以使用多余8位的值,甚至使用校驗和或者crc算法來產(chǎn)生索引字節(jié)。假定這個表是256*256的數(shù)組,將會是下面的樣子:
crypto1=a[crypto0][value]
變量''''crypto1''''是加密后的數(shù)據(jù),''''crypto0''''是前一個加密數(shù)據(jù)(或著是前面幾個加密數(shù)據(jù)的一個函數(shù)值)。很自然的,第一個數(shù)據(jù)需要一個“種子”,這個“種子”是我們必須記住的。如果使用256*256的表,這樣做將會增加密文的長度?;蛘撸梢允褂媚惝a(chǎn)生出隨機數(shù)序列所用的密碼,也可能是它的crc校驗和。順便提及的是曾作過這樣一個測試:使用16個字節(jié)來產(chǎn)生表的索引,以128位的密鑰作為這16個字節(jié)的初始的"種子"。然后,在產(chǎn)生出這些隨機數(shù)的表之后,就可以用來加密數(shù)據(jù),速度達到每秒鐘100k個字節(jié)。一定要保證在加密與解密時都使用加密的值作為表的索引,而且這兩次一定要匹配。
加密時所產(chǎn)生的偽隨機序列是很隨意的,可以設(shè)計成想要的任何序列。沒有關(guān)于這個隨機序列的詳細的信息,解密密文是不現(xiàn)實的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉(zhuǎn)化成一些隨機的沒有任何意義的亂碼,每一個字節(jié)都依賴于其前一個字節(jié)的密文,而不是實際的值。對于任一個單個的字符的這種變換來說,隱藏了加密數(shù)據(jù)的有效的真正的長度。
如果確實不理解如何來產(chǎn)生一個隨機數(shù)序列,就考慮fibbonacci數(shù)列,使用2個雙字(64位)的數(shù)作為產(chǎn)生隨機數(shù)的種子,再加上第三個雙字來做xor操作。這個算法產(chǎn)生了一系列的隨機數(shù)。算法如下:
unsignedlongdw1,dw2,dw3,dwmask;
inti1;
unsignedlongarandom[256];
dw1={seed#1};
dw2={seed#2};
dwmask={seed#3};
//thisgivesyou332-bit"seeds",or96bitstotal
for(i1=0;i1<256;i1++)
{
dw3=(dw1+dw2)^dwmask;
arandom[i1]=dw3;
dw1=dw2;
dw2=dw3;
}
如果想產(chǎn)生一系列的隨機數(shù)字,比如說,在0和列表中所有的隨機數(shù)之間的一些數(shù),就可以使用下面的方法:
int__cdeclmysortproc(void*p1,void*p2)
{
unsignedlong**pp1=(unsignedlong**)p1;
unsignedlong**pp2=(unsignedlong**)p2;
if(**pp1<**pp2)
return(-1);
elseif(**pp1>*pp2)
return(1);
return(0);
}
...
inti1;
unsignedlong*aprandom[256];
unsignedlongarandom[256];//samearrayasbefore,inthiscase
intaresult[256];//resultsgohere
for(i1=0;i1<256;i1++)
{
aprandom[i1]=arandom+i1;
}
//nowsortit
qsort(aprandom,256,sizeof(*aprandom),mysortproc);
//finalstep-offsetsforpointersareplacedintooutputarray
for(i1=0;i1<256;i1++)
{
aresult[i1]=(int)(aprandom[i1]-arandom);
}
...
變量''''aresult''''中的值應(yīng)該是一個排過序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個數(shù)組是非常有用的,例如:對一個字節(jié)對字節(jié)的轉(zhuǎn)換表,就可以很容易并且非??煽康膩懋a(chǎn)生一個短的密鑰(經(jīng)常作為一些隨機數(shù)的種子)。這樣一個表還有其他的用處,比如說:來產(chǎn)生一個隨機的字符,計算機游戲中一個物體的隨機的位置等等。上面的例子就其本身而言并沒有構(gòu)成一個加密算法,只是加密算法一個組成部分。
作為一個測試,開發(fā)了一個應(yīng)用程序來測試上面所描述的加密算法。程序本身都經(jīng)過了幾次的優(yōu)化和修改,來提高隨機數(shù)的真正的隨機性和防止會產(chǎn)生一些短的可重復(fù)的用于加密的隨機數(shù)。用這個程序來加密一個文件,破解這個文件可能會需要非常巨大的時間以至于在現(xiàn)實上是不可能的。
四.結(jié)論:
由于在現(xiàn)實生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^程中不會被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應(yīng)該是足夠的困難,在現(xiàn)實上是不可能的,尤其是短時間內(nèi)。
參考文獻:
1.pgp!/
cyberknights(newlink)/cyberkt/
(oldlink:/~merlin/knights/)
2.cryptochamberjyu.fi/~paasivir/crypt/
3.sshcryptographa-z(includesinfoonsslandhttps)ssh.fi/tech/crypto/
4.funet''''cryptologyftp(yetanotherfinlandresource)ftp://ftp.funet.fi/pub/crypt/
agreatenigmaarticle,howthecodewasbrokenbypolishscientists
/nbrass/1enigma.htm
5.ftpsiteinukftp://sable.ox.ac.uk/pub/crypto/
6.australianftpsiteftp://ftp.psy.uq.oz.au/pub/
7.replayassociatesftparchiveftp://utopia.hacktic.nl/pub/replay/pub/crypto/
8.rsadatasecurity(whynotincludethemtoo!)/
一:數(shù)據(jù)加密方法
在傳統(tǒng)上,我們有幾種方法來加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實現(xiàn),但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對系統(tǒng)性能幾乎沒有影響,并且還可以帶來其他內(nèi)在的優(yōu)點。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對一些敏感數(shù)據(jù)是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。
幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數(shù)據(jù)段(總是一個字節(jié))對應(yīng)著“置換表”中的一個偏移量,偏移量所對應(yīng)的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86cpu系列就有一個指令‘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ù)做模運算(例如模3),得到一個結(jié)果,然后循環(huán)移位這個結(jié)果的次數(shù),將使破譯次密碼變的幾乎不可能!但是,使用fibbonaci數(shù)列這種偽隨機的方式所產(chǎn)生的密碼對我們的解密程序來講是非常容易的。
在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產(chǎn)生一些校驗碼,并且把這些校驗碼插入到數(shù)據(jù)流中。這樣做對數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數(shù)據(jù)或程序是否加過密,是否有數(shù)字簽名。所以,加密程序在每次load到內(nèi)存要開始執(zhí)行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應(yīng)該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。
循環(huán)冗余校驗是一種典型的校驗數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來產(chǎn)生一個16位或32位的校驗和,這使得丟失一位或兩個位的錯誤一定會導(dǎo)致校驗和出錯。這種方式很久以來就應(yīng)用于文件的傳輸,例如xmodem-crc。這是方法已經(jīng)成為標準,而且有詳細的文檔。但是,基于標準crc算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。二.基于公鑰的加密算法
一個好的加密算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產(chǎn)生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數(shù)學(xué)理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘a(chǎn)’執(zhí)行一個操作得到結(jié)果‘b’,那么我們可以基于‘b’,做一個相對應(yīng)的操作,導(dǎo)出輸入‘a(chǎn)’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數(shù)為0)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復(fù)的試驗,而這需要大量的處理時間。
rsa加密算法使用了兩個非常大的素數(shù)來產(chǎn)生公鑰和私鑰。即使從一個公鑰中通過因數(shù)分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現(xiàn)實上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實中加密算法都基于rsa加密算法。pgp算法(以及大多數(shù)基于rsa算法的加密方法)使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數(shù)據(jù)。這個對稱算法的密鑰是隨機產(chǎn)生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
我們舉一個例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個分割符或文件長度,以區(qū)分數(shù)據(jù)和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,并利用rsa私鑰解密出來,然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來解密數(shù)據(jù)。這樣就使得一個可靠的經(jīng)過高效加密的數(shù)據(jù)安全地傳輸和解密。
一些簡單的基于rsa算法的加密算法可在下面的站點找到:
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa
三.一個嶄新的多步加密算法
現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說是幾乎不可能被破譯的。這個算法在1998年6月1日才正式公布的。下面詳細的介紹這個算法:
使用一系列的數(shù)字(比如說128位密鑰),來產(chǎn)生一個可重復(fù)的但高度隨機化的偽隨機的數(shù)字的序列。一次使用256個表項,使用隨機數(shù)序列來產(chǎn)生密碼轉(zhuǎn)表,如下所示:
把256個隨機數(shù)放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產(chǎn)生一個表,隨意排序的表,表中的數(shù)字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的?,F(xiàn)在,產(chǎn)生了一個具體的256字節(jié)的表。讓這個隨機數(shù)產(chǎn)生器接著來產(chǎn)生這個表中的其余的數(shù),以至于每個表是不同的。下一步,使用"shotguntechnique"技術(shù)來產(chǎn)生解碼表?;旧险f,如果a映射到b,那么b一定可以映射到a,所以b[a[n]]=n.(n是一個在0到255之間的數(shù))。在一個循環(huán)中賦值,使用一個256字節(jié)的解碼表它對應(yīng)于我們剛才在上一步產(chǎn)生的256字節(jié)的加密表。
使用這個方法,已經(jīng)可以產(chǎn)生這樣的一個表,表的順序是隨機,所以產(chǎn)生這256個字節(jié)的隨機數(shù)使用的是二次偽隨機,使用了兩個額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個字節(jié)密文是這個256字節(jié)的表的索引?;蛘?,為了提高加密效果,可以使用多余8位的值,甚至使用校驗和或者crc算法來產(chǎn)生索引字節(jié)。假定這個表是256*256的數(shù)組,將會是下面的樣子:crypto1=a[crypto0][value]
變量''''crypto1''''是加密后的數(shù)據(jù),''''crypto0''''是前一個加密數(shù)據(jù)(或著是前面幾個加密數(shù)據(jù)的一個函數(shù)值)。很自然的,第一個數(shù)據(jù)需要一個“種子”,這個“種子”是我們必須記住的。如果使用256*256的表,這樣做將會增加密文的長度。或者,可以使用你產(chǎn)生出隨機數(shù)序列所用的密碼,也可能是它的crc校驗和。順便提及的是曾作過這樣一個測試:使用16個字節(jié)來產(chǎn)生表的索引,以128位的密鑰作為這16個字節(jié)的初始的"種子"。然后,在產(chǎn)生出這些隨機數(shù)的表之后,就可以用來加密數(shù)據(jù),速度達到每秒鐘100k個字節(jié)。一定要保證在加密與解密時都使用加密的值作為表的索引,而且這兩次一定要匹配。
加密時所產(chǎn)生的偽隨機序列是很隨意的,可以設(shè)計成想要的任何序列。沒有關(guān)于這個隨機序列的詳細的信息,解密密文是不現(xiàn)實的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉(zhuǎn)化成一些隨機的沒有任何意義的亂碼,每一個字節(jié)都依賴于其前一個字節(jié)的密文,而不是實際的值。對于任一個單個的字符的這種變換來說,隱藏了加密數(shù)據(jù)的有效的真正的長度。
如果確實不理解如何來產(chǎn)生一個隨機數(shù)序列,就考慮fibbonacci數(shù)列,使用2個雙字(64位)的數(shù)作為產(chǎn)生隨機數(shù)的種子,再加上第三個雙字來做xor操作。這個算法產(chǎn)生了一系列的隨機數(shù)。算法如下:
unsignedlongdw1,dw2,dw3,dwmask;
inti1;
unsignedlongarandom[256];
dw1={seed#1};
dw2={seed#2};
dwmask={seed#3};
//thisgivesyou332-bit"seeds",or96bitstotal
for(i1=0;i1<256;i1++)
{
dw3=(dw1+dw2)^dwmask;
arandom[i1]=dw3;
dw1=dw2;
dw2=dw3;
}
如果想產(chǎn)生一系列的隨機數(shù)字,比如說,在0和列表中所有的隨機數(shù)之間的一些數(shù),就可以使用下面的方法:
int__cdeclmysortproc(void*p1,void*p2)
{
unsignedlong**pp1=(unsignedlong**)p1;
unsignedlong**pp2=(unsignedlong**)p2;
if(**pp1<**pp2)
return(-1);
elseif(**pp1>*pp2)
return(1);
return(0);
}
...
inti1;
unsignedlong*aprandom[256];
unsignedlongarandom[256];//samearrayasbefore,inthiscase
intaresult[256];//resultsgohere
for(i1=0;i1<256;i1++)
{
aprandom[i1]=arandom+i1;
}
//nowsortit
qsort(aprandom,256,sizeof(*aprandom),mysortproc);
//finalstep-offsetsforpointersareplacedintooutputarray
for(i1=0;i1<256;i1++)
{
aresult[i1]=(int)(aprandom[i1]-arandom);
}
...
變量''''aresult''''中的值應(yīng)該是一個排過序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個數(shù)組是非常有用的,例如:對一個字節(jié)對字節(jié)的轉(zhuǎn)換表,就可以很容易并且非??煽康膩懋a(chǎn)生一個短的密鑰(經(jīng)常作為一些隨機數(shù)的種子)。這樣一個表還有其他的用處,比如說:來產(chǎn)生一個隨機的字符,計算機游戲中一個物體的隨機的位置等等。上面的例子就其本身而言并沒有構(gòu)成一個加密算法,只是加密算法一個組成部分。
作為一個測試,開發(fā)了一個應(yīng)用程序來測試上面所描述的加密算法。程序本身都經(jīng)過了幾次的優(yōu)化和修改,來提高隨機數(shù)的真正的隨機性和防止會產(chǎn)生一些短的可重復(fù)的用于加密的隨機數(shù)。用這個程序來加密一個文件,破解這個文件可能會需要非常巨大的時間以至于在現(xiàn)實上是不可能的。
四.結(jié)論:
由于在現(xiàn)實生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^程中不會被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應(yīng)該是足夠的困難,在現(xiàn)實上是不可能的,尤其是短時間內(nèi)。
參考文獻:
1.pgp!/
cyberknights(newlink)/cyberkt/
(oldlink:/~merlin/knights/)
2.cryptochamberjyu.fi/~paasivir/crypt/
3.sshcryptographa-z(includesinfoonsslandhttps)ssh.fi/tech/crypto/
4.funet''''cryptologyftp(yetanotherfinlandresource)ftp://ftp.funet.fi/pub/crypt/
agreatenigmaarticle,howthecodewasbrokenbypolishscientists
/nbrass/1enigma.htm
5.ftpsiteinukftp://sable.ox.ac.uk/pub/crypto/
6.australianftpsiteftp://ftp.psy.uq.oz.au/pub/
7.replayassociatesftparchiveftp://utopia.hacktic.nl/pub/replay/pub/crypto/
8.rsadatasecurity(whynotincludethemtoo!)/
【關(guān)鍵詞】數(shù)據(jù)庫加密、加密算法、加密技術(shù)特性、加密字典、加解密引擎。
隨著電子商務(wù)逐漸越來越多的應(yīng)用,數(shù)據(jù)的安全問題越來越受到重視。一是企業(yè)本身需要對自己的關(guān)鍵數(shù)據(jù)進行有效的保護;二是企業(yè)從應(yīng)用服務(wù)提供商(ApplicationServiceProvider,ASP)處獲得應(yīng)用支持和服務(wù),在這種情況下,企業(yè)的業(yè)務(wù)數(shù)據(jù)存放在ASP處,其安全性無法得到有效的保障。因為傳統(tǒng)的數(shù)據(jù)庫保護方式是通過設(shè)定口令字和訪問權(quán)限等方法實現(xiàn)的,數(shù)據(jù)庫管理員可以不加限制地訪問和更改數(shù)據(jù)庫中的所有數(shù)據(jù)。解決這一問題的關(guān)鍵是要對數(shù)據(jù)本身加密,即使數(shù)據(jù)不幸泄露或丟失,也難以被人破譯,關(guān)于這一點現(xiàn)基本數(shù)據(jù)庫產(chǎn)品都支持對數(shù)據(jù)庫中的所有數(shù)據(jù)加密存儲。
-對數(shù)據(jù)進行加密,主要有三種方式:系統(tǒng)中加密、客戶端(DBMS外層)加密、服務(wù)器端(DBMS內(nèi)核層)加密??蛻舳思用艿暮锰幨遣粫又財?shù)據(jù)庫服務(wù)器的負載,并且可實現(xiàn)網(wǎng)上的傳輸加密,這種加密方式通常利用數(shù)據(jù)庫外層工具實現(xiàn)。而服務(wù)器端的加密需要對數(shù)據(jù)庫管理系統(tǒng)本身進行操作,屬核心層加密,如果沒有數(shù)據(jù)庫開發(fā)商的配合,其實現(xiàn)難度相對較大。此外,對那些希望通過ASP獲得服務(wù)的企業(yè)來說,只有在客戶端實現(xiàn)加解密,才能保證其數(shù)據(jù)的安全可靠。
1.常用數(shù)據(jù)庫加密技術(shù)
信息安全主要指三個方面。一是數(shù)據(jù)安全,二是系統(tǒng)安全,三是電子商務(wù)的安全。核心是數(shù)據(jù)庫的安全,將數(shù)據(jù)庫的數(shù)據(jù)加密就抓住了信息安全的核心問題。
對數(shù)據(jù)庫中數(shù)據(jù)加密是為增強普通關(guān)系數(shù)據(jù)庫管理系統(tǒng)的安全性,提供一個安全適用的數(shù)據(jù)庫加密平臺,對數(shù)據(jù)庫存儲的內(nèi)容實施有效保護。它通過數(shù)據(jù)庫存儲加密等安全方法實現(xiàn)了數(shù)據(jù)庫數(shù)據(jù)存儲保密和完整性要求,使得數(shù)據(jù)庫以密文方式存儲并在密態(tài)方式下工作,確保了數(shù)據(jù)安全。
1.1數(shù)據(jù)庫加密技術(shù)的功能和特性
經(jīng)過近幾年的研究,我國數(shù)據(jù)庫加密技術(shù)已經(jīng)比較成熟。
一般而言,一個行之有效的數(shù)據(jù)庫加密技術(shù)主要有以下6個方面的功能和特性。
(1)身份認證:
用戶除提供用戶名、口令外,還必須按照系統(tǒng)安全要求提供其它相關(guān)安全憑證。如使用終端密鑰。
(2)通信加密與完整性保護:
有關(guān)數(shù)據(jù)庫的訪問在網(wǎng)絡(luò)傳輸中都被加密,通信一次一密的意義在于防重放、防篡改。
(3)數(shù)據(jù)庫數(shù)據(jù)存儲加密與完整性保護:
數(shù)據(jù)庫系統(tǒng)采用數(shù)據(jù)項級存儲加密,即數(shù)據(jù)庫中不同的記錄、每條記錄的不同字段都采用不同的密鑰加密,輔以校驗措施來保證數(shù)據(jù)庫數(shù)據(jù)存儲的保密性和完整性,防止數(shù)據(jù)的非授權(quán)訪問和修改。
(4)數(shù)據(jù)庫加密設(shè)置:
系統(tǒng)中可以選擇需要加密的數(shù)據(jù)庫列,以便于用戶選擇那些敏感信息進行加密而不是全部數(shù)據(jù)都加密。只對用戶的敏感數(shù)據(jù)加密可以提高數(shù)據(jù)庫訪問速度。這樣有利于用戶在效率與安全性之間進行自主選擇。
(5)多級密鑰管理模式:
主密鑰和主密鑰變量保存在安全區(qū)域,二級密鑰受主密鑰變量加密保護,數(shù)據(jù)加密的密鑰存儲或傳輸時利用二級密鑰加密保護,使用時受主密鑰保護。
(6)安全備份:
系統(tǒng)提供數(shù)據(jù)庫明文備份功能和密鑰備份功能。
1.2對數(shù)據(jù)庫加密系統(tǒng)基本要求
(1)字段加密;
(2)密鑰動態(tài)管理;
(3)合理處理數(shù)據(jù);
(4)不影響合法用戶的操作;
(5)防止非法拷貝;
1.3數(shù)據(jù)加密的算法
加密算法是一些公式和法則,它規(guī)定了明文和密文之間的變換方法。密鑰是控制加密算法和解密算法的關(guān)鍵信息,它的產(chǎn)生、傳輸、存儲等工作是十分重要的。
數(shù)據(jù)加密的基本過程包括對明文(即可讀信息)進行翻譯,譯成密文或密碼的代碼形式。該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來的形式的過程。
DES算法,DES(DataEncryptionStandard)是由IBM公司在1970年以后發(fā)展起來的,于1976年11月被美國政府采用,DES隨后被美國國家標準局和美國國家標準協(xié)會(AmericanNationalStandardInstitute,ANSI)承認,DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,DES算法中只用到64位密鑰中的其中56位。
三重DES,DES的密碼學(xué)缺點是密鑰長度相對比較短,因此,人們又想出了一個解決其長度的方法,即采用三重DES,三重DES是DES的一種變形。這種方法使用兩個獨立的56位密鑰對交換的信息(如EDI數(shù)據(jù))進行3次加密,從而使其有效密鑰長度達到112位或168位,對安全性有特殊要求時則要采用它。
RSA算法它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字就是發(fā)明者的名字:RonRivest,AdiShamir和LeonardAdleman,但RSA的安全性一直未能得到理論上的證明,RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價。即RSA的重大缺陷是無法從理論上把握它的保密性能如何,而且密碼學(xué)界多數(shù)人士傾向于因子分解不是NPC問題,RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優(yōu)秀的公鑰方案之一。
AES是美國高級加密標準算法,將在未來幾十年里代替DES在各個領(lǐng)域中得到廣泛應(yīng)用,盡管人們對AES還有不同的看法,但總體來說,AES作為新一代的數(shù)據(jù)加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點。AES設(shè)計有三個密鑰長度:128,192,256位,相對而言,AES的128密鑰比DES的56密鑰強1021倍。AES算法主要包括三個方面:輪變化、圈數(shù)和密鑰擴展。在理論上,此加密方法需要國家軍事量級的破解設(shè)備運算10年以上時間才可能破譯。
1.4數(shù)據(jù)庫數(shù)據(jù)加密的實現(xiàn)
使用數(shù)據(jù)庫安全保密中間件對數(shù)據(jù)庫進行加密是最簡便直接的方法。主要是通過系統(tǒng)中加密、DBMS內(nèi)核層(服務(wù)器端)加密和DBMS外層(客戶端)加密。
在系統(tǒng)中加密,在系統(tǒng)中無法辨認數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,將數(shù)據(jù)先在內(nèi)存中進行加密,然后文件系統(tǒng)把每次加密后的內(nèi)存數(shù)據(jù)寫入到數(shù)據(jù)庫文件中去,讀入時再逆方面進行解密就,這種加密方法相對簡單,只要妥善管理密鑰就可以了。缺點對數(shù)據(jù)庫的讀寫都比較麻煩,每次都要進行加解密的工作,對程序的編寫和讀寫數(shù)據(jù)庫的速度都會有影響。
在DBMS內(nèi)核層實現(xiàn)加密需要對數(shù)據(jù)庫管理系統(tǒng)本身進行操作。這種加密是指數(shù)據(jù)在物理存取之前完成加解密工作。這種加密方式的優(yōu)點是加密功能強,并且加密功能幾乎不會影響DBMS的功能,可以實現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合。其缺點是加密運算在服務(wù)器端進行,加重了服務(wù)器的負載,而且DBMS和加密器之間的接口需要DBMS開發(fā)商的支持。
在DBMS外層實現(xiàn)加密的好處是不會加重數(shù)據(jù)庫服務(wù)器的負載,并且可實現(xiàn)網(wǎng)上的傳輸,加密比較實際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具,根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加解密處理。
采用這種加密方式進行加密,加解密運算可在客戶端進行,它的優(yōu)點是不會加重數(shù)據(jù)庫服務(wù)器的負載并且可以實現(xiàn)網(wǎng)上傳輸?shù)募用?,缺點是加密功能會受到一些限制,與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。
數(shù)據(jù)庫加密系統(tǒng)分成兩個功能獨立的主要部件:一個是加密字典管理程序,另一個是數(shù)據(jù)庫加解密引擎。數(shù)據(jù)庫加密系統(tǒng)將用戶對數(shù)據(jù)庫信息具體的加密要求以及基礎(chǔ)信息保存在加密字典中,通過調(diào)用數(shù)據(jù)加解密引擎實現(xiàn)對數(shù)據(jù)庫表的加密、解密及數(shù)據(jù)轉(zhuǎn)換等功能。數(shù)據(jù)庫信息的加解密處理是在后成的,對數(shù)據(jù)庫服務(wù)器是透明的。
按以上方式實現(xiàn)的數(shù)據(jù)庫加密系統(tǒng)具有很多優(yōu)點:首先,系統(tǒng)對數(shù)據(jù)庫的最終用戶是完全透明的,管理員可以根據(jù)需要進行明文和密文的轉(zhuǎn)換工作;其次,加密系統(tǒng)完全獨立于數(shù)據(jù)庫應(yīng)用系統(tǒng),無須改動數(shù)據(jù)庫應(yīng)用系統(tǒng)就能實現(xiàn)數(shù)據(jù)加密功能;第三,加解密處理在客戶端進行,不會影響數(shù)據(jù)庫服務(wù)器的效率。
數(shù)據(jù)庫加解密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,它位于應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間,負責(zé)在后成數(shù)據(jù)庫信息的加解密處理,對應(yīng)用開發(fā)人員和操作人員來說是透明的。數(shù)據(jù)加解密引擎沒有操作界面,在需要時由操作系統(tǒng)自動加載并駐留在內(nèi)存中,通過內(nèi)部接口與加密字典管理程序和用戶應(yīng)用程序通訊。數(shù)據(jù)庫加解密引擎由三大模塊組成:加解密處理模塊、用戶接口模塊和數(shù)據(jù)庫接口模塊。
2.結(jié)束語
上面的論述還遠遠沒達到數(shù)據(jù)庫安全需要,比如現(xiàn)在的數(shù)據(jù)庫基本都給與網(wǎng)絡(luò)架構(gòu),網(wǎng)際的安全傳輸?shù)龋彩且攸c考慮的方面,等等。一個好的安全系統(tǒng)必須綜合考慮核運用這些技術(shù),以保證數(shù)據(jù)的安全,通過一上論述希望對大家有所幫助,同時也和大家一起討論一起學(xué)習(xí),共同進步。
參考文獻:
[1]現(xiàn)代數(shù)據(jù)庫管理(美)JeffreyA.Hoffer,MaryB.Prescott,F(xiàn)redR.McFadden著
1.1計算機系統(tǒng)存在漏洞
當前,大部分計算機的系統(tǒng)為Windows系統(tǒng),只有少數(shù)計算機的系統(tǒng)為Linux系統(tǒng)。Windows系統(tǒng)受眾面廣,受網(wǎng)絡(luò)攻擊的可能性更大,再加上系統(tǒng)本身存在很多漏洞,嚴重影響了計算機數(shù)據(jù)信息的安全性。如果黑客攻擊系統(tǒng)所存在的漏洞,就會導(dǎo)致病毒通過漏洞感染計算機。計算機操作系統(tǒng)建設(shè)所用的代碼會涉及到匯編、反匯編等底層代碼,并且所有代碼的編寫需要整個團隊來完成,這樣往往在代碼編寫過程中就會出現(xiàn)漏洞,需要用專門的補丁來修復(fù)。系統(tǒng)漏洞的存在給計算機的安全使用帶來了極大的威脅,導(dǎo)致銀行賬號、密碼,游戲賬號、密碼等泄露,從而對計算機使用者造成一定的損失。
1.2計算機病毒
計算機病毒具有感染性強、蔓延范圍廣、傳播速度快等特點,是威脅計算機數(shù)據(jù)安全的重要因素。在病毒進入到計算機程序后,如果將帶有病毒的數(shù)據(jù)文件應(yīng)用于計算機網(wǎng)絡(luò)傳輸或共享,那么其他計算機在瀏覽或打開此數(shù)據(jù)文件時也會被感染,出現(xiàn)連鎖式病毒傳播。另外,如果計算機病毒過多,會對計算機操作系統(tǒng)造成十分嚴重的影響,出現(xiàn)死機或者數(shù)據(jù)丟失等事故。
1.3非正常入侵
計算機網(wǎng)絡(luò)具有開放性特點,在互聯(lián)網(wǎng)背景下,很多不法分子利用系統(tǒng)本身存在的漏洞非法入侵用戶計算機。非法入侵者一般采取竊聽、監(jiān)視等手段,獲取計算機網(wǎng)絡(luò)用戶的口令、IP包和用戶信息等,然后利用各種信息進入計算機局域網(wǎng)內(nèi),并采用冒充系統(tǒng)客戶或者用合法用戶的IP地址代替自己的IP地址等方式,篡改或竊取計算機網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)信息。
2數(shù)據(jù)加密技術(shù)的應(yīng)用
2.1密鑰保護
密鑰保護是數(shù)據(jù)加密中一種常用的加密技術(shù)。改變密鑰的表達方式,可提高密文書寫的多變性,體現(xiàn)多層次的加密方式。密鑰保護可分為公鑰保護和私鑰保護兩種方式。通常這兩種方式相互配合,對提高計算機數(shù)據(jù)信息的安全性具有重要意義。私鑰保護具有一定的局限性,在使用時必須借助公鑰保護來完成整個保護動作。密鑰保護的原理是:當計算機進行數(shù)據(jù)傳輸時,選用公鑰對需要傳輸?shù)男畔⑦M行加密,在用戶接收數(shù)據(jù)后,需要通過私鑰來完成解密動作,以此來確保傳輸數(shù)據(jù)的安全性,避免攻擊者非法竊取傳輸過程中的數(shù)據(jù)。當前,秘鑰保護方式一般用于管理系統(tǒng)和金融系統(tǒng)中,可以完成對私人信息、用戶登錄和訪問過程等方面的保護。
2.2USBkey保護
USBkey是數(shù)據(jù)加密技術(shù)的典型代表,一般用于銀行交易系統(tǒng)中,保證網(wǎng)絡(luò)交易環(huán)境的安全性。USBkey服務(wù)于客戶端到銀行系統(tǒng),對每項數(shù)據(jù)信息的傳輸都需要加密處理,避免數(shù)據(jù)在傳輸過程中受到惡意攻擊。就現(xiàn)狀來看,銀行系統(tǒng)通過計算機網(wǎng)絡(luò)來完成工作的概率逐漸上升。USBkey可以保護銀行系統(tǒng)能夠在相對安全的環(huán)境中完成交易。在用戶利用計算機網(wǎng)絡(luò)進行銀行交易時,USBkey中的加密技術(shù)會自動匹配用戶信息,即便用戶行為被跟蹤,攻擊者也無法破譯USBkey中的加密技術(shù),通過加強用戶登錄身份的驗證,保證用戶財務(wù)安全。
2.3數(shù)字簽名保護
數(shù)字簽名保護是比較常用的一種數(shù)據(jù)加密技術(shù),具有很好的保護效果。數(shù)字簽名保護的原理是利用加密、解密過程,識別用戶身份,從而保證數(shù)據(jù)信息的安全性。數(shù)字簽名保護也分為公鑰保護和私鑰保護兩種,如果只使用其中的一種保護方式,會在本質(zhì)上降低安全保護的效果。因此,通常情況下,常在私鑰簽名處外加一層公鑰保護,提高數(shù)字簽名保護的效果。
3結(jié)束語
計算機網(wǎng)絡(luò)安全主要包括資源共享、組網(wǎng)硬件、網(wǎng)絡(luò)服務(wù)以及網(wǎng)絡(luò)軟件等方面的內(nèi)容,因此計算機網(wǎng)絡(luò)安全涉及到計算機網(wǎng)絡(luò)的所有內(nèi)容。以計算機網(wǎng)絡(luò)特征為依據(jù),對計算機網(wǎng)絡(luò)軟件、數(shù)據(jù)資源、硬件以及操作系統(tǒng)進行有效的保護,能夠有效防止計算機相關(guān)數(shù)據(jù)遭到泄露、破壞及更改,保證計算機網(wǎng)絡(luò)運行的安全性及可靠性。在實際運用過程中,計算機網(wǎng)絡(luò)安全還存在諸多隱患,而人為因素則是計算機網(wǎng)絡(luò)安全的最大隱患。一般情況下,計算機網(wǎng)絡(luò)安全隱患主要包括:首先,網(wǎng)絡(luò)漏洞。其在計算機操作系統(tǒng)中較為常見,由于操作系統(tǒng)會有許多用戶同時進行系統(tǒng)運行及信息傳輸,因而在信息傳輸過程中出現(xiàn)安全隱患的幾率就進一步增加。其次,病毒。計算機的病毒主要分為文件病毒以及網(wǎng)絡(luò)病毒、引導(dǎo)型的病毒等。文件病毒主要是感染相關(guān)計算機中存有的各個文件。網(wǎng)絡(luò)病毒通常是利用計算機來感染、傳播計算機網(wǎng)絡(luò)的可執(zhí)行性文件。引導(dǎo)型的病毒主要是感染計算機系統(tǒng)的啟動扇區(qū)及引導(dǎo)扇區(qū)。再次,非法入侵。非法入侵是威脅計算機網(wǎng)絡(luò)安全的主要人為因素。由于社會競爭越來越激烈,許多人會通過計算機來非法獲取他人信息來達到自己的目的,因而非法入侵也就成為計算機網(wǎng)絡(luò)安全的重要危險因素。此外,黑客破壞、網(wǎng)絡(luò)及系統(tǒng)不穩(wěn)定也是威脅計算機網(wǎng)絡(luò)安全的重要因素,因而采取有效方法來保障計算機網(wǎng)絡(luò)安全,以提高信息數(shù)據(jù)的安全性就勢在必行。
2計算機網(wǎng)絡(luò)安全中數(shù)據(jù)加密技術(shù)的有效應(yīng)用
當前,數(shù)據(jù)加密技術(shù)是一項確保計算機網(wǎng)絡(luò)安全的應(yīng)用最廣泛的技術(shù),且隨著社會及科技的發(fā)展而不斷發(fā)展。數(shù)據(jù)加密技術(shù)的廣泛應(yīng)用為計算機網(wǎng)絡(luò)安全提供良好的環(huán)境,同時較好的保護了人們運用互聯(lián)網(wǎng)的安全。密鑰及其算法是數(shù)據(jù)加密技術(shù)的兩個主要元素。密鑰是一種對計算機數(shù)據(jù)進行有效編碼、解碼的算法。在計算機網(wǎng)絡(luò)安全的保密過程中,可通過科學(xué)、適當?shù)墓芾頇C制以及密鑰技術(shù)來提高信息數(shù)據(jù)傳輸?shù)目煽啃约鞍踩?。算法就是把普通信息和密鑰進行有機結(jié)合,從而產(chǎn)生其他人難以理解的一種密文步驟。要提高數(shù)據(jù)加密技術(shù)的實用性及安全性,就要對這兩個因素給予高度重視。
2.1鏈路數(shù)據(jù)加密技術(shù)在計算機網(wǎng)絡(luò)安全中的應(yīng)用
一般情況下,多區(qū)段計算機計算機采用的就是鏈路數(shù)據(jù)加密技術(shù),其能夠?qū)π畔?、?shù)據(jù)的相關(guān)傳輸路線進行有效劃分,并以傳輸路徑以及傳輸區(qū)域的不同對數(shù)據(jù)信息進行針對性的加密。數(shù)據(jù)在各個路段傳輸?shù)倪^程中會受到不同方式的加密,所以數(shù)據(jù)接收者在接收數(shù)據(jù)時,接收到的信息數(shù)據(jù)都是密文形式的,在這種情況下,即便數(shù)據(jù)傳輸過程被病毒所獲取,數(shù)據(jù)具有的模糊性也能對數(shù)據(jù)信息起到的一定程度的保護作用。此外,鏈路數(shù)據(jù)加密技術(shù)還能夠?qū)魉椭械男畔?shù)據(jù)實行相應(yīng)的數(shù)據(jù)信息填充,使得數(shù)據(jù)在不同區(qū)段傳輸?shù)臅r候會存在較大的差異,從而擾亂竊取者數(shù)據(jù)判斷的能力,最終達到保證數(shù)據(jù)安全的目的。
2.2端端數(shù)據(jù)加密技術(shù)在計算機網(wǎng)絡(luò)安全中的應(yīng)用
相比鏈路數(shù)據(jù)加密技術(shù),端端數(shù)據(jù)加密技術(shù)實現(xiàn)的過程相對來說較為容易。端端數(shù)據(jù)加密技術(shù)主要是借助密文形式完成信息數(shù)據(jù)的傳輸,所以數(shù)據(jù)信息傳輸途中不需要進行信息數(shù)據(jù)的加密、解密,這就較好的保障了信息安全,并且該種技術(shù)無需大量的維護投入及運行投入,由于端端數(shù)據(jù)加密技術(shù)的數(shù)據(jù)包傳輸?shù)穆肪€是獨立的,因而即使某個數(shù)據(jù)包出現(xiàn)錯誤,也不會干擾到其它數(shù)據(jù)包,這一定程度上保證了數(shù)據(jù)傳輸?shù)挠行约巴暾?。此外,在?yīng)用端端數(shù)據(jù)加密技術(shù)傳輸數(shù)據(jù)的過程中,會撤銷原有信息數(shù)據(jù)接收者位置的解密權(quán),除了信息數(shù)據(jù)的原有接收者,其他接收者都不能解密這些數(shù)據(jù)信息,這極大的減少了第三方接收數(shù)據(jù)信息的幾率,大大提高了數(shù)據(jù)的安全性。
2.3數(shù)字簽名信息認證技術(shù)在計算機網(wǎng)絡(luò)安全中的有效應(yīng)用
隨著計算機相關(guān)技術(shù)的快速發(fā)展,數(shù)字簽名信息認證技術(shù)在提高計算機網(wǎng)絡(luò)安全中的重要作用日漸突出。數(shù)字簽名信息認證技術(shù)是保障網(wǎng)絡(luò)安全的主要技術(shù)之一,主要是通過對用戶的身份信息給予有效的確認與鑒別,從而較好的保證用戶信息的安全。目前,數(shù)字簽名信息認證的方式主要有數(shù)字認證以及口令認證兩種。數(shù)字認證是在加密信息的基礎(chǔ)上完成數(shù)據(jù)信息密鑰計算方法的有效核實,進一步增強了數(shù)據(jù)信息的有效性、安全性。相較于數(shù)字認證而言,口令認證的認證操作更為快捷、簡便,使用費用也相對較低,因而使用范圍更廣。
2.4節(jié)點數(shù)據(jù)加密技術(shù)在計算機網(wǎng)絡(luò)安全中的有效應(yīng)用
節(jié)點數(shù)據(jù)加密技術(shù)和鏈路數(shù)據(jù)加密技術(shù)具有許多相似之處,都是采取加密數(shù)據(jù)傳送線路的方法來進行信息安全的保護。不同之處則是節(jié)點數(shù)據(jù)加密技術(shù)在傳輸數(shù)據(jù)信息前就對信息進行加密,在信息傳輸過程中,數(shù)據(jù)信息不以明文形式呈現(xiàn),且加密后的各項數(shù)據(jù)信息在進入傳送區(qū)段之后很難被其他人識別出來,以此來達到保護信息安全的目的。但是實際上,節(jié)點數(shù)據(jù)加密技術(shù)也存在一定弊端,由于其要求信息發(fā)送者和接收方都必須應(yīng)用明文形式來進行信息加密,因而在此過程中,相關(guān)信息一旦遭到外界干擾,就會降低信息安全。
2.5密碼密鑰數(shù)據(jù)技術(shù)在計算機網(wǎng)絡(luò)安全中的有效應(yīng)用
保護數(shù)據(jù)信息的安全是應(yīng)用數(shù)據(jù)加密技術(shù)的最終目的,數(shù)據(jù)加密是保護數(shù)據(jù)信息安全的主動性防治措施。密鑰一般有私用密鑰及公用密鑰兩種類型。私用密鑰即信息傳送雙方已經(jīng)事先達成了密鑰共識,并應(yīng)用相同密鑰實現(xiàn)信息加密、解密,以此來提高信息的安全性。而公用密鑰的安全性則比較高,其在發(fā)送文件發(fā)送前就已經(jīng)對文件進行加密,能有效避免信息的泄露,同時公用密鑰還能夠與私用密鑰互補,對私用密鑰存在的缺陷進行彌補。
3數(shù)據(jù)加密技術(shù)應(yīng)用在計算機網(wǎng)絡(luò)安全中的有效對策
網(wǎng)絡(luò)通信有一定的風(fēng)險性,對數(shù)據(jù)加密技術(shù)的需求比較大,結(jié)合網(wǎng)絡(luò)通信的實踐應(yīng)用,通過例舉網(wǎng)絡(luò)通信中的風(fēng)險表現(xiàn),分析其對數(shù)據(jù)加密技術(shù)的需求。網(wǎng)絡(luò)通信的安全風(fēng)險有:①網(wǎng)絡(luò)通信的過程中,面臨著攻擊者的監(jiān)聽、竊取破壞,很容易丟失傳輸中的數(shù)據(jù)信息;②攻擊者隨意更改網(wǎng)絡(luò)通信中的信息,冒充管理者截取傳輸信息,導(dǎo)致網(wǎng)絡(luò)通信的數(shù)據(jù)丟失;③網(wǎng)絡(luò)通信中的數(shù)據(jù)信息被惡意復(fù)制,引起了系統(tǒng)癱瘓、信息不準確的問題。由此可見:網(wǎng)絡(luò)通信中,必須強化數(shù)據(jù)加密技術(shù)的應(yīng)用,采取數(shù)據(jù)加密技術(shù),保護網(wǎng)絡(luò)通信的整個過程,預(yù)防攻擊行為,提高網(wǎng)絡(luò)通信的安全水平,避免出現(xiàn)惡意攻擊的現(xiàn)象,保障網(wǎng)絡(luò)通信的安全性和積極性,表明數(shù)據(jù)加密技術(shù)的重要性,進而完善網(wǎng)絡(luò)通信的環(huán)境。
2數(shù)據(jù)加密技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用
數(shù)據(jù)加密技術(shù)提升了網(wǎng)絡(luò)通信的安全性,規(guī)范了網(wǎng)絡(luò)通信的運營環(huán)境,規(guī)避了潛在的風(fēng)險因素。網(wǎng)絡(luò)通信中的數(shù)據(jù)加密,主要分為方法和技術(shù)兩部分,對其做如下分析:
2.1網(wǎng)絡(luò)通信中的數(shù)據(jù)加密方法
2.1.1對稱加密
對稱加密方法在網(wǎng)絡(luò)通信中比較常用,利用相同的密鑰,完成通信數(shù)據(jù)加密到解密的過程,降低了數(shù)據(jù)加密的難度。對稱加密中,比較有代表性的方法是DES加密,屬于標準對稱加密的方法。例如:DES在網(wǎng)絡(luò)通信中的應(yīng)用,使用了固定的加密框架,DES通過密鑰,迭代子密鑰,將56bit密鑰分解成16組48bit,迭代的過程中進行加密,而解密的過程與加密流程相似,使用的密鑰也完全相同,加密與解密密鑰的使用正好相反,根據(jù)網(wǎng)絡(luò)通信的數(shù)據(jù)類型,完成對稱加密。
2.1.2非對稱加密
非對稱加密方法的難度稍高,加密與解密的過程,采用了不同的密鑰,以公鑰、私鑰的方式,對網(wǎng)絡(luò)通信實行非對稱加密。公鑰和私鑰配對后,才能打開非對稱加密的網(wǎng)絡(luò)通信數(shù)據(jù),其私鑰由網(wǎng)絡(luò)通信的管理者保管,不能公開使用。非對稱加密方法在網(wǎng)絡(luò)通信中的應(yīng)用,解密時僅需要管理者主動輸入密鑰的數(shù)據(jù)即可,操作方法非常簡單,而且具有較高的安全水平,提高了加密解密的時間效率。
2.2網(wǎng)絡(luò)通信中的數(shù)據(jù)加密技術(shù)
2.2.1鏈路加密
網(wǎng)絡(luò)通信中的鏈路加密,實際是一種在線加密技術(shù),按照網(wǎng)絡(luò)通信的鏈路分配,提供可行的加密方法。網(wǎng)絡(luò)通信的數(shù)據(jù)信息在傳輸前,已經(jīng)進入了加密的狀態(tài),鏈路節(jié)點先進行解密,在下一鏈路環(huán)境中,重新進入加密狀態(tài),整個網(wǎng)絡(luò)通信鏈路傳輸?shù)倪^程中,都是按照先解密在加密的方式進行,鏈路上的數(shù)據(jù)信息,均處于密文保護狀態(tài),隱藏了數(shù)據(jù)信息的各項屬性,避免數(shù)據(jù)信息被攻擊竊取。
2.2.2節(jié)點加密
節(jié)點加密技術(shù)確保了網(wǎng)絡(luò)通信節(jié)點位置數(shù)據(jù)信息的安全性,通過節(jié)點處的數(shù)據(jù)信息,都不會是明文形式,均表現(xiàn)為密文,促使節(jié)點加密成為具有安全保護功能的模塊,安全的連接了網(wǎng)絡(luò)通信中的信息。加點加密技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用,依賴于密碼裝置,用于完成節(jié)點信息的加密、解密,但是此類應(yīng)用也存在一個明顯的缺陷,即:報頭、路由信息為明文方式,由此增加了節(jié)點加密的難度,很容易為攻擊者提供竊取條件,是節(jié)點加密技術(shù)應(yīng)用中需要重點考慮的問題。
2.2.3端到端加密
網(wǎng)絡(luò)通信的端到端加密,是指出發(fā)點到接收點,整個過程不能出現(xiàn)明文狀態(tài)的數(shù)據(jù)信息。端到端加密的過程中,不會出現(xiàn)解密行為,數(shù)據(jù)信息進入到接收點后,接收人借助密鑰加密信息,提高網(wǎng)絡(luò)通信的安全性,即使網(wǎng)絡(luò)通信的節(jié)點發(fā)生安全破壞,也不會造成數(shù)據(jù)信息的攻擊丟失,起到優(yōu)質(zhì)的加密作用。端到端加密時,應(yīng)該做好出發(fā)點、接收點位置的網(wǎng)絡(luò)通信加密,以便確保整個網(wǎng)絡(luò)通信過程的安全性。
3結(jié)束語