第2章-密碼技術(shù)_第1頁
第2章-密碼技術(shù)_第2頁
第2章-密碼技術(shù)_第3頁
第2章-密碼技術(shù)_第4頁
第2章-密碼技術(shù)_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

網(wǎng)絡(luò)安全基礎(chǔ)及應(yīng)用張仕斌陳麟方睿編著北京:人民郵電出版社二00九年十一月2023/3/81主要內(nèi)容第1章緒論第2章密碼技術(shù)第3章信息隱藏技術(shù)第4章數(shù)字簽名技術(shù)第5章認(rèn)證技術(shù)第6章網(wǎng)絡(luò)入侵與攻擊技術(shù)第7章網(wǎng)絡(luò)安全防范技術(shù)第8章操作系統(tǒng)安全技術(shù)第9章數(shù)據(jù)與數(shù)據(jù)庫安全技術(shù)第10章軟件安全技術(shù)第11章Web安全技術(shù)第12章網(wǎng)絡(luò)互聯(lián)安全技術(shù)2023/3/82第2章密碼技術(shù)2023/3/83知識點(diǎn):

密碼技術(shù)概述

古典密碼技術(shù)

序列密碼技術(shù)

對稱密碼技術(shù)

非對稱密碼技術(shù)

密鑰分配與管理技術(shù)2023/3/842.1密碼技術(shù)概述信息安全的若干問題都與密碼學(xué)緊密相關(guān)。密碼技術(shù)是信息安全的基石、核心技術(shù)和基礎(chǔ)性技術(shù)。

1.密碼學(xué)的發(fā)展簡史早在四千多年以前,古埃及人就開始使用密碼技術(shù)來保密要傳遞的消息。

一直到第一次世界大戰(zhàn)前,密碼技術(shù)的進(jìn)展很少見諸于世,直到1918年,WilliamF.Friedman的論文“TheIndexofCoincidenceandItsApplicationsinCryptography”(重合指數(shù)及其在密碼學(xué)中的應(yīng)用)發(fā)表時(shí),情況才有所好轉(zhuǎn)。

2.1.1密碼技術(shù)簡介2023/3/85

1949年,C.E.Shannon(香農(nóng))在《貝爾系統(tǒng)技術(shù)雜志》上發(fā)表了“TheCommunicationTheoryofSecrecySystem(保密系統(tǒng)的通信理論)”,為密碼技術(shù)奠定了堅(jiān)實(shí)理論基礎(chǔ)。使密碼學(xué)真正成為一門科學(xué)。

1976年,W.E.Diffie和M.E.Hellman發(fā)表了“NewDirectioninCryptography(密碼學(xué)新方向)”一文,提出了一種全新的密碼設(shè)計(jì)思想,導(dǎo)致了密碼技術(shù)上的一場革命。他們首次證明了在發(fā)送端和接收端不需要傳送密鑰的保密通信是可能的,從而開創(chuàng)了公鑰密碼技術(shù)的新紀(jì)元,成為現(xiàn)代密碼技術(shù)的一個(gè)里程碑。

2023/3/86

1977年美國國家標(biāo)準(zhǔn)局NBS(NationalBureauofStandards,即現(xiàn)在的國家標(biāo)準(zhǔn)與技術(shù)研究所NIST)正式公布了數(shù)據(jù)加密標(biāo)準(zhǔn)DES(DataEncryptionStandard)

1978年,R.L.Rivest,A.Shamir和L.Adleman實(shí)現(xiàn)了RSA公鑰密碼技術(shù),此后成為了公鑰密碼技術(shù)中杰出代表。

1984年,Bennett.CharlesH.,Brassard.Gille首次提出了量子密碼技術(shù)(現(xiàn)稱為BB84協(xié)議)。

2023/3/87

1985年,N.Koblitz和V.Miller把橢圓曲線理論運(yùn)用到公鑰密碼技術(shù)中,成為公鑰密碼技術(shù)研究的新亮點(diǎn)。

密碼技術(shù)的另一個(gè)重要方向——序列密碼(也稱為流密碼,序列密碼主要用于政府、軍方等國家要害部門)理論也取得了重大的進(jìn)展。1989年,R.Mathews,D.Wheeler,L.M.Pecora和Carroll等人首次把混沌理論使用到序列密碼及保密通信理論中,為序列密碼的研究開辟了一條新的途徑。

2023/3/88

1997年,美國國家標(biāo)準(zhǔn)與技術(shù)研究所NIST開始征集新一代數(shù)據(jù)加密標(biāo)準(zhǔn)來接任即將退役的DES,2000年10月,由比利時(shí)密碼學(xué)家JoanDaemen,VincentRijmen發(fā)明的Rijndael密碼算法成為新一代數(shù)據(jù)加密標(biāo)準(zhǔn)——AES(AdvancedEncryptionStandard)算法。

2000年1月,歐盟正式啟動(dòng)了歐洲數(shù)據(jù)加密、數(shù)字簽名、數(shù)據(jù)完整性計(jì)劃NESSIE,旨在提出一套強(qiáng)壯的包括分組密碼、序列密碼、散列函數(shù)、消息人證碼(MAC)、數(shù)字簽名和公鑰加密密碼標(biāo)準(zhǔn)。

2023/3/892.密碼學(xué)的基本概念密碼學(xué)一詞來源于古希臘的Crypto和Graphein,其含義是密寫。它是以認(rèn)識密碼變換的本質(zhì)、研究密碼保密與破譯的基本規(guī)律為對象的學(xué)科,也是研究通信安全保密的一門學(xué)科,經(jīng)典密碼學(xué)包括密碼編碼學(xué)和密碼分析學(xué)。

密碼編碼學(xué)是研究把信息(明文)變換成沒有密鑰就不能解讀或很難解讀的密文的方法,從事此行的稱為密碼編碼者;密碼分析學(xué)是研究分析破譯密碼的方法,從事此行的稱為密碼分析者;密碼編碼學(xué)和密碼分析學(xué)彼此目的相反、相互獨(dú)立,但在發(fā)展中又相互促進(jìn)。密碼編碼學(xué)的任務(wù)是尋求生成高強(qiáng)度密碼的有效算法,以滿足對信息進(jìn)行加密或認(rèn)證的要求;密碼分析學(xué)的任務(wù)是破譯密碼或偽造認(rèn)證密碼,竊取機(jī)密信息進(jìn)行詐騙破壞活動(dòng)。2023/3/810

對一個(gè)保密系統(tǒng)采取截獲密文進(jìn)行分析的方法來進(jìn)行攻擊稱為被動(dòng)攻擊;非法入侵者采用刪除、更改、添加、重放、偽造等手段向系統(tǒng)注入假信息的攻擊稱為主動(dòng)攻擊。進(jìn)攻與反進(jìn)攻、破譯與反破譯是密碼學(xué)中永無止境的矛與盾的競技。

經(jīng)典密碼學(xué)可以實(shí)現(xiàn)信息的保密性?,F(xiàn)代密碼學(xué)除了包括密碼編碼學(xué)和密碼分析學(xué)兩個(gè)學(xué)科之外,還包括近幾年才形成的新分支——密鑰密碼學(xué),它是以密鑰(現(xiàn)代密碼學(xué)的核心)及密鑰管理作為研究對象的學(xué)科。密鑰管理是一系列的規(guī)程,包括密鑰的產(chǎn)生、分配、存儲、保護(hù)、銷毀等環(huán)節(jié),在保密系統(tǒng)中是至關(guān)重要的。

以上三個(gè)分支學(xué)科構(gòu)成了現(xiàn)代密碼學(xué)的主要學(xué)科體系。經(jīng)典密碼學(xué)主要以實(shí)現(xiàn)信息的保密性為目的,現(xiàn)代密碼學(xué)不僅可以實(shí)現(xiàn)信息的保密性,而且還可以實(shí)現(xiàn)信息的真實(shí)性、完整性、可用性、可審查性和不可否認(rèn)性。2023/3/811

現(xiàn)代密碼學(xué)最重要的原則是“一切秘密寓于密鑰之中”。即算法是公開的,但密鑰必須是保密的。當(dāng)加密完成后,可以將密文通過不安全的渠道發(fā)送給收信人,只有擁有解密的收信人才可以對密文進(jìn)行解密即反變換得到密文。因此,密鑰必須通過安全渠道傳送,即密鑰必須是保密的。2023/3/8123.密碼技術(shù)的應(yīng)用

