計算機系畢業論文格式_第1頁
計算機系畢業論文格式_第2頁
計算機系畢業論文格式_第3頁
計算機系畢業論文格式_第4頁
計算機系畢業論文格式_第5頁
已閱讀5頁,還剩53頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘黑體小三 要 數據庫作為信息系統的重要組成部分,存儲著大量重要的數據宋體 小四,在整個系統的構建和應用中承擔著核心的角色,因而也必然在數據安全保障方面占據重要的地位。本文分析了des等幾種現有的數據庫加密技術及數據庫加密算法,然而隨著計算機性能的迅速提高,目前在安全性要求很高的場合下,des已不再適用,本文以此為切入點,對影響des算法安全性的因素進行了分析,在此基礎上提出了des算法的一種改進方案3m-des ( 3 mixed-des )算法。3m-des算法在不改變des的核心f函數的情況下,將3個des分組(同樣可以按照相同的方法推演到n個分組)的數據交叉連接,構成192bits分組

2、,192bits密鑰的新算法,經過16輪迭代,使得各個分組的數據與密鑰實現充分的擴散和混淆,從而將原des算法的分組長擴展到192bits,密鑰長擴展到192bits(去掉奇偶校驗位實際還有168bits)。3m-des算法基本保持了des算法的運算速度,但憑借加長的數據分組與密鑰長度,所以其混淆和擴散的效果比des算法好很多,因此其安全性得到了很大的提高。但是,由于3m-des的3組密鑰是各自獨立生成,與明文進行加密前沒有經過充分的混合,因此,192bits的密鑰長度可能會打一些折扣。本文還分析了與數據庫加密相關的問題,旨在說明數據庫加密時應該注意一些問題以及應采取適當的選擇措施。并通過以g

3、sm移動通信系統、數字電視條件接收系統中的安全策略及計算機網絡中三種通信加密方式的運用為例,簡單闡述了數據庫加密系統的應用。 關鍵詞:數據庫加密,加密算法,密鑰管理,3m-des55目 錄獨創性聲明i中文摘要ii英文摘要iii目錄iv第1章 前言11.1 研究背景11.2 研究目的與意義11.3 國內外數據庫加密研究現狀及存在問題21.4 論文的研究內容及組織機構31.5 創新點及貢獻3第2章 數據庫加密相關技術52.1 數據庫加密的層次52.1.1 os層加密52.1.2 dbms內核層加密52.1.3 dbms外層加密62.2 數據庫加密技術概述72.2.1 數據庫加密技術的思想72.2.

4、2 現有的數據庫加密技術8第3章 數據庫加密算法分析及改進113.1 des算法的優點和弱點113.2 rsa算法的優點和弱點133.3 劉氏高強度公開加密算法的優點和弱點143.4 一種改進的des算法3m-des173.4.1 3m-des算法描述173.4.2 算法可逆性分析213.4.3 算法的強度分析243.4.4 算法的速度分析273.4.5 算法的群特性283.4.6 算法的軟件和硬件可實現性293.5 抗密碼攻擊能力的分析29第4章 數據庫加密技術的相關問題314.1 加密不能代替訪問控制314.2 區分數據庫中動態數據加密和靜態數據加密324.2.1 動態數據加密324.2.

5、2 靜態數據加密334.3 數據庫加密的選擇334.3.1 加密算法的選擇334.3.2 加密粒度的選擇344.3.3 加密方式的選擇364.4 數據庫加密與操作系統的關系374.5 加密對數據庫管理系統原有功能的影響384.6 數據庫加密的局限性39第5章 加密技術的應用415.1 gsm移動通信系統中的安全策略415.2 數字電視條件接收系統中的安全策略425.3加密技術在網絡上的運用44第6章 結論47參考文獻49致謝53東營職業學院畢業論文 第1章 前言 第1章 前言黑體 小三1.1 研究背景黑體 四號自從上個世紀六十年代以宋體 小四來,數據庫應用有了巨大的增長,而1990年以來的互聯

6、網革命則對用戶與數據庫交互起了巨大的推動作用。很多數據庫中的資源是可以共享的,有些數據庫中的資源甚至是完全公開的,如圖書館的書籍目錄數據庫,但是大多數的數據庫是無法完全公開的,有些數據庫甚至是完全保密的。例如,就商業部門而言,一般數據可以共享,但一些敏感數據或信息(如商業情報、員工工資等)則是保密的;而對政府或軍隊等特殊部門的數據庫而言,因其存儲的全是一些機要數據,所以就要求完全保密。傳統地,物理安全和操作系統安全機制為數據庫提供了一定的安全措施和技術,但這些方法并不能全部滿足數據庫安全的需求,特別是無法保證一些重要部門(如政府、金融、國防)和一些敏感數據(如信用卡、身份證、個人的醫療信息)的

7、安全。造成不安全的一個主要原因是因為原始數據以可讀形式存放在數據庫中。一旦某一用戶非法獲取用戶名和口令,或者繞過操作系統(或dbms)的控制入侵到系統中,可以訪問和修改數據庫中的信息。同樣地,存儲數據介質(如磁盤、光盤、磁帶等)丟失也會導致數據庫中的數據泄漏。此外,數據庫中數據的完整性和真實性沒有辦法解決。如果我們對數據庫中的數據進行加密處理,那么就上述問題可以得到解決,即使某一用戶非法入侵到系統中或者盜得數據存儲介質,沒有相應的解密密鑰,他仍然不能得到所需數據。1.2 研究目的與意義數據庫作為信息系統的重要組成部分,存儲著大量重要的數據,在整個系統的構建和應用中承擔著核心的角色,因而也必然在

