Bloglinesチャンネル開発における課題の1つとして、パスワード保存方法があります。
これをなんとかするため、C++又はCの暗号化ライブラリを探していましたところ、libdesというDESの暗号化ライブラリを見つけました(libdesの公式サイトってどこだろう?)。
DESが暗号方式として強いのか弱いのかは良く分かりませんが、カジュアルクラッキング対策としては十分でしょう。
このライブラリの最終アップデートはなんと1998年1月8日。7年前です。こんな古くて大丈夫かと思いましたが、Visual C++.NET 2003で問題なくコンパイルできるようです。
ちょっと使ってみましたが、特に大きな問題はなく暗号化/復号化ができました。1998年にリリースしたソースコードが2003年にリリースされたコンパイラで問題なく使えるのですから、すごいことです。作者のEric Youngさんに感謝。
しかし問題が1つ。ライセンスです。
こんな条項があります。
3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by Eric Young (eay@cryptsoft.com)これはいわゆるBSDライセンスの広告条項というやつですね。
DESは弱いのかもしれませんが、今回のケースでは十分過ぎるほど強力って気がしますね。
今回のケースは、Bloglinesチャンネル(DLL)をリバースエンジニアリングされたらおしまいという限界があります。BloglinesチャンネルをリバースエンジニアリングするのはたぶんDESを解くよりも簡単でしょう。なのでDESで十分、ということです。
でも(今日見つけた)AESのライブラリのライセンスはDESのライブラリよりも使いやすくなってますね。強度うんぬんではなくライセンスの使いやすさからAESの方を選択するかもしれません。
最後にはBlowFishに行き着くのかもしれませんけどね。