工業(yè)互聯(lián)網(wǎng)安全技術 課件 第3章 密碼學基礎_第1頁
工業(yè)互聯(lián)網(wǎng)安全技術 課件 第3章 密碼學基礎_第2頁
工業(yè)互聯(lián)網(wǎng)安全技術 課件 第3章 密碼學基礎_第3頁
工業(yè)互聯(lián)網(wǎng)安全技術 課件 第3章 密碼學基礎_第4頁
工業(yè)互聯(lián)網(wǎng)安全技術 課件 第3章 密碼學基礎_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

工業(yè)互聯(lián)網(wǎng)安全技術第3章密碼學基礎3.1密碼學與密碼系統(tǒng)3.2密碼體制的分類3.3

數(shù)據(jù)完整性算法第1章緒論學習要求

知識要點能力要求密碼學與密碼系統(tǒng)(1)了解密碼學的發(fā)展(2)掌握密碼系統(tǒng)密碼體制(1)熟悉AES對稱密碼體制的加密過程(2)熟悉RSA和ECC兩種非對稱加密體制的加密過程數(shù)據(jù)完整性(1)掌握散列算法、數(shù)字簽名的目的(2)了解散列算法、數(shù)字簽名的過程3.1.1密碼學概述密碼學概述在現(xiàn)實世界中存在許多種信息安全威脅,如竊聽、偽造、篡改、抵賴和拒絕服務等,直接針對信息系統(tǒng)的保密性、完整性、可用性、認證性和不可否認性。經(jīng)典的信息安全三要素為機密性、完整性和可用性,而隨著時代的發(fā)展,信息安全的基本屬性得到了擴展,包括5個基本屬性,即機密性、完整性、可用性、認證性和不可否認性。3.1.1密碼學概述密碼學概述

密碼學可分為密碼編碼學和密碼分析學密碼編碼學研究安全性高的密碼算法和協(xié)議,以對信息進行加密和認證。密碼分析學則研究如何破譯密碼或偽造認證信息密碼編碼學和密碼分析學是對立統(tǒng)一的,總是有新的密碼編碼方式出現(xiàn)以對抗新出現(xiàn)的密碼分析方法,同時也總是有新的密碼分析方法出現(xiàn)以破解改進了的密碼編碼方式,這一過程也推動了密碼學的發(fā)展。3.1.1密碼學概述密碼學概述

從古典密碼學發(fā)展到如今的現(xiàn)代密碼學已有數(shù)千年的歷史,其發(fā)展可分為三個階段,古典密碼學,近代密碼學,現(xiàn)代密碼學。古典密碼學

古典密碼學的核心手段主要有兩種,即代換和置換。代換是將明文中的字符用其他字符代替。置換則是將明文中的字符順序重新排列3.1.1密碼學概述近代密碼學近代密碼學可以看作是現(xiàn)代密碼學的一部分,發(fā)展時期大概可從18世紀末到20世紀中期,其中主要發(fā)展是在第二次世界大戰(zhàn)時期。1918年,在第一次世界大戰(zhàn)快要結束時,德國人亞瑟·謝爾比烏斯發(fā)明了恩尼格瑪密碼機,其采用的是多表代替的加密方式。3.1.2密碼系統(tǒng)密碼系統(tǒng)也稱為密碼體制,一個簡單的密碼系統(tǒng)模型如圖。密碼系統(tǒng)可由一個五元組(M,C,K,E,D)表示,該五元組的具體內容如下:明文:待傳輸?shù)奈醇用軘?shù)據(jù),通常用M表示全體明文集合。密文:明文經(jīng)加密得到的數(shù)據(jù),通常用C表示全體密文集合。密鑰:用以加密和解密的秘密參數(shù),通常用K表示全體密鑰集合。加密算法:使用加密密鑰將明文轉化為密文的規(guī)則,通常用E表示。解密算法:使用解密密鑰將密文轉化為明文的規(guī)則,通常用D表示。第3章密碼學基礎3.1密碼學與密碼系統(tǒng)3.2密碼體制的分類3.3

數(shù)據(jù)完整性算法3.2.1對稱密碼體制對稱密碼體制如果一個密碼體制的加密密鑰和解密密鑰相同,或者雖然不相同,但是可以由其中任意一個密鑰很容易地推出另一個密鑰,則稱該密碼體制為對稱密碼體制。其特點為:一是加密密鑰和解密密鑰相同,或本質相同;二是密鑰必須嚴格保密。在對稱加密體制中,加密算法和解密算法是公開的,加密信息的傳遞可以使用一個不安全的信道,但是傳遞密鑰時必須提供一個安全可靠的信道,故其安全性主要取決于密鑰的安全性。常用的對稱密碼算法有:數(shù)據(jù)加密標準(DES)、擴展的DES加密算法(二重和三重DES)和高級加密標準(AES)。

