我們經(jīng)常需要一種措施來保護我們的數(shù)據(jù),防止被一些懷有不良用心的人所看到或者破壞。在信息時代,信息可以幫助團體或個人,使他們受益,同樣,信息也可以用來對他們構(gòu)成威脅,造成破壞。在競爭激烈的大公司中,工業(yè)間諜經(jīng)常會獲取對方的情報。因此,在客觀上就需要一種強有力的安全措施來保護機密數(shù)據(jù)不被竊取或篡改。數(shù)據(jù)加密與解密從宏觀上講是非常簡單的,很容易理解。加密與解密的一些方法是非常直接的,很容易掌握,可以很方便的對機密數(shù)據(jù)進行加密和解密。
一:數(shù)據(jù)加密方法
在傳統(tǒng)上,我們有幾種方法來加密數(shù)據(jù)流。所有這些方法都可以用軟件很容易的實現(xiàn),但是當我們只知道密文的時候,是不容易破譯這些加密算法的(當同時有原文和密文時,破譯加密算法雖然也不是很容易,但已經(jīng)是可能的了)。最好的加密算法對系統(tǒng)性能幾乎沒有影響,并且還可以帶來其他內(nèi)在的優(yōu)點。例如,大家都知道的,它既壓縮數(shù)據(jù)又加密數(shù)據(jù)。又如,的一些軟件包總是包含一些加密方法以使復制文件這一功能對一些敏感數(shù)據(jù)是無效的,或者需要用戶的密碼。所有這些加密算法都要有高效的加密和解密能力。
幸運的是,在所有的加密算法中最簡單的一種就是“置換表”算法,這種算法也能很好達到加密的需要。每一個數(shù)據(jù)段(總是一個
……(新文秘網(wǎng)http://jey722.cn省略833字,正式會員可完整閱讀)……
所產(chǎn)生的數(shù)做模運算(例如模),得到一個結(jié)果,然后循環(huán)移位這個結(jié)果的次數(shù),將使破譯次密碼變的幾乎不可能!但是,使用數(shù)列這種偽隨機的方式所產(chǎn)生的密碼對我們的解密程序來講是非常容易的。
在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產(chǎn)生一些校驗碼,并且把這些校驗碼插入到數(shù)據(jù)流中。這樣做對數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數(shù)據(jù)或程序是否加過密,是否有數(shù)字簽名。所以,加密程序在每次到內(nèi)存要開始執(zhí)行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查!很自然,這樣一種方法_應該b_m的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。
循環(huán)冗余校驗是一種典型的校驗數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和操作來產(chǎn)生一個位或位的校驗和,這使得丟失一位或兩個位的錯誤一定會導致校驗和出錯。這種方式很久以來就應用于文件的傳輸,例如。這是方法已經(jīng)成為標準,而且有詳細的文檔。但是,基于標準算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。
二.基于公鑰的加密算法
一個好的加密算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,并用它來加密明文,不同的密碼或密鑰產(chǎn)生不同的密文。這又分為兩種方式:對稱密鑰算法和非對稱密鑰算法。所謂對稱密鑰算法就是加密解密都使用相同的密鑰,非對稱密鑰算法就是加密解密使用不同的密鑰。非常著名的公鑰加密以及加密方法都是非對稱加密算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數(shù)學理論上講,幾乎沒有真正不可逆的算法存在。例如,對于一個輸入‘’執(zhí)行一個操作得到結(jié)果‘’那么我們可以基于‘’,做一個相對應的操作,導出輸入‘’。在一些情況下,對于每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數(shù)為)。對于一個沒有定義的操作來講,基于加密算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密算法,找到那個唯一的密鑰,唯一的方法只能是反復的試驗,而這需要大量的處理時間。
加密算法使用了兩個非常大的素數(shù)來產(chǎn)生公鑰和私鑰。即使從一個公鑰中通過因數(shù)分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至于在現(xiàn)實上是不可行的。加密算法本身也是很慢的,這使得使用算法加密大量的數(shù)據(jù)變的有些不可行。這就使得一些現(xiàn)實中加密算法都基于加密算法。算法以及大多數(shù)基于算法的加密方法使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數(shù)據(jù)。這個對稱算法的密鑰是隨機產(chǎn)生的,是b_m的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
我們舉一個例子:假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘’。利用公鑰,使用算法加密這個密鑰‘’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個分割符或文件長度,以區(qū)分數(shù)據(jù)和密鑰),然后,使用對稱加密算法加密正文,使用的密鑰就是‘’。當對方收到時,解密程序找到加密過的密鑰,并利用私鑰解密出來,然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘’來解密數(shù)據(jù)。這樣就使得一個可靠的經(jīng)過高效加密的數(shù)據(jù)安全地傳輸和解密。
一些簡單的基于算法的加密算法可在下面的站點找到:
三.一個嶄新的多步加密算法
現(xiàn)在又出現(xiàn)了一種新的加密算法,據(jù)說是幾乎不可能被破譯的。這個算法在年月日才正式公布的。下面詳細的介紹這個算法
使用一系列的數(shù)字(比如說位密鑰),來產(chǎn)生一個可重復的但高度隨機化的偽隨機的數(shù)字的序列。一次使用個表項,使用隨機數(shù)序列來產(chǎn)生密碼轉(zhuǎn)表,如下所示:
把個隨機數(shù)放在一個距陣中,然后對他們進行排序,使用這樣一種方式(我們要記住最初的位置)使用最初的位置來產(chǎn)生一個表,隨意排序的表,表中的數(shù)字在到之間。如果不是很明白如何來做,就可以不管它。但是,下面也提供了一些原碼(在下面)是我們明白是如何來做的,F(xiàn)在,產(chǎn)生了一個具體的字節(jié)的表。讓這個隨機數(shù)產(chǎn)生器接著來產(chǎn)生這個表中的其余的數(shù),以至于每個表是不同的。下一步,使用技術(shù)來產(chǎn)生解碼表;旧险f,如果映射到,那么一定可以映射到,所以(是一個在到之間的數(shù))。在 ……(未完,全文共4631字,當前僅顯示2339字,請閱讀下面提示信息。
收藏《數(shù)據(jù)加密技術(shù)》)