網絡安全密碼技術全文-移動互聯網-_第1頁
網絡安全密碼技術全文-移動互聯網-_第2頁
網絡安全密碼技術全文-移動互聯網-_第3頁
網絡安全密碼技術全文-移動互聯網-_第4頁
網絡安全密碼技術全文-移動互聯網-_第5頁
已閱讀5頁,還剩118頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

網絡安全技術第2章退出學習目的:了解密碼技術的起源、發展與應用了解信息隱藏技術原理及其相關應用領域初步掌握密鑰分配與管理技術及相關應用掌握數字簽名原理及相關應用掌握對稱密碼技術的原理、相關算法及應用掌握非對稱密碼技術的原理、相關算法及應用學習重點:對稱密碼技術非對稱密碼技術密鑰分配與管理技術數字簽名2.1密碼技術概述2.1.1

密碼技術的起源、發展與應用1.密碼技術的起源與發展早在四千多年以前,古埃及人就開始使用密碼技術來保密要傳遞的消息一直到第一次世界大戰前,密碼技術的進展很少見諸于世,直到1918年,William

F.Friedman的論文“The

Index

of

Coincidence

and

Its

Applications

inCryptography”(重合指數及其在密碼學中的應用)發表時,情況才有所好轉。1949年,C.E.Shannon(香農)在《貝爾系統技術雜志》上發表了“The

Communication

Theory

of

Secrecy

System(保密系統的通信理論)”,為密碼技術奠定了堅實理論基礎。使密碼學真正成為一門科學。1976年,W.E.Diffie和M.E.Hellman發表了“New

Direction

in

Cryptography(密碼學新方向)”一文,提出了一種全新的密碼設計思想,導致了密碼技術上

的一場革命。他們首次證明了在發送端和接收端不需

要傳送密鑰的保密通信是可能的,從而開創了公鑰密

碼技術的新紀元,成為現代密碼技術的一個里程碑。1977年美國國家標準局NBS(National

Bureau

ofStandards,即現在的國家標準與技術研究所NIST)正式公布了數據加密標準DES(Data

EncryptionStandard)1978年,R.L.Rivest,A.Shamir和L.Adleman實現了RSA公鑰密碼技術,此后成為了公鑰密碼技術中杰出代表。1984年,Bennett.CharlesH.,Brassard.Gille首次提出了量子密碼技術(現稱為BB84協議)。1985年,N.Koblitz和V.Miller把橢圓曲線理論運用到公鑰密碼技術中,成為公鑰密碼技術研究的新

亮點。密碼技術的另一個重要方向——序列密碼(也稱

為流密碼,序列密碼主要用于政府、軍方等國家要害

部門)理論也取得了重大的進展。1989年,

R.Mathews,D.Wheeler,L.M.Pecora和Carroll等人首次把混沌理論使用到序列密碼及保密通信理論中,為

序列密碼的研究開辟了一條新的途徑。1997年,美國國家標準與技術研究所NIST開始征集新一代數據加密標準來接任即將退役的DES,2000年10月,由比利時密碼學家Joan

Daemen,VincentRijmen發明的Rijndael密碼算法成為新一代數據加密標準——AES(Advanced

EncryptionStandard)算法。2000年1月,歐盟正式啟動了歐洲數據加密、數字簽名、數據完整性計劃NESSIE,旨在提出一套強壯的包括分組密碼、序列密碼、散列函數、消息人證碼(MAC)、數字簽名和公鑰加密密碼標準。2.密碼技術的應用隨著計算機網絡是迅速發展,特別是電子商務和電子政務的興起,密碼技術及其應用得到了飛速的發展,現代密碼技術已經深入到信息安全的各個環節和對象,其應用已不僅僅局限于政治、軍事等領域,其商用價值和社會價值也得到了充分的肯定。當前,計算機網絡的廣泛應用,產生了大量的電子數據,這些數據需要傳輸到網絡的各個地方并存儲。可能這些數據有的具有重大的經濟價值,有的關系到國家、軍隊或企業的命脈甚至生死存亡。對于這些數據,有意的計算機犯罪或無意的數據破壞都可能會造成不可估量的損失。對于這些犯罪行為,光靠法律和相應的的監督措施是很難滿足現實的需要,必須進行自我保護。因此,理論和事實都說明密碼技術是一種實用而有效的方法。2.1.2

密碼技術基礎1.基本概念密碼技術(或密碼學)是研究通信安全保密的一門學科,它包含兩個相對獨立的分支:密碼編碼學和密碼分析學。密碼編碼學是研究把信息(明文)變換成沒有密鑰就不能解讀或很難解讀的密文的方法,從事此行的稱為密碼編碼者。密碼分析學是研究分析破譯密碼的方法,從事此行的稱為密碼分析者。密碼編碼學和分析學彼此目的相反、相互獨立,但在發展中又相互促進。密碼編碼學的任務是尋求生成高強度密碼的有效算法,以滿足對信息進行加密或認證的要求。密碼分析學的任務是破譯密碼或偽造認證密碼,竊取機密信息進行詐騙破壞活動。被動攻擊:對一個保密系統采取截獲密文進行分析的方法來進行的攻擊。主動攻擊:非法入侵者采用刪除、更改、添加、重放、偽造等手段向系統注入假信息的攻擊。進攻與反進攻、破譯與反破譯是密碼學中永無止境的矛與盾的競技。保密通信系統模型:通過上圖這個模型,我們可以看到一個密碼體制(Cryptosystem)通常由5個部分構成:全體明文的集合M,稱為明文空間;全體密文的集合C,稱為密文空間全體密鑰的集合K,稱為密鑰空間;加密算法E,由加密密鑰控制的加密變換的集合,即:K×M→C,(m,k)

Ek(m);解密算法D,由加密密鑰控制的加密變換的集合,即:K×C→M,(c,k)

Dk(c)。對m∈M,k∈K,有Dk(Ek(m))=m。以上描述的五元組(M,C,K,E,D)就稱為一個密碼體制。?一個完整的保密通信系統是由一個密碼體制、一個信源、一個信宿、一個攻擊者或密碼分析者構成。Kerchhoff假設:對于所有的密鑰,加密和解密算法迅速有效;密碼體制的安全性不依賴于算法的保密,而是依賴于密鑰的保密。這就是所謂的Kerchhoff假設(該假設是由荷蘭密碼學家Kerchhoff提出的密碼學基本假設)。實際上,加密和解密是在密鑰的控制下進行的,并有加密密鑰和解密密鑰之分。傳統密碼體制所采用的加密密鑰和解密密鑰相同,稱為單鑰或對稱密鑰密碼體制,即是說知道了加密密鑰,也就知道了解密密鑰;知道了解密密鑰也就知道了加密密鑰。所以加密密鑰和解密密鑰必須同時保密。最典型的就是美國數據加密標準DES。1976年,在由Diffie和Hellman提出的密碼新體制中,加密密鑰和解密密鑰不同,也是不能相互推導的,稱為公鑰或雙鑰或非對稱密鑰密碼體制。公鑰密碼體制的產生,一方面為數據的保密性、完整性、真實性提供了有效方便的技術;另一方面,比較科學地解決了密碼技術的關鍵問題——密鑰分配問題,而且還還為數字簽名提供了有效的方法。當前及以后較長的一段時間內,密鑰仍然是信息安全保密的關鍵,它的產生、分配和管理是密碼技術中的重要研究內容。2.密碼體制的分類按執行的操作方式不同,可以分為替換密碼體

