數(shù)據(jù)加密及認(rèn)證技術(shù)_第1頁
數(shù)據(jù)加密及認(rèn)證技術(shù)_第2頁
數(shù)據(jù)加密及認(rèn)證技術(shù)_第3頁
數(shù)據(jù)加密及認(rèn)證技術(shù)_第4頁
數(shù)據(jù)加密及認(rèn)證技術(shù)_第5頁
已閱讀5頁,還剩170頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)加密及認(rèn)證技術(shù)主要內(nèi)容數(shù)據(jù)加密概述密碼學(xué)的發(fā)展密碼學(xué)基本概念與分類密碼分析學(xué)傳統(tǒng)密碼技術(shù)對稱密鑰密碼公鑰密碼體制數(shù)字簽名與認(rèn)證技術(shù)加密軟件密碼學(xué)的起源古代加密方法大約起源于公元前440年出現(xiàn)在古希臘戰(zhàn)爭中的隱寫術(shù)。古希臘的斯巴達(dá)人曾將軍事情報刻在普通的木板上,用石蠟填平,收信的一方只要用火烤熱木板,融化石蠟后,就可以看到密信。密碼學(xué)用于通信的另一個記錄是斯巴達(dá)人于公元前400年應(yīng)用錐形指揮棒在軍官間傳遞秘密信息。我國古代的藏頭詩、藏尾詩、漏格詩《水滸傳》“吳用智賺玉麒麟”一回中的詩

盧花灘上有扁舟,俊杰黃昏獨自游。

義到盡頭原是命,反躬逃難必?zé)o憂。明代怪杰徐文長:

平湖一色萬頃秋,

湖光渺渺水長流。

秋月圓圓世間少,

月好四時最宜秋。密碼學(xué)在軍事中的應(yīng)用1894年甲午海戰(zhàn)中北洋水師的覆滅,雖然其根本的原因在于清朝廷的腐敗,但是日本人破譯了清軍的密碼也是一個重要的原因;二戰(zhàn)中,美國利用破譯密碼所獲得的情報為其外交服務(wù);在1962年的古巴導(dǎo)彈危機中,蘇美劍拔弩張,形勢嚴(yán)峻。據(jù)悉,美國人心生一計,故意用能被蘇聯(lián)截收、破譯的密碼告知其軍隊,準(zhǔn)備與蘇聯(lián)開戰(zhàn)。這一手果然嚇住了赫魯曉夫;1994年,美國的情報機構(gòu)通過截獲國際電訊得知,法國與沙特阿拉伯正在進行一筆數(shù)億美元的軍火交易,美國先行一步從法國人手中搶下了這筆大生意。密碼學(xué)從軍事走向生活電子郵件自動提款機(ATM)網(wǎng)上銀行/網(wǎng)上證券信用卡購物(POS機)生活中的密碼學(xué)案例一:甲給乙寫的私人信件,丙未經(jīng)甲乙允許擅自閱讀此信——非授權(quán)訪問案例二:甲和乙正常通信,丙冒充甲并且:制造欺詐信息給乙;竄改甲給乙發(fā)的合法信息;——中間人攻擊案例三:甲在某時某地給乙發(fā)了信,乙否認(rèn)收到了該信——抵賴密碼學(xué)的發(fā)展史第一階段:1949年以前

古典密碼階段計算機技術(shù)出現(xiàn)以前密碼學(xué)作為一種藝術(shù),而不是一門科學(xué)第二階段:1949年~1975年現(xiàn)代密碼學(xué)初期

標(biāo)志:1949年Shannon發(fā)表的《保密系統(tǒng)的信息理論》一文。密碼學(xué)進入了科學(xué)的軌道,密碼學(xué)成為科學(xué)主要技術(shù):單密鑰的對稱密鑰加密算法第三階段:1976年~現(xiàn)代密碼學(xué)階段標(biāo)志:1976年Diffie和Hellman發(fā)表了《密碼學(xué)新方向》一文。新的密碼體制:公開密鑰體制第一階段-古典密碼古典密碼的加密方法一般是代換與置換,使用手工或機械變換的方式實現(xiàn);代表密碼體制主要有:單表替代密碼:Caesar密碼;多表替代密碼:Playfair密碼、Hill密碼、Vigenere密碼;轉(zhuǎn)輪密碼:著名的Enigma密碼,第二次世界大戰(zhàn)中使用過。主要特點:數(shù)據(jù)的安全基于算法的保密。第二階段現(xiàn)代密碼學(xué)初期1949~19751949年,香農(nóng)發(fā)表了《保密系統(tǒng)的信息理論》證明了密碼編碼學(xué)是如何置于堅實的數(shù)學(xué)基礎(chǔ)之上的,從此密碼學(xué)發(fā)展成為一個專門學(xué)科——標(biāo)志性事件為對稱密碼體制的發(fā)展奠定了理論基礎(chǔ);1967年,大韋卡恩的專著《破譯者》詳細(xì)描述了密碼學(xué)的歷史;1971-73年,IBMWatson實驗室的HorstFeistel等幾篇技術(shù)報告,DES算法的產(chǎn)生;主要特點:數(shù)據(jù)的安全基于密鑰而不是算法的保密。第三階段:1976~公鑰密碼學(xué)公鑰密碼學(xué)成為主要研究方向;主要特點:公鑰密碼使得發(fā)送端和接收端無密鑰傳輸?shù)谋C芡ㄐ懦蔀榭赡?。代表性事件?976年,Diffie和Hellman發(fā)表的革命性論文《密碼學(xué)新方向》(Newderyctionsincryptography),突破了傳統(tǒng)密碼體制使用秘密密鑰所帶來的密鑰管理難題,使密碼的發(fā)展進入了一個全新的發(fā)展時期。1977年,Rivest,Shamir和Adleman提出了RSA公鑰算法。DES算法出現(xiàn)。80年代,出現(xiàn)IDEA和CAST等算法。90年代,對稱密鑰密碼算法進一步成熟,Rijndael,RC6等出現(xiàn),逐步出現(xiàn)橢圓曲線等其他公鑰算法。2001年,Rijndael成為DES算法的替代者。密碼學(xué)的新方向密碼專用芯片集成密碼技術(shù)是信息安全的核心技術(shù),無處不在,目前已經(jīng)滲透到大部分安全產(chǎn)品之中,正向芯片化方向發(fā)展。在芯片設(shè)計制造方面,目前微電子水平已經(jīng)發(fā)展到0.1um工藝以下,芯片設(shè)計的水平很高。我國在密碼專用芯片領(lǐng)域的研究起步落后于國外,近年來我國集成電路產(chǎn)業(yè)技術(shù)的創(chuàng)新和自我開發(fā)能力得到了提高,微電子工業(yè)得到了發(fā)展,從而推動了密碼專用芯片的發(fā)展。加快密碼專用芯片的研制將會推動我國信息安全系統(tǒng)的完善。量子密碼技術(shù)量子技術(shù)在密碼學(xué)上的應(yīng)用分為兩類:一是利用量子計算機對傳統(tǒng)密碼體制的分析;二是利用單光子的測不準(zhǔn)原理在光纖級實現(xiàn)密鑰管理和信息加密,即量子密碼學(xué)。量子計算機是一種傳統(tǒng)意義上的超大規(guī)模并行計算系統(tǒng),利用量子計算機可以在幾秒鐘內(nèi)分解RSA129的公鑰。量子計算機處理器DNA密碼技術(shù)隨著DNA計算的發(fā)展,有科學(xué)家開始把DNA用于密碼學(xué)領(lǐng)域。Reif等人提出用DNA實現(xiàn)一次一密的密碼系統(tǒng),Celland等人提出用DNA隱藏消息。

