加密解密
3.1、對稱加密
采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。 需要對加密和解密使用相同密鑰的加密算法。由於其速度快,對稱性加密通常在消息發送方需要加密大量數據時使用。對稱性加密也稱為密鑰加密。 所謂對稱,就是采用這種加密方法的雙方使用方式用同樣的密鑰進行加密和解密。密鑰是控制加密及解密過程的指令。算法是一組規則,規定如何進行加密和解密。 加密的安全性不僅取決於加密算法本身,密鑰管理的安全性更是重要。因為加密和解密都使用同一個密鑰,如何把密鑰安全地傳遞到解密者手上就成了必須要解決的問題。 常用的對稱加密有:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等3.2、非對稱加密
非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麽只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。 非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰並將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密後再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密後的信息進行解密。另一方面,甲方可以使用乙方的公鑰對機密信息進行簽名後再發送給乙方;乙方再用自己的私匙對數據進行驗簽。
非對稱加密工作原理
1.A要向B發送信息,A和B都要產生一對用於加密和解密的公鑰和私鑰。 2.A的私鑰保密,A的公鑰告訴B;B的私鑰保密,B的公鑰告訴A。 3.A要給B發送信息時,A用B的公鑰加密信息,因為A知道B的公鑰。 4.A將這個消息發給B(已經用B的公鑰加密消息)。 5.B收到這個消息後,B用自己的私鑰解密A的消息。其他所有收到這個報文的人都無法解密,因為只有B才有B的私鑰發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣,信息就可以安全無誤地到達目的地了,即使被第三方截獲,由於沒有相應的私鑰,也無法進行解密。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。
非對稱性加密依然沒有解決數據傳輸的安全性問題,比如A想向B發數據,B首先生成一對密鑰(公鑰和私鑰),然後將公鑰發給A,A拿到B發給他的公鑰有就可以使用公鑰加密數據後發給B,然而在B公鑰發送給A的這個過程中,很有可能會被第三方C截獲,C截獲到B的公鑰後,也使用B的公鑰加密數據,然後發給B,B接收到數據後就暈了,因為搞不清楚接收到的數據到底是A發的還是C發的,這是其中一個問題,另一個問題就是,C截獲到B發的公鑰後,C可以自己生成一對密鑰(公鑰和私鑰),然後發給A,A拿到公鑰後就以為是B發給他的,然後就使用公鑰加密數據發給B,發送給B的過程中被C截獲下來,由於A是用C發給他的公鑰加密數據的,而C有私鑰,因此就可以解密A加密過後的內容了,而B接收到A發給他的數據後反而解不開了,因為數據是用C的公鑰加密的,B沒有C的私鑰,所以就無法解密。所以,非對稱性加密存在一個問題:A想向B發數據,A如何確定拿到的公鑰一定是B發的呢?那麽如何解決這個問題呢?只能靠一個第三方機構(CA機構,即證書授權中心(Certificate Authority ),或稱證書授權機構)來擔保。A想向B發數據,B首先將公鑰發給CA機構,CA機構拿到B的公鑰後跑到B的家裏問:這是你發的公鑰嗎?B確認過後說是:沒錯,是我發的!那麽此時CA機構就會為B的公鑰做擔保,生成一份數字證書給B,數字證書包含了CA的擔保認證簽名和B的公鑰,B拿到CA的這份數字證書後,就發給A,A拿到數字證書後,看到上面有CA的簽名,就可以確定當前拿到的公鑰是B發的,那麽就可以放心大膽地使用公鑰加密數據,然後發給B了。
加密解密