Fact-checked by Grok 2 weeks ago

Block cipher mode of operation

A block cipher mode of operation is an algorithm that specifies how a symmetric-key —such as , which processes fixed-size blocks (typically 128 bits)—can be applied to messages of arbitrary length to achieve security goals like , , or . These modes extend the cipher's functionality beyond single-block by incorporating techniques such as , , or counter-based generation of keystreams, often using an (IV) or to ensure unique outputs for identical inputs. The concept of block cipher modes emerged in the late 1970s alongside the , with early formalization in standards like FIPS PUB 81 (1980), which defined four basic confidentiality modes for . Over time, modes evolved to address limitations of basic ciphers, incorporating authentication mechanisms and support for associated data, as seen in NIST's SP 800-38 series starting with SP 800-38A (2001), which expanded to five confidentiality modes and influenced international standards like ISO/IEC 10116. Modern modes prioritize efficiency, parallelizability, and resistance to common attacks, with NIST's ongoing updates (e.g., IR 8459 in 2024) recommending against insecure practices like using ECB for sensitive data while preserving legacy modes for compatibility. Modes are broadly categorized into confidentiality-only, authentication (), and authenticated encryption with associated data (AEAD). Key confidentiality modes include: For authentication, modes like CMAC (based on ) provide message codes with provable security under the assumption. AEAD modes, such as with (CCM) and Galois/ Mode (GCM), combine and efficiently, supporting associated unencrypted data and widely used in protocols like TLS. Security in these modes relies on proper IV/ management—random and unpredictable for , unique and non-repeating for streams—and adherence to bounds like the birthday limit (approximately 2^{n/2} blocks, where n is block size) to prevent attacks. schemes, such as , ensure data aligns with block sizes but introduce risks like padding oracle attacks in if not implemented carefully. NIST recommends misuse-resistant AEAD modes for new systems, emphasizing hardware-accelerated implementations (e.g., AES-NI for GCM) to balance performance and security.

Fundamentals

Block Ciphers and the Need for Modes

A is a symmetric-key cryptographic algorithm that encrypts and decrypts fixed-size blocks of data, typically producing output blocks of equal length, with the process parameterized by a secret key. For instance, the (AES), a widely adopted , operates on 128-bit blocks using key sizes of 128, 192, or 256 bits. Block ciphers first emerged in the 1970s, exemplified by the (DES), which was developed by and adopted as a U.S. federal standard in 1977 for securing 64-bit blocks with a 56-bit key. Directly applying a to messages longer than its fixed block size requires dividing the into independent blocks and encrypting each separately, as in the naive Electronic (ECB) mode. This approach reveals structural patterns in the because identical blocks encrypt to identical blocks, compromising ; for example, a of repeated identical characters, such as "AAAA...A", produces visibly repeating blocks that an attacker can exploit to detect the repetition without knowing the key. Additionally, messages shorter than the block size cannot be encrypted without , and longer messages risk exposing correlations across blocks without further processing. Modes of operation extend s to handle arbitrary-length messages securely by defining methods to chain or feedback block encryptions, thereby providing essential security properties such as and resistance to pattern-based attacks or message malleability. These modes transform the underlying into a versatile tool for real-world applications, mitigating the inherent limitations of block-wise while preserving efficiency.

Initialization Vectors

An initialization vector (IV) is a fixed-length block of random or pseudo-random bits used as an additional input to certain modes of operation, alongside the secret , to initialize the encryption or decryption process and ensure that identical plaintexts produce distinct ciphertexts under the same . Typically, the IV length matches the underlying block cipher's block size, such as 128 bits for the (). It serves a role analogous to a component but is designed for reuse across messages only under strict conditions to maintain security. For security, an IV must be unpredictable and unique for each encryption operation performed with a given key; predictability or repetition can compromise the confidentiality of the encrypted data. In modes such as Cipher Block Chaining (CBC) and Cipher Feedback (CFB), the IV requires full unpredictability to prevent chosen-plaintext attacks that distinguish encryptions. Output Feedback (OFB) mode treats the IV as a nonce, demanding uniqueness per message but not necessarily randomness. Counter (CTR) mode uses an initial counter value—often derived from an IV or nonce—that must never repeat across messages with the same key to avoid keystream reuse. If the IV is not transmitted to the recipient, it functions as a nonce, generated predictably from shared context like sequence numbers. Generation methods vary by mode to meet these requirements while ensuring efficiency. For CBC, CFB, and OFB, IVs are commonly produced using a FIPS-approved or by applying the to a unique (though the latter is discouraged due to potential weaknesses under the same ). CTR mode typically employs an incrementing counter starting from an initial value, which may incorporate a fixed or derived IV component to span the full block size without overlap. Deriving IVs directly from the key is sometimes used but risks reducing effective and is generally avoided in favor of independent . Reusing an with the same across multiple messages severely undermines security, often enabling of information or the key itself. In mode, IV reuse effectively creates a two-time pad scenario, where the exclusive-OR of corresponding plaintext blocks from the two messages can be computed from the ciphertexts, leaking sensitive data patterns or allowing partial key recovery. Similar vulnerabilities arise in CFB and OFB, where repeated IVs expose plaintext XOR differences, while in CTR, reuse directly reuses keystream segments, turning the mode into a malleable vulnerable to bit-flipping attacks. NIST recommends limiting the probability of accidental reuse to less than 2^{-} through sufficiently large IV spaces and rigorous generation practices. In practical protocols, the IV is not required to remain secret and is typically transmitted alongside the ciphertext to enable decryption. For instance, in (TLS) version 1.2 using mode, an explicit is generated randomly for each record and prepended to the encrypted data. This approach ensures the recipient can initialize the decryption process without prior shared state, while maintaining the IV's role in achieving .

Padding

Block ciphers process fixed-size blocks of data, typically 128 bits for modern algorithms like , requiring input messages to be multiples of this block size for encryption. When a message length is not a multiple of the block size, must be added to extend it to the nearest multiple, ensuring compatibility with modes like that operate on complete blocks. One widely adopted scheme is , which appends a number of bytes equal to the length, with each byte set to that length value. For a block size of 16 bytes, if 3 bytes of are needed, three bytes each with value 0x03 are added; if the message is already a multiple of the block size, a full block of 16 bytes each with value 0x10 is appended. This method, defined for use in , allows unambiguous removal during decryption by checking the last byte's value and verifying that all preceding bytes match it. Another common scheme is ANSI X9.23, which pads with zero bytes followed by a single byte indicating the total padding length. For instance, with 3 bytes needed, it adds two 0x00 bytes and one 0x03 byte. This approach, retained in some implementations for compatibility despite the standard's withdrawal, provides a deterministic way to signal padding boundaries but shares similar removal validation with PKCS#7. ISO 10126, an older , fills the area with random bytes followed by a byte indicating the length, aiming to enhance through unpredictability. However, it was withdrawn in 2007 primarily due to its reliance on the obsolete single-DES encryption. During decryption in chained modes like , is removed by reading the last byte to determine the length and stripping those bytes after verifying their values match the ; invalid indicates potential tampering and should trigger rejection of the message to prevent attacks. A notable arises from verification, as demonstrated in attacks where an adversary exploits error messages or timing differences to infer bits. In mode, for example, Serge Vaudenay showed that by querying a — an entity that reveals whether is valid—an attacker can decrypt arbitrary ciphertexts block by block with an average of 128 queries per byte (approximately 2048 queries for a 128-bit block), without knowing the key. Alternatives to traditional padding exist in modes that emulate stream ciphers, such as CTR, where the block cipher generates a keystream via counter increments, allowing direct XOR with plaintext of any length without requiring padding or block alignment. This avoids padding-related overhead and vulnerabilities while maintaining efficiency for variable-length messages.

Historical Development and Standardization

Early Modes

