《網(wǎng)絡(luò)安全技術(shù)》課件第2章_第1頁
《網(wǎng)絡(luò)安全技術(shù)》課件第2章_第2頁
《網(wǎng)絡(luò)安全技術(shù)》課件第2章_第3頁
《網(wǎng)絡(luò)安全技術(shù)》課件第2章_第4頁
《網(wǎng)絡(luò)安全技術(shù)》課件第2章_第5頁
已閱讀5頁,還剩145頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章密碼技術(shù)2.1密碼學(xué)概述2.2古典密碼2.3分組密碼2.4公鑰密碼體制2.5報文認(rèn)證與數(shù)字簽名2.6密鑰管理與分發(fā)2.7密碼技術(shù)實例習(xí)題

2.1密?碼?學(xué)?概?述

密碼學(xué)(Cryptology)是一門古老的科學(xué)。自古以來,密碼主要用于軍事、政治、外交等重要部門,因而密碼學(xué)的研究工作本身也是秘密進行的。密碼學(xué)的知識和經(jīng)驗主要掌握在軍事、政治、外交等保密機關(guān),不便公開發(fā)表。然而隨著計算機科學(xué)技術(shù)、通信技術(shù)、微電子技術(shù)的發(fā)展,計算機和通信網(wǎng)絡(luò)的應(yīng)用進入了人們的日常生活和工作中,出現(xiàn)了電子政務(wù)、電子商務(wù)、電子金融等必須確保信息安全的系統(tǒng),使得民間和商界對信息安全保密的需求大大增加??偠灾?,在密碼學(xué)形成和發(fā)展的歷程中,科學(xué)技術(shù)的發(fā)展和戰(zhàn)爭的刺激起著積極的推動作用。回顧密碼學(xué)的歷史,應(yīng)用的無窮需求是推動密碼技術(shù)文明和進步的直接動力。在古代,埃及人、希伯來人、亞述人都在實踐中逐步發(fā)明了密碼系統(tǒng)。從某種意義上可以說,戰(zhàn)爭是科學(xué)技術(shù)進步的催化劑。人類自從有了戰(zhàn)爭,就面臨著通信安全的需求。這其中比較著名的是大約公元前440年出現(xiàn)在古希臘戰(zhàn)爭中的隱寫術(shù)。當(dāng)時為了安全傳送軍事情報,奴隸主剃光奴隸的頭發(fā),將情報寫在奴隸的光頭上,待頭發(fā)長長后將奴隸送到另一個部落,再次剃光頭發(fā),原有的信息復(fù)現(xiàn)出來,從而實現(xiàn)這兩個部落之間的秘密通信。嚴(yán)格上說,這只是對信息的隱藏,而不是真正意義上的加密。自從有了文字以來,人們?yōu)榱四撤N需要總是想方設(shè)法隱藏某些信息,以起到保證信息安全的目的。這些古代加密方法體現(xiàn)了后來發(fā)展起來的密碼學(xué)的若干要素,但只能限制在一定范圍內(nèi)使用。古典密碼的加密方法一般是文字置換,使用手工或機械變換的方式實現(xiàn)。古典密碼系統(tǒng)已經(jīng)初步體現(xiàn)出近代密碼系統(tǒng)的雛形,加密方法逐漸復(fù)雜。雖然從近代密碼學(xué)的觀點來看,許多古典密碼是不安全的,極易破譯,但我們不應(yīng)當(dāng)忘掉古典密碼在歷史上發(fā)揮的巨大作用。古典密碼的代表性密碼體制主要有:單表代替密碼、多表代替密碼及轉(zhuǎn)輪密碼。Caser密碼是一種典型的單表加密體制;Vigenere密碼是典型的多表代替密碼;而著名的Enigma密碼就是第二次世界大戰(zhàn)中使用的轉(zhuǎn)輪密碼。密碼技術(shù)形成一門新的學(xué)科是在20世紀(jì)70年代,這是受計算機科學(xué)蓬勃發(fā)展和推動的結(jié)果。密碼學(xué)的理論基礎(chǔ)之一是1949年ClaudeShannon發(fā)表的“保密系統(tǒng)的通信理論”(TheCommunicationTheoryofSecrecySystems),

這篇文章發(fā)表了30年后才顯示出它的價值。1976年W.Diffie和M.Hellman發(fā)表了“密碼學(xué)的新方向”(NewDirectioninCryptography)一文,提出了適應(yīng)網(wǎng)絡(luò)保密通信的公鑰密碼思想,開辟了公開密鑰密碼學(xué)的新領(lǐng)域,掀起了公鑰密碼研究的序幕。各種公鑰密碼體制被提出,特別是1978年RSA公鑰密碼體制的出現(xiàn),在密碼學(xué)史上是一個里程碑。同年,美國國家標(biāo)準(zhǔn)局正式公布實施了美國的數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard,DES),宣布了近代密碼學(xué)的開始。2001年美國聯(lián)邦政府頒布高級加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)。隨著其他技術(shù)的發(fā)展,一些具有潛在密碼應(yīng)用價值的技術(shù)也逐漸得到了密碼學(xué)家極大的重視并加以應(yīng)用,出現(xiàn)了一些新的密碼技術(shù),如混沌密碼、量子密碼等,這些新的密碼技術(shù)正在逐步地走向?qū)嵱没?.1.1密碼體制

研究各種加密方案的科學(xué)稱為密碼編碼學(xué)(Cryptography),而研究密碼破譯的科學(xué)稱為密碼分析學(xué)(Cryptanalysis)。密碼學(xué)(Cryptology)作為數(shù)學(xué)的一個分支,是密碼編碼學(xué)和密碼分析學(xué)的統(tǒng)稱,其基本思想是對信息進行一系列的處理,使未受權(quán)者不能獲得其中的真實含義。

一個密碼系統(tǒng),也稱為密碼體制(Cryptosystem),有五個基本組成部分,如圖2.1所示。圖2.1密碼系統(tǒng)模型明文:是加密輸入的原始信息,通常用m表示。全體明文的集合稱為明文空間,通常用M表示。

密文:是明文經(jīng)加密變換后的結(jié)果,通常用c表示。全體密文的集合稱為密文空間,通常用C表示。

密鑰:是參與信息變換的參數(shù),通常用k表示。全體密鑰的集合稱為密鑰空間,通常用K表示。

加密算法:是將明文變換為密文的變換函數(shù),即發(fā)送者加密消息時所采用的一組規(guī)則,通常用E表示。

解密算法:是將密文變換為明文的變換函數(shù),即接收者加密消息時所采用的一組規(guī)則,通常用D表示。加密:是將明文M用加密算法E在加密密鑰Ke的控制下變成密文C的過程,表示為C?=?EKe?=?(M)。

解密:是將密文C用解密算法D在解密密鑰Kd的控制下恢復(fù)為明文M的過程,表示為M?=?DKd(D),并且要求M?=?DKd(EKe(M)),即用加密算法得到的密文用一定的解密算法總是能夠恢復(fù)成為原始的明文。

對稱密碼體制:當(dāng)加密密鑰Ke與解密密鑰Kd是同一把密鑰,或者能夠相互較容易地推導(dǎo)出來時,該密碼體制被稱為對稱密碼體制。非對稱密碼體制:當(dāng)加密密鑰Ke與解密密鑰Kd不是同一把密鑰,且解密密鑰不能根據(jù)加密密鑰計算出來(至少在假定合理的長時間內(nèi))時,該密碼體制被稱為非對稱密碼體制。

