




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、常見加密方法及應用2011年5月31日信息安全問題通信過程中的問題:發送方如何確保內容正確的傳輸到接收方,即內容沒有被修改過?發送方如何確保在傳輸內容的過程中不被除接收人以外的第三方知道?接收方如何確內容確實是由發送方傳輸過來的,而不是由其它偽造的?等等信息安全的基本要求真實性對信息的來源進行判斷,能對偽造來源的信息予以鑒別保密性保證機密信息不被竊聽,或竊聽者不能了解信息的真實含義完整性保證數據的一致性,防止數據被非法用戶篡改其它(如不可抵賴、可控性等)內容提要信息摘要算法加密算法對稱加密非對稱加密綜合應用SSL的應用數字證書與數字簽名附:常見編碼方法MD5算法介紹MD5 = Message
2、Digest AlgorithmV5中文名為:消息摘要算法第五版當然由MD2、MD3、MD4發展而來是最常用的一種散列函數,用以提供消息完整性保護無法從結果還原出原始信息算法的輸入輸出輸入:任何長度的字節流輸出:16字節值(有時會以32位十六進制字符表示)關鍵點:輸入不同,輸出也不同(并非絕對)MD5算法過程MD5算法簡要描述MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯后將生成一個128位散列值。更簡單的描述對原始數據分組每一組進行大量復雜的與、或、異或等運算運算過程中有很多精心挑選的
3、常量參與結果處理成16字節的信息MD5算法的應用給文件生成“指紋”不同的文件,其MD5算法的結果也不同,相當于一個獨一無二的“指紋”。例如下載的軟件,通常會提供一個MD5值,下載完成后可以重新計算MD5值以校驗下載是否損壞,或者是被人惡意修改過登錄認證時保護敏感信息例如網站將你的登錄密碼經過計算為MD5后存儲,驗證時也將用戶的輸入的密碼計算MD5,對兩個MD5以后的值比較,而不是比較原始密碼,這樣就沒有任何人知道你的密碼,包括網站本身SHA-1算法介紹SHA-1 = Secure Hash Algorithm V1當然也有SHA-2 ,以及SHA-0SHA-2是一組標準的統稱:SHA-224,
4、 SHA-256, SHA-384, SHA-512同MD5類似,也是產生消息摘要的算法SHA-1算法的輸入輸出輸入:任何長度的字節流輸出:20字節值(有時會以40位十六進制字符表示)SHA-1算法的應用同MD5類似,用作信息摘要或敏感信息保護信息摘要算法的安全性安全性分析理論上可以證明算法是不安全的。即不同的信息算出的摘要結果可能是相同的。但是給定一個MD5值,要構造一個信息使其MD5值與給定值相同(即所謂產生碰撞),是非常因難的。當前仍廣泛應用于互聯網信息安全應用中。安全性:SHA-2 SHA-1 MD5碰撞碰撞是存在的,但產生是困難的山東大學王小云以研究用更少的計算產生碰撞的方法出名內容
5、提要信息摘要算法加密算法對稱加密非對稱加密綜合應用SSL的應用數字證書與數字簽名附:常見編碼方法對稱加密算法的概念概念簡單來說,加密和解密使用同一個密鑰的算法,稱為對稱加密算法。特點:算法公開、計算量小、加密速度快不足:雙方都使用同樣鑰匙,安全性較低常見對稱密算法DES/3DESRC2/RC4Blowfish等等異或加密的安全性分析異或加密即用一個密鑰對給定的信息進行異或運算,得到的密文,可以用相同的密鑰再異或一次解密安全性分析不要采用該算法,因為這種加密算法和直接給明文基本沒有區別用所謂重合碼計數法找出密鑰長度,按此長度移動密文并且和自身異或。這樣就消除了密鑰破解只需要幾秒到幾小時的時間用r
6、and()隨機數產生的一系列結果作為密鑰進行異或的方法也不可取,也是易于解密的。結論:不要自己隨便去“創造”加密算法算法保密不是真保密,密鑰保密才是真諦DES算法(一)DES = Data Encryption Standard口氣很大:數據加密標準,確實應用非常文泛現在已經不被視為一種安全的加密算法,主要因為它使用的56位密鑰(7字節),過短,易于暴力破解,據說有人在22小時15分鐘內即公開破解了一個DES密鑰3DES更加安全,但也存在理論上的攻擊辦法2001年,DES被更高級的加密標準AES取代特點明文和密文是等長的一次只能對8字節數據進行加密或解密加密和解密的過程是互相可逆的DES算法(
7、二)密鑰DES使用56位密鑰,但實際使用中,通用會指定64位(8個字節),最后8位丟棄不用。加/解密過程將數據分成8字節一組的一個一個塊(Block)對每一塊用密鑰進行復雜的變換,得到加/解密結果安全性目前為止,最有效的破解辦法仍然是暴力破解法56位的加密強度確實不高,實際使用中多用3DES加密模式及相關概念(一)ECB加密模式ECB是最簡單的加密模式,需要加密的消息按照塊密碼的塊大小被分為數個塊,并對每個塊進行獨立加密缺點:在于同樣的平文塊會被加密成相同的密文塊;因此,它不能很好的隱藏數據模式例如:左圖是原圖,中圖可能是ECB模式加密的結果,而好的加密模式則可能要加密成形如右圖的結果加密模式
8、及相關概念(二)CBC加密模式每個塊先與前一個密文塊進行異或后,再進行加密這種方法,每個密文塊都依賴于它前面的所有明文塊因為前一個密文塊可能不同,即使是相同的塊加密的結果也會不同,達到前文所說的要求。初始化向量(IV)CBC模式下,對每一個塊進行加密,除了需要密鑰,還需要前一個塊的密文,那么對于第一個塊怎么辦呢?初始化向量即是用于第一塊加密,相當于另一個密鑰其它加密模式很多:PCBC、CFB、OFB 等加密模式及相關概念(三)填充(Padding)加密的算法只能對一塊數據進行加密,每一塊長度是固定的,例如8字節。那么對于明文不是8字節的整數倍時,最后一塊怎么辦?對,對最后一塊填充補齊,補足8字
9、節。填充模式PKCS7、ANSIX923、ISO10126PKCS5Padding、SSL3PaddingNone、Zero 等很多很多C#和Java支持的填充模式不完全一樣,經常搞出問題填充算法都很簡單,如遇兩者不兼容,可以自己寫代碼C#和Java比較: http:/DES加密四要素總結密鑰(Key)8字節密鑰(實際只用前7個字節)塊模式CBC/ECB(最常用,也可能有其它)初始向量(IV)如果塊模式為CBC,則需要初始向量,與密鑰等長填充模式(Padding)雙方約定好的填充模式3DES算法3DES = Triple DES使用3個56位密鑰進行3次DES加密是更安全,更實用的加密方法算法
10、簡要說明設Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,P代表明文,C代表密文:加密:C=Ek3(Dk2(Ek1(P) 解密:P=Dk1(EK2(Dk3(C) 3DES使用24字節密初始向量(IV)RC4算法RC4算法可以使用2048位的密鑰RC4算法速度可以達到DES加密的10倍內容提要信息摘要算法加密算法對稱加密非對稱加密綜合應用SSL的應用數字證書與數字簽名附:常見編碼方法非對稱加密的概念非對稱加密算法使用兩把完全不同但又是完全匹配的一對鑰匙公鑰和私鑰公鑰:公開的,任何人都知道私鑰:只有自己知道算法:公開的,任何人都可以拿其它人的公鑰進行計算加密/解密。而
11、計算的結果,只有擁有私鑰的人才可以解密/加密常見算法:RSA、DiffieHellman等。非對稱加密使用場景A要向B發送信息,A和B都要產生一對用于加密和解密的公鑰和私鑰。A的私鑰保密,A的公鑰告訴B;B的私鑰保密,B的公鑰告訴A。A要給B發送信息時,A用B的公鑰加密信息,因為A知道B的公鑰。A將這個消息發給B(已經用B的公鑰加密消息)。B收到這個消息后,B用自己的私鑰解密A的消息。其他所有收到這個報文的人都無法解密,因為只有B才有B的私鑰。RSA算法概念RSA算法是最常用的一種非對稱加密算法由三個人(分別是R、S、A開頭)一起提出得名RSA算法安全性RSA算法安全性的基礎是:大整數的因數分
12、解極為困難,假如有人找到一種快速因數分解的算法的話,那么用RSA加密的信息的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。通常越大越安全(不容易暴力破解),為了安全,實際使用中,RSA的密鑰通常在1024位以上。目前世界上還沒有任何可靠的攻擊RSA算法的方式RSA算法原理(一)公鑰和私鑰的產生隨意選擇兩個大的質數p和q,p不等于q,計算N=pq根據歐拉函數,不大于N且與N互質的整數個數為(p-1)(q-1)選擇一個整數e與(p-1)(q-1)互質,并且e小于(p-1)(q-1)用以下這個公式計算d:de 1 (mod (p-1)(q-1)將p和q銷毀(N,e)是公鑰,(N,d)是
13、私鑰加密消息假設Bob想給Alice送一個消息,他知道Alice產生的公鑰N和e將原始信息分為多段,每一段(假定為n)分別用以下公式計算出c:將多個n計算出的多個c串在一起,就是密文,發送即可。RSA算法原理(二)解密消息Alice得到Bob的消息c后就可以利用她的密鑰(N,d)來解碼。她可以用以下這個公式來將c轉換為n:得到n后,她可以將原來的信息m重新復原。算法的運算速度比起DES和其它對稱算法來說,RSA要慢得多。實際上通常來說,RSA算法不用來加密消息,加密消息用對稱算法如DES,而用RSA來加密傳輸密鑰。密鑰分配對RSA來說分配公鑰的過程是非常重要的。假設蛋蛋交給阿慶一個公鑰(蛋蛋自
14、己的),并使阿慶相信這是小Q的公鑰,并且她可以截下小Q和阿慶之間的信息傳遞,蛋蛋即可用自己的私鑰解密他們傳遞信息。這個問題需要用數字證書來解決(后邊會講)內容提要信息摘要算法加密算法對稱加密非對稱加密綜合應用SSL的應用數字證書與數字簽名附:常見編碼方法SSL的概念SSL = Secure Sockets Layer是網景公司(Netscape)在推出Web瀏覽器首版的同時,提出的協議。現在的Web瀏覽器普遍將Http和SSL相結合,從而實現安全通信。TLS(Transport Layer Security)協議是SSL的繼任者SSL協議包含:握手:加密算法協商認證:確認通信雙方的身份(對雙方
15、均可認證)數據加密:對需要傳輸的數據進行加密SSL的工作方式以客戶端為例:發送一個“ClientHello”消息,說明它支持的密碼算法列表、壓縮方法及最高協議版本,以及稍后將被使用的隨機數。然后收到一個“ServerHello”消息,包含服務器選擇的連接參數,源自客戶端初期所提供的“ClientHello”。當雙方知道了連接參數,客戶端與服務器交換證書(依靠被選擇的公鑰系統)。這些證書通常基于X.509。服務器請求客戶端公鑰。客戶端有證書即雙向身份認證,沒證書時隨機生成公鑰。客戶端與服務器通過公鑰保密協商共同的主密鑰(雙方隨機協商)。所有其他關鍵數據的加密均使用這個“主密鑰”。這個圖詳細地說明
16、了整個過程:http:/wikipedia/commons/a/ae/SSL_handshake_with_two_way_authentication_with_certificates.svg SSL的應用HTTPS(HTTP With SSL/TLS)應用SSL就像一個“插件”,工作在TCP與HTTP之間HTTPS只是對HTTP的傳輸部分增加了點東西,對HTTP協議沒有任何修改SSL協議對客戶端和服務端都可以認證,但通常瀏覽器不對客戶端進行認證。(因為你沒有證書)HTTPS與HTTP的區別默認使用不同的端口,HTTPS使用443,HTTP使用80HTTPS在傳輸內容之前,需要先握手,確定
17、雙的方算法以及一些加密數據用的密鑰等。HTTPS傳輸的所有內容都是加密的,接收方在收到后,必須解密還原成原始的HTTP報文。發布HTTPS的網站,必須要購買相應的服務器證書。銀行、支付寶證書應用雙向認證,對客戶端也認證,以確認身份內容提要信息摘要算法加密算法對稱加密非對稱加密綜合應用SSL的應用數字證書與數字簽名附:常見編碼方法PKI的概念PKI = Public Key Infrastructure即:公鑰基礎設施,是一種遵循既定標準的密鑰管理平臺,它能夠為所有網絡應用提供加密和數字簽名等密碼服務及所必需的密鑰和證書管理體系。簡單來說,PKI就是利用公鑰理論和技術建立的提供安全服務的基礎設施
18、,是電子商務的關鍵和基礎技術。PKI的基礎技術包括加密、數字簽名、數據完整性機制、數字信封、雙重數字簽名等。X.509標準是PKI的一個實現PKI的組成部分權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統、證書作廢系統、應用接口(API)等基本構成部分數字證書定義數字證書就是互聯網通訊中標志通訊各方身份信息的一系列數據,提供了一種在Internet上驗證您身份的方式,其作用類似于司機的駕駛執照或日常生活中的身份證。是公鑰體制和對稱加密算法綜合應用的產物數字證書通常由權威機構CA來發行。任何服務器都可以是CA,但操作系統默認認可的CA只有那么幾家,除非你手工增加(這個行為是允許且可行的,例如
19、公司的域環境下,可以用組策略直接讓所有的客戶機認可公司的CA)用途加密和解密,用以安全地傳輸數據數字簽名和簽名驗證,用以確保網上傳遞信息的機密性、完整性X.509證書X.509標準是ITU-T設計的PKI標準X.509標準規定的數字證書包括:版本序列號簽名算法標識符簽發人姓名有效期主體名主體公鑰信息等等看一個實際證書的例子數字簽名定義一種使用公鑰原理,用于鑒別信息的方法一套數字簽名通常定義兩種互補的運算,一個用于簽名,另一個用于驗證。簡單來說,數字簽名,就是在原始數據上附加一些信息,這些附加數據可用于接收者確認數據來源和數據完整性,保護數據,防止被人偽造。主要功能保證信息傳輸的完整性、發送者的
20、身份認證、防止交易中的抵賴發生等等。數字簽名的過程發送方:發送方用一個哈希函數(如MD5)從報文中生成摘要信息(散列值)發送方用自己的私鑰對這個散列值進行加密發送方將加密后的散列值連同報文一起發給接收方接收方:接收方收到信息后,先用同樣的哈希函數對報文主體進行摘要運算,得到散列值接收方再用發送方的公鑰對加密后的散列值進行解密接收方比較兩次計算得到的散列值是否一樣,一樣則沒有問題,不一樣則說明報文被修改了。實際使用中,數字簽名的信息可能更多,例如附加一個X.509證書在上面等等。代碼簽名所謂代碼簽名,就是使用特定的數字證書,給軟件(EXE、DLL、控件、Jar等等)增加一個數字簽名,防止該軟件在傳輸過程中被人修改。代碼簽名是數字簽名在特定場景下的另一種說法簽名以后的軟件,含有數字簽名的信息及用于簽名的證書,可以驗證該簽名的有效性演示:查簽名后的軟件中的簽名信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡工程師考試成功案例分享及試題及答案
- 用戶參與設計的重要性與試題與答案
- 西方公共政策與政治制度的關系試題及答案
- 軟件設計師考試數據分析題試題及答案
- 項目實施階段的監控與調整工作試題及答案
- 軟件設計師考試實際案例與理論結合分析試題及答案
- 社會責任與政策變革之間的關系試題及答案
- 機電工程行業創新與挑戰的結合試題及答案
- 公共政策中的性別平等問題試題及答案
- 系統梳理信息系統項目管理師試題及答案
- 浙江開放大學2025年《社區治理》終考測試答案
- 田畝轉戶協議書
- 資產委托購買協議書
- 新版高中物理必做實驗目錄及器材-(電子版)
- 中國法律史-第二次平時作業-國開-參考資料
- 景觀藝術設計智慧樹知到答案章節測試2023年天津美術學院
- 運動員健康證明表
- 工程質量策劃工程質量策劃(計劃)管理實施細則
- 巴殺殺菌作業指導書乳業有限公司
- 品質部質量體系管理制度
- 水利生產安全事故典型案例分析
評論
0/150
提交評論