Rsa
驗證簽名所有者(不驗證實際文件)
用Java程式。
我有一個 RSA 密鑰對、一個文件和一個使用 SHA512WithRSA 使用 Java Signature 類創建的簽名。為了驗證簽名,當然,我需要提供
- 公鑰,
- 簽名,
- 文件。
是否可以驗證簽名的所有者,僅使用:
- 公鑰
- 簽名
不。
一個 RSA 簽名只是一個單一的數字,以某種方式編碼。數字代表 $ x^d $ , 在哪裡 $ x $ 是文件的填充雜湊,並且 $ d $ 私人指數。如果你知道公鑰 $ (m,e) $ , 你可以計算 $ x = (x^d)^e \mod m $ ,但沒有文件(或至少是它的雜湊),就沒有什麼可以與之比較來驗證任何東西。
您唯一可以檢查的是簽名是否與密鑰的大小匹配(例如兩個 2048 位)。如果不是,它顯然不是來自那個鍵,但就是這樣。