名前¶
Crypt::OOEnigma::Military - 1940年ごろの軍用エニグマ。商用エニグマとはローター の前にプラグボードが追加されえている点で異なります。
概要¶
use Crypt::OOEnigma::Military;
# (いつも同じ置換をする)3つのデフォルトのローターを持つエニグマ
my $enigma = new Crypt::OOEnigma::Military;
# あるいは
use Crypt::OOEnigma::Military;
use Crypt::OOEnigma::Rotor;
my @rotors = ()
# Crypt::OOEnigma::Rotorのリストを入れる
Crypt::OOEnigma::Military->new( rotors => [@rotors] );
# あるいは
use Crypt::OOEnigma::Military;
use Crypt::OOEnigma::Rotor;
use Crypt::OOEnigma::Reflector;
use Crypt::OOEnigma::Plugboard;
my @rotors = ()
# Crypt::OOEnigma::Rotorのリストを入れる。対応するPODを参照
my $reflector = new Crypt:OOEnigma::Reflector(params); # 対応するPODを参照
my $plugboard = new Crypt:OOEnigma::Plugboard(params); # 対応するPODを参照
Crypt::OOEnigma::Military->new( rotors => [@rotors],
plugboard => $plugboard,
reflector => $reflector);
my $cipher = $enigma->encipher($mesg);
my $decode = $enigma->encipher($cipher); # 自分で逆方向
# 内部的に利用するため
$enigma->init(); # ローターとそれらの初期状態を返します
説明¶
このモジュールはPlugboardがRotorの前に追加されているという点で異なる 軍用エニグマ・マシンを提供します。
通常は独自のPlugboard、Rotors そして Reflectorで軍用エニグマを作る べきです。
注意¶
何もありません
バグと警告¶
エニグマは脆弱です!¶
暗号の専門家はコンピュータ的にやぶれやすいかどうかという面から 暗号アルゴリズムの強さを語ります。もちろんエニグマ暗号はコンピュータ的には やぶられやすいものです。そのため重要なものには使わないでください!
歴史¶
このパッケージはOO PerlとCPANのための適切な準備の練習のため、2002年の春に 作成されました。さらに重要なことはEnigmaが面白いことです。
CPANにはオブジェクト指向ではなく、1つのEnigmaだけを実装している Crypt::Enigmaが既にありました。(これに対してこれらのオブジェクトでエニグマに似た 機械を作ることができます)。そのためこのパッケージをCrypt::OOEnigmaと 名付けました。
参考資料¶
The Pleasures of Counting, T W Korner, CUP 1996. A great book for anyone with the slightest interest in mathematics ISBN 0 521 56087 X hardback ISBN 0 521 56823 4 paperback
Crypt::OOEnigma::Military
コンポーネント Crypt::OOEnigma::Rotor Crypt::OOEnigma::Reflector Crypt::OOEnigma::Plugboard
著作権(=COPYRIGHT)¶
This package is licenced under the same terms as Perl itself.
翻訳者¶
川合孝典 ([email protected])