《網(wǎng)絡(luò)空間安全導(dǎo)論》 課件 08-密碼學(xué)基礎(chǔ)_第1頁
《網(wǎng)絡(luò)空間安全導(dǎo)論》 課件 08-密碼學(xué)基礎(chǔ)_第2頁
《網(wǎng)絡(luò)空間安全導(dǎo)論》 課件 08-密碼學(xué)基礎(chǔ)_第3頁
《網(wǎng)絡(luò)空間安全導(dǎo)論》 課件 08-密碼學(xué)基礎(chǔ)_第4頁
《網(wǎng)絡(luò)空間安全導(dǎo)論》 課件 08-密碼學(xué)基礎(chǔ)_第5頁
已閱讀5頁,還剩171頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

密碼學(xué)基礎(chǔ)01

密碼學(xué)概述了解密碼學(xué)基礎(chǔ)與發(fā)展教學(xué)目標(biāo)密碼學(xué)概述密碼學(xué)歷史密碼攻擊概述目錄密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)使信息保密的技術(shù)和科學(xué)叫密碼編碼學(xué)破譯密文的科學(xué)與技術(shù)叫密碼分析學(xué)密碼學(xué)是數(shù)學(xué)和計(jì)算機(jī)科學(xué)的分支,同時(shí)其原理大量涉及信息論。著名的密碼學(xué)者羅納德·李維斯特----密碼學(xué)是關(guān)于如何在敵人存在的環(huán)境中通信。概述思考密碼學(xué)能解決哪些問題?可用性?完整性?機(jī)密性?不可抵賴?概述信息安全的基本模型概述密碼學(xué)基本概念明文密文加密算法解密算法加密密鑰解密密鑰單鑰密碼體制雙鑰密碼體制概述概述加解密碼示意圖第一階段(1949年前)古典密碼發(fā)展階段隱寫術(shù),暗語、隱語、藏頭詩等采用手工或機(jī)械變換的方式實(shí)現(xiàn)單表代換密碼:Caesar密碼、仿射密碼多表代換密碼:Vigenere、Hill密碼等轉(zhuǎn)輪密碼:Enigma、Red密碼等密碼學(xué)的歷史與發(fā)展第二階段:近代密碼學(xué)階段(1949~1976)1949年,Shannon發(fā)表了《保密系統(tǒng)的通信理論》,用信息論的觀點(diǎn)分析了密碼學(xué)的基本原理,奠定了密碼學(xué)的理論基礎(chǔ)。1967年DavidKahn出版了《破譯者》一書。密碼學(xué)的歷史與發(fā)展現(xiàn)代密碼學(xué)階段(1976~至今)1976年,Diffie、Hellman發(fā)表《密碼學(xué)新方向》,開辟了公鑰密碼學(xué)的新領(lǐng)域;1976年,美國建立DES為聯(lián)邦標(biāo)準(zhǔn)密碼學(xué)的歷史與發(fā)展現(xiàn)代密碼學(xué)的主要發(fā)展方向混沌密碼學(xué):混沌加密的基本原理是利用混沌系統(tǒng)產(chǎn)生混沌序列作為密鑰序列,接收方用混沌同步的方法將明文信號(hào)提取出來實(shí)現(xiàn)解密。量子密碼學(xué):量子密碼學(xué)泛指利用量子力學(xué)的特性來加密的科學(xué)。任何試圖嘗試讀取量子態(tài)的行動(dòng),都會(huì)改變量子態(tài)本身。密碼學(xué)的歷史與發(fā)展受限制的(restricted)算法:算法的保密性基于保持算法的秘密?;诿荑€(key-based)的算法:算法的保密性基于對(duì)密鑰的保密。優(yōu)秀密碼算法應(yīng)該是基于密鑰的保密,而非算法的保密。密碼體制分類現(xiàn)代密碼學(xué)用密鑰解決問題,密鑰用K表示。K可以是很多值里的任意值。密鑰K的可能值的范圍叫做密鑰空間(keyspace)。如加密和解密都用一個(gè)密鑰,加/解密函數(shù)變成:

EK(M)=C DK(C)=M DK(EK(M))=M密碼體制分類單鑰體制,對(duì)稱加密加密密鑰和解密密鑰相同流密碼分組密碼雙鑰體制,非對(duì)稱加密1976年,Diffie和Hellman首先引入

一對(duì)密鑰:公鑰和私鑰密碼體制分類密碼攻擊概述攻擊類型攻擊者掌握的內(nèi)容惟密文攻擊加密算法截獲的部分密文已知明文攻擊加密算法截獲的部分密文一個(gè)或多個(gè)明文密文對(duì)選擇明文攻擊加密算法截獲的部分密文自己選擇的明文消息,以及由密鑰產(chǎn)生的相對(duì)密文選擇密文攻擊加密算法截獲的部分密文自己選擇的密文消息,以及相應(yīng)的被解密的明文算法的安全性如果破譯算法的代價(jià)大于加密數(shù)據(jù)價(jià)值,那么加密算法是安全的。如果破譯算法所需的時(shí)間比加密數(shù)據(jù)保密的時(shí)間長,那么你可能是安全的。密碼攻擊概述了解密碼學(xué)是什么了解密碼學(xué)的歷史與發(fā)展總結(jié)密碼學(xué)基礎(chǔ)02

