中文久久久字幕|亚洲精品成人 在线|视频精品5区|韩国国产一区

歡迎來(lái)到優(yōu)發(fā)表網(wǎng),期刊支持:400-888-9411 訂閱咨詢:400-888-1571股權(quán)代碼(211862)

購(gòu)物車(0)

期刊大全 雜志訂閱 SCI期刊 期刊投稿 出版社 公文范文 精品范文

加密技術(shù)論文范文

時(shí)間:2023-03-10 14:57:45

序論:在您撰寫加密技術(shù)論文時(shí),參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。

加密技術(shù)論文

第1篇

關(guān)鍵詞:混沌的基本原理加密算法性能評(píng)估

一、混沌的基本原理

混沌是一種復(fù)雜的非線性、非平衡的動(dòng)力學(xué)過(guò)程,其特點(diǎn)為:(1)混沌系統(tǒng)的行為是許多有序行為的集合,而每個(gè)有序分量在正常條件下,都不起主導(dǎo)作用;(2)混沌看起來(lái)似為隨機(jī),但都是確定的;(3)混沌系統(tǒng)對(duì)初始條件極為敏感,對(duì)于兩個(gè)相同的混沌系統(tǒng),若使其處于稍異的初態(tài)就會(huì)迅速變成完全不同的狀態(tài)。

1963年,美國(guó)氣象學(xué)家洛倫茲(Lorenz)提出混沌理論,認(rèn)為氣候從本質(zhì)上是不可預(yù)測(cè)的,最微小的條件改變將會(huì)導(dǎo)致巨大的天氣變化,這就是著名的“蝴蝶效應(yīng)”。此后混沌在各個(gè)領(lǐng)域都得到了不同程度的運(yùn)用。20世紀(jì)80年代開始,短短的二十幾年里,混沌動(dòng)力學(xué)得到了廣泛的應(yīng)用和發(fā)展。

二、混沌在加密算法中的應(yīng)用

混沌系統(tǒng)由于對(duì)初值的敏感性,很小的初值誤差就能被系統(tǒng)放大,因此,系統(tǒng)的長(zhǎng)期性是不可預(yù)測(cè)的;又因?yàn)榛煦缧蛄芯哂泻芎玫慕y(tǒng)計(jì)特性,所以它可以產(chǎn)生隨機(jī)數(shù)列,這些特性很適合于序列加密技術(shù)。信息論的奠基人美國(guó)數(shù)學(xué)家Shannon指出:若能以某種方式產(chǎn)生一隨機(jī)序列,這一序列由密鑰所確定,任何輸入值一個(gè)微小變化對(duì)輸出都具有相當(dāng)大影響,則利用這樣的序列就可以進(jìn)行加密?;煦缦到y(tǒng)恰恰符合這種要求。

混沌系統(tǒng)的特性使得它在數(shù)值分布上不符合概率統(tǒng)計(jì)學(xué)原理,得不到一個(gè)穩(wěn)定的概率分布特征;另外,混沌數(shù)集是實(shí)數(shù)范圍,還可以推廣到復(fù)數(shù)范圍。因此,從理論上講,利用混沌原理對(duì)數(shù)據(jù)進(jìn)行加密,可以防范頻率分析攻擊、窮舉攻擊等攻擊方法,使得密碼難于分析、破譯。

從1992年至今,混沌保密通信經(jīng)歷了四代?;煦缪谏w和混沌鍵控屬于第一代混沌保密通信技術(shù),安全性能非常低,實(shí)用性大大折扣?;煦缯{(diào)制屬于第二代混沌保密通信技術(shù),盡管第二代系統(tǒng)的安全性能比第一代高,但是仍然達(dá)不到滿意的程度。混沌加密技術(shù)屬于第三代混沌保密通信,該類方法將混沌和密碼學(xué)的優(yōu)點(diǎn)結(jié)合起來(lái),具有非常高的安全性能?;诿}沖同步的混沌通信則屬于第四代混沌保密通信。

三、混沌加密算法的性能評(píng)估

參考美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)協(xié)會(huì)(NIST)的評(píng)判規(guī)則LNIST的評(píng)判規(guī)則大體分為三個(gè)部分:安全性、代價(jià)和算法實(shí)現(xiàn)特性。介紹了一種基于Lorenz系統(tǒng)的混沌加密算法,以此標(biāo)準(zhǔn)分析了其性能,并將其與當(dāng)前通用加密算法進(jìn)行比較。

1.安全性分析

首先,混沌系統(tǒng)對(duì)初始值和參數(shù)非常敏感,可以提供很大的密鑰集合,完全滿足加密的需要。通過(guò)對(duì)混沌系統(tǒng)生成的二進(jìn)制序列進(jìn)行檢驗(yàn),0和1的分布均勻,游程符合隨機(jī)數(shù)要求,可以認(rèn)為是隨機(jī)序列。其次,混沌加密屬于流密碼,對(duì)分組加密的攻擊方法是無(wú)效的。同時(shí),對(duì)選擇明文ˆ密文攻擊方法,由于混沌的單向性和混沌信號(hào)的迭代處理,異或操作后密鑰流的推斷幾乎不可能。

第2篇

一:數(shù)據(jù)加密方法

在傳統(tǒng)上,我們有幾種方法來(lái)加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實(shí)現(xiàn),但是當(dāng)我們只知道密文的時(shí)候,是不容易破譯這些加密算法的(當(dāng)同時(shí)有原文和密文時(shí),破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對(duì)系統(tǒng)性能幾乎沒(méi)有影響,并且還可以帶來(lái)其他內(nèi)在的優(yōu)點(diǎn)。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對(duì)一些敏感數(shù)據(jù)是無(wú)效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。

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

對(duì)這種“置換表”方式的一個(gè)改進(jìn)就是使用2個(gè)或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。這時(shí),破譯變的更加困難,因?yàn)楹诳捅仨氄_的做幾次變換。通過(guò)使用更多的“置換表”,并且按偽隨機(jī)的方式使用每個(gè)表,這種改進(jìn)的加密方法已經(jīng)變的很難破譯。比如,我們可以對(duì)所有的偶數(shù)位置的數(shù)據(jù)使用a表,對(duì)所有的奇數(shù)位置使用b表,即使黑客獲得了明文和密文,他想破譯這個(gè)加密方案也是非常困難的,除非黑客確切的知道用了兩張表。

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

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

在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時(shí)就需要產(chǎn)生一些校驗(yàn)碼,并且把這些校驗(yàn)碼插入到數(shù)據(jù)流中。這樣做對(duì)數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計(jì)算機(jī)程序的病毒才不會(huì)在意這些數(shù)據(jù)或程序是否加過(guò)密,是否有數(shù)字簽名。所以,加密程序在每次load到內(nèi)存要開始執(zhí)行時(shí),都要檢查一下本身是否被病毒感染,對(duì)與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應(yīng)該保密的,因?yàn)椴《境绦虻木帉懻邔?huì)利用這些來(lái)破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。

循環(huán)冗余校驗(yàn)是一種典型的校驗(yàn)數(shù)據(jù)的方法。對(duì)于每一個(gè)數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來(lái)產(chǎn)生一個(gè)16位或32位的校驗(yàn)和,這使得丟失一位或兩個(gè)位的錯(cuò)誤一定會(huì)導(dǎo)致校驗(yàn)和出錯(cuò)。這種方式很久以來(lái)就應(yīng)用于文件的傳輸,例如xmodem-crc。這是方法已經(jīng)成為標(biāo)準(zhǔn),而且有詳細(xì)的文檔。但是,基于標(biāo)準(zhǔn)crc算法的一種修改算法對(duì)于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯(cuò)誤和文件是否被病毒感染是很有效的。

二.基于公鑰的加密算法

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

rsa加密算法使用了兩個(gè)非常大的素?cái)?shù)來(lái)產(chǎn)生公鑰和私鑰。即使從一個(gè)公鑰中通過(guò)因數(shù)分解可以得到私鑰,但這個(gè)運(yùn)算所包含的計(jì)算量是非常巨大的,以至于在現(xiàn)實(shí)上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實(shí)中加密算法都基于rsa加密算法。pgp算法(以及大多數(shù)基于rsa算法的加密方法)使用公鑰來(lái)加密一個(gè)對(duì)稱加密算法的密鑰,然后再利用一個(gè)快速的對(duì)稱加密算法來(lái)加密數(shù)據(jù)。這個(gè)對(duì)稱算法的密鑰是隨機(jī)產(chǎn)生的,是保密的,因此,得到這個(gè)密鑰的唯一方法就是使用私鑰來(lái)解密。

我們舉一個(gè)例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個(gè)密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個(gè)分割符或文件長(zhǎng)度,以區(qū)分?jǐn)?shù)據(jù)和密鑰),然后,使用對(duì)稱加密算法加密正文,使用的密鑰就是‘12345’。當(dāng)對(duì)方收到時(shí),解密程序找到加密過(guò)的密鑰,并利用rsa私鑰解密出來(lái),然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來(lái)解密數(shù)據(jù)。這樣就使得一個(gè)可靠的經(jīng)過(guò)高效加密的數(shù)據(jù)安全地傳輸和解密。

