數(shù)據(jù)加密和解密,數(shù)據(jù)加密和解密原理是什么?
數(shù)據(jù)加密和解密,數(shù)據(jù)加密和解密原理是什么?
隨著Internet 的普及,大量的數(shù)據(jù)、文件在Internet 傳送,因此在客觀上就需要一種強(qiáng)有力的安全措施來保護(hù)機(jī)密數(shù)據(jù)不被竊取或篡改。我們有幾種方法來加密數(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ìn)就是使用2 個或者更多的“置換表”,這些表都是基于數(shù)據(jù)流中字節(jié)的位置的,或者基于數(shù)據(jù)流本身。這時,破譯變的更加困難,因?yàn)楹诳捅仨氄_的做幾次變換。通過使用更多的“置換表”,并且按偽隨機(jī)的方式使用每個表,這種改進(jìn)的加密方法已經(jīng)變的很難破譯。比如,我們可以對所有的偶數(shù)位置的數(shù)據(jù)使用a 表,對所有的奇數(shù)位置使用b 表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切的知道用了兩張表。與使用“置換表”相類似“, 變換數(shù)據(jù)位置”也在計算機(jī)加密中使用。但是,這需要更多的執(zhí)行時間。從輸入中讀入明文放到一個buffer 中,再在buffer 中對他們重排序,然后按這個順序再輸出。解密程序按相反的順序還原數(shù)據(jù)。這種方法總是和一些別的加密算法混合使用,這就使得破譯變的特別的困難,幾乎有些不可能了。例如,有這樣一個詞,變換起字母的順序,slient 可以變?yōu)閘isten ,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經(jīng)變化了。但是,還有一種更好的加密算法,只有計算機(jī)可以做,就是字/ 字節(jié)循環(huán)移位和xor 操作。如果我們把一個字或字節(jié)在一個數(shù)據(jù)流內(nèi)做循環(huán)移位,使用多個或變化的方向(左移或右移) ,就可以迅速的產(chǎn)生一個加密的數(shù)據(jù)流。這種方法是很好的,破譯它就更加困難! 而且,更進(jìn)一步的是,如果再使用xor操作,按位做異或操作,就就使破譯密碼更加困難了。如果再使用偽隨機(jī)的方法,這涉及到要產(chǎn)生一系列的數(shù)字,我們可以使用fibbonaci 數(shù)列。對數(shù)列所產(chǎn)生的數(shù)做模運(yùn)算(例如模3) ,得到一個結(jié)果,然后循環(huán)移位這個結(jié)果的次數(shù),將使破譯次密碼變的幾乎不可能! 但是,使用fibbonaci 數(shù)列這種偽隨機(jī)的方式所產(chǎn)生的密碼對我們的解密程序來講是非常容易的。在一些情況下,我們想能夠知道數(shù)據(jù)是否已經(jīng)被篡改了或被破壞了,這時就需要產(chǎn)生一些校驗(yàn)碼,并且把這些校驗(yàn)碼插入到數(shù)據(jù)流中。這樣做對數(shù)據(jù)的防偽與程序本身都是有好處的。但是感染計算機(jī)程序的病毒才不會在意這些數(shù)據(jù)或程序是否加過密,是否有數(shù)字簽名。所以,加密程序在每次load 到內(nèi)存要開始執(zhí)行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查! 很自然,這樣一種方法體制應(yīng)該保密的,因?yàn)椴《境绦虻木帉懻邔眠@些來破壞別人的程序或數(shù)據(jù)。因此,在一些反病毒或殺病毒軟件中一定要使用加密技術(shù)。
循環(huán)冗余校驗(yàn)是一種典型的校驗(yàn)數(shù)據(jù)的方法。對于每一個數(shù)據(jù)塊,它使用位循環(huán)移位和xor 操作來產(chǎn)生一個16 位或32 位的校驗(yàn)和,這使得丟失一位或兩個位的錯誤一定會導(dǎo)致校驗(yàn)和出錯。這種方式很久以來就應(yīng)用于文件的傳輸,例如xmodem - crc。這是方法已經(jīng)成為標(biāo)準(zhǔn),而且有詳細(xì)的文檔。但是,基于標(biāo)準(zhǔn)crc 算法的一種修改算法對于發(fā)現(xiàn)加密數(shù)據(jù)塊中的錯誤和文件是否被病毒感染是很有效的。
一個好的加密算法的重要特點(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 加密算法。pgp 算法(以及大多數(shù)基于rsa 算法的加密方法) 使用公鑰來加密一個對稱加密算法的密鑰,然后再利用一個快速的對稱加密算法來加密數(shù)據(jù)。這個對稱算法的密鑰是隨機(jī)產(chǎn)生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
我們舉一個例子: 假定現(xiàn)在要加密一些數(shù)據(jù)使用密鑰‘12345’。利用rsa 公鑰,使用rsa 算法加密這個密鑰‘12345’,并把它放在要加密的數(shù)據(jù)的前面(可能后面跟著一個分割符或文件長度,以區(qū)分?jǐn)?shù)據(jù)和密鑰) ,然后,使用對稱加密算法加密正文,使用的密鑰就是‘12345’。當(dāng)對方收到時,解密程序找到加密過的密鑰,并利用rsa 私鑰解密出來,然后再確定出數(shù)據(jù)的開始位置,利用密鑰‘12345’來解密數(shù)據(jù)。這樣就使得一個可靠的經(jīng)過高效加密的數(shù)據(jù)安全地傳輸和解密。但并不是經(jīng)過加密的數(shù)據(jù)就是絕對安全的,數(shù)據(jù)加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應(yīng)該是足夠的困難,在現(xiàn)實(shí)上是不可能的,尤其是短時間內(nèi)。
?
非常好我支持^.^
(9) 11%
不好我反對
(73) 89%
相關(guān)閱讀:
- [電子說] IBM Security可落地經(jīng)驗(yàn)助企業(yè)構(gòu)筑現(xiàn)代化安全屏障 2023-10-24
- [電子說] DLT698轉(zhuǎn)modbus協(xié)議網(wǎng)關(guān)把電能數(shù)據(jù)接到wincc的方法 2023-10-24
- [電子說] 自動化PLC控制柜如何進(jìn)行監(jiān)控管理?有什么應(yīng)用場景 2023-10-24
- [電子說] 環(huán)旭電子推出Pisces企業(yè)級無線路由器助力企業(yè)應(yīng)對高密度數(shù)據(jù)挑戰(zhàn) 2023-10-24
- [電子說] 設(shè)備互聯(lián)(IOT數(shù)據(jù)采集)平臺有什么功能 2023-10-24
- [電子說] 物通博聯(lián)工業(yè)采集網(wǎng)關(guān)實(shí)現(xiàn)水處理除臭設(shè)備運(yùn)行狀態(tài)監(jiān)控 2023-10-24
- [電子說] Andes旗下高性能多核矢量處理器IP的AX45MPV正式上市 2023-10-24
- [電子說] 工業(yè)物聯(lián)網(wǎng)解決方案:卷繞機(jī)數(shù)據(jù)采集管理系統(tǒng) 2023-10-24
( 發(fā)表人:admin )