簽名驗籤與加密解密

簽名 / 驗籤

解決了網路通訊中的完整性、身份認證與抗抵賴性的問題,不能解決保密性問題

  • 簽名:
  1. 原文m 經Hash運算得到 數字摘要h ,然後再由私鑰進行加密,得到 密文s
  2. 密文s是客戶端生成的,客戶端會把s和m一起發給服務端

(由於發送了原文m,所以不能保證保密性)

(如果m是在SSL保密通道中傳輸,則可以解決保密性問題)

【需要注意的是,單純的簽名/驗籤是可以保密,因爲被簽名的是經過Hash運算後的原文,不是直接在原文上簽名,所以經過驗籤是得不到原文的,但是在實際應用時是需要的原文的,所以纔會把原文和簽名一起發過去】

  • 驗籤:

服務端接到m和s後,取出m做Hash運算,得到h1,然後拿s用公鑰進行解密,得到h2,最後對比h1和h2

如果相等,說明m和s都沒有被篡改過,即解決了完整性問題

如果客戶端C是用C私鑰加密,服務端S用C公鑰解開了,那C端就不能否認這件事,即解決了身份驗證與抗抵賴問題

注意:

一個簽名/驗簽過程,簽名方需要維護自己的私鑰,驗籤方需要維護對方的公鑰

而且因爲驗籤方是服務方,所以使用的私鑰/公鑰是由驗籤方提供的或是按驗籤方的要求去申請的(服務端發放數字證書)


加密 / 解密:解決了保密性問題(公鑰加密)

  1. 客戶端的明文m,通過公鑰進行加密運算,得到密文c,把密文c傳遞給服務端
  2. 服務端接收到密文c,通過對應的私鑰進行解密運算,得到原文m

   如登錄網站的安全插件:實際上插件裏面有服務端的公鑰,用來加密輸入的密碼


總結:

  1. 簽名 / 驗籤場景:私鑰簽名,公鑰驗籤(誰都可以驗籤,不保密)
  2. 加密 / 解密場景:公鑰加密,私鑰解密(信息保密)

公鑰(.cer文件,base64加密的)與私鑰(.pfx文件)一一對應的,稱爲非對稱密鑰。

公鑰用來加密信息,只有對應的私鑰可以解密;

私鑰用來做簽名,只有對應的公鑰才能驗籤。

公鑰:是公開的,誰都可以拿到,用來加密(2048比特,256字節),公鑰由對方維護

私鑰:私人的,其他人拿不到,類似身份證、ID,用來做解密,誰的私鑰誰維護

 

 

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