The development of block cipher modes of operation began with the publication of the by the National Bureau of Standards (NBS, predecessor to NIST) in 1977, as specified in FIPS PUB 46, which established as a 64-bit based on the Feistel network structure originally proposed by Horst Feistel in the early 1970s. The Feistel structure influenced the design of modes by providing a reversible block transformation suitable for chaining operations. In response to the need for standardized ways to handle data larger than a single block, NBS proposed initial modes of operation, culminating in FIPS PUB 81 approved on December 2, 1980, which defined four modes for : Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), and Output Feedback (OFB). ECB emerged as the simplest early mode, functioning as a direct that encrypts each block independently using the underlying , making it straightforward but prone to revealing patterns in repetitive data. To mitigate ECB's vulnerability to pattern leakage—where identical plaintext blocks yield identical ciphertext blocks—CBC was developed, with its invention attributed to IBM researchers Eli D. Cohen, William F. Ehrsam, Carl H. W. Meyer, , and Walter L. Tuchman in a 1976 patent application (granted 1978), motivated by the need for diffusion across blocks via XOR chaining. CFB and OFB were proposed around the same time by NBS researchers, aiming to emulate behavior for variable-length data without requiring , by generating a keystream through mechanisms applied to the output. These key events—DES adoption in 1977 and modes standardization in 1980—marked the formalization of operations for federal use, enabling secure handling of bulk data in applications like file encryption and communications. However, early modes lacked built-in , relying solely on , and were susceptible to known-plaintext attacks, especially in ECB where block mappings could be deduced from observed plaintext-ciphertext pairs. These foundations influenced subsequent modern standards.

Modern Standards and Evolution

The selection of the , based on the Rijndael algorithm, in 2001 marked a pivotal advancement in block cipher standardization, replacing the aging and enabling the development of a comprehensive suite of modes tailored for modern applications. This led to the NIST Special Publication (SP) 800-38 series, beginning with SP 800-38A in December 2001, which formalized five confidentiality modes—including the newly introduced Counter (CTR) mode—for use with AES and other approved block ciphers. CTR mode's design allows parallelizable and decryption, addressing performance bottlenecks in high-throughput environments like communications. The evolution toward with associated data (AEAD) modes accelerated in the early to provide both and integrity in a single primitive, reducing the attack surface compared to separate and authentication. Counter with (CCM) was standardized in September 2003 via RFC 3610, primarily for protocols, combining CTR for with for authentication using 128-bit block ciphers like . Galois/Counter Mode (GCM) followed in NIST SP 800-38D in November 2007, leveraging in counter mode for and Galois field multiplication for efficient authentication, suitable for hardware-accelerated implementations. These AEAD modes gained widespread adoption due to their resistance to padding oracle attacks, which exploit malleability in padded -only modes like CBC; AEAD constructions avoid traditional altogether, ensuring integrity checks prevent such manipulations. Key protocols further entrenched AEAD standards, with TLS 1.3 (RFC 8446, August 2018) mandating AEAD cipher suites—such as AES-GCM—for all record protection, eliminating legacy non-AEAD options to enhance security against chosen-ciphertext attacks. Similarly, , published in March 2019, updated cryptographic module validation requirements, emphasizing proper and () management to mitigate reuse vulnerabilities in modes like GCM and CCM. Drivers for this shift included demands for hardware efficiency, exemplified by AES-GCM's integration into 3 (WPA3), where its parallelizable operations and low-latency authentication support high-speed wireless encryption without compromising security. Recent developments up to 2025 address lingering issues like misuse, with AES-GCM-SIV standardized in RFC 8452 (April 2019) to provide nonce-misuse resistance; it derives a synthetic from the nonce and key, ensuring that nonce repetition leaks only message equality rather than enabling full decryption. Post-quantum considerations have emerged for modes, particularly in adapting classical constructions like CTR and GCM to lattice-based symmetric primitives, as analyzed in security proofs showing their resilience under quantum threats when paired with sufficiently large keys—though NIST's ongoing post-quantum efforts prioritize asymmetric algorithms, modes remain foundational for hybrid systems. In 2024, NIST initiated reviews of SP 800-38B (), SP 800-38C (), and SP 800-38D () to update these modes for contemporary security needs, with decisions to revise them announced in early 2025. Additionally, NIST launched development of the mode, a new tweakable mode for variable-length inputs as a general-purpose AEAD primitive.

Confidentiality-Only Modes

Electronic Codebook (ECB)

The Electronic Codebook (ECB) mode is the simplest confidentiality-only mode of operation for block ciphers, where each plaintext block is encrypted independently using the same key without any chaining or dependency between blocks. Introduced in the 1980 Federal Information Processing Standard (FIPS) 81 for the Data Encryption Standard (DES), ECB treats the block cipher as a fixed substitution for discrete blocks of data, analogous to looking up entries in a codebook. This mode partitions the plaintext into fixed-size blocks (e.g., 64 bits for DES or 128 bits for AES) and applies the cipher function directly to each, producing corresponding ciphertext blocks. In ECB encryption, for a plaintext consisting of n blocks P_1, P_2, \dots, P_n, the j-th ciphertext block is computed as C_j = \text{CIPH}_K(P_j), where \text{CIPH}_K denotes the with K, for j = 1 to n. Decryption reverses this process independently for each : P_j = \text{CIPH}^{-1}_K(C_j), where \text{CIPH}^{-1}_K is the (decryption) . This independence allows full parallelization of both and decryption operations, making ECB computationally efficient on multi-processor systems, and it avoids propagation, as a in one ciphertext block affects only the corresponding during decryption. Despite its simplicity, ECB has significant limitations due to its deterministic nature: identical blocks always encrypt to identical blocks under the same key, which can reveal statistical patterns in the . For instance, encrypting structured data like an image may preserve visible outlines in the , as repeated patterns map to repeated blocks. This mode is also vulnerable to block replay attacks, where an adversary can substitute or replay individual blocks to alter specific parts of the decrypted message without detection, especially in protocols lacking . Consequently, ECB is unsuitable for most applications requiring strong , as it lacks diffusion across blocks—unlike chained modes such as —and is explicitly discouraged for encrypting secret data prone to pattern analysis. ECB finds limited use in scenarios involving small, random data where patterns are unlikely, such as single-block encryptions in challenge-response protocols for verification (PIV) cards or legacy systems processing independent data units. It remains approved for such narrow cases but is not recommended for general-purpose encryption due to its inherent weaknesses.

Cipher Block Chaining (CBC)

Cipher Block Chaining (CBC) mode is a block cipher mode of operation that enhances security by chaining blocks with previous blocks through XOR operations, providing better than simpler modes. Introduced in the 1980 specification for () modes, CBC requires an () to start the chaining process and ensures that identical blocks do not produce identical blocks, thereby hiding patterns in the data. In encryption, the first P_1 is XORed with the before : C_1 = E_K(P_1 \oplus \text{[IV](/page/IV)}), where E_K denotes under key K. For subsequent s, each P_i (for i \geq 2) is XORed with the previous : C_i = E_K(P_i \oplus C_{i-1}). The , treated as C_0, must be unpredictable and per to prevent certain attacks. Decryption reverses this process: the first is recovered as P_1 = D_K(C_1) \oplus \text{[IV](/page/IV)}, and subsequent s as P_i = D_K(C_i) \oplus C_{i-1}, where D_K is the decryption . This allows decryption but requires sequential . CBC offers advantages over the Electronic Codebook (ECB) mode by diffusing each block's encryption across the entire message, making it more resistant to statistical analysis of patterns. It has been widely adopted in protocols such as TLS 1.2, where suites like TLS_RSA_WITH_AES_128_CBC_SHA are mandatory to implement for compatibility and security. However, CBC is malleable, meaning an attacker who modifies a block can predictably alter the corresponding block during decryption—a bit flip in C_i will flip the same bit in P_i, while also randomizing P_{i+1}. To mitigate risks, the must be randomly generated for each message, and the mode provides no , requiring separate checks in practice. Since CBC processes fixed-size blocks, the plaintext must be padded to a multiple of the block length (e.g., 128 bits for AES) before encryption; PKCS#7 padding is typically used, appending bytes whose value equals the number of padding bytes added. This padding is removed during decryption after verifying its validity.

Cipher Feedback (CFB)