DanBoneh等人用DNA計算機破譯了DES,并且聲稱任何小于64位的密鑰都可以用這種方法破譯Salomaa也宣稱現(xiàn)有的很多數(shù)學(xué)困難問題可以通過DNA計算機進行窮舉搜索得到結(jié)果,而其中很多困難問題都是現(xiàn)代密碼系統(tǒng)的安全依據(jù)。什么是密碼學(xué)密碼學(xué)基本概念密碼體制分類密碼學(xué)基本概念密碼學(xué)(cryptology):研究信息的保密和復(fù)原保密信息以獲取其真實內(nèi)容的學(xué)科稱為密碼學(xué)。包括:密碼編碼學(xué)(cryptography):研究對信息進行編碼,實現(xiàn)隱蔽信息的一門學(xué)科。密碼分析學(xué)(cryptanalytics):不知道任何加密細(xì)節(jié)的條件下解密消息的技術(shù),即“破譯”。密碼編碼學(xué)(1)密碼編碼學(xué)是密碼學(xué)的一個分支,研究與信息安全(例如:機密性、完整性、可鑒別性)有關(guān)的數(shù)學(xué)技術(shù)。(2)密碼編碼學(xué)是包含數(shù)據(jù)變換的原理、工具和方法的一門學(xué)科,這種數(shù)據(jù)變換的目的是為了隱藏數(shù)據(jù)的信息內(nèi)容,阻止對數(shù)據(jù)的篡改以及防止未經(jīng)認(rèn)可使用數(shù)據(jù)。(3)密碼編碼學(xué)是論述使明文變得不可懂的密文,以及把已加密的消息變換成可懂形式的藝術(shù)和技巧。加密(Encryption):將明文變換為密文的過程。把可懂的語言變換成不可懂的語言,這里的語言指人類能懂的語言和機器能懂的語言。解密(Decryption):加密的逆過程,即由密文恢復(fù)出原明文的過程。把不可懂的語言變換成可懂的語言。加密算法密鑰密文明文解密算法密鑰密文明文加密和解密算法的操作通常都是在一組密鑰的控制下進行的,分別稱為加密密鑰(EncryptionKey)和解密密鑰(DecryptionKey)。加密:Ek(M)=C解密:Dk(C)=M密碼學(xué)基本概念Kerckhoff原理AugusteKerckhoff在1883年發(fā)表了一篇論文,認(rèn)為一個密碼系統(tǒng)中唯一應(yīng)該保密的只有密鑰。他認(rèn)為,密碼算法應(yīng)該對外公開,如果一個密碼系統(tǒng)需要保密的越多,可能的弱點也越多。這種觀點對于密碼研究者和私營部門來說已經(jīng)是一種常識,但是軍事部門和政府則不這么認(rèn)為。世界上大部分的政府都研制自己的算法并且不對外公開。Kerchhoff假設(shè):密碼分析者知道雙方使用的密碼系統(tǒng),包括明文的統(tǒng)計特性、加解密體制等,唯一不知道的是密鑰。在設(shè)計一個密碼系統(tǒng)時,目標(biāo)是在Kerckhoffs假設(shè)的前提下實現(xiàn)安全。密碼體制分類的三種方法替代密碼vs.換位密碼對稱密碼算法vs.非對稱密碼算法分組密碼vs.流密碼密碼體制分類按轉(zhuǎn)換明文為密文的運算類型分類:替代密碼(SubstitutionCipher):就是明文中的每一個字符被替換成密文中的另一個字符。接收者對密文做反向替換就可以恢復(fù)出明文。置換密碼(PermutationCipher):又稱換位密碼(TranspositionCipher):明文的字母保持相同,但順序被打亂了。密碼體制分類按所用的密鑰數(shù)分類:對稱密碼算法(Symmetriccipher):加密密鑰和解密密鑰相同,或?qū)嵸|(zhì)上等同,即從一個易于推出另一個。又稱傳統(tǒng)密碼算法(Conventionalcipher)、秘密密鑰算法或單密鑰算法。DES、3DES、IDEA、AES非對稱密碼算法(Asymmetriccipher):加密密鑰和解密密鑰不同,從一個很難推出另一個。又叫公鑰密碼算法(Public-keycipher)。其中的加密密鑰可以公開,稱為公開密鑰(publickey),簡稱公鑰;解密密鑰必須保密,稱為私人密鑰(privatekey),簡稱私鑰。RSA、ECC、ElGamal密碼體制分類按處理明文的方法分類:分組(塊)密碼:將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文;DES、IDEA、RC2、RC4、RC5;序列(流)密碼:序列密碼每次加密一位或一字節(jié)的明文;One-timepadding、Vigenére、Vernam;流密碼模型24密鑰流產(chǎn)生器密鑰k明文m密文c流密碼體制模型異或運算25明文為“university”,密鑰流為key=(1001011101100110001011010101111000110010111011001100010110101011110001)分組密碼模型分組密碼是將明文消息編碼表示后的數(shù)字(簡稱明文數(shù)字)序列,劃分成長度為n的組(可看成長度為n的矢量),每組分別在密鑰的控制下變換成等長的輸出數(shù)字(簡稱密文數(shù)字)序列。密碼分析學(xué)攻擊傳統(tǒng)密碼體制的一般方法:窮舉攻擊:對一條密文嘗試所有可能的密鑰。平均而言,成功至少需要嘗試所有可能密鑰的一半。密碼分析:利用算法的性質(zhì)和明文的特征或某些明密文對。密碼分析學(xué)是在不知道密鑰的情況下,恢復(fù)出明文的科學(xué);成功的密碼分析能恢復(fù)出消息的明文或密鑰;密碼分析學(xué)(1)密碼分析學(xué)是密碼學(xué)的一個分支,它與另一個分支學(xué)科——密碼編碼學(xué)是兩個相互對立、相互依存、相輔相成、相互促進的學(xué)科。(2)密碼分析學(xué)是企圖挫敗編碼技術(shù)以及更一般說來的信息安全服務(wù)的數(shù)學(xué)技術(shù)學(xué)科。(3)密碼分析學(xué)是對密碼體制、密碼體制的輸入輸出關(guān)系進行分析,以便推出機密變量、包括明文在內(nèi)的敏感數(shù)據(jù)。有時又稱作密碼破譯學(xué)(codebreaking)密碼分析攻擊的典型方式假設(shè)通信雙方,Alice和Bob已經(jīng)完成了秘鑰交換,秘鑰k是雙方已知的,開始進行如下通信:AliceBob密碼分析攻擊的典型方式攻擊者已知加密算法,已知待破解的密文:

