公鑰,私鑰,SSL(講的很生動)

公鑰,私鑰,SSL(講的很生動)

一,公鑰私鑰
1,公鑰和私鑰成對出現
2,公開的密鑰叫公鑰,只有本身知道的叫私鑰
3,用公鑰加密的數據只有對應的私鑰能夠 解密
4,用私鑰加密的數據只有對應的公鑰能夠解密
5,若是能夠用公鑰解密,則必然是對應的私鑰加的密
6,若是能夠用私鑰解密,則 必然是對應的公鑰加的密
明白了? 算法

假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴大家,然 後我告訴你們,1是個人公鑰。 安全

我有一個文件,不能讓別人看,我就用1加密了。別人找到了這個文件,可是他不知道2就是解密的私鑰啊,因此 他解不開,只有我能夠用數字2,就是個人私鑰,來解密。這樣我就能夠保護數據了。 加密

個人好朋友x用個人公鑰1加密了字符a,加密後成了b, 放在網上。別人偷到了這個文件,可是別人解不開,由於別人不知道2就是個人私鑰,只有我才能解密,解密後就獲得a。這樣,咱們就能夠傳送加密的數據了。 spa

如今咱們知道用公鑰加密,而後用私鑰來解密,就能夠解決安全傳輸的問題了。若是我用私鑰加密一段數據(固然只有我能夠用私鑰加密,由於只有我知道 2是個人私鑰),結果全部的人都看到個人內容了,由於他們都知道個人公鑰是1,那麼這種加密有什麼用處呢? 操作系統

可是個人好朋友x說有人冒充我 給他發信。怎麼辦呢?我把我要發的信,內容是c,用個人私鑰2,加密,加密後的內容是d,發給x,再告訴他解密看是否是c。他用個人公鑰1解密,發現果真 是c。這個時候,他會想到,可以用個人公鑰解密的數據,必然是用個人私鑰加的密。只有我知道我得私鑰,所以他就能夠確認確實是我發的東西。這樣咱們就能確 認發送方身份了。這個過程叫作數字簽名。固然具體的過程要稍微複雜一些。用私鑰來加密數據,用途就是數字簽名get

好,咱們複習一下:
1, 公鑰私鑰成對出現
2,私鑰只有我知道
3,你們能夠用個人公鑰給我發加密的信了
4,你們用個人公鑰解密信的內容,看看能不能解開, 能解開,說明是通過個人私鑰加密了,就能夠確認確實是我發的了。 原理

總結一下結論:
1,用公鑰加密數據,用私鑰來解密數據
2, 用私鑰加密數據(數字簽名),用公鑰來驗證數字簽名。 軟件

在實際的使用中,公鑰不會單獨出現,老是以數字證書的方式出現,這樣是爲了公鑰的安 全性和有效性。 總結

二,SSL
我和我得好朋友x,要進行安全的通訊。這種通訊能夠是QQ聊天,很頻繁的。用個人公鑰加密數據就不行 了,由於:
1,個人好朋友x沒有公私鑰對,我怎麼給他發加密的消息啊? (注:實際狀況中,能夠雙方都有公私鑰對)
2,用公私鑰加密運算 很費時間,很慢,影響QQ效果。 通信

好了,好朋友x,找了一個數字3,用個人公鑰1,加密後發給我,說,咱們之後就用這個數字來加密信息吧。 我解開後,獲得了數字3。這樣,只有咱們兩我的知道這個祕密的數字3,別的人都不知道,由於他們既不知x挑了一個什麼數字,加密後的內容他們也沒法解開, 咱們把這個祕密的數字叫作會話密鑰

而後,咱們選擇一種對稱密鑰算法,好比DES,(對稱算法是說,加密過程和解密過程是對稱的,用一個 密鑰加密,能夠用同一個密鑰解密。使用公私鑰的算法是非對稱加密算法),來加密咱們之間的通訊內容。別人由於不知道3是咱們的會話密鑰,於是沒法解密。

好,複習一下:
1,SSL實現安全的通訊
2,通訊雙方使用一方或者雙方的公鑰來傳遞和約定會話密鑰 (這個過程叫作握手)
3, 雙方使用會話密鑰,來加密雙方的通訊內容

上面說的是原理。你們可能以爲比較複雜了,實際使用中,比這還要複雜。不過慶幸的是,好心的先行 者們在操做系統或者相關的軟件中實現了這層(Layer),而且起了一個難聽的名字叫作SSL,(Secure Socket Layer)。


感謝一下做者: icemanpro


相關文章
相關標籤/搜索