ご利用される方へお願い
  現在配布中のソフトは、Alpha Edition (開発中版) または、Beta Edition(動作確認中版) です。
 動作エラーや計算結果が不正確なケースを発見しましたら、 当方の 掲示板 へ、フィードバックをお願いします。
 
 

 
 
ENIGMA M3 Simulator Ver.1.20  Beta Edition  [2009/02/07]
 
for AutoCAD VBA (dvb) DownLoad(EM3S120A.zip/97KB)
for Excel VBA (xls) DownLoad(EM3S120E.zip/99KB)
VBA Export Files
(bas, frm, frx)
 
(VBA 6 or later)
DownLoad(EM3S120F.zip/35KB)  

注意

VBAからエクスポートしたファイルなので、
解凍したファイル(*.bas, *.frm, *.frx)を同一フォルダに置いて、
ご使用のVBAで(*.bas, *.frm)ファイルをインポートしてご利用下さい。

Reflector, Rotor, Plugboard data

All supported DownLoad(Reflector_Rotor_Plugboard.zip/7.21KB)
 
 
解説
 第二次世界大戦時にナチス・ドイツが用いていたことで有名な
 ロータ式暗号機の 3ロータータイプのシミュレーターでVBA上で作動します
 
 暗号文を同じ鍵で再暗号化すると平文が得られる特徴があります
 変換できるのはアルファベットのみ(大文字と小文字は区別せず全て大文字となります)
 ※アルファベット以外の処理方法(ローターの回転有無、無変換・削除・指定文字に置換)はOptionで設定できます
 
起動時

一番上の白地の欄に変換させたい文字列を書き込んで、
 First-latter  」(最初の1文字のみ変換)または「  ALL  」(全変換)をクリックして下さい。
中央のInput欄に返還前の文字列、一番下のOutput欄に変換文字列(暗号)が表示されます。
変換できるのはアルファベットのみ(大文字と小文字は区別せず全て大文字となります)
暗号の復号には、Setting(初期設定=鍵)が必須です(下記参照)
 
Simulator 表示

>(右向三角)をクリックしてシミュレーター部分を表示させた変換中の状態。
変換させたい文字列を書き込んだら、変換ボタンをクリックする前に、
Setting(初期設定=鍵)を確認します。これは、変換した文字列の復元時に必要 です。
 
変換した文字列とSetteing(初期設定=鍵)をメッセージを伝えたい相手に別々の方法で伝えるか、または、
暗号通信などの様にSetteing(初期設定=鍵)を前もって取り決めておきます。
 
小さい左右向き三角(<>)で3つのローターの初期位置(黄色欄)を変更できます。
 
暗号文字列を元に戻す(復号)には、Output欄の変換文字列を一番上の白地の欄に入力し、
設定を、変換時のSetteing(初期設定=鍵)と同じに設定して、
 First-latter  」(最初の1文字のみ変換)または「  ALL  」(全変換)をクリックして下さい。
 
Simulator と Option 表示

▼をクリックしてOptionを表示させた状態。 
「Reflector / Rotor [Spase is Notch.] / Plugboard」の各「Load」ボタンのクリックで
反転ローター(Relector)・ローター(Rotor)・プラグボード(Plugboard)の設定を
テキストファイルからインポート出来ます。
または、設定欄を直接変更して「Reset」ボタンをクリックして下さい。
各設定は、設定に決まりがあります。
 
その他に、
アルファベット以外の処理方法(ローターの回転有無、無変換・スキップ(削除)・指定文字に置換)と、
Step変換時の速度設定も出来ます。

※ 画像は開発中の以前のバージョンものです

 
 
Relector(反転ローター)・Rotor(ローター)・Plugboard(プラグボード)の設定
 
位置 設定
文字数
仕様 解説
Reflector 26
 
(英字のみ)
重複不可、
反転性必須
各文字は、アルファベットを順に26文字並べた場合の文字と単文字換字します。

設定文字列は、アルファベット26文字を全て使用して並べ替えたもので、
エニグマの特徴である反転性(元文字と暗号文字は必ず異なる)は
ここによるのでアルファベットを順に26文字並べた場合の文字と一致してはいけません。
具体例
OK 上記画像のReflector値 (YRUHQSLDPXNGOKMIEBFZCWVJAT) で解説
一番最初(A文字位置)の "Y" とY番目の位置にある "A" は対になっている
様に以下全ての文字が他の文字と対になっていること
Y R U H Q S L D P X N G O K M I E B F Z C W V J A T
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
NG   アルファベット順に同じはNG
  C→D→B  対にならず循環しているのはNG
  文字の重複はNG
A C D B Z Z X ・・・
A B C D E F G ・・・
LeftRotor
MiddleRotor
RightRotor
26〜52

(英字26
+
半角スペース
0〜26)
重複不可 各文字は、アルファベットを順に26文字並べた場合の文字と単文字換字します。

