BIT2密碼理論與應(yīng)用_第1頁
BIT2密碼理論與應(yīng)用_第2頁
BIT2密碼理論與應(yīng)用_第3頁
BIT2密碼理論與應(yīng)用_第4頁
BIT2密碼理論與應(yīng)用_第5頁
已閱讀5頁,還剩126頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

密碼理論與應(yīng)用孫建偉計算機網(wǎng)絡(luò)攻防對抗實驗室北京理工大學(xué)提綱密碼技術(shù)概述對稱機密體制與算法公鑰密碼體制與算法數(shù)字摘要算法數(shù)字簽名與完整性保護數(shù)字證書與PKI體系密碼學(xué)概述我們需要哪些安全機制?認(rèn)證完整性機密性密碼學(xué)是安全通信的基礎(chǔ)對稱加密非對稱加密哈希函數(shù)(Hash)密碼學(xué)的發(fā)展歷史(1)自人類社會出現(xiàn)戰(zhàn)爭便產(chǎn)生了密碼

Phaistos圓盤,一種直徑約為160mm的Cretan-Mnoan粘土圓盤,始于公元前17世紀(jì)。表面有明顯字間空格的字母,至今還沒有破解。JuliusCaesar發(fā)明了凱撒密碼密碼學(xué)的發(fā)展歷史(2)1834年,倫敦大學(xué)的實驗物理學(xué)教授惠斯頓發(fā)明了電機,這是通信向機械化、電氣化躍進的開始,也為密碼通信采用在線加密技術(shù)提供了前提條件。1920年,美國電報電話公司的弗納姆發(fā)明了弗納姆密碼。其原理是利用電傳打字機的五單位碼與密鑰字母進行模2相加。密碼學(xué)的發(fā)展歷史(3)兩次世界大戰(zhàn)大大促進了密碼學(xué)的發(fā)展。二戰(zhàn)中美國陸軍和海軍使用的條形密碼設(shè)備M-138-T4。根據(jù)1914年P(guān)arkerHitt的提議而設(shè)計。25個可選取的紙條按照預(yù)先編排的順序編號和使用,主要用于低級的軍事通信。Kryha密碼機大約在1926年由AlexandervoKryha發(fā)明。這是一個多表加密設(shè)備,密鑰長度為442,周期固定。一個由數(shù)量不等的齒的輪子引導(dǎo)密文輪不規(guī)則運動。密碼學(xué)的發(fā)展歷史(4)兩次世界大戰(zhàn)大大促進了密碼學(xué)的發(fā)展。轉(zhuǎn)輪密碼機ENIGMA,由ArthurScherbius于1919年發(fā)明,面板前有燈泡和插接板;4輪ENIGMA在1942年裝備德國海軍,英國從1942年2月到12月都沒能解讀德國潛艇的信號。英國的TYPEX打字密碼機,是德國3輪ENIGMA的改進型密碼機。它在英國通信中使用廣泛,且在破譯密鑰后幫助破解德國信號。密碼學(xué)的發(fā)展歷史(5)1949年香農(nóng)發(fā)表了一篇題為《保密系統(tǒng)的通信理論》的著名論文,該文首先將信息論引入了密碼,從而把已有數(shù)千年歷史的密碼學(xué)推向了科學(xué)的軌道,奠定了密碼學(xué)的理論基礎(chǔ)。1976年,美國密碼學(xué)家W.Diffie和M.Hellman在一篇題為《密碼學(xué)的新方向》一文中提出了一個嶄新的思想,不僅加密算法本身可以公開,甚至加密用的密鑰也可以公開。1977年美國國家標(biāo)準(zhǔn)局頒布了數(shù)據(jù)加密標(biāo)準(zhǔn)DES2001年11月26日,正式頒布AES為美國國家標(biāo)準(zhǔn)。

密碼學(xué)基本概念明文:需要秘密傳送的消息。密文:明文經(jīng)過密碼變換后的消息。加密:由明文到密文的變換。解密:從密文恢復(fù)出明文的過程。破譯:非法接收者試圖從密文分析出明文的過程。加密算法:對明文進行加密時采用的一組規(guī)則。解密算法:對密文進行解密時采用的一組規(guī)則。密鑰:加密和解密時使用的一組秘密信息。一個密碼系統(tǒng),通常簡稱為密碼體制,由5部分組成:明文空間M全體明文的集合密文空間C全體密文的集合密鑰空間K全體密鑰的集合加密算法E一組由M到C的加密變換解密算法D一組由C到M的解密變換密碼體制基本組成信息加密傳輸?shù)倪^程加密:C=E(M,Ke)MCEKeCMKdD解密:M=D(C,Kd)M------明文C------密文Ke-----加密密鑰Kd-----解密密鑰E-------加密算法D------解密算法密碼系統(tǒng)的分類根據(jù)密鑰的使用方式分類對稱密碼體制(秘密鑰密碼體制)用于加密數(shù)據(jù)的密鑰和用于解密數(shù)據(jù)的密鑰相同,或者二者之間存在著某種明確的數(shù)學(xué)關(guān)系。加密:EK(M)=C解密:DK(C)=M非對稱密碼體制(公鑰密碼體制)用于加密的密鑰與用于解密的密鑰是不同的,而且從加密的密鑰無法推導(dǎo)出解密的密鑰。用公鑰KP對明文加密可表示為:EKP(M)=C用相應(yīng)的私鑰KS對密文解密可表示為:DKS(C)=M密碼系統(tǒng)的分類根據(jù)明文和密文的處理方式分類分組密碼體制(BlockCipher)

