公鑰 私鑰 數字簽名 數字證書

    經常會聽到公鑰和私鑰的概念,今天來討論一下我對公鑰和私鑰的理解。
    公鑰和私鑰是非對稱加密的一種,有別於對稱加密中,雙方都持有相同的密鑰,非對稱加密,加解密雙方持有不同的密鑰,公開給對方的密鑰被稱爲公鑰,自己保留的密鑰
被稱爲私鑰。由公鑰加密的內容只有私鑰能解開,反之,由私鑰加密的內容只能被公鑰解開。
    那麼,公鑰和私鑰的用處在哪裏呢。首先來了解一下對稱加密,對稱加密雙方都持有相同的密鑰,只要得不到密鑰就解不開密文,但這是建立在雙方都互相信任的基礎上,
如果兩邊都可能存在不信任,那麼隨便把密鑰交給對方,就非常不安全,任何一個人都可以與你建立連接,騙得密鑰,然後交換內容,那就不存在安全一說了。設想,大家都有密鑰,那麼都可以解密內容。
此時非對稱加密就比較安全了。
    公鑰,私鑰:
    假設 A 與 B 兩人,A 要想給 B 發信息,A 就需要知道 B 的公鑰,把自己想發的內容用 B 的公鑰加密,然後發給 B,B 用自己的私鑰解密,得到內容,任何中途得到密文的人,因爲沒有 B 的密鑰,
所以都沒法解開密文。這樣 A 發給 B 的內容就安全了,反之,B 想給 A 發信息,就需要用 A 的密鑰進行加密。總結就是,你想要給誰發信息,就需要知道對方的公鑰就行了。
    數字簽名:
    這看起來似乎很美好,但試想,萬一中間來了個第三者 C, C 想冒充 A 去給 B 發信息,去騙取信息,那麼 C 只需要有 B 的公鑰就行了,由於 B 的公鑰是公開的,這個很容易得到,那麼 B 就很容易
被 C 欺騙了,世界又黑暗了,要是有個標記讓 B 知道,這內容是 A 的親筆信就好了,自古簽名就可以看出來,這裏類同,A 只需要在寫完信後,把信用 MD5 取個信息摘要,然後對 MD5 用自己 (A) 的
私鑰進行加密,生成一個自己的簽名,連同信一起發給 B。 此時 B 收到了從 A 寄來的信時,雖然信上說自己是 A ,但可能被仿冒,B 只需要用 A 的公鑰去把簽名解密,得到信的 MD5,然後校驗一下
信的內容就行了。由於其它人沒有 A 的私鑰,所以他們發的內容,如果 B 用 A 的公鑰去解時,肯定會失敗,因爲不配對。這個好像解決了問題,很美好。
    數字證書:
    但是萬能的黑客是無處不在的,萬一,有人偷偷在 B 的電腦上,把 A 的公鑰換成自己的,你沒猜錯,這裏的黑客就是 C,此時 B 機器上 A 的公鑰其實是 C 的公鑰,那麼這個時候,C 再假冒
A 去給 B 發信息,B 就會一直以爲和他聯繫的是 A ,一切都正常加解密,無解啊。此時要是有個權威機構對這些公鑰進行統一管理就好了,這裏 CA (certificate authority) 證書中心橫空出世,
公鑰不再保存在 B 的電腦上。 CA 會把 A 的公鑰等信息,用 CA 自己的私鑰進行加密,生成一個數字證書,A 在給 B 寫信時,寫上簽名,然後把 CA 頒發的數據證書也帶上,一起發給 B,B 收到信後,
用 CA 的公鑰,解開數字證書,得到 A 的公鑰,然後用 A 的公鑰,解開數字簽名,如果能解開,那麼肯定就是 A 寫來的,此時得到信的內容的校驗,然後比對一下信的內容是否被更改,如果沒被更改,
說明這次交流是安全的。一切天衣無縫!
    總結一下,A 給 B 寫信,就用 B 的公鑰,因爲大家都有公鑰,所以可能被冒充,此時爲了證明是 A 寫的信,A 把摘要等信息用自己的私鑰加密,這樣就可以證實是自己的了,這個時候又擔心 B 保存的
A 的公鑰造假,就由第三方受信機構,對 A 的公鑰進行加密生成數字證書,一起都傳給 B,這樣由於受信機構的公鑰是內定的,不會被更改,就使整個過程安全了。
發佈了67 篇原創文章 · 獲贊 813 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章