=encoding euc-jp =head1 名前 Crypt::OOEnigma::Military - 1940年ごろの軍用エニグマ。商用エニグマとはローター の前にプラグボードが追加されえている点で異なります。 =head1 概要 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(); # ローターとそれらの初期状態を返します =head1 説明 このモジュールはPlugboardがRotorの前に追加されているという点で異なる 軍用エニグマ・マシンを提供します。 通常は独自のPlugboard、Rotors そして Reflectorで軍用エニグマを作る べきです。 =head1 注意 何もありません =head1 バグと警告 =head2 エニグマは脆弱です! 暗号の専門家はコンピュータ的にやぶれやすいかどうかという面から 暗号アルゴリズムの強さを語ります。もちろんエニグマ暗号はコンピュータ的には やぶられやすいものです。そのため重要なものには使わないでください! =head1 歴史 このパッケージはOO PerlとCPANのための適切な準備の練習のため、2002年の春に 作成されました。さらに重要なことはEnigmaが面白いことです。 CPANにはオブジェクト指向ではなく、1つのEnigmaだけを実装している Crypt::Enigmaが既にありました。(これに対してこれらのオブジェクトでエニグマに似た 機械を作ることができます)。そのためこのパッケージをCrypt::OOEnigmaと 名付けました。 =head1 参考資料 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 =head1 著作権(=COPYRIGHT) This package is licenced under the same terms as Perl itself. =head1 翻訳者 川合孝典 (GCD00051@nifty.ne.jp)