在密碼學(xué)中通常假定加密和解密算法是公開的,密碼系統(tǒng)的安全性只系于密鑰的安全性,這就要求加密算法本身要非常安全。如果提供了無窮的計算資源,依然無法被攻破,則稱這種密碼體制是無條件安全的。除了一次一密之外,無條件安全是不存在的,因此密碼系統(tǒng)用戶所要做的就是盡量滿足以下條件:

(1)破譯密碼的成本超過密文信息的價值。

(2)破譯密碼的時間超過密文信息有用的生命周期。

如果滿足上述兩個條件之一,則密碼系統(tǒng)可認(rèn)為實際上是安全的。2.1.2密碼分類

加密技術(shù)除了隱寫術(shù)以外可以分為古典密碼和現(xiàn)代密碼兩大類。古典密碼一般是以單個字母為作用對象的加密法,具有久遠(yuǎn)的歷史;而現(xiàn)代密碼則是以明文的二元表示作為作用對象,具備更多的實際應(yīng)用?,F(xiàn)將常用密碼算法按照古典密碼與現(xiàn)代密碼歸納如圖2.2所示。圖2.2加密法分類圖

2.2古典密碼

常用的古典密碼可以分為替代密碼和換位密碼兩大類。替代密碼(SubstitutionCipher)是發(fā)送者將明文中的每一個字符用另外一個字符來替換,生成密文發(fā)送,接收者對密文進行逆替換恢復(fù)出明文。換位密碼是將明文中的字母不變而位置改變的密碼,也稱為置換密碼。2.2.1替代密碼

在古典密碼學(xué)中,替代密碼以下四種類型:

簡單替代密碼(simplesubstitutioncipher);

多明碼替代密碼(homophonicsubstitutioncipher);

多字母替代密碼(polygramsubstitutioncipher);

多表替代密碼(polyalphabeticsubstitutioncipher)。

其中,最常用的古典密碼是簡單替代密碼和多表替代密碼。

1.簡單替代密碼(simplesubstitutioncipher)

簡單替代密碼又稱為單表替代密碼或單字母密碼(monalphabeticcipher),是指一個明文字符用相應(yīng)的唯一一個密文字符替代的密碼。如打亂字母的排列次序構(gòu)成與明文對應(yīng)的密碼表,或者采用密鑰詞組來推導(dǎo)密碼表。

移位密碼是簡單替代密碼中的一種,其替代規(guī)則是明文字母被字母表中排在該字母后面的第K個字母所替代,即明文字母表向左循環(huán)移位K位,Z的字母后面是A。當(dāng)K?=?3時,就是最早的替代密碼——愷撒密碼(CaesarCipher)。移位密碼算法可以表示如下:

設(shè)明文字母為m,則加密算法c=E(m)=(m+k)mod26,解密算法m=D(c)=(c-m)mod26,其中M={A,B,C,…,Z},C={A,B,C,

…,Z},K

=

{0,1,2,…,25}。

【例2.1】已知移位密碼的密鑰K

=

5,明文M

=

CLASSROOM,求密文C

=

?

解1:首先建立英文字母和模26的剩余0~25之間的對應(yīng)關(guān)系,如圖2.3所示。圖2.3字母數(shù)值表利用圖2.3可查到CLASSROOM對應(yīng)的整數(shù)為2,11,0,18,18,17,14,14,12。

利用公式c=E(m)=(m+5)mod26可計算出值為7,16,5,23,23,22,19,19,17。

再利用圖2.3查到算式值對應(yīng)的字母分別為H,Q,F(xiàn),N,N,W,T,T,R。

因此明文CLASSROOM對應(yīng)的密文為HQFNNMTTR。

解2:利用循環(huán)移位密碼的概念使字母表向左循環(huán)移位5位,生成的密碼表如圖2.4所示。圖2.4循環(huán)移位密碼表由圖2.4可查到明文CLASSROOM對應(yīng)的密文為HQFXXWTTR。

移位密碼僅有25個可能的密鑰,用強行攻擊密碼分析直接對所有25個可能的密鑰進行嘗試即能破解,因此非常不安全。如果允許字母能夠任意替代則可以使密鑰空間變大,消除強行攻擊密碼分析的可能性,如采用密鑰詞組單字母密碼(KeywordCipher)。

在密鑰詞組的單字母密碼替代算法中,密文字母序列為先按序?qū)懴旅荑€詞組,去除該序列中已出現(xiàn)的字母,再依次寫下字母表中剩余的字母構(gòu)成密碼表。

【例2.2】已知密鑰詞組的單字母密碼替代算法的密鑰K

=

CLASSISOVER,明文M

=

BOOKSTOR,求密文C?=??

解:按照密鑰詞組的單字母替代算法生成密碼表如圖2.5所示。圖2.5密鑰詞組單字母替代密碼表查密碼表得明文BOOKSTOR對應(yīng)的密文為LJJFQTJP。

密鑰詞組的單字母密碼雖然比移位密碼更安全一些,但由于它和移位密碼一樣,都是明文字母與密文字母一一對應(yīng)的,因此,利用語言的規(guī)律性,采用頻率分析的方法仍能對密文進行破解。為了對抗頻率分析,可以對單個字母提供多種替代,即一個明文字母可以對應(yīng)多個密文字母,如果分配給每個字母的替代字母數(shù)正比于該字母的相對頻率,則單字母頻率信息會完全被淹沒,如多表替代密碼。

2.多表替代密碼(polyalphabeticsubstitutioncipher)

多表替代密碼是由多個簡單替代密碼組成的密碼算法。?Vigenere密碼是一種典型的多表替代密碼,其密碼表是以字母表移位為基礎(chǔ),把26個英文字母進行循環(huán)移位,排列在一起,形成26?×?26的方陣,如圖2.6所示。圖2.6Vigenere密碼表Vigenere密碼算法表示如下。

設(shè)密鑰K?=?k0k1k2…kd,明文M?=?m0m1m2…mn

加密變換:ci=(mi?+?ki)mod26,i?=?0,1,2,…,n

解密變換:mi=(ci-ki)mod26,i?=?0,1,2,…,n

【例2.3】已知Vigenere密碼算法中密鑰K?=?SCREEN,明文M?=?COMPUTER,求密文C?=??。

解1:根據(jù)字母數(shù)值表圖2.3查得明文串的數(shù)值表示為(2,14,12,15,20,19,4,17),密鑰串的數(shù)值表示為(18,2,17,4,4,13),根據(jù)Vigenere密碼算法對明文和密鑰串進行逐字符模26相加:c0

=

(m0

+

k0)mod26

=

(2

+

18)mod26

=

20,對應(yīng)字母表中的字母U;

c1

=

(m1

+

k1)mod26

=

(14

+

2)mod26

=

16,對應(yīng)字母表中的字母Q;

c2

=

(m2

+

k2)mod26

=

(12

+

17)mod26

=

3,對應(yīng)字母表中的字母D;

c7

=

(m7+

k1)mod26

=

(17

+?2)mod26

=?19,對應(yīng)字母表中的字母T。

因此明文COMPUTER加密的密文為UQDTYGWT。解2:將明文與密鑰字符串一一對應(yīng),密鑰不足重復(fù)字符串,如圖2.7所示。