3.2.1對稱密碼體制對稱密碼體制數(shù)據(jù)加密標準DES

DES使用56位密鑰,對64位數(shù)據(jù)分組進行加密,加密后密文長度也為64位,解密亦然。DES可以分成以下幾個部分:初始IP置換、子密鑰生成、f函數(shù)、16次迭代和末置換。3.2.1對稱密碼體制對稱密碼體制二重DES

DES存在密鑰較短的問題,從而不能滿足當前的安全要求。但為了利用DES的軟件和硬件成果,從而提出了多重DES,實際中常用的是二重DES和三重DES,其中二重DES是多重DES的最簡單形式。3.2.1對稱密碼體制對稱密碼體制三重DES

雖然二重DES采用兩個密鑰進行兩次加密,但當遭到中途相遇攻擊時,其密鑰強度會退化到與DES相當?shù)乃?,為了解決這個問題,可以使用三重DES。三重DES有幾種模式,最容易想到的是使用三個不同的密鑰進行三次加密,但一種常用的三重DES模式為使用兩個不同的密鑰。3.2.1對稱密碼體制對稱密碼體制AES:高級加密標準

AES的輸入輸出分組數(shù)據(jù)長度均為128位,密鑰長度可變,可設定位128位,196位和256位。AES加密算法中迭代輪數(shù)取決于密鑰長度,若密鑰長度位128位,則=10;若密鑰長度為196位,則=12;若密鑰長度為256位,則=14。AES算法包括密鑰擴展、輪密鑰加變換、S盒代替、行變換、列變換。3.2.1對稱密碼體制AES:高級加密標準S盒替換

S盒為一個16×16的矩陣,其功能是完成一個字節(jié)到另一個字節(jié)的映射,這種變換是非線性的。要描述S盒非常簡單,但它其實是一個復雜的代數(shù)結構。S盒的輸入為1個字節(jié)8位,按照高4位為行,低4位為列在S盒中查取對應的數(shù)據(jù)作為輸出,顯然,輸出也為1個字節(jié)8位。S盒替換表3.2.1對稱密碼體制AES:高級加密標準行移位

行移位的輸入是一個4×4的矩陣,每一個元素代表一個字節(jié),故輸入為16個字節(jié)。對于每一次行移位,都有第一行不變,第二行循環(huán)左移一個元素,第三行循環(huán)左移兩個元素,第三行循環(huán)左移三個元素。3.2.1對稱密碼體制AES:高級加密標準列混合

與行移位相同,列混合的輸入也是一個4×4的矩陣。列混合的操作如圖所示。與一般的矩陣相乘不同,此時的乘法和加法是定義在有限域GF(28),考慮一種簡單的運算說明。3.2.1對稱密碼體制AES:高級加密標準密鑰擴展

輸入的密鑰長度為128位,先將密鑰按列分為四組,每組4個字節(jié),分別為W0,W1,W2,W3。接下來需要擴充40個新列,以遞歸方式產(chǎn)生。3.2.1對稱密碼體制加密模式電子密碼本模式(ECB)首先將明文按一定的位長進行分組,如果最后一個分組長度小于指定位長,則按相應規(guī)則填充,得到明文分組(以下明文分組方法相同),再對每個明文分組使用相同的密鑰分別加密。ECB加密模式加密過程簡單,且能夠并行處理。但ECB加密模式存在一個嚴重的問題,即如果明文分組相同,則加密后的密文分組也相同,進而可以找到明文分組的規(guī)律,存在一定的風險。3.2.1對稱密碼體制加密模式密碼分組鏈模式(CBC)

明文分組與前一個密文分組進行異或運算后,再使用相同密鑰加密,如果當前明文分組為第一個明文分組,則與初始化向量進行異或運算,因此每個密文分組都依賴于它前面的所有密文分組。CBC的加密和解密如圖3-11所示。CBC加密模式?jīng)]有EBC加密模式的問題,無法直接從密文分組找出明文分組的規(guī)律,并且對于相同的明文,使用不同的初始化向量也會得到不同的密文。但是CBC加密模式的加密過程不能并行處理,使得加密速度較慢。3.2.1對稱密碼體制加密模式密碼反饋模式(CFB)

對前一個密文分組加密,加密后的結果再與明文分組進行異或運算,如果當前沒有前一個密文分組,則用初始化向量加密,再與明文分組進行異或運算。與CBC加密模式相同,每個密文分組都依賴于它前面的所有密文分組。特點與CBC加密模式相似,可以隱藏明文的規(guī)律,但不可并行加密。3.2.1對稱密碼體制加密模式輸出反饋模式(OFB)

