ゼロ知識証明 【ZKP】 Zero Knowledge Proof / ZKIP / Zero Knowledge Interactive Proof

概要

ゼロ知識証明(ZKP)とは、自分が秘密の情報を知っていることを、その情報自体を明かさずに相手に証明する手法。公開鍵暗号デジタル署名の理論的背景の一つとして知られる。

検証者が秘密を知らない場合(秘密情報の取引などの場合)、証明者は相手に秘密を知らせる前に秘密を知っていることだけを信じさせることができる。

また、検証者が秘密を知っていて、証明者が持っている情報が本物か調べたい場合(パスワード認証など)でも、両者のやり取りを盗み聞きして第三者に秘密を盗み取られることを防ぐことができる。

具体的な方法として、例えば、検証者が「秘密を知っていれば必ず正答できるが、知らなければどちらなのか分からない二択の問題」を証明者に与え、証明者は問いの回答だけを検証者に知らせる。

証明者が秘密を知らない場合、一度のやり取りで正答する確率は2分の1だが、問題を変えて検証を何度も繰り返せば、秘密なしで10回連続正答する確率は1024(210)分の1、100回では約100万分の1となり、現実にはほとんど起こり得ない低確率となる。

このような検証問題は、情報科学で「NP完全」と呼ばれる種類の問題から生成することが可能であることが知られている。

対話的に何度も検証を繰り返すことから「ゼロ知識対話証明」(ZKIP:Zero-Knowledge Interactive Proof)とも呼ばれる。一度の検証で証明を行う「非対話ゼロ知識証明」は特殊な条件下でしか成立しないとされている。

(2020.2.23更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。