8、信息系統的安全保障方面占據重要的地位。為了保護數據庫的安全,人們做了大量的研究。主要的安全手段是密碼技術保護。密碼技術保護法通過將原本明文存儲的數據庫文件變為密文存儲來保護數據庫存儲安全,即使攻擊者攻破了安全機制的防護,還需要破解數據的密文才能夠看到數據明文,而目前廣泛使用的加密技術都具有相當高的安全性,想要破解密文十分困難。所以數據庫加密技術對于保證數據的安全性具有非常重要的意義。1.3 國內外數據庫加密研究現狀及存在問題近年來數據庫加密技術的研究逐漸興起。國內外學者也提出了相當多的理論來支持該技術的實現,甚至己經出現了一些實際的產品。目前的數據庫加密的研究主要集中于加密粒度,加密算法,密鑰

9、管理和密文查詢上。從加密粒度的角度上看,有基于文件(表),記錄和字段的加密技術。從使用的加密算法上看,可以使用傳統的密碼算法,如對稱密碼算法,使用傳統密碼算法的優點是技術成熟,安全性得到廣泛認可,但是對于密文無法直接操作,需要將其解密后才能操作,操作完成后需要再加密存放,因此對于那些不必顯示所有密文而只需結果的操作,比如數據庫內部函數average, sum等,有比較嚴重的性能損失;為此有學者提出了一種新的秘密同態的密碼算法1,經過具有秘密同態特性的密碼算法加密后的密文可以直接進行操作,但是該類型算法目前在安全性和效率上還有待進一步完善。在密鑰管理方面,對密鑰進行轉換,但是該方法不夠靈活,對于

10、安全級數較多的情況,處理難度較大。雖然隨著數據庫加密技術研究的日益深入,產生了很多的數據庫加密研究成果,但是仍然存在以下問題:1、對于數據庫某些功能的影響無法消除。比如oracle要求不要對索引字段加密,然而這在很多應用場合是無法接受的。2、對于數據庫效率的影響比較嚴重,這里包括訪問效率和存儲效率。由于目前數據庫加密一般使用傳統的加密算法,比如des,加解密的過程必然會導致數據庫訪問效率的降低,而無法對加密數據進行直接操作也是傳統加密算法的重大缺點;并且現有各加密算法一般都有密文長度大于或等于明文長度的特點,導致存儲壓力加大。這一點有待于新的可靠加密算法的出現,尤其是能夠對密文數據作直接操作的

11、加密算法。3、幾乎所有已提出的加密方案都基于服務器端加解密,而在客戶端加解密的方案則甚少提及。相對于服務器端加解密的方案,在客戶端加解密具有工作量分散的優點。但是,由于需要將加解密的密鑰分布到客戶端,因此在客戶端加解密對于密鑰管理有特殊的需求。1.4 論文的研究內容及組織機構本文在分析了幾種現有的數據庫加密技術及數據庫加密算法優缺點的基礎上,提出了des算法的一種改進方案3m-des(3 mixed-des )算法。本文還分析了與數據庫加密相關的問題。說明數據庫加密時應該注意一些問題以及應采取適當的選擇措施。并以gsm移動通信系統及數字電視條件接收系統中的安全策略為例,簡單闡述了數據庫加密系統

12、的應用。本文共分五章,第一章為前言,是本文的綜述部分。第二章介紹了數據庫加密的相關技術,分析了數據庫加密的基本思想及現有的幾種數據庫加密技術。第三章分析比較了幾種常用的加密算法的優缺點,并提出了des算法的一種改進方案3m-des(3 mixed-des)算法。并對算法的結構、強度、速度進行了相關的分析。這是本文的重點。第四章從加密不能代替訪問控制、區分數據庫中動態數據加密和靜態數據加密、數據庫加密的選擇、數據庫加密與操作系統的關系、數據庫加密的局限性等幾個方面,闡述了數據庫加密的相關問題。也是本文的一個重點。第五章以gsm移動通信系統及數字電視條件接收系統中的安全策略為例,簡單闡述了數據庫加

13、密系統的應用。1.5 創新點及貢獻本文在充分吸收眾家理論的基礎上,提出了以下新的觀點:(1)3m-des算法在不改變des的核心f函數的情況下,將3個des分組(同樣可以按照相同的方法推演到n個分組)的數據交叉連接,構成192bits分組,192bits密鑰的新算法,經過16輪迭代,使得各個分組的數據與密鑰實現充分的擴散和混淆,從而將原des算法的分組長擴展到192bits,密鑰長擴展到192bits(去掉奇偶校驗位實際還有168bits)。(2)從加密不能代替訪問控制、區分數據庫中動態數據加密和靜態數據加密、數據庫加密的選擇、數據庫加密與操作系統的關系、數據庫加密的局限性等幾個方面,闡述了數