Cipher Feedback (CFB) mode is a block cipher mode of operation that transforms a block cipher into a self-synchronizing stream cipher, processing input data in segments of arbitrary size up to the block length. It achieves this by encrypting an initialization vector (IV) or the previous ciphertext block to generate a keystream, which is then XORed with the plaintext segment to produce the corresponding ciphertext segment. The feedback mechanism shifts the output bits, incorporating ciphertext into the next encryption input, allowing for flexible segment sizes s where $1 \leq s \leq b and b is the block size. This mode was originally specified for the Data Encryption Standard (DES) in 1980 and later generalized for any approved block cipher. In operation, CFB begins with an IV serving as the initial input block I_1. For subsequent blocks, the input I_j is formed by taking the least significant b - s bits of the previous input and appending the most recent s-bit ciphertext segment. The block cipher encrypts I_j to produce output O_j, and the most significant s bits of O_j, denoted MSB_s(O_j), are XORed with the s-bit plaintext segment P_j^\# to yield the ciphertext segment C_j^\# = P_j^\# \oplus MSB_s(O_j). Decryption reverses this process using the same keystream. For full-block CFB, where s = b, the mode processes entire blocks and resembles Cipher Block Chaining (CBC) but uses only the encryption direction for feedback, avoiding decryption operations. The general form can be expressed as: O_i = \text{MSB}_s \left( E_K(C_{i-1}) \right), \quad C_i = P_i \oplus O_i where C_0 is the , and indices denote segments. CFB requires no for non-block-aligned data, as it handles arbitrary segment lengths. CFB offers advantages such as self-synchronization after transmission errors—in 1-bit CFB, correct plaintext recovery resumes after b + 1 bits—and suitability for streaming applications over error-prone channels. However, it mandates serial due to dependency on prior , resulting in slower performance compared to parallelizable modes like (CTR). It finds use in legacy protocols and environments tolerant of limited error propagation, such as certain financial standards for . Unlike Output Feedback (OFB) mode, CFB feeds back rather than keystream output, introducing controlled error propagation for synchronization.

Output Feedback (OFB)

Output Feedback (OFB) mode is a confidentiality-only mode of operation for block ciphers that transforms the cipher into a synchronous by generating a keystream through iterative encryption of an (IV) and previous output blocks, which is then XORed with the to produce . The mode was originally proposed in 1976 during NBS meetings on modes of operation and standardized in FIPS PUB 81 (1980). In OFB encryption, the process begins with the IV serving as the initial input block O_0 = \text{IV}. Each subsequent output block is computed as O_i = E_K(O_{i-1}) for i = 1, 2, \dots, where E_K denotes the forward function under key K. The block C_i is then formed by C_i = P_i \oplus O_i, where P_i is the corresponding block and \oplus represents bitwise XOR. For the final partial block of length u < b bits (where b is the block size), the is C^*_n = P^*_n \oplus \text{MSB}_u(O_n), taking only the most significant u bits of the output block. Decryption reverses this by regenerating the keystream O_i identically and XORing it with the to recover the , ensuring the process is symmetric. A key advantage of OFB is its limited error propagation: a bit error in the affects only the corresponding bit in the decrypted , with no to subsequent blocks, making it suitable for over error-prone channels. Additionally, the keystream can be precomputed independently of the , allowing for stream-like processing without requiring for messages shorter than full blocks. However, the mode operates serially, as each output block depends on the previous one, limiting parallelization during or decryption. From a security perspective, OFB behaves as a , providing equivalent to a when the is unpredictable and unique per message under the same key. Reusing the same with the same key across messages is catastrophic, as it reduces the scheme to a two-time pad, allowing an attacker to recover by XORing corresponding ciphertexts. The must therefore function as a , never repeating for a given key. OFB finds application in scenarios requiring insensitivity to transmission errors, such as stream over noisy channels like communications, where bit errors are common but propagation must be minimized.

(CTR)

The (CTR) mode transforms a into a by generating a keystream through the of successive counter values, which is then XORed with the to produce the . This approach avoids inter-block dependencies, allowing independent processing of each block. The counter block typically consists of a (a unique value per ) concatenated with an incrementing counter starting from zero. The encryption operation for the i-th block is given by C_i = P_i \oplus E_K(\text{nonce} \parallel \text{counter}_i), where E_K denotes the block cipher encryption under key K, \parallel represents , and \text{counter}_i is the counter value for block i, usually incremented by 1 from the previous. Decryption reverses this process identically, as P_i = C_i \oplus E_K(\text{nonce} \parallel \text{counter}_i), since XOR is its own . Partial blocks at the message end are handled by truncating the keystream accordingly, eliminating the need for . CTR mode offers several advantages, including high parallelism: multiple blocks can be encrypted or decrypted simultaneously because each requires only a single forward invocation without relying on prior blocks. This enables significant speedups, such as up to 4 times faster software performance compared to chained modes like , and even greater gains (30–100 times) in hardware implementations. Additionally, it supports to any block without sequential processing, making it suitable for applications like where specific sectors may need individual updates. No is required, allowing direct of messages of arbitrary length. Counter management is critical: the full counter block (\text{nonce} \parallel \text{counter}_i) must be unique for every plaintext block encrypted under the same key across all messages to prevent keystream reuse. The nonce provides per-message uniqueness, while the counter increments predictably (e.g., via modular addition) within a message, typically limited to $2^{32} or fewer blocks to avoid overflow risks in 128-bit setups. From a perspective, CTR mode provides equivalent to a pseudorandom function under the assumption that the is a , with tight bounds proven in the multi-user setting. However, nonce reuse with the same is catastrophic: it allows an attacker to recover the XOR of corresponding blocks by XORing the ciphertexts, as the keystream would be identical. Nonces must therefore be chosen to ensure global uniqueness, often using random or sequential generation. CTR mode is widely used in high-speed network protocols, such as for efficient packet , due to its parallelizability and low latency. It also serves as the confidentiality component in many modes, providing a for constructions like GCM.

Propagating Cipher Block Chaining (PCBC)

Propagating Cipher Block Chaining (PCBC), also known as Plaintext Cipher Block Chaining, is a confidentiality-only mode of operation for s that extends the chaining mechanism of Cipher Block Chaining (CBC) by incorporating both the previous ciphertext and plaintext blocks into the feedback process. This design aims to enhance and provide implicit protection alongside , though it achieves neither goal robustly in practice. PCBC processes data in blocks of fixed size matching the underlying , requiring an (IV) for the first block and propagating feedback through subsequent blocks. In PCBC encryption, the i-th ciphertext block C_i is computed by XORing the i-th plaintext block P_i with both the previous ciphertext block C_{i-1} and the previous plaintext block P_{i-1} (or the IV for i=1, where P_0 is typically zero or omitted), then encrypting the result with the block cipher E_K under key K: C_i = E_K(P_i \oplus C_{i-1} \oplus P_{i-1}) Decryption reverses this by first decrypting the ciphertext block with D_K, then XORing the output with the same previous values: P_i = D_K(C_i) \oplus C_{i-1} \oplus P_{i-1} This feedback loop ensures that each block's processing depends on prior plaintext, making parallel decryption impossible and increasing computational interdependence compared to standard CBC. Note that recovering P_{i-1} during decryption requires sequential processing from the start, as it is needed for subsequent blocks. PCBC was proposed in the late 1980s during the development of Kerberos Version 4, an authentication protocol from MIT, where it was used with DES to encrypt tickets and provide both confidentiality and a form of integrity checking without separate authentication tags. It appeared in the Kerberos V4 implementation around 1989 but was not formalized in any major cryptographic standard like FIPS or NIST recommendations. A key advantage of PCBC over basic is its improved resistance to certain malleability attacks; modifying a single block alters the decryption of that block and propagates changes to multiple subsequent blocks due to the inclusion of in the , potentially garbling more of the message and making targeted alterations harder. However, this comes at the cost of increased complexity in and , as the dependence on prior complicates error handling and parallelization. Despite its intentions, PCBC has significant disadvantages, including severe error propagation: a bit error or block modification affects not only the immediate block but also the next one (or potentially two, depending on the type), as the corrupted feeds into future chaining, leading to cascading decryption failures. Moreover, it remains non-standard and vulnerable to specific attacks, such as swapping adjacent blocks, which allows an adversary to rearrange message parts without immediately corrupting the entire output. These issues contributed to its limited adoption beyond early deployments. Today, PCBC sees minimal use and is considered largely obsolete, having been replaced in modern systems by modes like GCM or CCM that explicitly provide both and without relying on fragile chaining tricks. Version 5, standardized in 1510 (1993) and later updates, abandoned PCBC in favor of explicit checksums and standard modes to address these shortcomings.

