このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ
*目次 [#fa1cf9a8]

#contents


*ゼロ知識非対話署名 [#ubeb4b2c]
 ゼロ知識対話証明における証明者と検証者の通信を一方通行(非対話)にすることで、署名が実現できる。これを''ゼロ知識対話署名''と呼ぶ。

「Pは(p,g,y)に対して、y=gx mod pとなるxを知っている」という知識、平文に対応する署名が正しいかVが確かめる。

 ちなみに、qとは、gの位数。即ち、|g|=pである。

#img(http://s-akademeia.sakura.ne.jp/main/image9/hitaiwa1.jpg)
#img(,clear)

 次のようにすると、データ量が減るので、効率がよくなる。

#img(http://s-akademeia.sakura.ne.jp/main/image9/hitaiwa2.jpg)
#img(,clear)

 プロトコルを見てみると、典型的な例としてy=gSUP{x}; mod pを公開鍵としていることがわかる。

 知識の署名(証明)を構成できるのは、秘密xを知っている人のみ。そして、知識の署名(証明)を構成した人は、文書Mに対して処理を行ったことがわかる。知識の署名の一部(hashの入力)に文書Mが使われているからである。

 これで普通の署名ができたことになる。公開鍵に対応する秘密鍵の知識の証明をした。秘密鍵の情報は漏れないが、公開鍵の情報はもちろん既知である。

[考察]Schnorr署名もこれとほぼ同じ。数ヶ所変形するだけ。