數字證書-公鑰、私鑰

如果你問我,哪一種算法最重要?

我可能會回答"公鑰加密算法"。

 

 

 

因爲它是計算機通信安全的基石,保證了加密數據不會被破解。你可以想象一下,信用卡交易被破解的後果。

進入正題之前,我先簡單介紹一下,什麼是"公鑰加密算法"。

一、一點歷史

1976年以前,所有的加密方法都是同一種模式:

  (1)甲方選擇某一種加密規則,對信息進行加密;

  (2)乙方使用同一種規則,對信息進行解密。

由於加密和解密使用同樣規則(簡稱"密鑰"),這被稱爲"對稱加密算法"。

這種加密模式有一個最大弱點:甲方必須把加密規則告訴乙方,否則無法解密。保存和傳遞密鑰,就成了最頭疼的問題。

1976年,兩位美國計算機學家Whitfield Diffie 和 Martin Hellman,提出了一種嶄新構思,可以在不直接傳遞密鑰的情況下,完成解密。

這被稱爲"Diffie-Hellman密鑰交換算法"。這個算法啓發了其他科學家。人們認識到,加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關係即可,這樣就避免了直接傳遞密鑰。

這種新的加密模式被稱爲"非對稱加密算法"。

  (1)乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。

  (2)甲方獲取乙方的公鑰,然後用它對信息加密。

  (3)乙方得到加密後的信息,用私鑰解密。

如果公鑰加密的信息只有私鑰解得開,那麼只要私鑰不泄漏,通信就是安全的

1977年,三位數學家Rivest、Shamir 和 Adleman 設計了一種算法,可以實現非對稱加密。這種算法用他們三個人的名字命名,叫做RSA算法。

從那時直到現在,RSA算法一直是最廣爲使用的"非對稱加密算法"。毫不誇張地說,只要有計算機網絡的地方,就有RSA算法。

這種算法非常可靠,密鑰越長,它就越難破解。根據已經披露的文獻,目前被破解的最長RSA密鑰是768個二進制位。也就是說,長度超過768位的密鑰,還無法破解(至少沒人公開宣佈)。

因此可以認爲,1024位的RSA密鑰基本安全,2048位的密鑰極其安全。

有了這些知識,我們就可以看懂RSA算法。這是目前地球上最重要的加密算法

公鑰加密私鑰可解密,私鑰加密公鑰可解密。

二、舉個栗子:

假如大漂亮要給大帥寫信,大帥要收信,這個事情中有四點要注意: 1.內容不能被其他人看到 2.內容不能被其他人修改 3.怎麼證明是大漂亮寫的信 4.其他人收到這封信怎麼辦
答1.需要加密。 使用對稱加密不安全,因爲加密規則暴露出去容易被黑客攻擊,所以使用非對稱加密。
答2.使用HASH函數。 大漂亮在寫信完成後使用大帥的公鑰對內容進行加密,然後對加密後的內容使用HASH算法得出摘要,再將摘要使用大漂亮的私鑰進行加密得到數字簽名。
答3.大漂亮找到權威的認證機構,提供她的公鑰和其他個人信息,認證機構使用機構自己的私鑰將大漂亮提供的信息加密後得到一個數字證書。該證書中包含大漂亮的公鑰和個人信息。
答4.其他人收到信也不知道大帥的私鑰,所以也解不出明文內容。

 

寫信流程:大漂亮在寫信完成後使用大帥的公鑰對內容進行加密,然後對加密後的內容使用HASH算法得出摘要,再將摘要使用大漂亮的私鑰進行加密得到數字簽名(signature)。郵信時附帶着數字簽名和數字證書。

收信流程:大帥收到信以後先使用認證機構的公鑰解密數字證書得到了寫信人的公鑰和個人信息,再通過寫信人的公鑰解密數字簽名得到內容的摘要(digest),再將信內容使用HASH函數計算得到摘要,

將兩個摘要對比是否一致判斷信內容是否被修改過。最後通過自己的私鑰將信內容解密出來。

摘自:

https://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

https://zhuanlan.zhihu.com/p/31477508

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章