唯密文攻擊:密碼分析者有一些消息的密文,這些消息都用同一加密算法加密。密碼分析者的任務(wù)是恢復(fù)盡可能多的明文,或者最好是能推算出加密消息的密鑰來,以便可采用相同的密鑰解出其他被加密的消息。密碼分析攻擊的典型方式攻擊者已知加密算法,已知待破解的密文,已知一條或者多條明文-密文對;已知明文攻擊:密碼分析者不僅可得到一些消息的密文,而且也知道這些消息的明文。分析者的任務(wù)就是用加密信息推出用來加密的密鑰或推導(dǎo)出一個算法,此算法可以對用同一密鑰加密的任何新的消息進行解密。密碼分析攻擊的典型方式攻擊者已知加密算法,已知待破解的密文,能夠獲得通過加密算法生成自選的明文-密文對;選擇明文攻擊:分析者不僅可得到一些消息的密文和相應(yīng)的明文,而且他們也可選擇被加密的明文。這比已知明文攻擊更有效。因為密碼分析者能選擇特定的明文塊去加密,那些塊可能產(chǎn)生更多關(guān)于密鑰的信息,分析者的任務(wù)是推出用來加密消息的密鑰或?qū)С鲆粋€算法,此算法可以對用同一密鑰加密的任何新的消息進行解密.通常,加密算法被設(shè)計成能夠抵御已知明文攻擊攻擊強度:唯密文攻擊<已知明文攻擊<選擇明文攻擊密碼分析攻擊的典型方式自適應(yīng)選擇明文攻擊:這是選擇明文攻擊的特殊情況。密碼分析者不僅能選擇被加密的明文,而且也能基于以前加密的結(jié)果修正這個選擇。在選擇明文攻擊中,密碼分析者還可以選擇一大塊被加密的明文,而在自適應(yīng)選擇密文攻擊中,可選取較小的明文塊,然后再基于第一塊的結(jié)果選擇另一明文塊,依此類推。選擇密文攻擊:密碼分析者能選擇不同的被加密的密文,并可得到對應(yīng)的解密的明文,例如密碼分析者存取一個防竄改的自動解密盒,密碼分析者的任務(wù)是推出密鑰。兩個概念絕對安全,unconditionalsecurity無論花多少時間,攻擊者都無法將密文解密原因:攻擊者所需要的信息不在密文里。除一次一密外,所有的加密算法都不是絕對安全的計算安全,computationalsecurity破譯密碼的代價超過密文信息的價值;破譯密碼的時間超出了密文信息的有效生命期。窮舉攻擊密鑰大?。ㄎ唬┟荑€個數(shù)每微秒執(zhí)行一次解密所需時間每微秒執(zhí)行一百萬次解密所需時間32232=4.3109231μs=35.8minutes2.15milliseconds56256=7.21016255μs=1142years10.01hours1282128=3.410382127μs=5.41024years5.41018years1682168=3.710502167μs=5.91036years5.91030years26characters(permutation)26!=4102621026μs =6.41012years6.4106years主要內(nèi)容數(shù)據(jù)加密概述傳統(tǒng)密碼技術(shù)(一)替代技術(shù)(二)換位技術(shù)對稱密鑰密碼技術(shù)公鑰密碼體制數(shù)字簽名與認(rèn)證技術(shù)加密軟件(一)替代技術(shù)替代法:將明文字母替換成其他字母、數(shù)字或符號的方法;如果把明文看成是0或1的序列,那么密文就是0或1比特序列的另一種表達(dá)。包括:(1)凱撒密碼(2)單表替代密碼(3)多表替代密碼(1)凱撒密碼(CaesarCipher)由古羅馬人JuliusCaesar發(fā)明的一種密碼體制,它是使用最早的密碼體制之一;首先用在軍事通信中;替代原理:用字母后的第三個字母代替字母表看作是循環(huán)的,即z后面的字母是a明文abcdefghijklmnopqrstuvwxyz密文DEFGHIJKLMNOPQRSTUVWXYZABC凱撒密碼映射表中,明文字母中在字母表中的相應(yīng)位置數(shù)為C,(如A=1,B=2,…)形式如下:設(shè)k=3;對于明文P=computesystems則f(C)=(3+3)mod26=6=Ff(O)=(15+3)mod26=18=Rf(M)=(13+3)mod26=16=P ┆f(S)=(19+3)mod26=22=V密文C=Ek(P)=FRPSXRWHUVBVWHPV。凱撒密碼的一般形式將英文字母表左環(huán)移k(0≤k<26)位得到替換表,則得一般的Caesar算法。共有26種可能的密碼算法(25種可用)將每個字母分配一個數(shù)值,如a=0,b=1等,則算法可表示為:加密算法:C=Ek(P)=(P+k)mod26解密算法:P=Dk(C)=(C–k)mod26凱撒密碼的安全性分析凱撒密碼的三個特征:加密和解密算法已知需嘗試的密鑰只有25個所破譯的明文語言已知,其意義易于識別大多數(shù)情況下,密碼算法是已知的,這三個特征使窮舉攻擊很容易實現(xiàn)抗攻擊分析:使明文的語言未知:例如將明文壓縮再進行加密加大密鑰空間:如允許字母的任意替代(2)單表替代密碼不是簡單有序地字母移位每個明文字母映射到一個不同的隨機密文字母

密鑰數(shù)目:26!

包括:棋盤密碼 仿射密碼移位代換密碼:凱撒密碼 多項式代換密碼乘數(shù)/采樣密碼 密鑰短語密碼單表替代密碼分析密鑰空間:26!>4x1026大于56位DES(數(shù)據(jù)加密標(biāo)準(zhǔn))的密鑰空間貌似安全,實則不然:-基于語言統(tǒng)計規(guī)律仍可破譯單表替代密碼分析舉例:字母相對頻率分析:英文字母相對頻率單表替代密碼分析初步分析:解密結(jié)果:解決方法:目標(biāo)-減少密文中的明文結(jié)構(gòu)殘留度字母組合加密:playfair密碼多表替代密碼:Vigenère密碼Playfair密碼單表替代缺陷是:密文帶有原始字母使用頻率的一些統(tǒng)計學(xué)特征。對策:每個字母提供多種代換。最著名的多表代換密碼——Playfair密碼:CharlesWheatstone于1854年發(fā)明,用其朋友BaronPlayfair命名把明文中的雙字母音節(jié)作為一個單元并將其轉(zhuǎn)換成密文的“雙字母音節(jié)”Playfair密鑰矩陣