編碼與密碼了解什么是編碼理解編碼與密碼的區(qū)別學(xué)習(xí)古典密碼學(xué)教學(xué)目標(biāo)編碼基礎(chǔ)古典密碼學(xué)目錄ASCII(AmericanStandardCodeforInformationInterchange,美國信息交換標(biāo)準(zhǔn)代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。ASCII是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC646。編碼基礎(chǔ)-ASCII標(biāo)準(zhǔn)ASCII碼也叫基礎(chǔ)ASCII碼,使用7位二進(jìn)制數(shù)(剩下的1位二進(jìn)制為0)來表示所有的大寫和小寫字母,數(shù)字0到9、標(biāo)點(diǎn)符號(hào)。后128個(gè)稱為擴(kuò)展ASCII碼。許多基于x86的系統(tǒng)都支持使用擴(kuò)展ASCII。擴(kuò)展ASCII碼允許將每個(gè)字符的第8位用于確定附加的128個(gè)特殊符號(hào)字符、外來語字母和圖形符號(hào)。編碼基礎(chǔ)-ASCII編碼基礎(chǔ)-ASCIIASCII因?yàn)橹挥?位長,只能表達(dá)256種字符。所以不能滿足其它國家需求。Unicode是國際組織制定的可以容納世界上所有文字和符號(hào)的字符編碼方案。使用16位的編碼空間。也就是每個(gè)字符占用2個(gè)字節(jié)。編碼基礎(chǔ)-unicodeUTF-8(8-bitUnicodeTransformationFormat)是一種針對(duì)Unicode的可變長度字符編碼在實(shí)際傳輸過程中,由于不同系統(tǒng)平臺(tái)的設(shè)計(jì)不一定一致,以及出于節(jié)省空間的目的,對(duì)Unicode編碼的實(shí)現(xiàn)方式有所不同,所以有UTFUTF-8使用一至六個(gè)字節(jié)為每個(gè)字符編碼編碼基礎(chǔ)--utf-8Base64是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的表示方法。每6個(gè)比特為一個(gè)單元,對(duì)應(yīng)某個(gè)可打印字符除了A-Z,a-z,0-9共62個(gè)字符還有“+”“/”,最后用“=”填充不能被3整除的空位。編碼基礎(chǔ)--BASE64基本情況主要考慮消息的保密性對(duì)于完整性和不可否任性沒有太多考慮古典密碼學(xué)古典密碼的加密是將明文的每一個(gè)字母代換為字母表中的另一個(gè)字母根據(jù)代換是對(duì)每個(gè)字母逐個(gè)進(jìn)行還是對(duì)多個(gè)字母同時(shí)進(jìn)行,古典密碼又分為單表代換密碼和多表代換密碼在CTF中通常是單表代換比較多古典密碼學(xué)通用特點(diǎn):對(duì)每個(gè)字母逐個(gè)進(jìn)行代換典型的有:

凱撒密碼

移位密碼

仿射密碼單表代換密碼凱撒密碼加密時(shí)將明文中的每個(gè)字母按字母表順序向前或向后移動(dòng)固定數(shù)目,作為密文如偏移量是左移3為例明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:DEFGHIJKLMNOPQRSTUVWXYZABC凱撒密碼與凱撒密碼類似,最早的凱撒密碼是固定左移3位。區(qū)別在于移位密碼可以任意移動(dòng),后期不僅處理26個(gè)字母,還會(huì)處理數(shù)字和特殊字符。參照ASCII碼表進(jìn)行位移。思考:除了位移以外,還可以采取什么方式替換?位移密碼

仿射密碼例子仿射密碼解密a=5b=8,a對(duì)26的乘法逆元為21。5*21mod26=1仿射密碼加密方式使用多個(gè)表解決了單表加密的頻率分析問題多表替換加密該算法基于5*5的字母矩陣,該矩陣使用一個(gè)關(guān)鍵詞構(gòu)造(即密鑰)從左到右、從上到下順序,填入關(guān)鍵詞的字母(去除重復(fù)字母)后,將字母表其作余字母填入。(I=J)將明文兩個(gè)分為一組,若出現(xiàn)相同字母,則用X替代最后字母。在每組中,查找矩陣替換:若兩個(gè)字母同行,則用右方字母替換若兩個(gè)字母同列,則用下方字母替換若即不同行也不同列,則用矩陣對(duì)角字母替換Playfair例子:以playfairexample為密鑰,構(gòu)造矩陣明文為:hidethegoldinthetreestump密文為:Playfair又稱棋盤密碼。將給定明文加密為兩兩組合的特征加密后結(jié)果只有5種字符ADFGX密碼是德軍在一戰(zhàn)中使用的欄塊密碼明文=A

T

T

A

C

K

A

T

O

N

C

E

密文:AFADADAFGFDXAFADDFFXGFXF

polybius

使用26個(gè)字母購成字母矩陣橫行為明文列,縱向?yàn)槊荑€列明文:comegreatwall密鑰:crypto擴(kuò)充密鑰與是明文一樣長密文efktzfgrrltznvigenere培根密碼柵欄密碼莫斯密碼其它類型密碼用兩種不同字體,代表A和B(或者0和1),結(jié)合加密表進(jìn)行加密。加密表如圖:明文:steganography正常字體是A,粗體是B,加密結(jié)果如圖培根密碼把明文分成N個(gè)一組,然后每組的第1個(gè)字連起來,然后連第2個(gè)……例子明文:THEREISACIPHER分組:THEREISACIPHER取出:TEESCPEHRIAIHR柵欄密碼用.與_表示,以前用于發(fā)電報(bào)莫斯密碼在CTF中,有很多密碼算法是出題者臨時(shí)想出并沒有真正的應(yīng)用過,此類密碼需要解題者思維活躍,根據(jù)現(xiàn)有的信息、線索和自己的經(jīng)驗(yàn),通過猜測(cè)、嘗試去解題CTF中的奇怪密碼ABCDE加密后就變?yōu)镋DCBA有可能是單詞倒述。如hello變?yōu)閛lleh有可能是短語+單詞倒述。如helloworld加密為dlrowolleh倒述加密ABCDE加密后變成QWERT按鍵盤位置轉(zhuǎn)換字母表,紅色是明文電腦鍵盤加密利用鍵盤上按鍵所在的行與列,進(jìn)行編號(hào)加密碼。下面是一種形態(tài)也有忽略大小寫的編號(hào)方法鍵盤密碼來源于以前的手機(jī)9鍵鍵盤輸入6,得到字母m,編碼為61輸入66,得到字母n,編碼為62輸入666,得到字母o,編碼為63手機(jī)鍵盤加密用漢字來表示數(shù)字,進(jìn)行編碼。漢字特點(diǎn)是出頭數(shù)量。如下:1 2 3 4 5 6 7 8 9 0由

