From maroberts@dial.pipex.com Thu, 11 Nov 1999 11:40:29 +0000 Date: Thu, 11 Nov 1999 11:40:29 +0000 From: Mark A Roberts maroberts@dial.pipex.com Subject: [Livid-dev] DVD Info I've just subscribed to the list, mainly after seeing the news on SlashDot and I'm looking for some more information on DVD layout - can someone point me to some useful URLs ? I am a telecommunications software developer, with some experience of writing decryption software. As a result of browsing through a copy of the css-auth code I've picked up, I can see a number of places where I THINK I can optimise/speed up the routines. As I've done this just from browsing through the code and without a DVD player in sight, I'd like some real information on the system before I post some proposed changes. Regards Mark Roberts
From derek@spider.com Thu, 11 Nov 1999 12:30:45 +0000 Date: Thu, 11 Nov 1999 12:30:45 +0000 From: Derek Fawcus derek@spider.com Subject: [Livid-dev] DVD Info On Thu, Nov 11, 1999 at 11:40:29AM +0000, Mark A Roberts wrote: > I've just subscribed to the list, mainly after seeing the news on > SlashDot and I'm looking for some more information on DVD layout - can > someone point me to some useful URLs ? > > I am a telecommunications software developer, with some experience of > writing decryption software. As a result of browsing through a copy of > the css-auth code I've picked up, I can see a number of places where I > THINK I can optimise/speed up the routines. As I've done this just from > browsing through the code and without a DVD player in sight, I'd like > some real information on the system before I post some proposed changes. There are a number of obvious changes that can be made. Three examples: a) For a start use one version of the bit generator, this should work 8 bits at a time like the code in css-descramble.c. b) The current 8 bit generator still does one of the LFSR's in forward order, then bit reverses the data, it sould be altered to generate the data directly in bit reversed order. c) It may actually be faster if that LFSR was coded as shifts and masks instead of as a table lookup (depends on the processor targeted). DF -- Derek Fawcus derek@spider.com Spider Software Ltd. +44 (0) 131 475 7034 PGP/GnuPG Keys available
From maroberts@dial.pipex.com Thu, 11 Nov 1999 15:34:03 +0000 Date: Thu, 11 Nov 1999 15:34:03 +0000 From: Mark A Roberts maroberts@dial.pipex.com Subject: [Livid-dev] DVD Info Thanks for your reply. Derek Fawcus wrote: > There are a number of obvious changes that can be made. Three examples: > > a) For a start use one version of the bit generator, this should work > 8 bits at a time like the code in css-descramble.c. I've currently got an improved version of this [untried]. However I saw what I think are some discrepencies between css-descramble and css-auth, hence I wanted some more information. One example is that there is some similar code in css-auth and css-descramble that MAY have a bug, assuming they ARE meant to do the same thing: css-descramble: lfsr0 = ((im[4] << 17) | (im[3] << 9) | (im[2] << 1)) + 8 - (im[2]&7); ============ css-auth: lfsr0 = (s->b[0] << 17) | (s->b[1] << 9) | ((s->b[2] & ~7) << 1) | 8 | (s->b[2] & 7); ============== css-descramble doesn't APPEAR to mask im[2] in the same way as css-auth does with s->b[2]. Also the '+8' can create a carry, rippling up the result, which doesn't appear to be in css-auth. I wasn't sure whether this was intentional or irrelevent. > b) The current 8 bit generator still does one of the LFSR's in forward > order, then bit reverses the data, it sould be altered to generate > the data directly in bit reversed order. As [Derek's ?] comments in the code indicated this was a good idea - I've started looking at this. > c) It may actually be faster if that LFSR was coded as shifts and masks > instead of as a table lookup (depends on the processor targeted). I don't think this is going to make a huge amount of difference - swings and roundabouts IMHO. LUT values will probably be cached on a lot of processors when working through the calculations; some processors do shifts in single clock cycles whilst others take multiple clock cycles, so I don't think one method is better than the other, except shifts MAY take up less code. Regards Mark Roberts P.S. Any recommendations on DVD drives for a stock RH 6.1 system with both IDE & SCSI interfaces ?
From alan@lxorguk.ukuu.org.uk Thu, 11 Nov 1999 15:43:19 +0000 (GMT) Date: Thu, 11 Nov 1999 15:43:19 +0000 (GMT) From: Alan Cox alan@lxorguk.ukuu.org.uk Subject: [Livid-dev] DVD Info > shifts in single clock cycles whilst others take multiple clock cycles, > so I don't think one method is better than the other, except shifts MAY > take up less code. For a modern CPU the most important thing is making operations not depend on each other and they are fetching from memory rather than storing to it. That maximises parallelism on a current CPU. Alan
From derek@spider.com Thu, 11 Nov 1999 15:59:58 +0000 Date: Thu, 11 Nov 1999 15:59:58 +0000 From: Derek Fawcus derek@spider.com Subject: [Livid-dev] DVD Info On Thu, Nov 11, 1999 at 03:34:03PM +0000, Mark A Roberts wrote: > Thanks for your reply. > > css-descramble: [snip ] > css-auth: [snip ] That's one of the things I noticed. However it is only the initialiser, thereafter the algorithm is the same. I had been intending to look closely at the implications of that to see if it is actually relavent. Actually it might reflect a bug that only certain people will see (but why have I not seen it), if there are some people for whom the authentication (or decryption) failes, they could try swapping one initialiser for the other and see if it makes any difference. > As [Derek's ?] comments in the code indicated this was a good idea - > I've started looking at this. Yup my comments. It'll save one table look up, replaceing it with (from memory) an invert in the descramble code, and a no-op in one or both of the other blocks. Note some of the tables are large - there is one that's 512 bytes long containing a repeated sequence of 8 bytes. This is simply to save masking a 9 bit value down to 3 bits before use. Some of these could be very relavent it terms of cache use. It all depends upon the nature of the CPU you're running on. Also if you've got enougth registers, the manipulation of the LFSR simply as a set of shifts then xors should be faster. I can't remember the details - but the ARM could find this usefule giving the form of some of it's innstructions. In terms of optimisation, one should (obviously) be working towards making the stream descramble as fast as possible at the expense of the other routines (sinc they're only run one and 20 times per disc change). > I don't think this is going to make a huge amount of difference - > swings and roundabouts IMHO. LUT values will probably be cached on a > lot of processors when working through the calculations; some processors > do shifts in single clock cycles whilst others take multiple clock cycles, > so I don't think one method is better than the other, except shifts MAY > take up less code. Agreed. As I said it depends on the processor. It may be worth having two versions of the code. One that does it in tables, the other with shifts (they could then be tested at build time to see which is faster). I did notice some major differences in the nature of the (x86) assembler generated in this code from some very simple transformations of the source. Now, I didn't test these for speed (since clarity and correctness were my main concerns), but I think there is definitly room to hand optimise that code. > P.S. Any recommendations on DVD drives for a stock RH 6.1 system with > both IDE & SCSI interfaces ? I'm using a hacked RH 5.1 distribution. I've got a Tosh SD M1212 (ATAPI) device connected to my (otherwise completely SCSI) fileserver. It works quite nicely, it also worked well when it was the drive attached to a workstation (on both SCSI based and ATA based machines). DF -- Derek Fawcus derek@spider.com Spider Software Ltd. +44 (0) 131 475 7034 PGP/GnuPG Keys available
From maroberts@dial.pipex.com Thu, 11 Nov 1999 17:05:45 +0000 Date: Thu, 11 Nov 1999 17:05:45 +0000 From: Mark A Roberts maroberts@dial.pipex.com Subject: [Livid-dev] DVD Info Back to the original question - any URLs on DVD structure ? Or have they all disappeared after the recent fracas ? Regards Mark Roberts
From derek@spider.com Thu, 11 Nov 1999 17:12:10 +0000 Date: Thu, 11 Nov 1999 17:12:10 +0000 From: Derek Fawcus derek@spider.com Subject: [Livid-dev] DVD Info On Thu, Nov 11, 1999 at 05:05:45PM +0000, Mark A Roberts wrote: > > Back to the original question - any URLs on DVD structure ? Ask a specific question, you may magicaly receive a specific answer. There are a lot of people earwigging on this list. Matt - how many members? DF -- Derek Fawcus derek@spider.com Spider Software Ltd. +44 (0) 131 475 7034 PGP/GnuPG Keys available
From jfbeam@bluetopia.net Thu, 11 Nov 1999 12:21:23 -0500 (EST) Date: Thu, 11 Nov 1999 12:21:23 -0500 (EST) From: Ricky Beam jfbeam@bluetopia.net Subject: [Livid-dev] DVD Info On Thu, 11 Nov 1999, Derek Fawcus wrote: > Ask a specific question, you may magicaly receive a specific answer. >There are a lot of people earwigging on this list. > > Matt - how many members? 329 Non-digested Members of Livid-dev 112 Digested Members of Livid-dev --Ricky
From derek@spider.com Thu, 11 Nov 1999 17:23:36 +0000 Date: Thu, 11 Nov 1999 17:23:36 +0000 From: Derek Fawcus derek@spider.com Subject: [Livid-dev] DVD Info On Thu, Nov 11, 1999 at 12:21:23PM -0500, Ricky Beam wrote: > On Thu, 11 Nov 1999, Derek Fawcus wrote: > >There are a lot of people earwigging on this list. > > > > Matt - how many members? > > 329 Non-digested Members of Livid-dev > 112 Digested Members of Livid-dev So given the number of names I've noticed posting in the past, we have a _lot_ of earwiggers! Which represent the MPAA :-) [Hi folks] DF -- Derek Fawcus derek@spider.com Spider Software Ltd. +44 (0) 131 475 7034 PGP/GnuPG Keys available
From mpav@purdue.edu Sat, 13 Nov 1999 16:58:31 -0500 (EST) Date: Sat, 13 Nov 1999 16:58:31 -0500 (EST) From: Matthew R. Pavlovich mpav@purdue.edu Subject: [Livid-dev] DVD Info > Ask a specific question, you may magicaly receive a specific answer. > There are a lot of people earwigging on this list. > > Matt - how many members? 447