一些簡(jiǎn)單的基于rsa算法的加密算法可在下面的站點(diǎn)找到:

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

三.一個(gè)嶄新的多步加密算法

現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說(shuō)是幾乎不可能被破譯的。這個(gè)算法在1998年6月1日才正式公布的。下面詳細(xì)的介紹這個(gè)算法:

使用一系列的數(shù)字(比如說(shuō)128位密鑰),來(lái)產(chǎn)生一個(gè)可重復(fù)的但高度隨機(jī)化的偽隨機(jī)的數(shù)字的序列。一次使用256個(gè)表項(xiàng),使用隨機(jī)數(shù)序列來(lái)產(chǎn)生密碼轉(zhuǎn)表,如下所示:

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

使用這個(gè)方法,已經(jīng)可以產(chǎn)生這樣的一個(gè)表,表的順序是隨機(jī),所以產(chǎn)生這256個(gè)字節(jié)的隨機(jī)數(shù)使用的是二次偽隨機(jī),使用了兩個(gè)額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個(gè)字節(jié)密文是這個(gè)256字節(jié)的表的索引。或者,為了提高加密效果,可以使用多余8位的值,甚至使用校驗(yàn)和或者crc算法來(lái)產(chǎn)生索引字節(jié)。假定這個(gè)表是256*256的數(shù)組,將會(huì)是下面的樣子:

crypto1=a[crypto0][value]

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

加密時(shí)所產(chǎn)生的偽隨機(jī)序列是很隨意的,可以設(shè)計(jì)成想要的任何序列。沒(méi)有關(guān)于這個(gè)隨機(jī)序列的詳細(xì)的信息,解密密文是不現(xiàn)實(shí)的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉(zhuǎn)化成一些隨機(jī)的沒(méi)有任何意義的亂碼,每一個(gè)字節(jié)都依賴于其前一個(gè)字節(jié)的密文,而不是實(shí)際的值。對(duì)于任一個(gè)單個(gè)的字符的這種變換來(lái)說(shuō),隱藏了加密數(shù)據(jù)的有效的真正的長(zhǎng)度。

如果確實(shí)不理解如何來(lái)產(chǎn)生一個(gè)隨機(jī)數(shù)序列,就考慮fibbonacci數(shù)列,使用2個(gè)雙字(64位)的數(shù)作為產(chǎn)生隨機(jī)數(shù)的種子,再加上第三個(gè)雙字來(lái)做xor操作。這個(gè)算法產(chǎn)生了一系列的隨機(jī)數(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)生一系列的隨機(jī)數(shù)字,比如說(shuō),在0和列表中所有的隨機(jī)數(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)該是一個(gè)排過(guò)序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個(gè)數(shù)組是非常有用的,例如:對(duì)一個(gè)字節(jié)對(duì)字節(jié)的轉(zhuǎn)換表,就可以很容易并且非??煽康膩?lái)產(chǎn)生一個(gè)短的密鑰(經(jīng)常作為一些隨機(jī)數(shù)的種子)。這樣一個(gè)表還有其他的用處,比如說(shuō):來(lái)產(chǎn)生一個(gè)隨機(jī)的字符,計(jì)算機(jī)游戲中一個(gè)物體的隨機(jī)的位置等等。上面的例子就其本身而言并沒(méi)有構(gòu)成一個(gè)加密算法,只是加密算法一個(gè)組成部分。

作為一個(gè)測(cè)試,開發(fā)了一個(gè)應(yīng)用程序來(lái)測(cè)試上面所描述的加密算法。程序本身都經(jīng)過(guò)了幾次的優(yōu)化和修改,來(lái)提高隨機(jī)數(shù)的真正的隨機(jī)性和防止會(huì)產(chǎn)生一些短的可重復(fù)的用于加密的隨機(jī)數(shù)。用這個(gè)程序來(lái)加密一個(gè)文件,破解這個(gè)文件可能會(huì)需要非常巨大的時(shí)間以至于在現(xiàn)實(shí)上是不可能的。

四.結(jié)論:

由于在現(xiàn)實(shí)生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^(guò)程中不會(huì)被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個(gè)人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個(gè)特定時(shí)期的安全,也就是說(shuō),密文的破解應(yīng)該是足夠的困難,在現(xiàn)實(shí)上是不可能的,尤其是短時(shí)間內(nèi)。

參考文獻(xiàn):

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篇

計(jì)算機(jī)網(wǎng)絡(luò)安全的威脅的形式多種多樣,主要包括:①來(lái)源威脅?,F(xiàn)在的計(jì)算機(jī)操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)幾乎都是從國(guó)外引進(jìn)的,具有一定的安全威脅。②環(huán)境威脅。我國(guó)關(guān)于網(wǎng)絡(luò)治安的法律還不完善,網(wǎng)絡(luò)技術(shù)本身也有很多不完善的地方。③病毒威脅。計(jì)算機(jī)病毒具有很強(qiáng)的破壞性,對(duì)計(jì)算機(jī)網(wǎng)絡(luò)安全來(lái)說(shuō)是一個(gè)很大的威脅。④網(wǎng)絡(luò)人員威脅。網(wǎng)絡(luò)管理員是離網(wǎng)絡(luò)機(jī)密最近的人,他們的素質(zhì)和人品對(duì)計(jì)算機(jī)網(wǎng)絡(luò)安全有很大的影響。⑤設(shè)備故障威脅。設(shè)備故障通信就會(huì)中斷,這對(duì)網(wǎng)絡(luò)系統(tǒng)的安全也會(huì)產(chǎn)生很大的影響⑥傳輸渠道威脅。網(wǎng)絡(luò)信息在傳輸過(guò)程中有被竊取、篡改、偽造的危險(xiǎn)。計(jì)算機(jī)網(wǎng)絡(luò)安全中主要存在三種隱患:①電子郵件隱患。電子郵件在我們的生活中應(yīng)用非常廣泛,但是,其中隱藏著非常大的隱患。網(wǎng)絡(luò)黑客們很可能會(huì)通過(guò)發(fā)垃圾郵件的方式,使用戶的郵箱爆滿,影響用戶郵箱的正常使用。②口令入侵隱患??诹钊肭蛛[患是指網(wǎng)絡(luò)黑客們通過(guò)非法途徑入侵用戶的口令,對(duì)用戶的電腦實(shí)行攻擊。③網(wǎng)址欺騙隱患。網(wǎng)絡(luò)欺騙隱患是指網(wǎng)絡(luò)黑客們通過(guò)篡改網(wǎng)頁(yè)和網(wǎng)址的信息,使用戶訪問(wèn)網(wǎng)站的時(shí)候出現(xiàn)網(wǎng)絡(luò)安全漏洞,然后,網(wǎng)絡(luò)黑客們就會(huì)利用這些網(wǎng)絡(luò)安全漏洞對(duì)用戶的電腦實(shí)行攻擊。

2計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)的分析

2.1加密技術(shù)

加密技術(shù)是計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)的重要組成部分,一般分為對(duì)稱加密技術(shù)、非對(duì)稱加密技術(shù)和RSA算法三種。對(duì)稱加密技術(shù)中信息的加密和解密使用的鑰匙是相同的,一般稱為“SessionKey”。只要在交換階段不泄露自己的私有密匙,就可以保證計(jì)算機(jī)系統(tǒng)的機(jī)密性。但是,這種加密技術(shù)也存在著不足之處,交換雙方共有使用一把私有密匙,所有的信息都是通過(guò)這把私有密匙傳遞的,不是很安全。在飛對(duì)稱加密技術(shù)中,密匙分為公開密匙和私有密匙兩個(gè),公開密匙用來(lái)加密,私有密匙用來(lái)解密。公開密匙可以公布,私有密匙只有交換雙方知道,安全性更有保證。RSA算法是Rivest、Shamir和Adleman提出出的第一個(gè)完整的公鑰密碼體制,至今為止,還沒(méi)人找到一個(gè)有效的算法來(lái)分解兩大素?cái)?shù)之積,安全性有保障。

2.2防病毒技術(shù)

計(jì)算機(jī)病毒是網(wǎng)絡(luò)系統(tǒng)中最大的攻擊者,具有很強(qiáng)的傳染性和破壞力。而且,一旦計(jì)算機(jī)病毒發(fā)動(dòng)攻擊,就會(huì)造成很大的影響。防病毒技術(shù)主要包括三種:預(yù)防技術(shù)、檢測(cè)技術(shù)和消除技術(shù)。預(yù)防技術(shù)主要是指在利用一定的安全技術(shù)手段防御病毒破壞計(jì)算機(jī)系統(tǒng),包括對(duì)未知病毒和已知病毒的預(yù)防,主要包括讀寫控制技術(shù)、系統(tǒng)監(jiān)控技術(shù)、加密可執(zhí)行程序等等。檢測(cè)技術(shù)主要是指利用計(jì)算機(jī)安全技術(shù)檢測(cè)計(jì)算機(jī)技術(shù)的一種技術(shù),主要包括檢測(cè)計(jì)算機(jī)病毒特征的檢測(cè)技術(shù)和檢測(cè)文件自身的技術(shù)兩種計(jì)算機(jī)檢測(cè)技術(shù)。消除技術(shù)主要是指通過(guò)分析計(jì)算機(jī)病毒,開發(fā)出消除計(jì)算機(jī)病毒并恢復(fù)原文件的一種技術(shù)。

