伺かの暗号化には ddp, dap, dfp, dgp とあって、前回指摘した問題は dgp のものでした。
ここに謹んで訂正致します。
って、なんでこんなにあるの? こんなに要るの?
だいたい、これらについて言及したドキュメントが見当たらないわけですが、みんなどこから見つけてくるんでしょう。
謎です。
と言いつつわたし自身なんでわかったんでしょう。謎です。(ヒント: 互換処理系)
これらは順次実装されていったはずですが、その順序や経緯についてもまったくわかりません(略歴あたりを見ればわかるかも)。
そもそもエンコーダがどこかにあるはずなんですが、わたしはその所在を知りません。
というかですね、伺か謎仕様多すぎ。こんなものに追随する互換処理系作者の方々には敬意を表するしかありません。
ついでなので詳細を書いておきます。
ddp と dap はほぼ同じで、擬似乱数と xor を取るだけのものです。
dfp, dgp はファイル名を元にして、MD5 digest のからんだ演算の結果をキーにしています。
(このくらいは書いても問題ないよね?)
でもって dgp の場合、暗号化用のキーを 32 + ファイル名長分生成しているにもかかわらず、キーの長さを strlen(key) で取っています。
つまり、偶然キーの途中に 0 があると短くなってしまうわけです。これはどう見てもバグですが、直すと従来のデータが使用できなくなるため、いまさら変えられません。
キーが短くなれば、それだけ暗号強度は低下します。それどころか、そもそもデコードした結果は png だということがわかっているわけであり、png の先頭 16 バイトは事実上固定なので、キーの長さが 16 バイト以下の場合はあっさり解読されてしまいます。固定データと xor を取ったら、それがキーですから。
実際、復号方法を知らないときに、それでいくつかの画像の復号に成功しました。
さらに言うなら、たまたま先頭が 0 だとまったく暗号化されないという……。
というわけなのでとりあえず ddp, dap だけサポートしておこうかな、とか。
というか暗号嫌いなんですけど。というかリークが解消されないんですけど。
2006年01月08日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/256007
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
[伺か]ddp
Excerpt: 伺かの暗号化には ddp, dap, dfp, dgp とあって、(中略) これらは順次実装されていったはずですが、その順序や経緯についてもまったくわかりません(略歴あたりを見ればわかるかも)。 ..
Weblog: 小物の戯言 - 略歴雑記
Tracked: 2006-01-09 03:04
http://blog.sakura.ne.jp/tb/256007
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
[伺か]ddp
Excerpt: 伺かの暗号化には ddp, dap, dfp, dgp とあって、(中略) これらは順次実装されていったはずですが、その順序や経緯についてもまったくわかりません(略歴あたりを見ればわかるかも)。 ..
Weblog: 小物の戯言 - 略歴雑記
Tracked: 2006-01-09 03:04