14、據庫加密的相關問題。東營職業學院畢業論文 第2章 數據庫加密相關技術 第2章 數據庫加密相關技術數據庫訪問控制的安全措施是防止從數據庫系統中竊取數據。但如果有人竊取存儲數據的介質,如磁盤、磁帶等,或從通信線路上竊取,則數據庫系統本身就無法控制了。為了防止這類竊密,比較好的方法就是對數據加密。2.1 數據庫加密的層次我們可以考慮在三個不同層次實現對數據庫數據的加密,這三個層次分別是os, dbms內核層和dbms外層。 2.1.1 os層加密無法產生合理的密鑰,也無法進行合理的密鑰管理和使用。所以,在os層對數據庫文件進行加密,對于大型數據庫來說,目前還難以實現。 缺點:難以實現。2.1.2 d

15、bms內核層加密 在dbms內核層實現加密,是指數據在物理存取之前完成加密解密工作。這種方式勢必造成dbms和加密器(硬件或軟件)之間的接口需要dbms開發商的支持。 優點:加密功能強,并且加密功能幾乎不會影響dbms的功能。缺點:是在服務器端進行加密解密運算,加重了數據庫服務器的負載。這種加密方式如圖2-1所示。2.1.3 dbms外層加密dbms外層加密是將數據庫加密系統做成dbms的一個外層工具(如圖2-2所示)。采用這種加密方式時,加密解密運算可以放在客戶端進行,其優點是不會加重數據庫服務器的負載并可實現網上傳輸加密,缺點是加密功能會受一些限制。圖中,“定義加密要求工具”模塊的主要功能

16、是定義如何對每個數據庫表數據進行加密。在創建了一個數據庫表后,通過這一工具對該表進行定義;“數據庫應用系統”的功能是完成數據庫定義和操作。數據庫加密系統將根據加密要求自動完成對數據庫數據的加密解密。2.2 數據庫加密技術概述2.2.1 數據庫加密技術的思想數據庫加密(database encryption )是指建立一個系統,該系統能夠對數據庫中的明文數據進行加密,并以密文保存;當合法用戶讀取數據時,該系統能夠將密文解密成明文返回給用戶。通過數據庫加密可以加強數據庫的機密性。數據庫加密有兩個基本需求:(1)安全性。即加密后的密文能夠防止非法用戶獲取數據明文。(2)高效性。即加密功能不能對數據庫

17、性能產生太大的影響。 加密技術基本思想是在加密密鑰ke的控制下按照加密算法e對要保護的數據(即明文m)加密成密文c,記為c=e(m,ke)。而解密是在解密密鑰kd的控制下按照解密算法d對密文c進行反變換后還原為明文m,記為m=d(c, kd)。根據密鑰類型不同將現代密碼技術分為兩類2。 一類是對稱加密(秘密鑰匙加密)系統。加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,并保持鑰匙的秘密。對稱密碼系統的安全性依賴于以下兩個因素。第一,加密算法必須是足夠強的,僅僅基于密文本身去解密信息在實踐上是不可能的;第二,加密方法的安全性依賴于密鑰的秘密性,而不是算法的秘密性,因此,我們沒有必

18、要確保算法的秘密性,而需要保證密鑰的秘密性。對稱加密系統的算法實現速度極快,從aes候選算法的測試結果看,軟件實現的速度都達到了每秒數兆或數十兆比特。對稱密碼系統的這些特點使其有著廣泛的應用。因為算法不需要保密,所以制造商可以開發出低成本的芯片以實現數據加密。這些芯片有著廣泛的應用,適合于大規模生產。另一類是公開密鑰加密(非對稱加密)系統。公開密鑰(public key)密碼體制出現于1976年。它最主要的特點就是加密和解密使用不同的密鑰,每個用戶保存著一對密鑰:公開密鑰pk和秘密密鑰sk。因此,這種體制又稱為雙鑰或非對稱密鑰密碼體制3。在這種體制中,pk公開,用作加密密鑰,而sk需要由用戶自

19、己保密,用作解密密鑰。加密算法e和解密算法d也都是公開的。雖然sk與pk是成對出現,但卻不能根據pk計算出sk。公開密鑰算法的特點是:用加密密鑰pk對明文x加密后,再用解密密鑰sk解密,即可恢復出明文,或寫為:dsk(epk(x))=x;加密密鑰不能用來解密,即dpk(epk(x))=x;在計算機上可以容易地產生成對的pk和sk:從己知的pk實際上不可能推導出sk;加密和解密的運算可以對調,即: epk(dsk(x))=x。目前比較流行的雙鑰加密算法是rsa,但其加密速度較慢,不適用于信息量大的數據加密。在實際應用中通常綜合使用對稱加密算法和非對稱加密算法。源數據采用對稱算法加密;對稱加密的鑰

20、匙(稱為session key)則用非對稱算法加密后在通訊雙方間交換。2.2.2 現有的數據庫加密技術 與一般的加密技術不同,由于數據庫具有文件(表)、記錄、字段多個層次的概念,因此對數據庫的加密也可以分別選用文件(表)、記錄、字段作為加密基本單位的技術。加密的單位越小,適用的范圍越廣,但實現的難度也越大。根據應用具體要求的不同,實現時可以采用不同的方法。下面我們以一張擁有m條記錄,n個字段的數據庫為例分析一下各種加密技術的優缺點及其密鑰管理的實現難度。1、基于文件的數據庫加密技術把數據庫文件作為整體,用加密密鑰和加密算法對整個數據庫文件加密,形成密文來保護數據的機密性。利用這種方法,數據的共