2.3PKI技術(shù)

PKI技術(shù)是PublieKeyInfrastueture,即公鑰基礎(chǔ)設(shè)施的意思。PKI技術(shù)主要是指使用數(shù)字證書和公開密匙兩種方式對(duì)網(wǎng)絡(luò)系統(tǒng)安全進(jìn)行雙重保護(hù),而且還會(huì)對(duì)數(shù)字證書持有者進(jìn)行驗(yàn)證的一種技術(shù)。。PKI技術(shù)會(huì)提供認(rèn)證、加密、完整、安全通信、特權(quán)管理、密鑰管理等服務(wù)。PKI技術(shù)是計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)的核心,在電子商務(wù)中也得到廣泛的應(yīng)用。

2.4防火墻技術(shù)

防火墻主要是指設(shè)置在不懂網(wǎng)絡(luò)安全區(qū)域之間的唯一出入口,防火墻本身具有很強(qiáng)的抗攻擊能力,為計(jì)算機(jī)系統(tǒng)提供信息安全服務(wù),抗御網(wǎng)絡(luò)黑客們的入侵。防火墻的形式各種各樣,但是,防火墻主要可以分為兩大類:“包過(guò)濾型”和“應(yīng)用型”?!鞍^(guò)濾型”是對(duì)數(shù)據(jù)包的包頭源地址、目的地址、端口號(hào)和協(xié)議類型等進(jìn)行過(guò)濾,通過(guò)的就轉(zhuǎn)發(fā)到與之相對(duì)應(yīng)的目的地,未通過(guò)的就丟棄“。應(yīng)用型”是先對(duì)網(wǎng)絡(luò)信息流進(jìn)行阻斷,然后利用專用的程序?qū)W(wǎng)絡(luò)信息流進(jìn)行監(jiān)視和控制。

2.5安全隔離技術(shù)

安全隔離技術(shù)主要是指將計(jì)算機(jī)網(wǎng)絡(luò)中的有害攻擊阻隔在可信的網(wǎng)絡(luò)區(qū)域之外,在確信計(jì)算機(jī)網(wǎng)絡(luò)可信區(qū)域內(nèi)部的信息不泄露的情況下,進(jìn)行計(jì)算機(jī)網(wǎng)絡(luò)之間的信息交換的技術(shù)。安全隔離技術(shù)發(fā)展到現(xiàn)在,一共經(jīng)歷五個(gè)階段:完全的隔離、硬件卡隔離、數(shù)據(jù)轉(zhuǎn)播隔離、空氣開關(guān)隔離、安全通道隔離。其中安全通道隔離是現(xiàn)代安全隔離技術(shù)發(fā)展的主要方向。

3結(jié)束語(yǔ)

第4篇

首先是對(duì)稱加密技術(shù)。對(duì)稱加密技術(shù)是用相同的鑰匙對(duì)信息進(jìn)行加密和解鎖,換言之就是一把鑰匙開一把鎖。這種加密方法使加密過(guò)程得到了簡(jiǎn)化,交換信息的雙方不需要互相交換和研究專用的加密方法。在交換階段一定要確保私有鑰匙沒(méi)有被泄漏,才可以保證報(bào)文的機(jī)密性和完整性。但是這種技術(shù)還是存在一些不足,如假設(shè)交換的一方對(duì)應(yīng)的是多個(gè)交換對(duì)象,那么他就一定要維護(hù)多把鑰匙。其次是非對(duì)稱加密技術(shù)。密鑰在非對(duì)稱加密中被分解成私有密鑰和公開密鑰。這種技術(shù)當(dāng)前被廣泛的應(yīng)用在了身份確認(rèn)和數(shù)據(jù)簽名等領(lǐng)域。

2網(wǎng)絡(luò)安全技術(shù)發(fā)展呈現(xiàn)出的現(xiàn)狀

2.1我國(guó)不具備自主研發(fā)的軟件核心技術(shù)

數(shù)據(jù)庫(kù)、操作系統(tǒng)以及CPU是網(wǎng)絡(luò)安全核心其中最為主要的三個(gè)部分?,F(xiàn)階段,雖然大多數(shù)企業(yè)都已經(jīng)在建設(shè)和維護(hù)網(wǎng)絡(luò)安全方面消耗了大量的資金,但是,由于大部分的網(wǎng)絡(luò)設(shè)備及軟件都不是我國(guó)自主研發(fā)的,而是從國(guó)外進(jìn)口的,這就導(dǎo)致我國(guó)的網(wǎng)絡(luò)安全技術(shù)難以跟上時(shí)展的腳步,在處于這種競(jìng)爭(zhēng)劣勢(shì)下,就極易成為別國(guó)竊聽和打擊的對(duì)象。除此之外,國(guó)外一些殺毒系統(tǒng)和操作系統(tǒng)的開發(fā)商幾乎已經(jīng)在將中國(guó)的軟件市場(chǎng)壟斷?;谏鲜鲞@些情況,我國(guó)一定要進(jìn)一步加快研發(fā)軟件核心技術(shù)的速度,根據(jù)我國(guó)發(fā)展的實(shí)際情況,將能夠確保我國(guó)網(wǎng)絡(luò)安全運(yùn)營(yíng)的軟件技術(shù)有效地開發(fā)出來(lái)。

2.2安全技術(shù)不具備較高的防護(hù)能力

我國(guó)的各個(gè)企事業(yè)單位在現(xiàn)階段都幾乎已經(jīng)建立起了專屬網(wǎng)站,并且,電子商務(wù)也正處在快速發(fā)展的狀態(tài)之中。但是,所應(yīng)用的系統(tǒng)大部分都處在沒(méi)有設(shè)防的狀態(tài)中,所以很有可能會(huì)埋下各種各樣的安全隱患。并且在進(jìn)行網(wǎng)絡(luò)假設(shè)的過(guò)程中,大多數(shù)企業(yè)沒(méi)有及時(shí)采取各種技術(shù)防范措施來(lái)確保網(wǎng)絡(luò)的安全。

2.3高素質(zhì)的技術(shù)人才比較欠缺

由于互聯(lián)網(wǎng)通信成本相對(duì)較低,因此,服務(wù)器和配置器的種類變得越來(lái)越多,功能也變得更加完善,性能也變得更好。但是,不管是人才數(shù)量方面或者是專業(yè)水平方面,其專業(yè)技術(shù)人員都難以對(duì)當(dāng)今的網(wǎng)絡(luò)安全需要形成更好的適應(yīng)性。此外,網(wǎng)絡(luò)管理人員不具備較強(qiáng)的安全管理導(dǎo)向能力,如,當(dāng)計(jì)算機(jī)系統(tǒng)出現(xiàn)崩潰的情況時(shí),網(wǎng)絡(luò)管理人員難以及時(shí)有效地提出有效的解決對(duì)策。

3網(wǎng)絡(luò)安全技術(shù)的發(fā)展趨勢(shì)

3.1深度分析計(jì)算機(jī)網(wǎng)絡(luò)安全內(nèi)容

各種類型不同的網(wǎng)絡(luò)安全威脅因素隨著互聯(lián)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展而出現(xiàn)。相應(yīng)地網(wǎng)絡(luò)安全技術(shù)也一定要不斷獲得提升和發(fā)展。加強(qiáng)識(shí)別網(wǎng)絡(luò)安全技術(shù)的方法主要包括以下幾點(diǎn):第一,要以安全防護(hù)的相關(guān)內(nèi)容為出發(fā)點(diǎn),加強(qiáng)分析網(wǎng)絡(luò)安全技術(shù)深度防護(hù)的力度,主要是對(duì)網(wǎng)絡(luò)安全行為的內(nèi)容和網(wǎng)絡(luò)安全防護(hù)的匹配這兩個(gè)方面進(jìn)行分析?;谔卣鲙?kù)簽名的深度報(bào)文的特征匹配是當(dāng)前比較常用的一種安全防護(hù)分析方法,即根據(jù)報(bào)文的深度內(nèi)容展開有針對(duì)性的分析,利用這種途徑來(lái)獲取網(wǎng)絡(luò)安全攻擊的特征,并利用特征庫(kù)對(duì)匹配的網(wǎng)絡(luò)攻擊內(nèi)容進(jìn)行搜索,同時(shí)還要及時(shí)采取相應(yīng)的防御措施。還有,基于安全防護(hù)的職能分析以及基于網(wǎng)絡(luò)行為的模型學(xué)習(xí)也同樣是一種較好的網(wǎng)絡(luò)安全技術(shù)手段,即通過(guò)模擬具有特征性的網(wǎng)絡(luò)行為以及分析網(wǎng)絡(luò)行為的特征獲取網(wǎng)絡(luò)攻擊行為的提前預(yù)警,這樣就可以為保護(hù)計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)有力的條件。

