ユーザーマニュアル
ローター論理とAES‑256によるハイブリッド暗号
ダイナミックEnigma · ステップバイステップガイド

## 00言語の切り替え

RotorCrypt Xは 8つの言語 に対応しており、世界人口の約 36 %、つまり約 29億人 の母語話者にリーチします。

🇩🇪🇬🇧🇫🇷🇪🇸🇹🇷🇯🇵🇨🇳🇸🇦🇷🇺🇵🇹

国旗 | 言語 | 母語話者数 | コード
--- | --- | --- | ---
🇨🇳 | 中国語 | ~ 940 百万 | ZH
🇪🇸 | スペイン語 | ~ 485 百万 | ES
🇬🇧 | 英語 | ~ 380 百万 | EN
🇸🇦 | アラビア語 | ~ 360 百万 | AR
🇵🇹 | ポルトガル語 | ~ 240 M | PT
🇷🇺 | ロシア語 | ~ 150 M | RU
🇫🇷 | フランス語 | ~ 80 百万 | FR
🇹🇷 | トルコ語 | ~ 80 百万 | TR
🇩🇪 | ドイツ語 | ~ 75 百万 | DE
🇯🇵 | 日本語 | ~ 125 百万 | JA

合計： 約 29億2500万人の母語話者 ≈ 世界人口（81億人）の 約36 %

### 言語の切り替え方法

プログラムウィンドウの右上にある現在の言語の国旗をクリックします。
8つの言語が国旗とともに表示されるメニューが開きます。
希望の言語を選択すると、インターフェースが即座に切り替わります（再起動不要）。
次回の起動時、マニュアルは新しい言語で自動的に開きます。
注意： 言語設定はローカルに保存され、再起動後も維持されます。

## 01連絡先の作成

暗号化メッセージを送信する前に、連絡先を作成する必要があります。プログラムは平文の名前を保存しません – 連絡先のIDは内部で暗号化された形で保存されます。ハードドライブ上のファイルを開いた人でも、連絡先について何も推測できません。

プログラムウィンドウ上部の連絡先ボタンをクリックします。
「新規連絡先」を選択し、名前を入力します（最大25文字）。この名前はローカル識別子としてのみ使用されます – あなただけが自分のデバイスで見ることができます。
プログラムは自動的に暗号化された`*.key`ファイルと`contact.json`へのエントリを作成します。これらのファイルには読み取り可能な名前は保存されません。
ドロップダウンメニューから新しく作成した連絡先を選択します。
注意：同じ連絡先名が再度入力されると、プログラムが競合を検出して通知します。各連絡先名は一度しか使用できません。

## 02赤バナーとHandshake要件

⛔ この連絡先とはHandshakeが未完了 ⛔ 機密情報を送らないでください！

バナーが赤のとき、この連絡先とまだハンドシェイクが実行されていません。最高セキュリティレベルはハンドシェイク後にのみ有効です。

注意：バナーが赤の間は機密情報を送らないでください。相互に成功したハンドシェイクの後にのみ通信が完全に保護されます。

ハンドシェイクの開始方法：

入力フィールドに最初のメッセージを入力します – 例えば「こんにちは」など内容は何でも構いません。
「暗号化」をクリックします。
出力フィールドから生成された暗号化ブロックをコピーして連絡先に送信します。

送信後、バナーは青に変わります：

📤 Handshakeを送信しました 📤 返信をお待ちください。

## 03メッセージの暗号化

ドロップダウンから希望の連絡先を選択します。
ローター数を選択します。シェアウェア版：最大3ローター；完全版：はるかに多い – ローターが多いほど安全です。
入力フィールドにテキストを入力します。フィールドのすぐ上、右上隅に文字カウンターが残り文字数を表示します – 最大5,951文字。
「暗号化」をクリックします。短いアニメーションの後、暗号化ブロックが出力フィールドに表示されます。
処理時間について：ローター数、テキストの長さ、コンピュータの速度によって異なります。古いマシンで多くのローターと長いテキストの場合、数秒かかることがあります – これは正常です。
注意：入力フィールドにすでに暗号化ブロックがある場合は、「復号化」ボタンを使用してください。

## 04出力のコピーと送信

暗号化ブロックは2つの方法で送信できます：

方法 | 手順
--- | ---
手動でコピー | 「出力をコピー」をクリック。任意のアプリに貼り付けます。
メール直接送信 | 「メール送信」をクリック。デフォルトのメールクライアントがブロック入りで開きます。

