信息安全技術(shù)參考 課件_第1頁
信息安全技術(shù)參考 課件_第2頁
信息安全技術(shù)參考 課件_第3頁
信息安全技術(shù)參考 課件_第4頁
信息安全技術(shù)參考 課件_第5頁
已閱讀5頁,還剩389頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 信息安全技術(shù)概述安全攻擊 信息在存儲(chǔ)、共享和傳輸中,可能會(huì)被非法竊聽、截取、篡改和破壞,這些危及信息系統(tǒng)安全的活動(dòng)稱為安全攻擊 安全攻擊分為主動(dòng)攻擊和被動(dòng)攻擊 被動(dòng)攻擊的特征是對(duì)傳輸進(jìn)行竊聽和監(jiān)測(cè)。被動(dòng)攻擊的目的是獲得傳輸?shù)男畔?,不?duì)信息作任何改動(dòng)被動(dòng)攻擊主要威脅信息的保密性 常見的被動(dòng)攻擊包括消息內(nèi)容的泄漏和流量分析等 主動(dòng)攻擊則意在篡改或者偽造信息、也可以是改變系統(tǒng)的狀態(tài)和操作主動(dòng)攻擊主要威脅信息的完整性、可用性和真實(shí)性常見的主動(dòng)攻擊包括:偽裝、篡改、重放和拒絕服務(wù) 常見的安全攻擊消息內(nèi)容的泄漏:消息的內(nèi)容被泄露或透露給某個(gè)非授權(quán)的實(shí)體流量分析(Traffic Analysis):

2、通過分析通信雙方的標(biāo)識(shí)、通信頻度、消息格式等信息來達(dá)到自己的目的篡改:指對(duì)合法用戶之間的通信消息進(jìn)行修改或者改變消息的順序 偽裝:指一個(gè)實(shí)體冒充另一個(gè)實(shí)體 重放:將獲得的信息再次發(fā)送以期望獲得合法用戶的利益 拒絕服務(wù)(denial of service):指阻止對(duì)信息或其他資源的合法訪問。 安全機(jī)制 阻止安全攻擊及恢復(fù)系統(tǒng)的機(jī)制稱為安全機(jī)制 OSI安全框架將安全機(jī)制分為特定的安全機(jī)制和普遍的安全機(jī)制一個(gè)特定的安全機(jī)制是在同一時(shí)間只針對(duì)一種安全服務(wù)實(shí)施一種技術(shù)或軟件一般安全機(jī)制和特定安全機(jī)制不同的一個(gè)要素是,一般安全機(jī)制不能應(yīng)用到OSI參考模型的任一層上 特定的安全機(jī)制包括:加密、數(shù)字簽名、訪問

3、控制、數(shù)據(jù)完整性、認(rèn)證交換、流量填充、路由控制和公證普遍的安全機(jī)制包括:可信功能機(jī)制、安全標(biāo)簽機(jī)制、事件檢測(cè)機(jī)制、審計(jì)跟蹤機(jī)制、安全恢復(fù)機(jī)制與安全服務(wù)有關(guān)的機(jī)制是加密、數(shù)字簽名、訪問控制、數(shù)據(jù)完整性、認(rèn)證交換、流量填充、路由控制和公證。與管理相關(guān)的機(jī)制是可信功能機(jī)制,安全標(biāo)簽機(jī)制,事件檢測(cè)機(jī)制,審計(jì)跟蹤機(jī)制和安全恢復(fù)機(jī)制 安全目標(biāo)信息安全的目標(biāo)是指能夠滿足一個(gè)組織或者個(gè)人的所有安全需求 通常強(qiáng)調(diào)CIA三元組的目標(biāo),即保密性(Confidentiality)、完整性(Integrity)和可用性(Availability) 由于這些目標(biāo)常常是互相矛盾的,因此需要在這些目標(biāo)中找到一個(gè)合適的平衡點(diǎn)。

4、例如,簡(jiǎn)單地阻止所有人訪問一個(gè)資源,就可以實(shí)現(xiàn)該資源的保密性,但這樣做就不滿足可用性。 安全需求 可用性(Availability): 確保授權(quán)的用戶在需要時(shí)可以訪問信息 完整性(Integrity): 保護(hù)信息和信息處理方法的準(zhǔn)確性和原始性 保密性(Confidentiality):確保信息只被授權(quán)人訪問 可追溯性(Accountability):確保實(shí)體的行動(dòng)可被跟蹤 保障(Assurance):是對(duì)安全措施信任的基礎(chǔ),保障是指系統(tǒng)具有足夠的能力保護(hù)無意的錯(cuò)誤以及能夠抵抗故意滲透 安全需求之間的關(guān)系安全需求之間的關(guān)系 保密性依賴于完整性,如果系統(tǒng)沒有完整性,保密性就失去意義同樣完整性也依賴

5、于保密性,如果不能保證保密性,完整性也將不能成立可用性和可追溯性都由保密性和完整性支持上面提到的這些安全需求都依賴于保障安全服務(wù)模型安全服務(wù)是加強(qiáng)數(shù)據(jù)處理系統(tǒng)和信息傳輸?shù)陌踩缘囊环N服務(wù),是指信息系統(tǒng)為其應(yīng)用提供的某些功能或者輔助業(yè)務(wù) 安全機(jī)制是安全服務(wù)的基礎(chǔ)安全服務(wù)是利用一種或多種安全機(jī)制阻止安全攻擊,保證系統(tǒng)或者數(shù)據(jù)傳輸有足夠的安全性 圖1.3是一個(gè)綜合安全服務(wù)模型,該模型揭示了主要安全服務(wù)和支撐安全服務(wù)之間的關(guān)系模型主要由三個(gè)部分組成:支撐服務(wù),預(yù)防服務(wù)和恢復(fù)相關(guān)的服務(wù) 支撐服務(wù)是其他服務(wù)的基礎(chǔ),主要包括: -鑒別(Identification):它表示能夠獨(dú)特地識(shí)別系統(tǒng)中所有實(shí)體 -密

6、鑰管理:該服務(wù)表示以安全的方式管理密鑰。密鑰常常用于鑒別一個(gè)實(shí)體 -安全性管理(Security administration):系統(tǒng)的所有安全屬性必須進(jìn)行管理。如安裝新的服務(wù),更新已有的服務(wù),監(jiān)控以保證所提供的服務(wù)是可操作的 -系統(tǒng)保護(hù):系統(tǒng)保護(hù)通常表示對(duì)技術(shù)執(zhí)行的全面信任預(yù)防服務(wù)能夠阻止安全漏洞的發(fā)生,包括: - 受保護(hù)的通信: 該服務(wù)是保護(hù)實(shí)體之間的通信 -認(rèn)證(Authentication):保證通信的實(shí)體是它所聲稱的實(shí)體,也就是驗(yàn)證實(shí)體身份 -授權(quán)(Authorization):授權(quán)表示允許一個(gè)實(shí)體對(duì)一個(gè)給定系統(tǒng)作一些行動(dòng),如訪問一個(gè)資源。 -訪問控制(Access Control)