隨著計(jì)算機(jī)網(wǎng)絡(luò)是迅速發(fā)展,特別是電子商務(wù)和電子政務(wù)的興起,密碼技術(shù)及其應(yīng)用得到了飛速的發(fā)展,現(xiàn)代密碼技術(shù)已經(jīng)深入到信息安全的各個(gè)環(huán)節(jié)和對象,其應(yīng)用已不僅僅局限于政治、軍事等領(lǐng)域,其商用價(jià)值和社會價(jià)值也得到了充分的肯定。

當(dāng)前,計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用,產(chǎn)生了大量的電子數(shù)據(jù),這些數(shù)據(jù)需要傳輸?shù)骄W(wǎng)絡(luò)的各個(gè)地方并存儲。可能這些數(shù)據(jù)有的具有重大的經(jīng)濟(jì)價(jià)值,有的關(guān)系到國家、軍隊(duì)或企業(yè)的命脈甚至生死存亡。對于這些數(shù)據(jù),有意的計(jì)算機(jī)犯罪或無意的數(shù)據(jù)破壞都可能會造成不可估量的損失。對于這些犯罪行為,光靠法律和相應(yīng)的的監(jiān)督措施是很難滿足現(xiàn)實(shí)的需要,必須進(jìn)行自我保護(hù)。因此,理論和事實(shí)都說明密碼技術(shù)是一種實(shí)用而有效的方法。2023/3/8132.1.2保密通信模型

下圖是一個(gè)保密通信系統(tǒng)模型。圖中信源為信息的發(fā)送者,信宿為信息的接收者。信源和信宿為了通信,首先要選擇合適秘密參數(shù)k(稱為密鑰),并把它通過安全信道發(fā)送給信宿。在密碼學(xué)中,把需要變換的原始信息稱為明文信息m。明文m經(jīng)過變換成為另一種隱藏的形式,稱為密文信息c,完成此變換的過程稱為加密,其逆過程(即由密文恢復(fù)出明文的過程)稱為解密。對明文進(jìn)行加密時(shí)所采用的一組規(guī)則稱為加密算法,對密文進(jìn)行解密時(shí)所采用的一組規(guī)則稱為解密算法。

2023/3/814通過上圖這個(gè)模型,可以看到一個(gè)密碼體制(Cryptosystem)通常由5個(gè)部分構(gòu)成:

2023/3/815Kerchhoff假設(shè):對于所有的密鑰,加密和解密算法迅速有效;密碼體制的安全性不依賴于算法的保密,而是依賴于密鑰的保密。這就是所謂的Kerchhoff假設(shè)(該假設(shè)是由荷蘭密碼學(xué)家Kerchhoff提出的密碼學(xué)基本假設(shè))。一個(gè)完整的保密通信系統(tǒng)是由一個(gè)密碼體制、一個(gè)信源、一個(gè)信宿、一個(gè)攻擊者或密碼分析者構(gòu)成。

實(shí)際上,加密和解密是在密鑰的控制下進(jìn)行的,并有加密密鑰和解密密鑰之分。傳統(tǒng)密碼體制所采用的加密密鑰和解密密鑰相同,稱為單鑰或?qū)ΨQ密鑰密碼體制,即是說知道了加密密鑰,也就知道了解密密鑰;知道了解密密鑰也就知道了加密密鑰。

所以加密密鑰和解密密鑰必須同時(shí)保密。最典型的就是美國數(shù)據(jù)加密標(biāo)準(zhǔn)DES。2023/3/8161976年,在由Diffie和Hellman提出的密碼新體制中,加密密鑰和解密密鑰不同,也是不能相互推導(dǎo)的,稱為公鑰或雙鑰或非對稱密鑰密碼體制。

公鑰密碼體制的產(chǎn)生,一方面為數(shù)據(jù)的保密性、完整性、真實(shí)性提供了有效方便的技術(shù);另一方面,比較科學(xué)地解決了密碼技術(shù)的關(guān)鍵問題——密鑰分配問題,而且還還為數(shù)字簽名提供了有效的方法。

當(dāng)前及以后較長的一段時(shí)間內(nèi),密鑰仍然是信息安全保密的關(guān)鍵,它的產(chǎn)生、分配和管理是密碼技術(shù)中的重要研究內(nèi)容。

2023/3/8172.1.3密碼技術(shù)的分類

對密碼體制的分類有很多種標(biāo)準(zhǔn):

比如按執(zhí)行的操作方式不同,可以分為替換密碼體制(SubstitutionCryptosystem)和換位密碼體制(PermutationCryptosystem)。替換密碼體制是將明文中的每個(gè)元素(比特、字母、比特組合或字母組合)被映射為另一個(gè)元素,主要達(dá)到非線性變換的目的;換位密碼體制是將明文中的元素重新排列,這是一種線性變換,所有的操作都是可逆的。如果從收發(fā)雙方使用的密鑰是否相同,密碼體制分為對稱密碼(或單鑰密碼)技術(shù)和非對稱密碼(或雙鑰密碼或公鑰密碼)技術(shù)。對稱密碼體制中加密和解密的雙方擁有相同的密鑰,又稱為常規(guī)密鑰密碼體制、單密密鑰密碼體制和秘密密鑰密碼體制;而非對稱密碼體制中加密和解密的雙方擁有不同的密鑰,又稱為雙鑰密碼體制和公開密鑰密碼體制。2023/3/818

在現(xiàn)代對稱密碼體制中,其加密密鑰和解密密鑰相同。加密信息的安全性取決于密鑰的安全性,與算法的安全性無關(guān),即由密文和加解密算法不可能得到明文。換句話說算法無需保密,需保密的僅是密鑰。

非對稱密碼體制,其主要特點(diǎn)是將加密和解密能力分開,加密密鑰(即公開密鑰)是公開,加密算法和解密算法也都是公開的,而解密密鑰(也稱為秘密密鑰)是保密的。雖然私鑰是由公鑰決定的,但不能根據(jù)計(jì)算出,即加密密鑰和解密密鑰在計(jì)算上是不能相互推算出的。從不同的角度對密碼體制進(jìn)行分類,還可以分有以下分類:(1)根據(jù)密文數(shù)據(jù)段是否與明文數(shù)據(jù)段在整個(gè)明文中的位置有關(guān)否,可以將密碼體制分為分組密碼體制和序列密碼體制。2023/3/819分組密碼體制的密文僅與加密算法和密鑰有關(guān),而與被加密的明文分組在整個(gè)明文中的位置無關(guān)。分組密碼將固定長度的明文分組加密為相同長度的密文分組。該固定長度稱為分組大小。共同的明文分組在相同的密鑰作用下產(chǎn)生相同的密文分組。

序列密碼體制的密文不僅與給定的加密算法和密鑰有關(guān),而與當(dāng)前正被加密的明文部分在整個(gè)明文中的位置有關(guān)。序列密碼體制每次對較小的明文單位進(jìn)行處理,通常以比特(或字節(jié))為加密單位。加密時(shí)以流的形式進(jìn)行處理,將明文流與密鑰流進(jìn)行結(jié)合(如按位二進(jìn)制異或),形成密文流。

密鑰流是與明文流等長的偽隨機(jī)序列,因此加密后的密文流也是偽隨機(jī)序列。到目前為止,人們在分組密碼方面所下的工夫比序列密碼多得多,因?yàn)榉纸M密碼的應(yīng)用范圍要廣得多。絕大多數(shù)的基于網(wǎng)絡(luò)的常規(guī)加密應(yīng)用都是使用分組密碼。2023/3/820(2)根據(jù)加密變換是否可逆,可以將密碼體制分為單向變換密碼體制和雙向變換密碼體制。單向函數(shù)可以將明文加密成密文,但卻不能將密文轉(zhuǎn)換為明文(或在計(jì)算上不可行)。單向函數(shù)的目的不在于加密,主要用于密鑰管理和鑒別。一般的加密解密都屬于雙向變換的密碼體制。

(3)根據(jù)在加密過程中是否引入客觀隨機(jī)因素,可以將密碼體制分為確定型密碼體制和概率密碼體制確定型密碼體制是指一旦明文和密鑰確定后,也就確定了唯一的密文。目前使用的絕大多數(shù)的密碼體制都屬于確定型密碼體制。若對于給定的明文和密鑰,總存在一個(gè)較大的密文集合一之對應(yīng),最終的密文根據(jù)客觀隨機(jī)因素在密文集中隨機(jī)選取,則稱這種密碼體制為概率密碼體制。概率密碼體制的特點(diǎn)是保密強(qiáng)度高,大量的隨機(jī)因素使得破譯非常困難。但概率密碼體制是加密開銷量較大,密文長度比明文長度長得多。2023/3/8212.1.4密碼分析