設(shè)M為明文,分組密碼將M劃分為一系列明文塊Mi,通常每塊包含若干字符,并且對每一塊Mi都用同一個密鑰Ke進行加密。M=(M1,M2,…,Mn),C=(C1,C2,

…,Cn,),其中Ci=E(Mi,Ke),i=1,2…,n。序列密碼體制(StreamCipher)將明文和密鑰都劃分為位(bit)或字符的序列,并且對明文序列中的每一位或字符都用密鑰序列中對應(yīng)的分量來加密。M=(M1,M2,…,Mn),Ke=(ke1,ke2,…,ken),C=(C1,C2,…,Cn),其中Ci=E(mi,kei),i=1,2,…,n。經(jīng)典密碼學(xué)經(jīng)典密碼(古典密碼)對于今天來說,是極不安全的,是極易破解的,但其基本方法仍然是近、現(xiàn)代密碼學(xué)的基礎(chǔ)。經(jīng)典密碼運用的兩種基本技術(shù):代換法:將明文字母替換成其他字母、數(shù)字或符號置換法:明文的字母保持相同,但順序被打亂代換技術(shù)代換法,是將明文字母替換成其他字母、數(shù)字或符號的方法。Caesar密碼(已知的最早的代換密碼)例如:明晨五點發(fā)動反攻明文:MINGCHENWUDIANFADONGFANGONG密文:PLQJFKHQZXGLDQIDGRQJIDQJRQJCaesar密碼如果讓每個字母等價于一個數(shù)值:a=0,b=1,…,z=25則加密公式為:

C=E(p)=(p+3)mod26更一般地:

C=E(p)=(p+k)mod26解密:p=D(C)=(C-k)mod26用窮舉分析可輕松破解Caesar密碼通常,加密和解密算法是已知的。需測試的密鑰只有25個。明文所用的語言是已知的,其意義易于識別。因此,為了提高窮舉分析的難度,密鑰空間必須很大。例如3-DES算法的密鑰長度為168位,密鑰空間為2168。單表代換密碼使用一個密文字母表,并且用密文字母表中的一個字母來代替一個明文字母表中的一個字母。例如,明文a用c來代換,b用剩下的25個字母中隨機的一個來代換,c用剩下的24個字母中隨機的一個來代換,……,以此類推。這樣,密鑰空間為26!,約4*1026種可能的密鑰。最簡單的多表代換密碼---Vigenère

維吉尼亞密碼選擇一個詞組作為密鑰,密鑰中每個字母用來確定一個代換表,每個密鑰字母用來加密一個明文字母。例如密鑰字母為a,明文字母為c,則密文字母為0+2(mod26)=2,也就是c。直到所有的密鑰字母用完,后再從頭開始,使用第一個密鑰字母加密。也就是說,密鑰循環(huán)使用。一個例子明文為attackbeginsatfive,密鑰為cipher,

attackbeginsatfive明文+cipherciphercipher密鑰

----------------------------------------------

=cbihgbdmvprjcbupzv密文去除空格后為cbihgbdmvprjcbupzv維吉尼亞密碼的密鑰維吉尼亞密碼的密鑰即字符串密鑰空間: 字符串長度為M密鑰空間:26M置換技術(shù)在置換密碼中,明文的字母保持相同,但順序被打亂了。在簡單的縱行換位密碼中,明文以固定的寬度水平地寫在一張圖表紙上,密文按垂直方向讀出,解密就是將密文按相同的寬度垂直地寫在圖表紙上,然后水平地讀出明文。Plaintext:COMPUTERGRAPHICSMAYBESLOWBUTATLEASTITSEXPENSIVECOMPUTERGRAPHICSMAYBESLOWBUTATLEASTITSEXPENSIVECiphertext:CAELPOPSEEMHLANPIOSSUCWTITSBIVEMUTERATSGYAERBTX

這種簡單的技巧對于密碼分析者來說是微不足道的??稍谥脫Q前,把列的次序打亂,列的次序就是算法的密鑰。置換技術(shù)的密鑰設(shè)列的數(shù)量為N密鑰空間:N!代換技術(shù)與置換技術(shù)通常結(jié)合使用。一般地,可先利用代換技術(shù)加密,再用置換技術(shù)將密文再次加密。這是現(xiàn)代密碼學(xué)的對稱加密方法的基礎(chǔ)轉(zhuǎn)輪機---經(jīng)典密碼的機械階段20世紀(jì)20年代,隨著機械和機電技術(shù)的成熟,以及電報和無線電需求的出現(xiàn),引起了密碼設(shè)備方面的一場革命——發(fā)明了轉(zhuǎn)輪密碼機(簡稱轉(zhuǎn)輪機,Rotor),轉(zhuǎn)輪機的出現(xiàn)是密碼學(xué)發(fā)展的重要標(biāo)志之一。美國人EdwardHebern認(rèn)識到:通過硬件卷繞實現(xiàn)從轉(zhuǎn)輪機的一邊到另一邊的單字母代替,然后將多個這樣的轉(zhuǎn)輪機連接起來,就可以實現(xiàn)幾乎任何復(fù)雜度的多個字母代替。轉(zhuǎn)輪機由一個鍵盤和一系列轉(zhuǎn)輪組成,每個轉(zhuǎn)輪是26個字母的任意組合。轉(zhuǎn)輪被齒輪連接起來,當(dāng)一個轉(zhuǎn)輪轉(zhuǎn)動時,可以將一個字母轉(zhuǎn)換成另一個字母。照此傳遞下去,當(dāng)最后一個轉(zhuǎn)輪處理完畢時,就可以得到加密后的字母。為了使轉(zhuǎn)輪密碼更安全,人們還把幾種轉(zhuǎn)輪和移動齒輪結(jié)合起來,所有轉(zhuǎn)輪以不同的速度轉(zhuǎn)動,并且通過調(diào)整轉(zhuǎn)輪上字母的位置和速度為破譯設(shè)置更大的障礙。轉(zhuǎn)輪機的工作原理每一個旋轉(zhuǎn)輪代表一個單表代換系統(tǒng),旋轉(zhuǎn)一個引腳,再轉(zhuǎn)變?yōu)榱硪粋€單表代換系統(tǒng)。為使機器更安全,可把幾種轉(zhuǎn)輪和移動的齒輪結(jié)合起來。因為所有轉(zhuǎn)輪以不同的速度移動,n個轉(zhuǎn)輪的機器的周期是26n,即個單表代換系統(tǒng)。最后一個轉(zhuǎn)輪轉(zhuǎn)完一圈之后,它前面的轉(zhuǎn)輪就旋轉(zhuǎn)一個引腳,有點像時鐘的齒輪。轉(zhuǎn)輪機的經(jīng)典---ENIGMA1918年,德國發(fā)明家ArthurScherbius用二十世紀(jì)的電氣技術(shù)來取代已經(jīng)過時的鉛筆加紙的加密方法。他研究的結(jié)果就是永遠(yuǎn)被尊為經(jīng)典的ENIGMA。ENIGMA首先是作為商用加密機器得到應(yīng)用的。它的專利在1918年在美國得到確認(rèn)。售價大約相當(dāng)于現(xiàn)在的30000美元。二、對稱密碼體制與算法對稱密碼學(xué)概述分組密碼數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)流密碼對稱密碼學(xué)概述

