RSA加密 解密和簽名 驗籤過程理解

2021-08-21 19:03:25 字數 993 閱讀 4774

這裡將a理解為客戶端,b理解為服務端,可以比較好理解.

a和b進行通訊加密,b要先生成一對rsa金鑰,b自己持有私鑰,給a公鑰 --->a使用b的公鑰加密要傳送的內容,然後b接收到密文後通過自己的私鑰解密內容

a給b傳送訊息,a先計算出訊息的訊息摘要,然後使用自己的私鑰加密訊息摘要,被加密的訊息摘要就是簽名.(a用自己的私鑰給訊息摘要加密成為簽名)

b收到訊息後,也會使用和a相同的方法提取訊息摘要,然後用a的公鑰解密簽名,並與自己計算出來的訊息摘要進行比較-->如果相同則說明訊息是a傳送給b的,同時,a也無法否認自己傳送訊息給b的事實.(b使用a的公鑰解密簽名檔案的過程,叫做"驗籤").

數字簽名的作用:保證資料完整性,機密性和傳送方角色的不可抵賴性

加密與簽字結合時,兩套公私鑰是不同的

對簽名和驗籤過程詳細理解:

1. a計算訊息m的訊息摘要,記為 h(m)

2. a使用私鑰(n,d)對h(m)加密,生成簽名s, s滿足:s=(h(m))^d mod n; 由於a是用自己的私鑰對訊息摘要加密,所以只用使用s的公鑰才能解密該訊息摘要,這樣a就不可否認自己傳送了該訊息給b

3. a傳送訊息和簽名(m,s)給b

1. b計算訊息m的訊息摘要(計算方式和a相同),記為h(m)

2. b使用a的公鑰(n,e)解密s,得到 h(m), h(m) = s^e mod n

3. b比較h(m)與h(m),相同才能證明驗籤成功

a->b:

1. a提取訊息m的訊息摘要h(m),並使用自己的私鑰對摘要h(m)進行加密,生成簽名s

2. a將簽名s和訊息m一起,使用b的公鑰進行加密,生成密文c,傳送給b

b:1. b接收到密文c,使用自己的私鑰解密c得到明文m和數字簽名s

2. b使用a的公鑰解密數字簽名s解密得到h(m)

3. b使用相同的方法提取訊息m的訊息摘要h(m)

4. b比較兩個訊息摘要。相同則驗證成功;不同則驗證失敗

加密解密 簽名驗籤

幾個基本概念 加密 傳送方利用接收方的公鑰對要傳送的明文進行加密。解密 接受方利用自己的私鑰進行解密。公鑰和私鑰配對的,用公鑰加密的檔案,只有對應的私鑰才能解密。當然也可以反過來,用私鑰加密,用對應的公鑰進行解密。簽名 傳送方用乙個雜湊函式從報文文字中生成報文摘要,然後用自己的私人金鑰對這個摘要進行...

數字簽名和驗籤過程實現分析

數字簽名在網路安全領域用的比較多,可實現使用者身份的真實可靠性 實現資訊的完整性,確保資料在儲存 傳輸和處理的過程中免遭任何非授權的或非預期的修改 插入 刪除 重發等破壞,從而實現資料的真實性 有效性和一致性 實現抗抵賴性,通過數字簽名確保資訊的傳送方不能抵賴曾經傳送的資訊,不能否認自己的操作行為。...

RSA 加密 解密 加簽 驗籤

1.公鑰與私鑰碼生成 2.獲取公鑰 獲取公鑰 return private publickey getpublickey catch exception e 獲取私鑰 獲取私鑰 return private privatekey getprivatekey catch exception e bas...