Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
勉強会_7ゼロ知識証明.pdf
Search
titech.crypto
June 10, 2018
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
勉強会_7ゼロ知識証明.pdf
titech.crypto
June 10, 2018
More Decks by titech.crypto
See All by titech.crypto
Crypgeek 勉強会 #13
titechcrypto
0
460
Lightning network
titechcrypto
0
43
About Bitcoin and its cryptography
titechcrypto
0
110
第8回 CrypGeek勉強会
titechcrypto
0
81
勉強会7.pdf
titechcrypto
0
450
勉強会 #6
titechcrypto
0
370
勉強会 #6
titechcrypto
0
380
勉強会 #4
titechcrypto
0
330
勉強会 #4
titechcrypto
0
260
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Design in an AI World
tapps
1
350
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Building the Perfect Custom Keyboard
takai
2
910
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Writing Fast Ruby
sferik
630
63k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Invisible Side of Design
smashingmag
301
52k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Git: the NoSQL Database
bkeepers
PRO
433
67k
Mind Mapping
helmedeiros
1
400
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 )