縱觀密碼學(xué)發(fā)展的歷史,加密與破譯者始終是一對孿生“兄弟”。破譯也稱為密碼分析。實(shí)際上,密碼分析是密碼分析者在不知道密鑰的情況下,從密文恢復(fù)出明文。成功的密碼分析者不僅能夠能夠恢復(fù)出明文和密鑰,而且還能夠發(fā)現(xiàn)密碼技術(shù)的弱點(diǎn),從而控制整個(gè)通信。一般來講,如果根據(jù)密文就可以推算出明文或密鑰,或者能夠根據(jù)明文和相應(yīng)的密文推算出密鑰,則這個(gè)密碼技術(shù)是可破譯的,否則是不可破譯的。如果假設(shè)密碼分析者知道了密碼技術(shù)的算法,但是不知道密鑰,在Kerckhoff假設(shè)下這個(gè)密碼技術(shù)是安全的。2023/3/822密碼分析者分析密碼算法主要有以下三種方法:

①窮舉法:密碼分析者試圖試遍所有的明文或密鑰來進(jìn)行破譯。窮舉明文時(shí),就是將可能的明文進(jìn)行加密,將得到的密文與截取到密文對比,來確定正確的明文。這一方法主要用于公鑰密碼技術(shù)(及數(shù)字簽名)。窮舉密鑰時(shí),用可能的密鑰解密密文,直到得到有意義的明文,從而確定正確的明文和密鑰??梢允褂迷黾用荑€長度、在明文和密文中增加隨機(jī)冗余信息等方法來抗擊窮舉分析方法。

②統(tǒng)計(jì)分析法:密碼分析者通過分析密文、明文和密鑰的統(tǒng)計(jì)規(guī)律來達(dá)到破譯密碼技術(shù)。可以設(shè)法使明文的統(tǒng)計(jì)特性與密文的統(tǒng)計(jì)特性不一樣來對抗統(tǒng)計(jì)分析法。

③密碼體制分析法:根據(jù)所掌握的明文、密文的有關(guān)信息,通過數(shù)學(xué)求解的方法找到相應(yīng)的加解密算法。對抗這種分析法是應(yīng)該選用具有堅(jiān)實(shí)數(shù)學(xué)基礎(chǔ)和足夠復(fù)雜的加解密算法。原則上,受到密碼體制分析破譯的密碼技術(shù)已完全不能使用。2023/3/823根據(jù)對明文和密文掌握的程度,密碼分析者通??梢栽谙率鑫宸N情況下對密碼體制進(jìn)行攻擊:

①惟密文攻擊(Ciphertext-onlyattack):密碼分析者僅知道一些密文和加密算法,并試圖恢復(fù)盡可能多的明文,并進(jìn)一步推導(dǎo)出加密信息的密鑰。

②已知明文攻擊(Known-plaintextattack):密碼分析者不僅知道一些信息的密文和加密算法,而且還知道與之對應(yīng)的明文,根據(jù)明文和密文對試圖推導(dǎo)出加密密鑰或加密算法。

③選擇明文攻擊(Chosen-plaintextattack):密碼分析者知道加密算法,可以選擇一些明文,并得到相應(yīng)的密文,而且可以選擇被加密的明文,并試圖推導(dǎo)出加密密鑰或算法。例如:在公鑰密碼技術(shù)中,分析者可以用公鑰加密他任意選定的明文。這種攻擊就是選擇明文攻擊。2023/3/824

④選擇密文攻擊(Chosen-ciphertextattack):密碼分析者知道加密算法,可以選擇不同的密文,以及相應(yīng)的被解密的明文,并試圖推導(dǎo)出加密密鑰。有時(shí)和選擇明文攻擊一起并稱作選擇文本攻擊(。

⑤選擇文本攻擊(Chosen-textattack):是選擇明文攻擊和選擇密文攻擊的結(jié)合。破譯者已知加密算法,由密碼破譯者選擇明文信息和它對應(yīng)的密文,以及由密碼破譯者選擇的猜測性密文和它對應(yīng)的已破譯的明文。顯然,惟密文攻擊是最困難的,因?yàn)榉治稣哂凶钌倭康男畔⒖晒├?。上述攻擊的?qiáng)度是遞增的。一個(gè)密碼體制是安全的,通常是指在前三種攻擊下是安全的,即攻擊者一般容易具備前三種攻擊的條件。2023/3/825此外,還有自適應(yīng)選擇明文攻擊(Adaptive-chosen-plaintextattack)和選擇密鑰攻擊(Chosen-keyattack)。前者是選擇明文攻擊的特例,密碼分析者不僅能夠選擇被加密的明文,也能夠依據(jù)以前加密的結(jié)果對這個(gè)選擇進(jìn)行修正。后者在實(shí)際應(yīng)用中很少,它僅表示密碼分析者具有不同密鑰之間的關(guān)系,并不是密碼分析者能夠選擇密鑰。

2023/3/8262.2對稱密碼技術(shù)2.2.1對稱密碼技術(shù)概述

對稱密碼技術(shù)就是加密密鑰和解密密鑰相同的這類密碼體制,它采用的解密算法是加密算法的逆運(yùn)算。對稱密碼技術(shù)典型代表有:古典密碼技術(shù)、序列密碼技術(shù)、DES(數(shù)據(jù)加密標(biāo)準(zhǔn))、瑞士的IDEA(國際數(shù)據(jù)加密算法)以及AES(高級加密標(biāo)準(zhǔn))等。2.2.2古典密碼技術(shù)古典密碼技術(shù)根據(jù)其基本原理大體上可以分為兩類:替換密碼技術(shù)和換位密碼技術(shù)。2023/3/8271.替換密碼技術(shù)替換密碼技術(shù)是基于符號替換的密碼技術(shù),這種密碼技術(shù)是以符號的置換來達(dá)到掩蓋明文信息。這類密碼技術(shù)有:單字符單表替換密碼技術(shù)、單字符多表替換密碼技術(shù)等。(1)單字符單表替換密碼技術(shù):單字符單表替換密碼技術(shù)是對明文中的所有字符都使用一個(gè)固定的映射。

設(shè)A={a0,a1

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

,…,bn-1}為密文字母表,單字符單表替換密碼技術(shù)使用了A到B的映射關(guān)系:f:A→B,f(ai)=bj(一般情況下,為保證加密的可逆性,f是一一映射)將明文中的每一個(gè)字母替換為密文字母表中的一個(gè)字母。單字符單表替換密碼技術(shù)的密鑰就是映射f或密文字母表(一般情況下明文字母表與密文字母表是相同的,這時(shí)的密鑰就是映射f)。典型的單字符單表替換密碼技術(shù)有:①乘法密碼技術(shù)2023/3/828乘法密碼技術(shù)的加密變換:

Ek(ai)=aj,j=ik(modn),gcd(k,n)=1

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

乘法密碼技術(shù)的密鑰是k。若n是素?cái)?shù),則有n-2個(gè)密鑰(k=1時(shí)加密變換是恒等變換,應(yīng)該予以拋棄);若n不是素?cái)?shù),則有φ(n)-1個(gè)密鑰(其中φ(n)為歐拉函數(shù)的值)。

②移位替換密碼技術(shù):是最簡單的一種替換密碼。加密變換為:

Ek(ai)=aj,j=(i+k)(modn),0<k<n解密變換為:

Dk(aj)=ai,i=(j–k)(modn)=(j+(n-k))(modn)由于i=(j-k)(modn)=(i+k-k)(modn)=i(modn),所以解密與加密是可逆的。從解密變換中可以看出:Dk=En-k。2023/3/829移位替換密碼技術(shù)的密鑰是k,k唯一地確定了明文空間到密文空間的映射,故移位替換密碼技術(shù)的密鑰空間的元素個(gè)數(shù)為n-1。③密鑰字密碼技術(shù):它利用一個(gè)密鑰字來構(gòu)造替換作為密鑰。④仿射密碼技術(shù):是加法密碼技術(shù)和乘法密碼技術(shù)的結(jié)合體。加密變換為:Dk0,k1(ai)=aj,j=(ik1+k0)(modn),k0,k1∈Zn,gcd(k1,n)=1k1,k0為該算法的密鑰。當(dāng)k0=0時(shí),仿射密碼技術(shù)退化為乘法密碼技術(shù),當(dāng)k0=1時(shí),仿射密碼退化為移位替換密碼技術(shù)。

