《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件全套 王秀英 Chapter01-8 數(shù)據(jù)加密技術(shù)概述-公鑰基礎(chǔ)設(shè)施_第1頁(yè)
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件全套 王秀英 Chapter01-8 數(shù)據(jù)加密技術(shù)概述-公鑰基礎(chǔ)設(shè)施_第2頁(yè)
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件全套 王秀英 Chapter01-8 數(shù)據(jù)加密技術(shù)概述-公鑰基礎(chǔ)設(shè)施_第3頁(yè)
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件全套 王秀英 Chapter01-8 數(shù)據(jù)加密技術(shù)概述-公鑰基礎(chǔ)設(shè)施_第4頁(yè)
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件全套 王秀英 Chapter01-8 數(shù)據(jù)加密技術(shù)概述-公鑰基礎(chǔ)設(shè)施_第5頁(yè)
已閱讀5頁(yè),還剩207頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)加密與PKI應(yīng)用第1章數(shù)據(jù)加密技術(shù)概述密碼學(xué)包括密碼編碼學(xué)和密碼分析學(xué)兩個(gè)部分,前者主要研究的是密碼體制的設(shè)計(jì),即結(jié)合各種學(xué)科的專業(yè)設(shè)計(jì)算法,將原始的數(shù)據(jù)轉(zhuǎn)變?yōu)槭茉撁艽a體制保護(hù)的狀態(tài)呈現(xiàn)出來(lái);而后者主要研究的是密碼體制的破譯,即對(duì)已有的密碼體制進(jìn)行分析破解,將受該密碼體制保護(hù)的數(shù)據(jù)還原為最初的原始狀態(tài)。這兩者之間相輔相成、密不可分。目錄011.1密碼學(xué)的發(fā)展歷史021.2密碼體制031.3數(shù)據(jù)加密工作機(jī)制041.4密碼分析密碼學(xué)的發(fā)展歷史01020304密碼學(xué)的未來(lái)發(fā)展近代密碼(計(jì)算機(jī)階段)古典密碼(機(jī)械階段)古代加密方法(手工階段)目錄011.1密碼學(xué)的發(fā)展歷史021.2密碼體制031.3數(shù)據(jù)加密工作機(jī)制041.4密碼分析密碼系統(tǒng)

(1)明文/消息(Plaintext/Message):作為加密輸入的原始消息,即消息的原始形式,一般用M表示。

(2)密文(Cyphertext):明文變換后的一種隱蔽形式,一般用C表示。

(3)加/解密算法(Encryption/DecryptionAlgorithm):將明文變換為密文的一組規(guī)則稱為加密算法;將密文變換為明文的一組規(guī)則稱為解密算法。加密算法可以用函數(shù)E()表示;解密算法可以用函數(shù)D()表示。

(4)加/解密密鑰(Key):控制加密或解密過(guò)程的數(shù)據(jù)稱為加/解密密鑰,用K表示(加密密鑰表示為Ke,解密密鑰表示為Kd)。使用相同的加密算法,通過(guò)變換不同的密鑰可以得到不同的密文。對(duì)稱密碼體制在對(duì)稱密碼體制中,加密與解密使用相同的密鑰,即:Ke=Kd。存在密鑰分發(fā)難題。常見(jiàn)算法包概括RC4、DES、AES、SM4等。加密與解密使用二進(jìn)制位運(yùn)算,運(yùn)算效率相對(duì)較高,常用于加密“消息”;公鑰密碼體制在公鑰密碼體制中,加密與解密使用不同的密鑰,即:Ke≠Kd。不存在密鑰分發(fā)難題。常見(jiàn)算法包概括RSA、ECC、SM2等。加密與解密使用數(shù)學(xué)運(yùn)算,運(yùn)算效率相對(duì)較底,常用于保護(hù)“會(huì)話密鑰”;散列算法對(duì)不同長(zhǎng)度的輸入消息,產(chǎn)生固定長(zhǎng)度的輸出。散列算法的特性:壓縮型單向性抗碰撞性典型的散列算法:MD(MessageDigestAlgorithm)算法SHA(SecureHashAlgorithm)算法SM3算法目錄011.1密碼學(xué)的發(fā)展歷史021.2密碼體制031.3數(shù)據(jù)加密工作機(jī)制041.4密碼分析信息安全工作機(jī)制綜合應(yīng)用對(duì)稱加密、公鑰加密和散列算法各自的特點(diǎn),可以實(shí)現(xiàn)多種安全機(jī)制,接下來(lái)主要介紹數(shù)字信封、數(shù)字簽名與驗(yàn)證、消息鑒別機(jī)制數(shù)字信封數(shù)字信封:綜合應(yīng)用公鑰密碼體制和對(duì)稱密碼體制。使用對(duì)稱會(huì)話密鑰保護(hù)消息;使用公鑰和私鑰保護(hù)對(duì)稱會(huì)話密鑰。數(shù)字簽名與驗(yàn)證數(shù)字簽名與驗(yàn)證:數(shù)字簽名就是用私鑰進(jìn)行加密,而驗(yàn)證就是利用公鑰進(jìn)行正確的解密。消息鑒別消息鑒別:消息鑒別是指消息的接收者檢驗(yàn)收到的消息是否是真實(shí)的方法,即驗(yàn)證消息在傳輸過(guò)程中是否被篡改(消息是否具備完整性)。通過(guò)消息鑒別碼MAC(MessageAuthenticationCode)可以對(duì)消息進(jìn)行鑒別。目錄011.1密碼學(xué)的發(fā)展歷史021.2密碼體制031.3數(shù)據(jù)加密工作機(jī)制041.4密碼分析密碼分析方法密碼分析方法數(shù)學(xué)分析攻擊(MathematicalAnalysisAttack)統(tǒng)計(jì)分析法(StatisticalAnalysisAttack)窮舉攻擊(ExhaustiveAttack)攻擊方式攻擊方式選擇明文攻擊Chosen-plaintextAttack唯密文攻擊Cyphertext-onlyAttack已知明文攻擊Known-plaintextAttack選擇密文攻擊Chosen-cyphertextAttack破譯等級(jí)破譯等級(jí)全盤推導(dǎo)GlobalDeduction信息推導(dǎo)InformationDeduction實(shí)例或局部推導(dǎo)InstanceorLocalDeduction全盤破譯TotalBreak感謝您的瀏覽第1章數(shù)據(jù)加密技術(shù)概述2023.08數(shù)據(jù)加密與PKI應(yīng)用第2章古典加密方法經(jīng)典加密法可以使用手工的方式完成文字的加密和解密。古典加密方法可以分為“替代”技術(shù)和“換位”技術(shù),單碼加密、多碼加密和多圖加密都屬于替代技術(shù),接下來(lái)將分別進(jìn)行介紹。目錄012.1單碼加密法022.2多碼加密法032.3多圖加密法042.4換位加密法凱撒加密法凱撒加密法是把字母表中的每個(gè)字母用該字母后面第3個(gè)字母代替。如果為每個(gè)字母分配一個(gè)數(shù)值(a=1,b=2,...),則該加密法可以表示為:

加密算法:C=(m+3)mod26

解密算法:m=(C-3)mod26

采用凱撒加密法的替代思想,可以用字母表中每個(gè)字母后面第n個(gè)字母替代當(dāng)前字母,該算法的密鑰空間為25。如果“攻擊者”依次嘗試所有的密鑰(蠻力攻擊),就可以輕松地獲得明文。關(guān)鍵詞加密法關(guān)鍵詞加密法選擇一個(gè)詞組作為密鑰,這樣可以加大密鑰空間,使得蠻力攻擊無(wú)效。字母頻率信息:

英文字母的出現(xiàn)頻率是不同的,在攻擊者獲得的密文足夠長(zhǎng)的情況下,通過(guò)字母頻率分析的方法找出對(duì)應(yīng)的明文以及關(guān)鍵詞(密鑰),是可行的。首選關(guān)聯(lián)集:

當(dāng)密文的長(zhǎng)度有限時(shí),密文的頻率樣本可能會(huì)產(chǎn)生偏差,造成通過(guò)字母頻率信息破解明文失敗。在密文破解過(guò)程中,可以使用雙聯(lián)字母(雙字母組合)或三聯(lián)字母(三字母組合)對(duì)密文進(jìn)行分析。仿射加密法

在仿射加密法中,字母表的字母被賦予一個(gè)數(shù)字,例如a=0,b=1,...,z=25。仿射加密法的密鑰為0~25之間的數(shù)字對(duì)兒(a,b)。其中GCD(a,26)=1,b是0~25之間的一個(gè)整數(shù)。

C=(a·m+b)mod26唯密文攻擊:

攻擊者得到通過(guò)仿射加密法加密的密文后,首先進(jìn)行頻率分析,至少確定兩個(gè)字母的替換,例如明文e由C替代,明文t由F替代。選擇明文攻擊:

將已經(jīng)確定的明文與密文替代的字母轉(zhuǎn)換成數(shù)字,建立仿射加密方程式,求解這兩個(gè)等式,攻擊者就破解了密鑰。目錄012.1單碼加密法022.2多碼加密法032.3多圖加密法042.4換位加密法維吉尼亞加密法

維吉尼亞加密法基于關(guān)鍵詞加密系統(tǒng),將關(guān)鍵詞寫在明文的上面,并不斷重復(fù)書寫,這樣每個(gè)明文字母都與關(guān)鍵詞的一個(gè)字母相關(guān)聯(lián)。

