Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO 26429-6 (SMPTE 429-6) defines the encryption of essence essence information contained in D-Cinema Track Files using the Advanced Encryption Standard (AES) cipher algorithm in Cipher Block Chaining (CBC) mode, as defined in NIST SP 800-38A. The standard optionally supports essence integrity verification using the HMAC-SHA1 algorithm. The encrypted track file is structurally very similar to a plaintext MXF OP-ATOM track file, differing in three key areas: replacement of the Essence Container Label with an Encrypted Essence Container Label, insertion of a Cryptographic Framework in header metadata, and replacement of plaintext KLV Triplets with Encrypted Triplets. The encrypted track file retains full MXF structural metadata compatibility, meaning that non-decrypting systems can still parse the file structure, read timing information, and identify the encrypted essence type without possessing the decryption key. This backward compatibility is essential for digital cinema workflows where multiple systems may process the same track file at different stages of the distribution chain.
The Cryptographic Framework is carried as an MXF Descriptive Metadata (DM) Framework. A Track File may contain one or more DM Tracks, each containing a single Cryptographic Framework. The Framework references a Cryptographic Context that defines critical parameters including the Cipher Algorithm (AES-128 CBC), the optional MIC Algorithm (HMAC-SHA1), and the Cryptographic Key ID (a UUID). A single cryptographic key is used per essence track, meaning all Encrypted Triplets in a given encrypted track refer to the same Cryptographic Context. This one-key-per-track design simplifies key management while providing adequate security isolation between picture, sound, and subtitle tracks. In practice, a D-Cinema Composition with one picture track and six audio channels would require seven distinct Cryptographic Contexts, each with its own Key ID. The standard allows multiple Cryptographic Frameworks within a single track file, but in practice each essence track contains exactly one framework.
| Item | Type | Length | Description |
|---|---|---|---|
| Cryptographic Framework Key | Set Key | 16 bytes | Identifies the Cryptographic Framework Set (060e2b34 02530101 0d010401 02010000) |
| Context SR | Strong Ref | 16 bytes | Strong reference to the associated Cryptographic Context |
| Cipher Algorithm | UL | 16 bytes | Identifies AES-128 CBC or null (no encryption) |
| MIC Algorithm | UL | 16 bytes | Identifies HMAC-SHA1 with 128-bit key or null |
| Cryptographic Key ID | UUID | 16 bytes | Unique identifier for the cryptographic key |
The Encrypted Triplet is a Variable Length Pack using KLV (Key-Length-Value) encoding per SMPTE 336M. Each Encrypted Source Value contains a 16-byte initialization vector (IV), a 16-byte Check Value (0x4348554B repeated), the encrypted essence data, and PKCS #5 padding to ensure the ciphertext is a multiple of 16 bytes. The reference decryption processing model defines five modules: Cryptographic Filter, MIC Key Derivation, Encrypted Triplet Integrity, Encrypted Triplet Decryption, and Index Table Generation. The MIC Key Derivation module is particularly important for engineering implementations: it derives the HMAC key from the cipher key using a one-way function, allowing the integrity verification module to operate in a less trusted environment without exposing the decryption key. This enables a split-security architecture where integrity checking can be performed by a general-purpose processor while decryption is handled by a dedicated hardware security module.
The Check Value serves a crucial engineering purpose: upon decryption, the processing application can verify that the correct cryptographic key is being used by comparing the recovered Check Value against the known constant 0x4348554B (“CHUK” in ASCII). This provides immediate feedback on key correctness without requiring full frame decode. If the Check Value does not match, the decryption process can abort immediately, preventing corrupted or incorrectly decrypted data from reaching the playback pipeline. This early abort mechanism is particularly valuable in high-availability cinema server environments where rapid error diagnosis is essential. The Check Value is present in every Encrypted Triplet, providing per-frame key verification.