7、:防止非授權(quán)使用資源,即控制誰訪問資源,在什么條件下訪問,能夠訪問什么等 -不可否認(rèn)(Non-repudiation):它是與責(zé)任相關(guān)的服務(wù),指發(fā)送方和接受方都不能否認(rèn)發(fā)送和接收到的信息。 - 交易隱私(Transaction privacy):該服務(wù)保護(hù)任何數(shù)字交易的隱私 檢測(cè)與恢復(fù)服務(wù)主要是關(guān)于安全漏洞的檢測(cè),以及采取行動(dòng)恢復(fù)或者降低這些安全漏洞產(chǎn)生的影響,主要包括: - 審計(jì)(Audit):當(dāng)安全漏洞被檢測(cè)到時(shí),審計(jì)安全相關(guān)的事件是非常重要的。它是在系統(tǒng)發(fā)現(xiàn)錯(cuò)誤或受到攻擊時(shí)能定位錯(cuò)誤和找到攻擊成功的原因,以便對(duì)系統(tǒng)進(jìn)行恢復(fù) - 入侵檢測(cè)(Intrusion detection): 該服務(wù)

8、主要監(jiān)控危害系統(tǒng)安全的可疑行為,以便盡早地采用額外的安全機(jī)制來使系統(tǒng)更安全 - 整體檢驗(yàn)(Proof of wholeness): 整體檢驗(yàn)服務(wù)主要是檢驗(yàn)系統(tǒng)或者數(shù)據(jù)仍然是否是完整的 - 恢復(fù)安全狀態(tài)(Restore secure state):該服務(wù)指當(dāng)安全漏洞發(fā)生時(shí),系統(tǒng)必須能夠恢復(fù)到安全的狀態(tài)安全目標(biāo)、需求、服務(wù)和機(jī)制之間的關(guān)系 安全機(jī)制安全機(jī)制安全機(jī)制安全服務(wù)安全服務(wù)安全服務(wù)安全服務(wù)安全需求安全需求安全目標(biāo)安全目標(biāo)、需求、服務(wù)和機(jī)制之間的關(guān)系全部安全需求的實(shí)現(xiàn)才能達(dá)到安全目標(biāo)不同的安全服務(wù)的聯(lián)合能夠?qū)崿F(xiàn)不同的安全需求一個(gè)安全服務(wù)可能是多個(gè)安全需求的組成要素同樣,不同的安全機(jī)制聯(lián)合能夠完

9、成不同的安全服務(wù)一個(gè)安全機(jī)制也可能是多個(gè)安全服務(wù)的構(gòu)成要素 表1.1表示了一些安全服務(wù)和安全需求之間的關(guān)系 表1.1說明了不是所有的安全需求都強(qiáng)制性地要求所有安全服務(wù)但是這些安全服務(wù)并不是完全可以忽略因?yàn)檫@些安全服務(wù)可能間接地使用如上表中的鑒別和密鑰管理兩個(gè)安全服務(wù)僅僅是完整性、保密性和可追溯性所要求的,不是可用性和保障必須的,但可用性是依賴于完整性和保密性。保障則與可用性、完整性、保密性和可追溯性相關(guān)所以一個(gè)密鑰管理服務(wù)將影響所有的安全需求信息安全模型 大多數(shù)信息安全涉及通信雙方在網(wǎng)絡(luò)傳輸過程中的數(shù)據(jù)安全和計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)安全。圖1.5是一個(gè)典型的網(wǎng)絡(luò)安全模型。從網(wǎng)絡(luò)安全模型可以看到,設(shè)計(jì)安

10、全服務(wù)應(yīng)包括下面的四個(gè)方面的內(nèi)容: - 設(shè)計(jì)一個(gè)恰當(dāng)?shù)陌踩儞Q算法,該算法應(yīng)有足夠強(qiáng)安全性,不會(huì)被攻擊者有效地攻破。 - 產(chǎn)生安全變換中所需要的秘密信息,如密鑰。 - 設(shè)計(jì)分配和共享秘密信息的方法。 - 指明通信雙方使用的協(xié)議,該協(xié)議利用安全算法和秘密信息實(shí)現(xiàn)系統(tǒng)所需要安全服務(wù) 網(wǎng)絡(luò)安全協(xié)議 通過對(duì)TCP/IP參考模型各層增加一些安全協(xié)議來保證安全。這些安全協(xié)議主要分布在最高三層,主要有: 網(wǎng)絡(luò)層的安全協(xié)議:IPSec 傳輸層的安全協(xié)議:SSL/TLS 應(yīng)用層的安全協(xié)議:SHTTP(Web安全協(xié)議)、PGP(電子郵件安全協(xié)議)、S/MIME(電子郵件安全協(xié)議)、MOSS(電子郵件安全協(xié)議)、P

11、EM(電子郵件安全協(xié)議)、SSH(遠(yuǎn)程登錄安全協(xié)議)、Kerberos(網(wǎng)絡(luò)認(rèn)證協(xié)議)等上面提到的一些協(xié)議將在本書的后面章節(jié)進(jìn)行詳細(xì)介紹 第2章 對(duì)稱加密技術(shù) 主要知識(shí)點(diǎn): -對(duì)稱密碼模型 -密碼攻擊 -古典加密技術(shù) -數(shù)據(jù)加密標(biāo)準(zhǔn) -高級(jí)加密標(biāo)準(zhǔn) -流密碼 -分組密碼工作模式 - 隨機(jī)數(shù)的產(chǎn)生 - 對(duì)稱密碼的密鑰分配 密碼技術(shù)主要分為對(duì)稱密碼技術(shù)和非對(duì)稱密碼技術(shù)對(duì)稱密碼技術(shù)中,加密密鑰和解密密鑰相同,或者一個(gè)密鑰可以從另一個(gè)導(dǎo)出非對(duì)稱密碼技術(shù)則使用兩個(gè)密鑰, 加密密鑰和解密密鑰不同,非對(duì)稱密碼技術(shù)則產(chǎn)生于20世紀(jì)70年代 20世紀(jì)70年代以前的加密技術(shù)都是對(duì)稱加密技術(shù),這個(gè)時(shí)期的加密技術(shù)也稱

12、為古典加密技術(shù)。古典加密技術(shù)一般將加密算法保密,而現(xiàn)代的對(duì)稱加密技術(shù)則公開加密算法,加密算法的安全性只取決于密鑰,不依賴于算法密碼學(xué)的基本概念密碼學(xué)(Cryptology)包括密碼編碼學(xué)(Cryptography),和密碼分析學(xué)(Cryptanalysis)密碼編碼學(xué)是研究加密原理與方法,使消息保密的技術(shù)和科學(xué),它的目的是掩蓋消息內(nèi)容密碼分析學(xué)則是研究破解密文的原理與方法密碼分析者(Cryptanalyst)是從事密碼分析的專業(yè)人員 被偽裝的原始的消息 (Message)稱為明文(Plaintext) 將明文轉(zhuǎn)換為密文過程稱為加密(Encryption) 加了密的消息稱為密文(Cipherte

13、xt)把密文轉(zhuǎn)變?yōu)槊魑牡倪^程稱為解密(Decryption) 從明文到密文轉(zhuǎn)換的算法稱為密碼(Cipher) 一個(gè)加密系統(tǒng)采用的基本工作方式叫做密碼體制(Cryptosystem) 在密碼學(xué)中見到“系統(tǒng)或體制”(System)、“方案”(Scheme)和“算法”(Algorithm)等術(shù)語本質(zhì)上是一回事加密和解密算法通常是在一組密鑰(Key)控制下進(jìn)行的,分別稱為加密密鑰和解密密鑰如果加密密鑰和解密密鑰相同,則密碼系統(tǒng)為對(duì)稱密碼系統(tǒng) 對(duì)稱密碼模型 對(duì)稱密碼也稱傳統(tǒng)密碼,它的特點(diǎn)是發(fā)送方和接收方共享一個(gè)密鑰對(duì)稱密碼分為兩類:分組密碼(Block Ciphers )和流密碼(Stream Ciph

14、ers)分組密碼也稱為塊密碼,它是將信息分成一塊(組),每次操作(如加密和解密)是針對(duì)一組而言流密碼也稱序列密碼,它是每次加密(或者解密)一位或者一個(gè)字節(jié) 一個(gè)對(duì)稱密碼系統(tǒng)(也稱密碼體制)有五個(gè)組成部分組成。用數(shù)學(xué)符號(hào)來描述為SM, C, K, E, D,如圖3.2所示。 (1) 明文空間M,是全體明文的集合。 (2) 密文空間C,表示全體密文的集合。 (3) 密鑰空間K,表示全體密鑰的集合,包括加密密鑰和解密密鑰。 (4) 加密算法E,表示由明文到密文的變換。 (5) 解密算法D,表示由密文到文明的變換。 明 文加密算法解密算法明 文傳輸通道MMCC攻擊者接收方發(fā)送方密鑰源安全通道KK圖3.

