rfc-2405

The ESP DES-CBC Cipher Algorithm With Explicit IV

C. Madson, N. Doraswamy
date1998-11 streamIETF areasec wgipsec statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc2405 doi10.17487/RFC2405
This document describes the use of the DES Cipher algorithm in Cipher Block Chaining Mode, with an explicit IV, as a confidentiality mechanism within the context of the IPSec Encapsulating Security Payload (ESP). [STANDARDS-TRACK]

Extracted elements (17)

design-rationale §3

Common practice of using the last 8 octets of encrypted data as the IV for the next encryption logically extends CBC across packets and limits leakage from the random number generator, though receivers MUST NOT rely on this.

ipsec, crypto

design-rationale §3

Including the explicit IV in each datagram ensures decryption of each received datagram is possible even when datagrams are dropped or reordered in transit, rather than relying on chained state across packets.

ipsec, crypto

design-rationale §6

When default ESP padding is used, the padding bytes have predictable values, providing a small measure of tamper detection on their own block and the previous block in CBC mode, making splicing attacks harder and avoiding a covert channel.

ipsec, crypto, security

interoperability-note §5

As of the time of writing, there are no known issues precluding use of DES-CBC with any specific authentication algorithm.

ipsec, crypto

normative-requirement §4 MUST

A strong pseudo-random function MUST be used to generate the required key, per RFC 1750.

ipsec, crypto, security

normative-requirement §3.1 MUST

DES-CBC MUST use a block size of 8 octets (64 bits). When padding is required, it MUST be done according to the conventions specified in [ESP].

ipsec, crypto

normative-requirement §3 MUST

The IV MUST be a random value; implementations MUST NOT use a counter or other low-Hamming distance source for IVs.

ipsec, crypto, security

normative-requirement §4 MUST

The key derivation mechanism MUST derive a 64-bit key value for use by this cipher; the derivation process is not responsible for handling parity or weak key checks.

ipsec, crypto

normative-requirement §3 MUST NOT

The receiver MUST NOT assume any meaning for the IV value other than that it is an IV.

ipsec, crypto

normative-requirement §4 SHOULD

Weak key checks SHOULD be performed. If a weak key is found, the key SHOULD be rejected and a new SA requested.

ipsec, crypto, security

protocol-element §2

DES-CBC uses a symmetric secret-key block algorithm with a 64-bit block size and a 64-bit key (56 significant bits; least significant bit of each byte is a parity bit).

ipsec, crypto

protocol-element §4.1

DES has 16 known weak keys, including semi-weak keys, listed in [FIPS74]. Implementations performing weak key checks should note that the known weak keys have been adjusted for parity.

ipsec, crypto, security

security-consideration §6

A $1M DES-cracking machine can recover one key every 3.5 hours using a known-plaintext attack; IP datagrams typically begin with guessable header text, making frequent key changes insufficient protection.

ipsec, crypto, security

security-consideration §6

DES-CBC provides no authentication; use without a corresponding authentication mechanism (either ESP with auth or a companion AH header) is strongly discouraged due to cut-and-paste splicing attacks.

ipsec, crypto, security

security-consideration §6

Differential cryptanalysis requires 2^47 chosen plaintext-ciphertext pairs and linear cryptanalysis requires 2^43 known-plaintext pairs against DES; Triple DES is recommended for protecting moderate-value information.

ipsec, crypto, security

security-consideration §6

Using a low-Hamming distance IV source (e.g., a counter) in CBC mode can expose nearly identical effective plaintext across packets, enabling cryptanalytic attacks; IVs MUST differ substantially between packets.

ipsec, crypto, security

wire-format §3

The ESP payload for DES-CBC consists of an 8-octet (64-bit) Initialization Vector (IV) immediately followed by the variable-length encrypted payload.

ipsec, crypto