Rewrite CSS from Stevenson 1999 paper — proper table-driven cipher

- tables.rs: 5 CSS specification tables (TAB1-TAB5, mathematical constants)
- lfsr.rs: Table-driven LFSR1 (TAB2/TAB3) + LFSR0 (TAB4), sector seed XOR,
  decrypt_key() mangling function, descramble_sector() with proper feedback
- crack.rs: Stevenson divide-and-conquer attack (2^16 LFSR1 iteration,
  LFSR0 deduction from known plaintext, 10-byte validation)
- No external code copied — original Rust implementation from the 1999 paper
- 225 tests, 0 ignored
This commit is contained in:
MattJackson
2026-04-11 17:07:21 +00:00
parent ff5547363b
commit 648ce28ac6
4 changed files with 482 additions and 386 deletions
+1
View File
@@ -12,6 +12,7 @@
pub mod crack;
pub mod lfsr;
pub(crate) mod tables;
use crate::disc::Extent;
use crate::sector::SectorReader;