進(jìn)

口當(dāng)鋪密碼編碼方式

解密方式豬圈密碼學(xué)習(xí)編碼的概述理解編碼與密碼的區(qū)別嘗試編寫代碼來實(shí)現(xiàn)簡單的單表代換加解密總結(jié)密碼學(xué)基礎(chǔ)03

對(duì)稱加密了解對(duì)稱加密算法理解對(duì)稱加密算法優(yōu)勢(shì)與缺點(diǎn)理解對(duì)稱加密算法應(yīng)用場景教學(xué)目標(biāo)對(duì)稱加密算法概述RC4DESAES目錄對(duì)稱密碼主要特征就是加密和解密使用相同的密鑰,也叫單密鑰加密。根據(jù)加密對(duì)象分為流加密,每次加密都通過密鑰生成一個(gè)密鑰流,解密也是使用同一個(gè)密鑰流,明文與同樣長度的密鑰流進(jìn)行異或運(yùn)算得到密文,密文與同樣的密鑰流進(jìn)行異或運(yùn)算得到明文。典型算法RC4塊加密,塊密碼算法也叫分組密碼算法,從字面意思就可以知道,它把加密和解密序列分成了一個(gè)個(gè)分組,最后把每一塊序列合并到一起,形成明文或者密文。根據(jù)不同的分組加密方式,每個(gè)分組之間可以有聯(lián)系,也可以沒有聯(lián)系。典型算法是DES和AES對(duì)稱加密基本概念RC4應(yīng)用廣泛,是典型的流加密算法。常見用于SSL/TLS,及802.11和WAP中。流加密會(huì)逐字節(jié)加密數(shù)據(jù),RC4本質(zhì)是以密鑰為種子(seed)產(chǎn)生的隨機(jī)數(shù)來對(duì)明文進(jìn)行逐字節(jié)異或。分組密碼與流密碼的區(qū)別就在于有無記憶性。RC4介紹概述每次加密明文中的一個(gè)字節(jié)密鑰長度可變,1-256字節(jié)基本流程初始化S和T計(jì)算排列S,j從0到255產(chǎn)生與明文等長的密鑰流加密運(yùn)算RC4介紹算法描述S和T的初始狀態(tài):S中元素的值按升序被置為0-255,同時(shí)建立一個(gè)臨時(shí)向量T。將密鑰的值循環(huán)復(fù)制到T向量中。S的初始置換用T產(chǎn)生S的初始置換,置換偽碼如下

j=0;

for(i=0;i<256;i++){

j=(j+S[i]+T[i])mod256;

swap(S[i],S[j]);

}RC4介紹密鑰流生成偽碼如下

i,j=0;

while(true){

i=(i+1)mod256;

j=(j+S[i])mod256;

swap(S[i],S[j]);

t=(S[i]+S[j])mod256;

k=S[t];

}RC4介紹RC4介紹數(shù)據(jù)加密標(biāo)準(zhǔn)(dataencryptionstandard,DES)是迄今為止世界上最為廣泛使用和流行的一種分組密碼算法它的分組長度為64比特,密鑰長度為56比特,它是由美國IBM公司研制DES在1975年3月17日首次被公布在聯(lián)邦記錄中,經(jīng)過大量的公開討論后,DES于1977年1月15日被正式批準(zhǔn)并作為美國聯(lián)邦信息處理標(biāo)準(zhǔn)1998年5月美國EFF(electronicsfrontierfoundation)宣布,他們以一臺(tái)價(jià)值20萬美元的計(jì)算機(jī)改裝成的專用解密機(jī),用56小時(shí)破譯了56比特密鑰的DES塊加密的解密流程和加密流程往往是不同的DES介紹

DES介紹初始轉(zhuǎn)換,舉例:64比特的輸入M,

置換:X=IP(M)64比特輸入 X=IP(M)DES介紹M1M2M3M4M5M6M7M8M9M10M11M12M13M14M15M16M17M18M19M20M21M22M23M24M25M26M27M28M29M30M31M32M33M34M35M36M37M38M39M40M41M42M43M44M45M46M47M48M49M50M51M52M53M54M55M56M57M58M59M60M61M62M63M64M58M50M42M34M26M18M10M2M60M52M44M36M28M20M12M4M62M54M46M38M30M22M14M6

M64M56M48M40M32M24M16M8

M57M49M41M33M25M17M9M1

M59M51M43M35M27M19M11M3

M61M53M45M37M29M21M13M5M63M55M47M39M31M23M15M7輪變換公式:DES介紹F中的代換由8個(gè)S盒組成每個(gè)S盒的輸入長為6比特輸出長為4比特其變換關(guān)系由表定義每個(gè)S盒給出了4個(gè)代換DES介紹密鑰的產(chǎn)生:56比特密鑰首先經(jīng)過一個(gè)置換運(yùn)算,然后將置換后的56比特分為各為28比特的左、右兩半,分別記為C0和D0。在第i輪分別對(duì)Ci-1和Di-1進(jìn)行左循環(huán)移位,所移位數(shù)由表給出。移位后的結(jié)果作為求下一輪子密鑰的輸入,同時(shí)也作為置換選擇2的輸入。通過置換選擇2產(chǎn)生的48比特的Ki,即為本輪的子密鑰,作為函數(shù)F(Ri-1,Ki)的輸入。其中置換選擇2由表定義。DES介紹為了提高DES的安全性,并利用實(shí)現(xiàn)DES的現(xiàn)有軟硬件,可將DES算法在多密鑰下多重使用。2DES是多重使用DES時(shí)最簡單的形式。其中明文為P,兩個(gè)加密密鑰為K1和K2,密文為:

3DES最初使用3個(gè)不同的密鑰做3次加密,這樣密鑰長度為56x3=168。一種實(shí)用的方法是僅使用兩個(gè)密鑰做3次加密,實(shí)現(xiàn)方式為加密\|解密\|加密,即:

