加密與簽名的區別


本文轉自: https://www.zhihu.com/question/27669212/answer/38037256

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

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

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

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

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

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

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

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

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

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