Crypt-Rijndael_PP-0.04 > Crypt::Rijndael_PP

名前

Crypt::Rijndael_PP - RijndaelのPerl実装

責任放棄(=DISCLAIMER)

これは新しいAES Rijndaelのperlだけの実装です。 利用できるところではCrypt::Rijndaelを使いたいでしょう。この実装は 本当に遅いものです、しかし私はまだ作業中です。

概要

 # 関数スタイル
 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);

説明

このモジュールはRafael R. SevillaによるCrypt::RijndaelとOO形式の インタフェースを共有しています。

  • サポートされているモード:Electronic CodeBook (MODE_ECB) と Cipher Block Chaining (MODE_CBC)。CBC-ModeのためにCrypt::CBCを使ってください。 私のCBCはCrypt::CBC とも Crypt::Rijndael とも互換性がありません。 そして、近い将来変更するつもりです。Crypt::CBCを使うと、このモジュールは Crypt::Rijndaelと100%互換性があり、あなたはデータを両方のモジュールで暗号化、 復号化することができます!

  • サポートされているキーサイズ: 128, 192 , 256 (デフォルト)

  • サポートされているブロックサイズ: 128 (default), 192 , 256

キーの大きさが与えられたキーサイズとあわなければ、 (16進数での)"0"が付けられるか、適切な大きさに切られます。

ブロックサイズの倍数にマッチしなければ、最後のデータブロックは "\0"が付けられます。

どちらの場合も警告(warning)が上がります。

使用例

Crypt::CBCの使い方

 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;

制約

この実装は本当に遅いものです。私は今後のリリースでパフォーマンスを 引っ張り上げようと思っています。

CBCモードはまだCrypt::Rijndaelとは互換性がありません。しかし いずれにせよ、このモードについてはCrypt::CBCを利用することを お勧めします。

参考資料

Crypt::Rijndael

Crypt::CBC

http://csrc.nist.gov/encryption/aes/

著作権(=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

作者

The original algorithm was developed by Vincent Rijmen and Joan Daemen.

This release was made by Christian Lackas <delta@lackas.net>. http://www.lackas.net/. It is based on the reference implementation for the AES contest. At present I am working on a faster version.

翻訳者

川合孝典(GCD00051@nifty.ne.jp)