對初始化向量進行若干次加密,每次加密后與相應的明文分組進行異或運算。OFB加密模式的密文分組不會影響下一個密文分組,故不會進行錯誤傳播,但每次應使用不同的初始向量,避免“已知明文”攻擊。3.2.1對稱密碼體制加密模式計時器模式(CTR)

與OFB加密模式類似,CTR加密模式對一個遞增的加密計數(shù)器加密,加密后的結果與明文分組進行異或運算。CTR加密模式的每個明文分組的加密是獨立的,進而可以并行處理,并且在保證計數(shù)器長時間內不產(chǎn)生重復值的情況下,對于相同的明文分組,加密后的密文分組不同。3.2.2非對稱密碼體制非對稱密碼體制與對稱密碼體制相反,非對稱密碼體制的加密密鑰和解密密鑰不同,并且很難由加密密鑰推出解密密鑰。加密密鑰可以公開,稱為公鑰,而解密密鑰只能為私人擁有,稱為私鑰。接下來以RSA和ECC為例介紹非對稱密碼體制算法。

3.2.2

非對稱密碼體制

3.2.2

非對稱密碼體制

橢圓曲線圖像3.2.2

非對稱密碼體制非對稱密碼體制ECC對于加法,如圖橢圓曲線為例,點A和B在橢圓曲線上,現(xiàn)要計算A+B,則需要先作過A和B的直線,在大多數(shù)情況下,過A和B的直線都會與橢圓曲線相交于第三點T,再作T關于X軸對稱的點得到C,根據(jù)對稱性,C也在橢圓曲線上。此時即得到A+B的值C,記為。對于這種形式的加法定義,T的存在很重要,加法操作需要這樣一個點。在橢圓曲線上求A+B3.2.2

非對稱密碼體制非對稱密碼體制ECC如圖,A和B重合為一個點,此時需要在點A處作切線,同樣地與橢圓曲線相交于第三點T,再作關于X軸對稱的點得到C,即為結果,記為A+A=C。與普通運算法則相同,實際上A+A=C=2A,這個過程也叫做點的自累,這是橢圓曲線乘法的基礎,當不斷累加這個過程,實際上就是在進行橢圓曲線的乘法。在橢圓曲線上求A+B3.2.2

非對稱密碼體制非對稱密碼體制ECC此時繼續(xù)計算3A,由于,與前述加法過程計算相同,顯然作過A和2A的直線與橢圓曲線相交于第三點,再關于X軸對稱即可得,如圖所示。

接下來介紹ECC的具體流程如下:在橢圓曲線上求A+B

3.2.2

非對稱密碼體制

第3章密碼學基礎3.1密碼學與密碼系統(tǒng)3.2密碼體制的分類3.3

數(shù)據(jù)完整性算法3.3.1散列算法散列算法散列算法也稱散列函數(shù)、hash函數(shù),散列算法是一種將任意長度的輸入m變換成固定長度的輸出H(m)的不可逆單向函數(shù),輸出H(m)就是散列值。對于散列算法,其應當具有以下幾點性質:對于任意的輸入m,能夠產(chǎn)生較短的輸出H(m),并且輸入的散列計算是容易的。輸出對輸入必須具有敏感性,即輸入數(shù)據(jù)的任一點改變都會帶來輸出的改變。雖然存在兩個不同的報文x和y使得H(x)=H(y),但找到這樣的兩個報文在計算上是不可能的。不能由輸出H(m)反求出m。

3.3.1散列算法散列算法散列算法不是加密算法,但在密碼學中有廣泛應用。散列算法在數(shù)字簽名中發(fā)揮了重要作用。數(shù)字簽名通常使用非對稱加密,并且由于消息的散列值通常比消息本身短得多,因此對消息的散列值進行數(shù)字簽名比直接對消息本身進行數(shù)字簽名高效得多。散列算法用于消息鑒別碼(messageauthenticationcode,MAC),即判斷消息在發(fā)送途中是否被修改。考慮Alice向Bob發(fā)送消息m,此時有密鑰k只有他們兩人知道。Alice使用散列算法得到散列值H(m+k)后將(m,H(m+k))一起發(fā)送給Bob,Bob收到后使用同樣的散列算法計算m+k的散列值,如果二者的散列值相同,則消息未被修改;否則消息被修改了。

3.3.1散列算法散列算法下面介紹兩種廣泛使用的散列算法MD5和SHA–1

