Block-Cipher

帶有 PRF 的確定性計數器模式。在某一點上評估是什麼意思?

  • December 10, 2020

這是來自 Dan Boneh 的演講,他在演講中談到了在確定性計數器模式下操作 PRF(AES、DES)。

在此處輸入圖像描述

丹·博內 說

我們可以做的是我們可以使用所謂的確定性計數器模式。所以在確定性計數器模式下,基本上我們從分組密碼中建構了一個流密碼。所以假設我們有一個 PRF,F。所以當我這麼說時,你應該再次想到 AES。所以AES也是一種安全的PRF。我們要做的是,基本上,我們將在點零、點一、點二、直到點 L 處評估 AES。這將生成一個偽隨機填充。我將對所有消息塊進行異或運算,從而恢復密文。好的,這實際上只是一個由 PRF 建構的流密碼,如 AES 和三重 DES,它是一種簡單的加密方法。

他所說的“在第 0 點,第 1 點進行評估”等到底是什麼意思?

他的意思是使用 AES 加密數字 0、1、2 等嗎?

即類似的東西

for (i = 0; i < messagelen; ++i)
   plaintext = PadToBlockLength(i);
   Output(AES-PRF(key, plaintext));

其中,Output 函式每次呼叫都會生成一個 PRG 單元。

讓 $ E(k,b) $ 是消息的AES加密 $ b $ 用鑰匙 $ k $ 大小在哪裡 $ b $ 是 128 位,密鑰大小可以是 128,192 和 256 位。

他所說的“在第 0 點評估,第 1 點”等到底是什麼意思

  • 在點 0 評估: $ c_0 = E(k,0) $
  • 在第 1 點評估: $ c_1 =E(k,1) $
  • 在第 2 點評估: $ c_2 = E(k,2) $
  • 很快
  • 評估點 $ \ell $ : $ c_\ell= E(k,\ell) $

$$ c_i = E(k,i) $$並且加密執行為

$$ C_i = c_i \oplus m[i] $$

即類似的東西

那裡沒有像 PKCS#5 等的填充;輸入 $ i $ 被認為是整數的 128 位二進制編碼表示 $ i $ ,或者可以將其視為 128 位計數器。如果我們將以下視為十六進制,我們可以更清楚地看到它

00000000000000000000000000000001
00000000000000000000000000000002
00000000000000000000000000000003
00000000000000000000000000000004
..
000000000000000000000000000000FF
..

這裡定義的是 CTR 操作模式,最初是為 PRF 定義的,由 Whitfield Diffie 和 Martin Hellman 在 1979 年引入

CTR 將 PRF 變成流密碼,就像Snuffle變成 Salsa20 和 AES 變成 AES-CTR。請注意,雖然沒有證明 AES 是 $ PRP \subset PRF $ . CTR 模式不需要解密 AES(或任何分組密碼),這對於減少軟體/硬體實現的面積很有用。

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