構(gòu)造所需密碼表如圖2.8所示。(注:對于實際計算使用的密碼表并不需要將26?×?26密碼表字符全部列出,由于每一行均為移位密碼的單表構(gòu)成,每一行的首字母與密碼表的行標(biāo)是一致的,所以只要知道密鑰字母(行標(biāo)字母)就可以很方便地列出此行的密碼字符串。因此本題只需列出密鑰字母標(biāo)識的行即可。)圖2.7明文與密鑰對應(yīng)表圖2.8Vigenere密碼表按照明文字母為列,密鑰字母為行,查找密碼表對應(yīng)的字母即為密文字母。如明文C對應(yīng)的密文為C行S列的字母U,明文O對應(yīng)的密文為O行C列的Q,…,最終查到明文COMPUTER對應(yīng)的密文為UQDTYGWT。2.2.2換位密碼

將明文中的字母不變而位置改變的密碼稱為換位密碼,也稱為置換密碼。如,把明文中的字母逆序來寫,然后以固定長度的字母組發(fā)送或記錄。列換位法是最常用的換位密碼,其算法是以一個矩陣按行寫出明文字母,再按列讀出字母序列即為密文串。

【例2.4】已知列換位法密鑰K=SINGLE,明文M=ABOUT

FUNCTION

DISCOVERVERY,求密文C=?

解:根據(jù)密鑰中字母在字母表中出現(xiàn)的次序可確定列號為(635241),將明文按行寫,不足部分以不常用的字母進行填充,本例題以ABC…進行填充,如圖2.9所示。

按照列次序讀出,得到密文序列為FOOREUTSVCBNDEATICEDOCIRBAUNVY。

純換位密碼易于識別,因為它具有與原文字母相同的頻率,但通過多次換位可以使密碼的安全性有較大的改觀。圖2.9列換位法矩陣

2.3分組密碼

現(xiàn)代密碼學(xué)中所出現(xiàn)的密碼體制可分為兩大類:對稱加密體制和非對稱加密體制。對稱加密體制中相應(yīng)采用的就是對稱算法。在大多數(shù)對稱算法中,加密密鑰和解密密鑰是相同的。從基本工作原理來看,古典加密算法最基本的替代和換位工作原理,仍是現(xiàn)代對稱加密算法最重要的核心技術(shù)。對稱算法可分為兩類:序列密碼(StreamCipher)和分組密碼(blockcipher),其中絕大多數(shù)、基于網(wǎng)絡(luò)的對稱密碼應(yīng)用,使用的是分組密碼。與序列密碼每次加密處理數(shù)據(jù)流的一位或一個字節(jié)不同,分組密碼處理的單位是一組明文,即將明文消息編碼后的數(shù)字序列劃分成長為L位的組m,各個長為L的分組分別在密鑰k(密鑰長為t)的控制下變換成與明文組等長的一組密文輸出文字序列c。

分組密碼算法實際上就是在密鑰的控制下,通過某個置換來實現(xiàn)對明文分組的加密變換。為了保證密碼算法的安全強度,對密碼算法的要求如下:

(1)分組長度足夠長;

(2)密鑰量足夠多;

(3)密碼變換足夠復(fù)雜。2.3.1DES

美國國家標(biāo)準(zhǔn)局(NBS)于1973年向社會公開征集一種用于政府機構(gòu)和商業(yè)部門的加密算法,經(jīng)過評測和一段時間的試用,美國政府于1977年頒布了數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard,DES)。DES是分組密碼的典型代表,也是第一個被公布出來的標(biāo)準(zhǔn)算法,曾被美國國家標(biāo)準(zhǔn)局(現(xiàn)為國家標(biāo)準(zhǔn)與技術(shù)研究所NIST)確定為聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPSPUB46),使用廣泛,特別是在金融領(lǐng)域,曾是對稱密碼體制事實上的世界標(biāo)準(zhǔn)。

DES是一種分組密碼,明文、密文和密鑰的分組長度都是64位,并且是面向二進制的密碼算法。DES處理的明文分組長度為64位,密文分組長度也是64位,使用的密鑰長度為56位(實際上函數(shù)要求一個64位的密鑰作為輸入,但其中用到的只有56位,另外8位可以用作奇偶校驗位或者完全隨意設(shè)置)。DES是對合運算,它的解密過程和加密相似,解密時使用與加密同樣的算法,不過子密鑰的使用次序則要與加密相反。DES的整個體制是公開的,系統(tǒng)的安全性完全靠密鑰保密。

DES的整體結(jié)構(gòu)如圖2.10所示。圖2.10DES的整體結(jié)構(gòu)

DES算法的加密過程經(jīng)過了三個階段:

首先,64位的明文在一個初始置換IP后,比特重排產(chǎn)生了經(jīng)過置換的輸入,明文組被分成右半部分和左半部分,每部分32位,以L0和R0表示;第二階段是對同一個函數(shù)進行16輪迭代,稱為乘積變換或函數(shù)f。這個函數(shù)將數(shù)據(jù)和密鑰結(jié)合起來,本身既包含換位又包含替代函數(shù),輸出為64位,其左邊和右邊兩個部分經(jīng)過交換后得到預(yù)輸出。最后階段,預(yù)輸出通過一個逆初始置換IP-1算法就生成了64位的密文結(jié)果。相對應(yīng)的DES的解密過程由于DES的運算是對合運算,所以解密和加密可共用同一個運算,只是子密鑰的使用的順序不同。解密過程可用如下的數(shù)學(xué)公式表示:

DES在總體上應(yīng)該說是極其成功的,但在安全上也有其不足之處。

(1)密鑰太短:IBM原來的Lucifer算法的密鑰長度是128位,而DES采用的是56位,這顯然太短了。1998年7月17日美國EFF(ElectronicFrontierFounation)宣布,他們用一臺價值25萬美元的改裝計算機,只用了56個小時就窮舉出一個DES密鑰。1999年EFF將該窮舉速度提高到24小時。

(2)存在互補對稱性:將密鑰的每一位取反,用原來的密鑰加密已知明文得到密文分組,那么用此密鑰的補密鑰加密此明文的補便可得到密文分組的補。這表明,對DES的選擇明文攻擊僅需要測試一半的密鑰,從而窮舉攻擊的工作量也就減半。

除了上述兩點之外,DES的半公開性也是人們對DES頗有微辭的地方。后來雖然推出了DES的改進算法,如三重DES,即3DES,將密鑰長度增加到112位或168位,增強了安全性,但效率較低。2.3.2AES

高級加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)作為傳統(tǒng)對稱加密標(biāo)準(zhǔn)DES的替代者,于2001年正式發(fā)布為美國國家標(biāo)準(zhǔn)(FISTPUBS197)。

AES采用的Rijndael算法是一個迭代分組密碼,其分組長度和密鑰長度都是可變的,只是為了滿足AES的要求才限定處理的分組大小為128位,而密鑰長度為128位、192位或256位,相應(yīng)的迭代輪數(shù)N為10輪、12輪、14輪。Rijndael匯聚了安全性能、效率、可實現(xiàn)性和靈活性等優(yōu)點,其最大的優(yōu)點是可以給出算法的最佳差分特征的概率,并分析算法抵抗差分密碼分析及線性密碼分析的能力。Rijndael對內(nèi)存的需求非常低且操作簡單,也使它很適合用于受限制的環(huán)境中,并可抵御強大和實時的攻擊。在安全性方面,Rijndael加密、解密算法不存在像DES里出現(xiàn)的弱密鑰,因此在加密、解密過程中,對密鑰的選擇就沒有任何限制;并且根據(jù)目前的分析,Rijndael算法能有效抵抗現(xiàn)有已知的攻擊。

除了前面介紹的分組密碼外,還有其他很多的分組密碼,比如RC系列分組密碼(包括RC2、RC5、RC6等),CLIPPER密碼,SKIPJACK算法,IDEA密碼等。國際上目前公開的分組密碼不下100種,在此不一一介紹。

