Yeah, yeah - DES is old news, but I wanted to start simple, so DES it is. I've written a naive DES implementation, optimisation comes next, then the software/hardware hybrid. Then something more whizzy like Rijndael.
But... there's always a but isn't there? I have got my DES implementation to a stage where:
D(E(x)) = x
However, when I run the test cases I've found on the web, they don't show the correct ciphertext for a given plaintext/key combination. I've got a feeling that it lies in the bit ordering - all the documentation starts with the LSB on the left - but they continue this notation down to the hex values - to decimal five would be written in hex as A - because the binary is 1010. I'm confused. I can't really find documentation to back up this suspition, but the blank key with the parity bits every eigth bit is written 0x0101010101010101, rather than 0x8080808080808080 as I'd expect.
I'll try munging some things tomorrow to try and fix it, but as I'm doing it as an academic exercise - i.e. I need the general alg, and something which will do D(E(x)) = x, but I don't need to interface with other DES software, I think I'll leave it if there is no obvious solution. Perhaps I can call it D35 :-)
Generally I try and keep it just coding up here, but seeing as Kid A generated so much traffic on here, I thought I'd add a couple of recommendations. First is Black Market Music by Placebo and the second is Showbiz by Muse. Saw Placebo live last weekend in Glasgow. Really good show. The album is more pop than there last album (which I think is the best they've done). Muse are new to me, but I keep seeing them live on tele and they're really good.
The webcam is broken, but I've just not had time to look into the why yet - been too busy.