每個(gè)明文字母與關(guān)鍵詞的一個(gè)字母配對(duì)兒,但是同一個(gè)明文字母可能與不同的關(guān)鍵詞字母配對(duì)兒。利用維吉尼亞表,這些字母對(duì)兒就可以用來(lái)確定明文字母的加密結(jié)果。維吉尼亞加密法分析:

維吉尼亞加密法可以被看作是多個(gè)單碼加密法的疊加。只要密文足夠長(zhǎng),可以生成合理的統(tǒng)計(jì)樣本,單碼加密法就可以很容易解決,維吉尼亞加密法也就統(tǒng)一解決了。其他多碼加密法

圓柱面加密法:是利用密鑰重新排列明文中的字母位置的一種加密方法。Bazeries圓柱面加密法由20個(gè)輪組成,每個(gè)輪上的字母表順序不同。這些輪按預(yù)先選定的順序排列,轉(zhuǎn)動(dòng)這些輪,使明文出現(xiàn)在同一條直線上,然后可以選取任意的其他直線上的字母作為密文。

回轉(zhuǎn)輪加密法:回轉(zhuǎn)輪加密法是使用機(jī)械和簡(jiǎn)單電路實(shí)現(xiàn)多碼替代的加密方法?;剞D(zhuǎn)輪內(nèi)部是一個(gè)圓盤,它的兩面都有電子接點(diǎn),每個(gè)接點(diǎn)代表字母表中的一個(gè)字母。如果將多個(gè)回轉(zhuǎn)輪串聯(lián)起來(lái),并以不同的速率轉(zhuǎn)動(dòng),就可以構(gòu)建成一個(gè)功能強(qiáng)大的多碼替代加密系統(tǒng)。目錄012.1單碼加密法022.2多碼加密法032.3多圖加密法042.4換位加密法Playfair加密法

Playfair加密法基于一個(gè)5×5字母矩陣,該矩陣使用一個(gè)密鑰詞組構(gòu)造。Playfair根據(jù)下列規(guī)則一次對(duì)明文的兩個(gè)字母進(jìn)行加密:

(1)屬于相同對(duì)兒中的重復(fù)的明文字母將用一個(gè)填充字母如x進(jìn)行分隔,因此,詞balloon將被填充為balxloon。

(2)屬于該矩陣相同行的明文字母將由其右邊的字母代替。而行的最后一個(gè)字母由行的第一個(gè)字母代替。例如ar被加密為RM。

(3)屬于相同列的明文字母將由它下面的字母代替,而列的最后一個(gè)字母由列的第一個(gè)字母代替。例如,mu被加密為CM。

(4)否則,明文的其他字母將由與其同行,且與下一個(gè)字母同列的字母所代替。因此,hs被加密為BP,ea被加密為IM(或JM,這可根據(jù)加密者的意愿而定)。Hill加密法

Hill加密法取m個(gè)連續(xù)的明文字母,并用m個(gè)密文字母代替。若m=3,則該加密法如公式:

例如,考慮明文“paymoremoney”(15024,121417,41214,13424),使用的加密密鑰為:

則密文為:LNSHDLEWMTRW

對(duì)于解密,需要使用加密密鑰的逆矩陣:M=K-1·C。Hill加密法要求密鑰矩陣K是可逆的,即:目錄012.1單碼加密法022.2多碼加密法032.3多圖加密法042.4換位加密法置換加密法

在置換加密法中,將明文分成了固定長(zhǎng)度的塊兒,如長(zhǎng)度為d,置換函數(shù)f()用于從1~d中選取一個(gè)整數(shù),每個(gè)塊兒中的字母根據(jù)f()重新排列。這種加密法的密鑰就是(d,f())。

例如

d=4,f()為(2,4,1,3),即第一個(gè)字符移動(dòng)到位置2;第二個(gè)字符移動(dòng)到位置4;第三個(gè)字符移動(dòng)到位置1;第四個(gè)字符移動(dòng)到位置3。

利用這種置換加密法將文明codesandciphersarefun加密。

首先將明文分塊兒:codesandciphersarefunxxx。

接下來(lái),根據(jù)給定的函數(shù)f()=(2,4,1,3),對(duì)每個(gè)塊兒重新排列,得到密文:DCEONSDAPCHISEARFRUEXNXX。列置換加密法

在列置換加密法中,明文按行填寫在一個(gè)矩陣中,而密文則是以預(yù)定的順序按列讀取生成的。

例如,如果矩陣是4列5行,那么短語(yǔ)encryptionalgorithms可以寫入該矩陣:

如果按照2-4-3-1的順序,按“列”讀出矩陣中的字母,則得到密文:NPNOHRILISCTARMEYOGT??偨Y(jié)感謝您的瀏覽第2章古典加密方法2023.08數(shù)據(jù)加密與PKI應(yīng)用第3章流加密算法流加密算法即流密碼(StreamCipher),又被稱為序列密碼,是對(duì)稱加密體制中的一類加密算法。由于流加密算法的研究具有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)和豐富的研究成果,因而被廣泛應(yīng)用于軍事、外交等重要部門的保密通信領(lǐng)域。目錄013.1有限域上的多項(xiàng)式運(yùn)算023.2流加密算法的基本原理033.3反饋移位寄存器043.4典型流加密算法

G是定義了一個(gè)二元運(yùn)算“+”的集合,如果這個(gè)運(yùn)算滿足下列性質(zhì),那么G就被稱為一個(gè)群(Group),記為(G,+)。

(1)封閉性:如果a和b都屬于G,那么a+b也屬于G;

(2)結(jié)合律:對(duì)于G中的任意元素a、b和c,都有(a+b)+c=a+(b+c)成立;

(3)單位元:G中存在單位元e,對(duì)于G中任意元素a,都有a+e=e+a=a成立;

(4)逆元:對(duì)于G中的任意元素a,G中都存在元素a',使得a+a'=a'+a=e成立。

【例3-1】試分析整數(shù)集合Z4={0,1,2,3}對(duì)于“模4加法”運(yùn)算,是否構(gòu)成一個(gè)群。

(1)由于集合中任意兩個(gè)元素進(jìn)行“模4加法”運(yùn)算,結(jié)果仍然是該集合中的元素,所以這個(gè)集合符合“封閉性”。

(2)該集合中的任意3個(gè)元素的運(yùn)算滿足結(jié)合律。(3)該集合中存在單位元e=0。

(4)集合中每個(gè)元素都可以在該集合中找到它的逆元,使得該元素與其逆元進(jìn)行“模4加法”運(yùn)算的結(jié)果為單位元0。

由于這個(gè)集合在“模4加法”運(yùn)算中滿足封閉性、結(jié)合律,存在單位元,每個(gè)元素都存在逆元,所以這個(gè)集合對(duì)于“摸4加法”運(yùn)算構(gòu)成一個(gè)群。群1)交換群:如果群(G,+)中的運(yùn)算“+”還滿足交換律,即對(duì)G中的任意元素a和b,都有a+b=b+a成立,則稱(G,+)為一個(gè)交換群,或者阿貝爾群(AbelianGroup)。2)群的階:如果一個(gè)群中的元素是有限的,則稱這個(gè)群為有限群,否則這個(gè)群是一個(gè)無(wú)限群。有限群中元素的個(gè)數(shù)稱為群的階。3)循環(huán)群與生成元:重復(fù)使用群中的運(yùn)算,即構(gòu)成該群的“冪”運(yùn)算,例如,a3=a+a+a,并且規(guī)定a0=e,即群中元素的0次冪的結(jié)果等于單位元。如果一個(gè)群的所有元素都是a的冪ak(k為整數(shù)),則稱這個(gè)群是一個(gè)循環(huán)群,a被稱為這個(gè)群的生成元。4)群中元素的階:對(duì)于群G中的元素a,滿足ai=e的最小正整數(shù)i稱為元素a的階。群

R是定義了兩個(gè)二元運(yùn)算“+”和“×”的集合,如果這兩個(gè)運(yùn)算滿足下列性質(zhì),那么R就被稱為一個(gè)環(huán)(Ring),記為(R,+,×)。

(1)(R,+)是一個(gè)交換群;

(2)“×”運(yùn)算具有封閉性:如果a和b都屬于R,那么a×b也屬于R;

(3)“×”運(yùn)算滿足結(jié)合律:對(duì)于R中的任意元素a、b和c,都有(a×b)×c=a×(b×c)成立;

(4)兩個(gè)運(yùn)算滿足分配律:對(duì)于R中的任意元素a、b和c,都有(a+b)×c=a×c+b×c和c×(a+b)=c×a+c×b成立。

【例3-2】試分析整數(shù)集合Z4={0,1,2,3}對(duì)于“模4加法”運(yùn)算和“模4乘法”運(yùn)算,是否構(gòu)成一個(gè)群。

(1)對(duì)于交換群的分析可知,該整數(shù)集合對(duì)于“模4加法”運(yùn)算構(gòu)成一個(gè)交換群。

(2)由于該集合中任意兩個(gè)元素進(jìn)行“模4乘法”運(yùn)算的結(jié)果仍然是該集合中的元素,所以這個(gè)集合的“模4乘法”運(yùn)算具有封閉性。

(3)該集合中任意3個(gè)元素的“模4乘法”運(yùn)算滿足結(jié)合律。

(4)該集合中任意3個(gè)元素的“模4加法”運(yùn)算和“模4乘法”運(yùn)算滿足分配律。