3.2把網(wǎng)絡(luò)安全產(chǎn)業(yè)鏈轉(zhuǎn)變成生態(tài)環(huán)境

產(chǎn)業(yè)價(jià)值鏈在近幾年時(shí)間里隨著不斷發(fā)展的計(jì)算機(jī)技術(shù)及行業(yè)也相應(yīng)的發(fā)生了巨大的變化,它的價(jià)值鏈變得越來(lái)越復(fù)雜。此外,生態(tài)環(huán)境的變化速度已經(jīng)在很大程度上超過(guò)了預(yù)期環(huán)境的變化速度,按照這種趨勢(shì)發(fā)展下去,在未來(lái)網(wǎng)絡(luò)技術(shù)發(fā)展的過(guò)程中,各個(gè)參與方一定要加強(qiáng)自身對(duì)市場(chǎng)要求的適應(yīng)能力。

3.3網(wǎng)絡(luò)安全技術(shù)將會(huì)朝著自動(dòng)化和智能化的方向發(fā)展

我國(guó)現(xiàn)階段的網(wǎng)絡(luò)安全技術(shù)要得到優(yōu)化需要經(jīng)歷一個(gè)長(zhǎng)期的過(guò)程,它貫穿于網(wǎng)絡(luò)發(fā)展的始終。此外,智能化的網(wǎng)絡(luò)優(yōu)化手段已經(jīng)開始逐步取代人工化的網(wǎng)絡(luò)優(yōu)化手段。同時(shí),還可以將網(wǎng)絡(luò)優(yōu)化知識(shí)庫(kù)建立起來(lái),進(jìn)而針對(duì)一些存在于網(wǎng)絡(luò)運(yùn)行中的質(zhì)量問(wèn)題,將更多切實(shí)可行的解決措施提供給網(wǎng)絡(luò)管理者。所以,國(guó)內(nèi)網(wǎng)絡(luò)安全技術(shù)在未來(lái)幾年時(shí)間里會(huì)在IMS的基礎(chǔ)上將固定的NGN技術(shù)研制出來(lái)。這項(xiàng)技術(shù)的成功研制能夠給企事業(yè)的發(fā)展提供更豐富的業(yè)務(wù)支持。

3.4朝著網(wǎng)絡(luò)大容量的方向發(fā)展

國(guó)內(nèi)互聯(lián)網(wǎng)的業(yè)務(wù)量在近幾年時(shí)間里呈現(xiàn)出迅猛增長(zhǎng)的態(tài)勢(shì),尤其是針對(duì)那些IP為主的數(shù)據(jù)業(yè)務(wù)而言,對(duì)交換機(jī)以及路由器的處理能力均提出了較高的要求。因?yàn)橄胍獙?duì)語(yǔ)音、圖像等業(yè)務(wù)需求形成更好的滿足,因此,要求IP網(wǎng)絡(luò)一定要具備較強(qiáng)的包轉(zhuǎn)發(fā)和處理能力,那么,未來(lái)的網(wǎng)絡(luò)在不出意外的情況下一定會(huì)朝著大容量的方向發(fā)展。國(guó)內(nèi)網(wǎng)絡(luò)在今后發(fā)展的過(guò)程中,一定要廣泛應(yīng)用硬件交換、分組轉(zhuǎn)發(fā)引擎,促使網(wǎng)絡(luò)系統(tǒng)的整體性能得到切實(shí)提升。

4結(jié)語(yǔ)

第5篇

一:數(shù)據(jù)加密方法

在傳統(tǒng)上,我們有幾種方法來(lái)加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實(shí)現(xiàn),但是當(dāng)我們只知道密文的時(shí)候,是不容易破譯這些加密算法的(當(dāng)同時(shí)有原文和密文時(shí),破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對(duì)系統(tǒng)性能幾乎沒(méi)有影響,并且還可以帶來(lái)其他內(nèi)在的優(yōu)點(diǎn)。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對(duì)一些敏感數(shù)據(jù)是無(wú)效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。

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

對(duì)這種“置換表”方式的一個(gè)改進(jìn)就是使用2個(gè)或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。這時(shí),破譯變的更加困難,因?yàn)楹诳捅仨氄_的做幾次變換。通過(guò)使用更多的“置換表”,并且按偽隨機(jī)的方式使用每個(gè)表,這種改進(jìn)的加密方法已經(jīng)變的很難破譯。比如,我們可以對(duì)所有的偶數(shù)位置的數(shù)據(jù)使用a表,對(duì)所有的奇數(shù)位置使用b表,即使黑客獲得了明文和密文,他想破譯這個(gè)加密方案也是非常困難的,除非黑客確切的知道用了兩張表。

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

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

在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時(shí)就需要產(chǎn)生一些校驗(yàn)碼,并且把這些校驗(yàn)碼插入到數(shù)據(jù)流中。這樣做對(duì)數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計(jì)算機(jī)程序的病毒才不會(huì)在意這些數(shù)據(jù)或程序是否加過(guò)密,是否有數(shù)字簽名。所以,加密程序在每次load到內(nèi)存要開始執(zhí)行時(shí),都要檢查一下本身是否被病毒感染,對(duì)與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應(yīng)該保密的,因?yàn)椴《境绦虻木帉懻邔?huì)利用這些來(lái)破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。

循環(huán)冗余校驗(yàn)是一種典型的校驗(yàn)數(shù)據(jù)的方法。對(duì)于每一個(gè)數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來(lái)產(chǎn)生一個(gè)16位或32位的校驗(yàn)和,這使得丟失一位或兩個(gè)位的錯(cuò)誤一定會(huì)導(dǎo)致校驗(yàn)和出錯(cuò)。這種方式很久以來(lái)就應(yīng)用于文件的傳輸,例如xmodem-crc。這是方法已經(jīng)成為標(biāo)準(zhǔn),而且有詳細(xì)的文檔。但是,基于標(biāo)準(zhǔn)crc算法的一種修改算法對(duì)于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯(cuò)誤和文件是否被病毒感染是很有效的。

二.基于公鑰的加密算法

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

rsa加密算法使用了兩個(gè)非常大的素?cái)?shù)來(lái)產(chǎn)生公鑰和私鑰。即使從一個(gè)公鑰中通過(guò)因數(shù)分解可以得到私鑰,但這個(gè)運(yùn)算所包含的計(jì)算量是非常巨大的,以至于在現(xiàn)實(shí)上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實(shí)中加密算法都基于rsa加密算法。pgp算法(以及大多數(shù)基于rsa算法的加密方法)使用公鑰來(lái)加密一個(gè)對(duì)稱加密算法的密鑰,然后再利用一個(gè)快速的對(duì)稱加密算法來(lái)加密數(shù)據(jù)。這個(gè)對(duì)稱算法的密鑰是隨機(jī)產(chǎn)生的,是保密的,因此,得到這個(gè)密鑰的唯一方法就是使用私鑰來(lái)解密。

我們舉一個(gè)例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個(gè)密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個(gè)分割符或文件長(zhǎng)度,以區(qū)分?jǐn)?shù)據(jù)和密鑰),然后,使用對(duì)稱加密算法加密正文,使用的密鑰就是‘12345’。當(dāng)對(duì)方收到時(shí),解密程序找到加密過(guò)的密鑰,并利用rsa私鑰解密出來(lái),然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來(lái)解密數(shù)據(jù)。這樣就使得一個(gè)可靠的經(jīng)過(guò)高效加密的數(shù)據(jù)安全地傳輸和解密。

一些簡(jiǎn)單的基于rsa算法的加密算法可在下面的站點(diǎn)找到:

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

三.一個(gè)嶄新的多步加密算法

現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說(shuō)是幾乎不可能被破譯的。這個(gè)算法在1998年6月1日才正式公布的。下面詳細(xì)的介紹這個(gè)算法:

使用一系列的數(shù)字(比如說(shuō)128位密鑰),來(lái)產(chǎn)生一個(gè)可重復(fù)的但高度隨機(jī)化的偽隨機(jī)的數(shù)字的序列。一次使用256個(gè)表項(xiàng),使用隨機(jī)數(shù)序列來(lái)產(chǎn)生密碼轉(zhuǎn)表,如下所示:

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

使用這個(gè)方法,已經(jīng)可以產(chǎn)生這樣的一個(gè)表,表的順序是隨機(jī),所以產(chǎn)生這256個(gè)字節(jié)的隨機(jī)數(shù)使用的是二次偽隨機(jī),使用了兩個(gè)額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個(gè)字節(jié)密文是這個(gè)256字節(jié)的表的索引。或者,為了提高加密效果,可以使用多余8位的值,甚至使用校驗(yàn)和或者crc算法來(lái)產(chǎn)生索引字節(jié)。假定這個(gè)表是256*256的數(shù)組,將會(huì)是下面的樣子:

crypto1=a[crypto0][value]

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

