Crypt::CFB - Cipher Feedback Modeでデータを暗号化します
use Crypt::CFB;
my $cipher = new Crypt::CFB $key, 'Crypt::Rijndael';
my $ciphertext = $cipher->encrypt($plaintext);
my $plaintext = $cipher->decrypt($ciphertext);
my $cipher2 = new Crypt::CFB $key, 'Digest::MD5';
$ciphertext = $cipher->encrypt($plaintext);
$plaintext = $cipher->decrypt($ciphertext);
pure Perlな汎用的なCFB実装。
Cipher Feedback Modeモジュールはブロック暗号や暗号化ハッシュ
関数からストリーム暗号を組み立て、オブジェクトとして返します。
それがblocksizeとkeysizeメソッドをサポートするのであれば、
Crypt::クラスにある全てのブロック暗号を使うことが出来ます。
それがaddメソッドをサポートするのであれば、
Digest::クラスにある全てのハッシュ関数を使うことが出来ます。
$cipher = new Crypt::CFB $key, $algorithm
CFBオブジェクトを組み立てます。$algorithmがブロック暗号であれば、
$keyはその暗号に対しての正しい大きさでなければなりません。
ほとんどの場合、keysizeメソッドを呼び出すことにより、ブロック暗号
モジュールに尋ねることができます。$algorithmがハッシュ関数(Digest::)で
あれば、$keyはどのような大きさにもすることができます。
$ciphertext = $cipher->encrypt $plaintext
$plaintextを暗号化します。入力はCFBオブジェクトの初期状態から生成される
キーストリームでXORされ、その状態は出力で更新されます。$plaintextは
どのような大きさにもすることが出来ます。
$cipher->reset
初期状態をリセットします。同じオブジェクトを使うのであれば、 復号化する前に、これを行うことを忘れないでください。
$plaintext = $cipher->decrypt $ciphertext
$ciphertextを復号化します。
これは恐ろしいほど遅いです。Digest::のいくつかのクラスは
addメソッドを提供しないので、それらは失敗します。実装は
ちょっとだけ凝っています。
Matthias Bauer <matthiasb@acm.org>
川合孝典 (GCD00051@nifty.ne.jp)