該集合上的“模4加法”和“模4乘法”構(gòu)成一個(gè)環(huán)。環(huán)1)交換環(huán):如果環(huán)(R,+,×)對(duì)于“×”運(yùn)算滿足交換律,即對(duì)R中的任意元素a和b,都有a×b=b×a成立,則稱R為一個(gè)交換環(huán)。2)整環(huán):對(duì)于一個(gè)交換環(huán)(R,+,×),如果存在一個(gè)“×”運(yùn)算的單位元s,即對(duì)R中任意元素a,使得a×s=s×a=a成立;同時(shí),該環(huán)無(wú)零因子,即對(duì)于R中任意兩個(gè)元素a和b,如果a×b的結(jié)果是“+”運(yùn)算的單位元,那么a或b中一定存在一個(gè)“+”運(yùn)算的單位元。此時(shí),稱R為一個(gè)整環(huán)。

另外,環(huán)中任意兩個(gè)元素a和b,如果a×b=0(0是該環(huán)中“+”運(yùn)算的單位元),那么要么a為0,要么b為0,即該環(huán)無(wú)零因子,所以這個(gè)環(huán)也是一個(gè)整環(huán)。環(huán)

如果F是定義了兩個(gè)二元運(yùn)算“+”和“×”的集合,如果這兩個(gè)運(yùn)算滿足下列性質(zhì),那么F就被稱為一個(gè)域(Field),記為(F,+,×)。

(1)(R,+)是一個(gè)交換群;

(2)非0元的“×”運(yùn)算構(gòu)成交換群;

(3)滿足分配律。

【例3-3】試分析整數(shù)集合Z4={0,1,2,3}對(duì)于“模4加法”運(yùn)算和“模4乘法”運(yùn)算,是否構(gòu)成一個(gè)域。

(1)這個(gè)集合對(duì)于“模4加法”運(yùn)算構(gòu)成一個(gè)交換群;

(2)假設(shè)該集合的非0集合為Z4*,即Z4*={1,2,3}。對(duì)于“模4乘法”運(yùn)算,這個(gè)集合單位元e=1,元素1的逆元是1;元素3的逆元是3;元素2沒(méi)有逆元。

(3)滿足分配律。

由于元素2對(duì)于“模4乘法”運(yùn)算沒(méi)有逆元,所以這個(gè)定義了“模4加法”和“模4乘法”運(yùn)算的集合Z4={0,1,2,3}不是一個(gè)域,它只能構(gòu)成一個(gè)環(huán)。域

如果F是定義了兩個(gè)二元運(yùn)算“+”和“×”的集合,如果這兩個(gè)運(yùn)算滿足下列性質(zhì),那么F就被稱為一個(gè)域(Field),記為(F,+,×)。

(1)(R,+)是一個(gè)交換群;

(2)非0元的“×”運(yùn)算構(gòu)成交換群;

(3)滿足分配律。

【例3-4】試分析整數(shù)集合Z5={0,1,2,3,4}對(duì)于“模5加法”運(yùn)算和“模5乘法”運(yùn)算,是否構(gòu)成一個(gè)域。

(1)這個(gè)集合對(duì)于“模5加法”運(yùn)算構(gòu)成一個(gè)交換群;

(2)假設(shè)該集合的非0集合為Z5*,即Z5*={1,2,3,4}。對(duì)于“模5乘法”運(yùn)算,這個(gè)集合單位元e=1,元素1的逆元是1;元素2的逆元是3;元素3的逆元是2;元素4的逆元是4。

(3)這個(gè)集合滿足分配律。

所以這個(gè)定義了“模5加法”和“模5乘法”運(yùn)算的集合Z5={0,1,2,3,4}是一個(gè)域。域

當(dāng)q為素?cái)?shù)時(shí),整數(shù)集合Zq={0,1,2,...,q-1}對(duì)于“模q加法”和“模q乘法”運(yùn)算就構(gòu)成了一個(gè)域,記為GF(q);當(dāng)q不是素?cái)?shù)時(shí),只能構(gòu)成一個(gè)環(huán)。

如果一個(gè)域中的元素是有限的,則稱這個(gè)域是有限域。有限域也被稱為伽羅瓦域(GaloisField),在密碼學(xué)中主要使用有限域。GF(2)={0,1}是一個(gè)包含兩個(gè)元素“0”和“1”的有限域,該有限域中定義的兩個(gè)運(yùn)算分別是“模2加法”和“模2乘法”。

有限域F中非零元組成的集合F*關(guān)于乘法組成的群稱為有限域的乘法群。假設(shè)Fq是一個(gè)含有q個(gè)元素的有限域,其乘法群Fq*=Fq\{0}是一個(gè)循環(huán)群,此時(shí)Fq*的生成元稱為Fq的本原元,并且Fq中共有

個(gè)本原元。有限域和本原元

設(shè)R是整數(shù)環(huán),x為變量,則R上形式如下所示的元素稱為R上的多項(xiàng)式。anxn+an-1xn-1+...+a1x+a0,ai∈R

設(shè)f(x)=anxn+...+a1x+a0(an≠0)是整數(shù)環(huán)R上的多項(xiàng)式,則稱多項(xiàng)式f(x)的次數(shù)為n,記為degf=n。

如果多項(xiàng)式f(x)=anxn+an-1xn-1...+a1x+a0,多項(xiàng)式g(x)=bnxn+bn-1xn-1+...+b1x+b0,那么多項(xiàng)式加法、乘法公式如下:f(x)+g(x)=(an+bn)xn+(an-1+bn-1)xn-1+...+(a1+b1)x+(a0+b0)f(x)·g(x)=(an·bn)xn+n+(an·bn-1)xn+(n-1)+..+(an-1·bn)x(n-1)+n+...+(a0·b0)

舉例:設(shè)f(x)=x7+x+1,g(x)=x6+x4+x2+x+1,并且f(x)∈F2(x),g(x)∈F2(x),計(jì)算f(x)+g(x)和f(x)·g(x)的結(jié)果。多項(xiàng)式整數(shù)環(huán)設(shè)f(x)和g(x)是整數(shù)環(huán)R上的任意兩個(gè)多項(xiàng)式,其中g(shù)(x)≠0。如果存在一個(gè)多項(xiàng)式q(x),使得f(x)=q(x)·g(x)成立,則稱g(x)整除f(x),或者f(x)被g(x)整除,記作g(x)|f(x),g(x)被稱為f(x)的因式。設(shè)f(x)是整數(shù)環(huán)R上的非常數(shù)多項(xiàng)式,如果除了1和f(x)外,f(x)沒(méi)有其他非常數(shù)因式,那么f(x)被稱為不可約多項(xiàng)式,否則f(x)被稱為合式。

【例3-6】多項(xiàng)式x2+1在整數(shù)域、復(fù)數(shù)域和F2(x)中是否可約。在整數(shù)域中,該多項(xiàng)式除了1和它本身,沒(méi)有其它非常數(shù)因式,所以不可約,即它是不可約多項(xiàng)式。在復(fù)數(shù)域中,x2+1=(x+i)·(x-i),所以可約,該多項(xiàng)式是合式。在F2(x)中,x2+1=(x+1)·(x+1),所以可約,該多項(xiàng)式是合式。多項(xiàng)式整除與不可約多項(xiàng)式

設(shè)f(x)=anxn+an-1xn-1+...+a1x+a0和g(x)=bmxm+bm-1xm-1+...+b1x+b0是整數(shù)環(huán)R上的兩個(gè)多項(xiàng)式,則一定存在多項(xiàng)式q(x)和r(x),使得:

f(x)=q(x)·g(x)+r(x),degr<degg

其中q(x)稱為f(x)被g(x)除所得的不完全商,r(x)稱為f(x)被g(x)除所得的余式。【例3-7】設(shè)f(x)=x4+x+1和g(x)=x2+1是F2(x)多項(xiàng)式,求q(x)和r(x)。r0(x)=f(x)-x2·g(x)=x2+x+1

r1(x)=r0(x)-1·g(x)=x所以,q(x)=x2+1,r(x)=x,即x4+x+1=(x2+1)·(x2+1)+x。設(shè)r-2(x)=f(x),r-1(x)=g(x),反復(fù)運(yùn)算多項(xiàng)式Euclid除法,則:r-2(x)=q0(x)·r-1(x)+r0(x),r-1(x)=q1(x)·r0(x)+r1(x),r0(x)=q2(x)·r1(x)+r2(x),......,rk-3(x)=qk-1(x)·rk-2(x)+rk-1(x),rk-2(x)=qk(x)·rk-1(x)+rk(x),此時(shí)rk(x)=0,gcd(f(x),g(x))=rk-1(x)。rk-1(x)是多項(xiàng)式Euclid除法中最后一個(gè)非零除式。將上述過(guò)程反過(guò)來(lái)計(jì)算,則可以找到s(x)和t(x):s(x)·f(x)+t(x)·g(x)=gcd(f(x),g(x))多項(xiàng)式歐幾里得除法多項(xiàng)式歐幾里得除法