2.4公鑰密碼體制

公鑰密碼學(xué)與其之前的密碼學(xué)完全不同。首先,公鑰密碼算法基于數(shù)學(xué)函數(shù)而不是之前的替代和置換。其次,公鑰密碼學(xué)是非對稱的,它使用兩個獨立的密鑰。公鑰密碼學(xué)在消息的保密性、密鑰分配和認(rèn)證領(lǐng)域都有著極其重要的意義。公開密鑰密碼的基本思想是將傳統(tǒng)密碼的密鑰k一分為二,分為加密鑰Ke和解密鑰Kd,用加密鑰Ke控制加密,用解密鑰Kd控制解密,而且在計算上確保由加密鑰Ke不能推出解密鑰Kd。這樣,即使是將Ke公開也不會暴露Kd,從而不會損害密碼的安全。于是可對Kd保密,而對Ke進行公開,從而在根本上解決了傳統(tǒng)密碼在密鑰分配上所遇到的問題。為了區(qū)分常規(guī)加密和公開密鑰加密兩個體制,一般將常規(guī)加密中使用的密鑰稱為秘密密鑰(SecretKey),用Ks表示。公開密鑰加密中使用的能夠公開的加密密鑰Ke稱為公開密鑰(PublicKey),用KU表示,加密中使用的保密的解密密鑰Kd被稱為私有密鑰(PrivateKey),用KR表示。根據(jù)公開密鑰密碼的基本思想,可知一個公開密鑰密碼應(yīng)當(dāng)滿足以下三個條件:

(1)解密算法D與加密算法E互逆,即對所有明文M都有DKR(EKU(M))?=?M;

(2)在計算上不能由KU推出KR;

(3)算法E和D都是高效的。

滿足了以上三個條件,便可構(gòu)成一個公開密鑰密碼,這個密碼可以確保數(shù)據(jù)的秘密性。進而,如果還要求確保數(shù)據(jù)的真實性,則還應(yīng)滿足第四個條件。即:

對于所有明文M都有EKU(DKR(M))?=?M。如果同時滿足以上四個條件,則公開密鑰密碼可以同時確保數(shù)據(jù)的秘密性和真實性。此時,對于所有的明文M都有DKR(EKU(M))?=?EKU(DKR(M))?=?M。

公開密鑰密碼從根本上克服了傳統(tǒng)密碼在密鑰分配上的困難,利用公開密鑰密碼進行保密通信需要成立一個密鑰管理機構(gòu)(KMC),每個用戶都將自己的姓名、地址和公開的加密密鑰等信息在KMC登記注冊,將公鑰記入共享的公開密鑰數(shù)據(jù)庫PKDB中。KMC負(fù)責(zé)密鑰的管理,并且得到用戶的信賴。這樣,用戶利用公開密鑰密碼進行保密通信就像查電話號碼簿打電話一樣方便,無須按約定持有相同的密鑰,因此特別適合計算機網(wǎng)絡(luò)應(yīng)用。2.4.1RSA

RSA公鑰算法是由美國麻省理工學(xué)院(MIT)的Rivest,Shamir和Adleman在1978年提出的,其算法的數(shù)學(xué)基礎(chǔ)是初等數(shù)論的Euler定理,其安全性建立在大整數(shù)因子分解的困難性之上。

RSA密碼體制的明文空間M?=?密文空間C?=?Zn整數(shù),其算法描述如下:

(1)密鑰的生成:首先,選擇兩個互異的大素數(shù)p和q(保密),計算n?=?pq(公開),φ(n)?=?(p-1)(q-1)(保密),選擇一個隨機整數(shù)e(0<e<φ(n)),滿足gcd(e,φ(n))?=?1(公開)。計算d?=?e-1modφ(n)(保密)。確定:公鑰Ke?=?{e,n},私鑰Kd={d,p,q},即{d,n};

(2)加密:C?=?Memodn;

(3)解密:M?=?Cdmodn。

【例2.5】p?=?17,q?=?11,e?=?7,M?=?88,使用RSA算法計算密文C?=??

(1)選擇素數(shù)p?=?17,q?=?11;

(2)計算n?=?pq?=?17*11?=?187;

(3)計算

(n)?=?(p-1)(q-1)?=?16*10?=?160;

(4)選擇e?=?7,滿足0?<?e?<?160,且gcd(7,160)?=?1;

(5)計算d,因為d?=?e-1modφ(n),即ed?

?1mod

(n),選擇d?=?23。因為23*7?=?1*160?+?1;

(6)公鑰Ke?=?

e,n

?=?

7,187

,私鑰Kd?=?{d,n}?=?{23,187};

(7)計算密文C?=?Memodn?=?887mod187?=?11。(解密M?=?1123mod187?=?88)由于RSA密碼安全、易懂,既可用于加密,又可用于數(shù)字簽名,因此RSA方案是唯一被廣泛接受并實現(xiàn)的通用公開密鑰密碼算法,許多國家標(biāo)準(zhǔn)化組織,如ISO,ITU和SWIFT等都已接受RSA作為標(biāo)準(zhǔn)。Internet網(wǎng)的E-mail保密系統(tǒng)PGP(PrettyGoodPrivacy)以及國際VISA和MASTER組織的電子商務(wù)協(xié)議(SecureElectronicTransaction,SET協(xié)議)中都將RSA密碼作為傳送會話密鑰和數(shù)字簽名的標(biāo)準(zhǔn)。2.4.2ElGamal和ECC

ElGamal密碼是除了RSA密碼之外最有代表性的公開密鑰密碼。ElGamal密碼建立在離散對數(shù)的困難性之上。由于離散對數(shù)問題具有較好的單向性,所以離散對數(shù)問題在公鑰密碼學(xué)中得到廣泛應(yīng)用。除了ElGamal密碼外,Diffie-Hellman密鑰分配協(xié)議和美國數(shù)字簽名標(biāo)準(zhǔn)算法DSA等也都是建立在離散對數(shù)問題之上的。ElGamal密碼改進了Diffie和Hellman的基于離散對數(shù)的密鑰分配協(xié)議,提出了基于離散對數(shù)的公開密鑰密碼和數(shù)字簽名體制。由于ElGamal密碼的安全性建立在GF(p)離散對數(shù)的困難性之上,而目前尚無求解GF(p)離散對數(shù)的有效算法,所以p足夠大時ElGamal密碼是很安全的。橢圓曲線密碼體制(EllipticCurveCryptography,ECC)通過由“元素”和“組合規(guī)則”來組成群的構(gòu)造方式,使得群上的離散對數(shù)密碼較RSA密碼體制而言能更好地對抗密鑰長度的攻擊,使用橢圓曲線公鑰密碼的身份加密系統(tǒng)能夠較好地抵御攻擊,是基于身份加密的公鑰密碼學(xué)在理論上較為成熟的體現(xiàn)。由于橢圓曲線密碼學(xué)較難,故我們在這里不詳細(xì)介紹。2.4.3公鑰密碼體制應(yīng)用

大體上說,可以將公開密鑰密碼系統(tǒng)的應(yīng)用分為如下三類。

1.機密性的實現(xiàn)

發(fā)送方用接收方的公開密鑰加密報文,接收方用自己相應(yīng)的私鑰來解密,如圖2.11所示。圖2.11公開密鑰算法加密過程發(fā)送者A發(fā)送的信息用接收者B的公鑰KUB進行加密,只有擁有與公鑰匹配的私鑰KRB的接收者B才能對加密的信息進行解密,而其他攻擊者由于并不知道KRB,因此不能對加密信息進行有效解密。此加密過程保證了信息傳輸?shù)臋C密性。