(2)單字符多表替換密碼技術(shù):單字符多表替換密碼技術(shù)在安全性方面比單字符單表替換密碼技術(shù)高。因?yàn)閱巫址麊伪硖鎿Q密碼技術(shù)中明文的字母與密文中的字母是一一對應(yīng)的,明文中的字母統(tǒng)計(jì)特性在明文中沒有得到改變,因此單字符單表替換密碼技術(shù)很容易破譯。

2023/3/830單字符多表替換密碼技術(shù)是用一系列(兩個(gè)以上)替換表依次對明文的字母進(jìn)行替換的加密方法。假設(shè)明文字母表為Zq,替換表序列為L=L1L2…,明文字母序列為m=m1m2…,則相應(yīng)的密文序列為c=L(m)=L1(m1)L2(m2)…。

如果替換序列是非周期的無限序列,則相應(yīng)的密碼技術(shù)為非周期多表代替密碼技術(shù),它對每個(gè)明文都采用了不同的替換表進(jìn)行加密,也稱為一次一密密碼技術(shù),它是一種理論上不可破譯的密碼技術(shù)。而在實(shí)際應(yīng)用中采用的都是周期多表替換密碼技術(shù),只使用了有限的替換表,替換表被重復(fù)使用以完成對明文的加密。例如周期為d,則替換表序列為:L=L1L2…LdL1L2…Ld…。當(dāng)d=1時(shí),單字符多表替換密碼技術(shù)退化為單字符單表替換密碼技術(shù)。

2023/3/831單字符多表替換密碼技術(shù)有很多,典型的有:

①Vigenere(費(fèi)杰爾或維吉尼亞)密碼技術(shù)

Vigenere密碼技術(shù)本質(zhì)上是一種多表簡單加法密碼技術(shù)

Vigenere密碼技術(shù)循環(huán)地使用每一個(gè)替換表完成明文字母到密文字母的轉(zhuǎn)換。具體的加密過程:

設(shè)密鑰K=k1k2…kd,明文與密文字母表中均包含了n個(gè)字母。又設(shè)明文m=m1m2…,密文為c=c1c2…,則ci=mi+ki(modn),其中t為正整數(shù)。

當(dāng)密鑰的長度比明文短時(shí),密鑰可以周期性地重復(fù)使用,直至完成明文中的每個(gè)字母的加密。②Vernam(弗納姆)密碼技術(shù)2023/3/832③Hill(希爾)密碼技術(shù)

它實(shí)際上是仿射密碼技術(shù)的特例。其基本加密思想是將n個(gè)明文字母通過線性變換將它們轉(zhuǎn)換為n個(gè)密文字母的加密算法。解密時(shí)只需做一次逆變換即可。密鑰就是變換矩陣。2.換位密碼技術(shù)2023/3/8332.2.3序列密碼技術(shù)

序列密碼技術(shù)也稱為流密碼技術(shù)(也屬于對稱密碼技術(shù),實(shí)際上是對稱密碼技術(shù)的一種特殊情況),起源于20世紀(jì)20年代的Vernam密碼技術(shù),目前,序列密碼技術(shù)是世界各國的軍事和外交等領(lǐng)域中的主要密碼技術(shù)之一。序列密碼原理圖

序列密碼技術(shù)是將明文信息m看成是連續(xù)的比特流(或字符流)m1,m2,…,在發(fā)送端用密鑰序列發(fā)生器產(chǎn)生的密鑰序列k1,k2,…,對明文中的mi進(jìn)行加密,即:Ek(m)=(m1)(m2)…。2023/3/834

序列密碼技術(shù)的保密性取決于密鑰的隨機(jī)性。如果密鑰序列是真正的隨機(jī)數(shù),則在理論上是不可破的。問題在于這種密碼技術(shù)需要的密鑰量大得驚人,在實(shí)際應(yīng)用中很難滿足需要。目前人們常用偽隨機(jī)序列作為密鑰序列,但要求序列的周期足夠長(1010~1050),隨機(jī)性要好,才能保證其安全性。序列密碼技術(shù)的保密性取決于密鑰的隨機(jī)性。序列密碼的典型代表有A5和SEAL等。

2023/3/8351.DES產(chǎn)生的歷史背景

DES是美國國家標(biāo)準(zhǔn)局NBS(后改名為美國國家標(biāo)準(zhǔn)技術(shù)研究所即NIST)為了滿足計(jì)算機(jī)通信網(wǎng)絡(luò)的發(fā)展對安全保密的需求,實(shí)現(xiàn)系統(tǒng)同一水平的安全性和兼容性,降低數(shù)據(jù)加密產(chǎn)品的生產(chǎn)成本,推廣使用密碼算法而公開征集的一種用于政府部門及民間進(jìn)行計(jì)算機(jī)數(shù)據(jù)加密的密碼算法。

它也是密碼技術(shù)史上第一個(gè)廣泛應(yīng)用于商用數(shù)據(jù)保密的、公開的密碼算法,它開創(chuàng)了公開密碼算法的先例。2.2.4DES(數(shù)據(jù)加密標(biāo)準(zhǔn))2023/3/836

DES分別在1983、87、92、94年都通過了安全性評估,作為信息安全處理標(biāo)準(zhǔn)一直使用到1998年(以后不再使用),這樣DES作為數(shù)據(jù)加密標(biāo)準(zhǔn)的使用期限已有20余年了。

但是在近年來,對DES的攻擊不斷顯示出對其不利的因素,特別是隨著計(jì)算機(jī)計(jì)算能力的提高,也由于DES的一些先天性不足(其密鑰過短,只有56位,也是導(dǎo)致其備受批評的重要原因),對DES的成功攻擊屢見報(bào)道。在這種情況下,大家對于替換DES的要求日益增長,最終NIST于1997年發(fā)布公告,征集新的數(shù)據(jù)加密標(biāo)準(zhǔn)為聯(lián)邦信息處理標(biāo)準(zhǔn)的代替DES。2000年10月,公布了新的數(shù)據(jù)加密標(biāo)準(zhǔn)AES。盡管如此,DES仍然具有重要的參考價(jià)值,它對于我們掌握分組密碼的基本理論與設(shè)計(jì)思想具有重要意義。

DES公布和正式實(shí)施后,雖然有不少用戶和專家對它的設(shè)計(jì)問題提出過質(zhì)疑和反對,但仍被迅速推廣使用,美國的許多專用系統(tǒng)紛紛宣布采用DES作為其信息處理安全標(biāo)準(zhǔn)。2023/3/8372.DES算法

DES是一個(gè)分組密碼算法,使用64位密鑰(除去8位奇偶校驗(yàn),實(shí)際密鑰長為56位)對64比特的數(shù)據(jù)分組(二進(jìn)制數(shù)據(jù))加密,產(chǎn)生64位密文數(shù)據(jù)。DES是一個(gè)對稱密碼體制,加密和解密使用同一密鑰,解密和加密使用同一算法。DES的所有保密性均依賴于密鑰。(1)DES的加密過程(3個(gè)階段)