設(shè)p是任意給定的素?cái)?shù),n是任意一個(gè)正整數(shù)。如果f(x)是域Zp上的一個(gè)n次不可約多項(xiàng)式,則Zp[x]/f(x)是一個(gè)域。域Zp[x]/f(x)包含pn個(gè)元素。Zp[x]/f(x)={a0+a1x+...+an-1xn-1}將GF(pn)[x]標(biāo)記為Zp[x]/f(x),則GF(pn)[x]={a0+a1x+...+an-1xn-1},其系數(shù)的加法和乘法相當(dāng)于模p的加法和乘法,多項(xiàng)式的加法和乘法相當(dāng)于模f(x)的加法和乘法?!纠?-9】計(jì)算有限域Z2[x]/(x2+x+1)中元素的加法和乘法運(yùn)算的結(jié)果。有限域的構(gòu)造有限域的表示目錄013.1有限域上的多項(xiàng)式運(yùn)算023.2流加密算法的基本原理033.3反饋移位寄存器043.4典型流加密算法流加密技術(shù)的歷史

流加密技術(shù)使用了一種特殊的二進(jìn)制位運(yùn)算,“異或”運(yùn)算,異或運(yùn)算相當(dāng)于運(yùn)算數(shù)進(jìn)行模2加運(yùn)算。

流加密算法的基本原理非常簡(jiǎn)單,就是將明文與一個(gè)隨機(jī)密鑰序列進(jìn)行異或運(yùn)算來(lái)產(chǎn)生密文。基于異或運(yùn)算的特性,將密文與同一個(gè)密鑰序列進(jìn)行異或運(yùn)算就可以恢復(fù)明文。ci=mi⊕ki,i=1,2,...mi=ci⊕ki,i=1,2,...

密算法的加密和解密都非常簡(jiǎn)單,易于實(shí)現(xiàn),非常適合于計(jì)算資源有限的系統(tǒng),例如移動(dòng)電話、小型嵌入式系統(tǒng)等。密鑰流生成器

由異或運(yùn)算的特性可知,如果使用一個(gè)“真隨機(jī)數(shù)生成器”得到一個(gè)密鑰序列并且只使用1次,則可以實(shí)現(xiàn)“一次一密”加密,達(dá)到無(wú)條件安全性。

采用一個(gè)密鑰流生成器,利用一個(gè)短的種子密鑰來(lái)生成一個(gè)與明文長(zhǎng)度相同的密鑰序列作為加密密鑰。這樣,只要在發(fā)送者和接收者之間使用相同的密鑰流生成器和種子密鑰,就可以在他們之間產(chǎn)生相同的密鑰序列。

當(dāng)然,這樣產(chǎn)生的密鑰序列不是真正的隨機(jī)序列,而是一種偽隨機(jī)序列,只要這個(gè)偽隨機(jī)序列滿足真正隨機(jī)序列的特性,那么就可以用來(lái)安全加密通信。目錄013.1有限域上的多項(xiàng)式運(yùn)算023.2流加密算法的基本原理033.3反饋移位寄存器043.4典型流加密算法線性反饋移位寄存器

生成密鑰流的的基本部件是反饋移位寄存器(FSR,FeedbackShiftRegister)。反饋移位寄存器的組成:n個(gè)寄存器一個(gè)反饋函數(shù)f(a1,a2,...,an)

ai表示第i級(jí)寄存器(1≤i≤n),ai的取值為0或1。

在任一時(shí)刻,這些寄存器的內(nèi)容構(gòu)成了反饋移位寄存器的一個(gè)狀態(tài)。每一個(gè)狀態(tài)實(shí)際上對(duì)應(yīng)著一個(gè)n維向量(a1,a2,...,an),總共有2n個(gè)狀態(tài)向量。線性反饋移位寄存器

如果反饋函數(shù)f(a1,a2,...,an)是a1,a2,...,an的線性函數(shù),則稱這樣的移位寄存器為線性反饋移位寄存器(LFSR,LinearFeedbackShiftRegister)。反饋函數(shù):f(a1,a2,...,an)=b1·a1⊕b2·a2⊕...⊕bn·an

由于系數(shù)bi的值是二進(jìn)制數(shù)值,所以系數(shù)可以被看作是“開關(guān)”。

如果反饋函數(shù)的系數(shù)恒為零(b1,b2,...,bn都為0),則無(wú)論初始狀態(tài)如何,在n個(gè)時(shí)鐘脈沖后,每個(gè)寄存器的內(nèi)容都必然為0,以后的輸出也將全部為0,因此,通常假設(shè)系數(shù)b1,b2,...,bn不全為0。線性反饋移位寄存器

【例3-11】一個(gè)3級(jí)線性反饋移位寄存器的初始狀態(tài)(a1,a2,a3)=(1,0,1),反饋函數(shù)為f(a1,a2,a3)=a1⊕a3,計(jì)算這個(gè)3級(jí)線性反饋移位寄存器的狀態(tài)和輸出結(jié)果。

該3級(jí)線性反饋移位寄存器的輸出結(jié)果為101001110100111......。從第8行開始,寄存器的狀態(tài)恢復(fù)到了初始狀態(tài),寄存器狀態(tài)和輸出開始重復(fù),所以周期為7。輸出周期每個(gè)線性反饋移位寄存器都有一個(gè)關(guān)聯(lián)的特征多項(xiàng)式,該特征多項(xiàng)式與線性反饋移位寄存器的數(shù)學(xué)結(jié)構(gòu)有關(guān)。p(x)=bnxn+bn-1xn-1+...+b1x+1,

如果線性反饋移位寄存器的特征多項(xiàng)式是本原多項(xiàng)式,那么線性反饋移位寄存器的輸出序列達(dá)到最大周期,其輸出序列為m序列。

輸出序列的周期取決于寄存器的初始狀態(tài)和反饋函數(shù)。在GF(2)上,對(duì)于n級(jí)線性反饋移位移位寄存器,最多有2n個(gè)不同的狀態(tài),去除全0的狀態(tài),輸出序列的周期最多為2n-1,

周期達(dá)到最大值的序列稱為m序列。輸出周期a對(duì)應(yīng)的特征多項(xiàng)式是一個(gè)本原多項(xiàng)式,所以a可以輸出m序列,輸出序列的周期為7。a的線性反饋函數(shù)為:fa(a1,a2,a3)=a3⊕a1。a的初始狀態(tài)都是全“1”,其輸出序列為“1110100”。b對(duì)應(yīng)的特征多項(xiàng)式不是一個(gè)本原多項(xiàng)式,所以b不會(huì)輸出m序列。b的線性反饋函數(shù)為:fb(a1,a2,a3,a4)=a4⊕a3⊕a2⊕a1。a的初始狀態(tài)都是全“1”,其輸出序列為“11110”。

【例3-12】a是一個(gè)3級(jí)線性反饋移位寄存器,其特征多項(xiàng)式為pa(x)=x3+x+1;b是一個(gè)4級(jí)線性反饋移位寄存器,其特征多項(xiàng)式為pb(x)=x4+x3+x2+x+1。試分析a和b是否輸出m序列,給出a和b的線性反饋函數(shù)。如果a和b的初始狀態(tài)都是全“1”,請(qǐng)給出輸出序列循環(huán)。已知明文攻擊【例3-13】設(shè)一個(gè)流密碼算法使用了一個(gè)GF(2)上的3級(jí)線性反饋移位寄存器作為密鑰流生成器,已知明文為0100010001B的密文為1010110110B,試破譯該加密算法。

通過(guò)明文和密文,可以計(jì)算得到密鑰序列為:0100010001B

1010110110B

=

1110100111B,也就是說(shuō)a1=1,a2=1,a3=1,a4=0,a5=1,a6=0。因此,反饋函數(shù)為:非線性反饋移位寄存器

每個(gè)線性反饋移位寄存器都產(chǎn)生一個(gè)不同的序列:x1(i),x2(i),...,xn(i)。

密鑰序列k=(k1,k2,...,kt,...)可以利用一個(gè)非線性組合函數(shù):

f(x1(i),x2(i),...,xn(i)),根據(jù)每個(gè)線性反饋移位寄存器的輸出來(lái)產(chǎn)生,即:

kt=f(x1(t),x2(t),...,x3(t)),t≥1。

為了獲得更好的安全性,可以將多個(gè)線性反饋移位寄存器組合起來(lái)使用,從而獲得非線性特性。非線性反饋移位寄存器∵kt=f(x1(t),x2(t),x3(t)),t≥1∴當(dāng)x1(1)=0,x2(1)=0,x3(1)=0時(shí),k1=0·0⊕0⊕0·0=0當(dāng)x1(2)=0,x2(2)=0,x3(2)=1時(shí),k2=0·0⊕0⊕0·1=0當(dāng)x1(3)=0,x2(3)=1,x3(3)=0時(shí),k3=0·0⊕1⊕0·0=1......

【例3-14】由3個(gè)線性反饋移位寄存器組合成一個(gè)非線性反饋移位寄存器,其非線性組合函數(shù)f(x1(i),x2(i),x3(i))=x1(i)·x3(i)⊕x2(i)⊕x2(i)·x3(i),試計(jì)算該非線性反饋移位寄存器的輸出序列。目錄013.1有限域上的多項(xiàng)式運(yùn)算023.2流加密算法的基本原理033.3反饋移位寄存器043.4典型流加密算法A5/1算法概述

A5算法是歐洲GSM(全球移動(dòng)通信系統(tǒng))標(biāo)準(zhǔn)中規(guī)定的加密算法,用于GSM中移動(dòng)電話與基站之間的語(yǔ)音加密。其中,A5/1算法為強(qiáng)加密算法,適用于歐洲地區(qū);A5/2算法為弱加密算法,適用于歐洲以外的地區(qū)。線性反饋移位寄存器fA()=A[13]⊕A[16]⊕A[17]⊕A[18]fB()=B[12]⊕B[16]⊕B[20]⊕B[21]fC()=C[17]⊕C[18]⊕C[21]⊕C[22]鐘控方式“擇多”原則:

