ここ2週間前後記事を書かなかった理由としては微妙ですが・・・。
一応楕円曲線暗号を作る数学の部分を勉強してから実装をしてみていました。
楕円曲線の数学の部分が意外とおもしろかったです。RSA暗号の時みたいにかなりおもしろい数式で支えられているのがいいですね。
途中でkronecker記号=>Jacobi記号=>Legendre記号を探し出すところで英語版のWikipediaを参照して英語を読んだりとなかなか大変でした。
一応最後は日本語のWikipediaにそれをある程度説明した記事があったのでまだいいですが、そう考えると翻訳ページとかは大変だろうなと思います。
楕円曲線暗号を実装しようと思ったのは、次に通信系のゲームプログラムを作ることになりそうなので
その基本処理として楕円曲線暗号を使おうかな~ということでこの作業をやっていました。(RSA暗号でもよかったのですが、強度的に楕円曲線暗号がよいという記事から試してみようかと)
実装した後でデバッグしているときに以前に組んだ多倍長整数のライブラリにいろいろとバグが見つかるという誤算があり、
その部分のデバッグにかなり時間をとられました・・・。バグがだいぶ解消されただけよしとしますが。
なお、「楕円曲線」だけの処理では鍵交換しかできないので、公開鍵暗号として成立するには別の形式の組み合わせがいる、ということも理解できました。
そう考えるとRSA暗号というのはRSAだけで公開鍵暗号や電子署名など様々なものに使えるかなり便利な暗号なんだな~ということに。
仕事がほぼない状態の人間ですが、何をやっているのやら、と。
2011/06/21 追記
なんか楕円曲線暗号のソースコードをみたいような検索をする人がいるのですが、ソースコードを探すならオープンソースで楕円曲線暗号をくんでいるものをみるのが簡単だと思います。
例としては、最新のOpenSSLなんかがいいと思います。こいつには楕円曲線暗号以外にも多種多様なハッシュ取得ルーチンなどもありますので参考にできると思います。