21、享是通過用戶用解密密鑰對整個數據庫文件進行解密來實現的。但多方面的缺點極大地限制了這一方法的實際應用:首先,數據修改的工作將變得十分困難,需要進行解密、修改、復制和加密四個操作,極大地增加了系統的時空開銷;其次,即使用戶只是需要查看某一條記錄,也必須將整個數據庫文件解密,這樣無法實現對文件中不需要讓用戶知道的信息的控制。因此,這種方法只適用于能回避這些限制的應用環境。此方法的密鑰管理很簡單,只需要保存和管理一個數據庫的總密鑰,因此實現難度不大。2、基于記錄的數據庫加密技術一般而言,數據庫系統中每條記錄所包含的信息具有一定的封閉性,即從某種程度上說它獨立完整地存儲了一個實體的數據。因此,基于記錄

22、的加密技術是常用的數據庫信息加密手段。這種方法的基本思路是:在各自密鑰的作用下,將數據庫的每一個記錄加密成密文并存放于數據庫文件中。然而基于記錄的數據庫保護有一個缺點,就是在解密一個記錄的數據時,無法實現對在這個記錄中不需要的字段不解密;在選擇某個字段的某些記錄時,如果不對含有這個字段的所有記錄進行解密就無法進行選擇。此方法的密鑰管理略為復雜,一般需要保存m條記錄密鑰。3、子密鑰加密技術為了解決基于記錄的數據庫加密技術存在的問題,g.i. david等人在參考文獻4中提出了子密鑰數據庫加密技術。子密鑰加密算法的核心思想是根據數據庫(特別是關系型數據庫)中數據組織的特點,在加密時以記錄為單位進行

23、加密操作,而在解密時以字段為單位對單項數據進行解密操作。兩者所用的密鑰是不同的,加密所用的密鑰是針對整個記錄的密鑰,而解密所用的密鑰是針對單個數據項的子密鑰。該算法的理論依據是著名的中國剩余定理5。中國剩余定理:假設m1、m2、mn是n個兩兩互素的正整數,那么,對于任意整數a1、a2、an,同余方程組x=ai(mod mi)(1in)必有解,并且任意兩個解在m1m2mn下同余。加密算法:假設一個待加密的記錄有n個明文字段f1、f2、fn,選取n個不同的兩兩互素的正整數m1、m2、mn,令m=,mi=m/mi選取yi滿足miyi =1(mod mi),其中(1in)。令ki=miyi(1in),

24、以(k1、k2、kn)作為記錄的加密密鑰,c表示記錄的密文,則加密運算為:c=解密算法:mi為字段fi的解密子密鑰,根據中國剩余定理,解密運算為:fi=c(mod mi) (1in)子密鑰加密技術的優點在于理論上原理簡單,并可以對單個數據項解密,克服了單純的記錄加密所存在的問題。缺點是密鑰管理困難,需要生成的密鑰數量為:m條加密密鑰,mn條解密密鑰,數量太過龐大,難于管理。4、基于字段的加密技術基于字段的數據庫加密,就是以不同記錄的不同字段為基本加密單元進行加密。該方法可以對數據庫中單個數據元素進行加密。其優點在于具有最小的加密粒度,具有更好的靈活性和適應性。其缺點是:(1) 加解密效率可能會

25、比較低。(2) 若用數據庫密鑰對單個數據元素重復加密,對于密文搜索攻擊是脆弱的;若各字段的數據元素分別用不同的密鑰加密,則需要保存mn條密鑰記錄,數量過于龐大,甚至有時密鑰的數據量超過了數據本身的數據量,此時的密鑰管理就很困難,從密鑰庫中取出密鑰的過程的效率也很難保證。該技術的通用性最好,可以應用于各種場合,然而卻存在密鑰數量巨大管理困難的缺點,有時甚至僅生成的密鑰數據量就相當需要加密的數據庫的數據量了,這樣一來就陷入了死循環。小結: 本章介紹了若要對數據庫加密應從數據庫的三個層次進行,并進行了相應分析。同時簡單概述了數據庫加密基本思想及現有的數據庫加密技術。東營職業學院畢業論文 第3章 數據

26、庫加密算法分析及改進第3章 數據庫加密算法分析及改進世界上的加密算法有很多種,但總的來說可以分為兩大類即:傳統密碼體制及公開密碼體制。對于一個加密應用系統來說,正確地選擇加密算法是一件很重要的事。下面主要對當前世界上正廣泛使用的幾種加密算法進行對比和討論,并提出了des算法的一種改進方案3m-des ( 3 mixed-des )算法。3.1 des算法的優點和弱點 數據加密標準des是人類歷史上第一個公開的加密算法,屬于傳統加密方法中的一種。它是美國政府1977年采用的加密標準,在1981年又被ansi標準采納。des通過密鑰對64位的二進制信息進行加密,把明文的64位信息加密成密文的64位

