數據加密技術范文

時間:2023-04-02 19:53:03

導語:如何才能寫好一篇數據加密技術,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

數據加密技術

篇1

 

一:數據加密方法

   在傳統上,我們有幾種方法來加密數據流。所有這些方法都可以用軟件很容易的實現,但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經是可能的了)。最好的加密算法對系統性能幾乎沒有影響,并且還可以帶來其他內在的優點。例如,大家都知道的pkzip,它既壓縮數據又加密數據。又如,dbms的一些軟件包總是包含一些加密方法以使復制文件這一功能對一些敏感數據是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。

  

   幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數據段(總是一個字節)對應著“置換表”中的一個偏移量,偏移量所對應的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86 cpu系列就有一個指令‘xlat’在硬件級來完成這樣的工作。這種加密算法比較簡單,加密解密速度都很快,但是一旦這個“置換表”被對方獲得,那這個加密方案就完全被識破了。更進一步講,這種加密算法對于黑客破譯來講是相當直接的,只要找到一個“置換表”就可以了。這種方法在計算機出現之前就已經被廣泛的使用。

 

    對這種“置換表”方式的一個改進就是使用2個或者更多的“置換表”,這些表都是基于數據流中字節的位置的,或者基于數據流本身。這時,破譯變的更加困難,因為黑客必須正確的做幾次變換。通過使用更多的“置換表”,并且按偽隨機的方式使用每個表,這種改進的加密方法已經變的很難破譯。比如,我們可以對所有的偶數位置的數據使用a表,對所有的奇數位置使用b表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切的知道用了兩張表。

 

   與使用“置換表”相類似,“變換數據位置”也在計算機加密中使用。但是,這需要更多的執行時間。從輸入中讀入明文放到一個buffer中,再在buffer中對他們重排序,然后按這個順序再輸出。解密程序按相反的順序還原數據。這種方法總是和一些別的加密算法混合使用,這就使得破譯變的特別的困難,幾乎有些不可能了。例如,有這樣一個詞,變換起字母的順序,slient 可以變為listen,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經變化了。

 

    但是,還有一種更好的加密算法,只有計算機可以做,就是字/字節循環移位和xor操作。如果我們把一個字或字節在一個數據流內做循環移位,使用多個或變化的方向(左移或右移),就可以迅速的產生一個加密的數據流。這種方法是很好的,破譯它就更加困難!而且,更進一步的是,如果再使用xor操作,按位做異或操作,就就使破譯密碼更加困難了。如果再使用偽隨機的方法,這涉及到要產生一系列的數字,我們可以使用fibbonaci數列。對數列所產生的數做模運算(例如模3),得到一個結果,然后循環移位這個結果的次數,將使破譯次密碼變的幾乎不可能!但是,使用fibbonaci數列這種偽隨機的方式所產生的密碼對我們的解密程序來講是非常容易的。

 

    在一些情況下,我們想能夠知道數據是否已經被篡改了或被破壞了,這時就需要產生一些校驗碼,并且把這些校驗碼插入到數據流中。這樣做對數據的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數據或程序是否加過密,是否有數字簽名。所以,加密程序在每次load到內存要開始執行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數據。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術

