Enigma I(3ロータ)互換の暗号変換器を、ブラウザ上で動作するHTMLアプリとして実装したプロジェクトです。静的Webアプリとして構成されています。
本プロジェクトは以下を目的としています:
- 歴史的Enigma(Enigma I)の挙動を正確に再現する
- PCBベースの物理Enigma再現機との互換性検証
- 暗号処理の理解・教育用途
- ロータ・リフレクタ・ステッピングの動作確認
- I, II, III, IV, V
- UKW B
- UKW C
- プラグボード(Steckerbrett)
- リング設定(Ringstellung)
- 初期ロータ位置(Grundstellung)
- ダブルステップ(double stepping)再現
- 可逆暗号(Encrypt = Decrypt)
- ロータとリフレクタを選択
- リング設定(通常は AAA)
- 初期ロータ位置を設定(例: AAA)
- プラグボードを設定(例:
AV BS CG) - テキストを入力
- 「実行」を押す
- 右ロータ:毎文字回転
- 中ロータ:右ロータのノッチで回転
- 左ロータ:中ロータのノッチで回転
- ダブルステップを正確に再現
Plugboard
→ Right Rotor
→ Middle Rotor
→ Left Rotor
→ Reflector
→ Left Rotor(逆)
→ Middle Rotor(逆)
→ Right Rotor(逆)
→ Plugboard
ENIGMA-APP/
├── index.html # アプリ本体(単一ファイル)
├── Spec/
│ ├── enigma_i_app_prompt.md # AI生成用プロンプト
│ └── enigma_i_app_spec.md # 実装仕様書
└── README.md
同じ設定・同じ初期位置で:
- 平文を暗号化
- 得られた暗号文を再入力
→ 元の平文に戻ること
- ロータ VI〜VIII 未対応
- M3 / M4 未対応
- Beta / Gamma 未対応
- リング設定はUI上変更可能だが、PCB実装では固定予定
- 実機完全再現(機械構造)は対象外
- ロータ VI–VIII 対応
- M3 / M4 モード追加
- 配線可視化
- URL共有機能(設定保存)
- PCB実機との相互通信テスト
- テストベクトル追加
- 外部ライブラリなし(Pure HTML / JS)
- 単一ファイル構成
- Cloudflare Pagesで即デプロイ可能
- 歴史的互換性を最優先
- Crypto Museum
- Enigma Rotor Wiring Tables
- Turing "Treatise on the Enigma"
- Franklin Heath Paper Enigma
https://github.com/HideakiTakechi
検討中