加密時(shí)所產(chǎn)生的偽隨機(jī)序列是很隨意的,可以設(shè)計(jì)成想要的任何序列。沒(méi)有關(guān)于這個(gè)隨機(jī)序列的詳細(xì)的信息,解密密文是不現(xiàn)實(shí)的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉(zhuǎn)化成一些隨機(jī)的沒(méi)有任何意義的亂碼,每一個(gè)字節(jié)都依賴于其前一個(gè)字節(jié)的密文,而不是實(shí)際的值。對(duì)于任一個(gè)單個(gè)的字符的這種變換來(lái)說(shuō),隱藏了加密數(shù)據(jù)的有效的真正的長(zhǎng)度。

如果確實(shí)不理解如何來(lái)產(chǎn)生一個(gè)隨機(jī)數(shù)序列,就考慮fibbonacci數(shù)列,使用2個(gè)雙字(64位)的數(shù)作為產(chǎn)生隨機(jī)數(shù)的種子,再加上第三個(gè)雙字來(lái)做xor操作。這個(gè)算法產(chǎn)生了一系列的隨機(jī)數(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)生一系列的隨機(jī)數(shù)字,比如說(shuō),在0和列表中所有的隨機(jī)數(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)該是一個(gè)排過(guò)序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個(gè)數(shù)組是非常有用的,例如:對(duì)一個(gè)字節(jié)對(duì)字節(jié)的轉(zhuǎn)換表,就可以很容易并且非常可靠的來(lái)產(chǎn)生一個(gè)短的密鑰(經(jīng)常作為一些隨機(jī)數(shù)的種子)。這樣一個(gè)表還有其他的用處,比如說(shuō):來(lái)產(chǎn)生一個(gè)隨機(jī)的字符,計(jì)算機(jī)游戲中一個(gè)物體的隨機(jī)的位置等等。上面的例子就其本身而言并沒(méi)有構(gòu)成一個(gè)加密算法,只是加密算法一個(gè)組成部分。

作為一個(gè)測(cè)試,開發(fā)了一個(gè)應(yīng)用程序來(lái)測(cè)試上面所描述的加密算法。程序本身都經(jīng)過(guò)了幾次的優(yōu)化和修改,來(lái)提高隨機(jī)數(shù)的真正的隨機(jī)性和防止會(huì)產(chǎn)生一些短的可重復(fù)的用于加密的隨機(jī)數(shù)。用這個(gè)程序來(lái)加密一個(gè)文件,破解這個(gè)文件可能會(huì)需要非常巨大的時(shí)間以至于在現(xiàn)實(shí)上是不可能的。

四.結(jié)論:

由于在現(xiàn)實(shí)生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^(guò)程中不會(huì)被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個(gè)人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個(gè)特定時(shí)期的安全,也就是說(shuō),密文的破解應(yīng)該是足夠的困難,在現(xiàn)實(shí)上是不可能的,尤其是短時(shí)間內(nèi)。

參考文獻(xiàn):

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

第6篇

一:數(shù)據(jù)加密方法

在傳統(tǒng)上,我們有幾種方法來(lái)加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實(shí)現(xiàn),但是當(dāng)我們只知道密文的時(shí)候,是不容易破譯這些加密算法的(當(dāng)同時(shí)有原文和密文時(shí),破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對(duì)系統(tǒng)性能幾乎沒(méi)有影響,并且還可以帶來(lái)其他內(nèi)在的優(yōu)點(diǎn)。例如,大家都知道的pkzip,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,dbms的一些軟件包總是包含一些加密方法以使復(fù)制文件這一功能對(duì)一些敏感數(shù)據(jù)是無(wú)效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。

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

對(duì)這種“置換表”方式的一個(gè)改進(jìn)就是使用2個(gè)或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。這時(shí),破譯變的更加困難,因?yàn)楹诳捅仨氄_的做幾次變換。通過(guò)使用更多的“置換表”,并且按偽隨機(jī)的方式使用每個(gè)表,這種改進(jìn)的加密方法已經(jīng)變的很難破譯。比如,我們可以對(duì)所有的偶數(shù)位置的數(shù)據(jù)使用a表,對(duì)所有的奇數(shù)位置使用b表,即使黑客獲得了明文和密文,他想破譯這個(gè)加密方案也是非常困難的,除非黑客確切的知道用了兩張表。

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

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

在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時(shí)就需要產(chǎn)生一些校驗(yàn)碼,并且把這些校驗(yàn)碼插入到數(shù)據(jù)流中。這樣做對(duì)數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計(jì)算機(jī)程序的病毒才不會(huì)在意這些數(shù)據(jù)或程序是否加過(guò)密,是否有數(shù)字簽名。所以,加密程序在每次load到內(nèi)存要開始執(zhí)行時(shí),都要檢查一下本身是否被病毒感染,對(duì)與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法體制應(yīng)該保密的,因?yàn)椴《境绦虻木帉懻邔?huì)利用這些來(lái)破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。

循環(huán)冗余校驗(yàn)是一種典型的校驗(yàn)數(shù)據(jù)的方法。對(duì)于每一個(gè)數(shù)據(jù)塊,它使用位循環(huán)移位和xor操作來(lái)產(chǎn)生一個(gè)16位或32位的校驗(yàn)和,這使得丟失一位或兩個(gè)位的錯(cuò)誤一定會(huì)導(dǎo)致校驗(yàn)和出錯(cuò)。這種方式很久以來(lái)就應(yīng)用于文件的傳輸,例如xmodem-crc。這是方法已經(jīng)成為標(biāo)準(zhǔn),而且有詳細(xì)的文檔。但是,基于標(biāo)準(zhǔn)crc算法的一種修改算法對(duì)于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯(cuò)誤和文件是否被病毒感染是很有效的。二.基于公鑰的加密算法

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

rsa加密算法使用了兩個(gè)非常大的素?cái)?shù)來(lái)產(chǎn)生公鑰和私鑰。即使從一個(gè)公鑰中通過(guò)因數(shù)分解可以得到私鑰,但這個(gè)運(yùn)算所包含的計(jì)算量是非常巨大的,以至于在現(xiàn)實(shí)上是不可行的。加密算法本身也是很慢的,這使得使用rsa算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實(shí)中加密算法都基于rsa加密算法。pgp算法(以及大多數(shù)基于rsa算法的加密方法)使用公鑰來(lái)加密一個(gè)對(duì)稱加密算法的密鑰,然后再利用一個(gè)快速的對(duì)稱加密算法來(lái)加密數(shù)據(jù)。這個(gè)對(duì)稱算法的密鑰是隨機(jī)產(chǎn)生的,是保密的,因此,得到這個(gè)密鑰的唯一方法就是使用私鑰來(lái)解密。

我們舉一個(gè)例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa公鑰,使用rsa算法加密這個(gè)密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個(gè)分割符或文件長(zhǎng)度,以區(qū)分?jǐn)?shù)據(jù)和密鑰),然后,使用對(duì)稱加密算法加密正文,使用的密鑰就是‘12345’。當(dāng)對(duì)方收到時(shí),解密程序找到加密過(guò)的密鑰,并利用rsa私鑰解密出來(lái),然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來(lái)解密數(shù)據(jù)。這樣就使得一個(gè)可靠的經(jīng)過(guò)高效加密的數(shù)據(jù)安全地傳輸和解密。

一些簡(jiǎn)單的基于rsa算法的加密算法可在下面的站點(diǎn)找到:

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

三.一個(gè)嶄新的多步加密算法

現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說(shuō)是幾乎不可能被破譯的。這個(gè)算法在1998年6月1日才正式公布的。下面詳細(xì)的介紹這個(gè)算法:

使用一系列的數(shù)字(比如說(shuō)128位密鑰),來(lái)產(chǎn)生一個(gè)可重復(fù)的但高度隨機(jī)化的偽隨機(jī)的數(shù)字的序列。一次使用256個(gè)表項(xiàng),使用隨機(jī)數(shù)序列來(lái)產(chǎn)生密碼轉(zhuǎn)表,如下所示:

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