27、信息。des的加密算法是公開的,所以加密強度取決于密鑰的保密程度。它的設計核心思想是:讓所有秘密寓于密鑰之中。des算法可以用軟件或硬件實現,易于用戶使用。在一定范圍和條件下,能夠確保信息的加密強度,從而使des算法得以在世界范圍內推廣并爭取到數百萬以上的用戶,成為使用最廣泛的數據加密算法6。 des算法的基本設計思想:通過循環或迭代,將簡單的基本運算和變換構造成數據流的非線性變換。des的設計中,將64位密鑰中的56位用于加密過程,其余8位用于奇偶校驗位。也就是說,64位密鑰被分成八個8位字節,在每一個字節中的前7位用于加密算法,第8位用于奇偶校驗。因此des加密體制共有256個密鑰可供用戶

28、選擇。des算法原來是ibm公司為保護產品機密而研制出來的,原先是128位密鑰,但被選中作為數據加密標準時,由于美國國家安全局的建議,將密鑰定為56位,并修改了s盒的設計。s盒的8個選擇矩陣的設計原理至今沒有公布,因此des還不能算是嚴格意義上的公開加密算法。des算法的其它弱點總結如下:1、des算法的密鑰的功能設計過于簡單,密鑰只起運算參數的作用,其參與的唯一運算是一次模2加法,由于s盒重復因子的作用,大大降低了密鑰參與運算結果的控制性和有效性。2、在des算法的s盒設計中利用重復因子,造成s盒多個不同的輸入而具有相同的輸出結果,致使加密或解密交換的密鑰具有多值性。雖然這種設計方法有利于s

29、盒設計者及其所屬部門控制和破譯加密信息,但卻造成使用des算法用戶的不安全感,顯著降低了des算法的加密強度。 3、對des算法加密強度的重新評估:用戶實際使用的密鑰長度為56bits,理論上加密強度為256;但由于s盒重復因子的作用,在每次迭代或循環運算過程中,48位的字密鑰只影響到32位的輸出結果,即每次迭代的加密強度為232,共16次選代或循環運算,所以des算法真正有效的加密強度為232*24=236。 4、采用des算法,如果提高加密強度(例如增加密鑰長度),則系統開銷呈指數增長。另外,從算法本身和軟件技術方面無法提高des算法的加密強度??傊瑢τ赿es算法來說,它的致命性缺陷和不

30、安全因素在于:基于s盒的設計,導致相同的明文及所對應的相同的密文之間的加密或解密變換,用戶所使用的密鑰不是唯一的。如圖3-1所示:近年來,研究人員又推出了des的改進算法,triple-des。它使用兩把密鑰對報文作三次des加密,效果相當于將des密鑰長度加倍。triple-des現被許多金融機構用來延長它們沿用已久的des的使用壽命。3.2 rsa算法的優點和弱點rsa算法作為公開密碼體制的典型代表,與傳統加密體制相比,具有明顯的優越之處。其優點如下: 首先,用戶可以把用于加密的密鑰,公開地分發給任何人。誰都可以用這把公開的加密密鑰與用戶進行秘密通信。除了持有解密密鑰的收件人外,無人能夠解

31、開密文。這樣,密鑰分發問題就轉變為的“公開密鑰分發”問題。 其次,公開密鑰加密系統允許用戶事先把公開密鑰發表或刊登出來,這樣任何人都可以查找到。因此,素不相識的人都可以與該用戶進行秘密通信。不象傳統加密系統,雙方必須事先約定統一的密鑰。最后,公開密鑰加密不僅改進了傳統加密方法,還提供了傳統加密方法不具備的應用數字簽名。公開加密技術也并不是完美無缺的,也存在某些有待解決的問題,而且目前己知的公開加密方法運算量較大,加密和解密的速度較慢。下面就以rsa系統為例具體闡述一下公開加密方法的弱點:1、檢測素數數值時,巨大的計算機開銷是rsa算法的致命弱點,即使采用超大規模集成電路來實現rsa體制,其應用

32、范圍也受到局限和制約。2、雖然提高r=p*q的位數無疑將大大提高rsa密碼體制的安全性,但其計算開銷將呈指數增長,導致事實上的不可行。3、西蒙斯(g. j. simmons)和諾里斯(j. n. norris)曾經證明:如不細心地選擇p,q,無需分解就可破譯rsa密碼體制。他們發現,對于某些密鑰,將密文重新加密少數幾次就可恢復原來的消息(這表明加密或解密變換具有一定的周期性和封閉性)7。如圖3-2所示:4、實際分析表明,增大兩個選擇素數p和q的差值,就有可能降低p*q乘積項的數值結果,進而對rsa密碼體制的安全性產生不利的影響。5、關于加密強度問題:rsa密碼體制的加密強度是一個閾值(thre

33、shold value),其根本缺陷在于用戶如何確保所選擇的p和q是兩個大的安全的素數。而安全素數本身的概念并不清晰,實際應用時有一定的局限性。6、關于選取大素數問題:rsa密碼體制對用戶如何選擇兩個大的素數p和q有諸多要求,這使用戶缺乏主動控制性,況且rsa體制的安全性并不能完全由選取兩個秘密的大素數本身來決定。7、rsa公鑰密碼體制的算法完整性和安全性尚有待進一步完善和給出嚴格的數學證明。8、rsa密鑰體制不是一個大眾化的信息保護工具,用戶不僅要了解算法的數學內容,還要掌握好選取安全素數的方法。9、鑒于公鑰密碼體制有著重要的應用價值和用途,rsa算法面臨著數學方法的進步和計算機技術飛速發展

