Encryption

一次性使用的雪崩雜訊 RNG

  • April 2, 2017

我遇到了這個小的 HRNG 小元件,並且真的很感興趣,因為我一直在尋找一個體面但價格合理的資源,以便在一次性便箋簿中使用真正的隨機比特。

問題是,像這樣的 HRNG 是否會生成具有足夠隨機性的位來提供眾所周知的完美保密一次性密碼?這樣的設計當然比使用衰變放射性材料的量子 RNG 的隨機性略低,但輸出的隨機性是否足以值得依賴?

如果是,將輸出位與明文進行異或就足夠了嗎?

足夠的隨機性

Whirlygig RNG - 以及其他一些類似的低成本硬體隨機數生成器a b - 已經發布了原理圖。

是的,這樣的硬體隨機數生成器提供了足夠的隨機性來生成一次性填充。這個 Simtec 的“熵密鑰”似乎很有可能也同樣有效,儘管如果不看它的示意圖就很難說。

在這樣的系統中,通常內部產生的原始數據樣本有輕微偏差,但係統使用“白化”算法(又名“隨機提取器”又名“去相關器”),該算法採用大塊的這種輕微偏差位並產生小塊完全不相關的位(“高質量隨機性”)。

Whirlygig RNG 產生超過 500 KB/s 的高質量隨機性。雖然在商用台式機上執行的偽隨機數生成器執行速度要快很多倍,但我發現很難想像 500 KBytes/s 的任何高質量隨機數應用程序“太慢”。

使用正確實施的隨機性提取器,只要 HRNG 在物理上安全的房間內,大多數可以想像的“攻擊”(空中電磁干擾、電力線電磁干擾等)最壞的情況只是緩慢降低產生高質量隨機比特的速率;它們不會降低所生產的任何比特的質量。(隨機提取器會自動補償內部原始數據樣本質量下降的情況,剔除“可疑”樣本)。

消息認證

正如 Thomas 指出的,在 OTP 之上的 MAC 是一個好主意。

只要我們先加密然後 MAC - 正如 我們應該 MAC-then-encrypt 還是 encrypt-then-MAC?– 密文仍然具有完美的保密性:密文可以潛在地解碼為任何可能的明文,即使在 MAC 的幫助下,也不可能排除任何可能的相同長度的明文。

快速證明:

Say Eve 獲得了 Alice 使用一次性密碼算法生成的密文 C 塊。如果 Eve 不知道用於生成它的 OTP 塊 R,則密文 C可能由任何可以想像的明文生成——也許消息 P1 與 R1 == P1 xor C 結合;或者消息 P2 與 R2 == P2 xor C 結合;或等等。

然後,Say Eve 使用 encrypt-then-MAC 系統獲得 Alice 從該密文和 Alice 的 MAC 密鑰生成的 MAC 標籤。

對於這些潛在消息 P1、P2 等中的任何一個,由於密文 C 相同,並且 MAC 密鑰相同,因此 MAC 算法在所有情況下都會生成相同的 MAC 標籤,因此 MAC 標籤為Eve 無法區分 Alice 試圖發送的特定消息。即使 Eve 以某種方式獲得了 MAC 密鑰(這在其他方面對 Alice 不利),在沒有更多資訊的情況下,Eve 仍然無法縮小 Alice 試圖發送的明文消息的範圍。

異或

將輸出位與明文進行異或就足夠了嗎?

是的,對於 OTP 的簡單部分 - 加密 - 只需將明文位與高質量隨機位進行異或運算即可。

實現 OTP的更困難的部分仍然存在:以某種方式傳輸高質量的隨機位,以便 Alice 和 Bob(但沒有其他人)擁有 OTP 密鑰的副本。不知何故,在使用每個密鑰塊的唯一一次使用後,立即安全地擦除每個密鑰塊。等等。

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