加密:EK(M)=C

解密:DK(C)=M

等效于DK(EK(M))=M數(shù)學(xué)變換函數(shù)密鑰K明文密文數(shù)學(xué)變換函數(shù)密鑰K明文密文對稱密碼學(xué)概述網(wǎng)絡(luò)信息M對稱密碼算法密鑰K密文C用戶A對稱密碼算法密文C用戶B信息M密鑰K對稱密碼學(xué)分類

塊密碼(分組密碼)

一次若干位一組地對明文進行操作和運算

流密碼(序列密碼)

每次一位地對明文進行操作和運算

工作方式

將明文分成固定長度的組(塊),如64bit一組,用同一密鑰和算法對每一快加密,輸出也是固定長度的密文。

主要算法

DES、3DES、IDEA、RC2、AES等。分組密碼數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)概述數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard),已經(jīng)有20多年的歷史;DES是一種對稱密碼算法,1976年11月23日DES被采納為美國國家標(biāo)準(zhǔn);DES是第一個得到廣泛應(yīng)用的密碼算法;DES是一種分組加密算法,輸入的明文為64位,密鑰為56位,生成的密文為64位;DES已經(jīng)過時,基本上認(rèn)為不再安全。數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)算法

該算法分三個階段實現(xiàn)

1.給定明文X,通過一個固定的初始置換IP來排列X中的位,得到X0。

X0=IP(X)=L0R0

其中L0由X0前32位組成,R0由X0的后32位組成。

2.計算函數(shù)F的16次迭代,根據(jù)下述規(guī)則來計算LiRi(1<=i<=16)

Li=Ri-1,Ri=Li-1

F(Ri-1,Ki)

其中Ki是長為48位的子密鑰。子密鑰K1,K2,…,K16是作為密鑰K(56位)的函數(shù)而計算出的。

3.對比特串R16L16使用逆置換IP-1得到密文Y。

Y=IP-1(R16L16)左半邊的處理過程可以分三個部分:(1)64位明文經(jīng)過初始置換被重新排列,然后分左右兩半,每半各32位;(2)左右兩半經(jīng)過16輪置換和代換迭代,即16次實施相同的變換。然后再左右兩半互換;(3)互換后的左右兩半合并,再經(jīng)過逆初始置換輸出64位密文。右半部則由56位密鑰,產(chǎn)生16個48位子密鑰,分別供左半邊的16輪迭代加密使用數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)算法圖示數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)

F函數(shù)說明

F(Ri-1,Ki)函數(shù)F以長度為32的比特串A=R(32bits)作第一個輸入,以長度為48的比特串變元J=K(48bits)作為第二個輸入。產(chǎn)生的輸出為長度為32的位串。

(1)對第一個變元A,由給定的擴展函數(shù)E,將其擴展成48位串E(A);

(2)計算E(A)+J,并把結(jié)果寫成連續(xù)的8個6位串,B=b1b2b3b4b5b6b7b8;

(3)使用8個S盒,每個Sj是一個固定的416矩陣,它的元素取0~15的整數(shù)。給定長度為6個比特串,如Bj=b1b2b3b4b5b6,計算Sj(Bj)如下:b1b6兩個比特確定了Sj的行數(shù),r(0<=r<=3);而b2b3b4b5四個比特確定了Sj的列數(shù)c(0<=c<=15)。最后Sj(Bj)的值為S-盒矩陣Sj中r行c列的元素(r,c),得Cj=Sj(Bj); (4)最后,進行固定置換P。

加密函數(shù)F的計算過程

S盒