使用這個(gè)方法,已經(jīng)可以產(chǎn)生這樣的一個(gè)表,表的順序是隨機(jī),所以產(chǎn)生這256個(gè)字節(jié)的隨機(jī)數(shù)使用的是二次偽隨機(jī),使用了兩個(gè)額外的16位的密碼.現(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,基本的加密解密是如下這樣工作的。前一個(gè)字節(jié)密文是這個(gè)256字節(jié)的表的索引?;蛘撸瑸榱颂岣呒用苄Ч?,可以使用多余8位的值,甚至使用校驗(yàn)和或者crc算法來(lái)產(chǎn)生索引字節(jié)。假定這個(gè)表是256*256的數(shù)組,將會(huì)是下面的樣子:crypto1=a[crypto0][value]

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

加密時(shí)所產(chǎn)生的偽隨機(jī)序列是很隨意的,可以設(shè)計(jì)成想要的任何序列。沒(méi)有關(guān)于這個(gè)隨機(jī)序列的詳細(xì)的信息,解密密文是不現(xiàn)實(shí)的。例如:一些ascii碼的序列,如“eeeeeeee"可能被轉(zhuǎn)化成一些隨機(jī)的沒(méi)有任何意義的亂碼,每一個(gè)字節(jié)都依賴于其前一個(gè)字節(jié)的密文,而不是實(shí)際的值。對(duì)于任一個(gè)單個(gè)的字符的這種變換來(lái)說(shuō),隱藏了加密數(shù)據(jù)的有效的真正的長(zhǎng)度。

如果確實(shí)不理解如何來(lái)產(chǎn)生一個(gè)隨機(jī)數(shù)序列,就考慮fibbonacci數(shù)列,使用2個(gè)雙字(64位)的數(shù)作為產(chǎn)生隨機(jī)數(shù)的種子,再加上第三個(gè)雙字來(lái)做xor操作。這個(gè)算法產(chǎn)生了一系列的隨機(jī)數(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)生一系列的隨機(jī)數(shù)字,比如說(shuō),在0和列表中所有的隨機(jī)數(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)該是一個(gè)排過(guò)序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個(gè)數(shù)組是非常有用的,例如:對(duì)一個(gè)字節(jié)對(duì)字節(jié)的轉(zhuǎn)換表,就可以很容易并且非??煽康膩?lái)產(chǎn)生一個(gè)短的密鑰(經(jīng)常作為一些隨機(jī)數(shù)的種子)。這樣一個(gè)表還有其他的用處,比如說(shuō):來(lái)產(chǎn)生一個(gè)隨機(jī)的字符,計(jì)算機(jī)游戲中一個(gè)物體的隨機(jī)的位置等等。上面的例子就其本身而言并沒(méi)有構(gòu)成一個(gè)加密算法,只是加密算法一個(gè)組成部分。

作為一個(gè)測(cè)試,開發(fā)了一個(gè)應(yīng)用程序來(lái)測(cè)試上面所描述的加密算法。程序本身都經(jīng)過(guò)了幾次的優(yōu)化和修改,來(lái)提高隨機(jī)數(shù)的真正的隨機(jī)性和防止會(huì)產(chǎn)生一些短的可重復(fù)的用于加密的隨機(jī)數(shù)。用這個(gè)程序來(lái)加密一個(gè)文件,破解這個(gè)文件可能會(huì)需要非常巨大的時(shí)間以至于在現(xiàn)實(shí)上是不可能的。

四.結(jié)論:

由于在現(xiàn)實(shí)生活中,我們要確保一些敏感的數(shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^(guò)程中不會(huì)被篡改,截取,這就需要很多的安全系統(tǒng)大量的應(yīng)用于政府、大公司以及個(gè)人系統(tǒng)。數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個(gè)特定時(shí)期的安全,也就是說(shuō),密文的破解應(yīng)該是足夠的困難,在現(xiàn)實(shí)上是不可能的,尤其是短時(shí)間內(nèi)。

參考文獻(xiàn):

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

第7篇

但我們必需清楚地認(rèn)識(shí)到,這一切一切的安全問(wèn)題我們不可一下全部找到解決方案,況且有的是根本無(wú)法找到徹底的解決方案,如病毒程序,因?yàn)槿魏畏床《境绦蚨贾荒茉谛虏《景l(fā)現(xiàn)之后才能開發(fā)出來(lái),目前還沒(méi)有哪能一家反病毒軟件開發(fā)商敢承諾他們的軟件能查殺所有已知的和未知的病毒,所以我們不能有等網(wǎng)絡(luò)安全了再上網(wǎng)的念頭,因?yàn)榛蛟S網(wǎng)絡(luò)不能有這么一日,就象“矛”與“盾”,網(wǎng)絡(luò)與病毒、黑客永遠(yuǎn)是一對(duì)共存體。

現(xiàn)代的電腦加密技術(shù)就是適應(yīng)了網(wǎng)絡(luò)安全的需要而應(yīng)運(yùn)產(chǎn)生的,它為我們進(jìn)行一般的電子商務(wù)活動(dòng)提供了安全保障,如在網(wǎng)絡(luò)中進(jìn)行文件傳輸、電子郵件往來(lái)和進(jìn)行合同文本的簽署等。其實(shí)加密技術(shù)也不是什么新生事物,只不過(guò)應(yīng)用在當(dāng)今電子商務(wù)、電腦網(wǎng)絡(luò)中還是近幾年的歷史。下面我們就詳細(xì)介紹一下加密技術(shù)的方方面面,希望能為那些對(duì)加密技術(shù)還一知半解的朋友提供一個(gè)詳細(xì)了解的機(jī)會(huì)!

一、加密的由來(lái)

加密作為保障數(shù)據(jù)安全的一種方式,它不是現(xiàn)在才有的,它產(chǎn)生的歷史相當(dāng)久遠(yuǎn),它是起源于要追溯于公元前2000年(幾個(gè)世紀(jì)了),雖然它不是現(xiàn)在我們所講的加密技術(shù)(甚至不叫加密),但作為一種加密的概念,確實(shí)早在幾個(gè)世紀(jì)前就誕生了。當(dāng)時(shí)埃及人是最先使用特別的象形文字作為信息編碼的,隨著時(shí)間推移,巴比倫、美索不達(dá)米亞和希臘文明都開始使用一些方法來(lái)保護(hù)他們的書面信息。

近期加密技術(shù)主要應(yīng)用于軍事領(lǐng)域,如美國(guó)獨(dú)立戰(zhàn)爭(zhēng)、美國(guó)內(nèi)戰(zhàn)和兩次世界大戰(zhàn)。最廣為人知的編碼機(jī)器是GermanEnigma機(jī),在第二次世界大戰(zhàn)中德國(guó)人利用它創(chuàng)建了加密信息。此后,由于AlanTuring和Ultra計(jì)劃以及其他人的努力,終于對(duì)德國(guó)人的密碼進(jìn)行了破解。當(dāng)初,計(jì)算機(jī)的研究就是為了破解德國(guó)人的密碼,人們并沒(méi)有想到計(jì)算機(jī)給今天帶來(lái)的信息革命。隨著計(jì)算機(jī)的發(fā)展,運(yùn)算能力的增強(qiáng),過(guò)去的密碼都變得十分簡(jiǎn)單了,于是人們又不斷地研究出了新的數(shù)據(jù)加密方式,如利用ROSA算法產(chǎn)生的私鑰和公鑰就是在這個(gè)基礎(chǔ)上產(chǎn)生的。

二、加密的概念

數(shù)據(jù)加密的基本過(guò)程就是對(duì)原來(lái)為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來(lái)內(nèi)容,通過(guò)這樣的途徑來(lái)達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。該過(guò)程的逆過(guò)程為解密,即將該編碼信息轉(zhuǎn)化為其原來(lái)數(shù)據(jù)的過(guò)程。

三、加密的理由

當(dāng)今網(wǎng)絡(luò)社會(huì)選擇加密已是我們別無(wú)選擇,其一是我們知道在互聯(lián)網(wǎng)上進(jìn)行文件傳輸、電子郵件商務(wù)往來(lái)存在許多不安全因素,特別是對(duì)于一些大公司和一些機(jī)密文件在網(wǎng)絡(luò)上傳輸。而且這種不安全性是互聯(lián)網(wǎng)存在基礎(chǔ)——TCP/IP協(xié)議所固有的,包括一些基于TCP/IP的服務(wù);另一方面,互聯(lián)網(wǎng)給眾多的商家?guī)?lái)了無(wú)限的商機(jī),互聯(lián)網(wǎng)把全世界連在了一起,走向互聯(lián)網(wǎng)就意味著走向了世界,這對(duì)于無(wú)數(shù)商家無(wú)疑是夢(mèng)寐以求的好事,特別是對(duì)于中小企業(yè)。為了解決這一對(duì)矛盾、為了能在安全的基礎(chǔ)上大開這通向世界之門,我們只好選擇了數(shù)據(jù)加密和基于加密技術(shù)的數(shù)字簽名。

加密在網(wǎng)絡(luò)上的作用就是防止有用或私有化信息在網(wǎng)絡(luò)上被攔截和竊取。一個(gè)簡(jiǎn)單的例子就是密碼的傳輸,計(jì)算機(jī)密碼極為重要,許多安全防護(hù)體系是基于密碼的,密碼的泄露在某種意義上來(lái)講意味著其安全體系的全面崩潰。

通過(guò)網(wǎng)絡(luò)進(jìn)行登錄時(shí),所鍵入的密碼以明文的形式被傳輸?shù)椒?wù)器,而網(wǎng)絡(luò)上的竊聽是一件極為容易的事情,所以很有可能黑客會(huì)竊取得用戶的密碼,如果用戶是Root用戶或Administrator用戶,那后果將是極為嚴(yán)重的。

還有如果你公司在進(jìn)行著某個(gè)招標(biāo)項(xiàng)目的投標(biāo)工作,工作人員通過(guò)電子郵件的方式把他們單位的標(biāo)書發(fā)給招標(biāo)單位,如果此時(shí)有另一位競(jìng)爭(zhēng)對(duì)手從網(wǎng)絡(luò)上竊取到你公司的標(biāo)書,從中知道你公司投標(biāo)的標(biāo)的,那后果將是怎樣,相信不用多說(shuō)聰明的你也明白。