15、2 對(duì)稱密碼系統(tǒng)模型對(duì)明文M用密鑰K,使用加密算法E進(jìn)行加密常常表示為Ek(M),同樣用密鑰K使用解密算法D對(duì)密文C進(jìn)行解密表示為Dk(C)在對(duì)稱加密體制中,密解密密鑰相同, 有: CEk(M) MDk(C)Dk(Ek(M) 密碼體制至少滿足的條件 (1) 已知明文M和加密密鑰K時(shí),計(jì)算CEk(M)容易 (2) 加密算法必須足夠強(qiáng)大,使破譯者不能僅根據(jù)密文破譯消息,即在不知道解密密鑰K時(shí),由密文C計(jì)算出明文M是不可行的(3) 由于對(duì)稱密碼系統(tǒng)雙方使用相同的密鑰,因此還必須保證能夠安全地產(chǎn)生密鑰,并且能夠以安全的形式將密鑰分發(fā)給雙方(4) 對(duì)稱密碼系統(tǒng)的安全只依賴于密鑰的保密,不依賴于加密和解密

16、算法的保密 密碼攻擊 分析一個(gè)密碼系統(tǒng)是否是安全,一般是在假定攻擊者知道所使用的密碼系統(tǒng)情況下進(jìn)行分析的 如: 密碼分析者可以得到密文,知道明文的統(tǒng)計(jì)特性,加密體制,密鑰空間及其統(tǒng)計(jì)特性 這個(gè)假設(shè)稱為Kerckhoff假設(shè)分析一個(gè)密碼系統(tǒng)的安全性一般是建立在這個(gè)假設(shè)的基礎(chǔ)上 對(duì)稱密碼體制的攻擊有兩種方法:密碼分析和窮舉攻擊(Brute Force Search) 密碼分析是依賴加密算法的性質(zhì)和明文的一般特征等試圖破譯密文得到明文或試圖獲得密鑰的過程窮舉攻擊則是試遍所有可能的密鑰對(duì)所獲密文進(jìn)行解密,直至得到正確的明文;或者用一個(gè)確定的密鑰對(duì)所有可能的明文進(jìn)行加密,直至得到所獲得的密文 窮舉攻擊

17、窮舉攻擊是最基本也是比較有效的一種攻擊方法 從理論上講,可以嘗試所有的密鑰 窮舉攻擊的代價(jià)與密鑰大小成正比 密碼算法可以通過增大密鑰位數(shù)或加大解密(加密)算法的復(fù)雜性來對(duì)抗窮舉攻擊 表3.1是窮盡密鑰空間所需的時(shí)間。從表中我們可以發(fā)現(xiàn),當(dāng)密鑰長(zhǎng)度達(dá)到128位以上時(shí),以目前的資源來說,窮舉攻擊將不成功 密碼攻擊類型 密碼分析是基于Kerckhoff假設(shè) 密碼分析者所使用的策略取決于加密方案的性質(zhì)以及可供密碼分析者使用的信息根據(jù)密碼分析者所知的信息量, 把對(duì)密碼的攻擊分為: 唯密文攻擊 ,已知明文攻擊 ,選擇明文攻擊 ,選擇密文攻擊 ,選擇文本攻擊 唯密文攻擊(Ciphertext-Only At

18、tack):密碼分析者知道:加密算法和待破譯的密文.已知明文攻擊(Known-Plaintext Attack):密碼分析者除知道加密算法和待破譯的密文外,而且也知道,有一些明文和同一個(gè)密鑰加密的這些明文所對(duì)應(yīng)的密文即知道一定數(shù)量的明文和對(duì)應(yīng)的密文選擇明文攻擊(Chosen-Plaintext Attack): 密碼分析者知道加密算法和待破譯的密文,并且可以得到所需要的任何明文所對(duì)應(yīng)的密文,這些明文和待破譯的密文是用同一密鑰加密得來的,即知道選擇的明文和對(duì)應(yīng)的密文。如在公鑰密碼體制中,攻擊者可以利用公鑰加密他任意選定的明文選擇密文攻擊(Chosen-Ciphertext Attack): 密碼

19、分析者知道加密算法和待破譯的密文,密碼分析者能選擇不同的被加密的密文,并可得到對(duì)應(yīng)的解密的明文,即知道選擇的密文和對(duì)應(yīng)的明文。解密這些密文所使用的密鑰與解密待破解的密文的密鑰是一樣的。這種攻擊主要用于公鑰密碼算法。選擇文本攻擊(Chosen Text Attack):選擇文本攻擊是選擇明文攻擊和選擇密文攻擊的結(jié)合。密碼分析者知道加密算法和待破譯的密文,并且知道任意選擇的明文和它對(duì)應(yīng)的密文,這些明文和待破譯的密文是用同一密鑰加密得來的,以及有目的選擇的密文和它對(duì)應(yīng)的明文,解密這些密文所使用的密鑰與解密待破解的密文的密鑰是一樣的。如果一個(gè)密碼系統(tǒng)能夠抵抗選擇明文攻擊,那么它也能抵抗唯密文攻擊和已知

20、明文攻擊 在這幾種攻擊類型中,唯密文攻擊難度最大,因?yàn)楣粽呖衫玫男畔⒆钌?對(duì)密碼設(shè)計(jì)者而言,被設(shè)計(jì)的加密算法一般要能經(jīng)受得住已知明文的攻擊 如果無論攻擊者有多少密文,由一個(gè)加密算法產(chǎn)生的這些密文中包含的信息不足以唯一決定對(duì)應(yīng)的明文,也無論用什么技術(shù)方法進(jìn)行攻擊都不能被攻破,這種加密算法是絕對(duì)安全(Unconditional Security) 除一次一密(One-Time Pad)外,沒有絕對(duì)安全的加密算法 一般來說,加密算法的使用者應(yīng)該挑選滿足下列標(biāo)準(zhǔn)中的一個(gè)或兩個(gè)的算法: (1) 破譯該密碼的成本超過被加密信息的價(jià)值。 (2) 破譯該密碼的時(shí)間超過該信息有用的生命周期。 如果滿足上述的

