コラ氏のCPS2解析 変換テーブルがCHDで丸ごと追加されるなど、最近少し動きが出ているCPS2についてNicola氏の続報:
1年前に変換テーブルの相補性を発見してからは、CPS2の暗号化について特にわかったことはないのですが、ここでわずかでもこれまでに判明していることについて解説したいと思います。
よくある勘違いが、解読テーブルは「ランダムデータ」であるというものです。ぱっと見ではそう感じるかもしれませんが、きちんと調べるとそうでないことがわかります。
暗号値と出力値比べたとき、もしランダムなテーブルだとすると出力値の各ビットが変更される確率は50%ですが、以下の表を見るとそうなっていません。ほとんどの値は50%くらいになっていてランダムなようですが、全然違う値もあります。
このように、暗号化アルゴリズムは拡散が不完全なのです。まだ解読はされてませんが、これが突破口になるかもしれません。
特に興味深い4つの値を赤色にしています。ゲーム毎にテーブルは変わるので値は変化しますが、この4つだけは常に同じ値なのです。これは変換アルゴリズムの明らかな特性といえます。で、これは役立つのでしょうか。もしもアルゴリズムがキーに依存したビット置換をしているならば、暗号値のビット3とビット9、また復号値のビット0と14には置換が影響しないといえます。しかしこれとは別に、ビットがいつ反転されるかが正確にわからなければ、この特性から得られることは多くありません。これを見つけ出すことがアルゴリズム解析の大きな進展になるかもしれません。