在加密函數(shù)計算過程中使用了8個S盒S盒是DES保密性的關(guān)鍵所在S盒是一種非線性變換,也是DES中唯一的非線性運算S盒有6位輸入,4位輸出48位數(shù)據(jù)經(jīng)過8個S盒后輸出32位數(shù)據(jù)每個S盒都由4行(表示為0,1,2,3)和16列(0,1,…,15)組成每行都是全部的16個長為4比特串的一個全排列每個比特串用它對應(yīng)的二進制整數(shù)表示,如1001用9表示。對每個S盒,將6位輸入的第一位和最后一位組成一個二進制數(shù),用于選擇S盒中的一行。用中間的4位選擇S盒16列中的某一列,行列交叉處的十進制數(shù)轉(zhuǎn)換為二進制數(shù)可得到4位輸出。例如對于S1盒而言,如果輸入為011001,則行是01(十進制1,即S盒的第2行),列1100(12,即S盒的第13列),該處的值是9,轉(zhuǎn)換為二進制數(shù)為1001,即為該S盒的輸出DES密鑰產(chǎn)生過程

(1)給定64位的密鑰K,放棄奇偶校驗位(8,16,…,64)并根據(jù)固定置換PC1來排列K中剩下的位。我們寫 PC1(K)=C0D0

其中C0由PC1(K)的前28位組成;D0由后28位組成;

(2)對1<=i<=16,計算

Ci=LSi(Ci-1)

Di=LSi(Di-1)

LSi表示循環(huán)左移2或1個位置,取決于i的的值。i=1,2,9和16時移1個位置,否則移2位置;

(3)Ki=PC2(CiDi),PC2為固定置換。DES密鑰產(chǎn)生圖示數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)

DES加密的一個例子

*取16進制明文X:0123456789ABCDEF

*取密鑰K為:133457799BBCDFF1

*去掉奇偶校驗位以二進制形式表示的密鑰是00010010011010010101101111001001101101111011011111111000

*應(yīng)用初始置換IP,我們得到:

L0=11001100000000001100110011111111

L1=R0=11110000101010101111000010101010

*然后進行16輪加密。

*最后對L16,R16使用IP-1得到密文: 85E813540F0AB405DES解密

DES解密過程與加密過程本質(zhì)上一致加密和解密使用同一個算法,使用相同的步驟和相同的密鑰主要不同點是將密文作為算法的輸入,但是逆序使用子密鑰ki,即第1輪使用子密鑰k16,第2輪使用子密鑰k15,最后一輪使用子密鑰k1

數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)

DES密鑰長度太小

DES迭代次數(shù)可能太少1997年6月,許多臺計算機并行工作,140天內(nèi)破解了DES;1998年,DES在48天內(nèi)被破解;1999年,幾個小時內(nèi)就能破解。三重DES使用三(或兩)個不同的密鑰對數(shù)據(jù)塊進行三次(或兩次)加密,加密一次要比進行普通加密的三次要快三重DES的強度大約和112-bit的密鑰強度相當(dāng)三重DES有四種模型DES-EEE3使用三個不同密鑰順序進行三次加密變換DES-EDE3使用三個不同密鑰依次進行加密-解密-加密變換DES-EEE2其中密鑰K1=K3順序進行三次加密變換DES-EDE2其中密鑰K1=K3依次進行加密-解密-加密變換到目前為止還沒有人給出攻擊三重DES的有效方法DES-EDE2其中密鑰K1=K3依次進行加密-解密-加密變換目前還沒有針對兩個密鑰的三重DES實際的攻擊方法但是感覺它不大可靠,如果采用三把密鑰的三重DES則比較放心三把密鑰的三重DES的密鑰長度是168位,采用加密—解密—加密(E-D-E)方案其加密過程為C=EK3[DK2[EK1[M]]],解密過程為M=DK1[EK2[DK3[C]]]這種加密方式已經(jīng)被一些網(wǎng)絡(luò)應(yīng)用采用,如PGP和S/MIME采用了這種方案IDEAInternationalDataEncryptionAlgorithm;XuejiaLai和JamesMassey提出;IDEA是對稱、分組密碼算法,輸入的明文為64位,密鑰為128位,生成的密文為64位;IDEA是一種相對較新的算法,有堅強的理論基礎(chǔ),已被證明可對抗差分分析和線性分析;PGP中已實現(xiàn)了IDEA;高級加密標(biāo)準(zhǔn)(AES)1997年4月15日美國國家標(biāo)準(zhǔn)和技術(shù)研究所NIST發(fā)起了征集AES算法的活動并成立了專門的AES工作組目的是為了確定一個非保密的公開披露的全球免費使用的分組密碼算法用于保護下一世紀(jì)政府的敏感信息并希望成為秘密和公開部門的數(shù)據(jù)加密標(biāo)準(zhǔn)1997年9月12日在聯(lián)邦登記處公布了征集AES候選算法的通告AES的基本要求是比三重DES快或至少和三重DES一樣安全分組長度128比特,密鑰長度為128/192/256比特1998年8月20日NIST召開了第一次候選大會并公布了15個候選算法高級加密標(biāo)準(zhǔn)(AES)-續(xù)1999年3月22日舉行了第二次AES候選會議從中選出5個算法MARSRC6SerpentTwofishRijndael