當(dāng)A[8]、B[10]和C[10]3個(gè)值中有兩個(gè)“1”時(shí),值為“1”的寄存器對(duì)應(yīng)的線性反饋移位寄存器右移1位,值為“0”的寄存器對(duì)應(yīng)的線性反饋移位寄存器不移位;當(dāng)這3個(gè)值中有兩個(gè)“0”時(shí),值為“0”的寄存器對(duì)應(yīng)的線性反饋移位寄存器右移1位,值為“1”的寄存器對(duì)應(yīng)的線性反饋移位寄存器不移位。輸出結(jié)果

每個(gè)時(shí)鐘周期,A5/1算法A[18]、B[21]和C[22]進(jìn)行異或運(yùn)算,其結(jié)果作為整個(gè)算法1比特的密鑰輸出。非線性反饋移位寄存器的密鑰流輸出函數(shù)為:f(A[18],B[21],C[22])=A[18]⊕B[21]⊕C[22]。RC4算法概述

RC4算法是一種基于非線性數(shù)據(jù)表變換的流加密算法。它以一個(gè)足夠大的數(shù)據(jù)表(S盒)為基礎(chǔ),對(duì)表進(jìn)行非線性變換,產(chǎn)生非線性的密鑰流序列。RC4算法的S盒的大小根據(jù)參數(shù)n的值的不同而不同,通常n=8,這樣RC4算法可以生成總共包含256(28)個(gè)元素的數(shù)據(jù)表S:S[0],S[1],…,S[255],每次輸出一個(gè)元素。

RC4算法是RonRivest在1987年設(shè)計(jì)出的密鑰長(zhǎng)度可變的流加密算法。RC4算法的優(yōu)點(diǎn)是很容易用軟件實(shí)現(xiàn),加解密速度快,被廣泛應(yīng)用于多種應(yīng)用軟件以及安全協(xié)議中(例如安全套接層協(xié)議SSL)。該算法還被應(yīng)用于無(wú)線系統(tǒng),從而保護(hù)無(wú)線連接的安全。密鑰調(diào)度算法j:=0fori:=0to255dobegin

j:=i+S(i)+K(i)(mod256)

swap(S(i),S(j))end

swap(a,b)是一個(gè)交換函數(shù),表示對(duì)兩個(gè)參數(shù)的值進(jìn)行交換。

密鑰調(diào)度算法(Key-SchedulingAlgorithm,KSA)用來(lái)設(shè)置數(shù)據(jù)表S。初始化S表時(shí),首先設(shè)置S表的元素。S(i)=i,0≤i≤255接下來(lái),通過(guò)選取一系列數(shù)字(當(dāng)參數(shù)n=8時(shí),這些數(shù)字的取值范圍為0~255)作為種子密鑰,并將這些數(shù)字循環(huán)加載到密鑰表K中完成種子密鑰表的設(shè)置。

例如,選擇了m個(gè)數(shù)字,d0,d1,...,dm-1,那么密鑰表K:K[0]=d0,K[1]=d1,...,K[m-1]=dm-1,K[m]=d1,K[m+1]=d2,...。數(shù)據(jù)表S通過(guò)程序完成隨機(jī)化。偽隨機(jī)生成算法密鑰流的選取程序:i:=i+1(mod256)j:=j+S(i)(mod256)swap(S(i),S(j))t:=S(i)+S(j)(mod256)k:=S(t)

偽隨機(jī)生成算法(PseudoRandom-GenerationAlgorithm,PRGA)用來(lái)選取隨機(jī)元素并修改S的原始排序順序。當(dāng)KSA算法完成了數(shù)據(jù)表S的初始隨機(jī)化以后,PRGA將為密鑰流選取字節(jié),即從數(shù)據(jù)表S中選取隨機(jī)元素,并修改數(shù)據(jù)表S以便下一次選取。選取過(guò)程取決于索引i和j,這兩個(gè)索引值都是從0開始的。感謝您的瀏覽第3章流加密算法2023.08數(shù)據(jù)加密與PKI應(yīng)用第4章分組加密算法分組加密算法也叫塊兒加密算法(BlockCipher),屬于對(duì)稱密碼體制,是“替代-換位”加密法到計(jì)算機(jī)加密的延伸。分組加密算法采用二進(jìn)制位運(yùn)算(或字節(jié)運(yùn)算)方式,運(yùn)算效率相對(duì)較高,被廣泛應(yīng)用于現(xiàn)代加密系統(tǒng)中,是現(xiàn)代密碼學(xué)的重要組成部分。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式明文分組與密文分組

分組加密算法將明文編碼為二進(jìn)制序列后,按固定長(zhǎng)度分為t個(gè)分組:M1,M2,...,Mt,使用密鑰對(duì)每個(gè)分組執(zhí)行相同的變換,從而生成t個(gè)密文分組:C1,C2,...,Ct。

考慮到算法的安全性,分組加密算法的分組長(zhǎng)度不能太短,應(yīng)該保證加密算法能夠抵抗密碼分析;另外,考慮到分組加密算法的實(shí)用性,分組長(zhǎng)度不能太長(zhǎng),要便于運(yùn)算。目前,分組加密算法分組的大小通常為64比特或128比特。

分組加密算法處理的分組大小是固定的,如果明文數(shù)據(jù)的大小不是分組大小的整數(shù)倍,那么就需要對(duì)最后一個(gè)分組進(jìn)行填充,使其達(dá)到規(guī)定的大小。填充應(yīng)該具有可逆性,即在解密時(shí)應(yīng)該能夠識(shí)別出加密時(shí)使用的填充數(shù)據(jù)。分組加密算法的基本結(jié)構(gòu)擴(kuò)散性:隱蔽明文的統(tǒng)計(jì)特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是換位。模糊性:隱蔽密鑰的統(tǒng)計(jì)特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是替代。通常采用非線性變換。乘積密碼:將擴(kuò)散和模糊串聯(lián)起來(lái)并重復(fù)操作,這樣的密碼體制被稱為(ProduceCipher)

20世紀(jì)40年代,香濃(Shannon)提出,好的加密算法應(yīng)該具備擴(kuò)散性(Diffusion)和模糊性(Confusion)。擴(kuò)散性:擴(kuò)散就是讓明文中的每一比特影響密文中的許多比特,或者說(shuō)讓密文中的每一比特受明文中的許多比特的影響,這樣可以隱蔽明文的統(tǒng)計(jì)特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是換位。模糊性:模糊就是將密文與密鑰之間的統(tǒng)計(jì)關(guān)系變得盡可能復(fù)雜,使得對(duì)手即使獲取了關(guān)于密文的一些統(tǒng)計(jì)特性,也無(wú)法推測(cè)密鑰。使用復(fù)雜的非線性替代變換可以達(dá)到比較好的模糊效果。實(shí)現(xiàn)模糊性的常用方法是替代。Feistel網(wǎng)絡(luò)是一種迭代結(jié)構(gòu),它將明文平分為左右兩部分,L0和R0,經(jīng)過(guò)r(r≥1)輪迭代完成整個(gè)操作過(guò)程。假設(shè)第i-1輪的輸出為L(zhǎng)i-1和Ri-1,則它們作為第i輪的輸入,重復(fù)執(zhí)行相同的變換。Feistel網(wǎng)絡(luò)結(jié)構(gòu)的典型代表是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,DataEncryptionStandard)。Feistel網(wǎng)絡(luò)在SP網(wǎng)絡(luò)中,S表示替代,又被稱為混淆層,主要起模糊作用;P表示換位,又被稱為換位層,主要起擴(kuò)散作用。SP網(wǎng)絡(luò)也是一種乘積密碼,它由一定數(shù)量的迭代組成,其中每一次迭代都包含了替代和換位。假設(shè)第i-1輪的輸出為xi-1,它是第i輪的輸入,在經(jīng)過(guò)替代和換位后,輸出第i輪的結(jié)果xi,這里的替代部分需要使用第i輪的子密鑰ki。SP網(wǎng)絡(luò)結(jié)構(gòu)的典型代表是高級(jí)加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)。SP網(wǎng)絡(luò)目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式DES算法的整體結(jié)構(gòu)明文分組:64比特;密鑰長(zhǎng)度:64比特;密文分組:64比特DES的加密過(guò)程包含3個(gè)階段:

(1)將64比特明文數(shù)據(jù)分組送入初始換位IP()函數(shù)(InitialPermutation),用于對(duì)明文中的數(shù)據(jù)重新排列,然后將明文分成兩部分,分別為L(zhǎng)0(前32比特)和R0(后32比特)。

(2)進(jìn)行16輪迭代運(yùn)算。這16輪迭代運(yùn)算具有相同的結(jié)構(gòu),每輪都會(huì)應(yīng)用替代技術(shù)和換位技術(shù),且使用不同的子密鑰k

i。這些子密鑰是從原始密鑰運(yùn)算而來(lái)的。第16輪運(yùn)算的輸出為R16和L16。

(3)將R16和L16重新拼接起來(lái),然后送入逆初始換位IP-1()函數(shù),最后的輸出就是64比特的密文。子密鑰生成

DES算法需要進(jìn)行16輪迭代運(yùn)算,每輪都需要一個(gè)48比特的子密鑰。

子密鑰是根據(jù)用戶提供的64比特初始密鑰產(chǎn)生的。子密鑰生成