第一階段:初始置換IP(如下頁表所示)對于給定的明文x,通過初始置換IP(在第一輪迭代運(yùn)算之前,需要加密的64位明文首選通過初始置換IP的作用,對輸入分組實(shí)施置換(即把64位置換得第2位,…,原來輸入明文的第7位將作為置換結(jié)果的最后一位)獲得,并將x0分為兩部分,前面32位記為L0,后面32位記為R0。2023/3/83858501234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157初始置換IP表

第二階段:計(jì)算16次迭代變換。

DES采用了典型的Feistel結(jié)構(gòu),是一個(gè)乘積結(jié)構(gòu)的迭代密碼算法。其算法的核心是算法所規(guī)定的16次迭代變換(見下頁圖)。從圖中可以看出,DES算法的16次迭代變換具有相同的結(jié)構(gòu),每一次迭代變換都以前一次迭代變換的結(jié)果(第一次迭代以作x0=L0R0為輸入)和用戶密鑰擴(kuò)展得到的子密鑰ki作為輸入;每一次迭代變換只變換一半數(shù)據(jù),它們將輸入數(shù)據(jù)的右半部分經(jīng)過函數(shù)f后,將其輸出與輸入數(shù)據(jù)的左半部分進(jìn)行異或運(yùn)算,并將得到的結(jié)果作為新的右半部分,原來的右半部分變成了新的左半部分。即:2023/3/839DES加密算法圖

DES的一次迭代過程2023/3/840

DES算法的安全性關(guān)鍵在于非線性函數(shù)f的性質(zhì)。在DES算法中,f以長度為32位的比特串作為輸入,產(chǎn)生的中間結(jié)果為48位,并在最終產(chǎn)生長度為32位的比特串作為輸出。f函數(shù)的計(jì)算過程可以用下圖表示。Ⅰ.擴(kuò)展置換:f以前一輪迭代的結(jié)果Ri-1作輸入,首先根據(jù)一個(gè)固定的擴(kuò)展函數(shù)E(也稱為E盒)“擴(kuò)展”長度為48位的比特串,其中有16比特出現(xiàn)了兩次(如下頁表所示)2023/3/8413212345456789891011121312131415161716171819202120212223242524252627282928293031321擴(kuò)展置換(E)表

下圖是以第一個(gè)小分組(第一位在第4位)為例,給出了擴(kuò)展函數(shù)E的工作過程。擴(kuò)展函數(shù)E的第一分組的工作過程

2023/3/842Ⅱ.與子密鑰異或:函數(shù)f將擴(kuò)展置換得到的48位輸出與子密鑰ki(48位)進(jìn)行異或運(yùn)算(按位模2加)。Ⅲ.S盒替代:以6比特為單位將第Ⅱ步異或得到的結(jié)果分為8個(gè)小分組,并將它們送入替代函數(shù)(即S盒)中進(jìn)行替代運(yùn)算。

DES算法中共有8個(gè)S盒(見下頁表)。每一個(gè)分組將對應(yīng)于一個(gè)S盒進(jìn)行替代運(yùn)算。具體替代方式為:將S盒的6位輸入定義為a1a2a3a4a5a6。將a1a6組成一個(gè)2位二進(jìn)制數(shù),對應(yīng)著表中的行號,將a2a3a4a5組成一個(gè)4位二進(jìn)制數(shù),對應(yīng)表中的列號,交叉點(diǎn)的數(shù)據(jù)就是該S盒的輸出。

S盒是函數(shù)f的核心所在,同時(shí),也是DES算法的關(guān)鍵步驟。實(shí)際上除了S盒以外,DES的其他運(yùn)算都是線性的,而S盒是非線性的,它決定了DES算法的安全性。48位的比特串(分為8個(gè)6位分組)在經(jīng)過8個(gè)S盒進(jìn)行代替運(yùn)算后,得到8個(gè)4位的分組,它們重新組合在一起形成一個(gè)32位的比特串。這個(gè)比特串將進(jìn)行下一步運(yùn)算:P盒置換。2023/3/843S盒

2023/3/844Ⅳ.P盒置換:是將S盒輸出的32位比特串根據(jù)固定的置換P(也稱為P盒)置換到相應(yīng)的位置,它也稱為直接置換(straightpermutation)(下表給出了置換P)。1672021291228171152326518311028241432273919133062211425

P盒置換表

2023/3/845

第三階段:逆置換是初始置換IP的逆置換,記為IP-1(如下表)。在對16圈迭代的結(jié)果(R16L16),再使用逆(初始)置換IP-1后,得到的結(jié)果即可作為DES加密的密文Y輸出,即Y=IP-1(R16,L16)。40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725逆初始置換IP-1表(2)DES解密算法:與其加密算法使用的算法過程相同。

(3)DES算法的子密鑰的生成過程。下頁圖是子密鑰的生成過程:2023/3/846子密鑰的生成過程如下:子密鑰的生成過程圖

輸入的密鑰K首先經(jīng)過一個(gè)置換(稱為置換選擇1(PC-1,Permutationchoice的縮寫)見下頁表所示),進(jìn)行重新排列。置換的結(jié)果(56位)被當(dāng)成兩個(gè)28比特的量C0和D0,其中C0是置換結(jié)果的前28比特,而D0是后28比特。2023/3/847C05749413325179158504234261810259514335271911360524436D06355473931231576254463830221466153453729211352820124PC-1(置換選擇1)

在計(jì)算第i輪迭代所需的子密鑰時(shí),首先對Ci-1和Di-1進(jìn)行循環(huán)左移,分別得到Ci與Di。循環(huán)的次數(shù)取決于的i值,如果i=1,2,9和16,左移循環(huán)的次數(shù)等于1,否則循環(huán)2次,這些經(jīng)過循環(huán)移位的值作為下一次循環(huán)的輸入。然后將以作CiDi作為另外一個(gè)由DES算法固定置換選擇(稱為置換選擇2,PC-2見下頁表所示)的輸入,所得到的置換結(jié)果即為第i次迭代所需的子密鑰ki。2023/3/8481417112415328156211023191242681672720132415231374755304051453348444939563453464250362932PC-2(置換選擇2)

DES的工作模式由FIPSPUB81定義,共有四種:電子密碼本模式ECB、密文分組鏈接模式CBC、密文反饋模式CFB、輸出反饋模式OFB。2023/3/849

IDEA(InternationalDataEncryptionAlgorithm,國際數(shù)據(jù)加密算法)算法中明文和密文的分組長度都是64位,密鑰長128位,該算法既可用于加密,也可用于解密。設(shè)計(jì)原則采用的是基于“相異代數(shù)群上的混合運(yùn)算”的設(shè)計(jì)思想,三個(gè)不同的代數(shù)群(異或、模216加和模216+1乘)進(jìn)行混合運(yùn)算,所有這些運(yùn)算(僅有運(yùn)算,沒有位的置換)都在16位子分組上進(jìn)行,無論用硬件還是軟件實(shí)現(xiàn),都非常容易(對16位微處理器尤其有效)。

IDEA的設(shè)計(jì)者在設(shè)計(jì)時(shí)已盡最大努力使該算法不受差分密碼分析的影響,賴學(xué)嘉已證明IDEA算法在其8輪迭代的第4輪之后便不受差分密碼分析的影響。IDEA比同時(shí)代的算法:FEAL,REDOC-II、LOKI、Snefru和Khafre都要堅(jiān)固,而且到目前為止幾乎沒有任何關(guān)于IDEA密碼分析攻擊法的成果案例發(fā)表,因此目前IDEA的攻擊方法只有“直接攻擊”或者說是“密鑰窮舉”法了。2.2.5IDEA(國際數(shù)據(jù)加密算法)2023/3/850

NIST于1997年初發(fā)起并組織了在全世界范圍內(nèi)廣泛征集新的加密標(biāo)準(zhǔn)算法的活動(dòng),同時(shí)要求每一種侯選算法的分組長度為128位,應(yīng)當(dāng)支持128,192和256比特的密鑰長度,經(jīng)過了幾年的反復(fù)較量,最終由比利時(shí)的密碼學(xué)專家JoanDaemen(ProtonWorldInternational公司)及VincentRijmen(Leuven大學(xué))所提出的加密算法Rijndael(中文英譯“榮代爾”)贏得了勝利,成為了21世紀(jì)新的加密算法AES(AdvancedEncryptionStandard)。2001年11月26日,NIST正式公布高級加密標(biāo)準(zhǔn),并于2002年5月26日正式生效。

Rijndael以其算法設(shè)計(jì)的簡潔、高效、安全而令世人關(guān)注,相信它會在國際上得到廣泛應(yīng)用。1.AES的產(chǎn)生歷史背景2.2.6AES(高級加密標(biāo)準(zhǔn))2023/3/851

Rijndael密碼的設(shè)計(jì)中考慮到的三條準(zhǔn)則:①抗擊目前已知的所有攻擊;②在多個(gè)平臺上實(shí)現(xiàn)速度要快和編碼緊湊;③設(shè)計(jì)簡單。2.Rijndael密碼的設(shè)計(jì)原則

(1)Rijndael中同樣使用了迭代變換,但與大多數(shù)分組密碼不同的是Rijndael沒有使用Feistel結(jié)構(gòu)。注:

(2)Rijndael是一個(gè)迭代型的具有可變分組長度和可變密鑰長度的分組密碼,AES設(shè)計(jì)要求中要求分組長度為128比特(而Rijndael支持128、192或256比特的分組長度),因此,在AES規(guī)范中,對分組長度限定為128。

(3)AES算法的安全性仍然在討論當(dāng)中,從目前的情況來看,Rijndael尚無已知的安全性方面的攻擊,算法似乎具有良好的安全性。

(4)關(guān)于AES的效率問題,無論在有無反饋模式的計(jì)算環(huán)境下,AES的硬件、軟件實(shí)現(xiàn)都表現(xiàn)出了良好的性能。2023/3/8522.3非對稱密碼技術(shù)

非對稱密鑰密碼技術(shù)也稱為雙鑰或公鑰密碼技術(shù),研究的基本工具不再象對稱密碼技術(shù)那樣是代換和置換,而是數(shù)學(xué)函數(shù)。

采用非對稱密碼技術(shù)的每個(gè)用戶都有一對密鑰:一個(gè)是可以公開的(稱為加密密鑰或公鑰),可以象電話號碼一樣進(jìn)行注冊公布;另一個(gè)則是秘密的(稱為秘密密鑰或解密密鑰或私鑰,它由用戶嚴(yán)格保密保存)。它的主要特點(diǎn)是將加密和解密能力分開,因而可以實(shí)現(xiàn)多個(gè)用戶加密的信息只能由一個(gè)用戶解讀,或由一個(gè)用戶加密的信息而多個(gè)用戶可以解讀。前者可以用于公共網(wǎng)絡(luò)中實(shí)現(xiàn)通信保密,而后者可以用于實(shí)現(xiàn)對用戶的認(rèn)證。2.3.1非對稱密碼技術(shù)概述2023/3/853下圖是公鑰密碼技術(shù)示意圖:

公鑰密碼的加密變換E(eB,m)與解密交換D(dB,c)應(yīng)滿足這樣一些要求:①D(dB,c)是E(eB,m)的逆變換,即對任何的明文m有:D(dB,c)=D(dB

,E(eB,m))=m;②在已知加密密鑰eB時(shí),E(eB,m)的計(jì)算不難;在已知解密密鑰dB時(shí),D(dB,c)的計(jì)算也不難;③若不知道dB,那么即使知道eB,具體的加密與解密算法過程及密文c,確定明文的計(jì)算是不可行的。

設(shè)計(jì)公開密鑰密碼體制就變成了尋找陷門單向函數(shù)??梢蕴峁﹩蜗蚝瘮?shù)的三大數(shù)學(xué)難題分別是:①大整數(shù)分解問題(簡稱IFP);②離散對數(shù)問題(簡稱DLP);③橢圓曲線離散對數(shù)問題(簡稱ECDLP)。2023/3/854如果根據(jù)所依據(jù)的難解問題,公鑰密碼體制可以分為這樣3類:①大整數(shù)分解問題類;②離散對數(shù)問題類;③橢圓曲線類(也時(shí)被歸為離散對數(shù)問題類)?;诖笳麛?shù)分解問題的公鑰密碼體制基于有限域中的離散對數(shù)問題基于代數(shù)編碼系統(tǒng)的Mceliece公鑰密碼算法基于有限自動(dòng)機(jī)的公開密碼技術(shù)基橢圓曲線的公開密鑰密碼技術(shù)