加密結(jié)果基于一個5x5字母矩陣從左到右,從上到下:填寫密鑰單詞用其他字母填寫剩下的空缺I=JMONARCHYBDEFGI/JKLPQSTUVWXZmonarchy為密鑰加/解密步驟加密明文分組(填充):2個字母/組同行字母對加密:循環(huán)向右,ei→FK同列字母對加密:循環(huán)向下,cu→EM,xi→AS其它字母對加密:矩形對角線字母,且按行排序,hs→BP,es→IL(或JL)解密加密的逆向操作安全性分析安全性優(yōu)于簡單的單表代換密碼:共有26x26個字母對,判斷單個字母對困難;字母對的相對頻率的統(tǒng)計規(guī)律低于單個字母的頻率;利用頻率分析字母對較困難;雖然明文中字母的統(tǒng)計規(guī)律在密文中得到了降低,但密文中仍含有明文的部分結(jié)構(gòu)信息;給定幾百個字母,即可被攻破;字母出現(xiàn)的相對頻率(3)多表替代密碼替代規(guī)則:使用一系列相關(guān)的單表替代規(guī)則密鑰決定給定變換的具體規(guī)則例如:Vigenère密碼(1858)Beaufort密碼Vernam密碼Vigenère方陣使用一系列單表替代規(guī)則密鑰決定給定變換的具體規(guī)則Vigenère密碼示例加密過程:P=“encodeanddecode”,k=“mykey”字母序號encodeanddecode明文編碼P=4132143401333421434密鑰編碼k=122410424122410424122410424加密C=1637121827162423727162624728模運算111102密文C=QLMSBQYXHBQAYHC明文中不同位置的相同字母,被映射為不同的字母Vigenère密碼示例解密過程:C=“QLMSBQYXHBQAYHC”,k=“mykey”字母序號123456789101112131415密文編碼C=161112181162423711602472密鑰編碼k=122410424122410424122410424加密C=4-13214-2340133-234-24143-22模運算133324密文解碼C=encodeanddecodeVigenère密碼加密過程:數(shù)學(xué)公式計算設(shè)明文P=p1p2…pn,密鑰K=k1k2…km,密文C=c1c2…cn加密:ci=(pi+kimodm)mod26;說明:若明文長度大于n,則k重復(fù)使用。Vigenère密碼解密過程:數(shù)學(xué)公式計算pi=(ci-kimodm)mod26;安全性分析每個明文字母對應(yīng)著多個密文字母,明、密文字母不是一一對應(yīng)關(guān)系一條消息中,同樣的字母在不同的位置映射成不同的密文;字母的統(tǒng)計規(guī)律進一步降低;Vigenère本人建議:密鑰與明文一樣長;Vigenère代換表中的每一行就是一Caesar密碼;安全性分析舉例:密文用數(shù)字描述后:密碼分析思路:集中精力找到密鑰長度;采用單表替代分析方法;Germany:Enigma輪轉(zhuǎn)機密碼系統(tǒng)ArthurScherbius于1919年發(fā)明,4輪Enigma在1944年裝備到德國海軍,使得英國從1944年2月到12月沒有檢測到德國潛艇信號?;诙啾硖娲艽a的原理;重要性質(zhì):反射器使得恩格瑪機的加密過程是自反的;一個字母加密后的輸出結(jié)果絕不會是它自身密碼表數(shù)量:10萬以上(二)換位密碼TranspositionCiphers換位:對明文字母的某種置換,采用移位發(fā)進行加密;明文中的字母重新排列,位置發(fā)生變化;柵欄技術(shù):按對角線的順序?qū)懗雒魑?,以行的順序讀出作為密文易破譯矩陣排列法:純置換密碼易識別多次置換:多階段加密,安全性更高例:明文:meetmeafterthetogaparty寫為:mematrhtgpryetefeteoaat讀出密文為:MEMATRHTGPRYETEFETEOAAT改進帶有密鑰再改進:重復(fù)加密,多步置換61更加復(fù)雜的移位以指定的行將明文寫作多行按照密鑰指定的列讀出Key:Plaintext:Ciphertext:TTNAAPTMTSUOAODWCOIXKNLYPETZ

4312567attackpostponeduntiltwoamxyz62矩陣排列法主要內(nèi)容數(shù)據(jù)加密概述傳統(tǒng)密碼技術(shù)對稱密鑰密碼技術(shù)Feistel密碼結(jié)構(gòu)數(shù)據(jù)加密標(biāo)準(zhǔn)DES公鑰密碼體制數(shù)字簽名與認(rèn)證技術(shù)加密軟件對稱密碼算法數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)國際數(shù)據(jù)加密算法(IDEA)高級數(shù)據(jù)加密標(biāo)準(zhǔn)(AES)對稱加密的安全性取決于密鑰的安全,而非算法的安全。Alice加密機解密機Bob安全信道密鑰源Oscar明文x密文y密鑰k明文x密鑰k對稱加密模型密碼學(xué)的目的:Alice和Bob兩個人在不安全的信道上進行通信,而破譯者Oscar不能理解他們通信的內(nèi)容?;仡櫞婷艽a(SubstitutionCipher):就是明文中的每一個字符被替換成密文中的另一個字符。接收者對密文做反向替換就可以恢復(fù)出明文。置換密碼(PermutationCipher):又稱換位密碼:明文的字母保持相同,但順序被打亂了?;舅枷霐U散(Diffusion):將每一位明文數(shù)字的影響盡可能的散布到多個輸出密文數(shù)字中,更隱蔽明文數(shù)字的統(tǒng)計特性?;靵y(Confusion):使得密文的統(tǒng)計特征與明文、密鑰之間的關(guān)系盡量復(fù)雜化。使用標(biāo)準(zhǔn)的算術(shù)運算和邏輯運算。Shannon:在理想的密碼系統(tǒng)中,密文的所有的統(tǒng)計特性與所使用的密鑰獨立。Feistel密碼結(jié)構(gòu)明文分組分為左右兩個部分L0和R0,數(shù)據(jù)的這兩部分通過n次循環(huán)處理后,再結(jié)合起來生成密文分組;每i次循環(huán)都以上一次循環(huán)輸出比特串的左右兩個部分Li-1和Ri-1,以及K產(chǎn)生的子密鑰Ki作為輸入。子密鑰Ki是用子密鑰生成算法從密鑰K中生成的Li-1Ri-1一個分組LiRiFKi第i次循環(huán)Feistel密碼結(jié)構(gòu)所有循環(huán)的結(jié)構(gòu)都相同,置換在數(shù)據(jù)的左半部分進行,先對數(shù)據(jù)的右半部分應(yīng)用循環(huán)函數(shù)F,然后對函數(shù)輸出結(jié)果和數(shù)據(jù)的左半部分取異或(XOR);循環(huán)函數(shù)對每次循環(huán)都有相同的通用結(jié)構(gòu),僅僅是每次循環(huán)子密鑰Ki不同;在置換之后,執(zhí)行由數(shù)據(jù)左右兩部分互換構(gòu)成的交換;Feistel密碼結(jié)構(gòu)加密過程和解密過程形式化描述分別如下公式所示:

加密:Li=Ri-1;Ri=Li-1F(Ri-1,Ki)

解密:Ri-1=Li;Li-1=RiF(Ri-1,Ki)=RiF(Li,Ki)Feistel的核心參數(shù)分組大小密鑰長度循環(huán)次數(shù)子密鑰產(chǎn)生算法循環(huán)函數(shù)DES的產(chǎn)生1974年8月27日,NBS開始第二次征集,IBM提交了算法LUCIFER。1975年3月17日,NBS公開了全部細(xì)節(jié)。1976年,NBS指派了兩個小組進行評價。1976年11月23日,采納為聯(lián)邦標(biāo)準(zhǔn),批準(zhǔn)用于非軍事場合的各種政府機構(gòu)。1977年1月15日,“數(shù)據(jù)加密標(biāo)準(zhǔn)”FIPSPUB46發(fā)布。DES的應(yīng)用1979年,美國銀行協(xié)會批準(zhǔn)使用DES。1980年,美國國家標(biāo)準(zhǔn)局(ANSI)同意DES作為私人使用的標(biāo)準(zhǔn),稱之為DEA(ANSIX.392)1983年,國際化標(biāo)準(zhǔn)組織(ISO)同意將DES作為國際標(biāo)準(zhǔn),稱之為DEA-11998年12月以后,美國政府不再將DES作為聯(lián)邦加密標(biāo)準(zhǔn)DES特點設(shè)計目標(biāo):用于加密保護靜態(tài)儲存和傳輸信道中的數(shù)據(jù),安全使用10-15年綜合應(yīng)用了置換、代替等多種密碼技術(shù)分組密碼:分組長度為64位,密鑰56位采用feistel結(jié)構(gòu)面向二進制的密碼算法加密解密共用一個算法DES算法流程輸入64比特明文數(shù)據(jù)初始置換IP在密鑰控制下16輪迭代初始逆置換IP-1輸出64比特密文數(shù)據(jù)交換左右32比特明文IPL0R0fR1=L0fL1=R0K1fR2=L1fL2=R1K2fR16=L15fL16=R15K16IP-1密文L15R15InitialPermutation用56位密鑰產(chǎn)生16個56位的子密鑰DES加密過程首先把明文分成以64bit為單位的塊m,對于每個m,執(zhí)行如下操作DES(m)=IP-1?T16?T15?.....T2?T1?IP(m)IP,IP-1