2DES

3DES分組密碼在加密時(shí),明文分組的長度是固定的,而實(shí)際應(yīng)用中待加密消息的數(shù)據(jù)量是不定的,數(shù)據(jù)格式可能是多種多樣的。為了能在各種應(yīng)用場合使用DES,美國在FIPSPUS74和81中定義了DES的4種運(yùn)行模式這些加密模式大都可以歸類為兩種,即ECB模式和CBC模式ECB全稱為ElectronicCodeBook,是塊加密中比較簡單的加密模式。在ECB模式中,每一塊明文數(shù)據(jù)都被獨(dú)立地進(jìn)行加密來生成加密塊。這意味著如果你發(fā)現(xiàn)兩個(gè)加密塊有相同的內(nèi)容,那么就可以確定這兩個(gè)加密塊的原文也是相同CBC全稱為Cipher-BlockChaining,算是最常見的塊加密模式了。在CBC模式中,每個(gè)明文塊都會(huì)在加密前被使用前一個(gè)明文塊的秘文進(jìn)行異或;解密過程則正好相反。其中第一個(gè)明文塊會(huì)被使用IV即初始化向量進(jìn)行異或。DES的加密模式DES的加密模式模式描述用途電碼本(ECB)模式每個(gè)明文組獨(dú)立以同一密鑰加密傳送短數(shù)據(jù)(如一個(gè)加密密鑰)密碼分組鏈接(CBC)模式加密算法的輸入是當(dāng)前明文組與前一密文組的異或傳送數(shù)據(jù)流;認(rèn)證密碼反饋(CFB)模式每次只處理輸入的j比特,將上一次的密文用作加密算法的輸入以產(chǎn)生偽隨機(jī)輸出,該輸出再與當(dāng)前明文異或以產(chǎn)生當(dāng)前密文傳送數(shù)據(jù)流;認(rèn)證輸出反饋(OFB)模式與CFB類似,不同之處是本次加密算法的輸入為前一次加密算法的輸出有擾信道上(如衛(wèi)星通訊)傳送數(shù)據(jù)流差分密碼分析是迄今已知的攻擊迭代密碼最有效的方法之一,其基本思想是:通過分析明文對(duì)的差值對(duì)密文對(duì)的差值的影響來恢復(fù)某些密鑰比特。線性密碼分析是對(duì)迭代密碼的一種已知明文攻擊,它利用的是密碼算法中的“不平衡(有效)的線性逼近”。密碼分析1997年4月15日,美國ANSI發(fā)起征集AES(advancedencryptionstandard)的活動(dòng),并為此成立了AES工作小組。1998年8月,在首屆AES候選會(huì)議上公布了AES的15個(gè)候選算法。1999年3月,在第2屆AES候選會(huì)議上經(jīng)過對(duì)全球各密碼機(jī)構(gòu)和個(gè)人對(duì)候選算法分析結(jié)果的討論,從15個(gè)候選算法中選出了5個(gè)。2000年10月,NIST宣布Rijndael作為新的AES。至此,經(jīng)過3年多的討論,Rijndael終于脫穎而出。AES介紹Rijndael由比利時(shí)的JoanDaemen和VincentRijmen設(shè)計(jì),算法的原型是Square算法,它的設(shè)計(jì)策略是寬軌跡策略。寬軌跡策略是針對(duì)差分分析和線性分析提出的,它的最大優(yōu)點(diǎn)是可以給出算法的最佳差分特征的概率及最佳線性逼近的偏差的界。Rijndael密碼的設(shè)計(jì)力求滿足以下3條標(biāo)準(zhǔn):抵抗所有已知的攻擊。在多個(gè)平臺(tái)上速度快,編碼緊湊設(shè)計(jì)簡單。AES介紹加解密速度快安全性好適合大量數(shù)據(jù)加密對(duì)稱密碼應(yīng)用場景學(xué)習(xí)對(duì)稱加密算法概述掌握流加密、塊加密區(qū)別總結(jié)密碼學(xué)基礎(chǔ)04

公鑰密碼學(xué)理解公鑰密碼算法工作原理掌握公鑰密碼算法應(yīng)用場景教學(xué)目標(biāo)公鑰密碼體制的基本概念RSA算法學(xué)習(xí)其它加密算法簡介目錄在公鑰密碼體制前,所有密碼算法都是基于代換和置換公鑰密碼體制則為密碼學(xué)的發(fā)展提供了新的理論和技術(shù)基礎(chǔ)公鑰密碼算法的基本工具數(shù)學(xué)函數(shù)公鑰密碼算法是以非對(duì)稱的形式使用兩個(gè)密鑰公鑰密碼體制1976年以前,所有的加密方法都是同一種模式:加解密雙方使用相同算法,相同密鑰來進(jìn)行運(yùn)算得到結(jié)果。這種加密模式有一個(gè)最大弱點(diǎn):甲方必須把加密規(guī)則與密鑰告訴乙方,否則無法解密。保存和傳遞密鑰,就成了最頭疼的問題。公鑰密碼體制解決單鑰密碼體制中最難解決的兩個(gè)問題:密鑰分配和數(shù)字簽名公鑰密碼體制公鑰密碼體制算法條件產(chǎn)生一對(duì)密鑰是計(jì)算可行的已知公鑰、明文,產(chǎn)生密文是計(jì)算可行的利用私鑰、密文,得到明文是計(jì)算可行的利用公鑰來推斷私鑰是計(jì)算不可行的利用公鑰、密文,得到明文是計(jì)算不可行的公鑰密碼體制以上要求的本質(zhì)之處在于要求一個(gè)陷門單向函數(shù)總結(jié)為——陷門單向函數(shù)是一族可逆函數(shù)fk,滿足:①Y=fk(X)易于計(jì)算(當(dāng)k和X已知時(shí))。②X=f-1k(Y)易于計(jì)算(當(dāng)k和Y已知時(shí))。③X=f-1k(Y)計(jì)算上是不可行的(當(dāng)Y已知但k未知時(shí))上述表達(dá)②③中,k就是所指的陷門,已知K時(shí),可以進(jìn)行逆計(jì)算。公鑰密碼體制加密應(yīng)用公鑰密碼體制認(rèn)證應(yīng)用公鑰密碼體制認(rèn)證+加密公鑰密碼體制1976年,Diffie和Hellman提出公鑰密碼思想,可以在不直接傳遞密鑰的情況下,完成解密。這被稱為"Diffie-Hellman密鑰交換算法"。公鑰密碼體制RSA算法是1978年由R.Rivest,A.Shamir和L.Adleman提出的一種用數(shù)論構(gòu)造的、也是迄今為止理論上最為成熟完善的公鑰密碼體制,該體制已得到廣泛的應(yīng)用。RSA算法其他非對(duì)稱加密算法Merkel-Hellman背包算法McEliece算法ElGammal算法橢圓曲線密碼算法基于有限自動(dòng)機(jī)的公開密鑰算法(中國)公鑰密碼體制算法描述①選兩個(gè)保密的大素?cái)?shù)p和q。②計(jì)算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的歐拉函數(shù)值,

