Encryption
是否存在任何具有雙向雪崩效應的確定性多塊加密結構?
對於常見的多塊加密方案(CBC、CTR、CFB、流密碼等),如果它們被強制為確定性的,明文的變化只會改變目前塊,可能會改變未來的塊,但過去的塊是不變的.
以 DES-CBC 為例,我已經修復了 IV 以強制它具有確定性。(為方便起見,這裡使用 DES 是為了小塊大小)
Input: 0001020304050607 08090a0b0c0d0e0f 1011121314151617 18191a1b1c1d1e1f 2021222324252627 28292a2b2c2d2e2f Output: 4c72f896d0b5c010 96cafa256bd7bf8c 7f3dfa17eb0721d6 2db73b14cfa32977 e87a8caf18ace662 298640486525ca14
現在改變第三塊中的一位。
Input: 0001020304050607 08090a0b0c0d0e0f 1011321314151617 18191a1b1c1d1e1f 2021222324252627 28292a2b2c2d2e2f ^ Change Output: 4c72f896d0b5c010 96cafa256bd7bf8c 123ea45b2bc1d45b 876ee075d04e5c61 ea59edd03137781b 57cd1fafa7849fe2 Change ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
您會注意到前兩個密文塊是相同的。
是否有任何確定性結構允許明文中任何位的任何更改影響密文的每一位?
收斂加密本質上是:
- 散列消息。
- 使用雜湊作為密鑰進行加密。
- 用您的密碼加密雜湊。
這對於可猜測的明文是不安全的,因為您可以嘗試在不知道密鑰的情況下生成密文。
SIV模式本質上是:
- MAC 消息。
- 使用 MAC 作為 IV 進行加密。
對於 SIV,人們通常還包括每個消息的 nonce 以避免確定性加密,但既然你想要你應該省略它。
(請注意,由於包含標頭/關聯數據,SIV 模式實際上涉及更多。如果您想確定和可互操作,請使用RFC 5297論文中定義的結構。)