制(Substitution

Cryptosystem)和換位密碼體制(Permutation

Cryptosystem)。如果從收發雙方使用的密鑰是否相同,密碼體制分為對稱密鑰密碼(或單鑰密碼)體制和非對稱密鑰密碼(或雙鑰密碼或公鑰密碼)體制。對稱密鑰密碼技術中加密和解密的雙方擁有相同的密鑰,而非稱密鑰密碼技術中加密和解密的雙方擁有不同的密鑰。在對稱密碼技術中,其加密密鑰和解密密鑰相同。加密信息的安全性取決于密鑰的安全性,與算法的安全性無關,即由密文和加解密算法不可能得到明文。換句話說算法無需保密,需保密的僅是密鑰。對稱密碼技術對明文的加密有兩種方式:一是明文信息按字符(如二元數字)逐位地加密,稱之為流密碼技術;另一種是將明文信息分組(含多個字符),逐組進行加密,稱之為分組密碼。非對稱密碼技術,其主要特點是將加密和解密能力分開,加密密鑰(即公開密鑰)PK是公開,加密算法E和解密算法D也都是公開的,而解密密鑰(也稱為秘密密鑰)SK是保密的。雖然SK是由PK決定的,但不能根據PK計算出SK,即加密密鑰和解密密鑰在計算上是不能相互推算出的。3.密碼分析(1)密碼分析者分析密碼算法主要有三種方法:①窮舉法:密碼分析者試圖試遍所有的明文或密鑰來進行破譯。②統計分析法:密碼分析者通過分析密文、明文和密鑰的統計規律來達到破譯密碼體制。可以設法使明文的統③密碼體制分析法:根據所掌握的明文、密文的有關信窮舉明文時,就是將可能的明文進行加密,將得到的密文與截取到密文對比,來確定正確的明文。這一方法主要用于公鑰密碼技術(及數字簽名)。窮舉計密特鑰性時與,密用文可的能統的計密特鑰性解不密一密樣文來,對直抗到統得計到分有析意法義。的明文,從而確定正確的明文和密鑰。可以使用增加密鑰長度、在明文和密文中增加隨機冗余信息等方法來

息抗息抗,擊,擊通窮通窮過舉過舉數分數分學析學析求方求方解法解法的。的。方法找到相應的加解密算法。對抗這種分析法是應該選用具有堅實數學基礎和足夠復雜的加解密算法。(2)根據對明文和密文掌握的程度,密碼分析者通常可以在下述四中情況下對密碼體制進行攻擊:① 唯密文攻擊(Ciphertext-onlyattack):密碼分析者僅知道一些密文,并試圖恢復盡可能多的明文,并進一步推導出加密信息的密鑰。② 已知明文攻擊(Known-plaintextattack):密碼分析者不僅知道一些信息的密文,而且還知道與之對應的明文,根據明文和密文對試圖推導出加密密鑰或加密算法。③選擇明文攻擊(Chosen-plaintextattack):密碼分析者可以選擇一些明文,并得到相應的密文,而且可以選擇被加密的明文,并試圖推導出加密密鑰或算法。例如:在公鑰密碼技術中,分析者可以用公鑰加密他任意選定的明文。這種攻擊就是選擇明文攻擊。④選擇密文攻擊(Chosen-ciphertext

attack):密碼分析者可以選擇不同的密文,并能得到相應的明

文,并試圖推導出加密密鑰。有時和選擇明文攻擊

一起并稱作選擇文本攻擊(Chosen-text

attack)。4.鑒別、完整性與不可否認性鑒別:信息的接收者應該能夠確認信息的來源。完整性:信息的接收者應能驗證信息在傳輸過程中有沒有被改變。不可否認性:信息的發送方不能否認已發送過的信息。5.計算復雜性理論理論安全性(無條件安全性):如果具有無限計算資源的密碼分析者也無法破譯該密碼體制,這就是理論安全性(無條件安全性),也稱絕對不可破譯,即是說密碼分析者無論截獲多少密文以及無論用什么方法進行攻擊都不可能破譯。可證明安全性:如果從理論上證明破譯該系統的代價(困難性)不低于求解某個已知的數學難題,這就是可證明安全性。計算安全性:如果用用已知的最好算法和利用現有的(或密碼系統生命期內)最大計算資源仍然不可能在合理的時間內完成破譯該系統所要求的計算(量),這就是計算安全性。即密碼分析者根據可以利用的資源進行破譯所用的時間非常長,或者說破譯的時間長到原來的明文失去保密價值。可證明安全性和計算安全性統稱為實際安全性。什么是計算復雜性理論?計算復雜性理論是密碼安全性理論的基礎,它為分析不同密碼技術和算法的“復雜性”提供了一種方法,它對不同的密碼算法和技術進行比較,從而給出問題求解困難性的數量指標,并確定它們的安全性。(1)密碼分析所需的計算量則是密碼體制安全性的生命指標。如果用n表示問題的大小(或輸入的長度),則計算復雜性可以用兩個參數來表示:運算所需的時間T和存儲空間S。它們都是n的函數,表示為:T(n)和S(n),也分別稱為空間復雜性和時間復雜性。空間復雜性和時間復雜性往往是可以相互轉換的。比如,可以預算某些明文和密文對,分析時只需使用查詢即可,這樣計算的時間就轉換成了存儲空間。假如T(n)=O(nc)(c>0),那么稱該算法運算的時間是多項式階的,假如T(n)=O(ap(n))(a>0),則稱該算法運算的時間是指數階的。其中P(n)是n的一個多項式。對于指數階的運算時間算法,適當增大n,計算將變成不可能。因此,一般認為,如果破譯一個密碼體制所需的時間是指數階的,則它在計算上是安全的,因而實際上也是安全的。(2)P問題和NP問題:在理論研究中,算法通常分為確定性算法和非確定性算法。確定性算法的每一步操作結果都是確定的,其計算時間就是完成這些確定步驟所需的時間。而不確定性算法的某些操作結果是不確定的,在所有使算法成功操作的序列中,所需時間最少的序列所需時間就是該不確定性算法的計算時間。使用確定性算法可以在多項式時間內求解的的問題稱為P問題。在多項式時間內可以用非確定性算法求解的問題稱為NP問題。注意:NP問題包含P問題,NP問題中許多問題可能要比P中的問題難得多,但是P問題中是否包含NP問題,目前還沒有證實。同時P≠NP目前有沒有證明,但是如果P=NP,那么整個密碼學將失去意義,密碼算法也不再是牢不可破的。因此,計算復雜性理論也密碼技術的基礎理論之一。現已證明,正整數是因式分解問題就是一個NP問題。在實際研究中,如果問題X可以在多項式時間內用確定性算法轉化為問題Y,而Y的解可以在多

項式時間內用確定性算法轉化為X的解,則稱問題

X可規約化為問題Y。因此,如果某類NP問題中任何一個問題可以規約為問題Y,而且Y本身就是NP問題,則稱Y是一個NP完全問題,記為NPC。而對于一個NP問題,不存在任何已知的確定性算法在多項式時間內求解該問題,所以如果能找到一個計算序列作為解密算法,那么密碼分析者在不知道計算序列的情況下來求解問題(稱為客觀求解)在計算上是不可能的。由此可見,NP問題可以用來構造密碼體制。Diffie和Hellman通過大量的證明指出,NPC問題更適合構造密碼體制。因為現在密碼算法的安全性都是基于NPC問題的,這樣若想破譯一密碼體制相當于解一NPC問題。2.1.3

