2006年01月08日

続・ddp

伺かの暗号化には 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 だけサポートしておこうかな、とか。
というか暗号嫌いなんですけど。というかリークが解消されないんですけど。
posted by SSSBの人 at 09:46| Comment(0) | TrackBack(1) | SSSB

2006年01月07日

SSSBの現状

開発終了して久しいわけですが、なぜかちょこちょこといじっていたりします。
系列別の状況をメモしておきます。

・06x系
終了。ぜんぜん見ていませんというかもうコード見たくありません。

・096系(メインストリーム)
CVS リポジトリを見つけたので 096pre6 のちょっと後あたりのソースを取り出していじっています。
暗号化サーフェス対応のためですが、それ以前になんかメモリリークしまくってるのをなんとかしないと。
そういえばサイトにあるリポジトリはかなり古いのでそのうち入れ替えます。

・098系
投げました。不評というか、不具合多いし。096 からやり直します。

・Revised(次世代)
長らく放置しています。たぶん完成することはないだろうという予感がひしひしとします。

……あー、なんでこんなに分岐してしまったんでしょ?
posted by SSSBの人 at 00:06| Comment(0) | TrackBack(0) | SSSB

2005年12月28日

ddp

新理夢が ddp を採用した。困った。

1.わたしは暗号が嫌いだ。
いやまあ、嫌いなものは他にも 3D、データベース、通信、UI、リアルタイム、ハード制御などいろいろあるけど。
……って、この嫌いなものリスト職種的にまずくないか?

2.あの暗号にはバグがある。
キーによっては暗号強度が低下する。ひどいときにはまったく暗号化されない。
Winny にも同種のバグがあるらしい。

3.最新の SSSB のバグが取れない。
いるむの表示がおかしくなったまま放置している。
あそこまでややこしいサーフェス構成をしているのはいるむだけらしい。
びいくん(テスト版)もややこしさでは負けないと思うのだが、こちらは画像オフセットが 0 なので問題が出ていないらしい。

4.面倒。
PC 換えてから環境整備してないので CVS すら使えない。
というか面倒。

5.時間がない。
RPG をやる時間はある。
というか時間がない(待てコラ)

さて。
どうしたものか。
posted by SSSBの人 at 01:16| Comment(0) | TrackBack(0) | SSSB