2000年10月,美國國家技術(shù)標(biāo)準(zhǔn)委員會(NIST)選定“Rijndael”全為AESRijndael是迭代分組密碼,其分組長度和密鑰長度都是可變的;為了滿足AES的要求,分組長度為128bit,密碼長度為128/192/256bit,相應(yīng)的輪數(shù)r為10/12/14。流密碼明文m=m1,m2,…….mk偽隨機序列k=k1,k2,…….kk密文ci=miki,i=1,2,…….k解密過程與加密過程一致序列密碼的安全性完全依賴于偽隨機數(shù)的強度移位寄存器是產(chǎn)生序列密碼的有效方法RC4、SEAL(SoftwareOptimizedEncryptionAlgorithm,軟件優(yōu)化加密算法)三、公鑰密碼體制公鑰密碼學(xué)概述公鑰密碼算法公鑰密碼技術(shù)應(yīng)用公鑰密碼學(xué)概述WhitefieldDiffie,MartinHellman,《NewDirectionsinCryptography》,1976公鑰密碼學(xué)的出現(xiàn)使大規(guī)模的安全通信得以實現(xiàn)–解決了密鑰分發(fā)問題;公鑰密碼學(xué)還可用于另外一些應(yīng)用:數(shù)字簽名、防抵賴等;公鑰密碼體制的基本原理–陷門單向函數(shù)(trapdoorone-wayfunction)公鑰密碼學(xué)概述

加密:EK1(M)=C

解密:DK2(C)=M

等效于DK2(EK1(M))=M數(shù)學(xué)變換函數(shù)密鑰K1明文密文數(shù)學(xué)變換函數(shù)密鑰K2明文密文公鑰密碼學(xué)概述網(wǎng)絡(luò)信息M非對碼密鑰算法B公鑰密文C用戶B用戶A非對稱密碼算法密文C信息MB私鑰非對稱加密應(yīng)用模式數(shù)據(jù)機密性發(fā)送方認(rèn)證對稱密碼學(xué)中的密鑰管理單鑰密碼技術(shù)要求通信雙方事先交換密鑰。在實際應(yīng)用中,一方需要與成千上萬的通信方進行交易,若采用單鑰密碼技術(shù),每個用戶需要管理成千上萬個不同對象通信的密鑰。雙方如何交換密鑰。通過傳統(tǒng)手段,還是通過因特網(wǎng),都會遇到密鑰傳送的安全性問題。在現(xiàn)實環(huán)境中,密鑰通常會經(jīng)常更換,更為極端的是,每次傳送都使用不同的密鑰,單鑰密碼技術(shù)的密鑰管理和發(fā)布都是遠(yuǎn)遠(yuǎn)無法滿足使用要求的。公鑰密碼學(xué)中的密鑰管理公鑰密鑰技術(shù)解決了密鑰的發(fā)布和管理問題,任何一方可以公開其公開密鑰,而保留私有密鑰。發(fā)送方可以用人人皆知的接收方公開密鑰對發(fā)送的信息進行加密,安全的傳送給接收方,然后由接收方用自己的私有密鑰進行解密。

RSA算法概述Rivest,Shamir和Adleman1977年研制并且1978年首次發(fā)表。密碼分析者尚不能證明其安全性,但也不能否定其安全性。RSA是一種分組密碼,其理論基礎(chǔ)是一種特殊的可逆模指數(shù)運算,其安全性基于分解大整數(shù)的困難性。既可以用于加密,也可用于數(shù)字簽名。硬件實現(xiàn)時,比DES慢約1000倍。軟件實現(xiàn)時比DES慢約100倍。永遠(yuǎn)不會比對稱鑰算法快。已被許多標(biāo)準(zhǔn)化組織(如ISO、ITU、IETF和SWIFT等)接納,目前多數(shù)公司使用的是RSA公司的PKCS系列。算法描述

1.密鑰的產(chǎn)生

隨機選擇兩個大素數(shù)p,q

計算n=p×q計算秘密的歐拉函數(shù)(n)=(p-1)(q-1)選擇e使得1<e<(n),且gcd(e,

(n))=1解下列方程求出d

ed≡1mod(n),且0≤d≤n

公開公鑰:PU={e,N}保存私鑰:PR={d,p,q}672.加密過程加密時明文以分組為單位進行加密,每個分組m的二進制值均小于n,對明文分組m作加密運算:c=memodn,且0≤m<n3.解密過程密文解密m=cd

modn

RSA算法描述結(jié)果:

e和n作為公開密鑰,d,n作為私人密鑰。

p、q、φ(n)和d是秘密的陷門(并不是相互獨立的),不可以泄露。使用: 首先將消息分成大小合適的數(shù)據(jù)分組,然后對分組分別進行加密。每個分組的大小應(yīng)該比n小。 設(shè)ci為明文分組mi加密后的密文,則加密公式為ci=mie(modn)

解密時,對每一個密文分組進行如下運算:mi=cid(modn)RSA樣例p=17,q=11,n=pq=187(n)=(p-1)(q-1)=160gcd(160,e)==1:e=7de=161=1mod160:d=23RSA算法安全性

RSA的安全性是基于加密函數(shù)ek(x)=xe(modn)是一個單向函數(shù),所以對的人來說求逆計算不可行。而解密的陷門是分解n=pq,知(n)=(p-1)(q-1)。從而用歐氏算法解出解密私鑰d。密碼分析者攻擊RSA體制的關(guān)鍵點在于如何分解n。若分解成功使n=pq,則可以算出φ(n)=(p-1)(q-1),然后由公開的e,解出秘密的d。RSA算法關(guān)鍵技術(shù)密鑰選擇位數(shù):1024以上,素性應(yīng)該證明p-1,q-1有大的素因子p+1,q+1也要有大的素因子e的選取,最常用的e值為3,65537(2^16+1)算法實現(xiàn)軟件與硬件結(jié)合,并行算法等RSA算法使用1.加解密A的公開密鑰為(e,n),B對消息m加密c=memodn給A,只有A能解密m=cdmodn特點:和A從來不認(rèn)識,都可進行保密通訊,只要知道A的公鑰.速度慢,不實用.要求對公開密鑰進行保護,防止修改和替換。

