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暗号を実装します。
キーサイズを返します。これは32(バイト)です。Rijndael暗号は
実際には16、24または32バイトをサポートします。しかし
Crypt::CBCと、これを通信する方法がありません。
アルゴリズムは実際には、我々のバイト数の倍数である任意の ブロックサイズをサポートしていますが、 Rijndaelのためのブロックサイズは16バイト(128ビット)です。 しかしながら、128ビットはAES指定のブロックサイズです。 そのためこれが私たちはサポートする全てです。
与えられたキー(長さが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モードを使うべきでしょう。
連鎖モードにより利用される初期値ベクトルを変更します。 これはECBモードには関係ありません。
データを暗号化します。$dataの大きさはblocksize(16バイト)の
倍数でなければなりません。そうでなければ、この関数はcroakします。
それを別にすれば、それは(ほとんど)任意の長さにすることができます。
$dataを復号化します。
L<Crypt::CBC>, http://www.csrc.nist.gov/encryption/aes/
定数MODEをEXPORTあるいはEXPORT_OKしなければなりません。
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)