21、兩個(gè)準(zhǔn)則,一個(gè)加密算法就可認(rèn)為是在計(jì)算上安全(Computational Security)的計(jì)算上安全是指在計(jì)算能力有限的的情況下(如計(jì)算所需時(shí)間比宇宙生存時(shí)間還長(zhǎng)),無法破解此密文目前的加密算法一般是計(jì)算上安全的 密碼分析方法 當(dāng)密鑰長(zhǎng)度增加到一定的大小時(shí),窮舉攻擊變得不實(shí)際 比較流行的密碼分析方法是線性密碼分析和差分密碼分析 線性分析是一種已知明文攻擊線性分析是一種統(tǒng)計(jì)攻擊,它以求線性近似為基礎(chǔ)。通過尋找現(xiàn)代密碼算法變換的線性近似來攻擊用這種方法只需要知道243個(gè)已知明文的情況下就可以找到DES的密鑰 差分密碼分析在許多方面與線性密碼分析相似它與線性密碼分析的主要區(qū)別在于差分密碼分析包含

22、了將兩個(gè)輸入的異或與其相對(duì)應(yīng)的兩個(gè)輸出的異或相比較 差分密碼分析也是一個(gè)選擇明文攻擊差分密碼分析出現(xiàn)于20世紀(jì) 70年代,但在1990年才公開發(fā)表它的基本思想是:通過分析明文對(duì)的差值與密文對(duì)的差值的影響來恢復(fù)某些密鑰位差分分析可用來攻擊任何由迭代一個(gè)固定的輪函數(shù)的結(jié)構(gòu)的密碼 古典加密技術(shù) 古典加密技術(shù)主要使用代換或者置換技術(shù) 代換是將明文字母替換成其他字母、數(shù)字或者符號(hào)置換則保持明文的所有字母不變,只是打亂明文字母的位置和次序 古典代換加密技術(shù)分為兩類:單字母代換密碼,它將明文的一個(gè)字符用相應(yīng)的一個(gè)密文字符代替。多字母代換密碼,它是對(duì)多于一個(gè)字母進(jìn)行代換單字母代換密碼中又分為單表代換密碼和多表

23、代換密碼單表代換密碼只使用一個(gè)密文字母表,并且用密文字母表中的一個(gè)字母來代替一個(gè)明文字母表中的一個(gè)字母多表代換密碼是將明文消息中出現(xiàn)的同一個(gè)字母,在加密時(shí)不是完全被同一個(gè)固定的字母代換,而是根據(jù)其出現(xiàn)的位置次序,用不同的字母代換 單表代換密碼 設(shè)M和C分別表示為含n個(gè)字母的明文字母表和密文字母表。 M=m0, m1, , mn-1 C =c0, c1, , cn-1 如果f為一種代換方法,那么密文為C= Ek(m)=c0c1cn-1=f(m0)f(m1) f(mn-1)單表代換密碼常見的方法有加法密碼,乘法密碼和仿射密碼 加法密碼 對(duì)每個(gè)c, m Zn,加法密碼的加密和解密算法是: C= Ek

24、(m)= (m+k) mod n M= Dk(c)= (c-k) mod n k是滿足0 k n 的正整數(shù)。若n是26個(gè)字母,加密方法是用明文字母后面第k個(gè)字母代替明文字母Caesar密碼是典型的加法密碼,由Julius Caesar 發(fā)明,最早用在軍方。將字母表中的每個(gè)字母,用它后面的第3個(gè)字母代替 Caesar密碼舉例明文:meet me after the toga party密文:PHHW PH DIWHU WKH WRJD SDUWB對(duì)每個(gè)明文字母m,用密文字母c代換,那么Caesar 密碼算法如下: 加密: C = E(m) = (m + 3) mod 26 解密: M = D(c

25、) = (c3) mod 26移位可以是任意的,如果用k(1k25)表示移位數(shù),則通用的Caesar 密碼算法表示為: 加密: C = Ek(m) = (m + k) mod 26 解密: M = Dk(c) = (ck) mod 26 Caesar 密碼安全性 對(duì)密碼的分析是基于Kerckhoff假設(shè)假設(shè)攻擊者知道使用Caesar 密碼加密。如果攻擊者只知道密文,即唯密文攻擊,只要窮舉測(cè)試所有可能字母移位的距離,最多嘗試25次如果攻擊者知道一個(gè)字符以及它對(duì)應(yīng)的密文,即已知明文攻擊,那么攻擊者很快就通過明文字符和對(duì)應(yīng)的密文字符之間的距離推出密鑰這個(gè)例子說明一個(gè)密碼體制安全至少要能夠抵抗窮舉密鑰

26、搜索攻擊,普通的做法是將密鑰空間變得足夠大。但是,很大的密鑰空間并不是保證密碼體制安全的充分條件,下面的例子可以說明這一點(diǎn) 對(duì)Caesar 密碼進(jìn)行改進(jìn),假設(shè)密文是26個(gè)字母的任意代換,密鑰是明文字母到密文字母的一個(gè)字母表,密鑰長(zhǎng)度是26字長(zhǎng)下面用一個(gè)密鑰句子構(gòu)造一個(gè)字母代換表密鑰句子為the message was transmitted an hour ago,按照密鑰句子中的字母依次填入字母表(重復(fù)的字母只用一次),未用的字母按自然順序排列 原字母表abcdefghijklmnopqrstuvwxyz代換字母表THEMSAGWRNIDOUBCFJKLPQVXYZ若明文為please co

27、nfirm receipt 使用上面的代換字母表,則密文為CDSTKSEBUARJOJSESRCL使用上面的方法代換,總共有 26! = 4 x 1026 種密鑰 從表3.1可以看到窮舉搜索這么多的密鑰很困難但這并不表示該密碼不容易破解破解這類密碼的突破點(diǎn)是由于語言本身的特點(diǎn)是充滿冗余的,每個(gè)字母使用的頻率不相等 單表代換密碼沒有改變字母相對(duì)出現(xiàn)的頻率明文字母的統(tǒng)計(jì)特性在密文中能夠反映出來, 當(dāng)通過統(tǒng)計(jì)密文字母的出現(xiàn)頻率,可以確定明文字母和密文字母之間的對(duì)應(yīng)關(guān)系 英文字母中單字母出現(xiàn)的頻率 單字母按照出現(xiàn)頻率的大小可以分為下面5類: (1) e:出現(xiàn)的頻率大約為0.127 (2) t, a,

28、o, I, n, s, h, r:出現(xiàn)的頻率大約在0.06-0.09之間 (3) d, l:出現(xiàn)的頻率約為0.04 (4) c, u, m, w, f, g, y, p, b:出現(xiàn)的頻率大約在0.015-0.028之間 (5) v, k, j, x, q, z:出現(xiàn)的頻率小于0.01雙字母和三字母組合都有現(xiàn)成的統(tǒng)計(jì)數(shù)據(jù),常見的雙字母組合和三字母組合統(tǒng)計(jì)表能夠幫助破解密文。頻率最高的30個(gè)雙字母(按照頻率從大到小排列): th he in er an re ed on es st en at to nt ha nd ou ea ng as or ti is et it ar te se hi o