:初始置換原數(shù)據(jù)塊,再分成L0和R0R0與第一子密鑰k1經(jīng)函數(shù)f運算后,得到的32位輸出再與L0異或運算,其結(jié)果成為下一輪的R1,R0則為下一輪的L1如此連續(xù)運作16輪迭代子密鑰生成76DES解密過程DES解密過程與加密過程完全相似,只不過將16次迭代的子密鑰順序倒過來,即m=DES-1(c)=IP-1?T1?T2?.....T15?T16?IP(c)可以證明,DES-1(DES

(m))=m77DES的安全性密鑰長度=56比特強力攻擊=嘗試次差分密碼分析=嘗試次線性密碼分析=嘗試次(但是后兩種攻擊是不實用的)1976年,耗資2000萬美元的計算機,可以在一天中找到密鑰。1998年,EFF(電子前哨基金會)宣布破譯了DES算法,耗時不到三天時間,使用的是25萬美元的“DES破譯機”。破解密碼的時間與密鑰長度之間的關(guān)系應(yīng)該注意到的一個事實是,DES經(jīng)過了可能是當(dāng)今最多的被分析或被攻擊的對象,但未發(fā)現(xiàn)任何結(jié)構(gòu)方面的漏洞。DES算法最終之所以被破譯的關(guān)鍵是密鑰的長度問題。DES總結(jié)DES算法對個人用戶仍值得信賴DES算法本身沒有大的缺陷DES使用的2^56密鑰空間不夠大,蠻力攻擊目前已能夠奏效(DESChallenges

III),所以關(guān)鍵場合不能使用了DES已經(jīng)不再是推薦標(biāo)準(zhǔn)DES還是AES,或者RC4、RC5、IDEA、BFFree/OpenDES模塊仍廣泛存在保護和延續(xù)DES投資對DES的改造使用現(xiàn)存的軟件硬件在強度上提高DES改造思路算法基本函數(shù)不能改變否則將不能利用現(xiàn)有的軟硬件部署密鑰空間得加大密鑰過短正是目前DES的主要弱點,加大密鑰空間以抵抗窮舉攻擊三個遞進思路: *用2個key,加密2回 *用3個key,加密3回 *用2個key,加密3回兩重DES給定明文P和兩個加密密鑰k1和k2,采用DES對P進行加密E,有 密文 C=EK2(EK1(P))對C進行解密D,有 明文P=DK1(DK2(C))三重DES雙密鑰的EDE

(Encrypt-Decrypt-Encrypt,加密-解密-加密)模式:

C=EK1(DK2(EK1(P))) 對P加密

P=DK1(EK2(DK1(C))) 對C解密三重DES主要內(nèi)容數(shù)據(jù)加密概述傳統(tǒng)密碼技術(shù)對稱密鑰密碼技術(shù)公鑰密碼體制公鑰密碼算法原理RSA算法其他公鑰密碼算法數(shù)字簽名與認(rèn)證技術(shù)加密軟件公鑰密碼算法對稱密鑰密碼系統(tǒng)的缺陷:密鑰必須經(jīng)過安全的信道分配,密鑰管理復(fù)雜無法用于數(shù)字簽名非對稱密鑰密碼,也稱公開密鑰密碼,由Diffie,Hellman1976年提出;使用兩個密鑰,對于密鑰分配、數(shù)字簽名、認(rèn)證等有深遠(yuǎn)影響;和DES等對稱算法不同,公鑰體制的形式和結(jié)構(gòu)導(dǎo)致公鑰算法必須使用某種數(shù)學(xué)結(jié)構(gòu),而不能再使用替代和置換等初等方法。從形式上看,公鑰算法將比對稱算法更簡潔和易于理解。公鑰密碼用于加密每個通信實體有一對密鑰(公鑰,私鑰)。使用方式一:A向B發(fā)送消息,用B的公鑰加密B收到密文后,用自己的私鑰解密PlainText加密算法解密算法ABcipherPlainTextB的私鑰C的公鑰B的公鑰任何人向B發(fā)送信息都可以使用同一個密鑰(B的公鑰)加密沒有其他人可以得到B的私鑰,所以只有B可以解密公鑰密碼用于簽名使用方式二:A向B發(fā)送消息,用A的私鑰加密(簽名)B收到密文后,用A的公鑰解密(驗證)PlainText加密算法解密算法cipherPlainTextABA的私鑰A的公鑰公鑰密碼算法的表示對稱密鑰密碼密鑰:會話密鑰(Ks)加密函數(shù):C=EKs[P]對密文C,解密函數(shù):DKs[C],公開密鑰(KUa,KRa)加密/簽名:C=EKUb[P],EKRa[P]解密/驗證:P=DKRb[C],DKUa[C]簽名和加密同時使用X加密(簽名)加密解密解密(驗證)XYZYZ=EKUb[Y]=EKUb[EKRa(X)]X=DKUa[Y]=DKUa[DKRb

(Z)]AB產(chǎn)生密鑰對產(chǎn)生密鑰對KRaKUaKRbKUb對公鑰密碼算法的要求參與方B容易產(chǎn)生密鑰對公鑰KUb,私鑰KRb已知KUb,發(fā)送者A的加密操作是容易的:

C=EKUb(P)已知KRb,接收者B解密操作是容易的:P=DKRb

(C)=DKRb

(EKUb

(P))已知KUb,求KRb是計算上不可行的;已知KUb和C,欲恢復(fù)P是計算上不可行的。常見公鑰密碼算法及應(yīng)用三種用途:加密/解密:發(fā)送方用對方公鑰加密,接收方用自己的私鑰解密數(shù)字簽名:發(fā)送方用自己的私鑰簽署報文,接收方用對方的公鑰驗證對方的簽名密鑰交換:雙方協(xié)商會話密鑰算法加密/解密數(shù)字簽名密鑰交換RSAYYYDiffie-HellmanNNYDSANYNRSA密碼體制1978年,MIT三位年青數(shù)學(xué)家R.L.Rivest,A.Shamir和L.Adleman用數(shù)論構(gòu)造雙鑰密碼的方法,稱作MIT體制,后被廣泛稱為RSA體制;它既可用于加密、又可用于數(shù)字簽名;RSA算法的安全性基于數(shù)論中大整數(shù)分解的困難性;參數(shù)選擇1.取兩個大素數(shù)p,q,保密;2.計算n=pq,公開n;3.計算歐拉函數(shù)ф(n)=(p-1)(q-1);4.任意取一個與ф(n)互素的小整數(shù)e,即gcd(e,ф(n))=1,1<e<ф(n)e作為公鑰公開5.尋找d,使得demodф(n)=1,ed=kф(n)+1

d

作為私鑰保密最終:公鑰(e,n),私鑰(d,n),銷毀p和q加密解密過程將明文分組,各組長1024比特加密過程C=Memodn解密過程M=Cdmodn其中,公鑰(e,n),私鑰(d,n)(1)可以找到e,d,n,使得對所有M<n,Med=Mmodn成立;(2)對所有滿足M<n的值,計算Me

和Cd;(3)給定e和n,不可能推出d;RSA算法操作舉例密鑰產(chǎn)生1.取兩個大素數(shù)p,q,保密;2.計算n=pq,公開n;3.計算歐拉函數(shù)ф(n)=(p-1)(q-1);4.任意取一個與ф(n)互素的小整數(shù)e,即