將64比特的初始密鑰送入壓縮型初始密鑰換位表PC-1,去除奇偶校驗(yàn)位,對(duì)密鑰重新排列并分為兩部分,C0(前28比特)和D0(后28比特)。子密鑰生成

將64比特的初始密鑰送入壓縮型初始密鑰換位表PC-1,去除奇偶校驗(yàn)位,對(duì)密鑰重新排列并分為兩部分,C0(前28比特)和D0(后28比特)。子密鑰生成

在計(jì)算第i輪子密鑰時(shí),將Ci-1和Di-1分別循環(huán)左移,移動(dòng)位數(shù)取決于輪數(shù)i。在第i=1,2,9,16輪中,C、D兩部分分別循環(huán)左移1位,其余輪中分別循環(huán)左移2位。4×1+12×2=28子密鑰生成

將經(jīng)過(guò)移位后的Ci和Di送入一個(gè)壓縮型換位表PC-2,將子密鑰壓縮為48比特(去除第9、18、22、25、35、38、43、54位)。子密鑰生成

將經(jīng)過(guò)移位后的Ci和Di送入一個(gè)壓縮型換位表PC-2,將子密鑰壓縮為48比特(去除第9、18、22、25、35、38、43、54位)。初始換位與逆初始換位

逆初始換位IP-1()是初始換位IP()的逆過(guò)程。逆初始換位針對(duì)16輪迭代的結(jié)果進(jìn)行運(yùn)算,即執(zhí)行IP-1(R16||L16)??梢钥闯?,通過(guò)逆初始換位,原明文分組的比特位被恢復(fù)原位。IP-1()IP()初始換位與逆初始換位f(Ri-1,ki)迭代函數(shù)

16輪迭代運(yùn)算具有相同的結(jié)構(gòu)。初始換位后的明文被分為左右兩部分進(jìn)行處理,每輪迭代的輸入是上一輪的輸出。以第i輪運(yùn)算為例:Li

=

Ri-1Ri

=

Li-1⊕f(Ri-1,ki)f(Ri-1,ki)迭代運(yùn)算

擴(kuò)展換位表如表4-8所示,它將32比特輸入(Ri-1)擴(kuò)展為48比特。f(Ri-1,ki)迭代運(yùn)算

子密鑰異或是指將經(jīng)過(guò)擴(kuò)展換位得到的48比特輸出與子密鑰

ki

進(jìn)行異或運(yùn)算。f(Ri-1,ki)迭代運(yùn)算

S盒替代是將上一步輸出的48比特作為輸入,經(jīng)過(guò)變換得到32比特輸出。S盒替代將48比特分成8個(gè)6比特的分組,分別輸入8個(gè)不同的S盒。假設(shè)S盒的6位輸入為x5x4x3x2x1x0,將x5x0轉(zhuǎn)換成十進(jìn)制數(shù)0~3中的一個(gè)數(shù),它確定表中的行號(hào);將x4x3x2x1轉(zhuǎn)換成十進(jìn)制數(shù)0~15中的一個(gè)數(shù),它確定表中的列號(hào)。f(Ri-1,ki)迭代運(yùn)算S盒替代是將上一步輸出的48比特作為輸入,經(jīng)過(guò)變換得到32比特輸出。S盒替代將48比特分成8個(gè)6比特的分組,分別輸入8個(gè)不同的S盒。假設(shè)S盒的6位輸入為x5x4x3x2x1x0,將x5x0轉(zhuǎn)換成十進(jìn)制數(shù)0~3中的一個(gè)數(shù),它確定表中的行號(hào);將x4x3x2x1轉(zhuǎn)換成十進(jìn)制數(shù)0~15中的一個(gè)數(shù),它確定表中的列號(hào)。f(Ri-1,ki)迭代運(yùn)算P盒換位是將S盒替代的輸出結(jié)果按照固定的換位盒(P盒)進(jìn)行變換。該換位將每位映射到輸出位,任何一位不能被映射兩次,也不能被省略。f()f(Ri-1,ki)

S盒替代是DES算法的核心,是一種非線性運(yùn)算:

如果沒(méi)有非線性運(yùn)算,則破譯者就能夠使用一個(gè)線性等式組來(lái)表示DES的輸入和輸出,其中密鑰位是未知的,這樣的算法很容易被破譯。迭代運(yùn)算DES的密文分組C可以表示為:C=IP-1(R16||L16),將其代入加密算法,首先進(jìn)行初始換位IP:L0d||R0d=IP(C)

=IP(IP-1(R16||L16))

=R16||L16即L0d=R16,R0d=L16,也就是說(shuō)解密第1輪的輸入是加密第16輪的輸出。DES算法解密過(guò)程接下來(lái)分析解密的第1輪操作:L1d=R0d

=L16

=R15

R1d=L0d

⊕f(R0d,k16)

=R16

⊕f(L16,k16)

=L15

⊕f(R15,k16)

⊕f(L16,k16)

=L15

⊕f(L15,k16)⊕f(R15,k16)

=L15

這說(shuō)明,解密的第1輪輸出與加密的第16輪輸入相等。DES算法解密過(guò)程接下來(lái)的15輪迭代也執(zhí)行相同的操作:Lid=R16-i

Rid=L16-i

其中,i=1,2,...,16。DES算法解密過(guò)程解密的第16輪為:L16d=R0R16d=L0DES算法解密過(guò)程經(jīng)過(guò)逆初始換位,可以恢復(fù)出明文M:IP-1(R16d||L16d)

=IP-1(L0||R0)

=IP-1(IP(M))

=MDES算法解密過(guò)程因?yàn)椋篊16=C0,D16=D0,所以:k16

=PC-2(C16,D16)=PC-2(C0,D0)=PC-2(PC-1(k))

=k1d解密子密鑰生成過(guò)程

計(jì)算k15時(shí),可以通過(guò)C16和D16循環(huán)右移1位,再經(jīng)過(guò)壓縮型換位PC-2得到,恰好等于k2d

。

另外,計(jì)算k1(k16d)、k8(k9d)、k15(k2d),需要循環(huán)右移1位后,再經(jīng)過(guò)壓縮型換位換位PC-2得到子密鑰

其他子密鑰則需要循環(huán)右移兩位,再經(jīng)過(guò)壓縮型換位換位PC-2得到子密鑰。算法特殊性(1)互補(bǔ)性。如果C=DESk(M),那么當(dāng)明文和密鑰取補(bǔ)后,密文也會(huì)取補(bǔ),即

。這種形式,使得DES在選擇明文攻擊下工作量減半。(2)弱密鑰。DES在每輪操作中都會(huì)使用一個(gè)子密鑰。如果給定初始密鑰k,使得各輪子密鑰都相等,則稱k為弱密鑰。通過(guò)弱密鑰,加密明文兩次,則得到的仍然是明文,即:M=DESk(DESk(M))。DES的弱密鑰包括:0101010101010101H、1F1F1F1F0E0E0E0EH、E0E0E0E0F1F1F1F1H、FEFEFEFEFEFEFEFEH。算法特殊性(3)半弱密鑰。如果兩個(gè)不同的密鑰k和k'使得M=DESk(DESk'(M)),則k和k'為半弱密鑰,即k'能夠解密由密鑰k加密所得的密文。半弱密鑰只交替地生成兩種子密鑰,DES有6對(duì)兒半弱密鑰:窮舉攻擊與密碼分析窮舉攻擊:DES的密鑰太短,有效密鑰只有56比特,密鑰空間僅為256≈1017,1998年7月,電子前沿基金會(huì)(ElectronicFrontierFoundation,EFF)使用一臺(tái)造價(jià)25萬(wàn)美元的密鑰搜索機(jī)器,在56小時(shí)內(nèi)就成功破譯了DES。1999年1月,電子前沿基金會(huì)用22小時(shí)15分鐘就宣告破譯了一個(gè)DES的密鑰。密碼分析法:除了窮舉攻擊以外,還可以通過(guò)差分密碼分析(DifferentialCryptanalysis)、線性密碼分析(LinearCryptanalysis)、相關(guān)密鑰密碼分析(Related-KeyCryptanalysis)等方法來(lái)攻擊DES。差分分析通過(guò)分析明文對(duì)兒的差值(通過(guò)異或運(yùn)算來(lái)定義DES算法的差分)對(duì)密文對(duì)兒的差值的影響來(lái)恢復(fù)某些密鑰位。線性密碼分析通過(guò)線性近似值來(lái)描述DES操作結(jié)構(gòu),試圖發(fā)現(xiàn)這些結(jié)構(gòu)的一些弱點(diǎn)。相關(guān)密鑰密碼分析類似于差分密碼分析,但它考查不同密鑰間的差分。3DES雙重DES算法不能抵抗中途相遇攻擊(Meet-in-the-middleAttack)。在眾多的多重DES算法中,由Tuchman提出的三重DES算法是一種被廣泛接受的改進(jìn)方法,已經(jīng)被用于密鑰管理標(biāo)準(zhǔn)ANSX9.17和ISO8732中。通過(guò)三重DES,使用兩個(gè)密鑰,可以將有效密鑰長(zhǎng)度增加到112比特,可以有效抵御窮舉攻擊。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式AES算法的整體結(jié)構(gòu)明文分組:128比特;密鑰長(zhǎng)度:128/192/256比特;密文分組:128比特AES加密使用了4個(gè)基本變換:字節(jié)代替(SubBytes)變換、行移位(ShiftRows)變換、列混合(MixColumns)變換、輪密鑰加(AddRoundKey)變換。