MD5為了克服MD4的缺陷和增強安全性,RSA算法的作者之一Rivest對MD4進行了改進,得到了MD5。MD5和MD4設計思想相似,但MD5更復雜。MD5獲得一個任意長度的信息后產(chǎn)生一個128位的信息摘要。其算法原理如下:MD5首先對信息進行填充,然后以512位分組來處理輸入的信息,每一分組又被劃分為16個32位子分組,經(jīng)過一系列處理后,算法的輸出由4個32位分組組成,將這4個32位分組級聯(lián)后即得到128位散列值。3.3.1散列算法

MD5

填充(數(shù)據(jù)預處理)數(shù)據(jù)長度的一致性有利于數(shù)據(jù)處理,故首先對輸入數(shù)據(jù)m進行填充,使得填充后數(shù)據(jù)長度對512取余的結果為448,即填充后數(shù)據(jù)長度為位,K為大于零的整數(shù)。具體填充操作是:輸入數(shù)據(jù)m后面先補一個1,然后一直補0直到滿足長度要求。值得注意的是即使輸入數(shù)據(jù)m的長度對512取余的結果已經(jīng)是448,也要進行填充操作,此時補一個1和511個0。填充完成后再級聯(lián)一個64位數(shù)據(jù)(輸入數(shù)據(jù)m的長度的二進制表示)。此時,數(shù)據(jù)的長度是512的整數(shù)倍。3.3.1散列算法

MD5

初始向量

MD5指定了4個32位的初始值a、b、c、d作為寄存器中最初的數(shù)據(jù),用16進制表示,分別為:a=01234567,b=89abcdef,c=fedcba98,d=76543210。這4個值共128位,形成MD5的初始向量,即作為最初的輸入用于第一次主循環(huán)。3.3.1散列算法

MD5

主循環(huán)先將4個初始值放入另外4個寄存器A、B、C、D中,以便執(zhí)行最后的模加運算,然后開始第一次主循環(huán)。將填充后數(shù)據(jù)按512位分組,則主循環(huán)的次數(shù)即為分組數(shù),且每一次主循環(huán)的輸入為相應的512位分組。每一次主循環(huán)包括四輪,四輪中只有一個函數(shù)不同,其余均相同。每一輪又包括16次操作,將512位的分組分為16個字,每個字32位,則16次操作的輸入為這16個字。MD5一次主循環(huán)過程MD5每一輪過程3.3.1散列算法散列算法

SHA-11993年美國國家標準技術研究所發(fā)布了安全散列標準SHA0,但很快就被撤回了,并于1995年發(fā)布了修改版SHA-1。SHA-1在設計上與MD5類似,但SHA-1生成的消息摘要長度為160位,抗窮舉搜索能力更強。SHA-1的填充方式和消息分組與MD5幾乎相同,每個主循環(huán)也是包括四輪,但每輪進行20次操作,包括非線性運算、移位和加法運算,此時的操作與MD5有一些區(qū)別。3.3.1散列算法

3.3.2

數(shù)字簽名數(shù)字簽名在日常生活中,手寫簽名是需要的并且被廣泛使用的。隨著計算機網(wǎng)絡的發(fā)展,大量電子文本代替了傳統(tǒng)的紙質文本,那么一種發(fā)揮和手寫簽名相同功能的數(shù)字簽名也應運而生。數(shù)字簽名作為一種對手寫簽名的模仿,其應當有以下三點特征:

身份驗證:數(shù)字簽名可以被確認,即接受簽名的一方能驗證簽名

數(shù)據(jù)完整性:除了簽名者,其他人不能對數(shù)據(jù)進行更改

不可否認性:簽名者事后不能否認自己所做的簽名,即使其想否認自己的簽名,公正的第三方也能做出正確的判斷。3.3.2

數(shù)字簽名數(shù)字簽名其他人不能偽造數(shù)字簽名,這意味著簽名者有一個只有其自己知道的秘密,另一方面,數(shù)字簽名需要被驗證,并且此驗證是公開的。通過前面對非對稱加密的介紹可以發(fā)現(xiàn),其滿足這兩方面的要求,一把鑰匙是簽名者自己知道的秘密,另一把鑰匙用于公開的驗證,實際上也確實是采用非對稱加密進行數(shù)字簽名。數(shù)字簽名的原理并不復雜,其一次簽名和驗證過程如下:假設有簽名者用戶A和驗證者用戶B。數(shù)據(jù)首先被使用散列算法生成固定長度的摘要,簽名者再使用其私鑰對摘要進行加密得到,此即為簽名過程。隨后簽名者將和一起發(fā)送給驗證者B。驗證者B收到簽名者發(fā)送的數(shù)據(jù)后,對使用同樣散列算法生成摘要,再與使用公鑰解密數(shù)據(jù)后的數(shù)據(jù)進行對比,若兩者相同,則驗證成功,簽名

溫馨提示

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

評論

0/150

提交評論