gcd(e,ф(n))=1,1<e<ф(n)e作為公鑰公開5.尋找d,使得

demodф(n)=1,即:ed=kф(n)+1

d作為私鑰保密p=17,q=11n=17×11=187Ф(n)=160選擇e=77d=160K+1令k=1,得到求得d=23由此得到公鑰{7,187}私鑰{23,187}RSA加密解密過程舉例RSA算法操作舉例公鑰{7,187}私鑰{23,187}明文輸入為88,加密過程C=887mod187,利用模的運算性質(zhì):密文輸入為11,解密過程M=1123mod187練習(xí)1.在使用RSA公鑰密碼體制中,已截獲發(fā)給某用戶的密文為c=10,該用戶的公鑰e=5,n=35,那么明文m等于多少?2.利用RSA算法運算,如果p=11,q=13,e=103,對明文3進行加密。求d及密文。RSA算法的性能及安全性運算速度:軟件實現(xiàn)比DES慢100倍,硬件實現(xiàn)比DES慢1000倍攻擊方法蠻力攻擊:對所有密鑰都進行嘗試數(shù)學(xué)攻擊:等效于對兩個素數(shù)乘積(n)的因子分解對RSA算法的數(shù)學(xué)攻擊實際上等效于對n的乘積分解由于M=Cdmodn,n公開,則需要求出d又由于de≡1mod?(n),e已知需要求出?(n)由于?(n)=(p-1)(q-1),所以必須求出p,qn=pq,所以必須對n進行分解因子分解復(fù)雜度密鑰長(bit)所需的MIPS-年*

1164001295,00051230,000768200,000,0001024300,000,000,0002048300,000,000,000,000,000,000*MIPS-年指以每秒執(zhí)行1,000,000條指令的計算機運行一年澄清誤解公鑰算法更安全不能簡單比較傳統(tǒng)對稱算法已經(jīng)過時事實上,現(xiàn)在使用的是混合密碼體制公鑰體制避免了傳統(tǒng)密鑰分配中心帶來的麻煩事實上,證書體制有其優(yōu)點但絕非簡單公鑰算法就是RSARSA只是當(dāng)前最重要的公鑰算法103公開密鑰加密方法1用戶A用戶BCKeBKdBA查到B的公開加密鑰KeB,用它加密M后得到C,將C發(fā)給BB收到C以后,用自己保密的解密鑰KdB解密C,得到明文M查找找到KeB104方法1缺點任何人都能夠冒充用戶A給B發(fā)消息,B無法察覺用戶A用戶BCKeBKdB查找找到KeB用戶C此消息對用戶A可能不利無法保證信息的真實性105公開密鑰加密方法2A用自己保密的密鑰KdA解密M,得到密文C將C發(fā)給BB收到C以后,查A的公開加密鑰KeA,用KeA加密C后得到明文M用戶A用戶BCKdAKeA查找找到KeA106方法2缺點無法保證信息的秘密性用戶A用戶BCKdAKeA查找找到KeA用戶C截獲密文用戶C獲取了明文Maninthemiddleattack:TrudyposesasAlice(toBob)andasBob(toAlice)IamAliceIamAliceRTK(R)-SendmeyourpublickeyTK+AK(R)-SendmeyourpublickeyAK+TK(m)+Tm=K(K(m))+T-TrudygetssendsmtoAliceencryptedwithAlice’spublickeyAK(m)+Am=K(K(m))+A-RMan-in-the-MiddleAttack(中間人攻擊)練習(xí)A向B發(fā)送消息(假設(shè)是短消息),設(shè)計一種加密方案使得A到B的消息具有保密性,同時保證消息的來源是真實的。用戶A用戶BCKeBKdB查找找到KeBKdAKeA查找找到KeA公鑰密碼體制的優(yōu)缺點優(yōu)點:解決密鑰傳遞的問題大大減少密鑰持有量提供了對稱密碼技術(shù)無法或很難提供的服務(wù)(數(shù)字簽名)缺點:計算復(fù)雜、耗用資源大非對稱會導(dǎo)致得到的密文變長數(shù)字信封數(shù)字信封技術(shù)使用兩層加密體制,內(nèi)層使用對稱加密技術(shù),外層使用非對稱加密技術(shù)。具體過程為:發(fā)送方:采用對稱密鑰來加密信息內(nèi)容,然后將此對稱密鑰用接收方的公開密鑰來加密(這部分稱數(shù)字信封);將它和加密后的信息一起發(fā)送給接收方,接收方:先用相應(yīng)的私有密鑰打開數(shù)字信封,得到對稱密鑰,然后使用對稱密鑰解開加密信息。數(shù)字信封OpenSSLOpenSSL是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用/OpenSSL工具的使用相關(guān)命令:例如opensslgenrsa-outtest.key1024//產(chǎn)生公鑰私鑰opensslrsa-intest.key-pubout-outtest_pub.key//導(dǎo)出公鑰opensslrsautl-encrypt-inhello-inkeytest_pub.key-pubin-outhello.en//用公鑰加密指定文件到指定輸出opensslrsautl-decrypt-inhello.en-inkeytest.key-outhello.de

//解密OpenSSLAPI的使用主要內(nèi)容數(shù)據(jù)加密概述傳統(tǒng)密碼技術(shù)對稱密鑰密碼技術(shù)公鑰密碼體制數(shù)字簽名與認(rèn)證技術(shù)消息認(rèn)證的概念散列函數(shù)數(shù)字簽名加密軟件問題的引入-通信威脅泄露:把消息內(nèi)容發(fā)布給任何人或沒有合法密鑰的進程。傳輸分析:分析通信雙方的通信模式偽造:從一個假冒信息源向網(wǎng)絡(luò)中插入消息。內(nèi)容修改:消息內(nèi)容被插入刪除變換修改。順序修改:插入刪除或重組消息序列。時間修改:消息延遲或重放。發(fā)送方否認(rèn):發(fā)送方否認(rèn)發(fā)送過消息接收方否認(rèn):接收方否認(rèn)接收過消息加密認(rèn)證數(shù)字簽名認(rèn)證技術(shù)現(xiàn)代密碼學(xué)的最重要的分支就是加密和認(rèn)證。加密:防止對方獲得機密信息(被動攻擊)。認(rèn)證:防止對方的主動攻擊,例如偽造,纂改消息等。保密和認(rèn)證是信息安全的兩個不可或缺的內(nèi)容,他們是兩個不同屬性的問題。認(rèn)證不能自動提供保密性,保密性不提供認(rèn)證功能。消息認(rèn)證消息認(rèn)證:消息來自真正的發(fā)送方且未被修改(包括順序和及時性),具體包括:消息的來源消息的完整性消息的序號和時間它包含兩方面的含義:(1)驗證信息的發(fā)送者是真正的而不是冒充的,即數(shù)據(jù)起源驗證;(2)驗證信息在傳遞過程中未被篡改、重放或延遲等。一個純的認(rèn)證系統(tǒng)認(rèn)證系統(tǒng)模型消息認(rèn)證函數(shù)(一)消息加密將明文加密后以密文作為認(rèn)證;(二)散列函數(shù)是一個公開的函數(shù)它將任意長的信息映射成一個固定長度的散列值,以散列值作為認(rèn)證符。常見的散列函數(shù)有:MD4、MD5、SHA和SHA-1(一)消息加密函數(shù)信息加密函數(shù)分兩種,一種是常規(guī)的對稱密鑰加密函數(shù),另一種是公開密鑰的雙密鑰加密函數(shù)。下圖的通信雙方是,用戶A為發(fā)信方,用戶B為接收方。用戶B接收到信息后,通過解密來判決信息是否來自A,信息是否是完整的,有無竄擾。消息加密函數(shù)(1)對稱加密:具有機密性,可消息認(rèn)證,不提供簽名如果攻擊者獲取到密文,并且對密文進行了修改,接收方如何判斷收到的密文是被纂改過的??如何自動確定是否收到的明文可解密為可懂的明文??一種解決辦法是強制明文有某種結(jié)構(gòu).差錯控制:ErrorControl消息加密函數(shù)(2)公鑰加密:具有機密性,不能提供認(rèn)證(任何人都可以得到公鑰),不提供簽名;消息加密函數(shù)(3)私鑰加密認(rèn)證和簽名,沒有機密性A的私鑰A的公鑰消息加密函數(shù)(4)公鑰加密體制機密性,可認(rèn)證和簽名加密vs.認(rèn)證保密性與完整性是兩個不同的概念;某些信息只需要真實性(來源與消息),不需要保密性:廣播的信息難以使用加密(信息量大)網(wǎng)絡(luò)管理信息等只需要真實性政府/權(quán)威部門的公告加密算法代價大(尤其是公鑰加密算法);因此,認(rèn)證函數(shù)與保密函數(shù)的分離能提供功能上的靈活性!思路:散列函數(shù)散列函數(shù)是一個公開的函數(shù)它將任意長的信息映射成一個固定長度的散列值,以散列值作為認(rèn)證符。消息驗證碼/認(rèn)證符/消息摘要散列函數(shù)散列函數(shù)(又稱雜湊函數(shù)、哈希函數(shù)、數(shù)字指紋、壓縮函數(shù)、數(shù)據(jù)鑒別碼):是對不定長的輸入產(chǎn)生定長輸出的一種特殊函數(shù):h=H(M)