標準化及其組織機構最具權威性、通用性且較完善的信息技術安全標準仍然來自于ISO、IEC等國際性標準化組織。在ISO與IEC的聯合技術委員會JTC1管轄的安全技術分技術委員會SC27專門從事安全技術和安全機制的標準化工作,其工作范圍是信息技術安全的一般方法和技術的標準化,包括:制定信息技術系統安全服務標準;開發安全技術和安全機制;開發安全指南(如解釋性文件、風險分析等);開發管理支持性文件和標準(如術語、安全性評估準則等)。最近,SC27又提出一個新課題,該課題的內容是研究保密通信中密鑰的管理辦法、操作準則和TTP(TTP是英文可信第三方的縮寫,它可用于大型分布式系統環境下協助密鑰分配的管理和鑒別)的職責增強辦法。據初步統計,SC27已研制出正式國際標準和國

際標準草案及開發指南約40個,幾乎覆蓋了其工作范圍的所有領域,這對其它國際標準化組織及各國、各地區、各行業研制具體的、細化的安全標準將起到極好的指導作用。ISO/IEC/JTC1內還有6個分技術委員會分別承擔一部分信息技術安全標準的制定任務。其中,SC6主要負責OSI下四層安全模型和安全協議的標準化工作;SC17主要開發與識別卡有關的安全標準;SC18主要開發電子郵件、消息處理系統的安全標準;SC21主要開發OSI安全體系結構、各種安全框架及高層安全模型等標準;SC22主要開發程序語言、環境及系統軟件接口等方面的安全標準;SC30主要開發電子數據交換的有關安全標準。ISO內的銀行業技術委員會TC68,開發研制了銀行和金融機構專用的銀行業務安全標準,已通過的正式標準多達30多個。國際電信聯盟(ITU,原稱CCITT)單獨或與ISO合作開發了消息處理系統、目錄(X.400系列、X.500系列)及安全框架、安全模型等標準;歐洲計算機制造協會(ECMA)研制了局域網安全要求等安全標準;因特網上也出現了大量的RFC協議文稿,多達數千個,經網上討論修改后,已形成了幾十個被大家接受的事實上的因特網安全標準。另外,還有IETF(Internet

Engineering

TaskForce,是一個研究Internet問題的組織),它由90多個工作小組組成。該組織每年舉行三次會議,專門制定相應的Internet問題建議和草案。2.2對稱密碼技術2.2.1

對稱密碼技術概述對稱密碼技術就是加密密鑰和解密密鑰相同的這類密碼體制,它采用的解密算法是加密算法的逆運算。對稱密碼技術典型代表有:古典密碼技術、序列密碼技術、DES(數據加密標準)、瑞士的IDEA(國際

數據加密算法)以及AES(高級加密標準)等。古典密碼技術古典密碼技術根據其基本原理大體上可以分為兩類:替換密碼技術和換位密碼技術。替換密碼技術替換密碼技術是基于符號替換的密碼技術,這種密碼技術是以符號的置換來達到掩蓋明文信息。這類密碼技術有:單字符單表替換密碼技術、單字符多表替換密碼技術等。(1)單字符單表替換密碼技術:單字符單表替換密碼技術是對明文中的所有字符都使用一個固定的映射。設

A={a0,a1

,…,an-1}為明文字母表,B={b0,b1

,…,bn-1}為密文字母表,單字符單表替換密碼技術使用了A到B的映

射關系:f:A→B,f(ai)=bj(一般情況下,為保證加密的可逆性,f是一一映射)將明文中的每一個字母替換為密文字母表中的一個字母。單字符單表替換密碼技術的密鑰就是映射f或密文字母表(一般情況下明文字母表與密文字母表是相同的,這時的密鑰就是映射f)。典型的單字符單表替換密碼技術有:①乘法密碼技術乘法密碼技術的加密變換:Ek(ai)=aj,j=ik(mod

n),gcd(k,n)=1

乘法密碼技術的解密變換:Dk(aj)=ai,i=jk-1(mod

n)乘法密碼技術的密鑰是k。若n是素數,則有n-2個密鑰(k=1時加密變換是恒等變換,應該予以拋棄);若n不是素數,則有φ(n)-1個密鑰(其中φ(n)為歐拉函數的值)。② 移位替換密碼技術:是最簡單的一種替換密碼。加密變換為:Ek(ai)=aj,j=(i

+

k)(mod

n),0

<

k

<

n解密變換為:Dk(aj)=ai,i=(j

-

k)(mod

n)=(j

+(n-

k))(mod

n)由于i=(j-k)(mod

n)=(i+k-k)(mod

n)=i

(modn),所以解密與加密是可逆的。從解密變換中可以看出:Dk=En-k。移位替換密碼技術的密鑰是k,k唯一地確定了明文空間到密文空間的映射,故移位替換密碼技術的密鑰空間的元素個數為n-1。③密鑰字密碼技術:它利用一個密鑰字來構造替換作為密鑰。④仿射密碼技術:是加法密碼技術和乘法密碼技術的結合體。加密變換為:Dk0,k1(ai)=aj,j=(ik1+k0)(mod

n),k0

,k1∈Zn,gcd(k1,n)=1k1,k0為該算法的密鑰。當k0=0時,仿射密碼技術退化為乘法密碼技術,當k0=1時,仿射密碼退化為移位替換密碼技術。(2)單字符多表替換密碼技術:單字符多表替換密碼技術在安全性方面比單字符單表替換密碼技術高。單因字為符單多字表符替單換表密替碼換技密術碼是技用術一中系明列文(的兩字個母以與上密)替文換中表的依字次母對是明一文一的對字應母的進,行明替文換中的加字密母方統法計。特假性設在明文明字文母中表沒為有Z得q,到替改換變表,序因列此為單L=字L符1L單2…表,替明換文密字碼母技序術

列很為容m易=m破1m譯2…。,則相應的密文序列為c=L(m)=L1(m1)L2(m2)…。如果替換序列是非周期的無限序列,則相應的密碼技術為非周期多表代替密碼技術,它對每個明文都采用了不同的替換表進行加密,也稱為一次一密密碼技術,它是一種理論上不可破譯的密碼技術。而在實際應用中采用的都是周期多表替換密碼技術,只使用了有限的替換表,替換表被重復使用以完成對明文的加密。例如周期為d,則替換表序列為:L=L1L2…LdL1L2…Ld

…。當

d=1時,單字符多表替換密碼技術退化為單字符單表替換密碼技術。單字符多表替換密碼技術有很多,典型的有:①Vigenere(費杰爾或維吉尼亞)密碼技術Vigenere密碼技術本質上是一種多表簡單加法密碼技術

Vigenere密碼技術循環地使用每一個替換表完成明文字母到密文字母的轉換。具體的加密過程:設密鑰K=k1

k2