令k=φ(n)。③選一整數(shù)e,滿足1<e<k,且gcd(k,e)=1。即e與k互質(zhì)。④計(jì)算d,滿足d·e≡1mod(k),即d是e在模k下的乘法逆元,因e與k互質(zhì),由模運(yùn)算可知,它的乘法逆元一定存在。即d·e=k·t+1,t為正整數(shù)⑤以{e,n}為公鑰,{d,n}為私鑰。RSA加密算法

RSA加密算法

RSA算法

RSA算法RSA算法可靠性,若已知公鑰{e,n},求解d即可破解rsa算法回顧算法中一系列因素p初始大質(zhì)數(shù)q 初始大質(zhì)數(shù)nn=p*qφ(n)ee隨機(jī)選取公鑰de在模n下的乘法逆元RSA算法RSA的安全性已知公鑰{e,n},已知ed≡1(modφ(n))。如何求解d?問題變?yōu)榍蠼猞?n)φ(n)=(p-1)(q-1)-->問題變?yōu)榍蠼鈖q已知n=p*q,所以問題變?yōu)閚的因數(shù)分解。對(duì)于兩個(gè)大質(zhì)數(shù)相乘結(jié)果的因式分解,目前只能使用暴力破解。RSA算法密鑰為1024位或2048位。同學(xué)可以編程嘗試驗(yàn)證。RSA算法

其它公鑰加密算法

其它公鑰加密算法

其它公鑰加密算法

其它公鑰加密算法離散對(duì)數(shù)類,依賴離散對(duì)數(shù)難題主要有橢圓曲線上的離散對(duì)數(shù)數(shù)域上的離散對(duì)數(shù)算法EIGamal其它公鑰加密算法離散對(duì)數(shù)舉例其它公鑰加密算法學(xué)習(xí)公鑰密碼體制理解公鑰、私鑰的分別作用于加密與認(rèn)證場景下的應(yīng)用總結(jié)密碼學(xué)基礎(chǔ)05

密鑰交換學(xué)習(xí)密鑰交換算法理解密鑰管理的概念教學(xué)目標(biāo)Diffie-Hellman密鑰交換單密鑰加密體制的密鑰分配公鑰加密體制的密鑰管理目錄公鑰的分配方法:公開發(fā)布、公用目錄表、公鑰管理機(jī)構(gòu)、公鑰證書公鑰分配完成后,用戶就可以使用公鑰體制進(jìn)行保密通信。但是公鑰加密速度慢,進(jìn)行通信時(shí)不太合適。此時(shí)更適合使用對(duì)稱加密來通信。由此引申出對(duì)稱加密的密鑰分配管理問題。公鑰體制的密鑰管理Diffie-Hellman密鑰交換是W.Diffie和M.Hellman于1976年提出的第一個(gè)公鑰密碼算法算法的惟一目的是使得兩個(gè)用戶能夠安全地交換密鑰,得到一個(gè)共享的會(huì)話密鑰,算法本身不能用于加、解密。算法的安全性基于求離散對(duì)數(shù)的困難性。Diffie-Hellman密鑰交換

Diffie-Hellman密鑰交換

Diffie-Hellman密鑰交換在大量用戶需要互相通信時(shí),單密鑰體制,會(huì)使用大量密鑰。如有n個(gè)用戶要互相通信,此時(shí)需要n(n-1)/2個(gè)密鑰此時(shí)密鑰管理是一個(gè)嚴(yán)重的風(fēng)險(xiǎn)問題。引入KDC來解決這個(gè)問題密鑰分發(fā)中心KDC和每個(gè)終端用戶都共享一對(duì)唯一的主密鑰(用物理的方式傳遞,如U盾)。終端用戶之間每次會(huì)話,都要向KDC申請(qǐng)唯一的會(huì)話密鑰,會(huì)話密鑰通過與KDC共享的主密鑰加密來完成傳遞。單密鑰加密體制的密鑰分配建立一個(gè)共享的一次性會(huì)話密鑰,可通過以下幾步來完成:①A向KDC發(fā)出會(huì)話密鑰請(qǐng)求。表示請(qǐng)求的消息由兩個(gè)數(shù)據(jù)項(xiàng)組成,第1項(xiàng)是A和B的身份,第2項(xiàng)是這次業(yè)務(wù)的惟一識(shí)別符N1。②KDC為A的請(qǐng)求發(fā)出應(yīng)答。應(yīng)答是由KA加密的消息,因此只有A才能成功地對(duì)這一消息解密,并且A可相信這一消息的確是由KDC發(fā)出的。③A存儲(chǔ)會(huì)話密鑰,并向B轉(zhuǎn)發(fā)EKB[KS‖IDA]。因?yàn)檗D(zhuǎn)發(fā)的是由KB加密后的密文,所以轉(zhuǎn)發(fā)過程不會(huì)被竊聽。B收到后,可得會(huì)話密鑰KS,并從IDA可知另一方是A,而且還從EKB知道KS的確來自KDC。④B用會(huì)話密鑰KS加密另一個(gè)一次性隨機(jī)數(shù)N2,并將加密結(jié)果發(fā)送給A。⑤A以f(N2)作為對(duì)B的應(yīng)答,其中f是對(duì)N2進(jìn)行某種變換(例如加1)的函數(shù),并將應(yīng)答用會(huì)話密鑰加密后發(fā)送給B。單密鑰加密體制的密鑰分配密鑰分配實(shí)例單密鑰加密體制的密鑰分配

