PGPワードリスト(Pretty Good Privacy ワードリスト、バイオメトリックワードリスト)は、音声チャネルを通して明瞭かつ明確にバイト列を伝送するために用いる英単語のリストである。作られた目的はNATOフォネティックコードと似ているが、NATOフォネティックコードは英数字36種英大文字と英小文字の区別は無い。しか表現できないのに対し、PGPワードリストは各英単語が1バイト分の情報量(256種)を有しているという点で異なる。
歴史
PGPワードリストは、計算言語学者のと、PGP社開発者のフィル・ジマーマンによって1995年に開発された。それぞれの英単語は、音声学的特徴の明確性の観点を基に、音素空間において最適な分離性を持つよう、遺伝的アルゴリズムを用いて慎重に選出された。ワードリストの候補は、検索する際の生データとしてのリストから無作為に取り出し、遺伝的アルゴリズムによって逐次洗練された。。
ジマーマン・ジュオラ・リストは元々、短い認証文字列を両当事者が口頭で比較することで中間者攻撃(MiTM)を検出できるよう、セキュアなVoIPアプリケーションであるに実装する目的で設計されていた。この認証方法は、音声チャネルを通じて英単語を比較する際、両者が互いに相手の声の特徴を識別することに依存している点から、バイオメトリックワードリストとも呼称されるバイオメトリック(biometric)は英語で「生体認証の~」という意味。。これによって話者の身元と英単語が紐づけられ、中間者攻撃への保護を強化する。。
その後PGPに採用され、PGP公開鍵のフィンガープリントを音声チャネルで比較・検証する手段として用いられた。。。最近では、やPGPfoneの後継プロトコルであるにも利用された。
構成 実際には、ワードリストは2つのリストで構成されている。それぞれ発音的に全く異なる256個の英単語を含んでおり、各英単語は0~255(16進数で00~FF)の異なるバイト値を表現する。リストが2つ用意されている理由は、長いランダムな英単語列を人間が声に出して読み上げる際、普通は以下3種類のミスが発生するリスクが存在するためである。 連続する2英単語の入れ替わり 英単語の重複 英単語の欠落
これらすべてのミスを検出できるよう、2つのワードリストを、バイト列内のオフセットが偶数の時と奇数の時で交互に使用する。各バイト値は、バイト列の先頭からのオフセットが偶数か奇数かによって、実際には2通りの英単語で表現される。どちらのリストに属する英単語なのかは音節の数により容易に識別可能であり、偶数オフセット用の英単語は2音節、奇数オフセット用の英単語は3音節に統一されている。また、偶数オフセット用のワードリストの最大文字数は9文字、奇数オフセット用のワードリストの最大文字数は11文字である。2つのワードリストを利用する方式は、Zhahai Stewartが提案した。
手順 バイト列内の各バイトは、1つの英単語として符号化される。バイト列は、ネットワークバイトオーダーで左から右に向かって変換される。例えば、一番左はオフセットが0なので「偶数」とみなされ、偶数オフセット用のワードリストで符号化される。右隣はオフセットが1なので「奇数」とみなされ、奇数オフセット用のワードリストで符号化される。同様の手順を、すべてのバイト値が符号化されるまで繰り返す。
この手順に沿うと、E582であればtopmost Istanbulに、82E5であればmiser travestyに変換される。
例 あるPGP公開鍵のフィンガープリントが十六進法で次の通りであったとする。 E582 94F2 E9A2 2748 6E8B 061B 31CC 528F D7FA 3F19
この時、PGPワードで表現すると次のようになる。 topmost Istanbul Pluto vagabond treadmill Pacific brackish dictator goldfish Medusa afflict bravado chatter revolver Dupont midsummer stopwatch whimsical cowbell bottomless
バイト列の順序はエンディアンに依存する。
その他のワードリスト PGPワードリストのほかにも、音声チャネルを介して明瞭かつ明確にデータを伝達するために開発されたワードリストが存在する。 NATOフォネティックコードは、英単語1語につき英数字1文字を表現できる。 S/KEYでは、ワンタイムパスワードを英単語に置き換える仕組みがある。英単語1語につき11ビット分の情報量が付与されており、6語並べることでワンタイムパスワード1個を表現できる。ワードリストはに示されており、2048語収録されている。 では、単語1語でサイコロの出目5回分(約13ビット分の情報量)を表現できるよう、7,776語から成るダイスウェアワードリストが用意されている。 電子フロンティア財団は、同様の発想に基づいて、オリジナルのダイスウェアワードリストから改良した新しいワードリストを2016年に公開している。 では、で生成した乱数を、リストで定義された発音可能な短い英文字列を組み合わせることで表現する仕組みが提唱されている。 Mnemonicは、英単語3語で32ビットの情報量を表現できる。ワードリストには1,626語格納されており、Oren Tirosh氏が作成したオリジナル版と、オリジナル版の開発停止を受けてStephen Paul Weber氏が作成した改良版の2種類が存在する。 what3wordsでは、地理的座標を単語3語で表現できる。ワードリストは2026年1月4日時点で61言語存在しており、日本語版も存在する。 BIP39は、固定長の暗号鍵通常は暗号通貨ウォレットの平文のマスターキーを指す。を紙などの電磁的でない記憶媒体で保存できるようにするため、可読性が高い英単語列であるシードフレーズに変換することを可能にすることを目的としたワードリストである。これは、BitcoinやMoneroなどのような暗号通貨で用いられている。 PGPワードリストと同様に、Bytewordsもまたバイト列を英単語で符号化できるようにするために開発されたワードリストである。リストは1つだけで、4文字の英単語256語で構成されている。また、最初の1文字と最後の1文字のみで一意に識別できるよう設計されている。
脚注
注釈
出典