AES的解密使用了這4個(gè)變換的逆操作,分別為逆字節(jié)代替(InvSubBytes)變換、逆行移位(InvShiftRows)變換、逆列混合(InvMixColumns)變換和輪密鑰加變換(該變換自身就是可逆的變化)。AES就是利用上述4個(gè)基本變換經(jīng)過(guò)N輪迭代而完成的。當(dāng)密鑰長(zhǎng)度為128比特時(shí),輪數(shù)N=10;當(dāng)密鑰長(zhǎng)度為192比特時(shí),輪數(shù)N=12;當(dāng)密鑰長(zhǎng)度為256比特時(shí),輪數(shù)N=14。AES算法的整體結(jié)構(gòu)加密過(guò)程:(1)給定一個(gè)明文分組M,將其放入狀態(tài)矩陣。輸入擴(kuò)展密鑰w0、w1、w2和w3,對(duì)狀態(tài)矩陣執(zhí)行輪密鑰加變換。(2)對(duì)狀態(tài)執(zhí)行第1輪到第N-1輪迭代變換,每輪都包括了字節(jié)代替、行移位、列混合、輪密鑰加四種變換。每輪的輪密鑰都會(huì)使用一個(gè)擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。(3)對(duì)狀態(tài)執(zhí)行最后一輪變換,只執(zhí)行字節(jié)代替、行移位和輪密鑰加三個(gè)變換,輸出密文。輪密鑰加也會(huì)使用擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。AES算法的整體結(jié)構(gòu)解密過(guò)程:(1)給定一個(gè)密文C,將其放入狀態(tài)矩陣。輸入擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3,對(duì)狀態(tài)矩陣執(zhí)行輪密鑰加變換。(2)對(duì)狀態(tài)執(zhí)行第1輪到第N-1輪迭代變換。每輪都包括了逆行移位、逆字節(jié)代替、輪密鑰加、逆列混合四種變換。每輪的密鑰加也會(huì)使用一個(gè)擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。(3)對(duì)狀態(tài)執(zhí)行最后一輪變換,只執(zhí)行逆行移位、逆字節(jié)代替、輪密鑰加三種變換,輸出明文。輪密鑰加也會(huì)使用擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。狀態(tài)矩陣AES算法最基本的運(yùn)算單位是字節(jié)(8比特)。1.設(shè)明文分組:

首先將其劃分為16個(gè)字節(jié):

其中:

然后將a0~a15放入一個(gè)被稱為狀態(tài)(State)的4×4矩陣中,AES的加密和解密都是在這種狀態(tài)中進(jìn)行的。2.密鑰也按照上述方法進(jìn)行排列,其行數(shù)為4行,列數(shù)為4列(128比特的密鑰)、6列(192比特的密鑰)或8列(256比特的密鑰)。狀態(tài)矩陣

從數(shù)學(xué)角度,可以將每個(gè)字節(jié)看作有限域上的一個(gè)元素,分別對(duì)應(yīng)一個(gè)次數(shù)不超過(guò)7的多項(xiàng)式:

還可以表示為一個(gè)兩位的十六進(jìn)制數(shù)。例如,01101011B可以表示為:

6BH輪密鑰加

輪密鑰加變換,由狀態(tài)矩陣與擴(kuò)展密鑰矩陣的對(duì)應(yīng)字節(jié)逐比特做異或運(yùn)算。由于輪密鑰加使用異或運(yùn)算,所以其逆變換的運(yùn)算方法相同。

舉例:給定狀態(tài)矩陣和擴(kuò)展密鑰矩陣,計(jì)算輪密鑰加變換的結(jié)果。字節(jié)代替與逆字節(jié)代替

字節(jié)代替是一個(gè)非線性變換,對(duì)狀態(tài)矩陣中的每一個(gè)字節(jié)a進(jìn)行運(yùn)算

b=M·a-1+v,得到字節(jié)b(如果a=0,則映射到自身,即b=0)。

v是固定向量,值為63H;M是可逆的固定矩陣;a-1是a模一個(gè)8次不可約多項(xiàng)式的乘法逆元,在AES算法中,這個(gè)8次不可約多項(xiàng)式為m(x)=x8+x4+x3+x+1。v=字節(jié)代替與逆字節(jié)代替

逆字節(jié)代替變換是字節(jié)代替變換的逆變換。首先對(duì)字節(jié)進(jìn)行仿射變換的逆變換,然后對(duì)所得結(jié)果求在GF(28)上的乘法逆元。也可以將該變換制作成表格進(jìn)行查詢。列混合與逆列混合

列混合變換是一個(gè)線性變換,它混淆了狀態(tài)矩陣的每一列。由于每個(gè)輸入字節(jié)都影響了四個(gè)輸出字節(jié),因此列混合起到了擴(kuò)散的作用。逆列混合變換是列混合變換的逆,也可以寫成矩陣乘法形式。列混合與逆列混合

【例4-4】狀態(tài)中的1列為E6H、1BH、50H、18H,計(jì)算列混和運(yùn)算后的結(jié)果。d0=02H·E6H+03H·1BH+01H·50H+01H·18H=B2H

02H·E6H

=

x·(x7+x6+x5+x2+x)=x7+x6+x4+x2+x+1

03H·1HB

=

x5+x3+x2+1

01H·50H

=

x6+x4

01H·18H

=

x4+x3,所以d0=x7+x5+x4+x=B2H

同理d1=38Hd2=75Hd3=4AH密鑰擴(kuò)展

密鑰擴(kuò)展算法將原初始密鑰作為輸入,輸出AES的擴(kuò)展密鑰。

對(duì)于長(zhǎng)度為128比特的密鑰,它對(duì)應(yīng)的輪數(shù)N=10,需要11個(gè)擴(kuò)展密鑰;對(duì)于長(zhǎng)度為192比特的密鑰,它對(duì)應(yīng)的輪數(shù)N=12,需要13個(gè)擴(kuò)展密鑰;對(duì)于長(zhǎng)度為256比特的密鑰,它對(duì)應(yīng)的輪數(shù)N=14,需要15個(gè)擴(kuò)展密鑰。獲取第1個(gè)密鑰擴(kuò)展

給定一個(gè)初始密鑰k(以128比特密鑰為例),將其放入狀態(tài)矩陣,可以直接得到第1個(gè)擴(kuò)展密鑰中的4個(gè)子密鑰w0、w1、w2、w3。2~10之子密鑰1(1)RotBytes(w4N-1)為字節(jié)旋轉(zhuǎn),將w4N-1的四個(gè)字節(jié)循環(huán)左移一個(gè)字節(jié)。(2)SubBytes()為字節(jié)代替,與AES加密算法中的字節(jié)代替相同。(3)RCN/1為輪常數(shù)。其中,2~10之子密鑰2~4

第1個(gè)到第11個(gè)擴(kuò)展密鑰,每一個(gè)擴(kuò)展密鑰的第2~4個(gè)子密鑰可以通過(guò)公式4-10計(jì)算得到。AES的安全性分析

在AES算法中,每一輪加密常數(shù)的不同可以消除可能產(chǎn)生的輪密鑰的對(duì)稱性。輪密鑰生成算法的非線性特性消除了產(chǎn)生相同輪密鑰的可能性。加密/解密過(guò)程中使用不同的變換可以避免出現(xiàn)類似DES算法中弱密鑰和半若密鑰的可能。不可能差分(ImpossibleDifferential)攻擊法已經(jīng)成功破解了6輪的AES-128;平方(Square)攻擊法已經(jīng)成功破解了7輪的AES-128和AES-192;沖突(Collision)攻擊法也已經(jīng)成功破解了7輪的AES-128和AES-192。

所有這些攻擊方法對(duì)于全部10輪的AES-128進(jìn)行破解都失敗了,但是這表明AES算法可能存在有待發(fā)現(xiàn)的弱點(diǎn)。

如果將AES用于智能卡等硬件裝置,通過(guò)觀察硬件的性能特征可以發(fā)現(xiàn)一些加密操作的信息,這種攻擊方法叫做旁路攻擊(Side-ChannelAttack)。

例如,當(dāng)處理密鑰為“1”的比特位時(shí),需要消耗更多的能量,通過(guò)監(jiān)控能量的消耗,可以知道密鑰的每個(gè)位;還有一種攻擊是監(jiān)控完成一個(gè)算法所消耗的時(shí)間的微秒數(shù),所消耗時(shí)間數(shù)也可以反映部分密鑰位。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式電碼本模式加密與解密過(guò)程:c

i=Ek(m

i),1≤i≤tm

i=Dk(c

i),1≤i≤t

電碼本模式簡(jiǎn)稱為ECB(ElectronicCodeBook)。

在這種模式下,將需要加密的消息按照加密算法的分組大小分為數(shù)個(gè)分組,并對(duì)每個(gè)分組進(jìn)行獨(dú)立加密形成密文分組,然后將所有密文分組連接起來(lái)得到密文。每個(gè)明文分組或密文分組的錯(cuò)誤只影響其對(duì)應(yīng)的密文分組或明文分組,而不會(huì)傳遞給其它密文分組或明文分組。采用EBC模式時(shí),不同的明文分組或密文分組的加密或解密可以并行處理,在硬件或軟件運(yùn)算時(shí)速度很快。

ECB模式的缺點(diǎn)是不能隱藏明文的模式,因此ECB模式無(wú)法抵抗攻擊者的主動(dòng)攻擊,安全性較差。ECB模式可以用于處理短消息,例如加密密鑰時(shí)可以使用ECB模式。密碼分組鏈模式加密:c