設定文字列は、アルファベット26文字を全て使用して並べ替えたもので、
Reflectorと異なり文字位置に制限はありません(対になっている必要もありません)
ただし、隣のローターを回転させるタイミング(ノッチ)の位置にスペースが最低1つ必要です。
スペースが1つもない場合には設定文字列の最後にあるものと見なします。
また、最初の1文字目のスペースは最後のスペースと同じです。
(実機では最大2個までですが、このシミュレーターでは最大26個[各文字毎]可能)
具体例
OK 上記画像のMiddleRotor値 (AJDKS IRUXBLHWTMCQGZNPYFVOE) で解説
  アルファベット順に同じはOK 
 ローターがE(S)からF(I)への回転時に隣(※)のローターも回転させる
 ※実機では左隣のローターですが、このシミュレーターでは1つ上のローター
A J D K S (スペース) I R U X B L H W T M C Q G Z N P Y F V O E
A B C D E ノッチ F G H I J K L M N O P Q R S T U V W X Y Z
NG   文字の重複はNG
A C D B Z Z X ・・・
A B C D E F G ・・・
  C→D→B  対にならず循環しているのはOK
Plugboard 26

(英字 or
半角スペース or
_
(半角アンダーバー)
26文字)
重複不可 各文字は、アルファベットを順に26文字並べた場合の文字と単文字換字します。

設定文字列は必ず対になっている必要があります。
半角スペースまたは半角アンダーバーは、設定を見やすくする為の省略記号で、
アルファベットを順に26文字並べた場合の文字と同一です。

上記画像 Plugboardの例は設定が全てアンダーバーなので、
プラグボードでは文字換字されない設定となります。
(実機では3〜10対までですが、このシミュレーターでは最大13対の全て設定可能)

この頁以外に使用方法(操作マニュアル)はありません
 
 
注意事項など
  動作確認中の Beta Edition です
    動作に致命的な不具合や暗号化・復号化の結果が不正確な可能性があります
重要なデータを同時に開いた状態では使用しないで下さい
<Optional>を使用した省略可能な引数があるので、OpenOffice.org 最新版(v3.0) の VBA には対応していません
シミュレート時に、多数の文字の書き換えを伴うので、お使いのPCによってはちらつく場合があります
 
 
その他
  そのほか使用条件等は上記ファイルに添付されている readme.txt ファイルをお読み下さい。
 
 
更新内容
 
[2009/02/07] Ver.1.20 Beta Edition 若干修正など
[2008/12/16] Ver.1.10 Beta Edition 新規公開

 

 
以前のバージョン
Ver.1.10  Beta Edition [2008/12/16] for AutoCAD VBA (dvb) DownLoad(EM3S110A.zip/98KB)
for Excel VBA (xls) DownLoad(EM3S110E.zip/102KB)
VBA Export Files
(bas, frm, frx)
 
(VBA 6 or later)
DownLoad(EM3S110F.zip/36KB)

注意

VBAからエクスポートしたファイルなので、
解凍したファイル(*.bas, *.frm, *.frx)を同一フォルダに置いて、
ご使用のVBAで(*.bas, *.frm)ファイルをインポートしてご利用下さい。
   
参考リンク
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%8B%E3%82%B0%E3%83%9E_(%E6%9A%97%E5%8F%B7%E6%A9%9F)
http://en.wikipedia.org/wiki/Enigma_machine
http://en.wikipedia.org/wiki/Enigma_rotor_details
 
http://www.enigma-replica.com/
http://www.cripto.es/
http://www.hut-six.co.uk/
http://offthebroiler.wordpress.com/2008/07/06/bletchley-park-the-forge-of-computer-creation/
http://www.sscnet.ucla.edu/geog/gessler/collections/crypto-fialka.htm
http://www.mlb.co.jp/linux/science/genigma/enigma-referat/index.html
http://slashdot.jp/security/article.pl?sid=06/03/03/1434206
http://gigazine.net/index.php?/news/comments/20060911_enigma/
 
シミュレーター
http://enigmaco.de/enigma/enigma.html
http://www.mlb.co.jp/linux/science/genigma/
http://www.codeproject.com/KB/security/enigma_emulator.aspx?fid=171455&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=1188863
http://edipermadi.wordpress.com/2008/07/15/implementing-enigma-m3-cipher-machine-on-pic16f84/
 
検索
http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&q=%83G%83j%83O%83%7D&btnG=Google+%8C%9F%8D%F5&lr=
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=enigma&btnG=%8C%9F%8D%F5&lr=
http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&q=Enigma+Rotor&btnG=Google+%8C%9F%8D%F5&lr=
http://images.google.co.jp/images?hl=ja&ie=Shift_JIS&q=Enigma+Rotor&lr=&um=1&sa=N&tab=wi&gbv=1