名前¶
Crypt::Blowfish - PerlのBlowfish暗号モジュール
概要¶
use Crypt::Blowfish;
my $cipher = new Crypt::Blowfish $key;
my $ciphertext = $cipher->encrypt($plaintext);
my $plaintext = $cipher->decrypt($ciphertext);
説明¶
Blowfishは強力な暗号化をおこなうことができ、キーの大きさをを56バイト (448ビット・キー)にまでキーを大きくすることができます。このモジュールで 可能な最も強力な暗号であることを確実にするためフルのキーサイズを 利用することをお勧めします。
Crypt::Blowfishは以下のメソッドを持っています:
blocksize()
keysize()
encrypt()
decrypt()
関数¶
- blocksize
-
暗号ブロックの大きさ(バイト数)を返します。
Crypt::Blowfishは、可変長のキーを使用することが可能なため キーの大きさを返しません。(より正確に言えば、2.09からは...。 現在は返します。これは変更されるものと思ってください)
- new
-
my $cipher = new Crypt::Blowfish $key;
これは、$keyを使って新しいCrypt::Blowfish BlockCipherオブジェクトを 作成します。$keyのところには
keysize()
バイトのキーになります。(最小は8バイト) - encrypt
-
my $cipher = new Crypt::Blowfish $key; my $ciphertext = $cipher->encrypt($plaintext);
この関数は$plaintextを暗号化し、$ciphertextを返します。 $plaintextと$ciphertextは
blocksize()
バイトになるはずです。 (ヒント:Blowfishは8バイトのブロック暗号です) - decrypt
-
my $cipher = new Crypt::Blowfish $key; my $plaintext = $cipher->decrypt($ciphertext);
この関数は$ciphertextを復号化し、$plaintextを返します。 $plaintextと$ciphertextは
blocksize()
バイトになるはずです。 (ヒント:前のヒントをご覧ください)
使用例¶
my $key = pack("H16", "0123456789ABCDEF"); # min. 8 bytes
my $cipher = new Crypt::Blowfish $key;
my $ciphertext = $cipher->encrypt("plaintex"); # SEE NOTES
print unpack("H16", $ciphertext), "\n";
プラットホーム¶
プラットホームとパフォーマンステストについてはREADMEをご覧ください
注意¶
このモジュールはCrypt::CBCで使うことが出来ます。 暗号化ブロック連鎖モード(Cipher Block Chaining mode)のために、 このモジュールを使うのであれば、Crypt::CBCのperldocを読むことを お勧めします。事実、8バイトよりも大きいデータをこれで暗号化する つもりであれば、何らかのタイプのブロック連鎖の助けを必要とする でしょう。8バイトよりも多く暗号化しないのであれば、あなたのデータは 正確に長さ8バイトでなければなりません。必要であれば独自に パディングしてください。nullバイトである"\0"は完全に、これに利用 するのに適しています。さらに、現在のCrypt::Blowfishのメンテナは Crypt::CBCでのデフォルトの'RandomIV'初期化ベクトルをランダムな 初期化ベクトルで置換するCrypt::CBC_Rをリリースするかもしれませんし、 しないかもしれません。(/dev/urandomとその関連の制限によります) どちらの場合であっても、Crypt::CBC_Rについては[email protected]に メールしてください。
参考資料¶
Crypt::CBC, Crypt::DES, Crypt::IDEA
Bruce Schneier, Applied Cryptography, 1995, Second Edition, published by John Wiley & Sons, Inc.
著作権(COPYRIGHT)¶
The implementation of the Blowfish algorithm was developed by, and is copyright of, A.M. Kuchling.
Other parts of the perl extension and module are copyright of Systemics Ltd ( http://www.systemics.com/ ).
Code revisions, updates, and standalone release are copyright 1999-2001 W3Works, LLC.
作者¶
Original algorithm, Bruce Shneier. Original implementation, A.M. Kuchling. Original Perl implementation, Systemics Ltd. Current maintenance by W3Works, LLC.
Current revision and maintainer: Dave Paris <[email protected]>
翻訳者¶
川合孝典([email protected])