其中,除橢圓曲線公鑰密碼算法是在橢圓曲線上進(jìn)行運(yùn)算之外,其余各公鑰密碼算法均在有限域上進(jìn)行。

人們已經(jīng)研究出的公鑰密碼算法:2023/3/8552.3.2RSA

RSA的名字來源于它們的創(chuàng)建者。1978年由麻省理工學(xué)院的Ronald.LRivest、以色列魏茨曼科學(xué)中心的Adi

Shamir和南加洲大學(xué)的LenoardM.Adleman發(fā)表了著名的論文“AMethodforObtainingDigitalSignatureandPublic-KeyCryptosystems(獲得數(shù)字簽名和公開密鑰密碼系統(tǒng)的一種方法)”,并提出的一種用數(shù)論構(gòu)造的、也是迄今為止理論上最為成熟完善的公鑰密碼技術(shù)——RSA,該技術(shù)已得到廣泛的應(yīng)用。在RSA算法中,它使用廣為公開的公鑰加密通信,密文只能被持有與之相配的私鑰的人才能解開。1.RSA的基本原理:RSA是基于大整數(shù)難分解的公鑰密碼技術(shù)。

RSA是基于這樣一個(gè)十分簡單的數(shù)論事實(shí)而設(shè)計(jì)的:將兩個(gè)大的素?cái)?shù)相乘十分容易,但想分解它們是十分困難的,因此將乘積公開作為加密密鑰。2023/3/8562.算法描述

基于大整數(shù)分解的公鑰密碼體制的安全性主要依賴于大整數(shù)(大合數(shù))的難分解問題。大整數(shù)的分解問題可以被表述:已知整數(shù)n,n是兩個(gè)素?cái)?shù)的積,即n=p.q。求解p、q的值。大整數(shù)分解是計(jì)算上困難的問題,目前還不存在一般性的有效解決算法。(1)密鑰的產(chǎn)生①

選兩個(gè)保密的大素?cái)?shù)p和q;②計(jì)算n=p*q,φ(n)=(p-1)(q-1),其中φ(n)是n的歐拉函數(shù)值;③選一整數(shù)e,滿足1<e<φ(n),且gcd(φ(n),e)=1,即φ(n)與e互質(zhì);④再取另一個(gè)數(shù)d,滿足d*e=1modφ(n),(表示d*e除以φ(n)的余數(shù)為1,或者說d是e在模φ(n)下的乘法逆元,因e與φ(n)互質(zhì),由模運(yùn)算可知,它的乘法逆元一定存在);⑤以PK={e,n}為公鑰,SK={d,n}為私鑰。2023/3/857(2)加密:加密時(shí)首先將明文m比特串分組,使得每個(gè)分組對應(yīng)的十進(jìn)制數(shù)小于n,即分組的長度小于log2n。然后對每組明文分組,作加密運(yùn)算:(3)解密:對密文分組的解密運(yùn)算為:3.RSA的安全性

RSA的安全性是基于分解大整數(shù)的困難性假定,之所以假定是因?yàn)橹两襁€未能證明分解大真整數(shù)就是np問題,也許有尚未發(fā)現(xiàn)的多項(xiàng)式時(shí)間分解算法。估計(jì)在未來一段比較長的時(shí)期,密鑰長度介于1024比特至2048比特之間的RSA是安全的。2023/3/858為了保證RSA算法的安全性,p和q的選擇時(shí)須注意:(1)p和q的長度相差不要太大;(2)p-1和q-1都應(yīng)應(yīng)大數(shù)因子;(3)gcd(p-1,q-1)的值應(yīng)較小。此外,研究結(jié)果表明,如果e<n且d<n1/4,則d能被較容易地確定。2.3.3Diffie-Hellman密鑰交換協(xié)議

Diffie-Hellman的安全性是基于zp上的離散對數(shù)問題。設(shè)p是一個(gè)滿足要求的大素?cái)?shù),0<a<p,并且a是循環(huán)群zp的生成元,a和p公開,所有用戶都可以得到a和p。在兩個(gè)用戶A與B通信時(shí),它們可以通過如下步驟協(xié)商通信所使用的密鑰:①用戶A選取一個(gè)大的隨機(jī)數(shù)rA(),計(jì)算:,并且把SA發(fā)送給用戶B;2023/3/859②用戶B選取一個(gè)m隨機(jī)數(shù)rB(),計(jì)算:。并且把SB發(fā)送給用戶A;③用戶A計(jì)算,用戶B計(jì)算

。2023/3/8602.3.4ElGamal公鑰密碼技術(shù)

ElGamal密碼體制的安全性是基于離散對數(shù)的難解性,既可用于加密又可用于數(shù)字簽名的公鑰密碼技術(shù)。到目前為止,它仍是一個(gè)安全性能良好的公鑰體制,下面討論其算法。

(1)加密算法:假設(shè)用戶A想傳送信息給B,A采用如下算法加密明文信息m:

①用戶A將x編碼成一個(gè)在0到p-1之間的整數(shù),m作為傳輸?shù)拿魑模╩∈{0,1,……..p-1}(這里的m是編碼后的明文);

2023/3/861(2)解密算法2023/3/8622.3.5橢圓曲線密碼算法使用基于橢圓曲線密碼體制的安全性依賴于由橢圓曲線群上的點(diǎn)構(gòu)成的代數(shù)系統(tǒng)中的離散對數(shù)問題的難解性。