通信保密:此時將公鑰作為加密密鑰,私鑰作為解密密鑰,通信雙方不需要交換密鑰就可以實現(xiàn)保密通信。RSA算法使用2.數(shù)字簽名與身份認(rèn)證A的公開密鑰為(e,n),私鑰為(d,n),A對消息m的數(shù)字簽名為:s=H(m)dmodn,H(x)為公開的散列(hash)函數(shù).任何人都可驗證A對m的簽名的有效性H(m)=semodn功能:防止非法篡改、偽造,A的抵賴與否認(rèn),對A的假冒等。要求對公開密鑰進行保護,防止修改。

數(shù)字簽名:將私鑰作為加密密鑰,公鑰作為解密密鑰,可實現(xiàn)由一個用戶對數(shù)據(jù)加密而使多個用戶解讀。

其他公鑰算法Rabin密碼算法

合數(shù)模下求解平方根的困難性ElGamal密碼算法 基于離散對數(shù)問題橢圓曲線密碼算法 代數(shù)幾何中基于橢圓曲線的點集四、摘要算法摘要算法的需求摘要算法的設(shè)計要求

MD5算法介紹哈希函數(shù)(Hash)Hash相同的輸入產(chǎn)生相同的輸出(散列值/指紋)單向,不可逆變長的輸入,定長的輸出散列算法MD5(128bit)、SHA-1(160bit)用途數(shù)據(jù)完整性發(fā)送方認(rèn)證Hash雜湊函數(shù)雜湊(Hash)函數(shù)是將任意長的數(shù)字串M映射成一個較短的定長輸出數(shù)字串H的函數(shù),通常是單向雜湊函數(shù);強單向雜湊與弱單向雜湊,對不同報文,很難有同樣的報文摘要。這與不同的人有不同的指紋很類似;雜湊函數(shù)除了可用于數(shù)字簽名方案之外,還可用于其它方面,諸如消息的完整性檢測(一般雜湊函數(shù))、消息的起源認(rèn)證檢測(密碼雜湊函數(shù))等。h=H(M)假定兩次輸入同樣的數(shù)據(jù),那么散列函數(shù)應(yīng)該能夠生成相同的散列值。輸入數(shù)據(jù)中的一位發(fā)生了變化,會導(dǎo)致生成的散列值完全不一樣。散列函數(shù)有個非常重要的特性為單向性,也就是從M計算h容易,而從h計算M不可能。

散列函數(shù)H必須滿足以下幾個性質(zhì)H對于任何大小的數(shù)據(jù)分組,都能產(chǎn)生定長的輸出。對于任何給定的M,H(M)要相對易于計算。單向性:對于任何給定的hash值h,計算出M在計算上不可行。弱無碰撞性:對任何給定的M1,尋找M2,使H(M1)=H(M2)在計算上不可行。強無碰撞性:尋找任何的(M1,M2),使H(M1)=H(M2)在計算上不可行。MD系列雜湊函數(shù)RonRivest設(shè)計的系列雜湊函數(shù)系列:MD4[RFC1320]MD5是MD4的改進型[RFC1321]MD2[RFC1319],已被Rogier等于1995年攻破較早被標(biāo)準(zhǔn)化組織IETF接納,并已獲得廣泛應(yīng)用Hash值長度為128bits

這個選擇的意義:簽名算法復(fù)雜度這種,如RSA算法SHA和SHA-1美國NIST和NSA為配合DSS,設(shè)計了安全雜湊標(biāo)準(zhǔn)(SHS),其算法為SHA[FIPSPUB180],修改的版本被稱為SHA-1[FIPSPUB180-1]SHA/SHA-1采用了與MD4相似的設(shè)計準(zhǔn)則,其結(jié)構(gòu)也類似于MD4,但其輸出為160bits目前還沒有針對SHA有效的攻擊2023/2/484Ch5-消息認(rèn)證與數(shù)字簽名MD5MD5(Message-Digest

Algorithm

5)是由Ronald

L.