ヒント：ブロックは標準テキスト文字のみで構成されており、どのテキストフィールドでも問題なく送信できます。

## 05メッセージの復号（受信者）

連絡先から暗号化ブロックを受信します。
最初から最後の文字まで、先頭や末尾に余分なスペースや改行を含めずに、ブロック全体をコピーしてください。
たった一つの文字が欠けていたり余分にあるだけで、復号が不可能になります。最も多いエラーは不完全なコピーです。
ブロックをプログラムの入力フィールドに貼り付けます。
ドロップダウンから正しい連絡先を選択します。
「復号化」をクリックします。平文が出力フィールドに表示されます。
認証エラー？間違った連絡先が選択されたか、メッセージが転送中に変更されました。連絡先の選択を確認し、送信者に再送信を依頼してください。

## 06返信を送信してHandshakeを完了する

最初のメッセージを復号した後、バナーは黄色に変わります：

⏳ 連絡先からHandshakeを受信しました ⏳ 返信を送信してください。

ハンドシェイクはまだ完了していません！連絡先が両側で共有鍵を確認するためにあなたの返信を待っています。

入力フィールドに任意の返信を入力します。
「暗号化」をクリックします。
暗号化ブロックを連絡先に送り返します。

元の送信者があなたの返信を復号すると、両方のデバイスでバナーが緑に変わります。

## 07緑バナー – 安全な通信

✔ Handshake完了 ✔ 通信は安全に暗号化されています。

バナーが恒久的に緑になると、両者が正常に認証されています。これ以降、すべてのメッセージは各交換後に自動更新される一意のセッションキーで保護されます。

たとえ攻撃者が1つのメッセージを解読できても、過去または将来のメッセージへのアクセスは得られません。この原則を前方秘匿性（Forward Secrecy）と呼びます。

これ以降：両方向のすべてのメッセージが完全に保護されます。鍵ファイルが変更されず使用可能な限り、緑バナーは維持されます。

## 08破損ファイル – どうすればよいか？

プログラムはプログラムディレクトリの`Key/`サブフォルダで2種類のファイルを使用します：

ファイル | 内容
--- | ---
`*.key` | 暗号化されたセッションキー – 連絡先ごとに1ファイル
`contact.json` | 暗号化された連絡先リスト – 読み取り可能な名前なし

これらのファイルのいずれかが破損、削除、または誤って上書きされた場合：

影響を受けた`*.key`ファイルと/または`contact.json`を削除します。
プログラムは次回起動時にファイルがないことを自動検出し、新しい空のファイルを作成します。
重要：完全に新しいハンドシェイクが必要であることを連絡先に通知してください。
注意：削除後、この連絡先への以前のメッセージはすべて復号できません。重要な`*.key`ファイルはUSBスティックにバックアップしてください – クラウドには絶対に保存しないでください。

## 09ローター数とセキュリティ向上のヒント

ローター数はEnigma層が作成する暗号化レイヤーの数に直接影響します：

バージョン | ローター | 使用
--- | --- | ---
シェアウェア | 最大3 | 初期テストとハンドシェイクプロセスに適しています
完全版 | はるかに多い | すべての機密コンテンツに推奨 – ローターが多いほどキースペースが大きくなります

推奨 – ローター数を変更する：毎回同じ数を使用しないでください。数を変えることで（例：3、次に7、次に12）、送信ブロックに認識可能なパターンが生まれません。これにより第三者による統計的分析が大幅に難しくなります。
処理時間について：最新のPCではほとんど気になりません。古いハードウェアでは数秒かかる場合があります – ステータスインジケーターが消えるまで待ってください。

## 10モバイル利用 – USBスティックへのプログラム保存

ダイナミックEnigmaは100%ポータブルです。プログラムをすべてのキーファイルと共にUSBスティックに保存し、任意のコンピュータで起動できます – インストール不要、管理者権限不要、外部システムに痕跡を残さず。

使い方：完全なプログラムフォルダ（プログラムファイル + `Key/`フォルダ）をUSBスティックにコピーします。任意のWindowsPC：スティックを差し込み、スティックから直接プログラムを起動します。すべてのキーファイルはスティックに残ります – 外部コンピュータには何も保存されません。
制限：これはUSBポートがシステム管理者によってブロックされていない場合にのみ機能します。一部の企業ネットワークや政府のコンピュータでは、セキュリティ上の理由からUSBポートが無効化されています。
重要 – USBスティックを保護してください：所持した人がキーファイルにアクセスできます。家の鍵と同様に大切に扱ってください – 絶対に無人で放置しないでください。