它與有限域上的離散對數(shù)問題或整數(shù)分解問題的情形不同,與其他公鑰體制相比,橢圓曲線密碼體制的優(yōu)勢在于:密鑰長度大大減少(256比特的ECC密鑰就可以達(dá)到對稱密鑰128比特的安全水平,如下表所示),實(shí)現(xiàn)速度快等。這是因?yàn)殡S著計(jì)算機(jī)速度的加快,為達(dá)到特定安全級別所需的密鑰長度的增長,相比之下RSA及使用有限域的公鑰密碼體制要慢得多。2023/3/863

隨著理論探討的逐步深入,ECC引起了密碼界的廣泛關(guān)注,基于EC的密碼體制也獲得了極大的發(fā)展,其安全性和優(yōu)勢得到了業(yè)界的認(rèn)可和廣泛應(yīng)用。如電子商務(wù)協(xié)議SET(SecureElectronicTransactions)的制定者已經(jīng)把它作為下一代SET協(xié)議中缺省的公鑰密碼算法,ATM(AsynchronousTransactionMode異步傳輸模式)論壇技術(shù)委員會提出的ATM安全性規(guī)范中也支持ECC;與此同時(shí),許多標(biāo)準(zhǔn)化組織也著手制定ECC的相關(guān)標(biāo)準(zhǔn),如1998年被確定為ISO/IEC數(shù)字簽名標(biāo)準(zhǔn)ISO14888-3;1999年2月ECDSA(橢圓曲線數(shù)字簽名算法)被ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)確定為數(shù)字簽名標(biāo)準(zhǔn)ANSIX9.62-1998,ECDH(橢圓曲線Diffie-Hellman體制)被確定為ANSIX9.63;2000年2月被確定為IEEE標(biāo)準(zhǔn)IEEE1363-2000,隨后NIST確定其為聯(lián)邦數(shù)字簽名標(biāo)準(zhǔn)FIPS186-2。

2023/3/8641.橢圓曲線(EC)上的基本運(yùn)算在EC上定義的加法運(yùn)算如下:對于,,P+Q的運(yùn)算結(jié)果如下:①P+Ο=P(Ο為加法單位元,也是在EC上的一個(gè)無窮遠(yuǎn)點(diǎn)的特殊點(diǎn),也看作Ο);②若x1=x2,y1=-y2,那么P+Q=Ο(即為無窮遠(yuǎn)點(diǎn));③若不滿足②,則P+Q=(x3,y3),其中:2023/3/8652.EC上的密碼體制(1)EC上的離散對數(shù)問題

EC上的離散對數(shù)問題定義為:在已知點(diǎn)p與np的情況下,求解正整數(shù)n的值。(2)Diffie-Hellman密鑰交換協(xié)議(ECDH)

首先,選擇一個(gè)素?cái)?shù)和EC參數(shù)a和b,則可以得方程y2≡x3+ax+b(modp),a,b∈zp。4a3+27b2(modp)≠0表達(dá)的EC及其上面的點(diǎn)構(gòu)成Abel群EP(a,b)。

其次,在EC中選取EP(a,b)的一個(gè)基點(diǎn)(生成元)G=(x0,y0),要求G的階是一個(gè)大的素?cái)?shù),G的階數(shù)滿足nG=Ο的最小正整數(shù)n。EP(a,b)和G作為公開參數(shù)。

最后,兩用戶A和B之間的密鑰交換可以如下方式進(jìn)行:2023/3/866①A隨機(jī)選擇一個(gè)比n小的整數(shù)nA,作為A的私鑰,然后A產(chǎn)生一個(gè)公鑰pA=nAG,這個(gè)公鑰是EP(a,b)中的一個(gè)點(diǎn);②B也類似地選擇一個(gè)私鑰nB,并計(jì)算一個(gè)公鑰pB=nBG,這個(gè)公鑰也是EP(a,b)中的一個(gè)點(diǎn);③A計(jì)算k1=nApB,B計(jì)算k2=nBpA。由于k1=nApB=nA(nBG)=nB(nAG)=k2,這樣A和B就產(chǎn)生了雙方共享的秘密密鑰。為了破譯這個(gè)密碼方案,攻擊者需要能夠在給定G和kG時(shí)計(jì)算k,而實(shí)際上計(jì)算k是十分困難的。(3)ElGamal公鑰密碼體制(ECELG)基于橢圓曲線EC的ELGamal體制同樣定義EC群Ep(a,b)及其在EC中的一個(gè)基點(diǎn)G=(x0,y0),兩者的選擇原則與Diffie-Hellman的體制中所描述的原則相同。2023/3/867

將Ep(a,b)和G=(x0,y0)作為公開的參數(shù),系統(tǒng)中每個(gè)用戶都可以獲得Ep(a,b)和G。另外,系統(tǒng)中的每個(gè)用戶U都將隨機(jī)的挑選一個(gè)整數(shù)nU,并計(jì)算pU=nUG,然后用戶U公開pU作為自己的公鑰,并保存nU作為私鑰。①加密算法(假設(shè)用戶A需要發(fā)送明文m給用戶B):首先,用戶A將需要發(fā)送的明文m通過編碼(這里不對編碼做介紹,可參與有關(guān)文獻(xiàn))嵌入到EC上的一個(gè)點(diǎn)Pm=(xm,ym)。

其次,用戶A選取nA(整數(shù))(并以pA=nAG作為公鑰),pB=nBG(是B的公鑰)用戶A作如下的計(jì)算,產(chǎn)生以下點(diǎn)作為明文:Cm=(nAG,pm+nApB)。

解密算法:解密時(shí),以密文點(diǎn)對中的第二個(gè)點(diǎn)減去用自己的私鑰與第一個(gè)點(diǎn)倍乘,即:pm+nApB-nBnAG=pm+nAnBG-nAnBG=pm。若攻擊者想由Cm得到Pm,就必須知道nB,而要得到nB,只有通過橢圓曲線上的兩個(gè)已知點(diǎn)G和nBG來得到,這意味著必須求橢圓曲線上的離散對數(shù),因而不可行。2023/3/868

密鑰分配技術(shù)一般需要解決兩個(gè)方面的問題:為減輕負(fù)擔(dān),提高效率,引入自動(dòng)密鑰分配機(jī)制;為提高安全性,盡可能減少系統(tǒng)中駐留的密鑰量。1.密鑰分配的基本方法對于通信雙方A和B,密鑰分配可以有以下幾種方法:①密鑰由A選定,然后通過物理方法安全地傳遞給B。②

密鑰由可信賴的第三方C選取并通過物理方法安全地發(fā)送給A和B。③

如果A和B事先已有一密鑰,那么其中一方選取新密鑰后,用已有的密鑰加密新密鑰發(fā)送給另一方。④如果A和B都有一個(gè)到可信賴的第三方C的保密信道,那么C就可以為A和B選取密鑰后安全地發(fā)送給A和B。⑤

如果A和B都在可信賴的第三方C發(fā)布自己的公開密鑰,那么他們用彼此的公開密鑰進(jìn)行保密通信。2.4密鑰分配與管理技術(shù)2.4.1密鑰分配方案2023/3/8692.對稱密碼技術(shù)的密鑰分配方案(1)集中式密鑰分配方案

下圖就是具有密鑰分配中心的密鑰分配方案。圖中假定A和B分別與KDC有一個(gè)共享的密鑰Ka和Kb,A希望與B建立一個(gè)邏輯連接,并且需要一次性會話密鑰來保護(hù)經(jīng)過這個(gè)連接傳輸?shù)臄?shù)據(jù),具體過程如下:①A→KDC:IDA∥IDB∥N1。A向KDC發(fā)出會話密鑰請求。請求的消息由兩個(gè)數(shù)據(jù)項(xiàng)組成:一是A和B的身份IDA和IDB,二是本次業(yè)務(wù)的唯一標(biāo)識符N1,每次請求所用的N1都應(yīng)不同,常用一個(gè)時(shí)間戳、一個(gè)計(jì)數(shù)器或一個(gè)隨機(jī)數(shù)作為這個(gè)標(biāo)識符。為防止攻擊者對N1的猜測,用隨機(jī)數(shù)作為這個(gè)標(biāo)識符最合適。具有密鑰分配中心的密鑰分配方案

2023/3/870

②KDC→A:EKa[Ks∥IDA∥IDB∥N1∥EKb[Ks∥IDA]]。KDC對A的請求發(fā)出應(yīng)答。應(yīng)答是由加密Ka加密的信息,因此只有A才能成功地對這一信息解密,并A相信信息的確是由KDC發(fā)出的。