i=Ek(m

i

⊕c

i-1),1≤i≤t,其中c0=IV;解密:m

i=Dk(c

i)⊕c

i-1,1≤i≤t,其中c0=IV

密碼分組鏈接模式簡(jiǎn)稱CBC(Cipher-BlockChaining)。

每個(gè)明文分組先與前一個(gè)密文分組進(jìn)行異或后,再進(jìn)行加密。由于第一個(gè)明文分組之前沒(méi)有前一個(gè)密文分組,所以需要選擇一個(gè)初始向量IV(InitializationVector),這個(gè)初始向量相當(dāng)于c0。密文隱藏了明文的模式;通過(guò)選擇不同的初始向量,可以使重復(fù)的明文產(chǎn)生不同的密文,而無(wú)需重新產(chǎn)生密鑰;CBC模式適合傳輸長(zhǎng)報(bào)文,是SSL、IPSec等協(xié)議的標(biāo)準(zhǔn)分組加密工作模式。IV應(yīng)該像密鑰一樣安全傳輸和存儲(chǔ);如果明文分組中出現(xiàn)錯(cuò)誤,那么錯(cuò)誤會(huì)傳遞給當(dāng)前密文分組以及后面所有密文分組;如果某個(gè)密文分組發(fā)生錯(cuò)誤,那么錯(cuò)誤會(huì)影響當(dāng)前解密的明文分組以及下一個(gè)解密的明文分組;CBC模式的加密過(guò)程是不能并行運(yùn)算的,但是解密過(guò)程可以并行運(yùn)算。密碼反饋模式

密碼反饋模式簡(jiǎn)稱CFB(CipherFeedback),前一個(gè)密文分組會(huì)被送回到密碼算法的輸入端。如果明文分組的大小為s比特,那么首先選擇一個(gè)n比特(n>s)的初始向量V1=IV,然后利用密鑰k加密該向量得到n比特序列。取該序列中高位的s比特與明文分組進(jìn)行異或運(yùn)算,得到s比特的密文分組。在加密第2個(gè)明文分組時(shí),首先將初始向量左移s比特,然后將上一輪加密生成的s比特的密文分組附加到其后形成新一輪的向量,后續(xù)加密過(guò)程與第1個(gè)明文分組的加密過(guò)程相同。用同樣的方法完成全部t個(gè)明文分組的加密。

CFB模式加密和解密過(guò)程都使用了分組加密算法,本質(zhì)上是將分組加密算法作為一個(gè)密鑰流生成器來(lái)使用。密碼反饋模式與CBC模式類似,通過(guò)CFB模式生成的密文隱藏了明文的模式,并且選擇的初始向量IV不同,那么得到的密文也不相同。明文分組的長(zhǎng)度s可以由用戶來(lái)確定,該模式適用于不同的消息格式要求。加密

c1=m1

⊕MSBs(Ek(V1))

ci=mi

⊕MSBs(Ek(LSBn-s(Vi-1)||ci-1)),2≤i≤t解密

m1=c1

⊕MSBs(Ek(V1))

mi=ci

⊕MSBs(Ek(LSBn-s(Vi-1)||ci-1)),2≤i≤t密碼反饋模式CFB模式的加密過(guò)程是不能并行運(yùn)算的,但是解密過(guò)程可以并行運(yùn)算。在CFB模式中,加密運(yùn)算不需要明文,所以在明文未知的情況下可以提前加密向量,等明文已知時(shí)可以直接通過(guò)異或運(yùn)算處理明文分組,從而大大提高了系統(tǒng)的運(yùn)算效率。在CFB模式中,可以利用預(yù)處理的方式來(lái)提高整個(gè)系統(tǒng)的加密效率。如果某個(gè)明文分組發(fā)生錯(cuò)誤,那么由它生成的密文分組會(huì)發(fā)生錯(cuò)誤,是否影響后續(xù)密文分組,取決于向量的長(zhǎng)度和密文分組長(zhǎng)度的關(guān)系。如果某個(gè)密文分組發(fā)生錯(cuò)誤,那么解密的當(dāng)前明文分組會(huì)發(fā)生錯(cuò)誤,是否影響后續(xù)密文分組,同樣取決于向量的長(zhǎng)度和密文分組長(zhǎng)度的關(guān)系。輸出反饋模式

輸出反饋模式簡(jiǎn)稱OFB(OutputFeedback),在該模式下,密碼算法的輸出會(huì)反饋到密碼算法的輸入端。加密

c1=m1

⊕MSBs(Ek(V1))

ci=mi

⊕MSBs(Ek(LSBn-s(Vi-1)||OUT(Vi-1)),2≤i≤t

其中,OUT(Vi-1)=MSBs(Ek(Vi-1))解密

m1=c1

⊕MSBs(Ek(V1))

mi=ci

⊕MSBs(Ek(LSBn-s(Vi-1)||OUT(Vi-1)),2≤i≤t

其中,OUT(Vi-1)=MSBs(Ek(Vi-1))輸出反饋模式與CBC和CFB模式類似,通過(guò)OFB模式生成的密文可以隱藏明文的模式。另外,通過(guò)改變初始向量可以使相同的名稱加密生成不同的密文。與CFB模式類似,OFB模式允許用戶確定明文分組s的大小,具有更好的靈活性。另外,OFB也支持預(yù)處理,從而提供系統(tǒng)整體加密效率。與CFB模式不同的是,在OFB模式中,無(wú)論是加密過(guò)程還是解密過(guò)程,明文分組或密文分組的錯(cuò)誤只影響當(dāng)前分組加密或解密得到的密文分組和明文分組,不會(huì)影響其他分組,即錯(cuò)誤不會(huì)傳遞。

在并行運(yùn)算方面,OFB模式的加密過(guò)程和解密過(guò)程都不能并行運(yùn)算。計(jì)數(shù)器模式

計(jì)數(shù)器模式簡(jiǎn)稱CTR(CounterMode),在該模式下,通過(guò)加密逐次累加的計(jì)數(shù)器來(lái)產(chǎn)生密鑰流,并加密(流加密)明文分組。

在CTR模式中,首先選擇t個(gè)s比特的向量CTR1,CTR2,...,CTRt,它們被稱為計(jì)數(shù)器。然后利用密鑰k加密這些向量,將得到序列看作密鑰流序列,分別與明文分組進(jìn)行異或運(yùn)算,完成對(duì)明文分組的加密。加密:ci=mi

⊕Ek(CTRi),1≤i≤t解密:mi=ci

⊕Ek(CTRi),1≤i≤t

在CTR模式中,計(jì)數(shù)器應(yīng)該互不相同的,這樣可以保證相同的明文分組產(chǎn)生不同的密文輸出,從而隱藏明文的模式。一種簡(jiǎn)單的產(chǎn)生計(jì)數(shù)器的方法是首先選擇CTR1,然后計(jì)算其他計(jì)數(shù)器。

CTRi=CTR1+1,1≤i≤tCTR模式也具有預(yù)處理功能,可以提高系統(tǒng)加密效率。由于CTR模式?jīng)]有反饋,其加密和解密過(guò)程都可以并行運(yùn)算。感謝您的瀏覽第4章分組加密算法2023.08數(shù)據(jù)加密與PKI應(yīng)用第5章散列算法散列算法(也被稱為散列函數(shù)、雜湊函數(shù)、哈希函數(shù)、Hash())能夠?qū)Σ煌L(zhǎng)度的輸入消息,產(chǎn)生固定長(zhǎng)度的輸出。這個(gè)固定長(zhǎng)度的輸出散列值被稱為原輸入消息的消息摘要(MessageDigest),也被稱為原消息的數(shù)字指紋。對(duì)于一個(gè)安全的散列算法,這個(gè)消息摘要通??梢灾苯幼鳛橄⒌恼J(rèn)證標(biāo)簽。目錄015.1散列函數(shù)的結(jié)構(gòu)025.2MD5散列算法035.3SHA-1散列算法5.5散列算法的應(yīng)用05045.4散列算法分析

MD,即加強(qiáng)式迭代模式(Merkle-Damgard),1979年RalphMerkle基于數(shù)據(jù)壓縮函數(shù)f()建立的散列函數(shù)的通用模式。MD結(jié)構(gòu)消息M的散列值計(jì)算:Hash(M)=CVLCVq=f(CVq-1,mq-1),1≤q≤LCV0=IV目錄015.1散列函數(shù)的結(jié)構(gòu)025.2MD5散列算法035.3SHA-1散列算法5.5散列算法的應(yīng)用05045.4散列算法分析消息分組填充填充之后的消息比特長(zhǎng)度Lm與448同模512,即填充后的消息比特長(zhǎng)度比512的整數(shù)倍少64比特。即使原始消息長(zhǎng)度已經(jīng)達(dá)到要求(原始消息比特長(zhǎng)度與448同模512),也要進(jìn)行填充。填充的比特位數(shù)大于等于1比特,小于等于512比特。填充模式是第一位為1,后面跟足夠多的0。

MD5算法的輸入為任意長(zhǎng)度的消息,對(duì)消息以512比特長(zhǎng)度為單位進(jìn)行分組,對(duì)所有分組進(jìn)行迭代式處理,最終輸出128比特的散列值。消息分組填充【例5-1】不同長(zhǎng)度原始消息的填充結(jié)果。

(1)原始消息恰好

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論