Hash

散列到素數?

  • January 22, 2019

素數是否有一些可證明安全的散列函式?

說,一個函式 $ H: {0, 1}^* \rightarrow {e: e \in {0, 1}^\lambda \land e $ 是素數 $ } $

我之所以問,是因為有些結構只能用於素數(例如CL02 Strong-RSA Dynamic Accumulators)。

您可以將雜湊值用作確定性 CSPRNG 的種子,然後使用素數生成器也用於 RSA 密鑰對生成。請注意,質數的大小必須相對較高(128 位安全性為 1536 位,例如 3072 位的 RSA 密鑰)。

確定性 RSA 密鑰對生成的常見警告適用。例如,算法必須保持相同,否則會為相同的雜湊值計算不同的素值。

通常,生成質數的方法可在執行時附帶的數學或加密庫中單獨使用。例如,Java 有BigInteger(int bitLength, int certainty, Random rnd)建構子。

請注意,找到素數所需的時間事先是未知的。生成可能需要很長時間(在 Java 的情況下,也可能從 DRBG 中獲取荒謬的字節數 - 剛剛測試過)。

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