ワンタイムパッド
[Wikipedia|▼Menu]

ワンタイムパッド (one time pad, OTP) とは、乱数列高々1回だけ使う暗号の運用法である。1回限り暗号、めくり暗号などとも呼ばれる。発案は戦前であるが、戦後、クロード・シャノンにより情報理論的安全性としてその強度の概念が確立された[1]目次

1 概要

1.1 作成配布方法


2 例

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

3.1 参考文献


4 量子暗号との関係

5 脚注

6 関連項目

7 外部リンク

概要

通信量と同じ長さの乱数を使用し、日めくりのように1回使った乱数表は捨てる。例えば1から26の範囲をとる乱数の場合、1つの乱数でアルファベット(A-Z)の1文字を暗号化できる。乱数の秘匿だけで暗号強度を保てるので暗号化/復号がシンプルで、手作業でも処理できる。換字表やコードブックは公知のものでもよいという利点がある。

理論的には、正しく運用された場合に解読不可能となる。たとえ総当たりで解読しようとしても、総当たりで生成される多数の文章(文字列)の中には、送信者が暗号化した文章以外にも、人間が意味を読み取れる文章(文字列)が生成されてしまう。従って、解読者には、送信者自身の文章とそれ以外の人間が意味が読み取れる文章を区別することができず、解読不可能となる。ただし、運用方法の誤りで解読可能となる場合がある。乱数表の流出はもちろんだが、乱数の使いまわしも暗号強度の低下を招くので注意が必要である(そもそも使いまわしたら、それはもはや「ワンタイム」ではない[2])。たとえば、OTP乱数表の使い回しを元にして解読したのが、ベノナプロジェクトである。戦場で回収された暗号表がアメリカ国家安全保障局に回され、OTP乱数表を前線と米国駐在情報官の両方で使った事に気がついた。OTP乱数表といえども2度使えば解読が出来た。その結果ローゼンバーグ夫妻たちのスパイ網が摘発された[要出典]。冷戦中であり暗号解読の事実をソ連に認知される事を回避するため、暗号解読のことは裁判では全く公開されなかった。冤罪疑惑が残るまま夫妻は死刑になったが、近年、ソ連のスパイである事が確認されるも、夫人は冤罪疑惑が残る。

乱数の作成は想像よりも困難である。数式を使って規則的に作ると、乱数列から元の式が再現される可能性がある。人が無作為に選択してもその癖が出る。通信量と同じ長さの乱数を作成、配布するのは労力が掛かるので、それに見合う重要通信に用いるのが望ましい。例えば米ソ・ホットラインやスパイ通信である。

乱数の配布・保管にも注意が必要である。配布、保存時に裏切り、窃盗、盗写が出来る。また、廃棄後のゴミから復元・再生される事がある。

なお、バーナム暗号と混同される事があるが、ワンタイムパッドを利用しないバーナム暗号もある。
作成配布方法

OTPの作成配布は主に4パターンに分類される。
単線型:一対一で一方的な指令・報告形式であり同じOTPを1冊ずつ配布する。最もシンプルな形式でもある。

複線型:一対ーで相互に着発信する形式であり異なるOTPを2冊ずつ配布する、もしくは1冊を配布して乱数が重複しないよう開始位置を分かち合う。

放線型:放送形式であり、放送者と各受信者に同じOTPを1冊ずつ配布する。

星型:複数が相互に着発信する形式であり同じOTPを各1冊ずつ配布し開始位置を分かち合う。各個の受発信量に見合う開始位置規制が必要である。

いま、アリスがボブに "HELLO" というメッセージを送りたいとする。ランダムなアルファベット列が書かれた紙からなる完全に同一の2つの帳(pad)が事前に何らかの手段で用意されており、安全な方法で2人に渡されていると仮定する。アリスは、適切な方法で帳から未使用のページを選ぶ。この方法は事前に決めておく。例えば、「勤労感謝の日には12枚目を使う」とか、「次のメッセージには次のページを使う」などである。選んだページに書かれたアルファベット列が、暗号化の鍵となる。帳とメッセージの各文字を、事前に決めておいた方法で組み合わせていく。このとき、"A"は0、"B"は1、……"Z"は25のように、各文字に数値を割り当てるのが普通である(必ずしもこの方法である必要はない)。この例では、剰余演算を使用して鍵とメッセージを組み合わせる。対応する鍵とメッセージの数値を足し合わせ、法を26とする剰余をとる。もし鍵がX M C K L

で始まっていて、メッセージが "HELLO" だとすると、計算は次のようになる。 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 鍵 + メッセージ≡ 4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) 鍵 + メッセージ (mod 26)

数値が25を超えた場合は、剰余演算によって、その数字を26で割った余り (mod 26) を使う点に注意。これは、簡単に言えば、計算結果がZを超えたら再びAから数え始めるということである。

これによって、ボブに送る暗号文は "EQNVZ" となる。ボブは帳から対応するページを選び、同じ手順を逆に実行して平文を得る。今度は鍵の数値を暗号文から“引く”点が暗号化時と異なるが、剰余演算を使うのは同じである。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:16 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef