1、場景
傳送方 a 需要給 b 傳送一條訊息,為了保證資料的完整性,a 在訊息的後面新增該訊息的 hash 值。
問題:由於訊息是明文的,中間人可以截獲該訊息並生成新訊息的 hash 發給 b。
為了解決上述問題,有如下方案:
(1)這條訊息用 a 和 b 共享的金鑰進行對稱加密。
(2)hash 值用 a 和 b 共享的金鑰進行對稱加密。
(3)計算 hash 值時加入 a 和 b 共享的秘密值 s 。
2、數字簽名
將上述方法(2)中加密 hash 值用的共享金鑰換成 a 的私鑰,即:a 使用自己的私鑰對 hash 值進行非對稱加密,這樣的 hash 值就是數字簽名了。因為該 hash 值被 a 私鑰加密了,只有 a 有私鑰,就像 a 的簽名一樣。上述過程就是數字簽名技術的本質所在。
如果在數字簽名的基礎上,再加入上述方案中的(1),則既實現了對訊息本身的保密性又實現了數字簽名。
3、總結
保密性數字簽名的步驟如下:
(1)對訊息 hash,並將該值放入訊息後面。
(2)用傳送者的私鑰對 hash 值進行非對稱加密,生成數字簽名。
(3)用共享金鑰對訊息和數字簽名進行對稱加密。
(完)
Lauren與密碼學9,數字簽名
lauren 我思考了一下,採用訊息認證碼的手套訂單還是有問題。客戶生成訂單,計算hash值,並且給hash值加密。這樣防止了篡改和別人偽造,但是因為密碼是在工廠與客戶之間共享的。客戶和工廠都有生成一模一樣訂單的能力。客戶否認說我沒有發過這個訂單,是工廠自己偽造的訂單。技術上來講,訊息認證碼沒有辦法...
密碼學系列 數字簽名
什麼是數字簽名呢?數字簽名其實是訊息摘要和非對稱加密的一起應用。數字簽名是怎麼來的呢?在非對稱加解密中,公鑰方對私鑰方傳送訊息,只需要公鑰方用公鑰加密即可,因為私鑰只有一人持有。那麼私鑰方給公鑰方傳送資料是否可以用私鑰傳送即可呢?當然可以的啊。但是又乙個問題就是私鑰加密後,所有的公鑰都可以解開,那麼...
什麼是數字簽名
翻譯 吳裕華 原文 1 bob 有兩把秘鑰,一把公鑰,一把私鑰 2 bob 可以把公鑰分析給他的同事pat doug susan,但是自己儲存私鑰。而加密後的資料只能匹配的秘鑰才能開啟。任何一把 bob 的秘鑰都可以用於加密資料,同時則必須使用另一把秘鈅來進行解密。3 susan 可以用 bob 分...