版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(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é)和計算機科學(xué)的分支,同時其原理大量涉及信息論。著名的密碼學(xué)者羅納德·李維斯特----密碼學(xué)是關(guān)于如何在敵人存在的環(huán)境中通信。概述思考密碼學(xué)能解決哪些問題?可用性?完整性?機密性?不可抵賴?概述信息安全的基本模型概述密碼學(xué)基本概念明文密文加密算法解密算法加密密鑰解密密鑰單鑰密碼體制雙鑰密碼體制概述概述加解密碼示意圖第一階段(1949年前)古典密碼發(fā)展階段隱寫術(shù),暗語、隱語、藏頭詩等采用手工或機械變換的方式實現(xiàn)單表代換密碼:Caesar密碼、仿射密碼多表代換密碼:Vigenere、Hill密碼等轉(zhuǎn)輪密碼:Enigma、Red密碼等密碼學(xué)的歷史與發(fā)展第二階段:近代密碼學(xué)階段(1949~1976)1949年,Shannon發(fā)表了《保密系統(tǒng)的通信理論》,用信息論的觀點分析了密碼學(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)生混沌序列作為密鑰序列,接收方用混沌同步的方法將明文信號提取出來實現(xiàn)解密。量子密碼學(xué):量子密碼學(xué)泛指利用量子力學(xué)的特性來加密的科學(xué)。任何試圖嘗試讀取量子態(tài)的行動,都會改變量子態(tài)本身。密碼學(xué)的歷史與發(fā)展受限制的(restricted)算法:算法的保密性基于保持算法的秘密。基于密鑰(key-based)的算法:算法的保密性基于對密鑰的保密。優(yōu)秀密碼算法應(yīng)該是基于密鑰的保密,而非算法的保密。密碼體制分類現(xiàn)代密碼學(xué)用密鑰解決問題,密鑰用K表示。K可以是很多值里的任意值。密鑰K的可能值的范圍叫做密鑰空間(keyspace)。如加密和解密都用一個密鑰,加/解密函數(shù)變成:
EK(M)=C DK(C)=M DK(EK(M))=M密碼體制分類單鑰體制,對稱加密加密密鑰和解密密鑰相同流密碼分組密碼雙鑰體制,非對稱加密1976年,Diffie和Hellman首先引入
一對密鑰:公鑰和私鑰密碼體制分類密碼攻擊概述攻擊類型攻擊者掌握的內(nèi)容惟密文攻擊加密算法截獲的部分密文已知明文攻擊加密算法截獲的部分密文一個或多個明文密文對選擇明文攻擊加密算法截獲的部分密文自己選擇的明文消息,以及由密鑰產(chǎn)生的相對密文選擇密文攻擊加密算法截獲的部分密文自己選擇的密文消息,以及相應(yīng)的被解密的明文算法的安全性如果破譯算法的代價大于加密數(shù)據(jù)價值,那么加密算法是安全的。如果破譯算法所需的時間比加密數(shù)據(jù)保密的時間長,那么你可能是安全的。密碼攻擊概述了解密碼學(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位二進制數(shù)(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數(shù)字0到9、標(biāo)點符號。后128個稱為擴展ASCII碼。許多基于x86的系統(tǒng)都支持使用擴展ASCII。擴展ASCII碼允許將每個字符的第8位用于確定附加的128個特殊符號字符、外來語字母和圖形符號。編碼基礎(chǔ)-ASCII編碼基礎(chǔ)-ASCIIASCII因為只有8位長,只能表達256種字符。所以不能滿足其它國家需求。Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案。使用16位的編碼空間。也就是每個字符占用2個字節(jié)。編碼基礎(chǔ)-unicodeUTF-8(8-bitUnicodeTransformationFormat)是一種針對Unicode的可變長度字符編碼在實際傳輸過程中,由于不同系統(tǒng)平臺的設(shè)計不一定一致,以及出于節(jié)省空間的目的,對Unicode編碼的實現(xiàn)方式有所不同,所以有UTFUTF-8使用一至六個字節(jié)為每個字符編碼編碼基礎(chǔ)--utf-8Base64是一種基于64個可打印字符來表示二進制數(shù)據(jù)的表示方法。每6個比特為一個單元,對應(yīng)某個可打印字符除了A-Z,a-z,0-9共62個字符還有“+”“/”,最后用“=”填充不能被3整除的空位。編碼基礎(chǔ)--BASE64基本情況主要考慮消息的保密性對于完整性和不可否任性沒有太多考慮古典密碼學(xué)古典密碼的加密是將明文的每一個字母代換為字母表中的另一個字母根據(jù)代換是對每個字母逐個進行還是對多個字母同時進行,古典密碼又分為單表代換密碼和多表代換密碼在CTF中通常是單表代換比較多古典密碼學(xué)通用特點:對每個字母逐個進行代換典型的有:
凱撒密碼
移位密碼
仿射密碼單表代換密碼凱撒密碼加密時將明文中的每個字母按字母表順序向前或向后移動固定數(shù)目,作為密文如偏移量是左移3為例明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:DEFGHIJKLMNOPQRSTUVWXYZABC凱撒密碼與凱撒密碼類似,最早的凱撒密碼是固定左移3位。區(qū)別在于移位密碼可以任意移動,后期不僅處理26個字母,還會處理數(shù)字和特殊字符。參照ASCII碼表進行位移。思考:除了位移以外,還可以采取什么方式替換?位移密碼
仿射密碼例子仿射密碼解密a=5b=8,a對26的乘法逆元為21。5*21mod26=1仿射密碼加密方式使用多個表解決了單表加密的頻率分析問題多表替換加密該算法基于5*5的字母矩陣,該矩陣使用一個關(guān)鍵詞構(gòu)造(即密鑰)從左到右、從上到下順序,填入關(guān)鍵詞的字母(去除重復(fù)字母)后,將字母表其作余字母填入。(I=J)將明文兩個分為一組,若出現(xiàn)相同字母,則用X替代最后字母。在每組中,查找矩陣替換:若兩個字母同行,則用右方字母替換若兩個字母同列,則用下方字母替換若即不同行也不同列,則用矩陣對角字母替換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個字母購成字母矩陣橫行為明文列,縱向為密鑰列明文:comegreatwall密鑰:crypto擴充密鑰與是明文一樣長密文efktzfgrrltznvigenere培根密碼柵欄密碼莫斯密碼其它類型密碼用兩種不同字體,代表A和B(或者0和1),結(jié)合加密表進行加密。加密表如圖:明文:steganography正常字體是A,粗體是B,加密結(jié)果如圖培根密碼把明文分成N個一組,然后每組的第1個字連起來,然后連第2個……例子明文:THEREISACIPHER分組:THEREISACIPHER取出:TEESCPEHRIAIHR柵欄密碼用.與_表示,以前用于發(fā)電報莫斯密碼在CTF中,有很多密碼算法是出題者臨時想出并沒有真正的應(yīng)用過,此類密碼需要解題者思維活躍,根據(jù)現(xiàn)有的信息、線索和自己的經(jīng)驗,通過猜測、嘗試去解題CTF中的奇怪密碼ABCDE加密后就變?yōu)镋DCBA有可能是單詞倒述。如hello變?yōu)閛lleh有可能是短語+單詞倒述。如helloworld加密為dlrowolleh倒述加密ABCDE加密后變成QWERT按鍵盤位置轉(zhuǎn)換字母表,紅色是明文電腦鍵盤加密利用鍵盤上按鍵所在的行與列,進行編號加密碼。下面是一種形態(tài)也有忽略大小寫的編號方法鍵盤密碼來源于以前的手機9鍵鍵盤輸入6,得到字母m,編碼為61輸入66,得到字母n,編碼為62輸入666,得到字母o,編碼為63手機鍵盤加密用漢字來表示數(shù)字,進行編碼。漢字特點是出頭數(shù)量。如下:1 2 3 4 5 6 7 8 9 0由
中
人
工
大
王
夫
進
羊
口當(dāng)鋪密碼編碼方式
解密方式豬圈密碼學(xué)習(xí)編碼的概述理解編碼與密碼的區(qū)別嘗試編寫代碼來實現(xiàn)簡單的單表代換加解密總結(jié)密碼學(xué)基礎(chǔ)03
對稱加密了解對稱加密算法理解對稱加密算法優(yōu)勢與缺點理解對稱加密算法應(yīng)用場景教學(xué)目標(biāo)對稱加密算法概述RC4DESAES目錄對稱密碼主要特征就是加密和解密使用相同的密鑰,也叫單密鑰加密。根據(jù)加密對象分為流加密,每次加密都通過密鑰生成一個密鑰流,解密也是使用同一個密鑰流,明文與同樣長度的密鑰流進行異或運算得到密文,密文與同樣的密鑰流進行異或運算得到明文。典型算法RC4塊加密,塊密碼算法也叫分組密碼算法,從字面意思就可以知道,它把加密和解密序列分成了一個個分組,最后把每一塊序列合并到一起,形成明文或者密文。根據(jù)不同的分組加密方式,每個分組之間可以有聯(lián)系,也可以沒有聯(lián)系。典型算法是DES和AES對稱加密基本概念RC4應(yīng)用廣泛,是典型的流加密算法。常見用于SSL/TLS,及802.11和WAP中。流加密會逐字節(jié)加密數(shù)據(jù),RC4本質(zhì)是以密鑰為種子(seed)產(chǎn)生的隨機數(shù)來對明文進行逐字節(jié)異或。分組密碼與流密碼的區(qū)別就在于有無記憶性。RC4介紹概述每次加密明文中的一個字節(jié)密鑰長度可變,1-256字節(jié)基本流程初始化S和T計算排列S,j從0到255產(chǎn)生與明文等長的密鑰流加密運算RC4介紹算法描述S和T的初始狀態(tài):S中元素的值按升序被置為0-255,同時建立一個臨時向量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)宣布,他們以一臺價值20萬美元的計算機改裝成的專用解密機,用56小時破譯了56比特密鑰的DES塊加密的解密流程和加密流程往往是不同的DES介紹
DES介紹初始轉(zhuǎn)換,舉例:64比特的輸入M,
置換:X=IP(M)64比特輸入 X=IP(M)DES介紹M1M2M3M4M5M6M7M8M9M10M11M12M13M14M15M16M17M18M19M20M21M22M23M24M25M26M27M28M29M30M31M32M33M34M35M36M37M38M39M40M41M42M43M44M45M46M47M48M49M50M51M52M53M54M55M56M57M58M59M60M61M62M63M64M58M50M42M34M26M18M10M2M60M52M44M36M28M20M12M4M62M54M46M38M30M22M14M6
M64M56M48M40M32M24M16M8
M57M49M41M33M25M17M9M1
M59M51M43M35M27M19M11M3
M61M53M45M37M29M21M13M5M63M55M47M39M31M23M15M7輪變換公式:DES介紹F中的代換由8個S盒組成每個S盒的輸入長為6比特輸出長為4比特其變換關(guān)系由表定義每個S盒給出了4個代換DES介紹密鑰的產(chǎn)生:56比特密鑰首先經(jīng)過一個置換運算,然后將置換后的56比特分為各為28比特的左、右兩半,分別記為C0和D0。在第i輪分別對Ci-1和Di-1進行左循環(huán)移位,所移位數(shù)由表給出。移位后的結(jié)果作為求下一輪子密鑰的輸入,同時也作為置換選擇2的輸入。通過置換選擇2產(chǎn)生的48比特的Ki,即為本輪的子密鑰,作為函數(shù)F(Ri-1,Ki)的輸入。其中置換選擇2由表定義。DES介紹為了提高DES的安全性,并利用實現(xiàn)DES的現(xiàn)有軟硬件,可將DES算法在多密鑰下多重使用。2DES是多重使用DES時最簡單的形式。其中明文為P,兩個加密密鑰為K1和K2,密文為:
3DES最初使用3個不同的密鑰做3次加密,這樣密鑰長度為56x3=168。一種實用的方法是僅使用兩個密鑰做3次加密,實現(xiàn)方式為加密\|解密\|加密,即:
2DES
3DES分組密碼在加密時,明文分組的長度是固定的,而實際應(yīng)用中待加密消息的數(shù)據(jù)量是不定的,數(shù)據(jù)格式可能是多種多樣的。為了能在各種應(yīng)用場合使用DES,美國在FIPSPUS74和81中定義了DES的4種運行模式這些加密模式大都可以歸類為兩種,即ECB模式和CBC模式ECB全稱為ElectronicCodeBook,是塊加密中比較簡單的加密模式。在ECB模式中,每一塊明文數(shù)據(jù)都被獨立地進行加密來生成加密塊。這意味著如果你發(fā)現(xiàn)兩個加密塊有相同的內(nèi)容,那么就可以確定這兩個加密塊的原文也是相同CBC全稱為Cipher-BlockChaining,算是最常見的塊加密模式了。在CBC模式中,每個明文塊都會在加密前被使用前一個明文塊的秘文進行異或;解密過程則正好相反。其中第一個明文塊會被使用IV即初始化向量進行異或。DES的加密模式DES的加密模式模式描述用途電碼本(ECB)模式每個明文組獨立以同一密鑰加密傳送短數(shù)據(jù)(如一個加密密鑰)密碼分組鏈接(CBC)模式加密算法的輸入是當(dāng)前明文組與前一密文組的異或傳送數(shù)據(jù)流;認(rèn)證密碼反饋(CFB)模式每次只處理輸入的j比特,將上一次的密文用作加密算法的輸入以產(chǎn)生偽隨機輸出,該輸出再與當(dāng)前明文異或以產(chǎn)生當(dāng)前密文傳送數(shù)據(jù)流;認(rèn)證輸出反饋(OFB)模式與CFB類似,不同之處是本次加密算法的輸入為前一次加密算法的輸出有擾信道上(如衛(wèi)星通訊)傳送數(shù)據(jù)流差分密碼分析是迄今已知的攻擊迭代密碼最有效的方法之一,其基本思想是:通過分析明文對的差值對密文對的差值的影響來恢復(fù)某些密鑰比特。線性密碼分析是對迭代密碼的一種已知明文攻擊,它利用的是密碼算法中的“不平衡(有效)的線性逼近”。密碼分析1997年4月15日,美國ANSI發(fā)起征集AES(advancedencryptionstandard)的活動,并為此成立了AES工作小組。1998年8月,在首屆AES候選會議上公布了AES的15個候選算法。1999年3月,在第2屆AES候選會議上經(jīng)過對全球各密碼機構(gòu)和個人對候選算法分析結(jié)果的討論,從15個候選算法中選出了5個。2000年10月,NIST宣布Rijndael作為新的AES。至此,經(jīng)過3年多的討論,Rijndael終于脫穎而出。AES介紹Rijndael由比利時的JoanDaemen和VincentRijmen設(shè)計,算法的原型是Square算法,它的設(shè)計策略是寬軌跡策略。寬軌跡策略是針對差分分析和線性分析提出的,它的最大優(yōu)點是可以給出算法的最佳差分特征的概率及最佳線性逼近的偏差的界。Rijndael密碼的設(shè)計力求滿足以下3條標(biāo)準(zhǔn):抵抗所有已知的攻擊。在多個平臺上速度快,編碼緊湊設(shè)計簡單。AES介紹加解密速度快安全性好適合大量數(shù)據(jù)加密對稱密碼應(yīng)用場景學(xué)習(xí)對稱加密算法概述掌握流加密、塊加密區(qū)別總結(jié)密碼學(xué)基礎(chǔ)04
公鑰密碼學(xué)理解公鑰密碼算法工作原理掌握公鑰密碼算法應(yīng)用場景教學(xué)目標(biāo)公鑰密碼體制的基本概念RSA算法學(xué)習(xí)其它加密算法簡介目錄在公鑰密碼體制前,所有密碼算法都是基于代換和置換公鑰密碼體制則為密碼學(xué)的發(fā)展提供了新的理論和技術(shù)基礎(chǔ)公鑰密碼算法的基本工具數(shù)學(xué)函數(shù)公鑰密碼算法是以非對稱的形式使用兩個密鑰公鑰密碼體制1976年以前,所有的加密方法都是同一種模式:加解密雙方使用相同算法,相同密鑰來進行運算得到結(jié)果。這種加密模式有一個最大弱點:甲方必須把加密規(guī)則與密鑰告訴乙方,否則無法解密。保存和傳遞密鑰,就成了最頭疼的問題。公鑰密碼體制解決單鑰密碼體制中最難解決的兩個問題:密鑰分配和數(shù)字簽名公鑰密碼體制公鑰密碼體制算法條件產(chǎn)生一對密鑰是計算可行的已知公鑰、明文,產(chǎn)生密文是計算可行的利用私鑰、密文,得到明文是計算可行的利用公鑰來推斷私鑰是計算不可行的利用公鑰、密文,得到明文是計算不可行的公鑰密碼體制以上要求的本質(zhì)之處在于要求一個陷門單向函數(shù)總結(jié)為——陷門單向函數(shù)是一族可逆函數(shù)fk,滿足:①Y=fk(X)易于計算(當(dāng)k和X已知時)。②X=f-1k(Y)易于計算(當(dāng)k和Y已知時)。③X=f-1k(Y)計算上是不可行的(當(dāng)Y已知但k未知時)上述表達②③中,k就是所指的陷門,已知K時,可以進行逆計算。公鑰密碼體制加密應(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算法其他非對稱加密算法Merkel-Hellman背包算法McEliece算法ElGammal算法橢圓曲線密碼算法基于有限自動機的公開密鑰算法(中國)公鑰密碼體制算法描述①選兩個保密的大素數(shù)p和q。②計算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ì)。④計算d,滿足d·e≡1mod(k),即d是e在模k下的乘法逆元,因e與k互質(zhì),由模運算可知,它的乘法逆元一定存在。即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隨機選取公鑰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ù)分解。對于兩個大質(zhì)數(shù)相乘結(jié)果的因式分解,目前只能使用暴力破解。RSA算法密鑰為1024位或2048位。同學(xué)可以編程嘗試驗證。RSA算法
其它公鑰加密算法
其它公鑰加密算法
其它公鑰加密算法
其它公鑰加密算法離散對數(shù)類,依賴離散對數(shù)難題主要有橢圓曲線上的離散對數(shù)數(shù)域上的離散對數(shù)算法EIGamal其它公鑰加密算法離散對數(shù)舉例其它公鑰加密算法學(xué)習(xí)公鑰密碼體制理解公鑰、私鑰的分別作用于加密與認(rèn)證場景下的應(yīng)用總結(jié)密碼學(xué)基礎(chǔ)05
密鑰交換學(xué)習(xí)密鑰交換算法理解密鑰管理的概念教學(xué)目標(biāo)Diffie-Hellman密鑰交換單密鑰加密體制的密鑰分配公鑰加密體制的密鑰管理目錄公鑰的分配方法:公開發(fā)布、公用目錄表、公鑰管理機構(gòu)、公鑰證書公鑰分配完成后,用戶就可以使用公鑰體制進行保密通信。但是公鑰加密速度慢,進行通信時不太合適。此時更適合使用對稱加密來通信。由此引申出對稱加密的密鑰分配管理問題。公鑰體制的密鑰管理Diffie-Hellman密鑰交換是W.Diffie和M.Hellman于1976年提出的第一個公鑰密碼算法算法的惟一目的是使得兩個用戶能夠安全地交換密鑰,得到一個共享的會話密鑰,算法本身不能用于加、解密。算法的安全性基于求離散對數(shù)的困難性。Diffie-Hellman密鑰交換
Diffie-Hellman密鑰交換
Diffie-Hellman密鑰交換在大量用戶需要互相通信時,單密鑰體制,會使用大量密鑰。如有n個用戶要互相通信,此時需要n(n-1)/2個密鑰此時密鑰管理是一個嚴(yán)重的風(fēng)險問題。引入KDC來解決這個問題密鑰分發(fā)中心KDC和每個終端用戶都共享一對唯一的主密鑰(用物理的方式傳遞,如U盾)。終端用戶之間每次會話,都要向KDC申請唯一的會話密鑰,會話密鑰通過與KDC共享的主密鑰加密來完成傳遞。單密鑰加密體制的密鑰分配建立一個共享的一次性會話密鑰,可通過以下幾步來完成:①A向KDC發(fā)出會話密鑰請求。表示請求的消息由兩個數(shù)據(jù)項組成,第1項是A和B的身份,第2項是這次業(yè)務(wù)的惟一識別符N1。②KDC為A的請求發(fā)出應(yīng)答。應(yīng)答是由KA加密的消息,因此只有A才能成功地對這一消息解密,并且A可相信這一消息的確是由KDC發(fā)出的。③A存儲會話密鑰,并向B轉(zhuǎn)發(fā)EKB[KS‖IDA]。因為轉(zhuǎn)發(fā)的是由KB加密后的密文,所以轉(zhuǎn)發(fā)過程不會被竊聽。B收到后,可得會話密鑰KS,并從IDA可知另一方是A,而且還從EKB知道KS的確來自KDC。④B用會話密鑰KS加密另一個一次性隨機數(shù)N2,并將加密結(jié)果發(fā)送給A。⑤A以f(N2)作為對B的應(yīng)答,其中f是對N2進行某種變換(例如加1)的函數(shù),并將應(yīng)答用會話密鑰加密后發(fā)送給B。單密鑰加密體制的密鑰分配密鑰分配實例單密鑰加密體制的密鑰分配
無KDC的密鑰分配兩個用戶A和B建立會話密鑰需經(jīng)過以下3步(A與B已經(jīng)有共享主密鑰)①A向B發(fā)出建立會話密鑰的請求和一個一次性隨機數(shù)N1。②B用與A共享的主密鑰MKm對應(yīng)答的消息加密,并發(fā)送給A。應(yīng)答的消息中有B選取的會話密鑰、B的身份、f(N1)和另一個一次性隨機數(shù)N2。③A使用新建立的會話密鑰KS對f(N2)加密后返回給B。單密鑰加密體制的密鑰分配單密鑰加密體制的密鑰分配基于公鑰管理機構(gòu)的公鑰分配:①用戶A向公鑰管理機構(gòu)發(fā)送帶時戳的消息,請求獲取用戶B的公鑰。②管理機構(gòu)作出應(yīng)答,該消息由管理機構(gòu)用自己的私鑰SKAU加密,因此A能用管理機構(gòu)的公開鑰解密,并確認(rèn)該消息的真實性。③A用B的公鑰對一個消息加密發(fā)往B,這個消息有兩個數(shù)據(jù)項:一是A的身份IDA,二是一個一次性隨機數(shù)N1,用于惟一地標(biāo)識這次業(yè)務(wù)。④⑤B以相同方式從管理機構(gòu)獲取A的公開鑰(與步驟①、②類似)。這時,A和B都已安全地得到了對方的公鑰,所以可進行保密通信。然而,他們也許還希望有以下兩步,以認(rèn)證對方。公鑰加密體制的密鑰管理⑥B用PKA對一個消息加密后發(fā)往A,該消息的數(shù)據(jù)項有A的一次性隨機數(shù)N1和B產(chǎn)生的一個一次性隨機數(shù)N2。因為只有B能解密③的消息,所以A收到的消息中的N1可使其相信通信的另一方的確是B。⑦
A用B的公開鑰對N2加密后返回給B,可使B相信通信的另一方的確是A。公鑰加密體制的密鑰管理公鑰加密體制的密鑰管理基于公鑰證書管理公鑰用戶通過公鑰證書來互相交換自己的公鑰而無須與公鑰管理機構(gòu)聯(lián)系。公鑰證書由證書管理機構(gòu)CA(certificateauthority)為用戶建立,其中的數(shù)據(jù)項有與該用戶的秘密鑰相匹配的公開鑰及用戶的身份和時戳等。所有的數(shù)據(jù)項經(jīng)CA用自己的秘密鑰簽字后就形成證書,即證書的形式為:CA=ESKCA[T,IDA,PKA]IDA是用戶A的身份,PKA是A的公鑰,T是當(dāng)前時戳,SKCA是CA的秘密鑰,CA即是為用戶A產(chǎn)生的證書公鑰加密體制的密鑰管理公鑰加密體制的密鑰管理使用公鑰加密體制分配對稱密鑰如果A希望與B通信,可通過以下幾步建立會話密鑰:①A產(chǎn)生自己的一對密鑰{PKA,SKA},并向B發(fā)送PKA||IDA,其中IDA表示A的身份。②B產(chǎn)生會話密鑰KS,并用A的公開鑰PKA對KS加密后發(fā)往A。③A由DSKA[EPKA[KS]]恢復(fù)會話密鑰。因為只有A能解讀KS,所以僅A、B知道這一共享密鑰。④A銷毀{PKA,SKA},B銷毀PKA。公鑰加密體制的密鑰管理簡單使用公鑰加密算法建立會話密鑰這種建議容易受到中間人攻擊公鑰加密體制的密鑰管理具有保密性和認(rèn)證性的密鑰分配假定A、B雙方已完成公鑰交換,可按以下步驟建立共享會話密鑰:①A用B的公開鑰加密A的身份IDA和一個一次性隨機數(shù)N1后發(fā)往B②B用A的公開鑰PKA加密A的一次性隨機數(shù)N1和B新產(chǎn)生的一次性隨機數(shù)N2后發(fā)往A。因為只有B能解讀①中的加密,所以B發(fā)來的消息中N1的存在可使A相信對方的確是B。③A用B的公鑰PKB對N2加密后返回給B,以使B相信對方的確是A。④A選一會話密鑰KS,然后將M=EPKB[ESKA[KS]]發(fā)給B,其中用B的公開鑰加密是為保證只有B能解讀加密結(jié)果,用A的秘密鑰加密是保證該加密結(jié)果只有A能發(fā)送。⑤B以DPKA[DSKB[M]]恢復(fù)會話密鑰。公鑰加密體制的密鑰管理具有保密性和認(rèn)證性的密鑰分配公鑰加密體制的密鑰管理掌握DH算法,想一想,在什么地方見過DH算法的配置?理解密鑰管理總結(jié)密碼學(xué)基礎(chǔ)06
哈希算法理解哈希算法作用理解哈希算法的應(yīng)用場景教學(xué)目標(biāo)哈希函數(shù)概念哈希算法MD5SHAHMAC介紹目錄哈希函數(shù)也可以稱為雜湊函數(shù)哈希函數(shù)H是公開函數(shù),用于將任意長的消息M映射為較短的、固定長度的一個值H(M),稱函數(shù)值H(M)為雜湊值、哈希值或消息摘要。哈希函數(shù)哈希函數(shù)的條件哈希函數(shù)的目的是為需認(rèn)證的數(shù)據(jù)產(chǎn)生一個“指紋”。為了能夠?qū)崿F(xiàn)對數(shù)據(jù)的認(rèn)證,哈希函數(shù)應(yīng)滿足以下條件:①函數(shù)的輸入可以是任意長。②函數(shù)的輸出是固定長。③已知x,求H(x)較為容易,可用硬件或軟件實現(xiàn)。④已知h,求使得H(x)=h的x在計算上是不可行的,這一性質(zhì)稱為函數(shù)的單向性,稱H(x)為單向雜湊函數(shù)。哈希函數(shù)⑤已知x,找出y(y≠x)使得H(y)=H(x)在計算上是不可行的。如果單向雜湊函數(shù)滿足這一性質(zhì),則稱其為弱單向雜湊函數(shù)。⑥找出任意兩個不同的輸入x、y,使得H(y)=H(x)在計算上是不可行的。如果單向雜湊函數(shù)滿足這一性質(zhì),則稱其為強單向雜湊函數(shù)。第⑤和第⑥個條件給出了雜湊函數(shù)無碰撞性的概念,如果雜湊函數(shù)對不同的輸入可產(chǎn)生相同的輸出,則稱該函數(shù)具有碰撞性。哈希函數(shù)生日悖論
在k人中,有兩人生日相同的概率為0.5時,k有多大?定義:設(shè)有k個整數(shù)項,每項在1到n之間等可能取值。則k個整數(shù)項中至少有兩個取值相同的概率為P(n,k);k個數(shù)據(jù)項中任意兩個取值都不同的概率,記為Q(n,k)生日悖論求P(365,k)≥0.5的最小k哈希函數(shù)生日悖論常規(guī)理解是k≥365/2時,P(365,k)≥0.5實際上k≤365,k個數(shù)據(jù)項中任意兩個都不相同的所有取值方式數(shù)為經(jīng)測算 P(365,23)=0.5073 P(365,100)=0.9999997哈希函數(shù)將生日悖論推廣為下述問題:已知一個在1到n之間均勻分布的整數(shù)型隨機變量,若該變量的k個取值中至少有兩個取值相同的概率大于0.5,則k至少多大?與上類似,
令P(n,k)>0.5,可得若取n=365,則
哈希函數(shù)生日悖論的本質(zhì)就是隨著元素的增多,出現(xiàn)重復(fù)元素的概率會以驚人速度增長,而并非我們認(rèn)為的線性增長。哈希函數(shù)的碰撞性,就是我們所提到的生日攻擊。隨著k值增長,哈希函數(shù)發(fā)生碰撞的概率是否會極速增大?哈希函數(shù)
哈希函數(shù)MD4是MD5雜湊算法的前身,由RonRivest于1990年10月作為RFC提出,1992年4月公布的MD4的改進(RFC1320,1321)稱為MD5。MD5算法采用迭代型雜湊函數(shù)的一般結(jié)構(gòu)。算法的輸入為任意長的消息,分為512比特長的分組,輸出為128比特的消息摘要。MD5算法MD5算法MD5處理步驟對消息填充,使得其比特長在模512下為448。附加消息的長度用步驟①留出的64比特以little-endian方式來表示消息被填充前的長度。如果消息長度大于264,則以264為模數(shù)取模。對MD緩沖區(qū)初始化算法使用128比特長的緩沖區(qū)以存儲中間結(jié)果和最終雜湊值,緩沖區(qū)可表示為4個32比特長的寄存器(A,B,C,D)以分組為單位對消息進行處理每一分組都經(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的安全性目前對MD5的攻擊已取得以下結(jié)果對單輪MD5使用差分密碼分析,可在合理的時間內(nèi)找出具有相同雜湊值的兩個消息??烧页鲆粋€消息分組和兩個相關(guān)的鏈接變量(即緩沖區(qū)變量ABCD),使得算法產(chǎn)生出相同的輸出。對單個512比特長的消息分組已成功地找出了碰撞,即可找出另一個消息分組,使得算法對兩個消息分組的128比特長的輸出相同。MD5算法SHA家族的五個算法:分別是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,后四者可并稱為SHA-2,而SHA-2是組合值,有不同的位數(shù),其中最受歡迎的是256位。SHA-1和SHA-2是該算法不同的兩個版本,它們的構(gòu)造和簽名的長度都有所不一樣,但可以把SHA-2理解為SHA-1的繼承者。SHA1和SHA2由于SHA與MD5都是由MD4演化而來,所以兩個算法極為相似。抗擊窮搜索攻擊的強度高于MD5抗擊窮搜索攻擊的強度。由于SHA的設(shè)計準(zhǔn)則未被公開,所以它抗擊密碼分析攻擊的強度較難判斷,似乎高于MD5的強度。SHA的速度要比MD5的速度慢。兩個算法描述起來都較為簡單,實現(xiàn)起來也較為簡單,都不需要大的程序和代換表。MD5使用little-endian方式,SHA使用big-endian方式。SHA1和SHA2在密碼學(xué)中,消息認(rèn)證碼(Messageauthenticationcode)被簡稱為MAC。又稱消息鑒別碼,文件消息認(rèn)證碼,信息認(rèn)證碼。MAC是經(jīng)過特定算法后產(chǎn)生的一小段信息,檢查某段消息的完整性,以及作身份驗證。MAC算法與哈希函數(shù)最大區(qū)別在于,MAC加入了密鑰到運算中。MACMAC眾多MAC算法里面,HMAC是最流行的之一RFC2104公布HMAC,并在IPSec和其他網(wǎng)絡(luò)協(xié)議(如SSL)中廣泛應(yīng)用。RFC2104列舉了HMAC的以下設(shè)計目標(biāo):可不經(jīng)修改而使用現(xiàn)有的雜湊函數(shù)鑲嵌的雜湊函數(shù)可易于替換為更快或更安全的雜湊函數(shù)。保持鑲嵌的雜湊函數(shù)的最初性能,不因用于HMAC而使其性能降低以簡單方式使用和處理密鑰易于分析HMAC用于認(rèn)證時的密碼強度MAC算法的輸出可如下表示:MAC算法的運行過程可描述如下:K的左邊填充0以產(chǎn)生一個b比特長的K+(例如K的長為160比特,b=512,則需填充44個零字節(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ì):能夠驗證簽字產(chǎn)生者的身份,以及產(chǎn)生簽字的日期和時間。能用于證實被簽消息的內(nèi)容。數(shù)字簽字可由第三方驗證,從而能夠解決通信雙方的爭議。數(shù)字簽名基本概念為實現(xiàn)上述3條性質(zhì),數(shù)字簽字應(yīng)滿足以下要求:簽字的產(chǎn)生必須使用發(fā)方獨有的一些信息以防偽造和否認(rèn)。簽字的產(chǎn)生應(yīng)較為容易。簽字的識別和驗證應(yīng)較為容易。對已知的數(shù)字簽字構(gòu)造一新的消息或?qū)σ阎南?gòu)造一假冒的數(shù)字簽字在計算上都是不可行的。數(shù)字簽名基本概念數(shù)字簽字標(biāo)準(zhǔn)DSS(DigitalSignatureStandard)是由美國NIST公布的聯(lián)邦信息處理標(biāo)準(zhǔn)FIPSPUB186,其中采用了上一章介紹的SHA和一種新的簽字技術(shù),稱為DSA(DigitalSignatureAlgorithm)。DSS最初于1991年公布,在考慮了公眾對其安全性的反饋意見后,于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為用戶秘密選取的隨機數(shù)最終簽名為(r,s)r由一系列公鑰算出,s由消息原文算出。r可用于第三方驗證s用于完整性與真實性數(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ò)主機名,組織的名稱或個體名稱等)和簽名信息x.509證書X.509的格式x.509證書X.509有多種常用的擴展名。但具有這個擴展名的文件可能并不是證書,比如說可能只是保存了私鑰.pem–DER編碼的證書再進行Base64
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科技學(xué)院《無人機航測與規(guī)劃制圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門幼兒師范高等??茖W(xué)校《花燈演唱與欣賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東機電職業(yè)技術(shù)學(xué)院《合唱指揮二》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《社區(qū)發(fā)展與社會治理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東第二師范學(xué)院《法語語音》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東白云學(xué)院《影視編導(dǎo)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《工程安全與環(huán)境保護》2023-2024學(xué)年第一學(xué)期期末試卷
- 憲法課件培訓(xùn)內(nèi)容
- 贛西科技職業(yè)學(xué)院《經(jīng)濟效益審計》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛東學(xué)院《中外經(jīng)典戲劇與文學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 應(yīng)收帳款管理辦法
- 水利水電工程驗收實施細則模版(3篇)
- 四川雅安文化旅游集團有限責(zé)任公司招聘筆試沖刺題2024
- 齊魯名家 談方論藥智慧樹知到期末考試答案2024年
- 小學(xué)六年級數(shù)學(xué)100道題解分?jǐn)?shù)方程
- 南京工業(yè)大學(xué)橋梁工程課程設(shè)計
- 村委會實虛線信紙.
- GB∕T 39757-2021 建筑施工機械與設(shè)備 混凝土泵和泵車安全使用規(guī)程
- 電梯公司安全生產(chǎn)管理制度匯編.doc
- 閥門檢測報告
- 最新童話知識競賽試題(答案)合集
評論
0/150
提交評論