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