前の日 / 次の日 / 最新 / 2009-02

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;
        }
    }
}