ワンタイムパッド

ワンタイムパッド(OTP)とは



ワンタイムパッド(One-Time Pad, OTP)は、暗号化と復号に同じ長さの乱数列(鍵)を一度だけ使用する暗号方式です。別名、1回限り暗号やめくり暗号とも呼ばれます。この方式の最大の特徴は、正しく運用すれば理論的に解読が不可能であるという点です。

概要



ワンタイムパッドでは、送信するメッセージと同じ長さの完全にランダムな数列(乱数)を鍵として使用します。この乱数列は、メッセージを暗号化するごとに新しいものを使用し、一度使用した乱数は破棄します。例えば、アルファベットを暗号化する場合、AからZに1から26の数値を割り当て、乱数表を用いて対応する文字に変換します。この際、暗号化と復号は単純な計算で可能であり、手作業でも行えます。

この方式の強みは、鍵となる乱数の秘匿性が確保されていれば、換字表やコードブックが公知のものでも暗号強度を保てるところにあります。理論上、総当たり攻撃をしても、元のメッセージを特定することができないため、解読は不可能とされています。これは、総当たりで生成される多くの文章の中に、元のメッセージ以外にも意味のある文章が含まれてしまうためです。したがって、解読者は、どの文章が実際に送信されたものかを区別することができません。

数学的な証明



情報理論的な安全性の証明は、クロード・シャノンによって確立されました。平文をX、暗号文をCとした場合、条件付き情報量表現では`H(X|C)=H(X)`となり、条件付き確率表現では`Pr(X|C)=Pr(X)`となります。これは、暗号文Cを入手しても、平文Xに関する情報を何も得られないことを意味します。

この理論が成り立つためには、鍵となる乱数列Kが[独立同分布]である必要があり、XとCが互いに独立である必要があります。

運用上の注意点



ワンタイムパッドは、理論上は完璧な暗号ですが、実際には運用上のミスによって解読される可能性があります。最も注意すべき点は、乱数表の流出と乱数の使い回しです。例えば、ベノナプロジェクトでは、ワンタイムパッドの乱数表が複数回使用されたことが原因で、暗号が解読されました。これは、同じ乱数表を複数回使用すると、暗号文に規則性が現れてしまい、解読の糸口となってしまうためです。

また、乱数の作成も容易ではありません。規則的な数式で作成すると、その規則性から乱数列が再現される可能性があり、人が無作為に選択しても癖が現れてしまうため、注意が必要です。乱数を作成・配布する労力も大きいため、重要な通信に限定して使用するのが望ましいです。また、乱数の配布や保管の際にも、盗難や盗写、廃棄後の復元にも注意を払う必要があります。

作成配布方法



ワンタイムパッドの作成配布には、いくつかのパターンがあります。

単線型: 一対一で一方的な指令・報告形式で、同じOTPを1冊ずつ配布します。
複線型: 一対一で相互に通信する形式で、異なるOTPを2冊ずつ配布するか、1冊を配布して乱数が重複しないように開始位置を共有します。
放線型: 放送形式で、放送者と各受信者に同じOTPを1冊ずつ配布します。
星型: 複数が相互に通信する形式で、同じOTPを各1冊ずつ配布し、開始位置を共有します。

具体例



アリスがボブに「HELLO」というメッセージを送る場合を考えます。事前に、同じ乱数列が書かれた2冊の帳簿(パッド)が安全な方法で両者に渡されているとします。アリスは帳簿から未使用のページを選び、そのページの乱数列を鍵として使用します。各アルファベットを数値に変換し(A=0, B=1, ..., Z=25)、メッセージと鍵の数値を足し合わせ、26で割った余りを求めます。例えば、鍵が「XM CKL」の場合、次のようになります。


鍵: 23(X) 12(M) 2(C) 10(K) 11(L)
メッセージ: 7(H) 4(E) 11(L) 11(L) 14(O)
---------
合計: 30 16 13 21 25
(mod 26): 4(E) 16(Q) 13(N) 21(V) 25(Z)


このようにして、「EQNVZ」という暗号文が生成されます。ボブは、同じ帳簿の同じページを使って、暗号文から鍵の数値を引き、26で割った余りを求めることで、元のメッセージ「HELLO」を復号できます。

使い終わった乱数表は、すぐに破棄することが重要です。また、ソフトウエアで実装する際には、平文の安全な処理や伝送、真にランダムな鍵の生成、鍵の一度だけの使用などを確実にする必要があります。

日本陸軍のワンタイムパッド



太平洋戦争中、日本陸軍はワンタイムパッドを「無限式乱数」または「特乱」と称して採用しました。この方式は、前線部隊の暗号が弱いという常識を覆すものでした。乱数は、ハイハット方式やフリーハンド方式で作成されました。作成された乱数はカーボン複写され、盗写対策として黒紙でマスクされました。使用済みのページは焼却処分され、未使用部分は敵に捕獲されても問題ないとされました。

このワンタイムパッドを捕獲した米兵は、「トイレットペーパー」と呼んだそうです。

量子暗号との関係



ワンタイムパッドの最大の弱点は、事前に大量の秘密情報を共有する必要がある点です。もし、通信時に同じだけの情報量の鍵を安全に送れるのであれば、最初からメッセージ自体を送れば良いことになります。そのため、ワンタイムパッドは、暗号化するメッセージではなく、鍵を安全に共有するために利用されることが多いです。この鍵配送問題を解決するために、量子暗号が注目されています。量子暗号を利用すれば、事前の秘密情報の共有なしに、安全な鍵の交換が可能になると期待されています。

まとめ



ワンタイムパッドは、理論上は完璧な暗号方式ですが、その運用には細心の注意が必要です。乱数の生成、配布、保管、そして使用後の廃棄まで、すべてが適切に行われなければ、その安全性を保つことはできません。歴史的にも、多くの運用ミスが解読に繋がっていることから、その重要性を改めて認識する必要があります。

参考文献



「座談会 日本陸軍暗号はなぜ破られなかったか」、『歴史と人物』-太平洋戦争シリーズ:日本陸軍かく戦えり、1985年12月
「私も或る日、赤紙一枚で -ある応召暗号兵の記録-」、太田 俊夫、光人社


関連項目



暗号理論
ベノナ(再利用されたワンタイムパッドを破った例)
ワンタイムパスワード

外部リンク



Collections in Cryptology - One Time Tape Devices

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。