34、帶來的破譯密碼能力日趨增強的嚴重挑戰。10、 rsa算法至今在理論上還不能給出結論:是否有其它的高速算法,不用大數因子分解就可以直接破譯rsa密碼體制8。3.3 劉氏高強度公開加密算法的優點和弱點 當代計算機技術的迅速發展對基于算法復雜性的密碼體制構成了重大威脅?;谒惴◤碗s性的密碼體制,備受數學方法進步的威脅,往往數學方面一項新的突破,并與計算機巨大的處理能力相結合,就會動搖整個密碼體制的基礎。就在世界上許多加密體制被逐一破解的時候,劉氏算法應運而生。劉氏高強度公開加密算法是建立在隨機性原理之上,基于密鑰來構造并控制非線性的加密和解密交換的密碼體制??梢哉f不受數學方法進步的影響。1、劉氏密碼

35、體制在計算機科學方面的貢獻主要有兩方面9:(1) 圓滿地解決了計算機密碼學中的一類np問題:通常的計算機加密算法,當提高用戶所需的加密強度時,系統開銷呈指數增長。而劉氏加密算法,當提高用戶加密強度時,在隨機抽樣測試的條件下,系統開銷呈對數曲線(如圖3-3所示);對具有一定長度的明文文件,可以實現提高加密強度,而系統的開銷趨于常數值。劉氏加密算法在國際上第一次實現了在系統開銷較小的情況下,用戶可以獲得極高的加密強度,從而第一次構造出在當今世界上不可破譯的計算機密碼體制。(2) 在當今世界上第一次從算法體制上構造出當明文具有統計頻率時,經過加密交換后得到的密文沒有統計特性。2、劉氏高強度公開加密算

36、法具有以下特點:(1) 它是一個真正的公開加密算法的計算機密碼體制。(2) 劉氏密碼體制是基于隨機選取密鑰的動態型可構造加密或解密交換的系統。用戶使用自己選取的密鑰,可以進行快速的加密或解密交換。而對于強大的攻擊者,面對沒有一個固定的解析運算方式,并且整個問題歸結為要攻擊一個巨大的密鑰空間,唯一的選擇只能是全局搜索的窮舉算法。面對巨大變長的密鑰空間,即使使用全世界目前擁有的2億臺計算機來攻擊,并且允許每臺計算機速度在原有基礎上再提高億*億倍,即有: 1億=100,000,000; 227=134 ,217 ,728; 2億32*(227)3=282故用全世界的計算機來攻擊劉氏加密算法中用戶可能

37、選取的密鑰,是現實不可行的。所以,無論從理論上的分析證明還是從攻擊者的現實可行性分析,劉氏密碼體制均是安全可靠的,用戶可以完全信賴并放心使用。(3) 它采用一次性非線形函數變換,不采用送代或循環,也不采用大量的模運算,它采用整型數運算機制,實現了加密解密的快速變換。(4) 它基于整型運算和代數方程的性質,實現了明文至密文或密文至明文的唯一可逆變換。對于特定的加密解密交換,其密鑰具有唯一屬性。(5) 用戶可隨機選擇密鑰,并且密鑰是可變長的。(6) 它的算法設計易于標準化、模塊化,易于采用并行處理機制,實現高速的加密或解密變換。(7) 它立足于安全考慮,可以確保使用劉氏公開加密算法體制的系統和用戶

38、各自保持獨立性,從而滿足不同級別、層次、不同類型用戶的需要。隨機選取長密鑰是安全性的基礎,用戶不必擔心系統的安全控制,系統也不必擔心用戶非法獲取機密文件的可行性,其關鍵在于保持密鑰的隨機選擇性和安全性。(8) 它具有極高的加密強度,第一次構造出現實條件下不可能破譯的計算機密碼體制。(9) 它是立足于密鑰控制的密碼體制,可以構造成為智能加密體制,即密碼系統提供規律和原則,而具體選擇和步驟,可以由用戶通過密鑰來隨機選取,從而將人工智能技術用于現代計算機密碼體制。(10) 它可以成為工業化的加密算法,并且成為新一代計算機數據加密標準的強有力的競爭者。劉氏高強度公開加密算法從某種意義上說仍屬于傳統密碼

39、體制,其加/解密密鑰為同一把,這樣就面臨著密鑰保密性這個問題。但無論如何劉氏公開加密算法具有強大的生命力,具有相當長的使用周期,從而具有廣闊的應用前景。它將面臨強大對手的一系列挑戰,并將在競爭中求得更大的發展。3.4 一種改進的des算法3m-des3.4.1 3m-des算法描述des自誕生以來,因為自身密鑰長度和分組長度的限制以及計算機計算能力的提高使得其安全性逐漸降低,人們為了延長des的壽命相繼提出了很多對于des的改進方案,目前采用最多的就是3重des,其原理就是用2組或者3組不同的密鑰對明文進行3次des加密,然而這種方案并不能改變原有算法的分組大小,同時使得算法速度變為原來的1/

