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-25 Wed
2009-02-24 Tue
■ 愚か者の偶像撃破 - デモンズソウル メモ [デモンズソウル][game]
愚か者の偶像戦開始
4回ヒットで、撃破できた。
なんか、霧が残ったままなんですけど。
前日、ほかの人に連れられてきたときに、上の人を倒していたのはこのためか?
上の人を倒した後再戦。
無事次の要石まで到着。
■ 黒のファントムにやられる - デモンズソウル メモ [デモンズソウル][game]
塔のラトリアで黒のファントムを2体、撃退。
嵐の祭祀場で、侵入される。
要石に戻る途中、門を通過した直後、後ろから致命の一撃を受ける。
文字通り致命傷だった。
思いっきり油断していた。
友人に召喚してもらい、嵐の祭祀場を進める。
一体目のデーモン前まで到着して終了。
感謝ありで送還されると、ソウルがもらえるようだ。
タカアシ鎧蜘蛛で他の人に拾ってもらい復活。
デモンブランドを装備できるようになった。
前日、黒のファントムを4体倒したからかソウル傾向が白くなっていた。
結果、デモンブランドの攻撃力が2倍になっていた。
2009-02-23 Mon
■ 侵入されまくり - デモンズソウル メモ [デモンズソウル][game]
友人と「塔のラトリア」をマルチプレイ。
短時間に4体の黒のファントムに侵入された。
無事3体、撃退した。
一緒に遊んだ人のトロフィーを、見ているときに侵入されたのが一回あった。
棒立ちのままやられた。
ソウルサインを出したとき、友人ではなく別の人に拾われる。
そのまま進める。
どんどん進んで行く。
もしかしてこの人は2回目なんだろうか。
教会の上の人を倒していた。
何でだろう?
上の階から下の教会前の階段へ飛び降りていった。
ここを降りれるのか。
飛び降りてみた。
足場に乗れずに落ちて死んだ。
その後、友人と進める。
今度は、無事足場に乗れた。
で、下に降りる。
壁向きに下りたら、後ろからNPCの黒いファントムにやられた。
3回目、
友人が、ほかのファントムも召喚。
三人で進む。
下から到着。
「愚か者の偶像」戦開始。
ほかのファントムさん大活躍だった。
2009-02-21 Sat
2009-02-20 Fri
2009-02-19 Thu
2009-02-18 Wed
2009-02-17 Tue
2009-02-16 Mon
■ BK94
key3_i = p_i ^ c_i key2_i+1 = crc32(key2_i,MSB(key1_i+1)) key2_i = crc32i(key2_i+1,MSB(key1_i+1)) = (key2_i+1 << 8) ^ crcinvtab(MSB(key2_i+1) ^ MSB(key1_i+1) = crc32i(key2_i+1,0) ^ MSB(key1_i+1)
key3 から key2_i+1 の 10..15 推定 2..9 推定
16 .. 31 推定
■ JPEG JFIF ヘッダ
仮定 サムネイルなし、解像度単位 dpi
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
FF D8 FF E0 00 10 4A 46 49 46 00 01 02 01 XX XX XX XX 00 00
解像度 72dpi(00 48), 300dpi(01 2C), 600dpi(02 58)
2009-02-10 Tue
■ key2_0 を推測
key2_1 の定義
key2_1 = crc32 (key2_0, MSB(key1)); = crc32(key2_0,0) ^ crctab[MSB(key1)] key2_0 = (key2_1 << 8) ^ crcinvtab[MSB(key2_1)] ^ MSB(key1)
2009-02-09 Mon
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; } } }
2009-02-03 Tue
■ preimage table を作る
ZIP Attacks with Reduced Known Plaintext
Given a stream byte si+1, we can find sixty four values for bits 2..15 of key2i.
It’s easy to see why: fourteen bits of key2i produce eight bits of si+1, so there
are six left over. We can create a table of 256 x 64 bytes such that given si+1 and
bits 10..15 of key2i, we can look up bits 2..9 of key2i. We call this the preimage
table.
ubyte decrypt_byte() { uint temp = key2 | 3; return (((temp * (temp ^ 1)) >> 8) & 0xFF); }
c_i(0x00-0xFF) = p_i(0x00-0xFF) ^ s_i(0x00-0xFF)
s_i = c_i ^ p_i
preimage[s_i+1(0x00-0xFF)][crc32(key2,0)[10..15](0x00-0x3F)] = crc32(key2,0)[2..9]
どうやって作るんだろう?
2009-02-02 Mon
■ ZIP Attacks with Reduced Known-Plaintext を読む
1.1 The PKZIP Stream Cipher
{ unsigned short temp; key0 = crc32 (key0, pt); key1 = (key1+LSB(key0)) * 0x08088405 + 1; key2 = crc32 (key2, MSB(key1)); temp = (key2 & 0xFFFF) | 2; return LSB( (temp * (temp ^ 1)) >> 8); }
CRC32 の定義
crc32(32bit crc, 8bit b)
rerutn ((crc >> 8) ^ crctab[LSB(crc) ^ b])
crctab[a ^ b] = crctab[a] ^ crctab[b]
crc32(a,b) = (a >> 8) ^ crctab[LSB(a) ^ b]
= (a >> 8) ^ crctab[LSB(a)] ^ crctab[b]
= crc32(a,0) ^ crctab[b]
key0 の 8bit(LSB) が key1 に
LSB(crc32(key0,0)) ^ LSB(crctb[p])
key1 の 8bit(MSB) が key2 に
key2 が 出力に影響する。
3 Divide and Conquer
key01 を推測するのに key00 の 16bit は必要ない。
LSB(key01) を推測するためにLSB(crc32(key00,0))を推測する。
LSB(key01) = LSB(crc32(key00,p1))
= LSB(crc32(key00,0)) ^ LSB(crctab[p1])
MSB(key11) = MSB( (key10 + LSB(key01)) * 0x08088405 + 1 )
(A) = MSB( LSB(key01) * 0x08088405) +
(B) MSB( key10 * 0x08088405) + possible carry bit.
(B) の 9bit を推測する。
key2i 2..15(14bit)を推測
si+1 と key2i の 10..15(6bit) で
key2i の 2..9(8bit) を参照する。
256*64バイト の preimage table
key2i の 14bit で si+1 の 8bit を作る
crc32(key20,0) の 10..15(6bit) を推測
s2 preimage table crcab[MSB(key11)] で crc32(key20,0) の 2..9(8bit) を推測
key21 = crc32(key20,MSB(key11))
preimage から key2 を推測
key1 を推測
key0 を推測
2^63 個のキー