Rsa

驗證簽名所有者(不驗證實際文件)

  • September 12, 2014

用Java程式。

我有一個 RSA 密鑰對、一個文件和一個使用 SHA512WithRSA 使用 Java Signature 類創建的簽名。為了驗證簽名,當然,我需要提供

  • 公鑰,
  • 簽名,
  • 文件。

是否可以驗證簽名的所有者,僅使用:

  • 公鑰
  • 簽名

不。

一個 RSA 簽名只是一個單一的數字以某種方式編碼。數字代表 $ x^d $ , 在哪裡 $ x $ 是文件的填充雜湊,並且 $ d $ 私人指數。如果你知道公鑰 $ (m,e) $ , 你可以計算 $ x = (x^d)^e \mod m $ ,但沒有文件(或至少是它的雜湊),就沒有什麼可以與之比較來驗證任何東西。

您唯一可以檢查的是簽名是否與密鑰的大小匹配(例如兩個 2048 位)。如果不是,它顯然不是來自那個鍵,但就是這樣。

引用自:https://crypto.stackexchange.com/questions/19094