Hash

如何將數字轉換為素數?

  • July 3, 2020

我正在使用單向累加器,但我對密碼學並不了解。有沒有一種簡單的方法可以將數字(或其他)散列為素數?顯然,我希望它具有防撞功能,但這個項目很大,我一個人,我相信該領域的其他人會從那裡接手。此外,素數測試在 n 中是線性的還是什麼?謝謝

感謝您的回答,但我想我找到了更好的方法。

  1. 獲取輸入的雜湊值H(X) $ h(x) $ ,最好使用隨機預言近似
  2. 採樣區間[2ķH(X),2ķ(H(X)+1)] $ [2^kh(x), 2^k(h(x)+1)] $ 並且只選擇素數,對於它們中的每一個
  3. 使用通用散列函式對其進行散列F $ f $ 直到你發現F(p)=H(X) $ f(p)=h(x) $
  4. 寫入記憶體:H(X)=p $ H(x)=p $

完畢!


筆記:

  1. 隨機預言使衝突不可行
  2. 通用散列以高機率提供高密度的素數(那裡有一個定理,但原則是,對於給定的素數,我有多個散列輸出,因此其中一個是我的輸入的機率會增加。參見:Gennaro et al. - 沒有隨機預言機的安全雜湊和簽名簽名,引理 2)

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