公钥、私钥和证书
理解公鑰和私鑰首先要區分加密和認證這兩個概念!
加密和認證
加密是將數據資料加密,使別人即使獲取加密數據,也無法獲取正確的資料內容,重點在于數據的安全性。
認證是是確定數據的真實發送方,使別人無法偽造或冒充,重點在于用戶的真實性。
公鑰和私鑰
公鑰和私鑰通常稱非對稱加密(又稱 不對稱加密)
使用公鑰和私鑰的目的是為了安全的數據傳輸,必須實現如下目的:
發送方將數據加密,在數據傳輸過程中不能被別人看到真實數據內容
接收方能確定數據是發送方發送的數據,不是別人冒充。
首先解釋公鑰和私鑰的意義和作用:
公鑰:是公布出去給別人用的,可以被很多人獲取。用來加密和驗簽
私鑰:只能自己持有,并且不可以被其他人知道,用來解密和簽名
公鑰和私鑰的作用:公鑰加密私鑰解密數據,私鑰加密公鑰解密。
公鑰和私鑰有以下原則:(密鑰包括公鑰和私鑰)
一個公鑰對應一個私鑰
密鑰對中,讓大家都知道的是公鑰,自己知道是私鑰
如果用其中一個密鑰加密數據,則只有對應的那個密鑰才能解密
如果用其中一個密鑰可以進行解密數據,則該數據必然由對應密鑰進行加密
要達到數據安全傳輸的目的,必須發送方和接收方都持有對方的公鑰和自己私鑰,即任意一方持有自己的私鑰和對方的公鑰。
為了數據的安全性,A需要使用B的公鑰來給數據加密,這樣只有B的私鑰才可以解密數據,這樣保證了數據的安全性,這是數字簽名。
為了保證數據發送方的真實性,A需要使用自己的私鑰來個數據加密,這樣其他人用A的公鑰進行解密,由于只有A私鑰加密的數據,A的公鑰才能解密,所以他人用A的公鑰若能解密此數據,則證實數據是由A發送的,若不能解密,則證明數據不是用A的私鑰加密,即不是A發送的,這樣保證了送法的真實性。
證書:
證書是為公鑰做認證,為了使公鑰真實可信,防止他人偽造公鑰;證書頒發 機構(證書中心CA)會用自己的私鑰對用戶的公鑰和相關信息進行加密,生成”數字證書“,然后證書中心會公布自己的公鑰給所有人,用來讓用戶使用此公鑰驗證”數字證書“是否由CA頒發,即是否真實可信,產生證書的場景:
A給B發信息:
首先A用Hash函數對要發送的數據實體生成摘要(digest),這個過程是不可逆。
A使用自己的私鑰對這個摘要進行加密,生成數字簽名(signature),并將此簽名連同要發送的數據實體一起發送給B.
B收到A發送過的數據后,首先用A的公鑰數字簽名進行解密,得到摘要,從而證明數據確實來自A,因為只有A有私鑰。
B再對接收到的數據實體進行Hash函數,如果得到的結果和上一步摘要一致,則證明數據實體沒有被篡改過。
如上,如果C偷偷將B持有的A公鑰換成自己的公鑰,而B不知道公鑰已被替換,那么以后C就可以使用冒充A給B發送信息,而B相信此信息來自A。
為了解決這一問題,需要對B持有的A公鑰做認證,從而確定此公鑰確實是A的公鑰,而不是其他人篡改過的!而認證機構必須是第三方可信賴的機構,就是CA,由此發送過程就變成如下:
A發給B數據的時候,除了要發送簽名和數據實體,還要發送CA頒發的證書。
B接收到A發送過來的數據后,首先用CA的公鑰區解密證書,如果能解,表明這個證書里的信息可信賴,從而得到證書里A的公鑰,然后B再用到后的公鑰去做下一步動作。
注意:
以上前提必須是CA是可信賴的,CA證書是不可偽造的!
上邊A給B發送數據只實現了身份確認,數據未被修改過,但是沒有保證數據是安全的,即數據傳輸的過程中可以被第三人看到數據內容,要想實現安全的數據傳輸,A還要做進一步工作,即用B的公鑰給數據加密,這樣只有B才可以解密,從而保證了數據的安全性。
由上再次總結:
證書分為公鑰證書和私鑰證書,每個人的公鑰,私鑰證書不一樣,但是肯定是一一對應的。
加密技術:公鑰證書加密,私鑰證書解密
簽名技術:私鑰證書加密,公鑰證書解密
對于一方來說,持有對方公鑰(即證書,因為公鑰放在證書里),就可以驗證對方身份,并且保證發送給對方數據的安全性。對方對己方要想做到這一點,則要持有己方的公鑰,即:
加密和簽名技術相結合才能實現,機密性,完整性,不可否認性。
證書是未了保證密鑰的真實性!沒有證書,談不上非對稱加密。
————————————————
版權聲明:本文為CSDN博主「1加一」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_25933249/article/details/100065093
總結
- 上一篇: usb传输标准和接口标准
- 下一篇: 机器人建图