=encoding euc-jp =head1 名前 Crypt::Rijndael - Crypt::CBC対応のRijndael暗号化モジュール =head1 概要 use Crypt::Rijndael; # keysize() は32, しかし24 と 16も可能です # blocksize() は 16です $cipher = new Crypt::Rijndael "a" x 32, Crypt::Rijndael::MODE_CBC; $cipher->set_iv($iv); $crypted = $cipher->encrypt($plaintext); # - あるいは - $plaintext = $cipher->decrypt($crypted); =head1 説明 このモジュールは、次世代暗号化標準(Advanced Encryption Standard)として 選ばれたばかりのRijndael暗号を実装します。 =over 4 =item keysize キーサイズを返します。これは32(バイト)です。Rijndael暗号は 実際には16、24または32バイトをサポートします。しかし Cと、これを通信する方法がありません。 =item blocksize アルゴリズムは実際には、我々のバイト数の倍数である任意の ブロックサイズをサポートしていますが、 Rijndaelのためのブロックサイズは16バイト(128ビット)です。 しかしながら、128ビットはAES指定のブロックサイズです。 そのためこれが私たちはサポートする全てです。 =item $cipher = new $key [, $mode] 与えられたキー(長さが128、192あるいは256ビットでなければなりません)で 新しいC暗号オブジェクトを作成します。 追加のC<$mode>引数は暗号化モードです。 C (electronic codebook mode, デフォルト)、 C (cipher block chaining, Cが行うのと同じ)、 C (128-bit cipher feedback)、C (128-bit output feedback)、 あるいはC (counter mode)のいずれかになります。 ECBは非常に安全ではありません(なぜかわからなければ暗号法についての本を 読んでください!)、そのためおそらくはCBCモードを使うべきでしょう。 =item $cipher->set_iv($iv) 連鎖モードにより利用される初期値ベクトルを変更します。 これはECBモードには関係ありません。 =item $cipher->encrypt($data) データを暗号化します。C<$data>の大きさはC(16バイト)の 倍数でなければなりません。そうでなければ、この関数はcroakします。 それを別にすれば、それは(ほとんど)任意の長さにすることができます。 =item $cipher->decrypt($data) C<$data>を復号化します。 =back =head1 参考資料 L, http://www.csrc.nist.gov/encryption/aes/ =head1 バグ 定数MODEをEXPORTあるいはEXPORT_OKしなければなりません。 =head1 作者(=AUTHOR) Rafael R. Sevilla The Rijndael Algorithm was developed by Vincent Rijmen and Joan Daemen, and has been selected as the US Government's Advanced Encryption Standard. =head1 翻訳者 川合孝典 (GCD00051@nifty.ne.jp)