無KDC的密鑰分配兩個(gè)用戶A和B建立會(huì)話密鑰需經(jīng)過以下3步(A與B已經(jīng)有共享主密鑰)①A向B發(fā)出建立會(huì)話密鑰的請(qǐng)求和一個(gè)一次性隨機(jī)數(shù)N1。②B用與A共享的主密鑰MKm對(duì)應(yīng)答的消息加密,并發(fā)送給A。應(yīng)答的消息中有B選取的會(huì)話密鑰、B的身份、f(N1)和另一個(gè)一次性隨機(jī)數(shù)N2。③A使用新建立的會(huì)話密鑰KS對(duì)f(N2)加密后返回給B。單密鑰加密體制的密鑰分配單密鑰加密體制的密鑰分配基于公鑰管理機(jī)構(gòu)的公鑰分配:①用戶A向公鑰管理機(jī)構(gòu)發(fā)送帶時(shí)戳的消息,請(qǐng)求獲取用戶B的公鑰。②管理機(jī)構(gòu)作出應(yīng)答,該消息由管理機(jī)構(gòu)用自己的私鑰SKAU加密,因此A能用管理機(jī)構(gòu)的公開鑰解密,并確認(rèn)該消息的真實(shí)性。③A用B的公鑰對(duì)一個(gè)消息加密發(fā)往B,這個(gè)消息有兩個(gè)數(shù)據(jù)項(xiàng):一是A的身份IDA,二是一個(gè)一次性隨機(jī)數(shù)N1,用于惟一地標(biāo)識(shí)這次業(yè)務(wù)。④⑤B以相同方式從管理機(jī)構(gòu)獲取A的公開鑰(與步驟①、②類似)。這時(shí),A和B都已安全地得到了對(duì)方的公鑰,所以可進(jìn)行保密通信。然而,他們也許還希望有以下兩步,以認(rèn)證對(duì)方。公鑰加密體制的密鑰管理⑥B用PKA對(duì)一個(gè)消息加密后發(fā)往A,該消息的數(shù)據(jù)項(xiàng)有A的一次性隨機(jī)數(shù)N1和B產(chǎn)生的一個(gè)一次性隨機(jī)數(shù)N2。因?yàn)橹挥蠦能解密③的消息,所以A收到的消息中的N1可使其相信通信的另一方的確是B。⑦

A用B的公開鑰對(duì)N2加密后返回給B,可使B相信通信的另一方的確是A。公鑰加密體制的密鑰管理公鑰加密體制的密鑰管理基于公鑰證書管理公鑰用戶通過公鑰證書來互相交換自己的公鑰而無須與公鑰管理機(jī)構(gòu)聯(lián)系。公鑰證書由證書管理機(jī)構(gòu)CA(certificateauthority)為用戶建立,其中的數(shù)據(jù)項(xiàng)有與該用戶的秘密鑰相匹配的公開鑰及用戶的身份和時(shí)戳等。所有的數(shù)據(jù)項(xiàng)經(jīng)CA用自己的秘密鑰簽字后就形成證書,即證書的形式為:CA=ESKCA[T,IDA,PKA]IDA是用戶A的身份,PKA是A的公鑰,T是當(dāng)前時(shí)戳,SKCA是CA的秘密鑰,CA即是為用戶A產(chǎn)生的證書公鑰加密體制的密鑰管理公鑰加密體制的密鑰管理使用公鑰加密體制分配對(duì)稱密鑰如果A希望與B通信,可通過以下幾步建立會(huì)話密鑰:①A產(chǎn)生自己的一對(duì)密鑰{PKA,SKA},并向B發(fā)送PKA||IDA,其中IDA表示A的身份。②B產(chǎn)生會(huì)話密鑰KS,并用A的公開鑰PKA對(duì)KS加密后發(fā)往A。③A由DSKA[EPKA[KS]]恢復(fù)會(huì)話密鑰。因?yàn)橹挥蠥能解讀KS,所以僅A、B知道這一共享密鑰。④A銷毀{PKA,SKA},B銷毀PKA。公鑰加密體制的密鑰管理簡單使用公鑰加密算法建立會(huì)話密鑰這種建議容易受到中間人攻擊公鑰加密體制的密鑰管理具有保密性和認(rèn)證性的密鑰分配假定A、B雙方已完成公鑰交換,可按以下步驟建立共享會(huì)話密鑰:①A用B的公開鑰加密A的身份IDA和一個(gè)一次性隨機(jī)數(shù)N1后發(fā)往B②B用A的公開鑰PKA加密A的一次性隨機(jī)數(shù)N1和B新產(chǎn)生的一次性隨機(jī)數(shù)N2后發(fā)往A。因?yàn)橹挥蠦能解讀①中的加密,所以B發(fā)來的消息中N1的存在可使A相信對(duì)方的確是B。③A用B的公鑰PKB對(duì)N2加密后返回給B,以使B相信對(duì)方的確是A。④A選一會(huì)話密鑰KS,然后將M=EPKB[ESKA[KS]]發(fā)給B,其中用B的公開鑰加密是為保證只有B能解讀加密結(jié)果,用A的秘密鑰加密是保證該加密結(jié)果只有A能發(fā)送。⑤B以DPKA[DSKB[M]]恢復(fù)會(huì)話密鑰。公鑰加密體制的密鑰管理具有保密性和認(rèn)證性的密鑰分配公鑰加密體制的密鑰管理掌握DH算法,想一想,在什么地方見過DH算法的配置?理解密鑰管理總結(jié)密碼學(xué)基礎(chǔ)06