…kd,明文與密文字母表中均包含了n個字母。又設明文m=m1m2…,密文為c=c1c2…,則ci=mi+ki(mod

n),其中t為正整數。當密鑰的長度比明文短時,密鑰可以周期性地重復使用,直至完成明文中的每個字母的加密。②Vernam(弗納姆)密碼技術其加密方法是,將明文和密鑰分別表示成二進制序列,再把它們按位進行模二加法。設明文m=m1m2…,密鑰k=k1k2…,其中mi,ki∈GF(2),i≥1,則密文c=c1c2…,其中ci=miki

。這里

為模二加法。③Hill(希爾)密碼技術它實際上是仿射密碼技術的特例。其基本加密思想是將n個明文字母通過線性變換將它們轉換為n個密文字母的加密算法。解密時只需做一次逆變換即可。密鑰就是變換矩陣。2.換位密碼技術換位密碼技術本質上就是一種置換密碼技術,但它置換的不是字符,而是書寫的位置。換位密碼技術的數學表達式可以表示成:設明文為:m=

m1m2…,則密文c=

c1c2…,ci

=

,i=1,2,…,n。其中置換表為:序列密碼技術也稱為流密碼技術(也屬于對稱密碼技術,實際上是對稱密碼技術的一種特殊情況),起源于20世紀20年代的Vernam密碼技術,目前,序列密碼技術是世界各國的軍事和外交等領域中的主要密碼技術之一。序列密碼原理圖序列密碼技術是將明文信息m看成是連續的比特流(或字符流)m1,m2,…,在發送端用密鑰序列發生器產生的密鑰序列k1,k2,…,對明文中的mi進行加密,即:Ek(m)=(m1)(m2)…。2.2.3

序列密碼技術在開始工作時,種子密鑰k對密鑰序列產生器進行初始化。ki,mi,均為1個比特(或一個字符),按照模二加進行運算,得ci=(mi)=miki;在接收端,對ci進行解密,解密算法為:(ci)=

ci

ki=(mi

ki)

ki=

mi。序列密碼技術的保密性取決于密鑰的隨機性。如果密鑰序列是真正的隨機數,則在理論上是不可破的。問題在于這種密碼技術需要的密鑰量大得驚人,在實際應用中很難滿足需要。目前人們常用偽隨機序列作為密鑰序列,但要求序列的周期足夠長(1010~1050),隨機性要好,才能保證其安全性。序列密碼技術的保密性取決于密鑰的隨機性。序列密碼的典型代表有A5和SEAL等。1.DES產生的歷史背景DES是美國國家標準局NBS(后改名為美國國家標準技術研究所即NIST)為了滿足計算機通信網絡的發展對安全保密的需求,實現系統同一水平的安全性和兼容性,降低數據加密產品的生產成本,推廣使用密碼算法而公開征集的一種用于政府部門及民間進行計算機數據加密的密碼算法。它也是密碼技術史上第一個廣泛應用于商用數據保密的、公開的密碼算法,它開創了公開密碼算法的先例。2.2.4

DES(數據加密標準)DES公布和正式實施后,雖然有不少用戶和專家對它的設計問題提出過質疑和反對,但仍被迅速推廣使用,美國的許多專用系統紛紛宣布采用DES作為其信息處理安全標準。DES分別在1983、87、92、94年都通過了安全性評估,作為信息安全處理標準一直使用到1998年(以后不再使用),這樣DES作為數據加密標準的使用期限已有20余年了。但是在近年來,對DES的攻擊不斷顯示出對其不利的因素,特別是隨著計算機計算能力的提高,也由于DES的一些先天性不足(其密鑰過短,只有56位,也是導致其備受批評的重要原因),對

