Random-Number-Generator

從均勻分佈中採樣的最快算法是什麼?

  • August 24, 2021

許多密碼算法依賴於偽隨機數生成器。有時,給定一個明文,您需要從中生成一個偽隨機數。有哪些快速算法可以做到這一點?

我見過一個使用 SHA256 和另一個使用 AES,但我找不到任何關於它們的文獻或我可以使用的一些實現。它們應該很快,因為現在的處理器對它們有硬體支持。

在本文的第 8 頁:dl.acm.org/doi/10.1145/2808425.2808431它說

在此處輸入圖像描述

將任意消息轉換為偽隨機數本質上是計算加密雜湊。

所以這個問題似乎在問什麼是最快的安全加密雜湊?

目前尚不清楚您對此雜湊有什麼安全要求,一些算法非常簡單並且在密碼學上不安全,但在沒有對手時仍然提供有用的摘要。例如,CRC 可以非常快。

其他算法將提供預映像和第二預映像抗性但不提供抗碰撞性,例如 MD5 或 SHA1

今天,一些算法被認為通常是安全的,並且還提供抗碰撞性,並且通常被建模為偽隨機函式。例如 SHA-3。

以下是一些比較加密原語的基準 https://www.cryptopp.com/benchmarks.html 和不同的比較(不同的設置和不同的指標): https ://medium.com/logos-network/benchmarking-hash-and-簽名算法 6079735ce05

後者選擇 blake2 作為最快的散列函式,它被認為對於任何需要安全散列函式的目的都是安全的,即使它沒有像標準化的 SHA2 或 SHA3 系列那樣廣泛使用。(注意 Blake2 有幾個變體)。 在此處輸入圖像描述

第一個連結的 MD5 非常快,為 6.8 cpu 週期/字節,非常非常快。並且對於許多目的來說仍然是安全的,但有些人使用“破碎”雜湊函式會感到不舒服。

對於大多數用途,您不需要最快的雜湊算法,您需要足夠快的雜湊,並且任何標準的良好實現都應該足夠快。沒有人因為選擇 SHA-3 而被解僱。

警告:我是新手

**TL;博士。**最快的預共享密鑰加密算法,包含最快的 CSPRNG(它只是添加了它對它的 XOR 輸入)。您可能只想修改一個,使其忽略輸入(例如,不會對輸入進行異或,因為我們不想加密)。


假設您詢問加密安全 PRNG:

  • 如果您想要幾乎無限循環,請選擇最快的預共享加密算法。我認為這是他們的基本設計目標:找到最快的種子 CSPRNG,然後對它進行 XOR 明文。畢竟,當明文與一些均勻分佈的數據(即一次性密碼)進行異或運算時,完美的保密性就出現了。預共享加密算法只是旨在使用種子方法(種子是密鑰,CSPRNG 的狀態是隨機數)生成這個 pad。
  • 如果您可以接受有限的周期,那麼您需要修改最快的預共享加密算法以減少工作量(例如更小的塊大小)。
  • 為此目的忽略散列函式,因為它們旨在解決更大的問題:壓縮,這會使它們變慢。

壓縮意味著輸入可能比輸出大得多,但散列函式應該確保輸入的每一位都在輸出的每一位中表示。這迫使函式更加努力地工作以確保這種依賴性。

我什至認為,如果可以神奇地使用安全散列函式,以某種方式返回其輸入,那麼 $ n $ 該雜湊的位串將擊敗最佳有損數據壓縮 $ n $ 位輸出。

另一方面,預共享加密算法不會面臨這個更難的挑戰,因為輸出保證至少與輸入一樣大。

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