簽名和加密的區別(詳細)

數據簽名和數據加密的過程都是使用公開的密鑰系統,但實現的過程正好相反,安全

數據加密使用的是接受方的密鑰對,任何知道接受方公鑰的均可以向接受方發送消息,可是隻有擁有私鑰的才能解密出來;加密

數據簽名使用的是發送方的密鑰對,任何接受方均可以用公鑰解密,驗證數據的正確性。.net

一句話總結:blog

數據加密保證了數據接受方的數據安全性。im

數據簽名保證了數據發送方的數據安全性。總結

就拿A給B發送通過簽名加密信息來講:
一、A對信息簽名的做用是確認這個信息是A發出的,不是別人發出的;
二、加密是對內容進行機密性保護,主要是保證信息內容不會被其餘人獲取,只有B能夠獲取。

也就是保證整個過程的端到端的惟一肯定性,這個信息是A發出的(不是別人),且是發給B的,只有B才被得到具體內容(別人就算截獲信息也不能得到具體內容)。

這只是大概說了做用,具體說來,涉及到密鑰相關的東西。密鑰有公鑰和私鑰之分。

那麼這裏一共有兩組四個密鑰:A的公鑰(PUB_A),A的私鑰(PRI_A);B的公鑰(PUB_B),B的私鑰(PRI_B)。

公鑰通常用來加密,私鑰用來簽名。

一般公鑰是公開出去的,可是私鑰只能本身私密持有。

公鑰和私鑰惟一對應,用某個公鑰簽名過得內容只能用對應的私鑰才能解籤驗證;一樣用某個私鑰加密的內容只能用對應的公鑰才能解密。

這時A向B發送信息的整個簽名和加密的過程以下:
一、A先用本身的私鑰(PRI_A)對信息(通常是信息的摘要)進行簽名。
二、A接着使用B的公鑰(PUB_B)對信息內容和簽名信息進行加密。

這樣當B接收到A的信息後,獲取信息內容的步驟以下:
一、用本身的私鑰(PRI_B)解密A用B的公鑰(PUB_B)加密的內容;
二、獲得解密後的明文後用A的公鑰(PUB_A)解籤A用A本身的私鑰(PRI_A)的簽名。

從而整個過程就保證了開始說的端到端的惟一確認。A的簽名只有A的公鑰才能解籤,這樣B就能確認這個信息是A發來的;A的加密只有B的私鑰才能解密,這樣A就能確認這份信息只能被B讀取。數據


原文:https://blog.csdn.net/simonchi/article/details/38531971

解密

相關文章
相關標籤/搜索