ゼロ知識証明
相手に何も知識を与えずに、ある命題を知っていることを証明するのがゼロ知識証明です。
q: ある命題を直接相手に渡せばいいのでは?
あかん
その「ある命題」は秘密鍵などセンシティブな情報だから
ハッシュ関数とか使ってお互い計算して、計算結果合ったから「ほらね」する感じsta.icon
例えば、パスワード自体は明かさずに、自分がパスワードを知っているという事実を証明することが可能です。
が、うーん、記事の品質が悪そう
洞窟の比喩の問題設定のところ、PとVがめちゃくちゃになってない?sta.icon
ウォーリーのたとえはいけそうかsta.icon
証明1
アリスは絵から、ウォーリーだけを切り抜いて、ボブに見せます。念のため、アリスが単にウォーリーの絵を、新しくコピーしただけでないことを証明するには、絵全体の裏面に透かしを入れておきます。
1: 絵全体の裏面に透かしを入れます
こうすると、絵を一部を切り取っても「その切り取った部分は、元の絵の一部である」と示せる
実際に合わせてみればいい
2: ウォーリーの部分を切り抜きます
3: このウォーリーを渡します
もしボブが「いやこれほんまにその絵から見つけたウォーリーか?」言うたら?
アリス「じゃあこの絵に当てはめてみなよ。裏面の透かしがちゃんとなるからさ」
証明2
アリスはオリジナルの絵全体に、カードボードを被せて、ウォーリーの箇所だけ切り抜きます。こうするとウォーリーだけが見えます。彼の位置情報はボブには一切開示していません。アリスはカードボードを、絵に被せるだけでいつでも、ウォーリーを見つけたことを証明できます。
これはわからない
カードボードかぶせても「XとYの位置はこのへん」ってのがわかるやんけsta.icon
https://gyazo.com/4a870f8076321c54fc8c894f05bcae8d
「ウォーリー」なのか「シルエット」なのかが違うだけで、ウォーリーの場所は見えてるのでは?
証明1の方で理解できたかなsta.icon*2
DLP
楕円暗号を応用し離散対数問題(DLP)の解を使う
例えば、楕円曲線の点PとAさんの秘密鍵a、公開鍵Q=aPがあったときに、
これ、「楕円曲線の点P」が意味わからんのよなsta.icon
Q=aP
どういうこと、秘密鍵aに「楕円曲線の点P」を掛ける?どういうこと?
離散対数という代数学
代数学を勉強しないとこれ以上はダメそうsta.icon*2