Hash
隨機 32 字節數字的 ECDSA 簽名與數字的散列
我正在開發一個涉及對作業系統生成的 32 字節隨機數進行簽名的應用程序。假設 RNG 按預期工作,對隨機數本身而不是隨機數的雜湊進行簽名是否安全?
我問是因為時間是一個問題,並且 - 如果可能的話 - 我想避免進行散列所需的幾毫秒。
謝謝!
是的,但您可能需要使用作業系統中的加密安全 RNG。否則簽名生成函式的輸入可能會在數學上聯繫起來,並且系統的安全性無法得到保證。使用 256 或更高的曲線當然是明智的,否則隨機數提供的安全性可能會降低。
除了壓縮輸入之外,散列還用於生成簽名生成函式的偽隨機輸入。它消除了輸入值之間的任何數學連結,因為加密雜湊函式是單向的。但是,使用足夠小的隨機/獨立值應該已經滿足這些要求。
作業系統生成隨機數可能比對單個輸入塊執行單個雜湊要慢得多。
從這個意義上說,您可以考慮使用 128 位數字而不是 256 位並對其執行完整的 ECDSA。您還可以考慮使用RFC 6979中指定的確定性 ECDSA 。這些更改可能比從 ECDSA 中刪除相對較快的雜湊產生更大的影響。而且您仍然可以按照標準啟動;ECDSA 的所有安全要求仍將得到滿足。