Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
勉強会_7ゼロ知識証明.pdf
Search
titech.crypto
June 10, 2018
0
400
勉強会_7ゼロ知識証明.pdf
titech.crypto
June 10, 2018
Tweet
Share
More Decks by titech.crypto
See All by titech.crypto
Crypgeek 勉強会 #13
titechcrypto
0
290
Lightning network
titechcrypto
0
35
About Bitcoin and its cryptography
titechcrypto
0
100
第8回 CrypGeek勉強会
titechcrypto
0
67
勉強会7.pdf
titechcrypto
0
290
勉強会 #6
titechcrypto
0
350
勉強会 #6
titechcrypto
0
350
勉強会 #4
titechcrypto
0
320
勉強会 #4
titechcrypto
0
250
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Visualization
eitanlees
146
16k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Documentation Writing (for coders)
carmenintech
72
4.9k
Fireside Chat
paigeccino
37
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
A Tale of Four Properties
chriscoyier
160
23k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Transcript
ゼロ知識証明 東工大ブロックチェーン研究会CrypGeek 勉強会 #7
ゼロ知識証明 ある人が他の人に、自分の持っている命題が真であることを伝えるのに、真であ ること以外の何の知識も伝えることなく証明できるようなやりとりの手法 (wikipediaより) つまり、イーサリアムでいうと 「Aは正しい秘密鍵を持っている」という命題をAが持っている秘密鍵を明かさない でBに証明する手法 Aを証明者、Bを検証者という
主張が真ならば、高確率で検 証者は高確率で受理する ↓ Aが正しい秘密鍵を持っている ならば高確率でBはAが秘密鍵 を持っていると判断する 完全性 Completeness 主張が偽ならば、無視できる確 率を除けば検証者は拒否する
↓ Aが正しい秘密鍵を持っていな いならば無視できる確率を除き BはAは秘密鍵を持っていない と判断する 主張が真ならば、プロトコルを 実行しても、 検証者に秘密情報がバレない ↓ Aは秘密鍵の情報を明かすこと なく命題を証明できる 健全性 soundness ゼロ知識性 Zero knowledge
離散対数問題の場合(ℎ = $, : 秘密鍵) Alice(証明者) ∈ + を選ぶ、 =
- を計算してBobに送る Bob(検証者) ∈ {0,1}を選んでAliceに送る Alice = + を計算してBobに送る Bob - = ℎ: を検証してtree,falseを返す これを何回も繰り返す • 完全性 ・・・ • 健全性 ・・・ • ゼロ知識 ・・・ を知って入れば毎回Bobはtreeを返す 攻撃者は′ ∈ {0,1}を選んで = -/ℎ:= をBobに送って = ′の時にBobはtree を返す. n回検証した場合成功確率は(1/2)A なのでnが大きければ無視できる. 離散対数問題は困難では未知なのでも未知
Schnorrの証明プロトコル • 前のページの検証で ∈ + としたもの • 完全性とゼロ知識性については同じ • 健全性については
> 2Aとすれば1回だけの検証で同等の強さが 得られる.
非対話証明 Alice(証明者) ∈ + を選ぶ、 = - を計算してBobに送る Alice =
()を選んでBobに送る Alice = + を計算してBobに送る Bob - = ℎ: を検証してtree,falseを返す もAliceが計算して送信する. この場合でも = -/ℎD(E)となるようなを攻撃者は計算しなければならずほとんど 無理である.
デジタル署名へ Alice ∈ + を選ぶ、 = - を計算する Alice =
(||)を選んでBobに送る Alice = + を計算してBobに送る Bob = -/ℎ: を 計算する Bob = (||) を検証する :暗号化されたメッセージなど 選択メッセージ攻撃に対して存在的偽造不可 存在的偽造 :少なくとも一つのメッセージに対して偽造できること(<選択的偽造<一般的偽造<全面解読) 選択メッセージ攻撃:メッセージを選んでその署名を得ることで、別のメッセージを偽造する攻撃 一般的(公開鍵を知らない・メッセージを選んだ後、署名を得る)、 指向的(既知の公開鍵に対して・メッセージを選んだ後、署名を得る)、 適応的(既知の公開鍵・署名を得た後にそれを考慮して署名を得るメッセージが選べる) ランダムオラクル :署名オラクルの出力がランダム
ここからは、もしかしたら間違っているかも…
安全性 • 受動的攻撃 ・・・Schnorrは安全 • 能動的攻撃 ・・・離散対数問題の困難性を前提とすれば安全 • 同時並行攻撃・・・離散対数問題の困難性を前提とすれば安全
計算DH問題 • G , I からGI を計算する問題 • 計算DH仮定 が十分に大きな素数で,
∈ L とするとき、計算DH問題を効率的に解く アルゴリズムは存在しない • 判定DH仮定 が十分に大きな素数で, , ∈ L のとき、ランダムに与えられたGI か : をどちらか効率的に判断するアルゴリズムは存在しない
ゼロ知識証明の数学的表現 ∀O ,∀ , ∈ , ∀ O ; O
Z [,\ E,] ≈ { , ; O } 任意の複雑性クラスO、証明者アルゴリズムの入力と対応する証 拠(となる知識), Oの入力に対して E,` を使って(つまり本物の証 明者が証明して) Oが承認する入力 , と同じ入力が得られるシミュ レータが存在する. つまり、 を使わなくても , は情報に変化がないので、このアルゴ リズムの入出力には秘密知識の情報は含まれていないことがわかる
1/2^nよりも優秀 • 1回の対話(n回中の1回)でそれぞれ片方しか答えられない時は 1/2^nの確率なのでそれより多い時な少なくとも一回は両方に答えら れる場合がある。両方に答えられる知識を持っているということはs を知っているということでゼロ知識であることに矛盾する。
参考 ・知識の証明と暗号技術 ・Security Akademeia ・ Witness Indistinguishable and Witness Hiding
Protocols ・暗号プロトコルの基礎数理(黒澤,尾形,IPSJ Magazine Vol.45 No.11 Nov. 2004 )