帶有 PRF 的確定性計數器模式。在某一點上評估是什麼意思?
這是來自 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 年引入
- Privacy and Authentication: An Introduction to Cryptography as an Introduction to Cryptography as an Introduction to Cryptography as an Introduction to Proceedings of the IEEE, 67 (1979), pp. 397–427。
CTR 將 PRF 變成流密碼,就像Snuffle變成 Salsa20 和 AES 變成 AES-CTR。請注意,雖然沒有證明 AES 是 $ PRP \subset PRF $ . CTR 模式不需要解密 AES(或任何分組密碼),這對於減少軟體/硬體實現的面積很有用。