2006年05月01日 00:00 [Edit]

perl - Crypt::Camellia 0.01 Released!

cpan

別件で共通鍵暗号を使う案件があったので、こさえちゃいました。

www.textfile.org
* http://www.itmedia.co.jp/news/articles/0604/13/news097.html
素晴らしい。

以下からどうぞ。


Camellia Camellia紹介
Camellia(カメリア)は、世界のトップクラスの暗号研究者を抱えるNTTと三菱電機が共同で2000年に開発した共通鍵ブロック暗号です。技術的に高い安全性を有するのは当然のこと、効率性と実用性にも優れており、さまざまなプラットフォーム上でのソフトウェアにより高速に実装することができます。ハードウェア実装においても、高速実装はもとよりコンパクトかつ低消費電力型の実装が可能です。
これらの技術的優位性は、例えば欧州連合推奨暗号選定プロジェクトNESSIEにおいて「米国政府標準暗号AESと多くの点で同等の安全性と性能を有している」と評価されるなど、国際的にも認められています。現在では、AESと同等の安全性・処理性能を有しているほぼ唯一の暗号として国際的にも認知されつつあり、多くの国際的な標準暗号・推奨暗号に選定されています。
とりわけ、日本国産暗号としては、初めてインターネット標準暗号(IETF Standard Track RFC)として承認されました。

これはうれしいじゃないですか。

Benchmarkとかはまだしていないのですが、Crypt::CBCのInterfaceをそのまま利用して使う事ができます。

use strict;
use warnings;
use Getopt::Std;
use Crypt::CBC;

my %Opt;
getopts( "ed" => \%Opt);
my $key = shift;

my $cipher = Crypt::CBC->new( -key => $key, -cipher => 'Camellia' );
my $content = do{ local($/); <> };
if ($Opt{e}){
    print $cipher->encrypt_hex($content);
}else{
    $content =~ tr[0-9A-Fa-f][]cd;
    print $cipher->decrypt_hex($content);
}
__END__

これにcamellia.pl -e keyとすれば暗号化、camellia.pl -d keyとすれば復号化がなされます。

NTTの中の人とかこれを読んでたらぜひ査読のほどを。

53616c7465645f5ffa87cc6e9103d406c0c15b63f75860f1bd8d3ecc4d903d62
5555e0e324cbd09ef0b25371b64a3d6155b679bd09251aecdf573b3a8f4f16e0

↑恒例のサインです。'dankogai'で解いてください。


この記事へのトラックバックURL

この記事へのコメント
中の人に心当たりあるので,休み明けにコンタクトしてみます
Posted by k.daiba at 2006年05月04日 17:52
Python版もあります。http://omake.accense.com/wiki/PythonCamellia
Posted by sgk at 2006年05月06日 16:54