On Tue, Aug 11, 2009 at 3:22 PM, Stroller<strol...@stellar.eclipse.co.uk> wrote:
> I'm just looking for a better answer than ones prefaced with "presumably"
> and which treat DeCSS encryption like it's black magic.

I can't give you a definitive answer to your original question but I
can hopefully shed some light on how CSS works, no black magic. Let me
say also that I'm no expert and this is all "as I understand it".

First, DeCSS is actually one (the first?) decryption method, and is
very old and mostly obsolete. What you probably meant to say was CSS
(Content-Scrambling System) which is the encryption method. Most
likely whatever programs you're running nowadays are using libdvdcss,
not DeCSS.

DeCSS used a compromised player key (gleamed from Xing player on
Windows, IIRC) which was revoked and invalid on newer discs, while
libdvdcss uses a computed lookup table of every possible player key
(400 or so) as well as falling back to brute force in the event of a
disc with a new set of keys so that it can decrypt nearly everything.

CSS is handled in a series of keys, and the hardware of the DVD drive
is involved in at least some of the key authentication. On the DVD,
there are keys at the sector, title and disc level. The disc key is
needed to get the title key, and the title key is needed to decrypt
the sector keys to get to the actual movie data. The 400+ variations
of the disc key (one for each possible player key) stored on the DVD
itself in abnormal locations (possibly unreadable to dd?) such as disc
lead-in. The DVD player software gives the drive a player key and it
cycles through all of the disc keys on the DVD until it finds a match
(or doesn't). Even if you made a 100% perfect read of the original,
nearly all consumer-grade DVD burners are forbidden from writing the
CSS key data to DVD+/-R discs (and I believe DVD-R discs even
physically lack the area where they would go).

I can't give you a definitive answer on why dd gives you different
results, but I would tend to agree with the presumption of the other
people who replied. My suspicion is that a valid player key was given
to the drive by the other program you used and the "door was left
open" so to speak, causing the drive to then output valid data when
you used dd on it the second time. I'm not sure how long that player
key lasts in the DVD drive (if it does at all). I guess you could look
at the sources of libdvdread and libdvdcss to see exactly how it's
done.

Typically, if you want to reduce wear and tear on your DVD drive,
you'd use vobcopy which will handle the decryption and copying of the
data in one motion. Then you should be able to transcode from those
files to the format you want without needing the disc in the drive.
Since transcoding is usually the slow part, if you've got a lot of
disc space on this new beast of a machine you might want to do all of
the copying first and then just transcode them in a huge batch
(perhaps that was already your plan from the beginning).

As CSS was rendered obsolete 10 years ago, finding any technical info
is kind of hard since it seems people have moved onto more challenging
pursuits. Googling mainly results in a billion pages about copying
movies on Windows.

Reply via email to