29、f 頻率最高的20個(gè)3字母(按照頻率從大到小排列): the ing and her ere ent tha nth was eth for dth hat she ion int his sth ers ver破解舉例例3.1 已知下面的密文式由單表代換生產(chǎn)的: UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ,試破譯該密文首先統(tǒng)計(jì)密文中字母出現(xiàn)的頻率,然后與英文字母出現(xiàn)頻率比較。密文中字母的相對(duì)頻率統(tǒng)

30、計(jì)如下:將統(tǒng)計(jì)結(jié)果與圖3.3進(jìn)行比較,可以猜測(cè)密文中P與Z可能是e和t,密文中的S,U,O,M出現(xiàn)頻率比較高,可能與明文字母中出現(xiàn)頻率相對(duì)較高的a, o, I, n, s, h, r這些字母對(duì)應(yīng)密文中出現(xiàn)頻率很低的幾個(gè)字母C,K,L,N,R,I,J可能與明文字母中出現(xiàn)頻率較低的字母v, k, j, x, q, z對(duì)應(yīng)。就這樣邊試邊改,最后得到明文如下:it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the v

31、iet cong in moscow 在嘗試過程中,如果同時(shí)使用雙字母和三字母的統(tǒng)計(jì)規(guī)律,那么更容易破譯密文。如上面的密文中出現(xiàn)最多的雙字母是ZW,它可能對(duì)應(yīng)明文雙字母出現(xiàn)頻率較大的th,那么ZWP就可能是the,這樣就更容易試出明文。乘法密碼 對(duì)每個(gè)c, m Zn,乘法密碼的加密和解密算法是: C= Ek(m)= (mk) mod n M= Dk(c)= (ck-1) mod n 其中k和n互素,即gcd(k, n)=1,否則不存在模逆元,不能正確解密乘法密碼的密碼空間大小是(n),(n)是歐拉函數(shù)。乘法密碼的密鑰空間很小,當(dāng)n為26字母,則與26互素的數(shù)是1、3、5、7、9、11、15、1

32、7、19、21、23、25,即(n)=12 因此乘法密碼的密鑰空間為12。乘法密碼也稱采樣密碼,因?yàn)槊芪淖帜副硎菍⒚魑淖帜赴凑障聵?biāo)每隔k位取出一個(gè)字母排列而成。乘法密碼舉例例3.2 假設(shè)選取密鑰為9,使用乘法密碼的加密算法,那么明文字母和密文字母的代換表構(gòu)造如下 若明文為a man liberal in his views那么密文為AENVUJKXUNLUGHUKQG仿射密碼 加法密碼和乘法密碼結(jié)合就構(gòu)成仿射密碼,仿射密碼的加密和解密算法是: C= Ek(m)=(k1m+k2) mod n M= Dk(c)=k1-1(c- k2) mod n仿射密碼具有可逆性的條件是gcd(k, n)=1。當(dāng)

33、k1=0時(shí),仿射密碼變?yōu)榧臃艽a,當(dāng)k2=0時(shí),仿射密碼變?yōu)槌朔艽a。仿射密碼中的密鑰空間的大小為n(n),當(dāng)n為26字母,(n)=12,因此仿射密碼的密鑰空間為1226 = 312。 仿射密碼舉例例3.3設(shè)密鑰K= (7, 3), 用仿射密碼加密明文hot。三個(gè)字母對(duì)應(yīng)的數(shù)值是7、14和19。分別加密如下: (77 + 3) mod 26 = 52 mod 26 =0 (714 + 3) mod 26 = 101 mod 26 =23 (719 + 3) mod 26 =136 mod 26 =6三個(gè)密文數(shù)值為0、23和6,對(duì)應(yīng)的密文是AXG。多表代換密碼 用單表代換密碼加密后的密文具有明文

34、的特征,通過統(tǒng)計(jì)密文中字母出現(xiàn)的頻率能夠比較方便地破解密文 要提高密碼的強(qiáng)度,應(yīng)該讓明文結(jié)構(gòu)在密文中盡量少出現(xiàn) 多表代換密碼和多字母代換密碼能夠減少這種密文字母和明文字母之間的對(duì)應(yīng)關(guān)系多表代換密碼是對(duì)每個(gè)明文字母信息采用不同的單表代換 如果明文字母序列為m = m1m2,令f = f1, f2, 為代換序列,則對(duì)應(yīng)的密文字母序列為: C=Ek(m)= f1 (m1)f2 (m2) 若代換系列為非周期無限序列,則相應(yīng)的密碼為非周期多表代換密碼這類密碼對(duì)每個(gè)明文字母都采用不同的代換表或密鑰進(jìn)行加密,稱作是一次一密密碼(one-time pad cipher), 這是一種在理論上唯一不可破的密碼實(shí)際

35、中經(jīng)常采用周期多表代換密碼,它通常只使用有限的代換表,代換表被重復(fù)使用以完成對(duì)消息的加密 周期多表代換密碼此時(shí)代換表系列為: f = f1, f2, , fd, f1, f2, , fd, 在對(duì)明文字母序列為m = m1m2進(jìn)行加密時(shí),相應(yīng)的密文字母系列為: C=Ek(m)= f1 (m1)f2 (m2) fd (md) f1 (md+1)f2 (md+2) fd (m2d) 當(dāng)d=1時(shí),多表代換密碼變?yōu)閱伪泶鷵Q密碼。維吉尼亞密碼 維吉尼亞(Vigenre)密碼是一種周期多表代換密碼, 由1858年法國(guó)密碼學(xué)家維吉尼亞提出 維吉尼亞密碼常常使用英文單詞作為密鑰字,密鑰則是密鑰字的重復(fù)比如密鑰字

36、是computer,用它加密明文sender and recipient share a common key。那么密鑰為: 明文: senderandrecipientshareacommonkey 密鑰: computercomputercomputercomputerc維吉尼亞密碼加密過程簡(jiǎn)述如下: -寫下明文,表示為數(shù)字形式; -在明文之上重復(fù)寫下密鑰字,也表示為數(shù)字形式; -加密相對(duì)應(yīng)的明文:給定一個(gè)密鑰字母k和一個(gè)明文字母m,那么密文字母則是(m+k)mod 26計(jì)算結(jié)果所對(duì)應(yīng)的字母維吉尼亞密碼舉例例3.5 設(shè)密鑰字是cipher,明文串是this cryptosystem is

37、not secure, 求密文。 在明文下面重復(fù)寫密鑰字,組成密鑰。 明文M: thiscryptosystemisnotsecure 密鑰K: cipherciphercipherciphercip將明文和密鑰轉(zhuǎn)化為數(shù)字 明文M=(19,7,8,18,2,17,24,15,19,14,18,24,18,19,4,12,8,18,13,14,19,18,4,2,20,17,4) 密鑰K=(2,8,15,7,4,17,2,8,15,7,4,17,2,8,15,7,4,17,2,8,15,7,4,17,2,8,15)對(duì)每個(gè)明文數(shù)字和對(duì)應(yīng)的密鑰數(shù)字,使用ci=(mi+ki )mod 26加密得到密文