這樣的例子實(shí)在是太多了,解決上述難題的方案就是加密,加密后的口令即使被黑客獲得也是不可讀的,加密后的標(biāo)書沒(méi)有收件人的私鑰也就無(wú)法解開,標(biāo)書成為一大堆無(wú)任何實(shí)際意義的亂碼。總之無(wú)論是單位還是個(gè)人在某種意義上來(lái)說(shuō)加密也成為當(dāng)今網(wǎng)絡(luò)社會(huì)進(jìn)行文件或郵件安全傳輸?shù)臅r(shí)代象征!

數(shù)字簽名就是基于加密技術(shù)的,它的作用就是用來(lái)確定用戶是否是真實(shí)的。應(yīng)用最多的還是電子郵件,如當(dāng)用戶收到一封電子郵件時(shí),郵件上面標(biāo)有發(fā)信人的姓名和信箱地址,很多人可能會(huì)簡(jiǎn)單地認(rèn)為發(fā)信人就是信上說(shuō)明的那個(gè)人,但實(shí)際上偽造一封電子郵件對(duì)于一個(gè)通常人來(lái)說(shuō)是極為容易的事。在這種情況下,就要用到加密技術(shù)基礎(chǔ)上的數(shù)字簽名,用它來(lái)確認(rèn)發(fā)信人身份的真實(shí)性。

類似數(shù)字簽名技術(shù)的還有一種身份認(rèn)證技術(shù),有些站點(diǎn)提供入站FTP和WWW服務(wù),當(dāng)然用戶通常接觸的這類服務(wù)是匿名服務(wù),用戶的權(quán)力要受到限制,但也有的這類服務(wù)不是匿名的,如某公司為了信息交流提供用戶的合作伙伴非匿名的FTP服務(wù),或開發(fā)小組把他們的Web網(wǎng)頁(yè)上載到用戶的WWW服務(wù)器上,現(xiàn)在的問(wèn)題就是,用戶如何確定正在訪問(wèn)用戶的服務(wù)器的人就是用戶認(rèn)為的那個(gè)人,身份認(rèn)證技術(shù)就是一個(gè)好的解決方案。

在這里需要強(qiáng)調(diào)一點(diǎn)的就是,文件加密其實(shí)不只用于電子郵件或網(wǎng)絡(luò)上的文件傳輸,其實(shí)也可應(yīng)用靜態(tài)的文件保護(hù),如PIP軟件就可以對(duì)磁盤、硬盤中的文件或文件夾進(jìn)行加密,以防他人竊取其中的信息。

四、兩種加密方法

加密技術(shù)通常分為兩大類:“對(duì)稱式”和“非對(duì)稱式”。

對(duì)稱式加密就是加密和解密使用同一個(gè)密鑰,通常稱之為“SessionKey”這種加密技術(shù)目前被廣泛采用,如美國(guó)政府所采用的DES加密標(biāo)準(zhǔn)就是一種典型的“對(duì)稱式”加密法,它的SessionKey長(zhǎng)度為56Bits。

非對(duì)稱式加密就是加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)密鑰,稱為“公鑰”和“私鑰”,它們兩個(gè)必需配對(duì)使用,否則不能打開加密文件。這里的“公鑰”是指可以對(duì)外公布的,“私鑰”則不能,只能由持有人一個(gè)人知道。它的優(yōu)越性就在這里,因?yàn)閷?duì)稱式的加密方法如果是在網(wǎng)絡(luò)上傳輸加密文件就很難把密鑰告訴對(duì)方,不管用什么方法都有可能被別竊聽到。而非對(duì)稱式的加密方法有兩個(gè)密鑰,且其中的“公鑰”是可以公開的,也就不怕別人知道,收件人解密時(shí)只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問(wèn)題。

五、加密技術(shù)中的摘要函數(shù)(MAD、MAD和MAD)

摘要是一種防止改動(dòng)的方法,其中用到的函數(shù)叫摘要函數(shù)。這些函數(shù)的輸入可以是任意大小的消息,而輸出是一個(gè)固定長(zhǎng)度的摘要。摘要有這樣一個(gè)性質(zhì),如果改變了輸入消息中的任何東西,甚至只有一位,輸出的摘要將會(huì)發(fā)生不可預(yù)測(cè)的改變,也就是說(shuō)輸入消息的每一位對(duì)輸出摘要都有影響??傊?,摘要算法從給定的文本塊中產(chǎn)生一個(gè)數(shù)字簽名(fingerprint或messagedigest),數(shù)字簽名可以用于防止有人從一個(gè)簽名上獲取文本信息或改變文本信息內(nèi)容和進(jìn)行身份認(rèn)證。摘要算法的數(shù)字簽名原理在很多加密算法中都被使用,如SO/KEY和PIP(prettygoodprivacy)。

現(xiàn)在流行的摘要函數(shù)有MAD和MAD,但要記住客戶機(jī)和服務(wù)器必須使用相同的算法,無(wú)論是MAD還是MAD,MAD客戶機(jī)不能和MAD服務(wù)器交互。

MAD摘要算法的設(shè)計(jì)是出于利用32位RISC結(jié)構(gòu)來(lái)最大其吞吐量,而不需要大量的替換表(substitutiontable)來(lái)考慮的。

MAD算法是以消息給予的長(zhǎng)度作為輸入,產(chǎn)生一個(gè)128位的"指紋"或"消息化"。要產(chǎn)生兩個(gè)具有相同消息化的文字塊或者產(chǎn)生任何具有預(yù)先給定"指紋"的消息,都被認(rèn)為在計(jì)算上是不可能的。

MAD摘要算法是個(gè)數(shù)據(jù)認(rèn)證標(biāo)準(zhǔn)。MAD的設(shè)計(jì)思想是要找出速度更快,比MAD更安全的一種算法,MAD的設(shè)計(jì)者通過(guò)使MAD在計(jì)算上慢下來(lái),以及對(duì)這些計(jì)算做了一些基礎(chǔ)性的改動(dòng)來(lái)解決安全性這一問(wèn)題,是MAD算法的一個(gè)擴(kuò)展。六、密鑰的管理

密鑰既然要求保密,這就涉及到密鑰的管理問(wèn)題,管理不好,密鑰同樣可能被無(wú)意識(shí)地泄露,并不是有了密鑰就高枕無(wú)憂,任何保密也只是相對(duì)的,是有時(shí)效的。要管理好密鑰我們還要注意以下幾個(gè)方面:

1、密鑰的使用要注意時(shí)效和次數(shù)

如果用戶可以一次又一次地使用同樣密鑰與別人交換信息,那么密鑰也同其它任何密碼一樣存在著一定的安全性,雖然說(shuō)用戶的私鑰是不對(duì)外公開的,但是也很難保證私鑰長(zhǎng)期的保密性,很難保證長(zhǎng)期以來(lái)不被泄露。如果某人偶然地知道了用戶的密鑰,那么用戶曾經(jīng)和另一個(gè)人交換的每一條消息都不再是保密的了。另外使用一個(gè)特定密鑰加密的信息越多,提供給竊聽者的材料也就越多,從某種意義上來(lái)講也就越不安全了。

因此,一般強(qiáng)調(diào)僅將一個(gè)對(duì)話密鑰用于一條信息中或一次對(duì)話中,或者建立一種按時(shí)更換密鑰的機(jī)制以減小密鑰暴露的可能性。

2、多密鑰的管理

假設(shè)在某機(jī)構(gòu)中有100個(gè)人,如果他們?nèi)我鈨扇酥g可以進(jìn)行秘密對(duì)話,那么總共需要多少密鑰呢?每個(gè)人需要知道多少密鑰呢?也許很容易得出答案,如果任何兩個(gè)人之間要不同的密鑰,則總共需要4950個(gè)密鑰,而且每個(gè)人應(yīng)記住99個(gè)密鑰。如果機(jī)構(gòu)的人數(shù)是1000、10000人或更多,這種辦法就顯然過(guò)于愚蠢了,管理密鑰將是一件可怕的事情。

Kerberos提供了一種解決這個(gè)較好方案,它是由MIT發(fā)明的,使保密密鑰的管理和分發(fā)變得十分容易,但這種方法本身還存在一定的缺點(diǎn)。為能在因特網(wǎng)上提供一個(gè)實(shí)用的解決方案,Kerberos建立了一個(gè)安全的、可信任的密鑰分發(fā)中心(KeyDistributionCenter,KDC),每個(gè)用戶只要知道一個(gè)和KDC進(jìn)行會(huì)話的密鑰就可以了,而不需要知道成百上千個(gè)不同的密鑰。