40、3左右;通過對des算法的分析我們可以知道,des的安全性的最大威脅仍然是強力破解,因此我們可以知道des算法的強度足夠,其缺點主要在于密鑰和分組的長度,當然主要與密鑰長度有關;如果能在不減弱des強度的基礎上增大密鑰長度和分組長度那么必然是增強des安全性的良好方案,增大密鑰長度對強力破解的抵抗力是一種隨著密鑰長度的增加而指數增長的安全性,因此對des的改進主要應從增大密鑰長度入手。本文根據des的設計思想,采用混合使用des相鄰三個分組的方法,提出了一種des算法的改進方案,它將des擴展為192bits(實際168bits)密鑰,192bits分組,其加密速度雖然與原始des相差不大,但

41、其安全性能卻有較大提高。3m-des算法的4輪迭代如圖3-4所示:算法的基本思想是將三組正常的des的加密分組交叉混合起來,使得三組明文數據以及三組密鑰在加密過程中互相混淆、互相影響。以下是實現這一部分的功能程序代碼: void m_desdialog:oneround(bool*in, bool*out, boot*m_ rsubkey,bool*m_rsubkey2,boo1*m_rsubkey3) bool afterffunction32,temp192; memcpy(temp,in,192); memcpy(out+96,temp+32,32); memcpy(out+160,te

42、mp+64,32); memcpy(out,temp+128,32); ffunction(temp+32,afterffunction,m_rsubkey);/這3行執行完 xor(afterffunction,temp+96,32);/第一組通過f函數的異或操作 memcpy(out+64,afterffunction,32);/ ffunction(temp+64,afterffunction,m_rsubkey2);/這3行執行完 xor(afterffunction,temp+l60,32);/第二組通過f函數的異或操作 memcpy(out+l28, afterffunction,

43、32);/ ffunction(temp+128,afterffunction,m_rsubkey3);/這3行執行完 xor(afterffunction,temp,32);/第三組通過f函數的異或操作 memcpy(out+32,pfterffunction,32);/按照原des密鑰生成的方法將192bits的密鑰分成三組分別生成加密密鑰,與三組數據分別作用,以三輪迭代為一組,加密時密鑰的應用順序為f1、f2、f3,解密時的應用順序為第一輪f1、f2、f3,第二輪f3、f1、f2,第三輪f2、f3、f1,重復5次共15輪,加上最后的輸出輪最終形成16輪迭代,這一部分的代碼如下所示:for

44、(int i=o;i16;i+)memcpy(m_desubkey+(i*48),m_subkey+768-(i+1)*48),48);memcpy(m_desubkey2+(i*48),m_subkey2+768-(i+1)*48),48);memcpy(m_desubkey3+(i*48),m_subkey3+768-(i+1)*48),48); /正常des生成的解密密鑰for(int j=0;j5 ;j+)/以下為生成符合改進的算法解密順序的密鑰memcpy(m_subkey+j*144,m_desubkey+j*144,48);/分配最終解密密鑰第一組,每一組解密密鑰均由3組密鑰的不

45、同部分組成memcpy(m_subkey+j*144+48,m_desubkey3+j*144+48,48);memcpy(m_subkey+j*144+96,m_desubkey2+j*144+96,48);memcpy(m_subkey2+j*144,m_desubkey2+j*144,48); /第二組解密密鑰memcpy(m_subkey2+j*144+48,m_desubkey+j*144+48,48);memcpy(m_subkey2+j*144+96,m_desubkey3+j*144+96,48);memcpy(m subkey3+j*144,m_desubkey3+j*144

46、,48);/第三組解密密鑰memcpy(m_subkey3+j*144+48,m_desubkey2+j*144+48,48);memcpy(m_subkey3+j*144+96,m_desubkey+j*144+96,48);memcpy(m_subkey+720,m_desubkey+720,48);/處理三組密鑰的最后一塊memcpy(m_subkey2+720,m_desubkey2+720,48);memcpy(m_subkey3+720,m_desubkey3+720,48);大體過程為,先由加密密鑰m_subkey根據des算法生成解密密鑰的方法生成3組臨時密鑰m_desubke

47、y,再根據3m-des解密時需要密鑰順序的不同將3組臨時密鑰的不同部分取出組合成最終的解密密鑰,將值賦給m_subkey。因為改進的算法是采用3組明文數據和3組密鑰交叉混合生成密文,所以新的算法假設其名字為3m-des ( 3 mixed des ) 。3.4.2 算法可逆性分析 可逆性是一個算法的首要問題,任何算法的設計可逆性都是首先需要考慮的問題,下面從幾個角度來分析新算法的可逆性。3.4.2.1 結構分析根據前面分析的可逆算法的幾種結構可以知道,des屬于結構可逆的算法,在設計des的改進方案的時候,總體上只能基于這一條件而不能改變它。des所采用的feistel結構給算法的可逆性提供了

48、很好的基礎, feistel結構的思想是經過15輪的交叉數據交換后,再經過一個數據交換相反的第16輪的輸出輪,這樣的結構使得算法從結構上可逆,新算法并沒有改變feistel結構總體,僅是將3個des分組并聯起來。很顯然,這使得新算法克服了des密鑰短、分組小的缺點,同時還不會失去des的原有強度和速度。通過對feistel結構的分析我們可以想到,每輪兩個32bits分組的數據交叉可以擴展到其它的64bits分組中去,把本來是在一個64bits分組的組內交叉(如圖3-5所示)變成組間交叉(如圖3-6所示),并聯3個分組,同樣可以得到一個完整的數據交叉;而這種新的交叉方法顯然沒有改變原有的f函數和

