The DVD Content Scrambling System Explained (Part 2)
In this second part of the "DVD Content Scrambling System Explained" series of posts, we'll examine how the decryption process works. But before we can decrypt a DVD movie's data, a disk key and title key must first be obtained. These two keys are found in an encrypted format on the DVD disk and are 5 bytes in size. The process in which the two keys are decrypted and used to decrypt the movie data is graphically shown below in Figure 1.
Figure 1: Content Scrambling System Key & Data Decryption
The disk key is the first key that must be decrypted. There are 409 different versions of the disk key found on the DVD disc in a hidden sector. Each version of the key can be decrypted to produce the same disk key by using a different DVD player's key. The unencrypted disk key can be found by the function DA using the player key assigned to the DVD player as well as the correct encrypted disk key. To ensure the correct version of the encrypted disk key was used, verification takes place using the DA function using a hash found on the disk as well as the recently decrypted disk key. If the same disk key is returned by the verification then it was decrypted correctly. Otherwise the DVD player will try to decrypt another version of the encrypted disk key, verify it using the hash, and repeat until it obtains the correct, decrypted disk key.
Once the disk key has been obtained, it is used to decrypt a title key. This key is assigned to each "title" on the DVD. Such titles can range from the entire movie to a behind the scenes video. The title key is found in an encrypted form on the disk and must be decrypted by the DB function using the disk key.
Now that the title key has been found, the movie can now be decrypted. The movie’s data is spread out over many 2048 byte sectors on the DVD disk. The movie data, found after the 128 byte sector header, can be decrypted by the function DC using the encrypted data, the title key, and another key called the sector key. This sector key is found in an unencrypted format in bytes 80 to 84 of the sector header.
|< Prev.||Jump to Part 1, Part 2, Part 3, Part 4.||Next >|