38、數(shù)字為C=(21,15,23,25,6,8,0,23,8,21,22,15,21,1,19,19,12,9,15,22,8,25,8,19,22,25,19)于是密文為: VPXZGIAXIVWPUBTTMJPWIZITWZT 維吉尼亞密碼的安全性 維吉尼亞密碼是將每個(gè)明文字母映射為幾個(gè)密文字母 如果密鑰字的長(zhǎng)度是m,明文中的一個(gè)字母能夠映射成這m個(gè)可能的字母中的一個(gè) 密文中字母出現(xiàn)的頻率被隱蔽了,它的安全性明顯比單表代換密碼提高了 維吉尼亞密碼的密鑰空間比較大,對(duì)于長(zhǎng)度是m的密鑰字,密鑰空間為26m 當(dāng)m=5,密鑰空間所含密鑰的數(shù)量大于1.1x107 一次一密 一次一密是非周期多表代換密碼

39、使用與明文一樣長(zhǎng)且無重復(fù)的隨機(jī)密鑰來加密明文,并且該密鑰使用一次后就不再使用 一次一密的安全性是取決于密鑰的隨機(jī)性 但產(chǎn)生大規(guī)模隨機(jī)密鑰是一件很困難的事情,目前還沒有很好的辦法來解決這個(gè)問題 密鑰分配也是一個(gè)難點(diǎn),由于密鑰不允許重復(fù)使用,因此存在大量的密鑰分配問題。一次一密在實(shí)際中很少使用,主要是用于高度機(jī)密的低帶寬信道 多字母代換密碼 前面介紹的密碼都是以單字母作為代換對(duì)象 多字母代換密碼每次對(duì)多個(gè)字母進(jìn)行代換多字母代換的優(yōu)點(diǎn)是容易隱藏字母的自然出現(xiàn)頻率,有利于對(duì)抗統(tǒng)計(jì)分析 Playfair 密碼 和Hill 密碼 都是多字母代換密碼Playfair 密碼 Playfair 密碼是將明文中雙

40、字母音節(jié)作為一個(gè)代換單元 Playfair算法是基于一個(gè)由密鑰組成的一個(gè)55 階矩陣 假設(shè)密鑰是monarchy,構(gòu)建矩陣的方法是將密鑰(去掉重復(fù)的字母)從左到右、從上到下填入矩陣中,再將剩余的字母按照字母表的順序依次填入在該矩陣中,字母i和j暫且當(dāng)一個(gè)字母。這樣可以構(gòu)成如下的密鑰矩陣。 MONARCHYBDEFGI/JKLPQSTUVWXZPlayfair的加密原則每次以兩個(gè)字母為一個(gè)單位進(jìn)行操作。 (1) 如果這兩個(gè)字母一樣,則在中間插入一個(gè)字母x(事先約定的一個(gè)字母), 如“balloon” 變成 “ba lx lo on”。 (2) 如果明文長(zhǎng)度不是2的倍數(shù),則在最后填入一個(gè)實(shí)現(xiàn)約定的

41、字母x。如“table”變?yōu)椤皌a bl ex”。 (3) 如果兩個(gè)字母在矩陣的同一行,用它右邊的字母來代替 (最后一個(gè)字母的右邊是第1個(gè)字母), 如“ar” 加密變?yōu)?“RM”。 (4) 如果兩個(gè)字母在同一列,用它下面的字母來代替它 (最底下的字母的下一個(gè)是該列第1個(gè)字母), 如“mu” 加密變?yōu)椤癈M”。 (5) 其他的字母都用它同一行,另一個(gè)字母的同一列相交的字母代替,如 “hs” 加密變?yōu)?“BP”, “ea” 變?yōu)?“IM” 或者 “JM” (由加密者自行決定) Playfair加密舉例例3.6 假設(shè)密鑰是cipher,使用Playfair算法加密Playfair cipher wa

42、s actually invented by wheatston 由密鑰詞cipher可構(gòu)建密鑰矩陣:將明文按照兩個(gè)字母分組為 pl ay fa ir ci ph er wa sa ct ua lx ly in ve nt ed by wh ea ts to nx則密文為 BS DW RB CA IP HE CF IK QB HO QF SP MX EK ZC MU HF DX YI IF UT UQ LZ CIPHERABDFGKLMNOQSTUVWXYZPlayfair密碼的安全性Playfair密碼的安全性比單表代換密碼提高了許多 雙字母共有26 x 26 = 676 組合,因此頻率統(tǒng)計(jì)

43、分析表中需要676 條統(tǒng)計(jì)數(shù)據(jù) Playfair 密碼中比單表代換更好地隱藏了明文中單字母的結(jié)構(gòu) 在第一次世界大戰(zhàn)中被英軍作為最好的密碼系統(tǒng)使用,在第二次世界大戰(zhàn)中也曾經(jīng)被美軍和盟軍大量使用 當(dāng)然現(xiàn)在看來,該密碼的安全性是很低的,它還明文的部分特征,只要給定幾百個(gè)字母的密文情況下,該加密方法就可以破解 Hill 密碼 該密碼是1929年由數(shù)學(xué)家lester Hill發(fā)明的一種多字母代換密碼 加密算法將m個(gè)明文字母替換成m個(gè)密文字母(Hillm密碼表示m個(gè)明文字母為一組) 這種代換由 m個(gè)線性方程決定如果m=3,則該密碼系統(tǒng)可以表示為: 用向量或者矩陣表示為:其中C和M是長(zhǎng)度為3的列向量,分別代

44、表密文和明文,K是一個(gè)33的矩陣,代表加密密鑰運(yùn)算按照模26執(zhí)行。 Hillm 密碼加密過程 將明文字母以m個(gè)字母為單位進(jìn)行分組,若最后一組沒有m個(gè)字母,則補(bǔ)足沒有任何實(shí)際意義的啞字母(雙方事先可以約定這些字母),并用數(shù)字表示這些字母;選擇一個(gè)m階可逆方陣K,稱為Hillm密碼的加密矩陣;對(duì)每m個(gè)字母為一組的明文字母,用它對(duì)應(yīng)的值構(gòu)成一個(gè)m維向量; 計(jì)算密文的值C=km mod26,然后反查字母表的值,得到對(duì)應(yīng)的m個(gè)密文字母;同樣明文的其他組的密文。置換密碼 代換密碼是將明文字母用不同的密文字母代替 置換密碼則保持明文的所有字母不變,只是打亂明文字母的位置和次序 置換密碼實(shí)現(xiàn)方法有很多.下面介

45、紹一種列置換加密方法 假如用密鑰network,加密明文permutation cipher hide the message by rearranging the letter order將明文按照密鑰的長(zhǎng)度一行一行地寫成一個(gè)矩陣,然后按照密鑰字母對(duì)應(yīng)的數(shù)值從小到大,按照列讀出即為密文 在密鑰network中,字母對(duì)應(yīng)的數(shù)字從小到大排列是eknortw,按照這個(gè)順序讀出上面矩陣的列即是密文:EIEHGRGTRAPESEIEDPTHTAANTEUCIEYNEOTIDSRGLRROREERTE MNHMBAHR置換密碼比較簡(jiǎn)單,經(jīng)不起已知明文攻擊但是置換密碼與代換密碼相結(jié)合,可以得到效果很好的密