2.數(shù)字簽名

數(shù)字簽名是證明發(fā)送者身份的信息安全技術(shù)。在公開密鑰加密算法中,發(fā)送方用自己的私鑰“簽署”報文(即用自己的私鑰加密),接收方用發(fā)送方配對的公開密鑰來解密以實現(xiàn)認(rèn)證。如圖2.12所示。

發(fā)送者A用自己的私鑰KRA對信息進行加密(即簽名),接收者用與KRA匹配的公鑰KUA進行解密(即驗證)。因為只有KUA才能對KRA進行解密,而發(fā)送者A是KRA的唯一擁有者,因此可以斷定A是信息的唯一發(fā)送者。此過程保證了信息的不可否認(rèn)性。圖2.12公開密鑰算法數(shù)字簽名過程

3.密鑰交換

密鑰交換即發(fā)送方和接收方基于公鑰密碼系統(tǒng)交換會話密鑰。這種應(yīng)用也稱為混合密碼系統(tǒng),可以通過用常規(guī)密碼體制加密需要保密傳輸?shù)南⒈旧?,然后用公鑰密碼體制加密常規(guī)密碼體制中使用的會話密鑰,充分利用對稱密碼體制在處理速度上的優(yōu)勢和非對稱密碼體制在密鑰分發(fā)和管理方面的優(yōu)勢,從而使效率大大提高,如圖2.13所示。圖2.13公開密鑰算法交換會話密鑰過程發(fā)送者A發(fā)送明文用常規(guī)加密算法進行加密,然后把會話密鑰KS用接收者的公鑰KUB加密并與密文一起發(fā)送出去。接收者收到信息后先對信息進行分離,將加密密鑰用自己的私鑰KRB進行解密得到會話密鑰KS,然后再用KS對密文進行解密恢復(fù)出明文。

2.5報文認(rèn)證與數(shù)字簽名

2.5.1Hash函數(shù)

1.Hash函數(shù)的特性

Hash函數(shù)也被稱為哈希函數(shù)或者散列函數(shù)。它是一種單項密碼體制,即它是一個從明文到密文的不可逆映射,能夠?qū)⑷我忾L度的消息M轉(zhuǎn)換成固定長度的輸出H(M)。

Hash函數(shù)除了上述的特點之外,還必須滿足以下三個性質(zhì):

(1)給定M,計算H(M)是容易的。

(2)給定H(M),計算M是困難的。

(3)給定M,要找到不同的消息M’,使得H(M)=H(M’)是困難的。實際上,只要M和M’略有差別,它們的散列值就會有很大不同,而且即使修改M中的一個比特,也會使輸出的比特串中大約一半的比特發(fā)生變化,即具有雪崩效應(yīng)。(注:不同的兩個消息M和M’使得H(M)?=?H(M’)是存在的,即發(fā)生了碰撞,但按要求找到一個碰撞是困難的,因此,Hash函數(shù)仍可以較放心地使用。)

2.Hash函數(shù)的算法

單項散列函數(shù)的算法有很多種,如Snefru算法、N-Hash算法、MD2算法、MD4算法、MD5算法、SHA-1算法等,常用的有MD5算法和SHA-1算法。

(1)?MD5算法:MD表示信息摘要(MessageDigest)。MD4是RonRivest設(shè)計的單向散列算法,其公布后由于有人分析出算法的前兩輪存在差分密碼攻擊的可能,因而Rivest對其進行了修改,產(chǎn)生了MD5算法。MD5算法將輸入文本劃分成512bit的分組,每一個分組又劃分為16個32bit的子分組,輸出由4個32bit的分組級聯(lián)成一個128bit的散列值。

(2)安全散列算法(SHA):由美國國家標(biāo)準(zhǔn)和技術(shù)協(xié)會(NIST)提出,在1993年公布并作為聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPSPUB180),之后在1995年發(fā)布了修訂版FIPSPUB180,通常稱之為SHA-1。SHA是基于MD4算法的,在設(shè)計上很大程度是模仿MD4的。SHA-1算法將輸入長度最大不超過264bit的報文劃分成512bit的分組,產(chǎn)生一個160bit的輸出。由于MD5與SHA-1都是由MD4導(dǎo)出的,因此兩者在算法、強度和其他特性上都很相似。它們之間最顯著和最重要的區(qū)別是SHA-1的輸出值比MD5的輸出值長32bit,因此SHA-1對強行攻擊有更大的強度。其次,MD5算法的公開,使它的設(shè)計容易受到密碼分析的攻擊,而有關(guān)SHA-1的設(shè)計標(biāo)準(zhǔn)幾乎沒有公開過,因此很難判定它的強度。另外,在相同硬件條件下,由于SHA-1運算步驟多且要處理160bit的緩存,因此比MD5僅處理128bit緩存速度要慢。SHA-1與MD5兩個算法的共同點是算法描述簡單、易于實現(xiàn),并且無須冗長的程序或很大的替代表。2.5.2報文認(rèn)證

報文認(rèn)證是證實收到的報文來自于可信的源點并未被篡改的過程。常用的報文認(rèn)證函數(shù)包括報文加密、散列函數(shù)和報文認(rèn)證碼MAC三種類型。

1.報文加密

報文加密是用整個報文的密文作為報文的認(rèn)證符。發(fā)送者A唯一擁有密鑰K,如果密文被正確恢復(fù),則B可以知道收到的內(nèi)容沒有經(jīng)過任何改動,因為不知道K的第三方想要根據(jù)他所期望的明文來造出能夠被B恢復(fù)的密文是非常困難的。因此對報文進行加密既能保證報文的機密性,又能認(rèn)證報文的完整性。報文加密認(rèn)證過程如圖2.14所示。圖2.14報文加密認(rèn)證過程

2.散列函數(shù)

散列函數(shù)是一個將任意長度的報文映射為定長的散列值的公共函數(shù),并以散列值作為認(rèn)證碼。發(fā)送者首先計算要發(fā)送的報文M的散列函數(shù)值H(M),然后將其與報文一起發(fā)給B,接收者對收到的報文M’計算新的散列函數(shù)值H(M’)并與收到的H(M)值進行比較,如果兩者相同則證明信息在傳送過程中沒有遭到篡改。用散列函數(shù)進行認(rèn)證的過程如圖2.15所示。圖2.15散列函數(shù)認(rèn)證過程

3.報文認(rèn)證碼(MessageAuthenticationCode,MAC)

報文認(rèn)證碼(MAC)是以一個報文的公共函數(shù)和用作產(chǎn)生一個定長值的密鑰的認(rèn)證符。它使用一個密鑰產(chǎn)生一個短小的定長數(shù)據(jù)分組,即報文認(rèn)證碼MAC,并把它附加在報文中。發(fā)送者A用明文M和密鑰K計算要發(fā)送的報文的函數(shù)值CK(M),即MAC值并將其與報文一起發(fā)給B,接收者用收到的報文M和與A共有的密鑰K計算新的MAC值并與收到的MAC值進行比較。如果兩者相同則證明信息在傳送過程中沒有遭到篡改。用MAC進行認(rèn)證的過程如圖2.16所示。圖2.16MAC認(rèn)證過程基于對稱分組密碼(如DES)是構(gòu)建MAC最常用的方法,但由于散列函數(shù)(如MD5和SHA-1)的軟件執(zhí)行速度比分組密碼快、庫函數(shù)容易獲得以及受美國等國家的出口限制等原因,MAC的構(gòu)建逐步轉(zhuǎn)向由散列函數(shù)導(dǎo)出。由于散列函數(shù)(如MD5)并不是專門為MAC設(shè)計的,不能直接用于產(chǎn)生MAC,因此提出了將一個密鑰與現(xiàn)有散列函數(shù)結(jié)合起來的算法,其中最有代表性的是HMAC(RFC2104)。HMAC已經(jīng)作為IP安全中強制執(zhí)行的MAC,并且也被如SSL等其他的Internet協(xié)議所使用。2.5.3數(shù)字簽名

