Encryption

我應該使用哪種加密方式:Blowfish、Twofish 或 Threefish?

  • January 2, 2021

這個執行緒的標題幾乎總結了我的問題:在這三種加密中使用什麼最好的加密——Blowfish、Twofish 或 Threefish?

TL;DR:Twofish 和 Threefish 都很好。

對要使用的密碼進行硬編碼並不是最好的主意,因為當其中一個密碼損壞時,您將無法輕鬆升級。在評論中引用 mikeazo:

您應該做的是開發您的應用程序,使其不受特定密碼的約束。

雙魚

1999 年,Niels Ferguson 發表了一種不可能的差分攻擊,它使用了 256 位密鑰版本的 16 輪破解了 6 輪 $ 2^{256} $ 腳步。

截至 2000 年,已發表的關於 Twofish 分組密碼的最佳密碼分析是完整的 16 輪版本的截斷差分密碼分析。該論文聲稱截斷差異的機率是 $ 2^{−57.3} $ 每個塊,大約需要 $ 2^{51} $ 選擇明文(價值 32 PB 的數據)來找到一對好的截斷差分。

Bruce Schneier 在 2005 年的一篇部落格文章中回應說,這篇論文並沒有提出完整的密碼分析攻擊,而只是提出了一些假設的差異特徵:“但即使從理論的角度來看,Twofish 甚至還沒有被遠端破解。這些結果沒有擴展自 2000 年出版以來。”

https://www.schneier.com/academic/twofish/

https://www.schneier.com/blog/archives/2005/11/twofish_cryptan.html

三魚

2010 年 10 月,發布了一種將旋轉密碼分析與反彈攻擊相結合的攻擊。該攻擊針對 Threefish-256 中 72 輪中的 53 輪和 Threefish-512 中 72 輪中的 57 輪安裝了一個已知密鑰區分器。它還會影響 Skein 散列函式。這是 2 月份發布的較早攻擊的後續行動,該攻擊分別打破了 39 輪和 42 輪。為了應對這種攻擊,Skein 團隊調整了 Threefish 中使用的旋轉常數,從而調整了 NIST 雜湊函式競賽第 3 輪的關鍵調度常數。

2009 年,發布了針對減少圓形三魚版本的相關關鍵迴旋鏢攻擊。對於 32 輪版本,時間複雜度為 $ 2^{226} $ 並且記憶體複雜度是 $ 2^{12} $ 對於 33 輪版本,時間複雜度為 $ 2^{352.17} $ 記憶體使用量可以忽略不計。這些攻擊也適用於調整版的 Threefish:對於 32 輪版本,時間複雜度為 $ 2^{222} $ 並且記憶體複雜度是 $ 2^{12} $ 對於 33 輪版本,時間複雜度為 $ 2^{355.5} $ 記憶體使用量可以忽略不計。

http://www.skein-hash.info/(Threefish的設計就是以此為基礎的)。

河豚

不過,在這一點上,我很驚訝它仍然被使用。如果有人問,我推薦 Twofish。— Bruce Schneier,Blowfish 的創造者,2007

旗魚

                        GABRIEL
             Here's the deal. I need a worm,
             Stanley. A hydra, actually. A
             multi-headed worm to break an
             encryption and then sniff out
             latent digital footprints
             throughout an encrypted network.

                           STANLEY
             What kind of cypher?

                           GABRIEL
             Vernam encryption.

                           STANLEY
             A Vernam's impossible. Its key
             code is destroyed upon
             implementation. Not to mention
             being a true 128 bit encryption.

                           GABRIEL
             Actually, we're talking 512 bit.

資源

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