46、碼。 數(shù)據(jù)加密標(biāo)準(zhǔn) 美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS),即現(xiàn)在的國(guó)家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)于1973年5月向社會(huì)公開征集標(biāo)準(zhǔn)加密算法并公布了它的設(shè)計(jì)要求: - 算法必須提供高度的安全性 -算法必須有詳細(xì)的說明,并易于理解 -算法的安全性取決于密鑰,不依賴于算法 -算法適用于所有用戶 -算法適用于不同應(yīng)用場(chǎng)合 -算法必須高效、經(jīng)濟(jì) -算法必須能被證實(shí)有效1974年8月27日, NBS開始第二次征集,IBM提交了算法LUCIFER,該算法由Feistel領(lǐng)導(dǎo)的團(tuán)隊(duì)研究開發(fā),采用64位分組以及128位密鑰IBM用改版的Lucifer算法參加競(jìng)爭(zhēng),最后獲勝,成為數(shù)據(jù)加密標(biāo)準(zhǔn) (Data Encryptio

47、n Standard, DES)1976年11月23日,采納為聯(lián)邦標(biāo)準(zhǔn),批準(zhǔn)用于非軍事場(chǎng)合的各種政府機(jī)構(gòu)。1977年1月15日,數(shù)據(jù)加密標(biāo)準(zhǔn),即FIPS PUB 46正式發(fā)布DES是分組密碼的典型代表,也是第一個(gè)被公布出來的加密標(biāo)準(zhǔn)算法?,F(xiàn)代大多數(shù)對(duì)稱分組密碼也是基于Feistel密碼結(jié)構(gòu) DES加密過程 DES同時(shí)使用了代換和置換兩種技巧 它用56位密鑰加密64位明文,最后輸出64位密文 整個(gè)過程分為兩大部分組成:一是加密過程,另一是子密鑰產(chǎn)生過程 圖3.4是DES加密算法簡(jiǎn)圖 圖3.4左半邊的處理過程可以分三個(gè)部分: (1) 64位明文經(jīng)過初始置換被重新排列,然后分左右兩半,每半各32位;

48、 (2) 左右兩半經(jīng)過16輪置換和代換迭代,即16次實(shí)施相同的變換。然后再左右兩半互換; (3) 互換后的左右兩半合并,再經(jīng)過逆初始置換輸出64位密文。圖3.4右半部則由56位密鑰,產(chǎn)生16個(gè)48位子密鑰,分別供左半邊的16輪迭代加密使用 初始置換 初始置換(Initial Permutation, IP) 是數(shù)據(jù)加密的第1步將64位的明文按照?qǐng)D3.5置換。置換表中的數(shù)字表示輸入位在輸出中的位置 置換后將數(shù)據(jù)M分成兩部分:左半部分L0和右半部分R0各32位。劃分方法原則是偶數(shù)位移到左半部,奇數(shù)位移到右半部,即:DES每輪結(jié)構(gòu) 上一輪的右邊Ri-1直接變換為下一輪的左邊Li上一輪的左邊Li-1與

49、加密函數(shù)F異或后作為下一輪的右邊Ri加密函數(shù)F則是上一輪右邊Ri-1和子密鑰Ki的函數(shù)。即Li = Ri1Ri = Li1 F(Ri1, Ki)圖3.6 DES每一輪結(jié)構(gòu)Li-1Ri-1LiRiKiF+加密函數(shù)F 本質(zhì)上是Ri-1和子密鑰Ki的異或,如圖3.7所示但由于它們的位數(shù)不一樣,不能直接運(yùn)算從上式可以看出加密函數(shù)F是32位,而Ri-1是32位,子密鑰Ki是48位,因此Ri-1和Ki不能直接異或DES這樣處理這個(gè)問題,先用擴(kuò)展置換E(如圖3.8所示)將Ri-1擴(kuò)展為48位,與48位子密鑰異或,輸出48位,再使用8個(gè)S盒壓縮成32位,然后經(jīng)置換函數(shù)P(如圖3.9所示)輸出32位的加密函數(shù)F

50、。 加密函數(shù)F的計(jì)算過程 Ki (48 bits)Ri-1 (32 bits)48 bitsE+S1S2S3S4S5S8S6S7F (32 bits)P圖3.8 擴(kuò)展置換E圖3.9 置換函數(shù)PS盒 在加密函數(shù)計(jì)算過程中使用了8個(gè)S盒S盒是DES保密性的關(guān)鍵所在S盒是一種非線性變換,也是DES中唯一的非線性運(yùn)算S盒有6 位輸入,4 位輸出48位數(shù)據(jù)經(jīng)過8個(gè)S盒后輸出32位數(shù)據(jù) 每個(gè)S盒都由4行(表示為0,1,2,3)和16列(0,1,15)組成,如圖3.10所示 每行都是全部的16個(gè)長(zhǎng)為4比特串的一個(gè)全排列每個(gè)比特串用它對(duì)應(yīng)的二進(jìn)制整數(shù)表示,如1001用9表示。對(duì)每個(gè)S盒,將6位輸入的第一位和最

51、后一位組成一個(gè)二進(jìn)制數(shù),用于選擇S盒中的一行。用中間的4位選擇S盒16列中的某一列,行列交叉處的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)可得到4位輸出。例如對(duì)于S1盒而言, 如果輸入為011001,則行是01(十進(jìn)制1,即S盒的第2行),列1100(12,即S盒的第13列),該處的值是9,轉(zhuǎn)換為二進(jìn)制數(shù)為1001,即為該S盒的輸出 DES 子密鑰產(chǎn)生 DES加密過程共迭代16輪,每輪用一個(gè)不同的48位子密鑰 子密鑰由算法的56位密鑰產(chǎn)生 DES算法的輸入密鑰長(zhǎng)度是64位,但只用了其中的56位 如圖3.11所示, 圖中無陰影部分,也就是每行的第8位被忽略,主要用于奇偶校驗(yàn),也可以是隨意設(shè)置 子密鑰的產(chǎn)生過程如圖3

52、.12所示 圖3.11 DES的輸入密碼56位密鑰首先經(jīng)過置換選擇1(如圖3.13所示)將其位置打亂重排將前28位作為C0(如圖3.13的上面部分),后28位D0(如圖3.13的下面部分) 接下來經(jīng)過16輪,產(chǎn)生16個(gè)子密鑰每一輪迭代中, Ci-1和Di-1循環(huán)左移1位或者2位,如圖3.14所示Ci-1和Di-1循環(huán)左移后變?yōu)镃i和Di,將Ci和Di合在一起的56位,經(jīng)過置換選擇2(如圖3.15所示),從中挑出48位作為這一輪的子密鑰再將Ci和Di循環(huán)左移后,使用置換選擇2產(chǎn)生下一輪的子密鑰,如此繼續(xù),產(chǎn)生所有16個(gè)子密鑰。圖3.14每輪左移次數(shù)的規(guī)定圖3.15置換選擇2DES解密 DES解密

53、過程與加密過程本質(zhì)上一致加密和解密使用同一個(gè)算法,使用相同的步驟和相同的密鑰主要不同點(diǎn)是將密文作為算法的輸入,但是逆序使用子密鑰ki,即第1輪使用子密鑰k16,第2輪使用子密鑰k15,最后一輪使用子密鑰k1 DES的強(qiáng)度 從發(fā)布時(shí)起,DES就備受爭(zhēng)議 爭(zhēng)論的焦點(diǎn)主要集中在密鑰的長(zhǎng)度、迭代次數(shù)以及S盒的設(shè)計(jì)等方面 DES的安全性是依賴S盒,但是S盒設(shè)計(jì)詳細(xì)標(biāo)準(zhǔn)至今沒有公開 有人懷疑S盒里隱藏了陷門(trapdoors)。然而到目前為止也沒有任何證據(jù)證明DES里確實(shí)存在陷門。事實(shí)上,后來表明S盒是被設(shè)計(jì)成能夠防止差分密碼分析 DES是將Lucifer算法作為標(biāo)準(zhǔn),Lucifer算法的密鑰長(zhǎng)度128

