Modular-Arithmetic

如果我採用 32 位數字 mod 8,ISAAC 的輸出是否仍然安全?

  • September 8, 2019

我正在使用 ISAAC 進行加密,但只需要一個 8 位數字。所以,如果我使用N mod 255,我假設輸出只是 255 個數字的隨機序列……但它仍然安全嗎?

我當然可以將要加密的 8 位數字複製到 32 位數字的前 8 位中,然後用隨機數填充其餘部分,然後用 32 位 ISAAC 輸出對其進行修改。

好吧,讓我們N mod 255從不將數字轉換為 8 位字節,而是一個沒有最高可能值的字節開始,255。您正在尋找N mod 256N and 255(某種已知的彙編技巧以更快地進行一些除法)。

現在,如果您的源在密碼學上是健全的,那麼從它切割的任何數量的比特都是健全的(除了可能會更快地碰撞)。但是,當切割不是 2 的冪的值時,情況並非如此!在您的範例中,假設我們將 8 位值 (0-255) 切割為您的N mod 255(0-254)。在這種情況下,我們將以相同的機率得到 1-254,但我們得到 0 的可能性是兩倍,而且我們永遠不會得到 255。這顯然會使您的數據出現偏差,這通常通過削減會導致這種情況的最後一個值來解決偏斜(在我的範例中,我們將拒絕 255 並再次繪製值)。

當然,以上所有內容都適用於您的 ISAAC 特定情況。

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