Crypt-Blowfish-2.09 > Crypt::Blowfish

名前

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についてはamused@pobox.comに メールしてください。

参考資料

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 <amused@pobox.com>

翻訳者

川合孝典(GCD00051@nifty.ne.jp)