Authenticated Encryption Modes

Galois/Counter Mode (GCM)

Galois/Counter Mode (GCM) is an authenticated encryption with associated data (AEAD) mode of operation for block ciphers, providing both confidentiality and integrity protection in a single pass. It combines the Counter (CTR) mode for encryption with the GHASH function, a polynomial hash based on multiplication in the finite field GF(2^128), for message authentication. The mode processes the plaintext P and associated data (AAD) A using a secret key K and a nonce N, producing ciphertext C and an authentication tag T. GCM is designed for efficiency in both software and hardware, particularly with 128-bit block ciphers like AES. The encryption step uses CTR mode: the initial counter block J_0 is derived from the nonce (typically N || 0^{31} || 1 for 96-bit N), and the ciphertext is C_i = P_i \oplus E_K(J_0 + i-1) for i = 1 to m, where E_K is the block cipher encryption and m is the number of 128-bit blocks in P. Authentication is computed via GHASH, where the hash subkey H = E_K(0^{128}), and the input string is A || 0^{v} || C || 0^{u} || [|A|]_{64} || [|C|]_{64}, with v = (-|A| \mod 128), u = (-|C| \mod 128), and [ \cdot ]_{64} denoting the 64-bit binary representation of the bit length. The GHASH value S = \mathrm{GHASH}_H(\cdot) is then combined with the counter mode to form the tag: T = \mathrm{MSB}_t( E_K(J_0) \oplus S ), where t is the tag length. This construction ensures the tag authenticates both the ciphertext and AAD without requiring a separate MAC pass. GCM recommends a 96-bit for optimal performance, though lengths from 1 to $2^{64}-1 bits are supported by or , and a 128-bit length (with 96, 104, , or 120 bits also allowed). The is highly parallelizable, as both CTR and GHASH computations can be distributed across multiple blocks independently, enabling high-throughput implementations. In hardware, GCM benefits from dedicated instructions like Intel's -NI and PCLMULQDQ, which accelerate and Galois field multiplications, achieving speeds exceeding 10 Gbps on modern processors. GCM provides IND-CCA security under the concrete security model when nonces are unique per key, with the adversary's advantage bounded by terms involving the number of blocks processed and nonce length. However, nonce reuse under the same key severely compromises security: it allows recovery of plaintext differences via P_1 \oplus P_2 = C_1 \oplus C_2 from CTR, and enables forgery attacks by exposing the hash key H or counter collisions. GCM is standardized in protocols such as TLS 1.3, where AES-128-GCM and AES-256-GCM are mandatory-to-implement cipher suites, and IPsec ESP via RFC 4106.

Counter with CBC-MAC (CCM)

Counter with CBC-MAC (CCM) is an authenticated encryption with associated (AEAD) mode of operation for block ciphers, combining the (CTR) mode for confidentiality with (CBC-MAC) for integrity and authenticity. It processes both the plaintext and any associated (AAD) using a single secret key, producing a ciphertext and an authentication that verifies both the ciphertext and the AAD. CCM is designed specifically for 128-bit block ciphers, such as , and is particularly suited for resource-constrained environments due to its reliance on a single . The operation of CCM involves two main phases: followed by . First, a is computed over the AAD and the padded . The input to the is formatted as a sequence of blocks: the first block includes a Flags octet (indicating AAD presence and lengths), followed by the (7 to 13 octets), length fields for AAD and , the AAD itself (padded if necessary), and the padded to a multiple of the block size. The , denoted as T, is the first M octets (where M is 4, 6, 8, 10, 12, 14, or 16) of the of the final input block under the K. The C is then generated by XORing the P with the keystream generated in CTR mode using the same concatenated with an incrementing starting from 1. Finally, the is U = T \oplus the first M octets of the CTR keystream for 0 (i.e., \text{CTR}_K(\text{[nonce](/page/Nonce)} \| 0)). Decryption reverses this , recomputing the MAC and verifying the before releasing the . All operations use the same K, ensuring . Key parameters in CCM include the nonce length N, which ranges from 7 to 13 octets (with the total length field L from 2 to 8 octets to fit within 128 bits alongside the nonce), and the Flags , which encodes whether AAD is present, the tag length M, and the value of L. The must be unique for each key usage to prevent attacks, as reuse can compromise security. Unlike some modes, the computation is sequential and cannot be parallelized, which may limit performance in high-throughput scenarios but simplifies implementation. CCM's primary advantages stem from its use of a single primitive and for both and , making it compact and lightweight for devices with limited resources, such as those in protocols. It avoids the need for separate functions or multiple primitives, reducing code size and potential vulnerabilities from key separation. Security analyses confirm that CCM provides IND-CCA2 (indistinguishability under ) when the is unique per and the is secure; the mode is proven secure in the assuming the underlying cipher's pseudorandomness. However, nonce reuse can lead to forgery attacks, emphasizing the need for careful nonce management. CCM does not support longer than $2^{64} - 1 octets due to risks. CCM is standardized in RFC 3610 and widely adopted in protocols requiring efficient AEAD, including for link-layer security using AES-CCM, IEEE 802.11w for protected management frames via the CCMP protocol, and ESP for .

Synthetic Initialization Vector (SIV)

The Synthetic Initialization Vector (SIV) mode is a block cipher mode of operation designed for authenticated encryption with associated data (AEAD) that provides resistance to nonce misuse, allowing secure operation even when the same nonce is reused across multiple encryptions. It achieves this through a deterministic process that derives a synthetic initialization vector (SIV) from the plaintext and associated data, eliminating the need for a random or unique nonce while maintaining both confidentiality and authenticity. SIV operates in two passes: first computing the synthetic IV using a pseudorandom function on the inputs, then performing encryption in counter (CTR) mode using that IV. The operation begins with the derivation of the synthetic IV, denoted as V = \text{S2V}_{K_1}(\text{AAD}_1, \dots, \text{AAD}_t, P), where S2V is a specific construction based on (Cipher-based ) applied to the associated data (AAD) strings and P, using key K_1. S2V processes the inputs by iteratively applying the in mode, incorporating doubling and XOR operations to handle variable-length strings, ensuring the output V is a 128-bit value for . In the second pass, the is encrypted in CTR mode: the counter block is formed as Q = V \land (2^{128} - 2^{64}), and the keystream is generated as X_i = E_{K_2}(Q + i) for i = 0, 1, \dots, where E is the encryption. The ciphertext is then C = P \oplus \text{pad}(X, |P|), with to match the length, and the final output is C || V, where V serves dual roles as the for CTR and the authentication tag. Decryption reverses this process, recomputing V from the purported and verifying it against the provided tag before applying CTR decryption. SIV's key advantages stem from its deterministic nature and misuse resistance: it produces the same for identical inputs without requiring a random or , making it suitable for applications like key wrapping where predictability is needed, and it preserves security even if the same synthetic is reused, as long as the total number of encryptions remains bounded. This contrasts with -based modes, where reuse typically compromises security. Security is formalized as a misuse-resistant AEAD (MRAE) scheme, with security that falls off approximately as σ² / 2^n (where σ is the total number of blocks processed and n=128 is the block size), allowing up to 2^{48} encryptions or 2^{64} blocks per with negligible risk (advantage ≤2^{-56}). However, SIV incurs drawbacks, including the computational overhead of two passes—which requires roughly twice the block cipher invocations of a single-pass mode—and fixed 128-bit tags, which are larger than some alternatives. SIV was standardized in RFC 5297 (2011) for use with AES (in 128-, 192-, and 256-bit key variants, denoted AEAD_AES_SIV_CMAC_256, etc.), and it finds primary application in file encryption and deterministic scenarios where nonce management is impractical, such as secure storage systems.