哈希算法理解哈希算法作用理解哈希算法的應(yīng)用場景教學(xué)目標(biāo)哈希函數(shù)概念哈希算法MD5SHAHMAC介紹目錄哈希函數(shù)也可以稱為雜湊函數(shù)哈希函數(shù)H是公開函數(shù),用于將任意長的消息M映射為較短的、固定長度的一個(gè)值H(M),稱函數(shù)值H(M)為雜湊值、哈希值或消息摘要。哈希函數(shù)哈希函數(shù)的條件哈希函數(shù)的目的是為需認(rèn)證的數(shù)據(jù)產(chǎn)生一個(gè)“指紋”。為了能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的認(rèn)證,哈希函數(shù)應(yīng)滿足以下條件:①函數(shù)的輸入可以是任意長。②函數(shù)的輸出是固定長。③已知x,求H(x)較為容易,可用硬件或軟件實(shí)現(xiàn)。④已知h,求使得H(x)=h的x在計(jì)算上是不可行的,這一性質(zhì)稱為函數(shù)的單向性,稱H(x)為單向雜湊函數(shù)。哈希函數(shù)⑤已知x,找出y(y≠x)使得H(y)=H(x)在計(jì)算上是不可行的。如果單向雜湊函數(shù)滿足這一性質(zhì),則稱其為弱單向雜湊函數(shù)。⑥找出任意兩個(gè)不同的輸入x、y,使得H(y)=H(x)在計(jì)算上是不可行的。如果單向雜湊函數(shù)滿足這一性質(zhì),則稱其為強(qiáng)單向雜湊函數(shù)。第⑤和第⑥個(gè)條件給出了雜湊函數(shù)無碰撞性的概念,如果雜湊函數(shù)對(duì)不同的輸入可產(chǎn)生相同的輸出,則稱該函數(shù)具有碰撞性。哈希函數(shù)生日悖論

在k人中,有兩人生日相同的概率為0.5時(shí),k有多大?定義:設(shè)有k個(gè)整數(shù)項(xiàng),每項(xiàng)在1到n之間等可能取值。則k個(gè)整數(shù)項(xiàng)中至少有兩個(gè)取值相同的概率為P(n,k);k個(gè)數(shù)據(jù)項(xiàng)中任意兩個(gè)取值都不同的概率,記為Q(n,k)生日悖論求P(365,k)≥0.5的最小k哈希函數(shù)生日悖論常規(guī)理解是k≥365/2時(shí),P(365,k)≥0.5實(shí)際上k≤365,k個(gè)數(shù)據(jù)項(xiàng)中任意兩個(gè)都不相同的所有取值方式數(shù)為經(jīng)測(cè)算 P(365,23)=0.5073 P(365,100)=0.9999997哈希函數(shù)將生日悖論推廣為下述問題:已知一個(gè)在1到n之間均勻分布的整數(shù)型隨機(jī)變量,若該變量的k個(gè)取值中至少有兩個(gè)取值相同的概率大于0.5,則k至少多大?與上類似,

令P(n,k)>0.5,可得若取n=365,則

哈希函數(shù)生日悖論的本質(zhì)就是隨著元素的增多,出現(xiàn)重復(fù)元素的概率會(huì)以驚人速度增長,而并非我們認(rèn)為的線性增長。哈希函數(shù)的碰撞性,就是我們所提到的生日攻擊。隨著k值增長,哈希函數(shù)發(fā)生碰撞的概率是否會(huì)極速增大?哈希函數(shù)