Rivest(RSA算法中的“R”)這90年代初開發(fā)出來的,經(jīng)MD2、MD3和MD4發(fā)展而來。它比MD4復(fù)雜,但設(shè)計思想類似,同樣生成一個128位的信息散列值。其中,MD2是為8位機器做過設(shè)計優(yōu)化的,而MD4和MD5卻是面向32位的計算機。2004年8月,在美國召開的國際密碼學(xué)會議(Crypto’2004)上,王小云教授給出破解MD5、HAVAL-128、MD4和RIPEMD算法的報告。給出了一個非常高效的尋找碰撞的方法,可以在數(shù)個小時內(nèi)找到MD5的碰撞。2023/2/485Ch5-消息認(rèn)證與數(shù)字簽名MD5算法步驟1)填充消息:任意長度的消息首先需要進行填充處理,使得填充后的消息總長度與448模512同余(即填充后的消息長度448mod512)。填充的方法是在消息后面添加一位“1”,后續(xù)都是“0”。2)添加原始消息長度:在填充后的消息后面再添加一個64位的二進制整數(shù)表示填充前原始消息的長度。這時經(jīng)過處理后的消息長度正好是512位的倍數(shù)。3)初始值(IV)的初始化:MD5中有四個32位緩沖區(qū),用(A,B,C,D)表示,用來存儲散列計算的中間結(jié)果和最終結(jié)果,緩沖區(qū)中的值被稱為鏈接變量。首先將其分別初始化為為:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。2023/2/486Ch5-消息認(rèn)證與數(shù)字簽名MD5算法步驟-續(xù)4)以512位的分組為單位對消息進行循環(huán)散列計算:經(jīng)過處理的消息,以512位為單位,分成N個分組,用Y0,Y1,…,YN-1。MD5對每個分組進行散列處理。每一輪的處理會對(A,B,C,D)進行更新。5)輸出散列值:所有的N個分組消息都處理完后,最后一輪得到的四個緩沖區(qū)的值即為整個消息的散列值。2023/2/487Ch5-消息認(rèn)證與數(shù)字簽名MD5算法步驟-續(xù)MD5的主循環(huán),包括四輪,每個循環(huán)都以當(dāng)前的正在處理的512比特分組Yq和128比特緩沖值A(chǔ)BCD為輸入,然后更新緩沖內(nèi)容。四輪的操作類似,每輪16次:用到一個有64個元素的表T[1..64],T[i]=232×abs(sin(i)),i的單位為弧度。16次壓縮函數(shù)中的一步迭代基本邏輯函數(shù)定義輪基本函數(shù)gg(b,c,d)fFF(b,c,d)(b^c)V(bˉ^d)fGG(b,c,d)(b^d)V(c^dˉ)fHH(b,c,d)b?c?dfII(b,c,d)c?(bV

dˉ)X[k]當(dāng)前分組的第k個32位的字。第1輪x[0]x[1]x[2]x[3]x[4]x[5]x[6]x[7]x[8]x[9]x[10]x[11]x[12]x[13]x[14]x[15]第2輪x[1]x[6]x[11]x[0]x[5]x[10]x[15]x[4]x[9]x[14]x[3]x[8]x[13]x[2]x[7]x[12]第3輪x[5]x[8]x[11]x[14]x[1]x[4]x[7]x[10]x[13]x[0]x[3]x[6]x[9]x[12]x[15]x[2]第4輪x[0]x[7]x[14]x[5]x[12]x[3]x[10]x[1]x[8]x[15]x[6]x[13]x[4]x[11]x[2]x[9]MD-5的安全性MD-5的輸出為128-bit,若采用純強力攻擊尋找一個消息具有給定Hash值的計算困難性為2128,用每秒可試驗1000000000個消息的計算機需時1.07×1022年。采用生日攻擊法,找出具有相同雜湊值的兩個消息需執(zhí)行264次運算。5、數(shù)字簽名與完整性保護數(shù)字簽名概念數(shù)字簽名與驗證數(shù)字信封技術(shù)時間戳技術(shù)數(shù)字簽名概述日常生活和經(jīng)濟往來中,簽名蓋章和識別簽名是一個重要環(huán)節(jié);計算機網(wǎng)絡(luò)通信時代,用密碼學(xué)來實現(xiàn)數(shù)字簽名;數(shù)字簽名特點:收方能夠確認(rèn)或證實發(fā)方的簽字;任何人都不能仿造;如果發(fā)方否認(rèn)他所簽名的消息,可以通過仲裁解決爭議。數(shù)字簽名與手寫簽名和消息認(rèn)證與手寫簽名的區(qū)別;手寫簽名是模擬的,且因人而異;數(shù)字簽名是01數(shù)字串,因消息而異。與消息認(rèn)證的區(qū)別:消息認(rèn)證使收方能驗證消息內(nèi)容是否被篡改;數(shù)字簽名還可以認(rèn)證消息發(fā)送者的身份。數(shù)字簽名算法RSA算法

應(yīng)用最廣泛DSA(DigitalSignatureAlgorithm)算法

基于有限域上的離散對數(shù)問題GOST算法

俄羅斯采用的數(shù)字簽名標(biāo)準(zhǔn)算法數(shù)字簽名與驗證過程第一步:將消息按散列算法計算得到一個固定位數(shù)的消息摘要值。在數(shù)學(xué)上保證:只要改動消息的任何一位,重新計算出的消息摘要就會與原先值不符。這樣就保證了消息的不可更改。數(shù)字簽名與驗證過程第二步:對消息摘要值用發(fā)送者的私有密鑰加密,所產(chǎn)生的密文即稱數(shù)字簽名。然后該數(shù)字簽名同原消息一起發(fā)送給接收者。第三步:接收方收到消息和數(shù)字簽名后,用同樣的散列算法對消息計算摘要值,然后與用發(fā)送者的公開密鑰對數(shù)字簽名進行解密,將解密后的結(jié)果與計算的摘要值相比較。如相等則說明報文確實來自發(fā)送者。數(shù)字簽名與驗證過程圖示消息摘要數(shù)字簽名消息數(shù)字簽名消息摘要數(shù)字簽名摘要發(fā)送方接收方數(shù)字簽名與數(shù)據(jù)完整性驗證數(shù)據(jù)的完整性(integrity)數(shù)據(jù)的完整性是用來認(rèn)證消息、檢驗數(shù)據(jù)是否被篡改的技術(shù),是另一類型的數(shù)字簽名實現(xiàn)技術(shù):雙鑰加密算法和消息摘要算法應(yīng)用:消息不需加密但要鑒別,如銀行發(fā)出的支票Alice與Bob通話,Bob希望驗證消息的完整性:

—Alice就要使用SHA來計算消息(密文)的消息摘要,并使用自己的私有密鑰對這個消息摘要進行加密(即該消息的簽名)

—Alice將消息發(fā)給Bob

—Bob接到消息后,首先用Alice的公開密鑰解密,然后計算消息的消息摘要,再比較兩者是否相同

—若相同,Bob就能確信接受到的消息是完整的電子信封技術(shù)為解決每次傳送更換密鑰的問題,結(jié)合對稱加密技術(shù)和非對稱密鑰加密技術(shù)的優(yōu)點,產(chǎn)生了電子信封技術(shù),用來傳輸數(shù)據(jù)。

