1. 程式人生 > >數字簽名原理

數字簽名原理

數字簽名是非對稱加密演算法與數字摘要技術的應用,數字摘要驗證了原文是否被篡改、公鑰私鑰保證了數字摘要的安全性,兩者配合使用安全性高,速度快。

   非對稱金鑰加密: RSA 、ECC等,依賴金鑰長度來提高安全性,

   數字摘要:將任意長度的訊息變成固定長度的短訊息,常用的加密演算法包括 HASH (MD5、SHA1、SHA256)、HMAC(HmacMD5/HmacSHA1/HmacSHA256)等。

 

數字簽名過程:

環境:A 的公鑰公開,私鑰保密 ,A 和 B 都使用同樣的摘要演算法 HASH。

•  A 給 B 傳送一段資料data,首先 A 使用 HASH 演算法生成 data 的數字摘要 digestA,然後利用A的私鑰對數字摘要 digestA 進行加密生成 digestEncodeA ,然後將 data 和 digestEncodeA 一起傳送給B。

•  B 收到 A 發過來的 data 和 digestEncodeA 以後,首先使用 HASH 演算法生成 data 的數字摘要 digestB ,然後用 A 的公鑰對 digestEncodeA 進行解密得到數字摘要 digestDecodeB,然後如果 digestB = digestDecodeB ,那麼標明 data 是由 A 傳送過來的 ,否則不是。