③A→B:EKb[Ks∥IDA]。A收到KDC響應(yīng)的信息后,同時(shí)將會話密鑰Ks存儲起來,同時(shí)將經(jīng)過KDC與B的共享密鑰加密過的信息傳送給B。B收到后,得到會話密鑰Ks,并從IDA可知對方是A,而且還叢EKb知道Ks確實(shí)來自KDC。由于A轉(zhuǎn)發(fā)的是加密后密文,所以轉(zhuǎn)發(fā)過程不會被竊聽。

④B→A:EKs[N2]。B用會話密鑰加密另一個(gè)隨機(jī)數(shù)N2,并將加密結(jié)果發(fā)送給A,并告訴A,B當(dāng)前是可以通信的。

⑤A→B:EKs[f(N2)]。A響應(yīng)B發(fā)送的信息N2,并對N2進(jìn)行某種函數(shù)變換(如f函數(shù)),同時(shí)用會話密鑰Ks進(jìn)行加密,發(fā)送給B。

實(shí)際上在第③步已經(jīng)完成了密鑰的分配,第④、⑤兩步結(jié)合第③步執(zhí)行的是認(rèn)證功能,使B能夠確認(rèn)所收到的信息不是一個(gè)重放。

2023/3/871(2)分布式密鑰分配方案

分布式密鑰分配方案是指網(wǎng)絡(luò)通信中各個(gè)通信方具有相同的地位,它們之間的密鑰分配取決于它們之間的協(xié)商,不手受何其他方的限制。這種密鑰分配方案要求有n個(gè)通信方的網(wǎng)絡(luò)需要保存[n(n-1)/2]個(gè)主密鑰,對于較大型的網(wǎng)絡(luò),這種方案是不適用的,但是在一個(gè)小型網(wǎng)絡(luò)或一個(gè)大型網(wǎng)絡(luò)的局部范圍內(nèi),這中方案還是有用的。如果采用分布式密鑰分配方案,通信雙方A和B建立會話密鑰的過程包括以下過程(見下頁圖所示):分布式密鑰分配方案

①A→B:IDA∥N1。A向B發(fā)出一個(gè)要求會話密鑰的請求,內(nèi)容包括A的標(biāo)識符IDA和一個(gè)一次性隨機(jī)數(shù)N1,告知A希望與B通信,并請B產(chǎn)生一個(gè)會話密鑰用于安全通信。2023/3/872

①A→B:IDA∥N1。A向B發(fā)出一個(gè)要求會話密鑰的請求,內(nèi)容包括A的標(biāo)識符IDA和一個(gè)一次性隨機(jī)數(shù)N1,告知A希望與B通信,并請B產(chǎn)生一個(gè)會話密鑰用于安全通信。

②B→A:EMKm[Ks∥IDA∥IDB∥f(N1)∥N2]。B使用與A共享的主密鑰MKm對應(yīng)答的信息進(jìn)行加密并發(fā)送給A。應(yīng)答的信息包括B產(chǎn)生的會話密鑰Ks,A的標(biāo)識符IDA、B的標(biāo)識符IDB、f(N1)和一個(gè)一次性隨機(jī)數(shù)N2。

A→B:EKs[f(N2)]。A使用B產(chǎn)生的會話密鑰Ks對f(N2)進(jìn)行加密,并發(fā)送給B。3.非對稱密碼技術(shù)的密鑰分配方案(1)公鑰的分配

非對稱密碼技術(shù)的密鑰分配方案主要包括兩方面的內(nèi)容:非對稱密碼技術(shù)所用的公鑰的分配和利用非對稱密碼技術(shù)來分配對稱密碼技術(shù)中使用的密鑰。

2023/3/873獲取公鑰的途徑有多種,包括公開發(fā)布、公用目錄、公鑰機(jī)構(gòu)和公鑰證書。

①公開發(fā)布:是指用戶將自己的公鑰發(fā)送給另外另外一個(gè)參與者,或者把公鑰廣播給相關(guān)人群。這種方法有一個(gè)非常大的缺點(diǎn):任何人都可以偽造一個(gè)公鑰冒充他人。

②公用目錄:是由一個(gè)可信任的系統(tǒng)或組織建立和管理維護(hù)公用目錄,該公用目錄維持一個(gè)公開動(dòng)態(tài)目錄。公用目錄為每個(gè)參與者維護(hù)一個(gè)目錄項(xiàng){標(biāo)識符,公鑰},每個(gè)目錄項(xiàng)的信息必須進(jìn)行安全認(rèn)證。任何人都可以從這里獲得需要保密通信的公鑰。與公開發(fā)布公鑰相比,這種方法的安全性高一些。但也有一個(gè)致命的弱點(diǎn),如果攻擊者成功地得到目錄管理機(jī)構(gòu)的私鑰,就可以偽造公鑰,并發(fā)送給給其他人達(dá)到欺騙的目的。

③公鑰機(jī)構(gòu):為更嚴(yán)格控制公鑰從目錄分配出去的公鑰更加安全,為此需要引入一個(gè)公鑰管理機(jī)構(gòu)來為各個(gè)用戶建立、維護(hù)和控制動(dòng)態(tài)的公用目錄。與單純的公用目錄相比,該方法的安全性更高。但這種方式也有它的缺點(diǎn):由于每個(gè)用戶要想和其他人通信都需求助于公鑰管理機(jī)構(gòu),因而管理機(jī)構(gòu)可能會成為系統(tǒng)的瓶頸,而且由管理機(jī)構(gòu)維護(hù)的公用目錄也容易被攻擊者攻擊。2023/3/874

④公鑰證書:是在不與公鑰管理機(jī)構(gòu)通信,又能證明其他通信方的公鑰的可信度,實(shí)際上完全解決了公開發(fā)布及公用目錄的安全問題。采用公鑰證書是為了解決公開密鑰管理機(jī)構(gòu)的瓶頸問題。

公鑰證書即數(shù)字證書是由授權(quán)中心CA(CertificateAuthority)頒發(fā)的。證書的形式為CA=ESKCA[T,IDA,PKA],其中IDA是用戶A的身份標(biāo)識符,PKA是A的公鑰,T是當(dāng)前時(shí)間戳,SKCA是CA的私鑰。公鑰證書的發(fā)放(產(chǎn)生)過程如下圖所示

用戶還可以把自己的公鑰通過公鑰證書發(fā)給另一用戶,接收方使用CA的公鑰PKCA對證書加以驗(yàn)證,DPKCA[ESKCA[T,IDA,PKA]]=[T,IDA,PKA]。2023/3/875(2)利用非對稱密碼技術(shù)進(jìn)行對稱密碼技術(shù)密鑰的分配(常用的有以下兩種):

①簡單分配:下圖就是用非對稱密碼技術(shù)建立會話密鑰的過程。但這一分配方案容易遭到主動(dòng)攻擊,假如攻擊者已經(jīng)接入A和B雙方的通信信道,可以輕易地截獲A、B雙方的通信。用非對稱密碼技術(shù)建立會話密鑰

②具有保密和認(rèn)證功能的密鑰分配:針對簡單分配密鑰的缺點(diǎn),人們又設(shè)計(jì)了具有保密和認(rèn)證功能的非對稱密碼技術(shù)的密鑰分配,如下圖所示。密鑰分配過程既具有保密性,又具有認(rèn)證性,因此既可以防止被動(dòng)攻擊,也可以防止主動(dòng)攻擊。具有保密和認(rèn)證功能的密鑰分配

2023/3/8762.4.2密鑰管理技術(shù)密鑰管理涉及密鑰的生成、使用、存儲、備份、恢復(fù)以及銷毀等,涵蓋了密鑰的整個(gè)生存周期。1.密鑰的生成密鑰長度足夠長也是保證保證安全通信的必要條件之一,決定密鑰長度需要考慮多方面的因素:數(shù)據(jù)價(jià)值有多大:數(shù)據(jù)要多長的安全期?攻擊者的資源情況怎樣?應(yīng)該注意到,計(jì)算機(jī)的計(jì)算能力和加密算法的發(fā)展也是密鑰長度的重要因素。密鑰的生成一般與生成的算法有關(guān),大部分密鑰生成算法采用隨機(jī)或偽隨機(jī)過程來產(chǎn)生隨機(jī)密鑰。

溫馨提示

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

最新文檔

評論

0/150

提交評論