電子信封技術(shù)實現(xiàn)加密對稱密鑰用戶A明文密文用戶B的公鑰電子信封用戶B密文解密明文用戶B的私鑰對稱密鑰數(shù)字時間戳(DigitalTime-Stamp)交易文件中,文件簽署日期和簽名一樣是防止被偽造和篡改的關(guān)鍵性內(nèi)容數(shù)字時間戳服務(wù)(DTS)是網(wǎng)上安全服務(wù)項目,由專門的機構(gòu)提供時間戳是一個經(jīng)過加密后形成的憑證文檔,包括:需加時間戳的文件的摘要、DTS收到文件的日期和時間、DTS的數(shù)字簽名時間戳產(chǎn)生過程:用戶將需加時間戳的文件用HASH編碼加密形成摘要,并將其發(fā)送到DTS;DTS在加入了收到日期和時間信息后再對該文件加密和數(shù)字簽名,然后返回用戶數(shù)字證書的結(jié)構(gòu)

相關(guān)標(biāo)準(zhǔn)

PKI的組成與功能

我國PKI的發(fā)展六、數(shù)字證書與PKI體系數(shù)字證書(Digitalcertificates)數(shù)字證書:是一個擔(dān)保個人、計算機系統(tǒng)或組織的身份和密鑰所有權(quán)的電子文檔,它的格式必須符合CCITTX.509國際標(biāo)準(zhǔn)的規(guī)定數(shù)字證書可以解決公開密鑰的認(rèn)證問題基于公開密鑰體制(PKI)的數(shù)字證書是電子商務(wù)安全體系的核心,其用途是利用公共密鑰加密系統(tǒng)來保護與驗證公眾的密鑰,由可信任的、公正的權(quán)威機構(gòu)CA頒發(fā)應(yīng)用程序能識別的證書類型如下:客戶證書(個人證書)、站點證書(服務(wù)器證書)、安全郵件證書、CA證書數(shù)字證書(續(xù))證書的內(nèi)容(證書格式遵循X.509國際標(biāo)準(zhǔn))

—證書的數(shù)據(jù):版本信息、證書序列號、CA使用的簽名算法、發(fā)行證書CA的名稱、證書的有效期、被證明的公鑰信息

—發(fā)行證書的CA簽名:CA簽名和簽名算法證書的有效性

—證書沒有過期

—密鑰沒有修改

—用戶仍然有權(quán)使用這個密鑰

—CA負(fù)責(zé)回收證書,發(fā)行無效證書清單證書使用證書幫助證實個人身份,你的證書和你的密鑰就是你是誰的證據(jù)公鑰證書的結(jié)構(gòu)

證書主體身份信息主體的公鑰CA名稱CA簽名簽字X.500與X.509X.500和X.509是安全認(rèn)證系統(tǒng)的核心:為了提供公用網(wǎng)絡(luò)用戶目錄信息服務(wù),ITU于1988年制定了X.500系列標(biāo)準(zhǔn)。X.500定義了一種區(qū)別命名規(guī)則,以命名樹來確保用戶名稱的唯一性X.509是由國際電信聯(lián)盟(ITU-T)制定的數(shù)字證書標(biāo)準(zhǔn)。X.509為X.500用戶名稱提供了通信實體鑒別機制,并規(guī)定了實體鑒別過程中廣泛適用的證書語法和數(shù)據(jù)接口,X.509稱之為證書。

X.509證書由用戶公共密鑰與用戶標(biāo)識符組成,此外還包括版本號、證書序列號、CA標(biāo)識符、簽名算法標(biāo)識、簽發(fā)者名稱、證書有效期等。目前,X.509標(biāo)準(zhǔn)已在編排公共密鑰格式方面被廣泛接受,已用于許多網(wǎng)絡(luò)安全應(yīng)用程序,其中包括IP安全(Ipsec)、安全套接層(SSL)、安全電子交易(SET)、安全多媒體INTERNET郵件擴展(S/MIME)等。

公鑰基礎(chǔ)結(jié)構(gòu)

(Public

Key

Infrastructure,

PKI)

PKI是一種遵循標(biāo)準(zhǔn)的密鑰管理平臺,它能夠為所有網(wǎng)絡(luò)應(yīng)用透明地提供采用加密和數(shù)字簽名等密碼服務(wù)所必需的密鑰和證書管理。

PKI體系結(jié)構(gòu)采用證書管理公鑰,即結(jié)合X.509標(biāo)準(zhǔn)中的鑒別框架(Authentication

Framework)來實現(xiàn)密鑰管理,通過CA把用戶的公鑰及其它標(biāo)識信息捆綁在一起,在INTERNET上驗證用戶的身份,保證網(wǎng)上數(shù)據(jù)的保密性和完整性。

公鑰基礎(chǔ)結(jié)構(gòu)

(Public

Key

Infrastructure,

PKI)

一個PKI必須支持下面的密鑰和證書管理服務(wù):

◆認(rèn)證機關(guān)(CA)

◆證書庫

◆證書的撤消

◆密鑰的備份與恢復(fù)

◆對數(shù)字簽名的抗抵賴性的支持

◆密鑰對和證書的自動更新

◆密鑰歷史信息的管理

◆對交叉認(rèn)證的支持

◆客戶端證書處理系統(tǒng)如何獲得發(fā)送方公鑰A發(fā)送驗證消息給B;B用私鑰加密該消息并附上證書送給A;A收到后用

溫馨提示

  • 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

提交評論