1 概念
A 和 B 要把他們的通信內容加密, 如果A/B使用相同的加密解密key,那這就是 對稱加密。
對稱加密最大的問題就是A和B之間的加密/解密key必須是唯一的。也就是如果A和C 要加密通信,同時還不想讓C知道A/B之間的通信內容。那么A/C之間的加密/解密用的key就不能和A/B之間的一樣。
鏈接一旦便多,這種機制將很難管理大量的key。
非對稱加密 就是在此環境下誕生的。非對稱加密有公鑰和私鑰。公鑰隨意公開,私鑰自己私密保存。
比如 A 把公鑰發給B, C。 當B,C與A通信時,先把約定好的見面信號用公鑰加密,A收到后,用私鑰解密,當解密后的數據就是提前約定好的見面信號的話,A 就認為B,C是受信鏈接。
如果此時D也給A發送信息,但卻沒有正確的公鑰。A就無法得到正確的見面信號,就不會受理D的請求。
2 對稱加密
對稱加密采用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰加密
也就是密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密算法,對稱加密算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標准(DES),另一個對稱密鑰加密系統是國際數據加密算法(IDEA),它比DES的加密性好,而且對計算機功能要求也沒有那么高
對稱加密算法在電子商務交易過程中存在幾個問題:
1、要求提供一條安全的渠道使通訊雙方在首次通訊時協商一個共同的密鑰。直接的面對面協商可能是不現實而且難於實施的,所以雙方可能需要借助於郵件和電話等其它相對不夠安全的手段來進行協商;
2、密鑰的數目難於管理。因為對於每一個合作者都需要使用不同的密鑰,很難適應開放社會中大量的信息交流;
3、對稱加密算法一般不能提供信息完整性的鑒別。它無法驗證發送者和接受者的身份;
4、對稱密鑰的管理和分發工作是一件具有潛在危險的和煩瑣的過程。對稱加密是基於共同保守秘密來實現的,采用對稱加密技術的貿易雙方必須保證采用的是相同的密鑰,保證彼此密鑰的交換是安全可靠的,同時還要設定防止密鑰泄密和更改密鑰的程序。
假設兩個用戶需要使用對稱加密方法加密然后交換數據,則用戶最少需要2個密鑰並交換使用,如果企業內用戶有n個,則整個企業共需要n×(n-1) 個密鑰,密鑰的生成和分發將成為企業信息部門的惡夢。
常見的對稱加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
3 非對稱加密
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。
公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰並將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。
非對稱加密的典型應用是數字簽名。
常見的非對稱加密算法有:RSA、ECC(移動設備用)、Diffie-Hellman、El Gamal、DSA(數字簽名用)
4 非對稱加密之公鑰/私鑰
1.公鑰與私鑰原理
1)鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰
2)鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。
3)蘇珊要給鮑勃寫一封保密的信。她寫完后用鮑勃的公鑰加密,就可以達到保密的效果。
4)鮑勃收信后,用私鑰解密,就看到了信件內容。這里要強調的是,只要鮑勃的私鑰不泄露,這封信就是安全的,即使落在別人手里,也無法解密。
5)鮑勃給蘇珊回信,決定采用"數字簽名"。他寫完后先用Hash函數,生成信件的摘要(digest)。
6)然后,鮑勃使用私鑰,對這個摘要加密,生成"數字簽名"(signature)。
7)鮑勃將這個簽名,附在信件下面,一起發給蘇珊。
8)蘇珊收信后,取下數字簽名,用鮑勃的公鑰解密,得到信件的摘要。由此證明,這封信確實是鮑勃發出的。
9)蘇珊再對信件本身使用Hash函數,將得到的結果,與上一步得到的摘要進行對比。如果兩者一致,就證明這封信未被修改過。
10)復雜的情況出現了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。此時,蘇珊實際擁有的是道格的公鑰,但是還以為這是鮑勃的公鑰。因此,道格就可以冒充鮑勃,用自己的私鑰做成"數字簽名",寫信給蘇珊,讓蘇珊用假的鮑勃公鑰進行解密。
11)后來,蘇珊感覺不對勁,發現自己無法確定公鑰是否真的屬於鮑勃。她想到了一個辦法,要求鮑勃去找"證書中心"(certificate authority,簡稱CA),為公鑰做認證。證書中心用自己的私鑰,對鮑勃的公鑰和一些相關信息一起加密,生成"數字證書"(Digital Certificate)。
12)鮑勃拿到數字證書以后,就可以放心了。以后再給蘇珊寫信,只要在簽名的同時,再附上數字證書就行了。
13)蘇珊收信后,用CA的公鑰解開數字證書,就可以拿到鮑勃真實的公鑰了,然后就能證明"數字簽名"是否真的是鮑勃簽的。