前言:我們精心挑選了數篇優質加密技術論文文章,供您閱讀參考。期待這些文章能為您帶來啟發,助您在寫作的道路上更上一層樓。
一:數據加密方法
在傳統上,我們有幾種方法來加密數據流。所有這些方法都可以用軟件很容易的實現,但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經是可能的了)。最好的加密算法對系統性能幾乎沒有影響,并且還可以帶來其他內在的優點。例如,大家都知道的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之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的。現在,產生了一個具體的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之間。這樣一個數組是非常有用的,例如:對一個字節對字節的轉換表,就可以很容易并且非常可靠的來產生一個短的密鑰(經常作為一些隨機數的種子)。這樣一個表還有其他的用處,比如說:來產生一個隨機的字符,計算機游戲中一個物體的隨機的位置等等。上面的例子就其本身而言并沒有構成一個加密算法,只是加密算法一個組成部分。
作為一個測試,開發了一個應用程序來測試上面所描述的加密算法。程序本身都經過了幾次的優化和修改,來提高隨機數的真正的隨機性和防止會產生一些短的可重復的用于加密的隨機數。用這個程序來加密一個文件,破解這個文件可能會需要非常巨大的時間以至于在現實上是不可能的。
四.結論:
由于在現實生活中,我們要確保一些敏感的數據只能被有相應權限的人看到,要確保信息在傳輸的過程中不會被篡改,截取,這就需要很多的安全系統大量的應用于政府、大公司以及個人系統。數據加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應該是足夠的困難,在現實上是不可能的,尤其是短時間內。
參考文獻:
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!)/
計算機網絡安全的威脅的形式多種多樣,主要包括:①來源威脅。現在的計算機操作系統、網絡系統幾乎都是從國外引進的,具有一定的安全威脅。②環境威脅。我國關于網絡治安的法律還不完善,網絡技術本身也有很多不完善的地方。③病毒威脅。計算機病毒具有很強的破壞性,對計算機網絡安全來說是一個很大的威脅。④網絡人員威脅。網絡管理員是離網絡機密最近的人,他們的素質和人品對計算機網絡安全有很大的影響。⑤設備故障威脅。設備故障通信就會中斷,這對網絡系統的安全也會產生很大的影響⑥傳輸渠道威脅。網絡信息在傳輸過程中有被竊取、篡改、偽造的危險。計算機網絡安全中主要存在三種隱患:①電子郵件隱患。電子郵件在我們的生活中應用非常廣泛,但是,其中隱藏著非常大的隱患。網絡黑客們很可能會通過發垃圾郵件的方式,使用戶的郵箱爆滿,影響用戶郵箱的正常使用。②口令入侵隱患。口令入侵隱患是指網絡黑客們通過非法途徑入侵用戶的口令,對用戶的電腦實行攻擊。③網址欺騙隱患。網絡欺騙隱患是指網絡黑客們通過篡改網頁和網址的信息,使用戶訪問網站的時候出現網絡安全漏洞,然后,網絡黑客們就會利用這些網絡安全漏洞對用戶的電腦實行攻擊。
2計算機網絡安全技術的分析
2.1加密技術
加密技術是計算機網絡安全技術的重要組成部分,一般分為對稱加密技術、非對稱加密技術和RSA算法三種。對稱加密技術中信息的加密和解密使用的鑰匙是相同的,一般稱為“SessionKey”。只要在交換階段不泄露自己的私有密匙,就可以保證計算機系統的機密性。但是,這種加密技術也存在著不足之處,交換雙方共有使用一把私有密匙,所有的信息都是通過這把私有密匙傳遞的,不是很安全。在飛對稱加密技術中,密匙分為公開密匙和私有密匙兩個,公開密匙用來加密,私有密匙用來解密。公開密匙可以公布,私有密匙只有交換雙方知道,安全性更有保證。RSA算法是Rivest、Shamir和Adleman提出出的第一個完整的公鑰密碼體制,至今為止,還沒人找到一個有效的算法來分解兩大素數之積,安全性有保障。
2.2防病毒技術
計算機病毒是網絡系統中最大的攻擊者,具有很強的傳染性和破壞力。而且,一旦計算機病毒發動攻擊,就會造成很大的影響。防病毒技術主要包括三種:預防技術、檢測技術和消除技術。預防技術主要是指在利用一定的安全技術手段防御病毒破壞計算機系統,包括對未知病毒和已知病毒的預防,主要包括讀寫控制技術、系統監控技術、加密可執行程序等等。檢測技術主要是指利用計算機安全技術檢測計算機技術的一種技術,主要包括檢測計算機病毒特征的檢測技術和檢測文件自身的技術兩種計算機檢測技術。消除技術主要是指通過分析計算機病毒,開發出消除計算機病毒并恢復原文件的一種技術。
2.3PKI技術
PKI技術是PublieKeyInfrastueture,即公鑰基礎設施的意思。PKI技術主要是指使用數字證書和公開密匙兩種方式對網絡系統安全進行雙重保護,而且還會對數字證書持有者進行驗證的一種技術。。PKI技術會提供認證、加密、完整、安全通信、特權管理、密鑰管理等服務。PKI技術是計算機網絡安全技術的核心,在電子商務中也得到廣泛的應用。
2.4防火墻技術
防火墻主要是指設置在不懂網絡安全區域之間的唯一出入口,防火墻本身具有很強的抗攻擊能力,為計算機系統提供信息安全服務,抗御網絡黑客們的入侵。防火墻的形式各種各樣,但是,防火墻主要可以分為兩大類:“包過濾型”和“應用型”。“包過濾型”是對數據包的包頭源地址、目的地址、端口號和協議類型等進行過濾,通過的就轉發到與之相對應的目的地,未通過的就丟棄“。應用型”是先對網絡信息流進行阻斷,然后利用專用的程序對網絡信息流進行監視和控制。
2.5安全隔離技術
安全隔離技術主要是指將計算機網絡中的有害攻擊阻隔在可信的網絡區域之外,在確信計算機網絡可信區域內部的信息不泄露的情況下,進行計算機網絡之間的信息交換的技術。安全隔離技術發展到現在,一共經歷五個階段:完全的隔離、硬件卡隔離、數據轉播隔離、空氣開關隔離、安全通道隔離。其中安全通道隔離是現代安全隔離技術發展的主要方向。
3結束語
首先是對稱加密技術。對稱加密技術是用相同的鑰匙對信息進行加密和解鎖,換言之就是一把鑰匙開一把鎖。這種加密方法使加密過程得到了簡化,交換信息的雙方不需要互相交換和研究專用的加密方法。在交換階段一定要確保私有鑰匙沒有被泄漏,才可以保證報文的機密性和完整性。但是這種技術還是存在一些不足,如假設交換的一方對應的是多個交換對象,那么他就一定要維護多把鑰匙。其次是非對稱加密技術。密鑰在非對稱加密中被分解成私有密鑰和公開密鑰。這種技術當前被廣泛的應用在了身份確認和數據簽名等領域。
2網絡安全技術發展呈現出的現狀
2.1我國不具備自主研發的軟件核心技術
數據庫、操作系統以及CPU是網絡安全核心其中最為主要的三個部分。現階段,雖然大多數企業都已經在建設和維護網絡安全方面消耗了大量的資金,但是,由于大部分的網絡設備及軟件都不是我國自主研發的,而是從國外進口的,這就導致我國的網絡安全技術難以跟上時展的腳步,在處于這種競爭劣勢下,就極易成為別國竊聽和打擊的對象。除此之外,國外一些殺毒系統和操作系統的開發商幾乎已經在將中國的軟件市場壟斷。基于上述這些情況,我國一定要進一步加快研發軟件核心技術的速度,根據我國發展的實際情況,將能夠確保我國網絡安全運營的軟件技術有效地開發出來。
2.2安全技術不具備較高的防護能力
我國的各個企事業單位在現階段都幾乎已經建立起了專屬網站,并且,電子商務也正處在快速發展的狀態之中。但是,所應用的系統大部分都處在沒有設防的狀態中,所以很有可能會埋下各種各樣的安全隱患。并且在進行網絡假設的過程中,大多數企業沒有及時采取各種技術防范措施來確保網絡的安全。
2.3高素質的技術人才比較欠缺
由于互聯網通信成本相對較低,因此,服務器和配置器的種類變得越來越多,功能也變得更加完善,性能也變得更好。但是,不管是人才數量方面或者是專業水平方面,其專業技術人員都難以對當今的網絡安全需要形成更好的適應性。此外,網絡管理人員不具備較強的安全管理導向能力,如,當計算機系統出現崩潰的情況時,網絡管理人員難以及時有效地提出有效的解決對策。
3網絡安全技術的發展趨勢
3.1深度分析計算機網絡安全內容
各種類型不同的網絡安全威脅因素隨著互聯網絡技術的不斷發展而出現。相應地網絡安全技術也一定要不斷獲得提升和發展。加強識別網絡安全技術的方法主要包括以下幾點:第一,要以安全防護的相關內容為出發點,加強分析網絡安全技術深度防護的力度,主要是對網絡安全行為的內容和網絡安全防護的匹配這兩個方面進行分析。基于特征庫簽名的深度報文的特征匹配是當前比較常用的一種安全防護分析方法,即根據報文的深度內容展開有針對性的分析,利用這種途徑來獲取網絡安全攻擊的特征,并利用特征庫對匹配的網絡攻擊內容進行搜索,同時還要及時采取相應的防御措施。還有,基于安全防護的職能分析以及基于網絡行為的模型學習也同樣是一種較好的網絡安全技術手段,即通過模擬具有特征性的網絡行為以及分析網絡行為的特征獲取網絡攻擊行為的提前預警,這樣就可以為保護計算機網絡系統有力的條件。
3.2把網絡安全產業鏈轉變成生態環境
產業價值鏈在近幾年時間里隨著不斷發展的計算機技術及行業也相應的發生了巨大的變化,它的價值鏈變得越來越復雜。此外,生態環境的變化速度已經在很大程度上超過了預期環境的變化速度,按照這種趨勢發展下去,在未來網絡技術發展的過程中,各個參與方一定要加強自身對市場要求的適應能力。
3.3網絡安全技術將會朝著自動化和智能化的方向發展
我國現階段的網絡安全技術要得到優化需要經歷一個長期的過程,它貫穿于網絡發展的始終。此外,智能化的網絡優化手段已經開始逐步取代人工化的網絡優化手段。同時,還可以將網絡優化知識庫建立起來,進而針對一些存在于網絡運行中的質量問題,將更多切實可行的解決措施提供給網絡管理者。所以,國內網絡安全技術在未來幾年時間里會在IMS的基礎上將固定的NGN技術研制出來。這項技術的成功研制能夠給企事業的發展提供更豐富的業務支持。
3.4朝著網絡大容量的方向發展
國內互聯網的業務量在近幾年時間里呈現出迅猛增長的態勢,尤其是針對那些IP為主的數據業務而言,對交換機以及路由器的處理能力均提出了較高的要求。因為想要對語音、圖像等業務需求形成更好的滿足,因此,要求IP網絡一定要具備較強的包轉發和處理能力,那么,未來的網絡在不出意外的情況下一定會朝著大容量的方向發展。國內網絡在今后發展的過程中,一定要廣泛應用硬件交換、分組轉發引擎,促使網絡系統的整體性能得到切實提升。
4結語