DES的成功攻擊屢見報道。在這種情況下,大家對于替換DES的要求日益增長,最終NIST于1997年發布公告,征集新的數據加密標準為聯邦信息處理標準的代替DES。2000年10月,公布了新的數據加密標準AES。盡管如此,DES仍然具有重要的參考價值,它對于我們掌握分組密碼的基本理論與設計思想具有重要意義。2.DES算法DES是一個分組密碼算法,使用64位密鑰(除去8位奇偶校驗,實際密鑰長為56位)對64比特的數據分組(二進制數據)加密,產生64位密文數據。DES是一個對稱密碼體制,加密和解密使用同一密鑰,解密和加密使用同一算法。DES的所有保密性均依賴于密鑰。(1)DES的加密過程(3個階段)第一階段:初始置換IP(如下頁表所示)對于給定的明文x,通過初始置換IP(在第一輪迭代運算之前,需要加密的64位明文首選通過初始置換IP的作用,對輸入分組實施置換(即把64位置換得第2位,…,原來輸入明文的第7位將作為置換結果的最后一位)獲得,并將x0分為兩部分,前面32位記為L0,后面32位記為R0。58501234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157初始置換IP表第二階段:計算16次迭代變換。DES采用了典型的Feistel結構,是一個乘積結構的迭代密碼算法。其算法的核心是算法所規定的16次迭代變換(見下頁圖)。從圖中可以看出,DES算法的16次迭代變換具有相同的結構,每

一次迭代變換都以前一次迭代變換的結果(第一次迭代以作0 0

0ix=L

R

為輸入)和用戶密鑰擴展得到的子密鑰k作為輸入;每一次迭代變換只變換一半數據,它們將輸入數據的右半部分經過函數f后,將其輸出與輸入數據的左半部分進行異或運算,并將得到的結果作為新的右半部分,原來的右半部分變成了新的左半部分。即:DES加密算法圖DES的一次迭代過程DES算法的安全性關鍵在于非線性函數f的性質。在DES算法中,f以長度為32位的比特串作為輸入,產生的中間結果為48位,并在最終產生長度為32位的比特串作為輸出。f函數的計算過程可以用下圖表示。Ⅰ.擴展置換:f以前一輪迭代的結果Ri-1作輸入,首先根據一個固定的擴展函數E(也稱為E盒)“擴展”長度為48位的比特串,其中有16比特出現了兩次(如下頁表所示)3212345456789891011121312131415161716171819202120212223242524252627282928293031321擴展置換(E)表下圖是以第一個小分組(第一位在第4位)為例,給出了擴展函數E的工作過程。擴展函數E的第一分組的工作過程Ⅱ.與子密鑰異或:函數f將擴展置換得到的48位輸出與子密鑰ki(48位)進行異或運算(按位模2加)。Ⅲ.S盒替代:以6比特為單位將第Ⅱ步異或得到的結果分為8個小分組,并將它們送入替代函數(即S盒)中進行替代運

算。DES算法中共有8個S盒(見下頁表)。每一個分組將對應于一個S盒進行替代運算。具體替代方式為:將S盒的6位輸入定義為a1a2a3a4a5a6。將a1a6組成一個2位二進制數,對應著表中的行號,將a2a3a4a5組成一個4位二進制數,對應表中的列號,交叉點的數據就是該S盒的輸出。S盒是函數f的核心所在,同時,也是DES算法的關鍵步驟。實際上除了S盒以外,DES的其他運算都是線性的,而S盒是非線性的,它決定了DES算法的安全性。48位的比特串(分為8個6位分組)在經過8個S盒進行代替運算后,得到8個4位的分組,它們重新組合在一起形成一個32位的比特串。這個比特串將進行下一步運算:P盒置換。S盒Ⅳ.P盒置換:是將S盒輸出的32位比特串根據固定的置換P(也稱為P盒)置換到相應的位置,它也稱為直接置換(straightpermutation)(下表給出了置換P)。P盒置換表16

7

20

21

29

12

28

17

1

15

23

26

5 18

31

102

8

24

14

32

27

3 9

19

13

30

6 22

11

4

25第三階段:逆置換是初始置換IP的逆置換,記為IP-1(如下表)。在對16圈迭代的結果(R16L16),再使用逆(初始)置換IP-1后,得到的結果即可作為DES加密的密文Y輸出,即Y=IP-1(R16,L16)。逆初始置換IP-1表40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

3138

6

46

14

54

22

62

30

37

5

45

13

53

21

61

2936

4

44

12

52

20

60

28

35

3

43

11

51

19

59

2734

2

42

10

50

18

58

26

33

1

41

9

49

17

57

25DES解密算法:與其加密算法使用的算法過程相同。DES算法的子密鑰的生成過程。下頁圖是子密鑰的生成過程:子密鑰的生成過程圖子密鑰的生成過程如下:①輸入的密鑰K首先經過一個置換(稱為置換選擇1(PC-1,Permutationchoice的縮寫)見下頁表所示),進行重新排列。置換的結果(56位)被當成兩個28比特的量C0和D0,其中C0是置換結果的前28比特,而D0是后28比特。C057

49

41

33

25

17

9

1 58

50

42

34

26

1810

2 59

51

43

35

27

19

11

3 60

52

44

36D063

554739312315762

5446

38

30

2214

6615345372921

13

528

20

12

4PC-1(置換選擇1)②在計算第i輪迭代所需的子密鑰時,首先對Ci-1和Di-1進行循環左移,分別得到Ci與Di。循環的次數取決于的i值,如果i=1,2,9和16,左移循環的次數等于1,否則循環2次,這些經過循環移位的值作為下一次循環的輸入。然后將以作CiDi作為另外一個由DES算法固定置換選擇(稱為置換選擇2,PC-2見下頁表所示)的輸入,所得到的置換結果即為第i次迭代所需的子密鑰ki。1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932PC-2(置換選擇2)DES的工作模式由FIPSPUB81定義,共有四種:電子密碼本模式ECB、密文分組鏈接模式CBC、密文反饋模式CFB、輸出反饋模式OFB。IDEA(International

Data

Encryption

Algorithm,國際數據加密算法)算法中明文和密文的分組長度都是64位,密鑰長128位,該算法既可用于加密,也可用于解密。設計原則采用的是基于“相異代數群上的混合運算”的設計思想,三個不同的代數群(異或、模216加和模216+1乘)進行混合運算,所有這些運算(僅有運算,沒有位的置換)都在16位子分組上進行,無論用硬件還是軟件實現,都非常容易(對16位微處理器尤其有效)。IDEA的設計者在設計時已盡最大努力使該算法不受差分密碼分析的影響,賴學嘉已證明IDEA算法在其8輪迭代的第4輪之后便不受差分密碼分析的影響。IDEA比同時代的算法:FEAL,REDOC-II、LOKI、Snefru和Khafre都要堅固,而且到目前為止幾乎沒有任何關于IDEA密碼分析攻擊法的成果案例發表,因此目前IDEA的攻擊方法只有“直接攻擊”或者說是“密鑰窮舉”法了。2.2.5

IDEA(國際數據加密算法)1.AES的產生歷史背景NIST于1997年初發起并組織了在全世界范圍內廣泛征集新的加密標準算法的活動,同時要求每一種侯選算法的分組長度為128位,應當支持128,192和256比特的密鑰長度,經過了幾年的反復較量,最終由比利時的密碼學專家

Joan

Daemen(Proton

World

International公司)及

Vincent

Rijmen(Leuven大學)所提出的加密算法Rijndael(中文英譯“榮代爾”)贏得了勝利,成為了21世紀新的加密算法AES(Advanced

Encryption

Standard)。2001年11月26日,NIST正式公布高級加密標準,并于2002年5月26日正式生效。Rijndael以其算法設計的簡潔、高效、安全而令世人關注,相信它會在國際上得到廣泛應用。2.2.6

AES(高級加密標準)2.Rijndael密碼的設計原則Rijndael密碼的設計中考慮到的三條準則:①抗擊目前已知的所有攻擊;②在多個平臺上實現速度要快和編碼緊湊;③設計簡單。注:Rijndael中同樣使用了迭代變換,但與大多數分組密碼不同的是Rijndael沒有使用Feistel結構。Rijndael是一個迭代型的具有可變分組長度和可變密鑰長度的分組密碼,AES設計要求中要求分組長度為128比特(而

Rijndael支持128、192或256比特的分組長度),因此,在AES規范中,對分組長度限定為128。AES算法的安全性仍然在討論當中,從目前的情況來看,

Rijndael尚無已知的安全性方面的攻擊,算法似乎具有良好的安全性。關于AES的效率問題,無論在有無反饋模式的計算環境下,AES的硬件、軟件實現都表現出了良好的性能。2.3非對稱密碼技術2.3.1

非對稱密碼技術概述非對稱密鑰密碼技術也稱為雙鑰或公鑰密碼技術,研究的基本工具不再象對稱密碼技術那樣是代換和置換,而是數學函數。采用非對稱密碼技術的每個用戶都有一對密鑰:一個是可以公開的(稱為加密密鑰或公鑰),可以象電話號碼一樣進行注冊公布;另一個則是秘密的(稱為秘密密鑰或解密密鑰或私鑰,它由用戶嚴格保密保存)。它的主要特點是將加密和解密能力分開,因而可以實現多個用戶加密的信息只能由一個用戶解讀,或由一個用戶加密的信息而多個用戶可以解讀。前者可以用于公共網絡中實現通信保密,而后者可以用于實現對用戶的認證。下圖是公鑰密碼技術示意圖:公鑰密碼的加密變換E(eB,m)與解密交換D(dB,c)應滿足這樣一些要求:①

D(dB,c)是E(eB,m)的逆變換,即對任何的明文m有:D(dB,c)=

D(dB

,E(

eB,m))=m;②

在已知加密密鑰eB時,E(eB,m)的計算不難;在已知解密密鑰dB時,D(dB,c)的計算也不難;③ 若不知道dB,那么即使知道eB,具體的加密與解密算法過程及密文c,確定明文的計算是不可行的。設計公開密鑰密碼體制就變成了尋找陷門單向函數。可以提供單向函數的三大數學難題分別是:①大整數分解問題(簡稱IFP);②離散對數問題(簡稱DLP);③橢圓曲線離散對數問題(簡稱ECDLP)。如果根據所依據的難解問題,公鑰密碼體制可以分為這樣3類:①大整數分解問題類;②離散對數問題類;③橢圓曲線類(也時被歸為離散對數問題類)。人們已經研究出的公鑰密碼算法:基于大整數分解問題的公鑰密碼體制基于有限域中的離散對數問題基于代數編碼系統的Mceliece公鑰密碼算法基于有限自動機的公開密碼技術基橢圓曲線的公開密鑰密碼技術其中,除橢圓曲線公鑰密碼算法是在橢圓曲線上進行運算之外,其余各公鑰密碼算法均在有限域上進行。2.3.2

RSARSA的名字來源于它們的創建者。1978年由麻省理

工學院的Ronald.L

Rivest、以色列魏茨曼科學中心的Adi

Shamir和南加洲大學的Lenoard

M.Adleman發表了著名的論文“A

Method

for

Obtaining

Digital

Signature

and

Public-Key

Cryptosystems(獲得數字簽名和公開密鑰密碼系統的一

種方法)”,并提出的一種用數論構造的、也是迄今為止理論上最為成熟完善的公鑰密碼技術——RSA,該技術已得到廣泛的應用。在RSA算法中,它使用廣為公開的公鑰加密通信,密文只能被持有與之相配的私鑰的人才能解開。1.RSA的基本原理:RSA是基于大整數難分解的公鑰密碼技術。RSA是基于這樣一個十分簡單的數論事實而設計的:將兩個大的素數相乘十分容易,但想分解它們是十分困難的,因此將乘積公開作為加密密鑰。基于大整數分解的公鑰密碼體制的安全性主要依賴于大整數(大合數)的難分解問題。大整數的分解問題可以被表述:已知整數n,n是兩個素數的積,即n=p.q。求解p、q的值。大整數分解是計算上困難的問題,目前還不存在一般性的有效解決算法。2.算法描述(1)密鑰的產生①選兩個保密的大素數p和q;②計算n=p*q,φ(n)=(p-1)(q-1),其中φ(n)是n的歐拉函數值;③選一整數e,滿足1<e<φ(n),且gcd(φ(n),e)=1,即φ(n)與e互質;④再取另一個數d,滿足d*e=1

mod

φ(n),(表示d*e除以φ(n)的余數為1,或者說d是e在模φ(n)下的乘法逆元,因e與φ(n)互質,由模運算可知,它的乘法逆元一定存在);以PK={e,n}為公鑰,SK={d,n}為私鑰。(2)加密:加密時首先將明文m比特串分組,使得每個分組對應的十進制數小于n,即分組的長度小于log2n。然后對每組明文分組,作加密運算:(3)解密:對密文分組的解密運算為:3.RSA的安全性RSA的安全性是基于分解大整數的困難性假定,之所以假定是因為至今還未能證明分解大真整數就是np問題,也許有尚未發現的多項式時間分解算法。估計在未來一段比較長的時期,密鑰長度介于1024比特至2048比特之間的RSA是安全的。為了保證RSA算法的安全性,p和q的選擇時須注意:(1)p和q的長度相差不要太大;(2)p-1和q-1都應應大數因子;(3)gcd(p-1,q-1)的值應較小。此外,研究結果表明,如果e<n且d<n1/4,則d能被較容易地確定。2.3.3

Diffie-Hellman密鑰交換協議Diffie-Hellman的安全性是基于zp上的離散對數問題。設

p是一個滿足要求的大素數,0<a<p,并且a是循環群zp的生成元,a和p公開,所有用戶都可以得到a和p。在兩個用戶A與B通信時,它們可以通過如下步驟協商通信所使用的密鑰:① 用戶A選取一個大的隨機數rA( ),計算:,并且把SA發送給用戶B;),計算:。②用戶B選取一個m隨機數rB(。并且把SB發送給用戶A;③

用戶A計算 ,用戶B計算由于有:這樣通信雙方得到共同的密鑰k,這樣就可以實現交換密鑰了。2.3.4

ElGamal公鑰密碼技術ElGamal密碼體制的安全性是基于離散對數的難解性,既可用于加密又可用于數字簽名的公鑰密碼技術。到目前為止,它仍是一個安全性能良好的公鑰體制,下面討論其算法。采用ElGamal體制的密碼系統中,所有的用戶都共享一個素數p以及一個zp的生成元a。系統中的每一用戶u都隨機挑選一個整數d,1≤d≤p-2,并計算:

,然后,用戶u公開 作為公開密鑰并保存整數d作為自己的秘密密鑰。(1)加密算法:假設用戶A想傳送信息給B,A采用如下算法加密明文信息m:①用戶A將x編碼成一個在0到p-1之間的整數,m作為傳輸的明文(m∈{0,1,……..p-1}(這里的m是編碼后的明文);②用戶A挑選一個隨機數k(1≤k≤p-2),并計算:c1=ak(mod

p)(注:k需保密);③

用戶A計算 ,其中 是B的公鑰。④這樣c=(c1,c2)是密文,用戶A把二元組(c1,c2)傳送給B。(2)解密算法:用戶B接收到二元組(c1,c2)后,計算:。由于:=

=

,這

樣用戶B通過二元組(c1,c2)解密就得到了正確的明文m了。2.3.5

橢圓曲線密碼算法ECC的密鑰長度使用基于橢圓曲線密碼體制的安全性依賴于由橢圓曲線群上的點構成的代數系統中的離散對數問題的難解性。它與有限域上的離散對數問題或整數分解問題的情形不同,與其他公鑰體制相比,橢圓曲線密碼體制的優勢在于:密鑰長度大大減少(256比特的ECC密鑰就可以達到對稱密鑰128比特的安全水平,如下表所示),實現速度快等。這是因為隨著計算機速度的加快,為達到特定安全級別所需的密鑰長度的增長,相比之下RSA及使用有限域的公鑰密碼體制要慢得多。ECC與其它密碼算法的密鑰長度對照表其它算法的密鑰長度160RSA/DSA1024211RSA/DSA2048256AES-Small128384AES-Medium192521AES-Large2561.橢圓曲線(EC)上的基本運算在EC上定義的加法運算如下:對于

, ,P+Q的運算結果如下:①P+Ο=P

(Ο為加法單位元,也是在EC上的一個無窮遠點的特殊點,也看作Ο);②若x1=x2,y1=-y2,那么P+Q=Ο(即為無窮遠點);③若不滿足②,則P+Q=(x3,y3),其中:2.EC上的密碼體制EC上的離散對數問題EC上的離散對數問題定義為:在已知點p與np的情況下,求解正整數n的值。Diffie-Hellman密鑰交換協議(ECDH)首先,選擇一個素數和EC參數a和b,則可以得方程y2≡x3+ax+b(mod

p),a,b∈zp。4a3+27b2(mod

p)≠0表達的EC及其上面的點構成Abel群EP(a,b)。其次,在EC中選取EP(a,b)的一個基點(生成元)G=(x0,y0),要求G的階是一個大的素數,G的階數滿足nG=Ο的最小正整數n。EP(a,b)和G作為公開參數。最后,兩用戶A和B之間的密鑰交換可以如下方式進行:①A隨機選擇一個比n小的整數nA,作為A的私鑰,然后A產生一個公鑰pA=nAG,這個公鑰是EP(a,b)中的一個點;②B也類似地選擇一個私鑰nB,并計算一個公鑰pB=nBG,這個公鑰也是EP(a,b)中的一個點;③A計算k1=nApB,B計算k2=nBpA。由于k1=nApB=nA(nBG)=nB(nAG)=k2,這樣A和B就產生了雙方共享的秘密密鑰。為了破譯這個密碼方案,攻擊者需要能夠在給定G和kG時計算k,而實際上計算k是十分困難的。(3)ElGamal公鑰密碼體制(ECELG)基于橢圓曲線EC的ELGamal體制同樣定義EC群Ep(a,b)及其在EC中的一個基點G=(x0,y0),兩者的選擇原則與Diffie-Hellman的體制中所描述的原則相同。將Ep(a,b)和G=(x0,y0)作為公開的參數,系統中每個用戶都可以獲得Ep(a,b)和G。另外,系統中的每個用戶U都將隨機的挑選一個整數nU,并計算pU=nUG,然后用戶U公開pU作為自己的公鑰,并保存nU作為私鑰。①加密算法(假設用戶A需要發送明文m給用戶B):首先,用戶A將需要發送的明文m通過編碼(這里不對編碼做介紹,可參與有關文獻)嵌入到EC上的一個點Pm=(xm,ym)。其次,用戶A選取nA(整數)(并以pA=nAG作為公鑰),pB=nBG(是B的公鑰)用戶A作如下的計算,產生以下點作為明文:Cm=(nAG,pm+nApB)。②解密算法:解密時,以密文點對中的第二個點減去用自己的私鑰與第一個點倍乘,即:pm+nApB-nBnAG=pm+nAnBG-nAnBG=pm。若攻擊者想由Cm得到Pm,就必須知道nB,而要得到nB,只有通過橢圓曲線上的兩個已知點G和nBG來得到,這意味著必須求橢圓曲線上的離散對數,因而不可行。2.4密鑰分配與管理技術2.4.1

密鑰分配方案密鑰分配技術一般需要解決兩個方面的問題:為減輕負擔,提高效率,引入自動密鑰分配機制;為提高安全性,盡可能減少系統中駐留的密鑰量。1.密鑰分配的基本方法對于通信雙方A和B,密鑰分配可以有以下幾種方法:①密鑰由A選定,然后通過物理方法安全地傳遞給B。②密鑰由可信賴的第三方C選取并通過物理方法安全地發送給A和B。③如果A和B事先已有一密鑰,那么其中一方選取新密鑰后,用已有的密鑰加密新密鑰發送給另一方。④如果A和B都有一個到可信賴的第三方C的保密信道,那么C就可以為A和B選取密鑰后安全地發送給A和B。如果A和B都在可信賴的第三方C發布自己的公開密鑰,那么他們用彼此的公開密鑰進行保密通信。2.對稱密碼技術的密鑰分配方案(1)集中式密鑰分配方案下圖就是具有密鑰分配中心的密鑰分配方案。圖中假定A和B分別與KDC有一個共享的密鑰Ka和Kb,A希望與B建立一個邏輯連接,并且需要一次性會話密鑰來保護經過這個連接傳輸的數據,具體過程如下:①A→KDC:IDA∥IDB∥N1。A向KDC發出會話密鑰請求。請求的消息由兩個數據項組成:一是A和B的身份IDA和IDB,二是本次業務的唯一標識符N1,每次請求所用的N1都應不同,常用一

個時間戳、一個計數器或一個隨機數作為這個標識符。為防止攻擊者對N1的猜測,用隨機數作

為這個標識符最合適。具有密鑰分配中心的密鑰分配方案②KDC→A:EKa[Ks∥IDA∥IDB∥N1∥EKb[Ks∥IDA]]。KDC對A的請求發出應答。應答是由加密Ka加密的信息,因此只有A才能成功地對這一信息解密,并A相信信息的確是由KDC發出

的。③A→B:EKb[Ks∥IDA]。A收到KDC響應的信息后,同時將會話密鑰Ks存儲起來,同時將經過KDC與B的共享密鑰加密過的信

息傳送給B。B收到后,得到會話密鑰Ks,并從IDA可知對方是A,而且還叢EKb知道Ks確實來自KDC。由于A轉發的是加密后密文,所以轉發過程不會被竊聽。④B→A:EKs[N2]。B用會話密鑰加密另一個隨機數N2,并將加密結果發送給A,并告訴A,B當前是可以通信的。A→B:EKs[f(N2)]。A響應B發送的信息N2,并對N2進行某種函數變換(如f函數),同時用會話密鑰Ks進行加密,發送給

B。實際上在第③步已經完成了密鑰的分配,第④、兩步結合第③步執行的是認證功能,使B能夠確認所收到的信息不是一個重放。(2)分布式密鑰分配方案分布式密鑰分配方案是指網絡通信中各個通信方具有相同的地位,它們之間的密鑰分配取決于它們之間的協商,不手

受何其他方的限制。這種密鑰分配方案要求有n個通信方的網絡需要保存[n(n-1)/2]個主密鑰,對于較大型的網絡,這種方案是不適用的,但是在一個小型網絡或一個大型網絡的局部

范圍內,這中方案還是有用的。如果采用分布式密鑰分配方案,通信雙方A和B建立會話密鑰的過程包括以下過程(見下頁圖所示):分布式密鑰分配方案①A→B:IDA∥N1。A向B發出一個要求會話密鑰的請求,內容包括A的標識符IDA和一個一次性隨機數N1,告知A希望與B通信,并請B產生一個會話密鑰用于安全通信。②B→A:EMKm[Ks∥IDA∥IDB∥f(N1)∥N2]。B使用與A共享的主密鑰MKm對應答的信息進行加密并發送給A。應答的信

息包括B產生的會話密鑰Ks,A的標識符IDA、B的標識符IDB、f(N1)和一個一次性隨機數N2。③A→B:EKs[f(N2)]。A使用B產生的會話密鑰Ks對f(N2)進行加密,并發送給B。3.非對稱密碼技術的密鑰分配方案非對稱密碼技術的密鑰分配方案主要包括兩方面的內容:非對稱密碼技術所用的公鑰的分配和利用非對稱密碼技術來分配對稱密碼技術中使用的密鑰。(1)公鑰的分配獲取公鑰的途徑有多種,包括公開發布、公用目錄、公鑰機構和公鑰證書。①公開發布:是指用戶將自己的公鑰發送給另外另外一個參與者,或者把公鑰廣播給相關人群。這種方法有一個非常大的缺點:任何人都可以偽造一個公鑰冒充他人。②公用目錄:是由一個可信任的系統或組織建立和管理維護公用目錄,該公用目錄維持一個公開動態目錄。公用目錄為每個參與者維護一個目錄項{標識符,公鑰},每個目錄項的信息必須進行安全認證。任何人都可以從這里獲得需要保密通信的公鑰。與公開發布公鑰相比,這種方法的安全性高一些。但也有一個致命的弱點,如果攻擊者成功地得到目錄管理機構的私鑰,就可以偽造公鑰,并發送給給其他人達到欺騙的目的。③公鑰機構:為更嚴格控制公鑰從目錄分配出去的公鑰更加安全,為此需要引入一個公鑰管理機構來為各個用戶建立、維護和控制

動態的公用目錄。與單純的公用目錄相比,該方法的安全性更高。但這種方式也有它的缺點:由于每個用戶要想和其他人通信都需求助于公鑰管理機構,因而管理機構可能會成為系統的瓶頸,而且由管理機構維護的公用目錄也容易被攻擊者攻擊。④公鑰證書:是在不與公鑰管理機構通信,又能證明其他通信方的公鑰的可信度,實際上完全解決了公開發布及公用目錄的安全問題。采用公鑰證書是為了解決公開密鑰管理機構的瓶頸問題。公鑰證書即數字證書是由授權中心CA(Certificate

Authority)頒發的。證書的形式為CA=ESKCA[T,IDA,PKA],其中IDA是用戶A的身份標識符,PKA是A的公鑰,T是當前時間戳,SKCA是CA的私鑰。公鑰證書的發放(產生)過程如下圖所示用戶還可以把自己的公鑰通過公鑰證書發給另一用戶,接收方使用

CA的公鑰PKCA對證書

加以驗證,DPKCA[ESKCA[T,IDA,PKA]]=[T,IDA,PKA]。(2)利用非對稱密碼技術進行對稱密碼技術密鑰的分配(常用的有以下兩種):①簡單分配:下圖就是用非對稱密碼技術建立會話密鑰的過程。但這一分配方案容易遭到主動攻擊,假如攻擊者已經接入A和B

雙方的通信信道,可以輕易地截獲A、B雙方的通信。用非對稱密碼技術建立會話密鑰②具有保密和認證功能的密鑰分配:針對簡單分配密鑰的缺點,人們又設計了具有保密和認證功能的非對稱密碼技術的密鑰分配,如下圖所示。密鑰分配過程既具有保密性,又具有認證性,因此既可以防止被動攻擊,也可以防止主動攻擊。具有保密和認證功能的密鑰分配2.4.2

密鑰管理技術密鑰管理涉及密鑰的生成、使用、存儲、備份、恢復以及銷毀等,涵蓋了密鑰的整個生存周期。密鑰的生成密鑰長度足夠長也是保證保證安全通信的必要條件之一,決定密鑰長度需要考慮多方面的因素:數據價值有多大:數據要多長的安全期?攻擊者的資源情況怎樣?應該注意到,計算機的計算能力和加密算法的發展也是密鑰長度的重要因素。密鑰的生成一般與生成的算法有關,大部分密鑰生成算法采用隨機或偽隨機過程來產生隨機密鑰。密鑰的使用:密鑰的使用是指從存儲介質上獲得密鑰進行加密和解密的技術活動。3.密鑰的存儲:密鑰的存儲分為無介質、記錄介質和物理介質等幾種。密鑰的備份與恢復密鑰備份是指在密鑰使用期內,存儲一個受保護的拷貝,用于恢復遭到破壞的密鑰。密鑰的恢復是指當一個密鑰要由于某種原因被破壞了,在還沒有被泄露出去以前,從它的一個備份重新得到密鑰的過程。密鑰的備份與恢復保證了即使密鑰丟失,由該密鑰加密保護的信息也能夠恢復。密鑰托管技術就能夠滿足這種需求的一種有效的技術。密鑰的銷毀密鑰必須定期更換,更換密鑰后原來的密鑰必須銷毀。密鑰不再使用時,該密鑰的的所有拷貝都必須刪除,生成或構造該密鑰的所有信息也應該被全部刪除。2.4.3

密鑰托管技術1.密鑰托管技術簡介密鑰托管技術是通過一個防竄擾的托管加密芯片(Clipper芯片)來實現,該技術包括兩個主要的核心內容:Skipjack加密算法:是由NSA設計的,用于加解密用戶之間通信的信息。它是一個對稱密鑰分組加密算法,密鑰長為80bits,輸入和輸出分組長度為64bits。該算法的實現方式采用供DES使用的聯邦信息處理標準(FIPS-81)中定義的4種實現方式。LEAF(Law

Enforcement

Access

Field,法律實施訪問域):通過這個訪問域,法律實施部門可以在法律授權的情況下,實現對用戶之間通信的監聽(解密或無密鑰)。這也看成是一個“后門”。密鑰托管技術具體實施時有3個主要環節:生產托管Clipper芯片、用芯片加密通信和無密鑰存取。2.密鑰托管密碼技術的組成密鑰托管密碼技術在邏輯上分為3個主要的模塊(如下圖所示):USC(User

Security

Component,用戶安全模塊)、KEC(Key

Escrow

Component,密鑰托管模塊)和DRC(Data

Recovery

Component,數據恢復模塊)。這些邏輯模塊是密切相關的,對其中的一個設計將影響著其他模塊。這幾個模塊的相互關系:USC用密鑰K加密明文,并且在傳送的同時

傳送一個數據恢復域DRF(Data

Recovery

Field),DRC則從

KEC提供的和DRF中包含的信息中恢復出密鑰K來解密密文。密鑰托管密碼技術的組成(1)USC:USC由軟件、硬件組成(一般情況下,硬件比軟件安全、不易發生竄擾),提供數據加密/解密的能力,執行支持數據恢復的操作,同時也支持密鑰托管。這種支持體現在將數據恢復域(DRF)附加到數據上。USC的功能表現在以下幾個方面:①提供具有數據加解密能力的算法及支持密鑰托管功能的硬件或相關軟件。②提供通信(包括電話、電子郵件及其他類型的通信,由相關部門在法律許可的條件下對通信的監聽后執行對突發事件的解密)和數據存儲的密鑰托管。③提供突發解密的識別符(包括用戶或USC的識別符、密鑰的識別符、KEC或托管代理機構的識別符)和密鑰(包括屬于芯片單元密鑰KEC所使用的全局系統密鑰,密鑰還可以是公鑰或私鑰,私鑰的備份以托管的方式有托管機構托管)。(2)KEC:可以作為公鑰證書密鑰管理系統的組成部分,也可以作為通用密鑰管理的基礎部分。它由密鑰管理機構控制,主要用于向DRC提供所需的數據和服務,管理著數據恢復密鑰的存儲、傳送和使用。數據恢復密鑰主要用于生成數據加密密鑰,因此在使用托管密碼加密時,所有的托管加密數據都應與被托管的數據恢復密鑰聯系起來。數據恢復密鑰主要由以下內容組成:①密鑰選項②密鑰分割③密鑰的產生和分配④密鑰托管時間⑤密鑰更新⑥密鑰的全部和部分⑦密鑰存儲KEC在向DRC提供諸如托管的密鑰等服務時,服務包括如下部分:①授權過程:對操作或使用DRC的用戶進行身份認證和對訪問加密數據的授權證明。②傳送數據恢復密鑰(主密鑰不提供):如果數據恢復密鑰是會話密鑰或產品密鑰,KEC向DRC直接傳送數據恢復密鑰。密鑰傳送時和有效期一起傳送,有效期過后,密鑰將被自動銷毀。L③傳送派生密鑰:KEC向DRC提供由數據恢復密鑰導出的另一密鑰(派生密鑰)。比如受時間限制的密鑰,被加密的數據僅能在一個特定的有效時間段內被解密。l④解密密鑰:如果在DRF中使用主密鑰加密數據加密密鑰時,KEC只向DRC發送解密密鑰,而不發送主密鑰。⑤執行門限解密:每個托管機構向DRC提供自己的解密結果,由DRC合成這些結果并得到明文。⑥數據傳輸:KEC和DRC之間的數據傳輸可以是人工的也可以是電子的。(3)DRC:由算法、協議和設備組成。DRC利用KEC所提供的和在DRF中包含的信息中恢復出數據加密密鑰,進而解密密文,得到明文。僅僅在執行指定的已授權的數據恢復時使用。為了解密數據,要獲得數據加密密鑰DRC必須采用的確的方法DRC還使用技術、操作和法律等保護手段來控制什么是可以解密的,比如可以對數據恢復進行嚴格的時間限制。這些保護措施提供了KEC傳送密鑰時所要求的限制,而且認證機構也可以防止DRC用密鑰產生偽消息。2.4.4

PKI(公鑰基礎設施)技術PKI技術是目前網絡安全建設的基礎與核心,是電子商務安全實施的基本保障,因此,對PKI技術的研究和開發成為目前信息安全領域的熱點。什么是PKI(Public

Key

I

溫馨提示

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

評論

0/150

提交評論