循環冗余校驗是一種典型的校驗數據的方法。對于每一個數據塊,它使用位循環移位和xor操作來產生一個16位或32位的校驗和 ,這使得丟失一位或兩個位的錯誤一定會導致校驗和出錯。這種方式很久以來就應用于文件的傳輸,例如 xmodem-crc。 這是方法已經成為標準,而且有詳細的文檔。但是,基于標準crc算法的一種修改算法對于發現加密數據塊中的錯誤和文件是否被病毒感染是很有效的。

 

 二.基于公鑰的加密算法

 

    一個好的加密算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數學理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘a’執行一個操作得到結果‘b’,那么我們可以基于‘b’,做一個相對應的操作,導出輸入‘a’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數為0)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復的試驗,而這需要大量的處理時間。

    

    rsa加密算法使用了兩個非常大的素數來產生公鑰和私鑰。即使從一個公鑰中通過因數分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現實上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數據變的有些不可行。這就使得一些現實中加密算法都基于rsa加密算法。pgp算法(以及大多數基于rsa算法的加密方法)使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數據。這個對稱算法的密鑰是隨機產生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。

   

    我們舉一個例子:假定現在要加密一些數據使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個密鑰‘12345’,并把它放在要加密的數據的前面(可能后面跟著一個分割符或文件長度,以區分數據和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,并利用rsa私鑰解密出來,然后再確定出數據的開始位置,利用密鑰‘12345’來解密數據。這樣就使得一個可靠的經過高效加密的數據安全地傳輸和解密。

 

   一些簡單的基于rsa算法的加密算法可在下面的站點找到:

    ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa

 

  三.一個嶄新的多步加密算法

 

    現在又出現了一種新的加密算法,據說是幾乎不可能被破譯的。這個算法在1998年6月1日才正式公布的。下面詳細的介紹這個算法:

使用一系列的數字(比如說128位密鑰),來產生一個可重復的但高度隨機化的偽隨機的數字的序列。一次使用256個表項,使用隨機數序列來產生密碼轉表,如下所示:

把256個隨機數放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產生一個表,隨意排序的表,表中的數字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的。現在,產生了一個具體的256字節的表。讓這個隨機數產生器接著來產生這個表中的其余的數,以至于每個表是不同的。下一步,使用"shotgun technique"技術來產生解碼表。基本上說,如果 a映射到b,那么b一定可以映射到a,所以b[a[n]] = n.(n是一個在0到255之間的數)。在一個循環中賦值,使用一個256字節的解碼表它對應于我們剛才在上一步產生的256字節的加密表。

 

    使用這個方法,已經可以產生這樣的一個表,表的順序是隨機,所以產生這256個字節的隨機數使用的是二次偽隨機,使用了兩個額外的16位的密碼.現在,已經有了兩張轉換表,基本的加密解密是如下這樣工作的。前一個字節密文是這個256字節的表的索引?;蛘?,為了提高加密效果,可以使用多余8位的值,甚至使用校驗和或者crc算法來產生索引字節。假定這個表是256*256的數組,將會是下面的樣子:

   

    crypto1 = a[crypto0][value]

 

    變量'crypto1'是加密后的數據,'crypto0'是前一個加密數據(或著是前面幾個加密數據的一個函數值)。很自然的,第一個數據需要一個“種子”,這個“種子” 是我們必須記住的。如果使用256*256的表,這樣做將會增加密文的長度?;蛘撸梢允褂媚惝a生出隨機數序列所用的密碼,也可能是它的crc校驗和。順便提及的是曾作過這樣一個測試: 使用16個字節來產生表的索引,以128位的密鑰作為這16個字節的初始的"種子"。然后,在產生出這些隨機數的表之后,就可以用來加密數據,速度達到每秒鐘100k個字節。一定要保證在加密與解密時都使用加密的值作為表的索引,而且這兩次一定要匹配。

 

    加密時所產生的偽隨機序列是很隨意的,可以設計成想要的任何序列。沒有關于這個隨機序列的詳細的信息,解密密文是不現實的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉化成一些隨機的沒有任何意義的亂碼,每一個字節都依賴于其前一個字節的密文,而不是實際的值。對于任一個單個的字符的這種變換來說,隱藏了加密數據的有效的真正的長度。

 

    如果確實不理解如何來產生一個隨機數序列,就考慮fibbonacci數列,使用2個雙字(64位)的數作為產生隨機數的種子,再加上第三個雙字來做xor操作。 這個算法產生了一系列的隨機數。算法如下:

 

unsigned long dw1, dw2, dw3, dwmask;

int i1;

unsigned long arandom[256];

 

dw1 = {seed #1};

dw2 = {seed #2};

dwmask = {seed #3};

// this gives you 3 32-bit "seeds", or 96 bits total

for(i1=0; i1 < 256; i1++)

{

dw3 = (dw1 + dw2) ^ dwmask;

arandom[i1] = dw3;

dw1 = dw2;

dw2 = dw3;

}

 

   如果想產生一系列的隨機數字,比如說,在0和列表中所有的隨機數之間的一些數,就可以使用下面的方法:

 

int __cdecl mysortproc(void *p1, void *p2)

{

unsigned long **pp1 = (unsigned long **)p1;

unsigned long **pp2 = (unsigned long **)p2;

if(**pp1 < **pp2)

return(-1);

else if(**pp1 > *pp2)

return(1);

return(0);

}

 

...

int i1;

unsigned  long  *aprandom[256];

unsigned  long  arandom[256];    // same array as before, in this case

int  aresult[256];                // results go here

 

for(i1=0; i1 < 256; i1++)

{

aprandom[i1] = arandom + i1;

}

 

// now sort it

qsort(aprandom, 256, sizeof(*aprandom), mysortproc);

 

// final step - offsets for pointers are placed into output array

for(i1=0; i1 < 256; i1++)

{

aresult[i1] = (int)(aprandom[i1] - arandom);

}

...

 

    變量'aresult'中的值應該是一個排過序的唯一的一系列的整數的數組,整數的值的范圍均在0到255之間。這樣一個數組是非常有用的,例如:對一個字節對字節的轉換表,就可以很容易并且非??煽康膩懋a生一個短的密鑰(經常作為一些隨機數的種子)。這樣一個表還有其他的用處,比如說:來產生一個隨機的字符,計算機游戲中一個物體的隨機的位置等等。上面的例子就其本身而言并沒有構成一個加密算法,只是加密算法一個組成部分。

 

    作為一個測試,開發了一個應用程序來測試上面所描述的加密算法。程序本身都經過了幾次的優化和修改,來提高隨機數的真正的隨機性和防止會產生一些短的可重復的用于加密的隨機數。用這個程序來加密一個文件,破解這個文件可能會需要非常巨大的時間以至于在現實上是不可能的。

 

  四.結論:

    由于在現實生活中,我們要確保一些敏感的數據只能被有相應權限的人看到,要確保信息在傳輸的過程中不會被篡改,截取,這就需要很多的安全系統大量的應用于政府、大公司以及個人系統。數據加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應該是足夠的困難,在現實上是不可能的,尤其是短時間內。

 

 

 

參考文獻:

 

1 . pgp!  pgpi.com/

cyber knights(new link)  members.tripod.com/cyberkt/

(old link:  netnet.com/~merlin/knights/ )

2 . crypto chamber  jyu.fi/~paasivir/crypt/

 

3 . ssh cryptograph a-z (includes info on ssl and https)  ssh.fi/tech/crypto/

 

篇2

一:數據加密方法

在傳統上,我們有幾種方法來加密數據流。所有這些方法都可以用軟件很容易的實現,但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經是可能的了)。最好的加密算法對系統性能幾乎沒有影響,并且還可以帶來其他內在的優點。例如,大家都知道的pkzip,它既壓縮數據又加密數據。又如,dbms的一些軟件包總是包含一些加密方法以使復制文件這一功能對一些敏感數據是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。

幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數據段(總是一個字節)對應著“置換表”中的一個偏移量,偏移量所對應的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86cpu系列就有一個指令‘xlat’在硬件級來完成這樣的工作。這種加密算法比較簡單,加密解密速度都很快,但是一旦這個“置換表”被對方獲得,那這個加密方案就完全被識破了。更進一步講,這種加密算法對于黑客破譯來講是相當直接的,只要找到一個“置換表”就可以了。這種方法在計算機出現之前就已經被廣泛的使用。

對這種“置換表”方式的一個改進就是使用2個或者更多的“置換表”,這些表都是基于數據流中字節的位置的,或者基于數據流本身。這時,破譯變的更加困難,因為黑客必須正確的做幾次變換。通過使用更多的“置換表”,并且按偽隨機的方式使用每個表,這種改進的加密方法已經變的很難破譯。比如,我們可以對所有的偶數位置的數據使用a表,對所有的奇數位置使用b表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切的知道用了兩張表。

與使用“置換表”相類似,“變換數據位置”也在計算機加密中使用。但是,這需要更多的執行時間。從輸入中讀入明文放到一個buffer中,再在buffer中對他們重排序,然后按這個順序再輸出。解密程序按相反的順序還原數據。這種方法總是和一些別的加密算法混合使用,這就使得破譯變的特別的困難,幾乎有些不可能了。例如,有這樣一個詞,變換起字母的順序,slient可以變為listen,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經變化了。

但是,還有一種更好的加密算法,只有計算機可以做,就是字/字節循環移位和xor操作。如果我們把一個字或字節在一個數據流內做循環移位,使用多個或變化的方向(左移或右移),就可以迅速的產生一個加密的數據流。這種方法是很好的,破譯它就更加困難!而且,更進一步的是,如果再使用xor操作,按位做異或操作,就就使破譯密碼更加困難了。如果再使用偽隨機的方法,這涉及到要產生一系列的數字,我們可以使用fibbonaci數列。對數列所產生的數做模運算(例如模3),得到一個結果,然后循環移位這個結果的次數,將使破譯次密碼變的幾乎不可能!但是,使用fibbonaci數列這種偽隨機的方式所產生的密碼對我們的解密程序來講是非常容易的。

在一些情況下,我們想能夠知道數據是否已經被篡改了或被破壞了,這時就需要產生一些校驗碼,并且把這些校驗碼插入到數據流中。這樣做對數據的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數據或程序是否加過密,是否有數字簽名。所以,加密程序在每次load到內存要開始執行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數據。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術。

循環冗余校驗是一種典型的校驗數據的方法。對于每一個數據塊,它使用位循環移位和xor操作來產生一個16位或32位的校驗和,這使得丟失一位或兩個位的錯誤一定會導致校驗和出錯。這種方式很久以來就應用于文件的傳輸,例如xmodem-crc。這是方法已經成為標準,而且有詳細的文檔。但是,基于標準crc算法的一種修改算法對于發現加密數據塊中的錯誤和文件是否被病毒感染是很有效的。

二.基于公鑰的加密算法

一個好的加密算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數學理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘a’執行一個操作得到結果‘b’,那么我們可以基于‘b’,做一個相對應的操作,導出輸入‘a’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數為0)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復的試驗,而這需要大量的處理時間。

rsa加密算法使用了兩個非常大的素數來產生公鑰和私鑰。即使從一個公鑰中通過因數分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現實上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數據變的有些不可行。這就使得一些現實中加密算法都基于rsa加密算法。pgp算法(以及大多數基于rsa算法的加密方法)使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數據。這個對稱算法的密鑰是隨機產生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。

我們舉一個例子:假定現在要加密一些數據使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個密鑰‘12345’,并把它放在要加密的數據的前面(可能后面跟著一個分割符或文件長度,以區分數據和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,并利用rsa私鑰解密出來,然后再確定出數據的開始位置,利用密鑰‘12345’來解密數據。這樣就使得一個可靠的經過高效加密的數據安全地傳輸和解密。

一些簡單的基于rsa算法的加密算法可在下面的站點找到:

ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa

三.一個嶄新的多步加密算法

現在又出現了一種新的加密算法,據說是幾乎不可能被破譯的。這個算法在1998年6月1日才正式公布的。下面詳細的介紹這個算法:

使用一系列的數字(比如說128位密鑰),來產生一個可重復的但高度隨機化的偽隨機的數字的序列。一次使用256個表項,使用隨機數序列來產生密碼轉表,如下所示:

把256個隨機數放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產生一個表,隨意排序的表,表中的數字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的?,F在,產生了一個具體的256字節的表。讓這個隨機數產生器接著來產生這個表中的其余的數,以至于每個表是不同的。下一步,使用"shotguntechnique"技術來產生解碼表。基本上說,如果a映射到b,那么b一定可以映射到a,所以b[a[n]]=n.(n是一個在0到255之間的數)。在一個循環中賦值,使用一個256字節的解碼表它對應于我們剛才在上一步產生的256字節的加密表。

使用這個方法,已經可以產生這樣的一個表,表的順序是隨機,所以產生這256個字節的隨機數使用的是二次偽隨機,使用了兩個額外的16位的密碼.現在,已經有了兩張轉換表,基本的加密解密是如下這樣工作的。前一個字節密文是這個256字節的表的索引?;蛘撸瑸榱颂岣呒用苄Ч?,可以使用多余8位的值,甚至使用校驗和或者crc算法來產生索引字節。假定這個表是256*256的數組,將會是下面的樣子:

crypto1=a[crypto0][value]

變量''''crypto1''''是加密后的數據,''''crypto0''''是前一個加密數據(或著是前面幾個加密數據的一個函數值)。很自然的,第一個數據需要一個“種子”,這個“種子”是我們必須記住的。如果使用256*256的表,這樣做將會增加密文的長度?;蛘?,可以使用你產生出隨機數序列所用的密碼,也可能是它的crc校驗和。順便提及的是曾作過這樣一個測試:使用16個字節來產生表的索引,以128位的密鑰作為這16個字節的初始的"種子"。然后,在產生出這些隨機數的表之后,就可以用來加密數據,速度達到每秒鐘100k個字節。一定要保證在加密與解密時都使用加密的值作為表的索引,而且這兩次一定要匹配。

加密時所產生的偽隨機序列是很隨意的,可以設計成想要的任何序列。沒有關于這個隨機序列的詳細的信息,解密密文是不現實的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉化成一些隨機的沒有任何意義的亂碼,每一個字節都依賴于其前一個字節的密文,而不是實際的值。對于任一個單個的字符的這種變換來說,隱藏了加密數據的有效的真正的長度。

如果確實不理解如何來產生一個隨機數序列,就考慮fibbonacci數列,使用2個雙字(64位)的數作為產生隨機數的種子,再加上第三個雙字來做xor操作。這個算法產生了一系列的隨機數。算法如下:

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;

}

如果想產生一系列的隨機數字,比如說,在0和列表中所有的隨機數之間的一些數,就可以使用下面的方法:

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''''中的值應該是一個排過序的唯一的一系列的整數的數組,整數的值的范圍均在0到255之間。這樣一個數組是非常有用的,例如:對一個字節對字節的轉換表,就可以很容易并且非??煽康膩懋a生一個短的密鑰(經常作為一些隨機數的種子)。這樣一個表還有其他的用處,比如說:來產生一個隨機的字符,計算機游戲中一個物體的隨機的位置等等。上面的例子就其本身而言并沒有構成一個加密算法,只是加密算法一個組成部分。

作為一個測試,開發了一個應用程序來測試上面所描述的加密算法。程序本身都經過了幾次的優化和修改,來提高隨機數的真正的隨機性和防止會產生一些短的可重復的用于加密的隨機數。用這個程序來加密一個文件,破解這個文件可能會需要非常巨大的時間以至于在現實上是不可能的。

四.結論:

由于在現實生活中,我們要確保一些敏感的數據只能被有相應權限的人看到,要確保信息在傳輸的過程中不會被篡改,截取,這就需要很多的安全系統大量的應用于政府、大公司以及個人系統。數據加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應該是足夠的困難,在現實上是不可能的,尤其是短時間內。

參考文獻:

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!)/

篇3

21世紀是一個信息大爆炸的時代,計算機和網絡的發展越來越先進的同時,我們亟待解決的問題也是層出不窮,為了保證我們個人的信息數據安全,除了安裝殺毒軟件之外,我們還應該使用加密技術保證信息數據的安全性。以下是目前的一些計算機信息數據加密技術的介紹。

1.1計算機信息數據的存儲加密以及傳輸加密

存儲加密和傳輸加密是計算機信息數據安全的重要組成部分。下面就計算機的傳輸加密和存儲加密技術進行詳細的介紹:

(1)計算機信息存儲加密技術:存儲加密技術是計算機在運行過程中數據在計算機中存儲的過程的安全。存儲加密技術根據是實現的方式的不同,又可以分為存儲控制和密文存儲兩種類型。加密模塊或者加密算法是實行密文存儲的主要方式,限制用戶的權限和辨別用戶的合法性是實現存儲控制的兩種方式。這兩種加密技術均可有效的防治計算機信息在存儲的過程中的盜取。

(2)計算機信息傳輸加密技術:對需要傳輸的數據進行加密處理是傳輸加密技術的主要方式,來確保計算機信息數據在傳輸過程中的安全性。傳輸加密技術也包括兩種類型:端-端加密和線路加密。對傳輸路線進行不同的加密密匙是線路加密技術的主要實現方式。發送用戶在發送信息數據的時候就對信息進行加密處理,用無法識別的方式或者無法閱讀的方式進行信息的傳輸,當數據到達目的地以后,接受用戶解碼這些數據包,就變成了可供用戶使用信息了。

1.2確認加密技術和密匙管理加密技術

除了上文中提到的計算機存儲加密技術和傳輸加密技術以外,還有另外一種加密技術即確認加密技術和密匙管理加密技術。

(1)密匙管理加密技術:密匙的媒體主要有磁卡、半導體存儲器以及磁盤等,密匙的產生、保存以及銷毀時密匙管理技術的重要組成部分。為保證信息數據的安全性我們可以通過密匙管理加密技術,密匙的管理技術就是通過管理以上各個環節的安全來保證計算機信息數據的安全。

(2)確認加密技術:通過限制計算機數據信息的共享范圍是確認加密技術的只要實現方式,防治惡意程序的修改和仿造,更好的保證了計算機信息數據的安全性。確認加密技術可以有效防止別人偽造虛假信息。還能夠使接受者辨別自己收到的信息是否合法真實的。在確認加密技術中,根據目的的不同信息確認的系統主要有以下幾種不同的形式:消息確認、身份確認、數字簽字。

1.3消息摘要和完整性鑒別技術

(1)消息摘要就是與一個消息或者文本唯一相對應的一個值,從國一個單項的hash加密函數對消息發生作用而產生的加密技術。

(2)完整性鑒別技術:完整性鑒別技術是一套完整的鑒別系統,由信息數據、身份、口令和密匙等多項內容組成。在運行計算機的過程中,系統會驗證這些輸入的項目,判斷輸入的數值是否和設定的值一致。有效的保護了計算機數據信息的安全。

2結束語

篇4

1數據加密技術在計算機安全中的應用

在運行計算機網絡的過程中,所有應用系統在提供服務的過程中,該應用系統運行時都需要通過數據資料的傳輸。所以數據信息的安全性是保障整個計算機網絡正常運行的關鍵所在。數據加密的過程就是根據某種算法,對原有合法文件、數據資料進行適當的處理,使其成為一段不可讀取的代碼,一般情況下被稱為“密文”,并使其只能在輸入相應的密鑰后才能夠顯示出原有的資料內容,利用這種技術手段能夠實現保護網絡數據資料不會受到非法入侵人員竊取的目的。數據加密是按照既定的密碼將強設別性能的明文密碼改成識別難度大的數據形式,并利用不同的密鑰,采取相同的加密算法將文件進行加密,從而形成了不同的密文模式將數據資料保護起來。數據加密技術在整個社會的各個領域中的應用方式與應用形式都不相同。在硬件的應用方面,公交IC卡、門禁卡、二代身份證等,均嵌入了IC芯片,而怎樣將數據加密技術應用到IC芯片中,將會成為數據加密技術新的發展方向。現階段,在計算機網絡交易的過程中,我國的各大銀行都采用的是數據加密技術和計算機網絡進行了互換機械設備的聯動,并將所有數據流的信息資料安全傳輸到設備中,系統再按照其傳輸的數據信息進行了環境分析,一旦檢查到安全隱患,將會立刻采取必要的手段,將計算機網絡安全問題的具體反映動作準確傳輸到交換機上,交換機及西寧端口關閉,從而保護了數據庫中的數據信息并更改了密碼。密鑰作為目前數據加密的重要表現形式,相比較而言,數據的安全性能更高,具備公用與私人這兩種不同形式,所適用的范圍較為廣泛,尤其是在計算機網絡的交易過程中,使用這種形式更加廣泛,例如:利用信用卡進行購物的過程中,商家使用的是公用密鑰,這為解讀利用信用卡在購物過程中產生的信息提供了方便,也可能會留下信用卡戶主的個人信息記錄。數字簽名認證作為目前數據加密技術的另一種主要表現形式。基于在數據加密技術上數字簽名認證技術,采用加密解密的計算方法進行數據安全保障。數字加密技術也分為公用與私人這兩種形式,但是通常情況下,簽名安全認證系統在計算機網站的稅務安全部門得到了比較廣泛的應用。此外,在電子商務運行平臺方面,數據加密技術充分利用自身安全性高這一特征,保障了SSL協議中能夠安全傳輸用戶密碼與個人信息數據等。

2結語

人們在使用計算機網絡的同時也越來越關注重要數據資料的保密性與安全性?,F階段,數據加密技術成為了保障數據信息安全性的有效技術手段。人們應該加大對數據加密技術的研究力度。

作者:易鳴亮單位:湖北工業大學

篇5

關鍵詞:信息數據 安全 加密技術

當前形勢下,人們進行信息數據的傳遞與交流主要面臨著兩個方面的信息安全影響:人為因素和非人為因素。其中人為因素是指:黑客、病毒、木馬、電子欺騙等;非人為因素是指:不可抗力的自然災害如火災、電磁波干擾、或者是計算機硬件故障、部件損壞等。在諸多因素的制約下,如果不對信息數據進行必要的加密處理,我們傳遞的信息數據就可能泄露,被不法分子獲得,損害我們自身以及他人的根本利益,甚至造成國家安全危害。因此,信息數據的安全和加密在當前形勢下對人們的生活來說是必不可少的,通過信息數據加密,信息數據有了安全保障,人們不必再顧忌信息數據的泄露,能夠放心地在網絡上完成便捷的信息數據傳遞與交流。

1、信息數據安全與加密的必要外部條件

1.1 計算機安全。每一個計算機網絡用戶都首先把自己的信息數據存儲在計算機之中,然后,才進行相互之間的信息數據傳遞與交流,有效地保障其信息數據的安全必須以保證計算機的安全為前提,計算機安全主要有兩個方面包括:計算機的硬件安全與計算機軟件安全。1)計算機硬件安全技術。保持計算機正常的運轉,定期檢查是否出現硬件故障,并及時維修處理,在易損器件出現安全問題之前提前更換,保證計算機通電線路安全,提供備用供電系統,實時保持線路暢通。2)計算機軟件安全技術。首先,必須有安全可靠的操作系統。作為計算機工作的平臺,操作系統必須具有訪問控制、安全內核等安全功能,能夠隨時為計算機新加入軟件進行檢測,如提供windows安全警報等等。其次,計算機殺毒軟件,每一臺計算機要正常的上網與其他用戶交流信息,都必須實時防護計算機病毒的危害,一款好的殺毒軟件可以有效地保護計算機不受病毒的侵害。

1.2 通信安全。通信安全是信息數據的傳輸的基本條件,當傳輸信息數據的通信線路存在安全隱患時,信息數據就不可能安全的傳遞到指定地點。盡管隨著科學技術的逐步改進,計算機通信網絡得到了進一步完善和改進,但是,信息數據仍舊要求有一個安全的通信環境。主要通過以下技術實現。1)信息加密技術。這是保障信息安全的最基本、最重要、最核心的技術措施。我們一般通過各種各樣的加密算法來進行具體的信息數據加密,保護信息數據的安全通信。2)信息確認技術。為有效防止信息被非法偽造、篡改和假冒,我們限定信息的共享范圍,就是信息確認技術。通過該技術,發信者無法抵賴自己發出的消息;合法的接收者可以驗證他收到的消息是否真實;除合法發信者外,別人無法偽造消息。3)訪問控制技術。該技術只允許用戶對基本信息庫的訪問,禁止用戶隨意的或者是帶有目的性的刪除、修改或拷貝信息文件。與此同時,系統管理員能夠利用這一技術實時觀察用戶在網絡中的活動,有效的防止黑客的入侵。

2、信息數據的安全與加密技術

隨著計算機網絡化程度逐步提高,人們對信息數據傳遞與交流提出了更高的安全要求,信息數據的安全與加密技術應運而生。然而,傳統的安全理念認為網絡內部是完全可信任,只有網外不可信任,導致了在信息數據安全主要以防火墻、入侵檢測為主,忽視了信息數據加密在網絡內部的重要性。以下介紹信息數據的安全與加密技術。

2.1 存儲加密技術和傳輸加密技術。存儲加密技術分為密文存儲和存取控制兩種,其主要目的是防止在信息數據存儲過程中信息數據泄露。密文存儲主要通過加密算法轉換、加密模塊、附加密碼加密等方法實現;存取控制則通過審查和限制用戶資格、權限,辨別用戶的合法性,預防合法用戶越權存取信息數據以及非法用戶存取信息數據。

傳輸加密技術分為線路加密和端-端加密兩種,其主要目的是對傳輸中的信息數據流進行加密。線路加密主要通過對各線路采用不同的加密密鑰進行線路加密,不考慮信源與信宿的信息安全保護。端-端加密是信息由發送者端自動加密,并進入TCP/IP信息數據包,然后作為不可閱讀和不可識別的信息數據穿過互聯網,這些信息一旦到達目的地,將被自動重組、解密,成為可讀信息數據。

2.2 密鑰管理加密技術和確認加密技術。密鑰管理加密技術是為了信息數據使用的方便,信息數據加密在許多場合集中表現為密鑰的應用,因此密鑰往往是保密與竊密的主要對象。密鑰的媒體有:磁卡、磁帶、磁盤、半導體存儲器等。密鑰的管理技術包括密鑰的產生、分配、保存、更換與銷毀等各環節上的保密措施。網絡信息確認加密技術通過嚴格限定信息的共享范圍來防止信息被非法偽造、篡改和假冒。一個安全的信息確認方案應該能使:合法的接收者能夠驗證他收到的消息是否真實;發信者無法抵賴自己發出的消息;除合法發信者外,別人無法偽造消息;發生爭執時可由第三人仲裁。按照其具體目的,信息確認系統可分為消息確認、身份確認和數字簽名。數字簽名是由于公開密鑰和私有密鑰之間存在的數學關系,使用其中一個密鑰加密的信息數據只能用另一個密鑰解開。發送者用自己的私有密鑰加密信息數據傳給接收者,接收者用發送者的公鑰解開信息數據后,就可確定消息來自誰。這就保證了發送者對所發信息不能抵賴。

2.3 消息摘要和完整性鑒別技術。消息摘要是一個惟一對應一個消息或文本的值,由一個單向Hash加密函數對消息作用而產生。信息發送者使用自己的私有密鑰加密摘要,也叫做消息的數字簽名。消息摘要的接受者能夠通過密鑰解密確定消息發送者,當消息在途中被改變時,接收者通過對比分析消息新產生的摘要與原摘要的不同,就能夠發現消息是否中途被改變。所以說,消息摘要保證了消息的完整性。

完整性鑒別技術一般包括口令、密鑰、身份(介入信息傳輸、存取、處理的人員的身份)、信息數據等項的鑒別。通常情況下,為達到保密的要求,系統通過對比驗證對象輸入的特征值是否符合預先設定的參數,實現對信息數據的安全保護。

3、結束語

綜上所述,信息數據的安全與加密技術,是保障當前形勢下我們安全傳遞與交流信息的基本技術,對信息安全至關重要。希望通過本文的研究,能夠拋磚引玉,引起國內外專家的重視,投入更多的精力以及更多的財力、物力來研究信息數據安全與加密技術,以便更好的保障每一個網絡使用者的信息安全。

參考文獻

[1]曾莉紅,基于網絡的信息包裝與信息數據加密[J].包裝工程,2007(08).

[2]華碩升級光盤加密技術[J].消費電子商訊,2009(11).

篇6

Abstract: Data encryption is an effective way to protect data security. It treats a paragraph in some calculating method and to change the paragraph into a cipher text to prevent data from stealing and reading by unauthorized people. Data encryption could be divided into "symmetric" encryption and "asymmetric" encryption. Multi-step belongs to the symmetric encryption and is widely used because of its high security.

關鍵詞:多步數據加密;密鑰;偽隨機序列

Key words: multi-step data encryption;encryption key;pseudo-random sequence

中圖分類號:TP30 文獻標識碼:A文章編號:1006-4311(2010)18-0185-02

1數據加密的概念、理由及標準

1.1 數據加密的概念數據加密的基本過程就是對原來為明文的文件或數據按某種算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應的密鑰之后才能顯示出本來內容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉化為其原來數據的過程。

1.2 數據加密的標準最早、最著名的保密密鑰或對稱密鑰加密算法DES(Data Encryption Standard)是由IBM公司在20世紀70年展起來,并經政府的加密標準篩選后,于1976年11月被美國政府采用,DES隨后被美國國家標準局和美國國家標準協會(American National Standard Institute,ANSI)承認。DES使用56位密鑰對64位的數據塊進行加密,并對64位的數據塊進行16輪編碼。當時DES被認為是一種十分強大的加密方法。

隨著計算機硬件的速度越來越快,制造一臺這樣特殊的機器的花費已經降到了十萬美元左右,而用它來保護十億美元的銀行,那顯然是不夠保險了。另一方面,如果只用它來保護一臺普通服務器,那么DES確實是一種好的辦法,因為黑客絕不會僅僅為入侵一個服務器而花那么多的錢破解DES密文。另一種非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大數不可能被質因數分解假設的公鑰體系。簡單地說就是找兩個很大的質數。一個對外公開的為“公鑰”(Prblic key) ,另一個不告訴任何人,稱為“私鑰”(Private key)。這兩個密鑰是互補的,也就是說用公鑰加密的密文可以用私鑰解密,反過來也一樣。

2數據加密方法

對稱加密算法是應用較早的加密算法,技術成熟。對稱式加密就是加密和解密使用同一個密鑰。在對稱加密算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理后,使其變成復雜的加密密文發送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密算法有DES、IDEA和AES。

3多步加密算法

下面將介紹一種嶄新的數據加密算法,這個算法在1998年6月1日才正式公布的,據說是幾乎不可能被破譯的。下面詳細的介紹這個算法:使用一系列的數字(比如說128位密鑰),來產生一個可重復的但高度隨機化的偽隨機的數字的序列。一次使用256個表項,使用隨機數序列來產生密碼轉表,把256個隨機數放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產生一個表,隨意排序的表,表中的數字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的。現在,產生了一個具體的256字節的表。讓這個隨機數產生器接著來產生這個表中的其余的數,以至于每個表是不同的。下一步,使用“shotgun technique”技術來產生解碼表?;旧险f,如果a映射到b,那么b一定可以映射到a,所以b[a[n]]=n.(n是一個在0到255之間的數)。在一個循環中賦值,使用一個256字節的解碼表它對應于我們剛才在上一步產生的256字節的加密表。

4加密技術的應用

現在人們開始用RSA(一種公開/私有密鑰)的加密技術,提高信用卡交易的安全性,從而使電子商務走向實用成為可能。NETSCAPE公司是Internet商業中領先技術的提供者,該公司提供了一種基于RSA和保密密鑰的應用于因特網的技術,被稱為安全插座層(Secure Sockets Layer,SSL)。

Socket是一個編程界面,并不提供任何安全措施,而SSL不但提供編程界面,而且向上提供一種安全的服務,SSL3.0現在已經應用到了服務器和瀏覽器上,SSL2.0則只能應用于服務器端。SSL3.0用一種電子證書(electric certificate)來實行身份進行驗證后,雙方就可以用保密密鑰進行安全的會話了。它同時使用“對稱”和“非對稱”加密方法,在客戶與電子商務的服務器進行溝通的過程中,客戶會產生一個Session Key,然后客戶用服務器端的公鑰將Session Key進行加密,再傳給服務器端,在雙方都知道Session Key后,傳輸的數據都是以Session Key進行加密與解密的,但服務器端發給用戶的公鑰必需先向有關發證機關申請,以得到公證。基于SSL3.0提供的安全保障,用戶就可以自由訂購商品并且給出信用卡號了,也可以在網上和合作伙伴交流商業信息并且讓供應商把訂單和收貨單從網上發過來,這樣可以節省大量的紙張,為公司節省大量的電話、傳真費用。

現在,越多越多的公司走向國際化,一個公司可能在多個國家都有辦事機構或銷售中心,每一個機構都有自己的局域網LAN(Local Area Network),但在當今的網絡社會人們的要求不僅如此,用戶希望將這些LAN連結在一起組成一個公司的廣域網,這個在現在已不是什么難事了。

篇7

關鍵詞:關系型數據庫;加密;加密算法;粒度

中圖分類號:F062.5文獻標志碼:A文章編號:1673-291X(2009)32-0258-02

數據庫技術是信息系統的核心和基礎,它的出現極大地促進了計算機應用向各行各業的滲透。數據庫的建設規模、數據庫信息量的大小和使用頻度已逐漸成為衡量一個國家信息化程度的重要標志。在眾多數據庫模型中關系型數據庫是現今使用最廣泛、最容易理解和使用的數據庫模型。大多數的企業級系統數據庫都采用關系型數據庫。下面本文就將對關系型數據庫加密進行一些探討性的研究。

1關系型數據庫加密的必要性

關系型數據庫系統的安全不僅依賴自身內部的安全機制,還與外部網絡環境、應用環境、從業人員素質等因素息息相關。因此,從廣義上講,數據庫系統的安全框架可以劃分為三個層次,即網絡系統層次、宿主操作系統層次、數據庫管理系統層次。

這三個層次構筑成數據庫系統的安全體系,與數據安全的關系是逐步緊密的,防范的重要性也逐層加強,從外到內、由表及里保證數據的安全。但是,值得注意的是OS和DBMS對數據庫文件本身仍然缺乏有效的保護措施,無法阻擋對數據文件本身的攻擊。最簡單的,如有人偷走了存放數據文件的硬盤,則文件中的信息將被泄露。

據有關資料報道,80%的計算機犯罪來自系統內部。在傳統的關系型數據庫系統中,數據庫管理員的權力是至高無上,他既負責各項系統管理工作,又可以查詢數據庫中的一切信息。為此,不少系統以種種手段來削弱系統管理員的權力。實現關系型數據庫加密以后,各用戶(或用戶組)的數據由用戶用自己的密鑰加密,數據庫管理員獲得的信息無法進行正常解密,從而保證了用戶信息的安全。

2關系型數據庫加密的要求與限制

2.1關系型數據庫加密的要求

由于關系型數據庫本身的特點和實際應用需求,對關系型數據庫加密一般應實現以下功能:

(1)由于關系型數據庫數據信息的生命周期一般比較長,所以加強加密的力度,難以破譯;

(2)數據信息在加密后,不能明顯地擴大存儲空間;

(3)不能影響數據庫的使用速度,即加/解密速度都應足夠快;

(4)加密系統應同時提供一套安全的、靈活的密鑰管理機構,提供靈活的加密要求滿足;

(5)加密后的關系型數據庫仍能滿足用戶在不同類別程度上的訪問。

2.2關系型數據庫加密的限制

數據加密通過對明文進行復雜的加密操作,以達到無法發現明文和密文之間、密文和密鑰之間的內在關系,復雜性已經破譯的難度要求足夠高,也就是說經過加密的數據經得起來自DS和DBMS的攻擊。另一方面,DBMS要完成對數據庫文件的管理和使用,必須具有能夠識別部分數據的條件。因此,只能對數據庫中數據進行部分加密。以下幾點是我們在給關系型數據庫加密時應該注意的問題。

(1)索引字段不能加密

為了達到快速查詢的目的,關系型數據庫文件需要建立一些索引,它們的建立和應用必須是明文狀態,否則將失去索引的作用。

(2)關系運算的比較字段不能加密

DBMS要組織和完成關系運算,運算的數據一般都要經過條件篩選,這種“條件”選擇項必須是明文,否則DBMS將無法進行比較篩選。

(3)表間的連接碼字段不能加密

關系型數據庫中表之間存在著密切的聯系,這種相關性往往是“外部編碼”聯系的,這些編碼若加密就無法進行表與表之間的連接運算。

3關系型數據庫加密方式

關系型數據庫加密方式數據庫加密,主要分為兩種方式:DBMS外部加密和DBMS內部加密。

3.1 DBMS外部加密

DBMS外部加密的優點是,不需要修改DBMS,只需要在應用程序或者操作系統中增加相應的加/解密模塊即可。但是,這種方法也有一些缺點,首先它不能支持各種加密粒度。其次,它僅僅對用戶數據進行加密,而不能對元數據、索引數據、日志等進行加密。因此,安全性受到影響。再者,數據的完整性檢查需要應用程序來完成,不能盡量發揮DBMS的作用,因為數據加密后,沒有辦法在DBMS完整性檢查,而需要在應用程序中增加這項功能,實現起來非常麻煩。

3.2 DBMS內部加密

一般選擇在數據物理存取之前進行加/解密操作。這種方法的優點是,由于DBMS能夠區分各種粒度的數據,所以,可以支持各種粒度的加密,加密粒度可以靈活地選擇。另外,在DBMS內部實現加密,可以更有效地利用DBMS內部的訪問控制機制、授權機制等各種功能。更重要的是,關系型數據庫一個重要特點是被多個應用共享,這種方法的加解密都是在DBMS內部完成,對應用程序是透明的,不需要在多個應用中進行修改,使用起來比較方便,且容易保持數據的一致性,缺點是需要修改DBMS的內核。關系型數據庫的關鍵術語有:數據庫、表、字段、行和數據元素?;旧峡梢葬槍@幾方面形成一種加密的方法。

(1)數據庫級

加密的對象是整個數據庫,對數據庫中所有的對象進行加密處理。這種加密方法只需要對存儲在磁盤中的相應數據庫文件進行加密處理即可,密鑰的數量少,便于管理。但是,采用此加密粒度,對性能會帶來很大的影響。即使只需要查詢一條記錄,也需要對整個數據庫進行解密。這樣,訪問的速度不可避免的要降低。

(2)表級

加密的對象是數據庫中的基本元素表。關系型數據庫包含多個表,并不是所有的表都有很高的安全需要,因而只需要對其中一些包含敏感信息的表進行加密。與數據庫級加密相比,采用表級加密粒度,系統的查詢性能會有所改善,因為對于未加密表的查詢,系統性能不會受到影響,對于加密表的查詢,只需要解密對應的加密表,而不要解密整個數據庫。但是,這種方法與DBMS集成時,需要對DBMS內部一些核心模塊進行修改,這些工作是很困難完成的。

(3)記錄級

加密的對象是數據表中的記錄,即對整條記錄一起進行加密處理。在實現記錄級加密時,通過調用專門的加密函數,對記錄進行加密。與數據庫和表級加密相比,這種加密的粒度更細,可選擇的靈活性更好。但是,它和表級加密一樣,這種方法也需要對DBMS內核進行修改。

(4)字段級

加密的對象是關系中的某個字段,即表中的列。一張表包含多個字段,在某些時候,并不是所有的字段都需要加密。因為在實際生活中,一些重要和敏感的信息往往出現在關系中的某些列,只需要對這些重要數據進行加密保護,而不用對所有字段。在實現字段級加密時,可以采取多種方式,既可以在DBMS外部完成,也可以在DBMS內部完成。

(5)數據項級

加密的對象是記錄中的某個字段值,它是數據庫加密的最小粒度。數據項級加密的方法更為靈活,它的實現方式與字段級加密相似,但其密鑰管理將會更加復雜。

4加密算法比較

加密算法是一些公式和法則,它規定了明文和密文之間的變換方法。密鑰是控制加密算法和解密算法的關鍵信息,它的產生、傳輸、存儲等工作是十分重要的。

DES算法,DES(Data Encryption Standard)是把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位,但只用到其中56位。Des的密碼學缺點是密鑰長度相對比較短,因此,人們又想出了一個解決其長度的方法,即采用三重DES,三重DES是DES的一種變形。

RSA算法,它是第一個既能用于數據加密也能用于數字簽名的算法。RSA的重大缺陷是無法從理論上把握它的保密性能如何,而且密碼學界多數人士傾向于因子分解不是NPC問題,RSA算法是第一個能同時用于加密和數字簽名的算法,也易于理解和操作。

AES算法,將在未來幾十年里代替DES在各個領域中得到廣泛應用,總體來說,AES作為新一代的數據加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優點。AES設計有三個密鑰長度:128、192、256位,相對而言,AES的128密鑰比DES的56密鑰強1 021倍。AES算法主要包括三個方面:輪變化、圈數和密鑰擴展。

5結束語

上面介紹的只是關系型數據庫加密方法的一些探討性研究,這些論述還遠遠沒達到關系型數據庫安全需要,比如現在的關系型數據庫基本都給與網絡架構,網際的安全傳輸等,也是要重點考慮的方面,等等。一個好的安全系統必須綜合考慮如何運用這些技術,以保證數據的安全。

參考文獻:

[1]胡志奇.數據庫安全與加密技術研究[J].計算機與現代化,2003,(11):24-3.

[2]王曉峰,王尚平,秦波.數據庫加密方法研究[J].西安理工大學學報,2002,(6):68-73.

篇8

1.1人為因素

計算機信息數據安全與否的問題,其重要性將直接關系到人們是否能夠正常運用計算機辦公工作的問題,但產生這種計算機信息數據安全問題最主要的影響因素也是因為人為所導致。部分計算機使用者意識到計算機網絡信息技術的發展發達已成為人們工作和生活中不可或缺的工具之一,為此他們為了利用這種計算機的高使用率來謀取個人利益,通過對計算機進行代碼的惡意編寫來對系統和網絡數據造成阻礙和破壞,甚至一些不法分子通過對計算機進行計算機網絡電子欺詐、病毒的導入或者是惡意的木馬植入等,這些行為都將直接對計算機的使用帶來可怕的安全隱患,對此,也只有通過對計算機信息數據在安全問題方面加以更強更高的研究分析和防范,利用加密技術和電腦安全技術來確保信息數據的安全性。

1.2非人為因素

計算機的信息數據安全問題,除了人為因素的存在,非人為因素也是影響計算機信息安全的重要因素。這種非人為因素的存在主要是針對計算機自身所出現的問題,其中包括了計算機所出現的硬件故障或者電磁波的信息干擾等問題。所以人們在使用計算機的過程中,要謹防和避免計算機出現這種問題,并通過對計算機的認識和使用學習更好地掌握如何通過采取必要的防范措施來避免這種情況的發生,從而有效地確保計算機的信息數據不被破壞和丟失。

1.3安全使用計算機的外在因素

作為計算機的廣大使用群體,習慣性地把計算機作為儲存設備將大量的個人信息和工作資料保存在計算機儲存盤里,要確保這些資料和信息能夠安全地儲存,就必須保證計算機本身所具備的安全性。而計算機本身的安全問題包括了計算機的軟件安全和硬件安全。對于計算機的硬件方面,需要計算機使用者經常對計算機進行檢查并在出現硬件故障時及時維修,從而保障計算機的正常運轉;而計算機軟件方面,通常最好安全殺毒軟件例如360安全衛士、金山衛士等等,這些殺毒軟件的安裝,能夠在計算機出現木馬、漏洞或者惡意代碼和各種不明病毒時自動為其清除,從而確保計算機信息數據的安全。

2計算機信息數據的加密技術

2.1計算機信息數據的存儲加密和傳輸加密

在計算機的廣泛使用過程中,計算機信息數據的存儲加密和傳輸加密是計算機信息數據安全的最關鍵的兩個過程。對于計算機信息數據的存儲加密技術,旨在通過計算機的運行來保障存儲資料信息能夠安全進行,這種存儲加密技術會因為存儲方式的區別,又將這種加密技術分為存儲控制、密文存儲這兩種不同的方式,通過這種方式能夠讓計算機在進行信息存儲過程中對用戶進行權限的限制,并通過一定的方式來對計算機使用者進行辨認,保證信息數據的合法安全性,從而確保計算機信息數據不被外人盜取;而計算機信息數據的傳輸加密技術,是保證計算機用戶在進行數據的傳輸時進行加密技術的處理,從而保障信息數據傳輸的安全性。這種計算機信息數據的傳輸加密技術又分為端—端加密和線路加密兩種類型,這兩種不同類型的傳輸加密技術主要是針對不同的加密密鑰進行加密的最重要的加密實現方法。當用戶在進行信息數據傳輸之前,這種信息傳輸加密技術就已經對信息進行了安全檢測并進行加密處理,使得信息數據在傳輸過程中不被外來人進行閱讀和識別,并在數據傳輸到達目的地之后,在驗證確認是接收者之后才能夠對這些信息數據進行解碼,從而供用戶安全使用。

2.2確認加密技術和密鑰管理加密技術

密鑰管理加密技術是通過密鑰的磁卡、半導體存儲器以及磁盤進行技術支持和管理,在計算機信息數據進行傳輸時,密鑰管理加密技術的運用,能夠對計算機信息數據在傳輸過程中的各個環節進行把關和控制管理,從而保證計算機信息數據的安全傳輸;而確認加密技術是對計算機數據信息的共享范圍進行了區別限制,通過這種識別性的共享限制技術來抵制一些不法分子通過惡意程序的修改和偽造所帶來的對計算機的破壞和導致的安全隱患,同時,這種確認加密技術能夠對計算機用戶接收到的信息數據進行識別和辨認,防止病毒或者木馬的攜帶,從而更好地確保計算機信息數據能夠安全有效地傳輸。

2.3加密技術中的消息摘要和完整性鑒別技術

對于計算機信息數據的加密技術中的消息摘要,是通過一個連接一個消息或者文本中單一的一個對應值所實現的加密類型;而完整性鑒別技術是一套比較完整的信息數據的鑒別系統,包括了信息數據、口令、身份鑒別和密鑰等多個內容所組成。計算機用戶在進行信息數據的傳輸時,系統自動會對這些信息數據進行驗證和檢測,對所輸入的內容信息進行判斷和識別,確認這些數據是否能夠與已設置的數值相吻合,從而確保信息數據的傳輸安全。

3結語

篇9

【關鍵詞】計算機信息數據;安全與加密技術

一、計算機信息數據安全隱患出現的影響因素

(一)計算機信息數據安全與否的問題,其重要性將直接關系到人們是否能夠正常運用計算機辦公工作的問題,但產生這種計算機信息數據安全問題最主要的影響因素也是因為人為所導致。部分計算機使用者意識到計算機網絡信息技術的發展發達已成為人們工作和生活中不可或缺的工具之一,為此他們為了利用這種計算機的高使用率來謀取個人利益,通過對計算機進行代碼的惡意編寫來對系統和網絡數據造成阻礙和破壞,甚至一些不法分子通過對計算機進行計算機網絡電子欺詐、病毒的導入或者是惡意的木馬植入等,這些行為都將直接對計算機的使用帶來可怕的安全隱患,對此,也只有通過對計算機信息數據在安全問題方面加以更強更高的研究分析和防范,利用加密技術和電腦安全技術來確保信息數據的安全性。

(二)計算機的信息數據安全問題,除了人為因素的存在,非人為因素也是影響計算機信息安全的重要因素。這種非人為因素的存在主要是針對計算機自身所出現的問題,其中包括了計算機所出現的硬件故障或者電磁波的信息干擾等問題。所以人們在使用計算機的過程中,要謹防和避免計算機出現這種問題,并通過對計算機的認識和使用學習更好地掌握如何通過采取必要的防范措施來避免這種情況的發生,從而有效地確保計算機的信息數據不被破壞和丟失。

(三)作為計算機的廣大使用群體,習慣性地把計算機作為儲存設備將大量的個人信息和工作資料保存在計算機儲存盤里,要確保這些資料和信息能夠安全地儲存,就必須保證計算機本身所具備的安全性。而計算機本身的安全問題包括了計算機的軟件安全和硬件安全。對于計算機的硬件方面,需要計算機使用者經常對計算機進行檢查并在出現硬件故障時及時維修,從而保障計算機的正常運轉;而計算機軟件方面,通常最好安全殺毒軟件例如360安全衛士、金山衛士等等,這些殺毒軟件的安裝,能夠在計算機出現木馬、漏洞或者惡意代碼和各種不明病毒時自動為其清除,從而確保計算機信息數據的安全。

二、計算機信息大數據安全面臨的挑戰

在信息化的時代,個人的安全和隱私是較為重要的問題。傳統的數據保護方式已經不能適應社會發展的潮流,大數據安全性面臨眾多的挑戰:第一,大數據隱私。數據的隱私包括兩方面內容:一方面,個人隱私保護,個人的興趣、愛好、身體特征、習慣等隱私部分容易被盜取。另一方面,即使得到用戶的允許,個人的財務、信息等重要隱私也有被泄露的風險。第二,數據質量。低質量的數據浪費傳輸和存放資源,甚至其發展被制約。其制約數據質量的因素很多,例如:采集、傳輸、生成以及存儲過程中都可能影響數據的質量發展。第三,大數據的安全機制。大數據的規模和種類為其保密性帶來了巨大的挑戰。面對結構化、半結構化和非結構化的數據需要進行有效的安全管理、安全通信和訪問控制。第四。信息安全領域大數據的應用。大數據為信息安全注入了新的活力,例如:病毒特征、攻擊特征以及漏洞特征等易通過大數據分析被掌握。除此之外,大數據為企業的內部管理和制度帶來便利和認可。信息時代下計算機大數據在某些方面會得到更加充分的利用,國家需要加大開發力度和發現人才。

三、計算機信息數據的加密技術的應用

(一)計算機信息數據的存儲加密和傳輸加密

在計算機的廣泛使用過程中,計算機信息數據的存儲加密和傳輸加密是計算機信息數據安全的最關鍵的兩個過程。對于計算機信息數據的存儲加密技術,旨在通過計算機的運行來保障存儲資料信息能夠安全進行,這種存儲加密技術會因為存儲方式的區別,又將這種加密技術分為存儲控制、密文存儲這兩種不同的方式,通過這種方式能夠讓計算機在進行信息存儲過程中對用戶進行權限的限制,并通過一定的方式來對計算機使用者進行辨認,保證信息數據的合法安全性,從而確保計算機信息數據不被外人盜??;而計算機信息數據的傳輸加密技術,是保證計算機用戶在進行數據的傳輸時進行加密技術的處理,從而保障信息數據傳輸的安全性。這種計算機信息數據的傳輸加密技術又分為端―端加密和線路加密兩種類型,這兩種不同類型的傳輸加密技術主要是針對不同的加密密鑰進行加密的最重要的加密實現方法。

(二)確認加密技術和密鑰管理加密技術

密鑰管理加密技術是通過密鑰的磁卡、半導體存儲器以及磁盤進行技術支持和管理,在計算機信息數據進行傳輸時,密鑰管理加密技術的運用,能夠對計算機信息數據在傳輸過程中的各個環節進行把關和控制管理,從而保證計算機信息數據的安全傳輸;而確認加密技術是對計算機數據信息的共享范圍進行了區別限制,通過這種識別性的共享限制技術來抵制一些不法分子通過惡意程序的修改和偽造所帶來的對計算機的破壞和導致的安全隱患,同時,這種確認加密技術能夠對計算機用戶接收到的信息數據進行識別和辨認,防止病毒或者木馬的攜帶,從而更好地確保計算機信息數據能夠安全有效地傳輸。

(三)加密技術中的消息摘要和完整性鑒別技術

對于計算機信息數據的加密技術中的消息摘要,是通過一個連接一個消息或者文本中單一的一個對應值所實現的加密類型;而完整性鑒別技術是一套比較完整的信息數據的鑒別系統,包括了信息數據、口令、身份鑒別和密鑰等多個內容所組成。計算機用戶在進行信息數據的傳輸時,系統自動會對這些信息數據進行驗證和檢測,對所輸入的內容信息進行判斷和識別,確認這些數據是否能夠與已設置的數值相吻合,從而確保信息數據的傳輸安全。

篇10

關鍵詞:數據加密方法;數據加密技術;信息安全

隨著計算機互聯網的驟步實現,數據加密技術顯得越來越重要。因為在競爭激烈的信息時代,信息不僅給我們帶來很大的方便,同樣,信息也可以用來對他們構成威脅、造成破壞。因此,在客觀上就需要一種強有力的安全措施來保護機密數據不被竊取或篡改,數據加密技術就應運而生。所謂數據加密(Data Encryption)技術是指將一個信息(或稱明文,plain text)經過加密鑰匙(Encryption key)及加密函數轉換,變成無意義的密文(cipher text),而接收方則將此密文經過解密函數、解密鑰匙(Decryption key)還原成明文。加密技術是網絡安全技術的基石。

1、數據加密技術

1.1 數據加密的概念

所謂加密[1],就是把數據信息即明文轉換為不可辨識的形式即密文的過程,目的是使不應了解該數據信息的人不能夠知道和識別。將密文轉變為明文的過程就是解密。加密和解密過程形成加密系統,明文與密文統稱為報文。任何加密系統,不論形式如何復雜,實現的算法如何不同,但其基本組成部分是相同的,通常都包括如下4個部分:

(1)需要加密的報文,也稱為明文;

(2)加密以后形成的報文,也稱為密文;

(3)加密、解密的裝置或算法;

(4)用于加密和解密的鑰匙,稱為密鑰。密鑰可以是數字、詞匯或者語句。

數據加密與解密從宏觀上講是非常簡單的,很容易理解。加密與解密的一些方法是非常直接的,很容易掌握,可以很方便的對機密數據進行加密和解密。數據加密技術要求只有在指定的用戶或網絡下,才能解除密碼而獲得原來的數據,這就需要給數據發送方和接受方以一些特殊的信息用于加解密,這就是所謂的密鑰。其密鑰的值是從大量的隨機數中選取的。

1.2 數據加密方法

1.2.1 基于單鑰技術的傳統加密方法

這類方法的特點是采用單鑰技術[2],即加密和解密過程中使用同一密鑰,所以它也稱為對稱式加密方法;這類方法主要包括代碼加密法、替換加密法、變位加密法和一次性密碼簿加密法等。

(1)代碼加密法。通信雙方使用預先設定的一組代碼表達特定的意義而實現的一種最簡單的加密方法。

(2)替換加密法。這種方法是制定一種規則,將明文中的每個字母或每組字母替換成另一個或一組字母。

(3)變位加密法。變位加密法不隱藏原來明文的字符,而是將字符重新排序。比如,加密方首先選擇一個用數字表示的密鑰,寫成一行,然后把明文逐行寫在數字下。按照密鑰中數字指示的順序,將原文重新抄寫,就形成密文。

(4)一次性密碼簿加密法。這種方法要先制定出一個密碼薄,該薄每一頁都是不同的代碼表。加密時,使用一頁上的代碼加密一些詞,用后撕掉或燒毀該頁;然后再用另一頁上的代碼加密另一些詞,直到全部的明文都加密成為密文。破譯密文的唯一辦法就是獲得一份相同的密碼簿。

又因為傳統的加密方法在許多方面有一定的局限性,于是人們又想出了很多算法來加強和改進這些方法。

1.2.2 改進的傳統加密方法

此類加密方法的共同特點是采用雙鑰技術,也就是加密和解密過程中使用兩個不同的密鑰,它也稱為非對稱式加密方法。這類方法主要包括數據加密標準DES、三層DES、RC2和RC4、數字摘要、國際數據加密算法IDEA和基于硬件的加密方法[3]。

(1)數據加密標準DES。DES(Data Encryption Standard)是一個對稱密鑰系統,加密和解密使用相同的密鑰。它通常選取一個64位(bit)的數據塊,使用56位的密鑰,在內部實現多次替換和變位操作來達到加密的目的。DES有ECB,CBC和CFB三種工作模式,其中ECB采用的是數據塊加密模式,CBC與CFB采用的是數據流加密模式。

(2)三層DES(Triple-DES)。這種方法是DES的改進加密算法,它使用兩把密鑰對報文作三次DES加密,效果相當于將DES密鑰的長度加倍。三層DES克服了DES的顯著缺點,即其56位的短密鑰。

(3)RC2和RC4。RC指Rivest Code,它是以發明人美國麻省理工學院的Ron Rivest教授的姓氏命名的,由RSADSI公司發行,是不公開的專有算法。RC2采用的是數據塊加密算法,RC4采用的是數據流加密算法。

(4)數字摘要(Digital Digest)。該加密方法也是由Ron Rivest設計的,也被稱為安全Hash編碼法SHA(Secure Hash Algorithm)或MD5(MD Standards for Message Digest)。SHA其實就是RC方法的一種實現。

(5)國際數據加密算法IDEA[4]。IDEA(International Data Encryption Algorithm)是1990年瑞士的James Massey,Xuejia Lai等人發表的一個數據塊加密算法。該算法使用128位的密鑰,能夠有效地消除試圖窮盡搜索密鑰的可能攻擊。

(6)基于硬件的加密算法。為克服軟件加密算法在容易復制、容易嘗試方面的不足,人們又開發了基于硬件的加密算法。

2、數據加密在銀行系統中的應用

隨著社會的進步,計算機信息系統廣泛地深入到社會各行各業,尤其是金融系統。隨著“網上銀行”的興起,銀行系統的安全問題顯得越來越重要,安全隱患已成為迫在眉睫的首要問題。為了解決銀行的安全隱患,因此新一級別的安全措施也就脫穎而出。數據加密就是其中之一。數據加密就是按照確定的密碼算法把敏感的明文數據變換成難以識別的密文數據,通過使用不同的密鑰,可用同一加密算法把同一明文加密成不同的密文。當需要時,可使用密鑰把密文數據還原成明文數據,稱為解密。這樣就可以實現數據的保密性。眾所周知,各種相關網絡安全的黑客和病毒都是依賴網絡平臺進行的,而如果在網絡平臺上就能切斷黑客和病毒的傳播途徑,那么就能更好地保證安全。眾多銀行如農業銀行、建設銀行、工商銀行等都采取了數據加密技術與網絡交換設備聯動。即是指交換機或防火墻在運行的過程中,將各種數據流的信息上報給安全設備,數字加密系統可根據上報信息和數據流內容進行檢測,在發現網絡安全事件的時候,進行有針對性的動作,并將這些對安全事件反應的動作發送到交換機或防火墻上,由交換機或防火墻來實現精確端口的關閉和斷開,這樣就可以使數據庫得到及時充分有效的保護。