其中:M:變長消息h=H(M)是定長的散列值(或稱消息摘要)

H:散列函數(shù),是公開的;散列值在信源處被附加在消息上,接收方重新計算散列值來確認(rèn)消息未被篡改。散列函數(shù)的基本性質(zhì)單向性:對于預(yù)先給定的散列值找到對應(yīng)的數(shù)據(jù)塊在計算上不可行抗沖突性:找不到不同的數(shù)據(jù)塊對應(yīng)相同的散列值散列函數(shù)的性質(zhì)(1)H能用于任何大小的數(shù)據(jù)分組,都能產(chǎn)生定長的輸出,例如,512比特(2)對于任何給定的M,H(M)要相對易于計算;(3)單向性:對任何給定的散列碼h,尋找M使得H(M)=h在計算上不可行;(4)抗弱沖突:給定M,要尋找另一信息M′,滿足H(M′)=H(M)在計算上不可行;(5)抗強沖突:要尋找不同的信息M和M′,滿足H(M′)=H(M)在計算上不可行,例如生日攻擊。找到強沖突要比找到弱沖突更容易,因此,實現(xiàn)具有抗弱沖突性的散列函數(shù)要難于具有抗強沖突性的函數(shù)散列函數(shù)問題生日問題:一個教室中,最少應(yīng)有多少學(xué)生,才使至少有兩人具有相同生日的概率不小于1/2?實際上只需23人,即任找23人,從中總能選出兩人具有相同生日的概率至少為1/2。思考CRC是否可以作為散列函數(shù)?嚴(yán)格意義上,不可以;主要用于通信傳輸中對錯誤碼的校驗,而非安全領(lǐng)域;壓縮算法(ZIP,RAR)是否可以作為散列函數(shù)?否,壓縮算法是可逆函數(shù),不滿足散列函數(shù)單向性的要求(b)Usingpublic-keyxxyHashKeyEncryptDecrypt(a)Usingsecret-keyEncryption使用對稱密鑰算法加密Hashencryption(digitalsignature)使用公鑰算法加密HASHSecretValue(秘密值)

isaddedbybothpartiestomessagebeforethe“hash,”functionisusedtogettheMessageIntegrityCheck(MIC).Itisremovedbeforetransmission.MICMICItiscriticalthataforger(偽造者)cannotcomposeadifferentmessagethatwouldproducethesameMICvalue.不使用加密算法,但仍然安全傳輸Hash值134極其不安全安全Hash函數(shù)的一般結(jié)構(gòu)散列函數(shù)MD5

(消息摘要算法5):對輸入消息(任意長)按照512位進行分組處理,輸出128位消息摘要SHA-1(安全哈希算法-5):輸入長度小于2^64位消息,按512位進行分組處理,輸出160位消息摘要SHA-256、SHA-383和SHA-512提供更長的消息摘要,大小分別是256位、383位和512位;RIPEMD-160:對輸入消息(任意長)按照512位進行分組處理,輸出160位消息摘要MD5(消息摘要算法)RonRivest于1990年提出了一個稱為MD4的散列函數(shù)。他的設(shè)計沒有基于任何假設(shè)和密碼體制,不久,他的一些缺點也被提出。為了增強安全性和克服MD4的缺陷,Rivest于1991年對MD4作了六點改進,并將改進后的算法稱為MD5MD5算法:將明文按512比特進行分組,即MD5中的b=512bit,經(jīng)填充后信息長度為512的倍數(shù)(包括64比特的消息長度)。100…0消息K比特Lx512比特1到512比特的填充消息長度Y0512bitHMD5512128CV0=VIY1512bitHMD5512128CV1Yq512bitHMD5512128CVqYL-1512bitHMD5512128CVlL-1……消息摘要128bitMD5的框圖破解MD5?2004年8月,在美國加州圣巴巴拉召開的年度密碼學(xué)國際會議上,王小云首次宣布了她和她的研究小組近年來的研究成果——對MD5、HAVAL-128、MD4和RIPEMD等四個著名密碼算法的破譯結(jié)果。在王小云教授僅公布到他們的第三個驚人成果的時候,會場上已經(jīng)是掌聲四起,報告不得不一度中斷。報告結(jié)束時,與會者長時間熱烈鼓掌,部分學(xué)者起立鼓掌致敬,這在密碼學(xué)會議上是少見的盛況。之后,王小云又繼續(xù)發(fā)展她的研究,于2005年初破解了美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)為美國政府及商企界制定的SHA-1密碼算法。MD5的破解使用“窮舉”法:即程序在一定的數(shù)據(jù)范圍內(nèi)產(chǎn)生一系列數(shù)據(jù)組合進行MD5運算,再把運算結(jié)果與獲取的摘要進行比較,如果兩者相同,就被定義為“破解”了。MD5在線破解安全散列算法(SHA)目前,MD5被認(rèn)為是易受攻擊的(很容易遭遇強碰撞的生日攻擊),因此,有必要用一個具有更長散列碼和更能抗擊已知密碼分析攻擊的散列函數(shù)來代替現(xiàn)在流行的MD5?,F(xiàn)在已經(jīng)有兩個散列碼長度為160比特的替代者SHA-1和RIPEMD-160。我們了解SHA-1即可。安全散列算法SHA(SecureHashAlgorithm)是由美國國家標(biāo)準(zhǔn)和技術(shù)協(xié)會提出的,并作為聯(lián)邦信息處理標(biāo)準(zhǔn)在1993年公布。1995年又發(fā)布了一個修訂版,通常稱為SHA-1。SHA是基于MD4算法的。MD5與SHA-1對比