## 11技術的セキュリティ – なぜこれほど安全なのか

このセクションでは、暗号化の背景にあることを平易な言葉で説明します – 予備知識は不要です。

### 暗号化には複数の独立した層があります

Enigmaのローターは複数の層の一つに過ぎません。メッセージはプログラム内で4つの独立したステージを通過します。各ステージだけでも十分な保護を提供しますが、組み合わせると実質的に解読不能になります：

① Enigmaローター層（複数のローターによる動的置換）
▼
② AES-256-GCM暗号化（世界的な軍・政府標準）
▼
③ HMAC署名（暗号学的改ざん保護）
▼
④ HKDFキー導出 + 毎メッセージ後の自動キーローテーション

攻撃者が世界最速のコンピューターで層②を攻撃しても、その後まだEnigmaローター層を突破しなければなりません。組み合わせはセキュリティを足し算ではなく掛け算で増加させます。

### 各コンポーネントの役割

コンポーネント | 機能 | 重要な理由
--- | --- | ---
RotorCrypt X | 各文字が複数の回転置換ステージを通過します。配線は動的で固定アルファベットはありません。 | 歴史的Enigmaの最も有名な弱点（文字が自分自身に暗号化されることがなかった）がここで完全に排除されています。
プラグボード（65,530ポジション） | 65,530のポジションすべてがペアで接続されています – 歴史的Enigmaと同様ですが、天文学的に大きなキースペースを持ちます。 | プラグボードだけでも可視宇宙の原子数より多くの設定を生成します。
AES-256-GCM | 軍や諜報機関が世界中で使用する近代的なブロック暗号。各メッセージに固有のランダム値（ノンス）が付与されます。 | 同じメッセージでも毎回まったく異なる暗号化ブロックを生成します。
HKDF（SHA-3-256） | マスターキーから、コンテンツと認証用に個別のキーが導出されます。 | 侵害された部分キーが他の領域を危険にさらすのを防ぎます。
HMAC署名 | すべてのメッセージが暗号学的に署名されます。 | 1文字の変更でも含む改ざんが検出され、復号が拒否されます。
キーローテーション | 各メッセージ後にキーが自動的に更新されます。 | 侵害されたキーは過去または将来のメッセージへのアクセスを提供しません（前方秘匿性）。

### キースペースはどれくらいの大きさですか？

キースペースとは、可能なすべてのキーの組み合わせの数です。この数が大きいほど、攻撃者がすべての可能性を試すのに長い時間がかかります。

比較のために：可視宇宙には約1080個の原子が含まれます。これは想像を絶するほど大きく聞こえますが、ダイナミックEnigmaが生成するものと比べると極めて小さいです。

キースペースKはローター（完全版の例として50ローター）とプラグボードの組み合わせから得られます：

// プラグボード：65,530ポジションのすべての可能なペアリング数 プラグボード組み合わせ = 65,530! / (2^32,765 × 32,765!) // 50ローター使用時の総キースペースK K = 50! × 65,530^50 × プラグボード組み合わせ // 常用対数（= その数には何桁あるか？） log₁₀(プラグボード) ≈ 143,581 log₁₀(50! × 65,530^50) ≈ 305 ───────────────────────────── log₁₀(K) ≈ 143,886 // 短縮形の数値： K ≈ 4 × 10^143,886 // これは143,000個以上のゼロが続く数です。 // 宇宙の原子数：10^80 → キースペースは10^143,806倍大きい。
平易な言葉で：特定の針を探していると想像してください。ただし干し草の山は地球でも銀河でも宇宙でもなく、10143,806個の宇宙を積み重ねたものです。それがダイナミックEnigmaのキースペースです。

### 攻撃にはどれくらいの時間がかかりますか？

今日可能なはるか彼方の、完全に非現実的な計算能力を仮定してみましょう：

// 仮定速度：秒あたり10^18のキーテスト // （世界中のスーパーコンピューター合計の数百万倍以上の速さ） 必要時間 = K ÷ 10^18 ≈ 4 × 10^143,868 秒 // 1年 ≈ 3.15 × 10^7 秒 必要時間 ≈ 1.3 × 10^143,861 年 // 宇宙の年齢 ≈ 1.4 × 10^10 年 // 攻撃は宇宙の年齢の10^143,851倍の時間がかかります。
結論：古典的なブルートフォース攻撃は物理的に不可能です。「非常に困難」ではなく – 物理的に不可能です。

