ゲーム用リソース如きにまともな暗号はいらない

google:vc xor 暗号化で検索が来ていたので思い出したのだが・・・
そう。前々から思うのだが、普通のスタンドアローンゲームソフトウェアを作る場合、ゲーム用リソースすべてに暗号化を施すなんていうのは愚の骨頂だと感じている。
なぜなら、ゲームソフトを実行する時に複合化するわけだが、その時にいちいち数メガバイトもあるリソースを複合化なんてやっていたらものすごい計算量になるわけである。すなわち処理速度が遅くなるのだ。
なので、DxLibFanの方でも 「ヘッダのみ暗号化したら・・・」 とかアイディアを書いていたわけだけど、そもそもゲーム用リソースにまともな暗号アルゴリズムは必要じゃないと思うのだ。Camelliaなんてゲーム用ソフトウェアの読み込み処理では遅すぎて使い物にならない・・・*1
例えば、MT法乱数でxorでも十分だと感じる。*2


極めつけにその複合化に使うキーを何処に隠すかという点についてもすごく疑問が残るわけだ。そのキーを隠すためにさらに小細工をしなくてはならない・・・。
なので結局がんばってAnalysisすればキーなんてものが見つかるのは時間の問題ではないかといつも思っている。*3


こんなのに小細工なんてしてプログラムを増やしたくないので正直にMT法乱数の種値を数百バイト用意してあげてヘッダ部分(1KBほど?)をMT法乱数で取得した値をXorさせてやればもう偽装ファイルのできあがりって寸法で別にいい気がしなくも無いというのが私なりのソリューションなのだが・・・・・・


でも、なんか、この手の内容って前にも書いたような気がしなくも無い・・・デジャブ!?

*1:ローディング速度の体感速度は個人差によるのでこの個人的な見解につっこまないで欲しい

*2:暗号学的見地は無視する

*3:binaryをいじったこと無い人が言うのもなんだけど・・・

google:ゲームで使う 言語で飛んできた人へ

C言語をまず最初にやってみよう!!!
それからC++JavaC#HSPRubyPythonに移っていっても遅くは無いよ・・・
ってかC言語を習得後に他のプログラミング言語習得が楽すぎて笑っちゃうかも!?
あとは各プログラミング言語に存在する概念理解だけだからねぇ・・・*1

*1:でも、これが結構 曲者だったりする・・・