哈希函數(shù)MD4是MD5雜湊算法的前身,由RonRivest于1990年10月作為RFC提出,1992年4月公布的MD4的改進(jìn)(RFC1320,1321)稱為MD5。MD5算法采用迭代型雜湊函數(shù)的一般結(jié)構(gòu)。算法的輸入為任意長的消息,分為512比特長的分組,輸出為128比特的消息摘要。MD5算法MD5算法MD5處理步驟對(duì)消息填充,使得其比特長在模512下為448。附加消息的長度用步驟①留出的64比特以little-endian方式來表示消息被填充前的長度。如果消息長度大于264,則以264為模數(shù)取模。對(duì)MD緩沖區(qū)初始化算法使用128比特長的緩沖區(qū)以存儲(chǔ)中間結(jié)果和最終雜湊值,緩沖區(qū)可表示為4個(gè)32比特長的寄存器(A,B,C,D)以分組為單位對(duì)消息進(jìn)行處理每一分組都經(jīng)一壓縮函數(shù)HMD5處理。HMD5是算法的核心。MD5算法MD5算法HMD5的4輪處理過程結(jié)構(gòu)一樣,但所用的邏輯函數(shù)不同,分別表示為F、G、H、I。輸入:當(dāng)前處理的消息分組Yq和緩沖區(qū)的當(dāng)前值輸出:第4輪的輸出與第1輪的輸入CVq相加MD5的安全性目前對(duì)MD5的攻擊已取得以下結(jié)果對(duì)單輪MD5使用差分密碼分析,可在合理的時(shí)間內(nèi)找出具有相同雜湊值的兩個(gè)消息??烧页鲆粋€(gè)消息分組和兩個(gè)相關(guān)的鏈接變量(即緩沖區(qū)變量ABCD),使得算法產(chǎn)生出相同的輸出。對(duì)單個(gè)512比特長的消息分組已成功地找出了碰撞,即可找出另一個(gè)消息分組,使得算法對(duì)兩個(gè)消息分組的128比特長的輸出相同。MD5算法SHA家族的五個(gè)算法:分別是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,后四者可并稱為SHA-2,而SHA-2是組合值,有不同的位數(shù),其中最受歡迎的是256位。SHA-1和SHA-2是該算法不同的兩個(gè)版本,它們的構(gòu)造和簽名的長度都有所不一樣,但可以把SHA-2理解為SHA-1的繼承者。SHA1和SHA2由于SHA與MD5都是由MD4演化而來,所以兩個(gè)算法極為相似??箵舾F搜索攻擊的強(qiáng)度高于MD5抗擊窮搜索攻擊的強(qiáng)度。由于SHA的設(shè)計(jì)準(zhǔn)則未被公開,所以它抗擊密碼分析攻擊的強(qiáng)度較難判斷,似乎高于MD5的強(qiáng)度。SHA的速度要比MD5的速度慢。兩個(gè)算法描述起來都較為簡單,實(shí)現(xiàn)起來也較為簡單,都不需要大的程序和代換表。MD5使用little-endian方式,SHA使用big-endian方式。SHA1和SHA2在密碼學(xué)中,消息認(rèn)證碼(Messageauthenticationcode)被簡稱為MAC。又稱消息鑒別碼,文件消息認(rèn)證碼,信息認(rèn)證碼。MAC是經(jīng)過特定算法后產(chǎn)生的一小段信息,檢查某段消息的完整性,以及作身份驗(yàn)證。MAC算法與哈希函數(shù)最大區(qū)別在于,MAC加入了密鑰到運(yùn)算中。MACMAC眾多MAC算法里面,HMAC是最流行的之一RFC2104公布HMAC,并在IPSec和其他網(wǎng)絡(luò)協(xié)議(如SSL)中廣泛應(yīng)用。RFC2104列舉了HMAC的以下設(shè)計(jì)目標(biāo):可不經(jīng)修改而使用現(xiàn)有的雜湊函數(shù)鑲嵌的雜湊函數(shù)可易于替換為更快或更安全的雜湊函數(shù)。保持鑲嵌的雜湊函數(shù)的最初性能,不因用于HMAC而使其性能降低以簡單方式使用和處理密鑰易于分析HMAC用于認(rèn)證時(shí)的密碼強(qiáng)度MAC算法的輸出可如下表示:MAC算法的運(yùn)行過程可描述如下:K的左邊填充0以產(chǎn)生一個(gè)b比特長的K+(例如K的長為160比特,b=512,則需填充44個(gè)零字節(jié)0x00)。K+與ipad逐比特異或以產(chǎn)生b比特的分組Si。將M鏈接到Si后。將H作用于步驟3產(chǎn)生的數(shù)據(jù)流。K+與opad逐比特異或,以產(chǎn)生b比特長的分組S0。將步驟4得到的雜湊值鏈接在S0后。將H作用于步驟6產(chǎn)生的數(shù)據(jù)流并輸出最終結(jié)果。MAC理解哈希算法作用理解MAC與哈希的應(yīng)用關(guān)系想一下,在哪里見到過哈希值?總結(jié)密碼學(xué)基礎(chǔ)07

數(shù)字簽名與電子證書學(xué)習(xí)數(shù)字簽名及應(yīng)用教學(xué)目標(biāo)數(shù)字簽名的基本概念數(shù)字簽名標(biāo)準(zhǔn)x.509認(rèn)證SSL/TLS介紹目錄在收發(fā)雙方未建立起完全的信任關(guān)系且存在利害沖突的情況下,僅僅使用MAC就可能仍然不夠安全。數(shù)字簽名技術(shù)用于解決此類問題。數(shù)字簽名具有以下性質(zhì):能夠驗(yàn)證簽字產(chǎn)生者的身份,以及產(chǎn)生簽字的日期和時(shí)間。能用于證實(shí)被簽消息的內(nèi)容。數(shù)字簽字可由第三方驗(yàn)證,從而能夠解決通信雙方的爭議。數(shù)字簽名基本概念為實(shí)現(xiàn)上述3條性質(zhì),數(shù)字簽字應(yīng)滿足以下要求:簽字的產(chǎn)生必須使用發(fā)方獨(dú)有的一些信息以防偽造和否認(rèn)。簽字的產(chǎn)生應(yīng)較為容易。簽字的識(shí)別和驗(yàn)證應(yīng)較為容易。對(duì)已知的數(shù)字簽字構(gòu)造一新的消息或?qū)σ阎南?gòu)造一假冒的數(shù)字簽字在計(jì)算上都是不可行的。數(shù)字簽名基本概念數(shù)字簽字標(biāo)準(zhǔn)DSS(DigitalSignatureStandard)是由美國NIST公布的聯(lián)邦信息處理標(biāo)準(zhǔn)FIPSPUB186,其中采用了上一章介紹的SHA和一種新的簽字技術(shù),稱為DSA(DigitalSignatureAlgorithm)。DSS最初于1991年公布,在考慮了公眾對(duì)其安全性的反饋意見后,于1993年公布了其修改版。數(shù)字簽名標(biāo)準(zhǔn)DSS與RSA比較RSA算法既能用于加密和簽名,又能用于密鑰交換。DSS使用的算法只能提供數(shù)字簽字功能數(shù)字簽名標(biāo)準(zhǔn)DSA的步驟數(shù)字簽名標(biāo)準(zhǔn)DSA的步驟,上圖中pgq為全局公開鑰x為用戶私鑰y為用戶公鑰k為用戶秘密選取的隨機(jī)數(shù)最終簽名為(r,s)r由一系列公鑰算出,s由消息原文算出。r可用于第三方驗(yàn)證s用于完整性與真實(shí)性數(shù)字簽名標(biāo)準(zhǔn)X.509是密碼學(xué)里公鑰證書的格式標(biāo)準(zhǔn)

X.509證書己應(yīng)用在包括TLS/SSL在內(nèi)的眾多Intenet協(xié)議里X.509證書里含有公鑰、身份信息(比如網(wǎng)絡(luò)主機(jī)名,組織的名稱或個(gè)體名稱等)和簽名信息x.509證書X.509的格式x.509證書X.509有多種常用的擴(kuò)展名。但具有這個(gè)擴(kuò)展名的文件可能并不是證書,比如說可能只是保存了私鑰.pem–DER編碼的證書再進(jìn)行Base64

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論