MD5SHA-1消息長度128bit160bit分組長度512bit512bit步驟數(shù)6480消息最大長度264-1速度較快慢問題的提出1996年7月9日,北京市海淀區(qū)法院審理國內(nèi)第一起電子郵件侵權(quán)案。此案的原、被告均系北大心理學(xué)系93級女研究生。4月9日,原告薛燕戈收到美國密執(zhí)安大學(xué)教育學(xué)院通過互聯(lián)網(wǎng)發(fā)給她的電子郵件,內(nèi)容是該學(xué)院將給她提供1.8萬美元金額獎學(xué)金的就學(xué)機會。此后,久等正式通知,但杳無音訓(xùn),蹊蹺之中委托在美國的朋友去密執(zhí)安大學(xué)查詢。在4月27日查到密執(zhí)安大學(xué)收到一封北京時間4月12日10時16分發(fā)出的署名薛燕戈的電子郵件,表示拒絕該校的邀請。因此密執(zhí)安大學(xué)以將原準(zhǔn)備給薛的獎學(xué)金轉(zhuǎn)給他人。經(jīng)調(diào)查,證明以原告名義發(fā)送電子郵件的是被告。數(shù)字簽名消息認(rèn)證用于防止第三方攻擊;數(shù)字簽名用于防止通信對方的欺騙或抵賴(否認(rèn))數(shù)字簽名:一種基于機密技術(shù)的認(rèn)證技術(shù),用于確認(rèn)發(fā)送者身份和消息完整性的一個加密的消息摘要。分類:直接數(shù)字簽名需仲裁的數(shù)字簽名數(shù)字簽名應(yīng)滿足的基本條件簽名者不能否認(rèn)自己的簽名;接收者能夠驗證簽名,而其他任何人都不能偽造簽名;當(dāng)關(guān)于簽名的真?zhèn)伟l(fā)生爭執(zhí)時,存在一個仲裁機構(gòu)或第三方能夠解決爭執(zhí)。直接簽名直接數(shù)字簽名僅涉及通信方。假設(shè)接收方知道發(fā)方的公鑰。數(shù)字簽名通過使用發(fā)方的私鑰對整個消息進行加密或使用發(fā)方的私鑰對消息的散列碼(消息摘要)進行加密來產(chǎn)生。如何實現(xiàn)?直接簽名--RSA數(shù)字簽名機制直接數(shù)字簽名僅涉及通信方RSA是最流行的一種加密標(biāo)準(zhǔn),許多產(chǎn)品的內(nèi)核都有RSA的軟件和類庫,RSA與Microsoft、IBM、Sun和Digital都簽訂了許可協(xié)議,使其在生產(chǎn)線上加入了類似的簽名特性。與DSS不同,RSA既可用于加密數(shù)據(jù),也可用于身份認(rèn)證。RSA數(shù)字簽名體制MEH||MEKRa(HM))HD比較KRaKUa數(shù)字簽名在接收方具體步驟發(fā)送方(1)A把發(fā)送給B的消息作為散列函數(shù)的輸入,生成消息摘要;(2)A用自己的私鑰加密消息摘要,生成數(shù)字簽名;(3)A將消息與數(shù)字簽名一起發(fā)送到B接收方:(4)B接收到后,將消息和數(shù)字簽名進行拆分;(5)B用A的公鑰對數(shù)字簽名進行解密,得到消息摘要(6)B將收到的消息作為A的散列函數(shù)的輸入,產(chǎn)生消息摘要(7)B比較兩個消息摘要,若相同,驗證成功思考以上過程可以提供什么樣的安全服務(wù)?完整性服務(wù)、發(fā)送方的身份認(rèn)證和發(fā)送方的不可抵賴服務(wù)。課堂練習(xí)1.實現(xiàn)消息認(rèn)證有兩種方式,分別是使用加密函數(shù)和使用認(rèn)證函數(shù),分別舉例說明。并比較兩類函數(shù)應(yīng)用在消息認(rèn)證上的特點。2.列舉散列函數(shù)的性質(zhì)。課堂練習(xí)3:說明以上認(rèn)證函數(shù)的應(yīng)用所提供的安全性服務(wù)S:雙方共享的秘密值課堂練習(xí)3:說明以上認(rèn)證函數(shù)的應(yīng)用所提供的安全性服務(wù)課堂練習(xí)4.假設(shè)Oscar可以看到Alice到Bob之間的所有消息,并且能夠獲取到數(shù)字簽名的公鑰。A)(消息完整性)Alice將消息x=“Transfer$1000toMark”以明文形式,加上auth(x)一起發(fā)送到Bob。Oscar截獲上述內(nèi)容,并將“Mark”替換為”O(jiān)scar”,Bob能否檢測到?說明原因。B)(重放)Alice將消息x=“Transfer$1000toOscar”以明文形式,加上auth(x)一起發(fā)給Bob。Oscar觀測到后,重復(fù)100遍發(fā)送到Bob,Bob是否能夠檢測到?如果不能,嘗試說明解決方法。C)(認(rèn)證中Bob存在欺騙行為)Bob聲稱收到了Alice的消息x=“Transfer$1000fromAlicetoBob”,并附帶有效的數(shù)字簽名auth(x)。但Alice表示并沒有發(fā)送過上述內(nèi)容。說明Alice如何證實是哪種情況?D)(發(fā)送者認(rèn)證,同時第三方存在欺騙)Oscar聲稱Bob發(fā)送了消息x,并附帶數(shù)字簽名auth(x),但Alice聲稱它也發(fā)送了上述內(nèi)容。說明Bob如何區(qū)分是哪種情況?課堂練習(xí)5.請依據(jù)加密技術(shù)和數(shù)字簽名技術(shù)原理,設(shè)計一個同時能夠防竊聽、防纂改、防抵賴并可具有身份認(rèn)證功能的加/解密方案。依次寫出發(fā)送方和接收方的處理步驟,并用公式表達(dá),并文字進行說明。如:M,H,E,K,KUX(X表示通信方)、KRX發(fā)送方使用H對消息M生成消息摘要:H(M)一個加密通信實例的演化假設(shè)服務(wù)器和客戶端要進行通信,且協(xié)商使用RSA來對通信進行加密以保證談話內(nèi)容的安全;問題如何知道每次通信或交易中所使用的密鑰就是用戶的密鑰對而非偽造呢?數(shù)字證書:需要驗證公鑰和用戶之間的關(guān)系:CA:數(shù)字證書頒發(fā)中心注意:數(shù)字證書并不是身份證,只是身份證上的公章,表示身份證是有效的CertificateAuthoritygeneratesthe“signature”thatisaddedtoraw“Certificate”MICHashRaw“Certificate”

包括用戶名,公鑰,有效日期等RawCert.SignedCert.第一步:產(chǎn)生證書的Hash值,也稱為指紋第二步:使用CA的私鑰加密指紋SignedCertificateRecipientcanverifysignatureusingCA’spublickey.CASecureArea數(shù)字證書構(gòu)成證書的發(fā)布機構(gòu)證書的有效期公鑰證書所有者(Subject)簽名所使用的算法對指紋進行簽名,生成證書的數(shù)字簽名指紋以及指紋算法指紋:計算整個證書的消息摘要,保證證書的完整性(未被篡改)證書使用者用指紋算法根據(jù)證書明文產(chǎn)生本地指紋,并和證書中的指紋進行對比在瀏覽器中查看數(shù)字證書向CA申請數(shù)字證書假設(shè)“ABCCompany”花了1000塊錢,向一個證書發(fā)布機構(gòu)“SecureTr

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論