01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2009-02-07 Sat
■ A Known Plaintext Attack on the PKZIP Stream Cipher を読む
[BK94] を読む必要がありそう。
preimage のところで 16bit では無く、 14bit を推測する理由がわかった。
最終的に出力されるのに関係するのが、key2 の 16bit で、
その内、 0 .. 1 bit が固定されているため、
残りの 2 .. 15 bit を推測する。
最終的に出力される s になる 14bit は 64 種類
256x64 のテーブルを作成できる。
ushort[64][256] preimage; void preimage_init() { ushort temp; ubyte s; for(int i;i < 256;i++) { for(int j;j < 64;j++) { temp = i << 2 | j << 10 | 3; s = ((temp * (temp ^ 1)) >> 8) & 0xFF; preimage[s][j] = i << 2 | j << 10; } } }