Encryption
消息摘要如何解密?
試圖讓我的頭腦圍繞數字簽名並遇到一個小障礙。我正在使用的書提供以下資訊
- 設備 A 散列消息以創建消息摘要
- 設備 A 使用設備 A 的私鑰加密摘要以創建簽名
- 設備 A 為消息添加簽名 設備 A 使用設備 B 的公鑰加密整個消息(包括簽名)
- 設備 A 向設備 B 發送消息
- 設備 B 使用設備 B 的私鑰解密消息
- 設備 B 將簽名從消息中分離出來
- 設備 B 使用設備 A 的公鑰解密簽名,得到消息摘要
- 設備 B 對消息進行雜湊處理以獲得消息摘要
- 如果創建的消息摘要設備B與解密的消息摘要設備相同,則該消息未被篡改
很好,但是設備 B 如何知道使用什麼散列算法來創建消息摘要?
首先,簽名不等於加密。它僅適用於某些加密系統,即使那樣也不是全部。
出於各種原因使用雜湊算法。其中之一是減少簽名的大小,因為摘要通常比消息本身小很多。
但是散列函式背後的主要密碼學原因是為了使可能的攻擊者無法強制他想要為其偽造簽名的消息具有某種屬性。
這有點技術性,但例如在 ElGamal 密碼系統中,如果您對消息本身進行簽名,那麼攻擊者就有可能在不知道密鑰的情況下生成有效簽名。但是,如果您對消息的雜湊進行簽名,則這是不可能的。
在典型的 PKI 系統中,雙方都需要知道某些系統參數。
這可以預先知道或在握手期間交換(例如 TLS)。一旦知道了這些細節,就可以按照所述協議進行操作