=encoding euc-jp =head1 名前 Crypt::CAST5 - CAST5ブロック暗号 =head1 概要 use Crypt::CBC; my $crypt = Crypt::CBC->new({ key => "secret key", cipher => "CAST5", }); my $message = "All mimsy were the borogoves"; my $ciphertext = $crypt->encrypt($message); print unpack("H*", $ciphertext), "\n"; my $plaintext = $crypt->decrypt($ciphertext); print $plaintext, "\n"; =head1 説明 このモジュールはCAST5ブロック暗号の速度を上げるためのコンパイルされた Cコードを使った実装を提供します。CAST5はCAST-128としても知られています。 それはC. Adams と S. Tavaresによって開発されたCAST設計手順の製品です。 CAST5暗号はロイヤルティーフリー(royalty-free)で利用することができます。 =head1 関数 =head2 blocksize CAST5ブロック・サイズを返します。それは8バイトです。この関数は Crypt::CAST5がCrypt::CBCで機能できるようにするため存在します。 =head2 keysize CAST5キー・サイズの最大長、16バイトを返します。 =head2 new $cast5 = Crypt::CAST5->new($key); 新しい暗号オブジェクトを作成します。もしオプションのkeyパラメータが与えられると、 それをinit()関数に渡します。 =head2 init $cast5->init($key); 使用する暗号キーを設定あるいは変更します。鍵(key)の長さは40ビット(5バイト)から 128ビット(16バイト)でなければなりません。使用される鍵が80ビット以下であると 暗号化と復号化が多少速くなることに注意してください。 鍵は、パスワードのように印字可能なものではなく、ランダムなバイナリデータに するのはとてもよいことです。パスワードを暗号鍵に変換するためには メッセージ・ダイジェスト関数が便利でしょう;L や Lを ご覧ください。Crypt::CBCは実際の暗号鍵を得るために、与えられた"鍵"をMD5に 通すことに注意してください。 =head2 encrypt $ciphertext = $cast5->encrypt($plaintext); 現在の暗号鍵を使って平文(plaintext)のブロックを暗号化し、対応する 暗号文(ciphertext)を返します。入力の長さは8バイトでなければなりません。そして 出力も同じ長さになります。暗号化がECBモードであることに注意してください。 つまり各ブロックを別々に暗号化します。このままでは辞書攻撃(dictionary attack)に 対して脆弱なままです。そのため一般的には何らかのブロック間の連鎖を使うことが とてもよいことです;Lをご覧ください。 =head2 decrypt $plaintext = $cast5->decrypt($ciphertext); 暗号文(cipertext)を復号化し、対応する平文(plaintext)を返します。 =head1 参考資料 RFC 2144, "The CAST-128 Encryption Algorithm", C. Adams, May 1997 L =head1 作者 Bob Mathews, Ebobmathews@alumni.calpoly.eduE =head1 著作権およびライセンス(=COPYRIGHT AND LICENSE) Copyright (C) 2002 Bob Mathews This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 翻訳者 川合孝典 (GCD00051@nifty.ne.jp)