數(shù)字簽名與手寫簽名一樣,不僅要能證明消息發(fā)送者的身份,還要能與發(fā)送的信息相關(guān)。它必須能證實作者身份和簽名的日期和時間,必須能對報文內(nèi)容進行認(rèn)證,并且還必須能被第三方證實以便解決爭端。其實質(zhì)就是簽名者用自己獨有的密碼信息對報文進行處理,接收方能夠認(rèn)定發(fā)送者唯一的身份,如果雙方對身份認(rèn)證有爭議則可由第三方(仲裁機構(gòu))根據(jù)報文的簽名來裁決報文是否確實由發(fā)送方發(fā)出,以保證信息的不可抵賴性,而對報文的內(nèi)容以及簽名的時間和日期進行認(rèn)證是防止數(shù)字簽名被偽造和重用。常用的數(shù)字簽名采用公開密鑰加密算法來實現(xiàn),如采用RSA、ElGamal簽名來實現(xiàn)。在圖2.12中已經(jīng)演示了發(fā)送者用自己的私鑰對報文進行簽名,接收者用發(fā)送者的公鑰進行認(rèn)證的過程。但由于直接用私鑰對報文進行加密不能保證信息的完整性,因此,必須和散列函數(shù)結(jié)合來實現(xiàn)真正實用的數(shù)字簽名。如圖2.17所示。圖2.17公開密鑰算法數(shù)字簽名發(fā)送者用自己的私鑰對信息的Hash值進行加密,然后與明文進行拼接發(fā)送出去。接收者一方面對收到的明文信息重新計算出Hash值,一方面對簽名信息用發(fā)送方的公鑰進行驗證,得到的Hash值與重新計算的Hash值進行比較,如果相一致,則說明信息沒有被篡改。這種方法的優(yōu)點在于保證了發(fā)送者真實身份的同時還保證了信息的完整性,滿足了數(shù)字簽名的要求;不足之處是由于數(shù)字簽名并不對明文信息進行處理,因此不能保證信息的機密性,但可以在簽名之后再對信息用接收方的公鑰進行加密,接收方收到信息后用自己的私鑰進行解密,再驗證數(shù)字簽名以及信息的完整性,如圖2.18所示。圖2.18帶數(shù)字簽名信息的秘密通信數(shù)字簽名的另一種算法是使用仲裁機構(gòu)進行簽名。如采用常規(guī)加密算法與仲裁機構(gòu)相結(jié)合實現(xiàn)數(shù)字簽名。假設(shè)發(fā)送者A與接收者B用密鑰KAB進行通信,仲裁者為C,發(fā)送者A與仲裁者C之間共享密鑰KAC,接收者B與仲裁者C之間共享密鑰KBC,簽名過程如圖2.19所示。

采用第三方仲裁結(jié)構(gòu)進行數(shù)字簽名的方法歸納如圖2.20所示。圖2.19常規(guī)加密算法與仲裁機構(gòu)相結(jié)合的數(shù)字簽名圖2.20采用仲裁者數(shù)字簽名過程歸納

(1)常規(guī)加密且仲裁者C能看見明文:發(fā)送者A將發(fā)送的明文和簽名信息SA(M)用密鑰KAC加密后發(fā)送給仲裁者C,C對信息進行解密,恢復(fù)出明文M,對A的簽名信息SA(M)進行認(rèn)證,確認(rèn)正確后將明文信息和簽名信息以及時間戳T用與接收者B共享的密鑰KBC加密后,發(fā)送給接收者B。由于接收者B完全信任仲裁者C,因此可以確信它發(fā)過來的信息就是發(fā)送者A發(fā)的信息。其中發(fā)送者A的簽名信息SA(M)由A的標(biāo)識符IDA和明文的散列函數(shù)值H(M)組成。

(2)常規(guī)加密且仲裁者C不能看見明文:如果不想被仲裁者C看到發(fā)送者A發(fā)出的明文,則可用發(fā)送者A和接收者B之間的共享密鑰KAB對明文進行加密,與簽名信息一起發(fā)出。仲裁者C只能對發(fā)送者A的簽名進行認(rèn)證,但不能解密密文。只有接收者B能夠?qū)χ俨谜逤轉(zhuǎn)發(fā)的信息進行兩次解密,得到明文。

(3)公開密鑰加密且仲裁者C不能看見明文:發(fā)送者A用自己的私鑰KRA對信息進行簽名,然后用接收者B的公鑰KUB進行加密,再用私鑰KRA對所有信息進行簽名。仲裁者C收到信息后用發(fā)送者A的公鑰KUA進行認(rèn)證,然后用自己的私鑰KRC對信息進行簽名并轉(zhuǎn)發(fā)給接收者B。接收者B收到信息后通過仲裁者C的公鑰KUC進行簽名認(rèn)證,確認(rèn)發(fā)送者A的密鑰是有效的,再用A的公鑰KUA對信息進行解密恢復(fù)出明文。

2.6密鑰管理與分發(fā)

密鑰管理負(fù)責(zé)密鑰從產(chǎn)生到最終銷毀的整個過程,包括密鑰的生成、存儲、分配、使用、備份/恢復(fù)、更新、撤銷和銷毀等,是提供機密性、完整性和數(shù)字簽名等密碼安全技術(shù)的基礎(chǔ)。

密鑰的分發(fā)是保密通信中的一方生成并選擇密鑰,然后把該密鑰發(fā)送給參與通信的其他一方或多方的機制,一般分為秘密密鑰分發(fā)和公開密鑰分發(fā)兩大類。

1.秘密密鑰分發(fā)

秘密密鑰的分發(fā)一般使用一個大家都信任的密鑰分發(fā)中心(KeyDistributionCenter,KDC),每一通信方與KDC共享一個密鑰。其交換方式有如下兩種。

(1)秘密密鑰交換方式一,如圖2.21所示。

①發(fā)送者A隨機生成會話密鑰KS,然后將KS和要通信的對象信息B用A與KDC之間的共享密鑰KA-KDC加密后發(fā)送給KDC。

②KDC將收到的信息解密后得到會話密鑰KS,將此密鑰和信息發(fā)送者A的身份信息用B和KDC之間共享的密鑰KB-KDC加密后發(fā)送給接收者B。圖2.21秘密密鑰交換方式一③B收到加密信息后進行解密,得到用KS與A通信的信息。

④發(fā)送者A與接收者B之間用會話密鑰KS進行信息的秘密傳輸。

(2)秘密密鑰交換方式二,如圖2.22所示。

①發(fā)送者A將要與B通信的請求發(fā)送給KDC。

②?KDC隨機生成會話密鑰KAB,并將B的身份信息用A與KDC之間的共享密鑰KA-KDC加密后一起發(fā)送給A;同時將會話密鑰KAB與B的身份信息用B與KDC之間的共享密鑰KB-KDC加密后發(fā)送給B。

③發(fā)送者A與接收者B分別對收到的KDC加密信息進行解密,得到通信另一方的信息和會話密鑰KAB。

