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