1. 程式人生 > >網絡數據傳輸安全之公鑰與私鑰

網絡數據傳輸安全之公鑰與私鑰

加密算法 加密解密過程

數據在互聯網上傳輸過程中存在三個隱患:
安全性:數據在傳輸過程中內容可能泄露。
完整性:數據在傳輸過程中可能被篡改。
身份認證:接受數據的一方很難確認發送者的身份。
針對這三種隱患科研人員設計了多種對數據加密的算法,著名的算法有如下幾種:
單項加密法:此方法不可解密,很好的解決了數據的完整性,它的特點是不可逆性、結果的定長輸出性(就是不管明文有多大密文的長度都是一樣的)、雪崩效應(當明文有滴點改變,就會導致特征碼的巨大改變)由於這些特點導致了它的致命缺點就是:數學中的碰撞效應(數學家根據規律推算出我可以輸入不同的明文但是結果會和你加密後的結果是一樣的)這就使得它的安全性不好。
對稱加密法:
可以提高數據的安全性,一般用於對大數據量進行加密,它的特點是速度快,缺點是不能保證數據傳輸工程中特征碼傳輸的安全性。
非對稱加密法:
這種方法適合對數據量小的數據加密,可以保證數據傳輸的安全性,及身份認證問題,缺點是非常消耗資源占用CPU。

介於上述的種種問題成立了CA證書認證機構,所有人都要將自己的信息提交從而申請一個全球唯一標識自己身份的證書。這樣首先就很好的保證了身份認證得問題。
接下來和大家談談公鑰和私鑰的問題:

這裏我們假設一個A用戶給一個B用戶傳輸一個數據包的過程???
首先在A用戶端:
對明文部分進行單向加密,提取特征碼,完後通過自己的私鑰對特征碼進行對稱加密,再對加密過的明文+加密過的特征碼整體通過DH算法加密,把產生的隨機數X進行非對稱加密,之後就打包(明文+特征碼+隨機數)發送給B用戶。
其次在B用戶端:

  1. B用戶通過非對稱法對隨機數進行解密,得到A傳過來的隨機數X,那自己的隨機數Y根據DH算法對(明文+特征碼)進行解密,提取到特征碼,完後再通過A用戶的公鑰對特征碼進行解密,再次得到一個特征碼,最後對兩次提取到的特征碼進行對比是否一致即可。

網絡數據傳輸安全之公鑰與私鑰