加簽/驗簽、加密/解密、公鑰/私鑰


 
看了網上的很多資料,發現有些點沒有說到,也比較復雜,這里根據個人的理解,簡單描述,方便記憶。
 
先理解 公/私 鑰(yue)的意思:
私鑰,即  私人 的鑰匙,是唯一的,所以可以用來證明來源是特定的人
公鑰,即 公用 的鑰匙,我可以將它給很多人(公眾)。所以既然那么多人都知道,所以公鑰並不能證明來源一定是特定的人
 
在理解 加密、簽名 的作用:
   加密:用於防止信息外泄(泄露給不相關的人)
   簽名:用於確認身份(可以類比下信用卡上的簽名)
 
----> 到底誰 創建、擁有、使用 公/私 鑰(yue)(這里很多人會混淆,而且網上很少有人說明,但很重要)? <----
 
加簽/驗簽 為例:
  1. A 想 使用 我的服務,為了安全,我不希望 A 以外的人可以使用這些服務
     創建
      此時,我會要求 A 創建 一對 公私鑰,私鑰他自行保留(用於證明他自己的身份),公鑰給我(用於驗簽--驗證簽名)
     擁有
      此時  我擁有 A 的公鑰A 擁有自己的私鑰
     使用:
      A 請求 我的服務 時,使用私鑰簽名( 具體如何簽名,自行百度吧,這方面的內容真的很多
      我 收到請求后,用 A 給我的公鑰 驗簽,驗簽通過即證明的確是A發送的請求,驗證不通過當然是拒絕訪問
    
  2. 那如果 A 調用我的服務之后,需要我返回請求結果,但又要保證一定是我返回的請求結果呢?
     創建
      此時,我 創建 一對 公私鑰,私鑰自行保留(用於證明我的身份),公鑰給 A(用於驗簽--驗證簽名)
     擁有
      此時  我擁有 自己的私鑰A 擁有我的公鑰
     使用:
      我的返回結果 時,使用私鑰簽名
      A 收到請求結果后,用 我給A 的公鑰 驗簽,驗簽通過即證明的確是我返回的結果,驗證不通過當然是拒絕訪問
 
加密/解密
簽名保證了信息的來源可靠性,加密可以保證數據的安全性個人理解,在網絡上傳播消息,是可以通過各種手段攔截的,所以需要對數據進行加密
如果 A 要 和 B 進行通訊:
   在發送消息時:使用  對方的公鑰 進行加密;因為使用對方的公鑰加密,就只要對方的私鑰可以解密,也就是說不會有第三方可以解密內容。
     在接收信息時:使用 自己的私鑰 進行解密;
 
為什么不使用私鑰加密?
  因為使用私鑰加密之后,擁有公鑰的人都可以進行解密,那豈不是泄露了 A 和 B 之間的消息了?
 
 
感覺明白上面的問題,基本上都理解了。
 
本文參考不少資料,包括但不限於:
https://www.zhihu.com/question/25912483/answer/31656330
https://songlee24.github.io/2015/05/03/public-key-and-private-key/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM