Cryptanalysis

如果省略 S-boxes 替換,AES-CTR 安全性?

  • October 9, 2020

我理解為什麼通常需要 S-box,尤其是在ECB使用模式時(因為使用相同的密鑰來加密其他塊)但我想知道如果我們在這些情況下省略 S-box 替換步驟是否仍然相對安全

  • 使用AES-CTR模式確保具有相同塊的相同密鑰將加密為不同的密文
  • 如果我們選擇一個總隨機密鑰

我在問,因為這種方式似乎就像我們以與一次性填充加密類似的方式(不完全是)加密,因為加密的結果(將與明文進行 x-ored)將是隨機的。我知道使用 S-box 會增加安全性,但這種方式對於非絕密文件來說很好,所以我們可以為嵌入式設備獲得一些額外的性能,而不會犧牲太多的安全性,以及什麼樣的攻擊可以使用。

Sbox 是 AES 或類似分組密碼安全性的必要條件,但可能還不夠。我們可以將所有 AES 操作在高層次上列出為

  • SubBytes –一個非線性替換步驟,其中每個字節根據查找表被另一個字節替換。
  • ShiftRows – 一個轉置步驟,其中狀態的最後三行循環移動一定數量的步驟。
  • MixColumns – 一種線性混合操作,對狀態的列進行操作,將每列中的四個字節組合在一起。
  • 加圓鍵

想知道如果我們在這些情況下省略 S-boxes 替換步驟是否仍然相對安全

如果省略SubBytes,那麼新的 AES 密碼將是一個完全線性的密碼。這對於分組密碼來說是完全失敗的。當攻擊者在簡單攻擊中獲得已知明文時,他們將為任何 AES 建立總共 128 個線性方程。如果方程沒有線性相關性,那麼他們可以用一個已知的明文對來求解 AES-128。

您的設計沒有 KPA 安全性,在現代密碼學中,我們至少需要 CPA 安全性。

使用 AES-CTR 模式確保具有相同塊的相同密鑰將加密為不同的密文

我有兩種理解。

  1. 您為每個塊使用一個新密鑰。這是沒用的。

  2. 一個人使用這麼多密鑰來加密消息

  3. 取而代之的是,將 OTP 與有其他問題的密鑰一起使用。

  4. 需要一次又一次地執行關鍵計劃

  5. 使用一鍵

  6. KPA 攻擊可以打破這一點。

這種方式看起來就像我們以類似的方式(不完全是)加密,就像一次性加密一樣,因為加密的結果(將與明文進行 x-ored)將是隨機的。

不是真正隨機的,線性取決於密鑰。

取而代之的是,在現代密碼學中,我們將 PRF 或 PRP 轉換為類似 CTR 模式的流密碼。PFR 可以工作,因為 CTR 模式不需要 PRF 的反向。這樣我們就可以長時間使用一鍵一鍵調度。AES-CTR 或 ChaCha 就是其中的例子。AES 被認為是 PRP,但未被證明是 PRP。和。請記住,對於 CTR 模式,不應再次使用 key-IV 對。

對於文件加密,最好使用 AES-GCM 或 ChaCha20-Poly1305,它們也提供完整性和身份驗證。由於英特爾的 AES-NI 等硬體支持,AES-GCM 更快。我的機器對 AES-128 NI 的打擊

openssl speed -elapsed -evp aes-128-ctr
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     556160.77k  1822893.03k  3765397.08k  5115820.71k  5694253.74k  5739358.89k

如果有對 ChaCha 和 Poly1305 的硬體支持,它可以擊敗 AES。

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