August 03, 2005

pure ruby blowfish

blowfishpr.rb is a pure ruby implementation of Blowfish crypt algorithm. Advantage is run anywhere without complicated installation. Disadvantage is speed. Especially, key initialization and weak key checking is really slow (e.g. 250ms and 350ms respectively on my Pentium-M laptop).

Therefore I implepented key save/load API to use pre-computed key vectors. With key pre-computation, encryption and decryption speed is somewhat reasonable for usual web applications.

This library is not documented, so if you have any questions, feel free to write some comment here.

もりきゅうさん作成のbf.rbを改良して、blowfishpr.rbを作りました。 Blowfish暗号アルゴリズムによって文字列の暗号化が行えます。遅いので、鍵を最初に計算しておく機構をつくりました。あらかじめ計算しておけば、それなりに使えるとおもいます。では。

Posted by arai at August 3, 2005 10:49 AM
Comments

鍵を、ってのは拡大鍵の計算のところかな。

基本的に、よっぽど重いルーチンでないかぎり、拡大鍵計算のコストはあんまり考えないのが暗号業界のスタイルです。
実際に動かしてみると毎回拡大鍵を導出していたらかなり計算コストがかかるのが実情です。
ですから、拡大鍵を計算してキャッシュしておくのは当然やるべきことだと思います。

Posted by: y_ikeda on August 4, 2005 12:50 AM

そうです。拡大鍵です。CGIなどでの利用だと、うまくキャッシュしておく方法がないので、Rubyのコードとして拡大鍵をダンプするメソッドをつけました。

Posted by: arai on August 4, 2005 01:04 AM
Post a comment














Please enter this 6digits Security Code (for SPAM's sake...).
spam対策のため6桁のセキュリティコードを入力してください。