密鑰認證原理
數據安全在網上傳輸要從三個方面得到保證:數據機密性、數據完整性、身份驗證。
數據機密性:
A和B通信,可以用對稱加密來保證。A把plaintext經加密---得到ciphertext 把它發給B,B用密鑰解密得到數據。問題出現:A和B如何協商密鑰。如遇到第三方***,第三方是C,C截獲A發送給B的密鑰,然後冒充A給B發送數據,這數據機密性得不到保障。
密鑰如何發送給對方,而不讓第三方知道?
可以用Diffie hellman 算法試驗。A選取兩個數 p (大素數)g(生產數)發送給B
A和B在各選一個隨機數X Y A:g^x%p B:g^y%p互信發給對方,
A得到數據後計算出(g^y)^x%p B得到數據後計算出(g^x)^y%p,兩個數相同,這就是二者的密鑰。
數據完整性:
A和B通信,A發給B數據,A可以用單向加密算法加密數據發給B。單向加密,是提取數據特徵碼,並附加到數據後面。B接受到數據後,用單向加密算法提取數據特徵碼,如特徵碼一致,說明數據正常。問題:C截獲A發的數據,得到A的發的數據,篡改後發送給B,B還是無法驗證對方的身份。單向加密特徵:微小變化,引起巨大變化(雪崩效應),不可逆。定出輸出。
身份驗證:可用公鑰加密(非對稱加密算法)驗證身份。原理:公鑰加密生成祕鑰對,公鑰和私鑰,公鑰發給對方,私鑰自己保留,私鑰加密數據後,只能通過自己的公鑰解密。這就保證了發送方的數據。如C獲取數據,用A的公鑰機密後得到數據,但是他不可能在通過A的私鑰進行加密,這樣B就可以驗證發送方的身份。問題:
用公鑰加密數據,私鑰解密可以實現數據機密性,因爲只有發送方的自己私鑰可以對其解密。
|
|
A用自己的私鑰加密數據特徵碼保證數據的完整性
A隨機選選一個密鑰,用對稱密鑰加密數據和特徵碼,然後用B的公鑰加密此密鑰,發送給B,如此就保證了數據的三個特性。問題,A和B的公鑰如何讓對方獲得?
CA,第三方發給機構,A把自己的公鑰機信息發給CA,CA用自己的私鑰對其加密,B到CA機構得到A的證書信息。