49、feistel數據結構設計準則,只是將各分組的32bits數據交換了位置;因此不僅不會降低算法的安全性反而因為同時將3組192bits分組和3組192bits密鑰充分結合起來,更好的實現了數據的混淆和擴散,從而增大了算法的強度。然而如此設計所產生的一個問題是解密密鑰的生成。因為密鑰的生成部分是相對獨立的三個部分,每個密鑰作用在每個分組中,這使得每個分組的數據在經過f函數的時候所經過的運算都不相同,而只是將作用的結果相互交換,解密的時候如果單單按照原來的方法每個密鑰對應一個分組顯然不能進行正確的解密;通過對f函數的分析我們可以看到每個分組的f函數僅與密鑰有關,因此解密的時候只需將原有的解密密鑰進

50、行相應的位置變換(見圖3-4虛線框內字為解密時對應的f函數),以適應解密的需要即可,幸運的是,這一過程并不復雜,后面有詳細的分析過程。3.4.2.2 輪數的選擇算法之所以取16輪不僅僅在于這樣可以保證算法的安全性,還在于保證算法的可逆性。每三個小輪構成一大輪,在每一大輪中,f函數的順序分別為:f1、f2、f3;f3、f1、f2;f2、f3、f1;3個小輪恰構成f函數的一個輪回,再加上最后一個輸出輪,因此總的迭代輪數至少要達到n3+1輪,如果不滿足這個條件,解密結果的分組順序會錯亂。3.4.2.3 可逆性的實際分析通過對每一輪的數據分析,可以更好的證明改進算法的可逆性。在加密過程中,假設r1這一

51、分組通過fl函數后的表示為r1f1,以下類似,第一輪:l2=l1 r2=l1l1f3l2=rlr1f1 r2=r1l2=rll1f2 r2=l1第二輪l3=l2 r3=l2l2f3l3=r2r2f1 r3=r2l3=r2l2f2 r3=l2第三輪l4=l3 r4=l3l3f3l4=r3r3f1 r4=r3l4=r3l3f2 r4=l3第四輪l5=l4l4f3 r5=r4l5=l4 r5=r4r4f1l5=l4 r5=r4l4f2解密過程,輸入數據為:ll=l5 r1=r5 l1=l5 r1=r5 l1=l5 r1=r5第一輪l2=l5 r2=l5l5f3l2=r5r5f1 r2=r5l2=r5

52、l5f2 r2=l5由加密過程最后一輪我們可以得出l5=l4 所以r2=l5l5f3=l5l4f3=l4r5=r4 所以l2=r5r5fl=r5r4f1=r4l5=l4 所以l2=r5l5f2= r5l4f2=r4最后可得第一輪解密輸出為:l2=l4 r2=l4 l2=r4 r2=r4 l2=r4 r2=l4同理可知第二輪的輸出為:l3=r4 r3=l4r4f2l3=r4l4f3 r3=l4l3=l4r4f1 r3=r4最后結果為:l3=l3 r3=r3 l3=l3 r3=l3 l3=r3 r3=r3第三輪輸出為:l4=r2 r4=r2 l4=r2 r4=l2 l4=l2 r4=l2第四輪輸出

53、為:l5=l1 r5=r1 l5=l1 r5=r1 l5=ll r5=rl由此可見,算法正確的輸出了原來的明文。3.4.3 算法的強度分析des的安全性主要來自于它的f函數(其中的s盒)以及其左右數據相互交換擴散的特性;3m-des原汁原味的保留了des的這兩大特點,沒有對f函數進行改動,同時也做到了數據的交換和擴散,這一點我們可以通過如下的對比得出:我們取16輪des的其中兩輪(如圖3-7所示)比較可以得出,des的輸出數據:l3=l1r3f,而r3= (l1rif)fr1;從圖3-4我們可以看出2輪3m-des的輸出數據是:l3=r1l1f2 r3=l1(r1l1f2)f3l3=rl(l1

54、l1f3)f1 r3=lll1f3l3=l1(r1r1f1)f2 r3=r1l1f2因此我們從輸出表達式的復雜性上可以看出,3m-des與des有相同的復雜性,然而所不同的是r3、l3和l3中都混合了兩種f函數即f1、 f2或者f3由三組明文混合構成,其強度顯然大于des中只有一個f函數參與的相應部分,且3m-des每一組輸出都由三組明文數據中的兩部分或三部分組成,其擴散程度也優于des 。對比兩種算法4輪之后的結果更容易看出3m-des的優勢:對于des,4輪之后的輸出數據表達式為:l5=(l1r1f)(l1r1f)fr1)f;r5=(l1r1f)(l1r1f)fr1)f)f(l1r1f)fr1);而3m-des4輪之后的輸出為:l5=(r1l1f2)(r1(l1llf3)f1)f2r5=(l1r1r1f1)f2)(r1l1f2)r1(l1l1f3)f1)f2)f3l5=(l1(r1l1f2)f3)(r1l1f2)(l1(r1r1f1)f2)f3)f1r5=(r1l1f2)(l1(r1r1f1)f2)f3l5=(r1(l1l1f3)fl)(l1l1f3)l1(r1l1f2)f3)fl)f2r5=(l1l1f3)(l1(r1l1f2)f3)f1通過以上等式可以很容易的看出,4輪之后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論