=encoding euc-jp =head1 名前 Crypt::Rijndael_PP - RijndaelのPerl実装 =head1 責任放棄(=DISCLAIMER) これは新しいAES Rijndaelのperlだけの実装です。 利用できるところではCを使いたいでしょう。この実装は 本当に遅いものです、しかし私はまだ作業中です。 =head1 概要 # 関数スタイル use Crypt::Rijndael_PP ':all'; $key = '1234567890ABCDEF' x 4; # 256bit hex number # キーサイズ = 256bit, ブロックサイズ = 128bit $c_txt = rijndael_encrypt($key, MODE_CBC, $data, 256, 128); $p_txt = rijndael_decrypt($key, MODE_CBC, $c_txt, 256, 128); # OO形式 # same interface as Crypt::Rijndael use Crypt::Rijndael_PP; $cipher = Crypt::Rijndael_PP->new( pack('H*', $key), MODE_CBC ); $c_txt = $cipher->encrypt($data); $p_txt = $cipher->decrypt($c_txt); =head1 説明 このモジュールはRafael R. SevillaによるCとOO形式の インタフェースを共有しています。 =over 4 =item サポートされているモード:Electronic CodeBook (MODE_ECB) と Cipher Block Chaining (MODE_CBC)。CBC-ModeのためにCを使ってください。 私のCBCはC とも C とも互換性がありません。 そして、近い将来変更するつもりです。Cを使うと、このモジュールは Cと100%互換性があり、あなたはデータを両方のモジュールで暗号化、 復号化することができます! =item サポートされているキーサイズ: 128, 192 , 256 (デフォルト) =item サポートされているブロックサイズ: 128 (default), 192 , 256 =back キーの大きさが与えられたキーサイズとあわなければ、 (16進数での)"0"が付けられるか、適切な大きさに切られます。 ブロックサイズの倍数にマッチしなければ、最後のデータブロックは "\0"が付けられます。 どちらの場合も警告(warning)が上がります。 =head1 使用例 Cの使い方 use Crypt::CBC; my $key = 'my secret key'; my $input = 'The answer is 42.'; my $cipher = new Crypt::CBC($key,'Rijndael_PP'); my $ciphertext = $cipher->encrypt($input); my $plaintext = $cipher->decrypt($ciphertext); # - or - #!/usr/local/bin/perl -w # # Usage: r.pl e "my secret key" < in > out # use strict; use Crypt::CBC; die "Usage: $0 mode([ed]) key\n" unless @ARGV == 2; my $cipher = new Crypt::CBC($ARGV[1],'Rijndael_PP'); $cipher->start($ARGV[0]); my $buffer; while( read(STDIN, $buffer, 1024) ) { print $cipher->crypt($buffer); } print $cipher->finish; =head1 制約 この実装は本当に遅いものです。私は今後のリリースでパフォーマンスを 引っ張り上げようと思っています。 CBCモードはまだCとは互換性がありません。しかし いずれにせよ、このモードについてはCを利用することを お勧めします。 =head1 参考資料 L L L =head1 著作権(=COPYRIGHT) This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Copyright 2001 Christian Lackas Copyright 2000 Vincent Rijmen and Joan Daemen =head1 AUTHORS The original algorithm was developed by Vincent Rijmen and Joan Daemen. This release was made by Christian Lackas . http://www.lackas.net/. It is based on the reference implementation for the AES contest. At present I am working on a faster version. =head1 翻訳者 川合孝典(GCD00051@nifty.ne.jp)