AES-GCM-SIV

AES-GCM-SIV is a nonce-misuse-resistant authenticated encryption with associated data (AEAD) mode of operation for the (AES) block cipher, providing both confidentiality and authenticity while tolerating nonce reuse without catastrophic security degradation. Developed by researchers including Adam Langley at , it was proposed in 2017 and standardized in RFC 8452 in 2019, building on the efficiency of Galois/Counter Mode (GCM) but incorporating synthetic initialization vector (SIV)-like properties for enhanced robustness. The mode supports AES-128 and AES-256, using a 96-bit nonce and producing a 128-bit authentication tag, with ciphertext length equal to the plaintext plus the tag. The operation of AES-GCM-SIV involves key derivation from the master key and nonce, followed by authentication and encryption using POLYVAL (a polynomial evaluation function over GF(2^{128})) and AES in counter (CTR) mode. For encryption, subkeys are first derived: an authentication key K_1 and an encryption key K_2 are generated by encrypting the nonce concatenated with small counter values (0 to 3 for AES-128 or 0 to 5 for AES-256) under the master key, using four or six AES block encryptions respectively. A value T is then computed as the POLYVAL output over the associated data (AAD), padded plaintext P, and length blocks: T = \text{POLYVAL}_{K_1}(A^* || 0^{|P|} || P || \text{len}(A) || \text{len}(P)) where A^* is the padded AAD and lengths are encoded in little-endian blocks. This T is XORed with the nonce N (padded to 128 bits), masked by clearing the least significant bit, and encrypted under K_2 with an all-zero block (except the final bit set to 1) to produce the authentication tag \text{TAG}: \text{TAG} = \text{AES}_{K_2} \left( 0^{127} || 1 || ((T \oplus \tilde{N})[127:1]) \right) The is encrypted in CTR mode starting from an initial block derived from the TAG (incremented and segmented for parallelization), yielding the C. Decryption reverses this: CTR decryption produces , POLYVAL is recomputed on AAD and the , and the is verified in constant time; rejection occurs if mismatched. This two-pass design for (authentication first, then ) enables parallelism in CTR but requires sequential POLYVAL. Key advantages of AES-GCM-SIV include its balance of performance and security: encryption is approximately 50% slower than AES-GCM due to the extra pass, but decryption achieves speeds within 5% of AES-GCM for messages over a few kilobytes, leveraging hardware-accelerated AES-CTR. POLYVAL offers about 1.2 times the speed of GHASH on modern hardware, and the mode supports up to $2^{64} messages per key with random nonces. Compared to pure SIV modes, it maintains nonce-based operation for efficiency while deriving per-message subkeys and a synthetic counter from message contents, preventing plaintext recovery on nonce reuse. In terms of security, AES-GCM-SIV achieves indistinguishability under (IND-CCA) even if the same is reused up to 256 times across $2^{29} messages of 1 GiB each, with an adversary advantage bounded by roughly $3Q^2 / 2^{96} + Q \cdot B^2 / 2^{129}, where Q is the number of encryptions and B the total bits (with Q \leq 2^{64}). reuse leaks only equality, not full contents, unlike GCM's total compromise. The resists standard attacks like bit-flipping or oracles through CTR's malleability via the synthetic . Adoption of AES-GCM-SIV has grown since its integration into BoringSSL in 2017, powering applications in for secure browsing and protocol source-address token protection. By 2025, it is used in systems (e.g., via Google's Tink library) and messaging platforms like LINE for nonce-vulnerable environments, with IANA registry support (AEAD IDs 30 and 31) facilitating broader integration.

Security Properties and Analysis

Error Propagation

Error propagation refers to the extent to which a bit error in the transmitted affects the decrypted in modes of operation, a critical consideration for applications over unreliable channels such as or links. In noisy environments, where bit error rates (BER) can reach 10^{-6}—meaning one error per million bits transmitted—the choice of mode influences both data usability and . Modes with limited , like stream-cipher emulations, are preferred for such scenarios to minimize data loss beyond the erroneous bits. In Electronic Codebook (ECB) mode, a bit in a block corrupts only the corresponding block, with no to subsequent blocks, as each block is encrypted independently. This isolated impact makes ECB suitable for error-prone channels but vulnerable to pattern analysis, though its handling is straightforward. Similarly, in (CTR) mode, a bit flip affects only the matching bit, exhibiting no due to the independent keystream generation; this property aligns CTR well with high-BER environments like wireless networks. Output Feedback (OFB) mode behaves analogously, where an in the ciphertext keystream segment flips solely the corresponding bit without affecting later blocks, avoiding the seen in chaining modes. Cipher Block Chaining (CBC) mode, by contrast, exhibits more extensive propagation: a single bit error in block C_i garbles the entire block P_i (due to the block decryption) and flips the corresponding bit in P_{i+1} via the XOR chaining, but resynchronizes thereafter, limiting impact to two blocks. In Cipher Feedback (CFB) mode—typically analyzed for s-bit segments—a bit error corrupts the current s-bit segment and injects erroneous feedback into the , garbling the next s bits as well, though it self-heals after one full block as the register shifts out the error. These chaining effects in CBC and CFB can amplify risks in channels with BER around 10^{-6}, potentially corrupting multiple bytes per error event. For with Associated Data (AEAD) modes like Galois/ Mode (GCM) and with (CCM), error propagation mirrors the underlying confidentiality component but extends to authentication failure. In GCM, based on CTR encryption, a ciphertext bit error flips only the corresponding bit with no further propagation, yet alters the Galois Hash (GHASH) computation over the , likely causing the authentication tag to mismatch and triggering total message rejection to preserve integrity. CCM combines CTR encryption with , so a bit error affects the current block and the subsequent MAC-chained block (impacting two blocks total), but again, the modified typically invalidates the tag, resulting in outright discard of the message rather than partial decryption. This all-or-nothing rejection in AEAD modes enhances security against tampering but can exacerbate in high-BER settings compared to confidentiality-only modes. Mitigations for error propagation include selecting modes with minimal spread, such as CTR or OFB for noisy channels, and integrating (FEC) techniques that add redundancy to detect and repair bit errors before decryption, reducing effective BER without altering the cipher mode. For instance, FEC can correct errors at rates up to 10^{-6} BER in optical or wireless systems, ensuring reliable propagation even in chaining modes like .

Nonce and IV Security

In block cipher modes of operation, the (IV) or plays a critical role in ensuring by providing uniqueness and unpredictability to each invocation under a given . Reuse or predictability of these values can lead to severe vulnerabilities, including recovery and forgery attacks, across various modes. NIST Special Publication 800-38A emphasizes that IVs must be unpredictable and unique per key to maintain and prevent such compromises. In Cipher Block Chaining () mode, reusing the same with the same key enables chosen-plaintext attacks where an adversary can recover information about prefixes by comparing ciphertexts, as the XOR operation with the chains subsequent s predictably. This leakage occurs because the first ciphertext is effectively the encryption of the XORed with the reused , allowing pattern detection without key knowledge. While is more resilient than stream-like modes to single reuses, repeated misuse amplifies risks, underscoring the need for random, unique IVs of at least 128 bits. Counter (CTR) and Galois/Counter (GCM) modes are particularly vulnerable to nonce reuse, as they generate a keystream from the nonce and ; repetition exposes plaintext via simple XOR of corresponding ciphertexts. In CTR, nonce reuse produces identical keystreams, enabling direct recovery of plaintext XOR differences and trivial data forgery, as demonstrated in contexts where attackers can manipulate packets without . GCM exacerbates this by also compromising authentication: a single reuse allows reconstruction of the authentication key through factorization, enabling precise message forgeries in protocols like , where scans revealed over 184 vulnerable servers. Nonce predictability in CTR mode arises from counter exhaustion, where incrementing the beyond its range (typically or bits) under a fixed leads to keystream , effectively reducing to preimage attacks after 2^{n/2} blocks for an n-bit size. This risk is mitigated by ensuring the full nonce-counter pair spans at least 128 bits without wraparound, but poor can cause unintended reuse in high-volume scenarios. Best practices for nonce and IV management include using 96-bit for GCM to balance efficiency and , with a recommended limit of 2^{32} invocations per to avoid reuse probabilities exceeding 50% under random generation. For general modes, IVs or should be at least 64 bits and randomly generated or derived protocol-wide for , as in TLS where numbers ensure per-session distinctness. NIST SP 800-38A further advises against predictable constructions, favoring FIPS-approved random number generators. A notable historical incident occurred in 2017 with the (Key Reinstallation Attack) on WPA2, where attackers forced nonce reuse during the 4-way handshake, reinstalling keys and enabling packet decryption, replay, and injection across all Wi-Fi devices, including severe impacts on Android implementations. To address these risks, misuse-resistant modes like Synthetic Initialization Vector (SIV) have been developed, which treat the as a synthetic construct from the message and header, preserving security even under full nonce reuse by deriving unique values deterministically without relying on nonce uniqueness. Standardized in RFC 5297, SIV ensures privacy and authenticity unless identical (header, ) pairs are repeated. Variants like AES-GCM-SIV extend this to high-performance . As of 2025, NIST Special Publication 800-38D is under revision to enhance GCM management, proposing variants for larger ciphers (e.g., 256-bit) to expand nonce spaces to 2^{64} and endorsing derivation methods like DNDK-GCM for rapid deployment against in high-throughput applications. These updates aim to reduce rekeying frequency while maintaining forgery resistance.

Other Cryptographic Considerations

modes without , such as and CFB, exhibit malleability, allowing an adversary to predictably alter by modifying blocks—for instance, flipping a bit in a ciphertext block can cause a corresponding predictable change in the decrypted plaintext of the subsequent block. This property enables attacks like chosen-ciphertext manipulations without detection, as the decryption process chains dependencies that propagate alterations in a controllable manner. In contrast, modes like GCM incorporate an authentication tag that verifies both and , rendering such malleability attacks infeasible since any ciphertext modification invalidates the tag. Side-channel attacks pose significant risks to implementations of various modes, exploiting unintended information leakage through timing, power, or access patterns. In mode, padding oracle attacks leverage timing differences during decryption and padding validation to recover byte-by-byte, as originally demonstrated against padding schemes. For instance, the refines this by exploiting subtle timing variations in TLS implementations using , even with countermeasures. is susceptible to cache-timing attacks on its GHASH authentication component due to table lookups dependent on secret data, potentially leaking the hash key through contention. Mitigations for these vulnerabilities include constant-time implementations that avoid conditional branches and data-dependent accesses, ensuring uniform execution regardless of input. Quantum computing introduces threats to the long-term security of modes via algorithms like Grover's, which provides a for brute-force key searches, effectively halving the security level of symmetric keys—for example, reducing AES-128's 128-bit security to 64 bits. To counter this, modes employing larger keys, such as AES-256 in CTR or GCM, maintain adequate post-quantum security levels around 128 bits, as recommended for symmetric primitives. While quantum threats primarily target asymmetric , NIST's 2024 post-quantum standards (FIPS 203, 204, and 205) emphasize approaches, but symmetric modes remain viable with adjustments up to 2025 guidelines. Performance trade-offs among modes influence their suitability for different hardware and workloads, particularly regarding . CTR and GCM support full of encryption and decryption across blocks, enabling efficient utilization of multi-core processors and hardware accelerators, which is critical for high-throughput applications. Conversely, requires sequential processing due to its dependency, limiting scalability on parallel architectures and increasing for large data. These differences can result in GCM outperforming by factors of 2-10x in parallel environments, though may suffice for simpler, serial-bound scenarios. Selecting a mode depends on the , prioritizing alone with CTR for scenarios without needs, or opting for AEAD modes like GCM when both and are required to resist active adversaries. NIST guidelines advocate AEAD modes for new protocols to address comprehensive security, balancing computational overhead against protection levels.

Additional Modes and Primitives

Stream Cipher Emulation

Block cipher modes such as Cipher Feedback (CFB), Output Feedback (OFB), and Counter (CTR) transform a into a , enabling of variable-length data without requiring , which is essential for processing byte streams or arbitrary data sizes. In CFB and OFB modes, the generates a keystream that is XORed with segments, allowing operation on sub-block sizes; for instance, CFB supports segment sizes s from 1 to the full block length b (e.g., 8 bits for byte-oriented streams), while OFB uses the most significant u bits of the output for partial blocks. These modes emulate asynchronous (OFB) or self-synchronizing (CFB) , where CFB feeds back to recover from after a limited number of blocks, unlike OFB's across the entire stream. Among these, CTR mode has become the preferred method for modern stream emulation due to its lack of synchronization dependencies and support for , avoiding the sequential feedback in CFB and OFB that can introduce or . In CTR, a unique counter block is incremented for each position and encrypted to produce the keystream, enabling independent block computations without reliance on prior ciphertext or outputs. This design parallels the keystream generation in native ciphers like , but leverages the block cipher's for stronger guarantees, provided counter blocks remain unique across all encryptions under the same key to prevent keystream reuse and potential disclosure of XOR differences. These emulation modes find applications in real-time communications, such as (VoIP), where is undesirable due to latency constraints and variable packet sizes; for example, the (SRTP) employs in a variant of CTR mode to encrypt RTP packets efficiently without block alignment issues. In such scenarios, the stream-like behavior ensures low-overhead processing of continuous data flows, maintaining synchronization only through the initial vector or counter. Despite these advantages, block cipher emulation incurs overhead from full-block operations, making it less efficient in software compared to native stream ciphers like ChaCha20, which achieves higher throughput on general-purpose processors without hardware acceleration. This performance gap is particularly evident in resource-constrained environments, where ChaCha20's ARX-based design avoids the substitution-permutation complexities of block ciphers, reducing implementation time and side-channel vulnerabilities. Over time, there has been a shift toward native with associated data (AEAD) stream ciphers, exemplified by ChaCha20 combined with Poly1305, which provides both and in a single primitive suitable for protocols like TLS and , addressing the limitations of unauthenticated block emulations. This evolution, formalized in RFC 7539, prioritizes software efficiency and nonce-based security for high-speed networks, marking a departure from traditional block-based streams in favor of dedicated designs.

Disk Encryption Modes

Disk encryption modes are specialized block cipher constructions designed for protecting on devices, such as hard drives or solid-state drives, where to sectors is essential and performance overhead must be minimized. These modes address unique challenges in storage environments, including the need to encrypt fixed-size sectors (typically 512 bytes or 4 ) without requiring initialization vectors per block, while supporting partial overwrites and maintaining against attacks like copy-paste manipulation. Unlike transmission-oriented modes, they incorporate tweaks derived from sector addresses to ensure position-dependent encryption, preventing identical blocks in different locations from producing the same . The predominant mode in this domain is XTS-AES, standardized in IEEE Std 1619-2007 and revised in subsequent standards, including IEEE Std 1619-2025, and approved by NIST in Special Publication 800-38E for on block-oriented storage devices. XTS-AES, an instantiation of the XEX (XOR-encrypt-XOR) tweakable with , uses two AES keys: one for data (K1) and one for generating tweaks (K2). For a sector identified by tweak T (a 128-bit representation of the sector number), each 128-bit j within the sector is processed as follows:
  • Compute the sector tweak: \alpha is a primitive element in GF(2^{128}), and the block tweak is I = \text{AES-Enc}_{K_2}(T) \otimes \alpha^j, where \otimes denotes in GF(2^{128}).
  • Encrypt the block: C_j = \text{AES-Enc}_{K_1}(P_j \oplus I) \oplus I.
For sectors not aligned to full 128-bit blocks, allows the final partial block to be handled by swapping and encrypting with the preceding block's tweak, preserving data length without . This construction enables and pipelining, making it suitable for high-throughput storage encryption. Key advantages of XTS-AES include its ability to operate without per-block IVs, reducing overhead, and its to partial sector writes common in operations. It provides strong confidentiality for data units up to $2^{20} AES blocks (approximately 16 per data unit) while avoiding the malleability issues in earlier modes. However, XTS-AES offers no built-in , relying on higher-layer filesystem checks to detect tampering; it is vulnerable to chosen-plaintext attacks if misused beyond storage contexts. analyses confirm its provable as a tweakable strong under assumptions, with a security bound of roughly q^2 / 2^n for q queries and n-bit blocks, where identical subkeys degrade it to this level. Prior to XTS-AES, alternatives included the XE(S)CK modes proposed by Halevi and Rogaway in , which extend XEX with for handling non-multiples of block size but lack the refined tweakable security proofs of XTS. The LRW (Liskov-Rivest-Wagner) mode from 2002, an early tweakable construction using a single-key XOR-encrypt-XOR approach, was widely implemented but deprecated due to vulnerabilities like weak diffusion against certain attacks and incompatibility with modern standards; it is now considered legacy in tools like cryptsetup. XTS-AES has seen broad adoption in production systems. BitLocker employs XTS-AES 128-bit by default for operating system and fixed drives, with 256-bit support for enhanced . The Linux kernel's subsystem integrates XTS-AES as the recommended mode for LUKS-based full-disk , leveraging kernel crypto APIs for efficient performance. In mobile environments, 's File-Based Encryption (FBE), introduced in Android 7.0 and standard through 2025, uses AES-256-XTS to independently encrypt file contents, enabling granular key management without full-disk unlocks.

References

  1. [1]
    [PDF] NIST SP 800-38A, Recommendation for Block Cipher Modes of ...
    This recommendation defines five confidentiality modes of operation for use with an underlying symmetric key block cipher algorithm: Electronic Codebook (ECB), ...
  2. [2]
    [PDF] Evaluation of Some Blockcipher Modes of Operation
    Feb 10, 2011 · This report analyzes the security of some 17 cryptographic modes of operation described within some eight U.S. or international standards. Most ...
  3. [3]
    [PDF] Report on the Block Cipher Modes of Operation in the NIST SP 800 ...
    In fact, it is possible to claim that a block cipher is always used in combination with a mode of operation: using a block cipher “directly” is equivalent to ...
  4. [4]
    [PDF] Advanced Encryption Standard (AES)
    May 9, 2023 · A block is a sequence of bits of a given fixed length. A block cipher is a family of permutations of blocks that is parameterized by a sequence ...
  5. [5]
    Cryptographic Standards and a 50-Year Evolution - NIST NCCoE
    May 26, 2022 · A 64-bit block cipher with 56-bit key, DES was the first public encryption created by the U.S. government. An exhaustive search attack for a ...
  6. [6]
    22 Security - An Introduction to Computer Networks
    However, if a cipher block is lost, the receiver now faces resynchronization problems. ... 3 Cipher Modes; for CBC block ciphers see exercise 5.0. It is therefore ...
  7. [7]
    Block Cipher Techniques | CSRC
    Jan 4, 2017 · NIST approves the following block cipher modes of the approved block ciphers in the Special Publication (SP) 800-38 series.
  8. [8]
    CS 5430: Block Cipher Modes and Asymmetric-key Encryption
    A block cipher mode is an algorithm that uses a fixed-length block cipher to send an arbitrary-length message.
  9. [9]
    RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2
    Initialization Vector (IV) When a block cipher is used in CBC mode, the initialization vector is exclusive-ORed with the first plaintext block prior to ...
  10. [10]
  11. [11]
  12. [12]
    Why was ISO10126 Padding Withdrawn?
    Feb 24, 2012 · ISO10126 padding was withdrawn due to the use of obsolete single-DEA/DES encryption and the availability of other standards. The padding's ...Random data CBC padding scheme? - Cryptography Stack ExchangeWhat are the relative merits of padding algorithms pkcs7, iso7816 ...More results from crypto.stackexchange.com
  13. [13]
    [PDF] Security Flaws Induced by CBC Padding – Applications to SSL ...
    In this paper we show various ways to perform an efficient side channel attack. We discuss potential applications, extensions to other padding schemes and ...
  14. [14]
    [PDF] New Directions in Cryptography - Stanford Electrical Engineering
    Widening applications of teleprocessing have given rise to a need for new types of cryptographic systems, which minimize the need for secure key distribution.
  15. [15]
    Message verification and transmission error detection by block ...
    A message transmission system for the secure transmission of multi-block data messages from a sending station to a receiving station.
  16. [16]
    Cryptographic Standards and Guidelines | CSRC
    **Summary of AES Selection and Relation to Rijndael:**
  17. [17]
    SP 800-38A, Recommendation for Block Cipher Modes of Operation
    Dec 1, 2001 · This recommendation defines five confidentiality modes of operation for use with an underlying symmetric key block cipher algorithm.
  18. [18]
    RFC 3610: Counter with CBC-MAC (CCM)
    **Publication Date and Summary for CCM Mode in IPsec**
  19. [19]
    SP 800-38D, Recommendation for Block Cipher Modes of Operation
    This Recommendation specifies the Galois/Counter Mode (GCM), an algorithm for authenticated encryption with associated data, and its specialization, GMAC.
  20. [20]
    Padding oracles and the decline of CBC-mode cipher suites
    Feb 12, 2016 · In this blog post we explore the history of one widely used cryptographic mode that continues to cause problems: cipher block chaining (CBC).
  21. [21]
    RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
    An AEAD algorithm where N_MAX is less than 8 bytes MUST NOT be used with TLS. The per-record nonce for the AEAD construction is formed as follows: 1. The 64 ...
  22. [22]
  23. [23]
    What is WPA3 vs. WPA2? - Portnox
    The AES-GCM encryption algorithm used in WPA3 provides enhanced security by combining encryption and authentication, ensuring the integrity and confidentiality ...
  24. [24]
    RFC 8452 - AES-GCM-SIV: Nonce Misuse-Resistant Authenticated ...
    This memo specifies two authenticated encryption algorithms that are nonce misuse resistant -- that is, they do not fail catastrophically if a nonce is ...Missing: quantum | Show results with:quantum
  25. [25]
    [PDF] On the Post-Quantum Security of Classical Authenticated Encryption ...
    (A) The generic SIV mode, GCM mode, and EAX mode are IND-qCPA insecure. (B) A restricted variant of GCM, which, for a block size of n, only allows nonces of ...Missing: 8452 | Show results with:8452
  26. [26]
    [PDF] DES modes of operation - NIST Technical Series Publications
    Dec 2, 1980 · The Electronic Codebook (ECB) mode is a basic, block, cryptographic method which transforms. 64 bits of input to 64 bits of output as specified ...
  27. [27]
    [PDF] Recommendation for Key Management: Part 1 - General
    May 5, 2020 · NIST is responsible for developing information security standards and guidelines, including minimum requirements for federal information systems ...
  28. [28]
  29. [29]
    FIPS 81, DES Modes of Operation | CSRC
    The modes included in this standard are the Electronic Codebook (ECB) mode, the Cipher Block Chaining (CBC) mode, the Cipher Feedback (CFB) mode, and the Output ...
  30. [30]
  31. [31]
    [PDF] Modes of Operation - Koc Lab
    Output FeedBack (OFB). Page 13. Advantages and Limitations of OFB. • used when error feedback a problem or where need to encryptions before message is ...Missing: disadvantages | Show results with:disadvantages<|separator|>
  32. [32]
    [PDF] 1 Review of Counter-Mode Encryption
    We suggest that NIST, in standardizing AES modes of operation, should include CTR-mode encryption as one possibility for the next reasons. First, CTR mode ...
  33. [33]
    [PDF] The Perils of Unauthenticated Encryption: Kerberos Version 4 | MIT
    For CBC mode, Fi+1 = Ci, while for PCBC mode, Fi+1 = Ci ⊕Pi. For these cipher modes,. F0 is known as the initialization vector (IV). Assume that an attacker ...
  34. [34]
    Low computational cost integrity for block ciphers - ScienceDirect.com
    The PCBC mode was created for the Kerberos Version 4 [6]. It was based on the CBC mode, but it added a new XOR operation. In fact what PCBC does is to ...
  35. [35]
    Product Ciphers
    A fifth mode of operation, used in Kerberos and elsewhere but not defined in any standard, is error-Propagating Cipher Block Chaining (PCBC). Unlike the 4 ...
  36. [36]
    [PDF] Galois/Counter Mode (GCM) and GMAC
    This Recommendation specifies the Galois/Counter Mode (GCM), an algorithm for authenticated encryption with associated data, and its specialization, GMAC, for ...Missing: Vijayan | Show results with:Vijayan
  37. [37]
    The Security and Performance of the Galois/Counter Mode of ...
    The recently introduced Galois/Counter Mode (GCM) of operation for block ciphers provides both encryption and message authentication, using universal hashing.Missing: original Vijayan
  38. [38]
    RFC 4106 - The Use of Galois/Counter Mode (GCM) in IPsec ...
    This document describes the use of AES in GCM mode (AES-GCM) as an IPsec ESP mechanism for confidentiality and data origin authentication.Missing: paper Vijayan<|control11|><|separator|>
  39. [39]
    [PDF] Guide to Bluetooth Security - NIST Technical Series Publications
    Jan 19, 2022 · Bluetooth AES-CCM ... 3). For Security Mode 4, the Bluetooth specification defines five levels of security for Bluetooth services.
  40. [40]
    [PDF] NIST SP 800-97, Establishing Wireless Robust Security Networks
    CCMP is based on CCM, a generic authenticated encryption block cipher mode of AES.43 CCM is a mode of operation defined for any block cipher with a 128-bit ...
  41. [41]
    [PDF] The SIV Mode of Operation for Deterministic Authenticated ...
    The SIV mode of operation specifies a way for using a blockcipher to encrypt. Encryption under SIV (which stands for “Synthetic IV”) takes as input a key, a ...Missing: RFC 5298
  42. [42]
    RFC 5297 - Synthetic Initialization Vector (SIV) Authenticated ...
    SIV is a block cipher mode that takes a key, plaintext, and multiple strings, producing a ciphertext with a synthetic initialization vector. It can achieve ...Missing: 5298 | Show results with:5298
  43. [43]
  44. [44]
  45. [45]
    [PDF] AES-GCM-SIV: Specification and Analysis - Cryptology ePrint Archive
    In addition, a new key derivation function is used for deriving a fresh set of keys for each nonce. This addition allows for encrypting up to 250 messages with ...
  46. [46]
  47. [47]
  48. [48]
  49. [49]
  50. [50]
  51. [51]
  52. [52]
    How we optimized the AES-GCM-SIV encryption algorithm
    Sep 21, 2023 · ... AES-GCM-SIV is available in several libraries like Tink and BoringSSL. However, when our team first adopted it, this algorithm was not supported ...
  53. [53]
    Bit Error Rate (BER) – Definition, Formula, System Impact
    Apr 22, 2025 · BER ≈ 10⁻¹² or better. For example, a BER of 10⁻⁶ means one bit error per one million bits transmitted. The required BER depends on system ...
  54. [54]
    [PDF] Introduction to Cryptography
    Error Propagation in CBC Mode. Look at the decryption process, where C0 is ... Choices: CMAC (a block cipher mode of operation), HMAC, combined modes of ...
  55. [55]
    [PDF] Modes of Operation Block Ciphers
    Block Cipher. Encryption. Key. Cipher Feedback (CFB). • Identical messages: as in CBC. • Chaining: Similar to CBC. • Error propagation: Single bit error on c j.
  56. [56]
    [PDF] Lecture 16 - Introduction to Cryptography CS 355
    • A ciphertext block depends on all preceding plaintext blocks; reorder affects decryption. • Errors in one block propagate to two blocks. – one bit error in C.
  57. [57]
    None
    ### Summary of GCM from NIST SP 800-38D
  58. [58]
    Mitigating Transmission Errors: A Forward Error Correction-Based ...
    This paper presents a novel approach to enhancing objective video quality by integrating an energy-efficient forward error correction (FEC) technique into ...
  59. [59]
    RFC 3686 - Using Advanced Encryption Standard (AES) Counter ...
    Data forgery is trivial with CTR mode. The demonstration of this attack is similar to the key stream reuse discussion above. If a known plaintext byte ...
  60. [60]
    [PDF] Practical Forgery Attacks on GCM in TLS - USENIX
    Abstract. We investigate nonce reuse issues with the GCM block cipher mode as used in TLS and focus in particular on. AES-GCM, the most widely deployed ...
  61. [61]
    [PDF] Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2
    Oct 30, 2017 · ABSTRACT. We introduce the key reinstallation attack. This attack abuses design or implementation flaws in cryptographic protocols to ...
  62. [62]
    Pre-Draft Call for Comments: GCM and GMAC Block Cipher Modes ...
    Jan 6, 2025 · In March 2024, NIST announced its intention to revise NIST Special Publication (SP) 800-38D, Recommendation for Block Cipher Modes of Operation: ...
  63. [63]
    Constant-Time Crypto - BearSSL
    Timing attacks are a subset of a more general class of attacks known as side-channel attacks. ... The GCM encryption mode combines a block cipher in CTR mode ( ...Generic Tools · Compiler Woes · Bitslicing
  64. [64]
    Post-Quantum Cryptography | CSRC
    To protect against the threat of quantum computers, should we double the key length for AES now? (added 11/18/18). Grover's algorithm allows a quantum ...
  65. [65]
    NIST Releases First 3 Finalized Post-Quantum Encryption Standards
    Aug 13, 2024 · The standard uses the CRYSTALS-Dilithium algorithm, which has been renamed ML-DSA, short for Module-Lattice-Based Digital Signature Algorithm.Missing: modes | Show results with:modes
  66. [66]
    [PDF] Counter Mode Security: Analysis and Recommendations
    Nov 15, 2002 · In this document we describe Counter Mode (CM) and its security properties, reviewing relevant cryptographic attacks and system security ...
  67. [67]
    RFC 3711: The Secure Real-time Transport Protocol (SRTP)
    RFC 3711 SRTP March 2004 4.1.1. AES in Counter Mode Conceptually, counter mode [AES-CTR] consists of encrypting successive integers. The actual definition ...
  68. [68]
    Do the ChaCha: better mobile performance with cryptography
    Feb 23, 2015 · In a stream cipher, the data is encrypted one byte at a time. Both types of ciphers have their advantages, block ciphers are generally fast in ...
  69. [69]
    RFC 7539: ChaCha20 and Poly1305 for IETF Protocols
    This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a combined mode.
  70. [70]
    None
    ### Summary of XTS-AES from NIST SP 800-38E
  71. [71]
    [PDF] The XTS-AES Tweakable Block Cipher - An Extract from IEEE Std ...
    Apr 18, 2008 · XTS-AES is a tweakable block cipher for sector-based storage encryption, using AES and a tweak key, addressing copy-and-paste attacks.
  72. [72]
    [PDF] Comments on XTS-AES - NIST Computer Security Resource Center
    Sep 2, 2008 · If the standard is to be adjusted to use a single key, the justification should cite Minematsu's analysis for the security bound of 4.5q2/2n.
  73. [73]
    BitLocker Overview - Microsoft Learn
    Jul 29, 2025 · Device encryption uses the XTS-AES 128-bit encryption method, by default. In case you configure a policy setting to use a different encryption ...BitLocker countermeasures · Configure BitLocker · BitLocker FAQ
  74. [74]
    dm-crypt - The Linux Kernel documentation
    dm-crypt provides transparent encryption of block devices using the kernel crypto API. LUKS is the preferred way to set up disk encryption with it.
  75. [75]
    File-based encryption - Android Open Source Project
    Oct 9, 2025 · File-based encryption allows different files to be encrypted with different keys that can be unlocked independently.