加密類型及其相關算法
§·TCP/IP安全:
※·機密性:
數據在網絡上傳輸是明文傳輸(ftp,http,smtp,telnet):
※·數據的完整性:
數據在網絡上傳輸,不能被其它人篡改,保證數據的完整性:
※·身份驗證:
訪問的主機有一種機制可以表明就是你需要通信的主機。
※·保證機密性:對數據進行加密。
·如何加密:發送方通過轉換規(轉換算法)則把明文轉換為密文;
·如何解密:接收方通過轉換規(轉換算法)則把密文轉換為明文即可:
提問:雙方每見過面如何知道使用何種算法?
·轉換算法是復雜的數學原理,如果轉換算法被拿走怎么辦?
注意一點:轉換算法人人都可以取得,但是我們實際使用的主要還是密鑰。
※·機密性保證機制(加密機制 密鑰)
·對稱加密:
分為加密算法和解密算法,本身是兩種不同的算法,不過使用的密鑰是一樣,使用相同的密鑰加密和解密數據。
注意:如何用戶A與不同用戶通信時,不可能使用相同的密鑰,如果使用相同的密鑰,A與其他用戶通信,密鑰要是公開了,A與其他人的數據都會被別人知道,所以在實際中,A不可能使用相關的密鑰與其他用戶通信。
※·數據完整性保證機制(單向加密算法)
保證數據還是最原始的數據,保證數據本身是它本身,我們使用單項加密算法。
·單項加密算法:提取數據的特征碼(相當于把數據的指紋信息提起出來)。
A有一段明文,通過單向加密算法,提取出明文的特征碼,把特征碼附加在明文后面;
B收到數據后,通過單向加密算法,也提取出明文的特征碼,比較兩段特征碼是否一致;
·單向加密算法:提取數據特征碼:
輸入一樣,輸出必然相同;
雪崩效應:輸入的微小變化,將會引起結果的巨大變化;
定長輸出:無論原始數據多長,結果大小都相同的;
不可逆:無法根據特征碼還原原來的數據。
注意:如果出現這種情況,A向B傳輸數據,并且通過單項加密算法生成特征碼,C截取A發送的數據,提取出明文后,修改數據,再使用相同的單項加密算法生成特征碼,把數據傳輸給B,B同樣還是可以計算出特征碼,肯定與C的特征碼是一樣,導致數據被篡改,而B不知道。
·如何預防C如果篡改了數據,B可以發現呢(A與B協商相同密碼對特征碼進行加密)?
可以再來對特征碼進行加密,前提是 A 與 B 需要協商相同的密碼對特征碼進行加密,只有A與B協商的密碼才可以解密特征碼的數據。即使C截取到數據,無法解密特征碼數據,即使C修改了數據,生成的特征碼再發送B,B無法使用協商好的密碼進行解密,即可認為數據被篡改過。
·如何預防A 與B協商的密碼在網絡上傳輸不被別人知道呢?(IKE(互聯網密鑰交換 )協商生成密碼)
Diffie-Hellman協議:實現互聯網密鑰交換 (Internet Key Exchange IKE)
第一階段:
A : 選擇一個大素數(離散數學對數) :p
B : 選擇一個大素數 :g
p g可以通過網絡交換,使得A B 都知道 p g
第二階段:
A :本地隨機一個數 : x
A : g ^x%p 的結果發送給 : B
B:本地隨機一個數 : y
B : g^y%p 的結果發送給 : A
注意:在互聯網上就只有四個數字的傳輸: p g g ^x%p g^y%p ,根據離散數學原理,x y 這兩個數字是不可能被計算出來的
第三階段:
A :就取得B發給自己的:g^y%p (A是知道自己的隨機數x的)
B:就取得A發給自己的: g ^x%p (B是知道自己的隨機數y的)
即A 與B協商的密碼為 : g^xy%p
Diffie-Hellman協議:可以通過軟件管理每次的特征碼加密的密碼,不需要人為的參與。
※·身份驗證保證機制(非對稱加密算法)
以上解決的是數據的機密性與數據完整性。但是如何保證數據的身份信息呢?
公鑰加密算法:非對稱加密算法
密鑰對:
公鑰 :p (是通過某中機制從私鑰中提取出來的)
私匙 :s (私鑰一般情況下非常長有1024 2048 4096位)
發送方使用自己的私鑰加密數據,可以實現身份驗證;
發送方使用對方的公鑰加密數據,可以保證數據機密性;
公鑰機密算法很少用來加密數據,速度太慢,公鑰太長了;
通常情況下:對稱加密是公鑰加密數據速度的1000倍
如下模型:
這個模型保證了身份驗證的問題,但是無法保證數據的機密性。
※·如何獲取用戶的公鑰(如何獲取真正的公鑰),保證數據機密性
·獲取用戶公鑰
由于雙方建立通信的第一次根本就無法確定對方的身份,根本就無法獲取到對方的公鑰,需要公鑰就需要先通信,但是先通信就得需要對方的公鑰加密數據,死循環。
我們就必須借助第三方信任機構,自己生成公鑰和私鑰,把自己的公鑰想辦法放在第三方信任機構上,其它用戶想辦法在第三方機構取得對方的公鑰。
第三方信任機構把用戶的公鑰頒發證書:
姓名:住址:公鑰:第三方信息機構私鑰加密數據 ————–> 生成數字證書
第三方信任機構為:CA
§·網絡傳輸上的數據加密 解密模型(基于IKE)
§·實際運行中數據加密 解密模型(基于隨機密碼)
原創文章,作者:linux_root,如若轉載,請注明出處:http://www.www58058.com/43920