PGPワードリスト
From Wikipedia, the free encyclopedia
PGPワードリスト(Pretty Good Privacy ワードリスト、バイオメトリックワードリスト)は、音声チャネルを通して明瞭かつ明確にバイト列を伝送するために用いる英単語のリストである。作られた目的はNATOフォネティックコードと似ているが、NATOフォネティックコードは英数字36種[注釈 1]しか表現できないのに対し、PGPワードリストは各英単語が1バイト分の情報量(256種)を有しているという点で異なる。
PGPワードリストは、計算言語学者のパトリック・ジュオラと、PGP社開発者のフィル・ジマーマンによって1995年に開発された[1][2]。それぞれの英単語は、音声学的特徴の明確性の観点を基に、音素空間において最適な分離性を持つよう、遺伝的アルゴリズムを用いて慎重に選出された[1][2]。ワードリストの候補は、検索する際の生データとしてグレーディ・ウォードのMoby Projectリストから無作為に取り出し、遺伝的アルゴリズムによって逐次洗練された[1][2]。この自動化された検索処理は、当時特に高速であったDEC Alphaにおいて約40時間で最適化された解に収斂した[要出典]。
ジマーマン・ジュオラ・リストは元々、短い認証文字列を両当事者が口頭で比較することで中間者攻撃(MiTM)を検出できるよう、セキュアなVoIPアプリケーションであるPGPfoneに実装する目的で設計されていた[1][2]。この認証方法は、音声チャネルを通じて英単語を比較する際、両者が互いに相手の声の特徴を識別することに依存している点から、バイオメトリックワードリストとも呼称される[注釈 2][3]。これによって話者の身元と英単語が紐づけられ、中間者攻撃への保護を強化する[3]。生体認証による身元の紐づけを必要としない他の多くの状況でも使用できる点を踏まえると、バイオメトリックワードリストと呼ぶことは不正確かもしれない[独自研究?]。
その後PGPに採用され、PGP公開鍵のフィンガープリントを音声チャネルで比較・検証する手段として用いられた[2]。これは、PGPアプリケーションにおいて「バイオメトリック表現」として知られている[要検証]。PGPに導入する際は、ジョン・カラスの貢献により、ワードリストがさらに洗練された[要出典]。最近では、ZfoneやPGPfoneの後継プロトコルであるZRTPにも利用された[4]。
構成
実際には、ワードリストは2つのリストで構成されている。それぞれ発音的に全く異なる256個の英単語を含んでおり、各英単語は0~255(16進数で00~FF)の異なるバイト値を表現する。リストが2つ用意されている理由は、長いランダムな英単語列を人間が声に出して読み上げる際、普通は以下3種類のミスが発生するリスクが存在するためである。
- 連続する2英単語の入れ替わり
- 英単語の重複
- 英単語の欠落
これらすべてのミスを検出できるよう、2つのワードリストを、バイト列内のオフセットが偶数の時と奇数の時で交互に使用する。各バイト値は、バイト列の先頭からのオフセットが偶数か奇数かによって、実際には2通りの英単語で表現される。どちらのリストに属する英単語なのかは音節の数により容易に識別可能であり、偶数オフセット用の英単語は2音節、奇数オフセット用の英単語は3音節に統一されている。また、偶数オフセット用のワードリストの最大文字数は9文字、奇数オフセット用のワードリストの最大文字数は11文字である。2つのワードリストを利用する方式は、Zhahai Stewartが提案した。[2][3]