假設(shè)用戶甲想要和用戶乙進(jìn)行秘密通信,則用戶甲先和KDC通信,用只有用戶甲和KDC知道的密鑰進(jìn)行加密,用戶甲告訴KDC他想和用戶乙進(jìn)行通信,KDC會(huì)為用戶甲和用戶乙之間的會(huì)話隨機(jī)選擇一個(gè)對(duì)話密鑰,并生成一個(gè)標(biāo)簽,這個(gè)標(biāo)簽由KDC和用戶乙之間的密鑰進(jìn)行加密,并在用戶甲啟動(dòng)和用戶乙對(duì)話時(shí),用戶甲會(huì)把這個(gè)標(biāo)簽交給用戶乙。這個(gè)標(biāo)簽的作用是讓用戶甲確信和他交談的是用戶乙,而不是冒充者。因?yàn)檫@個(gè)標(biāo)簽是由只有用戶乙和KDC知道的密鑰進(jìn)行加密的,所以即使冒充者得到用戶甲發(fā)出的標(biāo)簽也不可能進(jìn)行解密,只有用戶乙收到后才能夠進(jìn)行解密,從而確定了與用戶甲對(duì)話的人就是用戶乙。

當(dāng)KDC生成標(biāo)簽和隨機(jī)會(huì)話密碼,就會(huì)把它們用只有用戶甲和KDC知道的密鑰進(jìn)行加密,然后把標(biāo)簽和會(huì)話鑰傳給用戶甲,加密的結(jié)果可以確保只有用戶甲能得到這個(gè)信息,只有用戶甲能利用這個(gè)會(huì)話密鑰和用戶乙進(jìn)行通話。同理,KDC會(huì)把會(huì)話密碼用只有KDC和用戶乙知道的密鑰加密,并把會(huì)話密鑰給用戶乙。

用戶甲會(huì)啟動(dòng)一個(gè)和用戶乙的會(huì)話,并用得到的會(huì)話密鑰加密自己和用戶乙的會(huì)話,還要把KDC傳給它的標(biāo)簽傳給用戶乙以確定用戶乙的身份,然后用戶甲和用戶乙之間就可以用會(huì)話密鑰進(jìn)行安全的會(huì)話了,而且為了保證安全,這個(gè)會(huì)話密鑰是一次性的,這樣黑客就更難進(jìn)行破解了。同時(shí)由于密鑰是一次性由系統(tǒng)自動(dòng)產(chǎn)生的,則用戶不必記那么多密鑰了,方便了人們的通信。

七、數(shù)據(jù)加密的標(biāo)準(zhǔn)

最早、最著名的保密密鑰或?qū)ΨQ密鑰加密算法DES(DataEncryptionStandard)是由IBM公司在70年展起來(lái)的,并經(jīng)政府的加密標(biāo)準(zhǔn)篩選后,于1976年11月被美國(guó)政府采用,DES隨后被美國(guó)國(guó)家標(biāo)準(zhǔn)局和美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(AmericanNationalStandardInstitute,ANSI)承認(rèn)。DES使用56位密鑰對(duì)64位的數(shù)據(jù)塊進(jìn)行加密,并對(duì)64位的數(shù)據(jù)塊進(jìn)行16輪編碼。與每輪編碼時(shí),一個(gè)48位的"每輪"密鑰值由56位的完整密鑰得出來(lái)。DES用軟件進(jìn)行解碼需用很長(zhǎng)時(shí)間,而用硬件解碼速度非???。幸運(yùn)的是,當(dāng)時(shí)大多數(shù)黑客并沒(méi)有足夠的設(shè)備制造出這種硬件設(shè)備。在1977年,人們估計(jì)要耗資兩千萬(wàn)美元才能建成一個(gè)專門計(jì)算機(jī)用于DES的解密,而且需要12個(gè)小時(shí)的破解才能得到結(jié)果。當(dāng)時(shí)DES被認(rèn)為是一種十分強(qiáng)大的加密方法。

隨著計(jì)算機(jī)硬件的速度越來(lái)越快,制造一臺(tái)這樣特殊的機(jī)器的花費(fèi)已經(jīng)降到了十萬(wàn)美元左右,而用它來(lái)保護(hù)十億美元的銀行,那顯然是不夠保險(xiǎn)了。另一方面,如果只用它來(lái)保護(hù)一臺(tái)普通服務(wù)器,那么DES確實(shí)是一種好的辦法,因?yàn)楹诳徒^不會(huì)僅僅為入侵一個(gè)服務(wù)器而花那么多的錢破解DES密文。

另一種非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大數(shù)不可能被質(zhì)因數(shù)分解假設(shè)的公鑰體系。簡(jiǎn)單地說(shuō)就是找兩個(gè)很大的質(zhì)數(shù)。一個(gè)對(duì)外公開的為“公鑰”(Prblickey),另一個(gè)不告訴任何人,稱為"私鑰”(Privatekey)。這兩個(gè)密鑰是互補(bǔ)的,也就是說(shuō)用公鑰加密的密文可以用私鑰解密,反過(guò)來(lái)也一樣。

假設(shè)用戶甲要寄信給用戶乙,他們互相知道對(duì)方的公鑰。甲就用乙的公鑰加密郵件寄出,乙收到后就可以用自己的私鑰解密出甲的原文。由于別人不知道乙的私鑰,所以即使是甲本人也無(wú)法解密那封信,這就解決了信件保密的問(wèn)題。另一方面,由于每個(gè)人都知道乙的公鑰,他們都可以給乙發(fā)信,那么乙怎么確信是不是甲的來(lái)信呢?那就要用到基于加密技術(shù)的數(shù)字簽名了。

甲用自己的私鑰將簽名內(nèi)容加密,附加在郵件后,再用乙的公鑰將整個(gè)郵件加密(注意這里的次序,如果先加密再簽名的話,別人可以將簽名去掉后簽上自己的簽名,從而篡改了簽名)。這樣這份密文被乙收到以后,乙用自己的私鑰將郵件解密,得到甲的原文和數(shù)字簽名,然后用甲的公鑰解密簽名,這樣一來(lái)就可以確保兩方面的安全了。

八、加密技術(shù)的應(yīng)用

加密技術(shù)的應(yīng)用是多方面的,但最為廣泛的還是在電子商務(wù)和VPN上的應(yīng)用,下面就分別簡(jiǎn)敘。

1、在電子商務(wù)方面的應(yīng)用

電子商務(wù)(E-business)要求顧客可以在網(wǎng)上進(jìn)行各種商務(wù)活動(dòng),不必?fù)?dān)心自己的信用卡會(huì)被人盜用。在過(guò)去,用戶為了防止信用卡的號(hào)碼被竊取到,一般是通過(guò)電話訂貨,然后使用用戶的信用卡進(jìn)行付款。現(xiàn)在人們開始用RSA(一種公開/私有密鑰)的加密技術(shù),提高信用卡交易的安全性,從而使電子商務(wù)走向?qū)嵱贸蔀榭赡堋?/p>

許多人都知道NETSCAPE公司是Internet商業(yè)中領(lǐng)先技術(shù)的提供者,該公司提供了一種基于RSA和保密密鑰的應(yīng)用于因特網(wǎng)的技術(shù),被稱為安全插座層(SecureSocketsLayer,SSL)。

也許很多人知道Socket,它是一個(gè)編程界面,并不提供任何安全措施,而SSL不但提供編程界面,而且向上提供一種安全的服務(wù),SSL3.0現(xiàn)在已經(jīng)應(yīng)用到了服務(wù)器和瀏覽器上,SSL2.0則只能應(yīng)用于服務(wù)器端。

SSL3.0用一種電子證書(electriccertificate)來(lái)實(shí)行身份進(jìn)行驗(yàn)證后,雙方就可以用保密密鑰進(jìn)行安全的會(huì)話了。它同時(shí)使用“對(duì)稱”和“非對(duì)稱”加密方法,在客戶與電子商務(wù)的服務(wù)器進(jìn)行溝通的過(guò)程中,客戶會(huì)產(chǎn)生一個(gè)SessionKey,然后客戶用服務(wù)器端的公鑰將SessionKey進(jìn)行加密,再傳給服務(wù)器端,在雙方都知道SessionKey后,傳輸?shù)臄?shù)據(jù)都是以SessionKey進(jìn)行加密與解密的,但服務(wù)器端發(fā)給用戶的公鑰必需先向有關(guān)發(fā)證機(jī)關(guān)申請(qǐng),以得到公證。

基于SSL3.0提供的安全保障,用戶就可以自由訂購(gòu)商品并且給出信用卡號(hào)了,也可以在網(wǎng)上和合作伙伴交流商業(yè)信息并且讓供應(yīng)商把訂單和收貨單從網(wǎng)上發(fā)過(guò)來(lái),這樣可以節(jié)省大量的紙張,為公司節(jié)省大量的電話、傳真費(fèi)用。在過(guò)去,電子信息交換(ElectricDataInterchange,EDI)、信息交易(informationtransaction)和金融交易(financialtransaction)都是在專用網(wǎng)絡(luò)上完成的,使用專用網(wǎng)的費(fèi)用大大高于互聯(lián)網(wǎng)。正是這樣巨大的誘惑,才使人們開始發(fā)展因特網(wǎng)上的電子商務(wù),但不要忘記數(shù)據(jù)加密。

2、加密技術(shù)在VPN中的應(yīng)用