54、位,但DES將密鑰長(zhǎng)度改為56位, 這不能抵抗窮盡密鑰搜索攻擊 1997年,克羅拉多州的程序員Verser在Inrernet上數(shù)萬名志愿者的協(xié)作下用96天的時(shí)間找到了密鑰長(zhǎng)度為40位和48位的DES密鑰1998年電子邊境基金會(huì)(EFF)使用一臺(tái)價(jià)值25萬美元的計(jì)算機(jī)在56小時(shí)之內(nèi)破譯了56位的DES1999年,電子邊境基金會(huì)(EFF)通過互聯(lián)網(wǎng)上的10萬臺(tái)計(jì)算機(jī)合作,僅用22小時(shí)15分破譯了56位的DES另外,DES存在弱密鑰。如果一個(gè)密鑰所產(chǎn)生的所有子密鑰都是一樣的,則這個(gè)外部密鑰就稱為弱密鑰DES的密鑰置換后分成兩半,每一半各自獨(dú)立移位。如果每一半的所有位都是“0”或者“1”,那么在算法的

55、任意一輪所有的子密鑰都是相同的三重DES DES由于安全問題,美國(guó)政府于1998年12月宣布DES不再作為聯(lián)邦加密標(biāo)準(zhǔn) 新的美國(guó)聯(lián)邦加密標(biāo)準(zhǔn)是高級(jí)加密標(biāo)準(zhǔn)(ASE) 在新的加密標(biāo)準(zhǔn)實(shí)施之前,為了使已有的DES算法投資不浪費(fèi),NIST在1999年發(fā)布了一個(gè)新版本的DES標(biāo)準(zhǔn)(FIPS PUB46-3),該標(biāo)準(zhǔn)指出DES僅能用于遺留的系統(tǒng),同時(shí)將三重DES(簡(jiǎn)寫為3DES)取代DES成為新的標(biāo)準(zhǔn)3DES存在幾個(gè)優(yōu)點(diǎn)。首先它的密鑰長(zhǎng)度是168位,足以抵抗窮舉攻擊。其次,3DES的底層加密算法與DES的加密算法相同,該加密算法比任何其它加密算法受到分析的時(shí)間要長(zhǎng)得多,也沒有發(fā)現(xiàn)有比窮舉攻擊更有效的密碼

56、分析攻擊方法 但是雙重DES不安全雙重DES存在中間相遇攻擊,使它的強(qiáng)度跟一個(gè)56位DES強(qiáng)度差不多如果C=EK2EK1M,令X=EK1M=DK2C。若已知(M, C),攻擊方法如下: - 先用256個(gè)可能的K1加密M,得到256個(gè)可能的值,將這些值從小到大存入一個(gè)表中 -再對(duì)256個(gè)可能的K2解密C,每次做完解密,將所得的值與表中的值比較,如果產(chǎn)生匹配,則它們對(duì)應(yīng)的密鑰可能是K1和K2 -用一個(gè)新的明文密文對(duì)檢測(cè)所得兩個(gè)密鑰,如果兩密鑰產(chǎn)生正確的密文,則它們是正確的密鑰 為防止中間相遇攻擊,可以采用3次加密方式,如圖3.17所示 這是使用兩個(gè)密鑰的三重EDS,采用加密解密加密(E-D-E)方

57、案 注意的是, 加密與解密在安全性上來說是等價(jià)的。這種加密方案窮舉攻擊代價(jià)是2112 EEK1K1CMB加密解密DK2ADDK1K1MCAEK2B目前還沒有針對(duì)兩個(gè)密鑰的三重DES實(shí)際的攻擊方法但是感覺它不大可靠,如果采用三把密鑰的三重DES則比較放心三把密鑰的三重DES的密鑰長(zhǎng)度是168位,采用加密解密加密(E-D-E)方案其加密過程為C=EK3DK2 EK1M,解密過程為M=DK1EK2 DK3C這種加密方式已經(jīng)被一些網(wǎng)絡(luò)應(yīng)用采用,如本書后面章節(jié)要討論的PGP和S/MIME采用了這種方案 高級(jí)加密標(biāo)準(zhǔn) DES存在安全問題,而三重DES算法運(yùn)行速度比較慢 其次三重DES的分組長(zhǎng)度為64位,就

58、效率和安全性而言,分組長(zhǎng)度應(yīng)該更長(zhǎng) 美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST )在1997年公開征集新的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standards, AES)要求AES比3DES快而且至少和3DES一樣安全,并特別提出高級(jí)加密標(biāo)準(zhǔn)的分組長(zhǎng)度為128位的對(duì)稱分組密碼,密鑰長(zhǎng)度支持128位、192位、256位。 1997年9月給出的選擇高級(jí)加密標(biāo)準(zhǔn)的評(píng)估準(zhǔn)則是: - 安全性 -代價(jià):指計(jì)算效率方面 - 算法和執(zhí)行特征:指算法的靈活性、簡(jiǎn)潔性以及硬件與軟件平臺(tái)的適應(yīng)性等方面1998年6月NIST共收到21個(gè)提交的算法,在同年的8月首先選出15個(gè)候選算法1999年NIST從15個(gè)

59、AES候選算法中遴選出5個(gè)候選算法它們是:MARS(由IBM公司研究部門的一個(gè)龐大團(tuán)隊(duì)發(fā)布,對(duì)它的評(píng)價(jià)是算法復(fù)雜、速度快、安全性高)RC6(由RSA實(shí)驗(yàn)室發(fā)布,對(duì)它的評(píng)價(jià)是極簡(jiǎn)單、速度極快、安全性低)Rijndael(由Joan Daemen和 Vincent Rijmen 兩位比利時(shí)密碼專家發(fā)布,對(duì)它的評(píng)價(jià)是算法簡(jiǎn)潔、速度快、安全性好)Serpent(由Ross Anderson , Eli Biham 和 Lars Knudsen發(fā)布,對(duì)它的評(píng)價(jià)是算法簡(jiǎn)潔、速度慢、安全性極高)Twofish(由Counterpane公司一個(gè)龐大的團(tuán)隊(duì)發(fā)布,對(duì)它的評(píng)價(jià)是算法復(fù)雜、速度極快、安全性高)從全方位

60、考慮,Rijndael(讀成Rain Doll)匯聚了安全,性能,效率,易用和靈活等優(yōu)點(diǎn),使它成為AES最合適的選擇2000年10月Rijndael算法被選為高級(jí)加密標(biāo)準(zhǔn)2001年11月發(fā)布為聯(lián)邦信息處理標(biāo)準(zhǔn)(Federal Information Processing Standard,F(xiàn)IPS), 用于美國(guó)政府組織保護(hù)敏感信息的一種特殊的加密算法,即FIPS PUB 197標(biāo)準(zhǔn)AES加密 在Rijndael算法中,分組長(zhǎng)度和密鑰長(zhǎng)度分別可以是128位、192位、256位而在AES中,分組長(zhǎng)度只是128位AES算法中基本的運(yùn)算單位是字節(jié),即視為一個(gè)整體的8比特序列如果分組長(zhǎng)度和密鑰長(zhǎng)度為12

溫馨提示

  • 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)論