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

轉載請保留來源:http://www.cnblogs.com/iceJava/p/7603706.html 

 

看了網上的很多資料,發現有些點沒有說到,也比較複雜,這裏根據個人的理解,簡單描述,方便記憶。

 

先理解 公/私 鑰(yue)的意思:

私鑰,即 私人 的鑰匙,是唯一的,所以可以用來證明來源是特定的人

公鑰,即 公用 的鑰匙,我可以將它給很多人(公衆)。所以既然那麼多人都知道,所以公鑰並不能證明來源一定是特定的人

 

在理解 加密、簽名 的作用:

  加密:用於防止信息外泄(泄露給不相關的人)

  簽名:用於確認身份(可以類比下信用卡上的簽名)

 

----> 到底誰 創建、擁有、使用 公/私 鑰(yue)(這裏很多人會混淆,而且網上很少有人說明,但很重要)? <----

 

以 加簽/驗籤 爲例:

  1. A 想 使用 我的服務,爲了安全,我不希望 A 以外的人可以使用這些服務

    創建

      此時,我會要求 A 創建 一對 公私鑰,私鑰他自行保留(用於證明他自己的身份),公鑰給我(用於驗籤--驗證簽名)

    擁有

      此時 我擁有 A 的公鑰A 擁有自己的私鑰

    使用:

      A 請求 我的服務 時,使用私鑰簽名(具體如何簽名,自行百度吧,這方面的內容真的很多)

      我 收到請求後,用 A 給我的公鑰 驗籤,驗籤通過即證明的確是A發送的請求,驗證不通過當然是拒絕訪問

    

  2. 那如果 A 調用我的服務之後,需要我返回請求結果,但又要保證一定是我返回的請求結果呢?

    創建

      此時,我 創建 一對 公私鑰,私鑰自行保留(用於證明我的身份),公鑰給 A(用於驗籤--驗證簽名)

    擁有

      此時 我擁有 自己的私鑰A 擁有我的公鑰

    使用:

      我的返回結果 時,使用私鑰簽名

      A 收到請求結果後,用 我給A 的公鑰 驗籤,驗籤通過即證明的確是我返回的結果,驗證不通過當然是拒絕訪問

 

加密/解密

簽名保證了信息的來源可靠性,加密可以保證數據的安全性(個人理解,在網絡上傳播消息,是可以通過各種手段攔截的,所以需要對數據進行加密)

如果 A 要 和 B 進行通訊:

   在發送消息時:使用 對方的公鑰 進行加密;因爲使用對方的公鑰加密,就只要對方的私鑰可以解密,也就是說不會有第三方可以解密內容。

     在接收信息時:使用 自己的私鑰 進行解密;

 

爲什麼不使用私鑰加密?

  因爲使用私鑰加密之後,擁有公鑰的人都可以進行解密,那豈不是泄露了 A 和 B 之間的消息了?

 

 

感覺明白上面的問題,基本上都理解了。

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