④發(fā)送者A與接收者B用會話密鑰KS進行信息的加密傳輸。圖2.22秘密密鑰交換方式二

2.公開密鑰分發(fā)

公開密鑰分發(fā)方法有四種:

(1)通過直接將密鑰發(fā)送給通信的另一方或者通過廣播的方式將公鑰發(fā)送給通信的其他方。

(2)建立一個可動態(tài)訪問的公鑰目錄(存放公鑰信息的數(shù)據(jù)庫服務(wù)器),使通信的各方可以基于公開渠道訪問公鑰目錄來獲取密鑰。

(3)帶認(rèn)證功能的在線服務(wù)器式公鑰分發(fā)。例如發(fā)送者A向管理員請求接收者B的公鑰,管理員將接收者B的公鑰用自己的私鑰進行簽名,使發(fā)送者A能夠通過管理員的公鑰進行認(rèn)證,從而確認(rèn)接收者B的公鑰是可用的。(4)使用數(shù)字證書進行公鑰分發(fā)。在這個方案中,一般有一個可信的第三方結(jié)構(gòu)——認(rèn)證中心又稱為證書授權(quán)(CertificateAutnority,CA),通信各方均向CA申請證書并信任CA頒發(fā)的證書。證書的內(nèi)容一般包括證書的ID、證書的發(fā)放者、證書的有效期、用戶的名稱、用戶的公鑰以及證書發(fā)放者對證書內(nèi)容的簽名信息。用戶能夠根據(jù)CA的簽名信息來認(rèn)證證書的有效性和合法性,并利用證書中的用戶公鑰對信息進行加密通信。CA負(fù)責(zé)數(shù)字證書的頒發(fā)和管理。

2.7密碼技術(shù)實例

2.7.1CAP軟件應(yīng)用

【實驗背景】

一般的密碼學(xué)實驗要求學(xué)習(xí)者編寫實現(xiàn)加密法或分析工具的程序,但這勢必要占用學(xué)習(xí)者較多的時間去調(diào)試程序,減少真正學(xué)習(xí)密碼學(xué)的時間。加密分析程序CAP是DrRichardSpillman編寫的一款密碼加密與分析的軟件,包含了古典密碼學(xué)和現(xiàn)代密碼學(xué)常用的密碼算法和分析工具。學(xué)習(xí)者可以利用CAP更好地學(xué)習(xí)加密法和密碼分析技術(shù),而不必花費大量的時間調(diào)試程序。CAP的測試版本可以從http://www.cs.plu

.edu/courses/privacy/cap.htm下載。

【實驗?zāi)康摹?/p>

掌握常規(guī)的密碼算法加密和分析技術(shù)。

【實驗條件】

(1)?CAP軟件;

(2)基于Windows的PC機。

【實驗任務(wù)】

(1)利用CAP軟件實現(xiàn)幾種常用密碼加密和解密;

(2)利用CAP軟件對密文進行分析。

【實驗內(nèi)容】

雙擊運行CAP4.exe,出現(xiàn)CAP軟件主界面,如圖2.23所示。圖2.23CAP主界面

1.一般使用過程

先在“Plaintext”中輸入要加密的明文,或在“Ciphertext”中輸入要解密的密文,然后選擇菜單“Ciphers”中的“加密算法”→“輸入密鑰”→“進行加密或解密運算”。相應(yīng)的密文或回復(fù)的明文將分別出現(xiàn)在“Ciphertext”或“Plaintext”中。如果是對密文進行分析,則在“Ciphertext”中輸入要分析的密文后。利用“AnalysisTools”中的分析工具進行分析?,F(xiàn)在以明文M=CryptographicStandards為例,用不同的密碼算法求出相應(yīng)的密文C=??(建議學(xué)習(xí)者以手工運算先計算出密文,再與CAP軟件運算結(jié)果比較,以加強對密碼算法的理解。對于密文進行分析則可使用CAP的分析工具以幫助提高分析效率。另外,由于知道密鑰和密碼算法的解密過程和加密過程一致,即先輸入密文,然后選擇算法及輸入密鑰,解密恢復(fù)出明文,因此不再在每個算法實例中單獨進行演示。)

(1)對于密鑰K=3的簡單移位密碼(愷撒密碼)的加密與解密過程。

在“Plaintext”窗口中輸入字符串“CryptographicStandards”,在菜單中選擇“Ciphers”→“SimpleShift”,輸入移位的個數(shù),即密鑰3,如圖2.24所示。

單擊“Encipher”生成密文,如圖2.25所示。圖2.24簡單移位密碼加密/解密圖2.25加密結(jié)果

(2)對于密鑰K=badge的Vigenere密碼的加密與解密過程。

在菜單中選擇“Ciphers”→“Vigenere”,輸入密鑰“badge”,如圖2.26所示。

單擊“Encipher”,生成密文“drbvxpgugtiifyxbnggves”。

(3)對于密鑰K=badge的列換位法的加密與解密過程。

在菜單中選擇“Ciphers”→“ColumnTransposition”,輸入密鑰“badge”,單擊“SetKey”生成列序號及矩陣,如圖2.27所示。

再單擊“Encipher”生成密文“rginscohadyrcdqtptrqpasaq”。圖2.26Vigenere密碼加密/解密圖2.27列變換密碼加密/解密

2.密文分析

(1)利用移位工具進行分析。

對于移位密碼來說,如果不知道移位位數(shù),即密鑰,就不能對密文進行解密。對此類密文可采取嘗試所有的移位數(shù)對密文進行分析的方法,以確定可能的密鑰。如以移位密碼密文“icbpmvbqkibqwv”為例進行密碼分析。

首先在密文框中輸入密文,然后利用單擊左側(cè)的“AnalusisTools”中的“Shift”→“Run”進行破解,測試1~25位移位密鑰,經(jīng)分析得到明文“authentication”,如圖2.28所示。圖2.28簡單移位密碼分析結(jié)果

(2)采用基本頻率分析工具分析。

可以使用頻率分析工具,選擇“Run”→“Single”即可對密文進行分析,找出26個字母在密文中出現(xiàn)的頻率,然后對照字母頻率表及字母出現(xiàn)的順序ETAONIRSHDLUCMPFYWGBVJKQXZ進行明文替換,直到嘗試找到所有明文與密文對應(yīng)的密碼表。這種方法適合于一對一替換的密碼分析,如移位密碼,關(guān)鍵詞密碼算法等。CAP提供了“Singel”、“Double”、“Triple”三種字母組合的頻率分析,并提供了圖表顯示,如圖2.29所示。圖2.29CAP頻率分析圖表

(3)使用低頻率分析工具對多表替代密碼進行分析。

已知密文:“uhhogwivggiefqwvmwneutkkvfchozjnjyxbtlur

fvhtxvaorcsefgpduogxfsdthdopvesevzsuhhurfshtxcywniteqjmo

gvzeuirtxpdhzismltixhhzlfrwniurdtwniwzieddzevngkvxeqzeoyiuvnoizenphxmogznmmeltxsaqymfnwojuhhxidelbmogvzeuirtgblfapbthyeoifbxiawjsfsqzqbtfnxiertigoxthjnwnigrdsiuhhtxieukgfiyorhswgxjoqieorhpidtwnigrdsiprirehtkkyteu”是采用Vigenere密碼加密,密鑰長度是5,請分析得出明文。單擊CAP左側(cè)分析工具“PolyalphabeticTools”中的“LowFreq”,輸入密鑰可能長度,單擊“Run”,出現(xiàn)頻率分析報告和可能的密鑰,再用可能的密鑰對密文進行解密看是否能夠正確解密出明文,直到找到正確的密鑰為止。密文越長,用頻率分析的效果越好。采用低頻率分析工具對多表替代密碼進行密鑰分析,如圖2.30所示。

(4)?CAP提供了很多實用的密碼分析工具,一般來說,破譯密碼不可能一次成功,往往需要嘗試很多的方法,學(xué)習(xí)者應(yīng)當(dāng)在掌握密碼算法的基礎(chǔ)上進行分析。圖2.30CAP低頻率分析工具2.7.2PGP軟件應(yīng)用

【實驗背景】

PGP(PrettyGoodPrivacy)是由美國的PhilipZimmermann創(chuàng)造的用于保護電子郵件和文件傳輸安全的技術(shù),在學(xué)術(shù)界和技術(shù)界都得到了廣泛的應(yīng)用。PGP的主要特點是使用單向散列算法對郵件/文件內(nèi)容進行簽名以保證郵件/文件內(nèi)容的完整性,使用公鑰和私鑰技術(shù)保證郵件/文件內(nèi)容的機密性和不可否認(rèn)性。PGP不僅提供了程序試用,而且提供了程序源碼,是一款非常好的密碼技術(shù)學(xué)習(xí)和應(yīng)用軟件。

PGP的30天試用版本可以從

下載。(注:由于本實驗中只用到PGP加密/解密和簽名/驗證功能,而此功能是PGP最基本的功能,因此任何一個PGP版本都支持此類功能。本實驗僅以PGP.Desktop9.8為例進行介紹。)

【實驗?zāi)康摹?/p>

通過使用PGP軟件加強對公鑰密碼技術(shù)應(yīng)用的理解和掌握。

【實驗條件】

(1)?PGPDesktop32-982.exe;

(2)基于Windows的PC機2臺,分別為發(fā)送者userA和接收者userB使用。

【實驗任務(wù)】

(1)掌握PGP基本原理;

(2)利用PGP軟件對文件進行加密/解密;

(3)利用PGP軟件對文件進行簽名/驗證。

【實驗內(nèi)容】

1.?PGP基本原理

圖2.31顯示了PGP提供數(shù)字簽名和機密性的操作過程。如果在實際操作中只需要數(shù)字簽名服務(wù),則把加密和解密模塊取消即可;同樣,若只需要機密性服務(wù),則把簽名和認(rèn)證模塊取消即可。

圖2.31PGP原理

1)簽名

發(fā)送者A產(chǎn)生報文M,用單向散列算法(SHA或MD5)生成報文摘要,然后用自己的私鑰KRA,采用RSA或DSS數(shù)字簽名算法對報文摘要進行加密,把計算結(jié)果串接在M的前面。

2)壓縮

默認(rèn)情況下,PGP在簽名之后、加密之前對報文進行壓縮,用Z表示。此方法有利于在電子郵件傳輸和文件存儲時節(jié)約空間,而且由于壓縮過的報文比原始明文冗余更少,密碼分析更加困難,因此也加強了加密的強度。一般在PGP軟件中使用PKZIP算法進行壓縮。

3)加密

發(fā)送者生成128比特的用于作為該報文會話密鑰的隨機數(shù)KS,此會話密鑰采用CAST-128、IDEA或3DES算法對報文進行加密。然后,由于會話密鑰只被使用一次,因此要把會話密鑰和報文綁定在一起傳輸。為了保護此會話密鑰,需要使用接收者的公開密鑰KUB,并采用RSA算法對會話密鑰進行加密后附加到報文的前面。

4)解密

接收者收到發(fā)送者發(fā)來的報文,用自己的私鑰KRA采用RSA算法解密出會話密鑰KS,然后用會話密鑰KS來解密報文。

5)解壓縮

將解密后的報文進行解壓縮Z-1操作,得到壓縮前的報文。

6)認(rèn)證

對解壓縮后的報文進行處理,提取出發(fā)送者用自己的私鑰加密的報文摘要和明文,對前者用發(fā)送者的公鑰KUA來解密得到報文摘要,對后者用相同的散列算法生成新的報文摘要。兩個報文摘要相比較,如果兩者相匹配,則報文被接受。

2.?PGP軟件安裝

以發(fā)送者userA為例,接收者userB安裝相同

(1)在網(wǎng)上取得PGPDesktop32-982.exe并執(zhí)行,出現(xiàn)語言選擇界面,選擇“English”繼續(xù)安裝;

(2)在【LicenseAgreement】界面選擇“Iacceptthelicenseagreement”選項,然后單擊“Next”按鈕繼續(xù)安裝;

(3)在【ReadmeInformation】界面單擊“Next”按鈕繼續(xù)安裝;

(4)在【InstallerInformation】界面單擊“Yes”按鈕重啟系統(tǒng)繼續(xù)安裝;

(5)計算機重新啟動后在系統(tǒng)窗口右下角的工具欄里可以看到一個圖標(biāo),并出現(xiàn)【EnablingPGP】界面,因為是第一次安裝,所以選擇“Yes”按鈕,單擊“Next”按鈕繼續(xù)安裝;

(6)在【LicensingAssistant:EnableLicensedFunctionality】界面輸入相關(guān)信息,單擊“Next”按鈕繼續(xù)安裝;

(7)在【LicensingAssistant:EnterLicense】界面選擇License信息,本實驗選擇“Usewithoutalicenseanddisablemostfunctionality”即安裝沒有License的簡化版的PGP。單擊“下一步”按鈕繼續(xù)安裝。(如果是在PGP網(wǎng)站上填寫信息下載PGP,則網(wǎng)站會發(fā)送LicenseKey到注冊郵箱中,這時選擇“Enteryourlicensenumber”,輸入LicenseKey。如果沒有LicenseKey,則可選擇“Requestaone-time30dayEvaluationofPGPDesktop”安裝30天評估版的PGP。選擇“Purchasealicensenumbernow”則可立即購買LicenseKey)。

(8)在【Licensing】界面中單擊“下一步”按鈕繼續(xù)安裝;

(9)在【UserType】界面中選擇“Iamanewuser”,單擊“下一步”按鈕繼續(xù)安裝;

(10)在【PGPKeyGenerationAssistant】界面單擊“下一步”按鈕創(chuàng)建新的PGP密鑰;

(11)在【NameandE-mailAssignment】界面中輸入使用者的名字和E-mail地址(本實驗以創(chuàng)建發(fā)送者userA為例),用這個信息來標(biāo)識使用者的密鑰以使通信的另一方能夠清楚地識別使用者的公鑰。輸入完信息后,單擊“下一步”按鈕繼續(xù)安裝,出現(xiàn)【CreatePassphrase】界面,如圖2.32所示。圖2.32創(chuàng)建口令短語

(12)在【CreatePassphrase】界面中輸入口令短語。PGP在提取私鑰時要求使用者必須輸入口令短語才能使用私鑰進行解密或簽名,這樣可以避免其他人隨便使用使用者的私鑰。注意密碼長度至少要八個字符,最好不要是有意義的文字或數(shù)字,這樣才不容易被別人猜到。在文本框中輸入口令短語兩次后單擊“下一步”按鈕繼續(xù)安裝;

(13)在【CreatePGPSecurityQuestions】界面中單擊“下一步”進入【CreateSecurityQuestion1to5】界面進行安全問題設(shè)定,以備遺忘密碼的時候可以通過回答安全問題而提取密鑰。本實驗選擇“Skip”跳過安全問題設(shè)定繼續(xù)安裝;

(14)在【KeyGeneration

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論