楊超
(西華大學(xué),四川 成都 610039)
淺析數(shù)據(jù)加密技術(shù)
楊超
(西華大學(xué),四川 成都 610039)
我們經(jīng)常需要一種措施來保護(hù)我們的數(shù)據(jù),防止被一些懷有不良用心的人所看到或者破壞。在信息時代,信息可以幫助團(tuán)體或個人,使他們受益,同樣,信息也可以用來對他們構(gòu)成威脅,造成破壞。在競爭激烈的大公司中,工業(yè)間諜經(jīng)常會獲取對方的情報。因此,在客觀上就需要一種強(qiáng)有力的安全措施來保護(hù)機(jī)密數(shù)據(jù)不被竊取或篡改。數(shù)據(jù)加密與解密從宏觀上講是非常簡單的,很容易理解。加密與解密的一些方法是非常直接的,很容易掌握,可以很方便的對機(jī)密數(shù)據(jù)進(jìn)行加密和解密。
算法;數(shù)據(jù)加密
在傳統(tǒng)上,我們有幾種方法來加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實(shí)現(xiàn),但是當(dāng)我們只知道密文的時候,是不容易破譯這些加密算法的(當(dāng)同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對系統(tǒng)性能幾乎沒有影響,并且還可以帶來其他內(nèi)在的優(yōu)點(diǎn)。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對一些敏感數(shù)據(jù)是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。
幸運(yùn)的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達(dá)到加密的需要。每一個數(shù)據(jù)段(總是一個字節(jié))對應(yīng)著“置換表”中的一個偏移量,偏移量所對應(yīng)的值就輸出成為加密后的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實(shí)上,80x86 cpu系列就有一個指令‘xlat’在硬件級來完成這樣的工作。這種加密算法比較簡單,加密解密速度都很快,但是一旦這個“置換表”被對方獲得,那這個加密方案就完全被識破了。更進(jìn)一步講,這種加密算法對于黑客破譯來講是相當(dāng)直接的,只要找到一個“置換表”就可以了。這種方法在計算機(jī)出現(xiàn)之前就已經(jīng)被廣泛的使用。
對這種“置換表”方式的一個改進(jìn)就是使用2個或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。這時,破譯變的更加困難,因?yàn)楹诳捅仨氄_的做幾次變換。通過使用更多的“置換表”,并且按偽隨機(jī)的方式使用每個表,這種改進(jìn)的加密方法已經(jīng)變的很難破譯。比如,我們可以對所有的偶數(shù)位置的數(shù)據(jù)使用a表,對所有的奇數(shù)位置使用b表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切的知道用了兩張表。
循環(huán)冗余校驗(yàn)是一種典型的校驗(yàn)數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來產(chǎn)生一個16位或32位的校驗(yàn)和,這使得丟失一位或兩個位的錯誤一定會導(dǎo)致校驗(yàn)和出錯。
一個好的加密算法的重要特點(diǎn)之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產(chǎn)生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數(shù)學(xué)理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘a(chǎn)’執(zhí)行一個操作得到結(jié)果‘b’,那么我們可以基于‘b’,做一個相對應(yīng)的操作,導(dǎo)出輸入‘a(chǎn)’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數(shù)為0)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復(fù)的試驗(yàn),而這需要大量的處理時間。
rsa加密算法使用了兩個非常大的素數(shù)來產(chǎn)生公鑰和私鑰。即使從一個公鑰中通過因數(shù)分解可以得到私鑰,但這個運(yùn)算所包含的計算量是非常巨大的,以至于在現(xiàn)實(shí)上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實(shí)中加密算法都基于rsa加密算法。
現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說是幾乎不可能被破譯的。這個算法在1998年6月1日才正式公布的。下面詳細(xì)的介紹這個算法:
使用一系列的數(shù)字(比如說128位密鑰),來產(chǎn)生一個可重復(fù)的但高度隨機(jī)化的偽隨機(jī)的數(shù)字的序列。一次使用256個表項,使用隨機(jī)數(shù)序列來產(chǎn)生密碼轉(zhuǎn)表,如下所示:
把256個隨機(jī)數(shù)放在一個距陣中,然后對他們進(jìn)行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產(chǎn)生一個表,隨意排序的表,表中的數(shù)字在0到255之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的?,F(xiàn)在,產(chǎn)生了一個具體的256字節(jié)的表。讓這個隨機(jī)數(shù)產(chǎn)生器接著來產(chǎn)生這個表中的其余的數(shù),以至于每個表是不同的。下一步,使用“shotgun technique”技術(shù)來產(chǎn)生解碼表。基本上說,如果 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)生這樣的一個表,表的順序是隨機(jī),所以產(chǎn)生這256個字節(jié)的隨機(jī)數(shù)使用的是二次偽隨機(jī),使用了兩個額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個字節(jié)密文是這個256字節(jié)的表的索引。
由于在現(xiàn)實(shí)生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^程中不會被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應(yīng)該是足夠的困難,在現(xiàn)實(shí)上是不可能的,尤其是短時間內(nèi)。
[1] 朱聞亞.數(shù)據(jù)加密技術(shù)在計算機(jī)網(wǎng)絡(luò)安全中的應(yīng)用價值研究[J].制造業(yè)自動化,2012,34(6):35-36.DOI:10.3969/j.issn.1009-0134.2012.3(x).11.
楊超(1994—),男,漢族,四川南充人,本科,西華大學(xué),軟件工程專業(yè)。
TP393
A
1671-1602(2016)24-0025-01
??高強(qiáng).淺議網(wǎng)絡(luò)傳輸中數(shù)據(jù)的加密技術(shù)[J].中國新通信,2015,(24):3-4.
10.3969/j.issn.1673-4866.2015.24.003.