Aes

Blowfish:用於 s-box 的 pi 的十六進制數字?

  • November 8, 2012

前言:這裡是 Blowfish 算法的官方網站:

http://www.schneier.com/blowfish.html

Blowfish 算法使用一個 s-box,它由 pi 的十六進制數字組成(可在此處找到:http ://www.schneier.com/code/constants.txt )。我猜這個 s-box 的用途與 AES 中的 s-box 非常相似(對嗎?)

但是,在該文件的底部,有一個較小的框,稱為 p_array 或 parray 或其他東西。我不知道它做了什麼!此外,為什麼使用 pi 的十六進制數字而不是一些隨機值是否有某種意義?

是的。Blowfish 的 S-box 的用途與 AES 的 S-box 類似。

P-array 用作密鑰計劃的一部分,以確保每一輪都是不同的(這有助於防止滑動攻擊和相關密鑰攻擊)。

我建議您閱讀Blowfish 的官方規範維基百科關於 Blowfish 的文章,以了解有關 Blowfish 設計原理的更多資訊。

使用 pi 的數字是“無所不能”的數字。

Bruce Schneier(算法設計者)想使用一個隨機數。對於 Blowfish,如果它是隨機的,你使用什麼數字基本上都沒有關係。然而,布魯斯也希望每個人都能看到,他並沒有以某種方式選擇一些非常特殊的數字來引入活板門。pi 的數字基本上是隨機的,不能被布魯斯控制。因此,他們為“無所事事”的號碼做出了標準選擇。

另請參閱如何在加密函式中選擇常量?和維基百科對我袖手旁觀的數字

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