### 量子コンピューターについては？

量子コンピューターは暗号化に対する最大の将来的脅威と見なされています。対称暗号化に対する最も効果的な量子攻撃はGroverアルゴリズムと呼ばれます。古典的なコンピューターより速いですが、その優位性はしばしば大きく過大評価されています。

Groverアルゴリズムは指数を半分にします。劇的に聞こえます。しかし数字を見てください：

// Groverはキースペースを半分にします（Kの平方根） 有効量子キースペース = √K ≈ 2 × 10^71,943 // 仮定量子速度：秒あたり10^18評価（非常に楽観的） 量子攻撃時間 ≈ 2 × 10^71,943 ÷ 10^18 = 2 × 10^71,925 秒 量子攻撃時間 ≈ 6 × 10^71,917 年 // 宇宙の年齢 ≈ 10^10 年 → それでも10^71,907倍長い。
直接的な結論：指数は143,886から71,943に半減します。両方の数字ともに天文学的に大きいため、半減は実際的な差をもたらしません。ダイナミックEnigmaはすべての予見可能な期間にわたって量子コンピューターに対しても安全です。
層の組み合わせが決定的な理由：量子コンピューターは1つの層をより速く攻撃できるかもしれません。しかし、その後まだ独自の10143,886のキースペースを持つEnigmaローター層を突破しなければなりません。4つの層を合わせると、古典的または量子コンピューターによるあらゆる攻撃が不可能になります。

## 12新しいセキュリティ機能

### ブートストラップ保護 – K_currentは平文で送信されない

セッション鍵K_currentは最初のメッセージ交換時に保護なしで送信されることはありません。数学的にエレガントな循環HMAC依存性がそれを保護します。

仕組み： K_currentはマスク（ブロックHMACのHKDF）でXOR暗号化されます。HMACはK_currentに依存しているため、循環依存性が生じます。攻撃者はHMACを計算するためにK_currentが必要で、K_currentを取得するためにHMACが必要です。この循環は数学的に解決不可能です。

### リプレイ保護 – 各メッセージは1回のみ

各メッセージは1回のみ復号化できます。すでに復号化されたメッセージを再度開こうとすると、明確な警告が表示されます。

🔒 このメッセージはすでに復号化されています 🔒

### 容量増加 – 1,947文字から5,951文字へ

内部ブロック構造の最適化により、メッセージは5,951文字まで対応 – 以前より大幅に増加しています。

### その他の改善

機能 | 説明
--- | ---
アルファベット順連絡先リスト | 連絡先は常にアルファベット順で表示されます。
上部の空白連絡先 | リストの一番上にある空白エントリにより、連絡先名が見えません。
ローター数のリセット | 復号化後、ローター数は自動的にクリアされます。

## 13登録とフルバージョン

RotorCrypt X はシェアウェアとして提供されています。無料版では最大3つのローターが使用できます。フルバージョンではすべての50ローターが使用可能になります。

### シェアウェア版

初回起動時、`Key/`フォルダに`license.key`ファイルが自動的に作成されます。このファイルはシェアウェア版を識別します。フルバージョンのライセンスが有効化されていない限り、3つを超えるローターを選択するとお知らせウィンドウが表示されます。

### フルバージョンの購入

フルバージョンは組み込みの購入オプションから入手できます。メニューのヘルプ → 登録を開き、「購入」をクリックしてください。購入後、メールでライセンスキーが送られます。

### ライセンスの有効化

ヘルプ → 登録を開きます。
「登録名：」フィールドにお名前を入力します。
メールに記載されたライセンスキーを入力します。
「有効化」をクリックします。プログラムがキーを確認し、フルバージョンを有効にします。
オフライン動作：有効化にはキー確認のため一度だけインターネット接続が必要です。有効化後はプログラムが完全にオフラインで動作します。
再インストール時：再インストール時に保存済みのライセンスキーを再入力するだけです。製造元に連絡することなく、すぐにフルバージョンが復元されます。

### 登録ウィンドウ

状態 | ウィンドウの表示
--- | ---
シェアウェア | ⚠ 未有効化 – 入力フィールド表示、「購入」ボタン有効
フルバージョン | ✔ フルバージョン有効 – 名前とキーが表示、フィールドはロック