1 / 34

Concurrent ZK

Concurrent ZK. סמינר בפרוטוקולים קריפטוגרפיים – עומר פנט. חזרה - ZK. IP היא ZK אם לכל יריב קיים סימולטור לכל שפה ב NP יש פרוטוקול ZK הפרוטוקול של Blum הרכבה סדרתית של פרוטוקול ZK היא גם ZK אין משפט עבור הרכבה מקבילית. חזרה BB-ZK. פרוטוקול הוא BB-ZK אם קיים סימולטור לכל יריב

zyta
Download Presentation

Concurrent ZK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Concurrent ZK סמינר בפרוטוקולים קריפטוגרפיים – עומר פנט

  2. חזרה - ZK • IP היא ZK אם לכל יריב קיים סימולטור • לכל שפה ב NP יש פרוטוקול ZK • הפרוטוקול של Blum • הרכבה סדרתית של פרוטוקול ZK היא גם ZK • אין משפט עבור הרכבה מקבילית

  3. חזרה BB-ZK • פרוטוקול הוא BB-ZK אם קיים סימולטור לכל יריב • לא קיים BB-ZK עם שלושה סיבובים [GK 96] • קיים פרוטוקול BB-ZK עם מספר סיבובים קבוע commit r commit G P V decommit r decommit G

  4. cZK - מוטיווציה • שימוש ב ZK בתצורה "מציאותית" • שרת מרכזי כל יכול • מספר לקוחות מוגבלים חישובית ובלתי תלויים • עבור כל לקוח השרת מריץ עותק חדש של P • כל העותקים של P רצים באופן בלתי תלוי • לא מובטח כי העותקים של V הם בלתי תלויים

  5. cZK - מוטיבציה • היריב V* שולט ומתזמן את כל העותקים של V • מכיל את המקרה של הרצה סדרתית או מקבילית V* server P V P V P V

  6. cZK - הגדרה • פרוטוקול (P,V) הוא cZK אם הוא IP לשפה L ולכל יריב פולינומאלי בו זמני V* קיים סימולטור פולינומאלי S כך שלכל xL הפלט של (P,V)[x] בלתי מובחן מהפלט של S(x) • יריב בו זמני הוא יריב ששולט במספר sessions מול עותקים בלתי תלויים של P ובתזמון שלהם

  7. cZK – הגדרה • הפרוטוקול הוא IP ביחס לכל session בנפר • מספר הסיבובים נקבע על פי session בודד • מספר ה sessions הבו זמניים פולינומאלי (בגלל V*) • פרוטוקול הוא BB-cZK אם קיים סימולטור שמדמה ריצה של כל יריב בעזרת שאילתות BB • מהו מודל החישוב?

  8. מספר סיבובים – סקירת תוצאות • לא קיים פרוטוקול BB-cZK עם 3 סיבובים [GK 96] • לא קיים פרוטוקול BB-cZK עם 4 סיבובים [KPR 98] • קיים פרוטוקול עם ω(n) סיבובים [RK 99] • לא קיים פרוטוקול BB-cZK עם 7 סיבובים [R 00] • קיים פרוטוקול עם ω(log2 n) סיבובים [KP 01] • חסם תחתון של log n סיבובים [CKPR 01] • קיים פרוטוקול עם ω(log n) סיבובים [PRS 02] 3 4 7 Log n Log2 n n

  9. הקושי בסימולציה - דוגמה • האם הפרוטוקול ZK ב 4 סיבובים הוא גם cZK? S2 S1 V1 P V P1 V1 - commit r V1 P1 - commit G P1 V2 - decommit r V2 P2 - decommit G P2 V2 P2

  10. הקושי בסימולציה • תזמון גרוע במיוחד • סימולציה דורשת זמן אקספוננציאלי • די בתזמון זה על מנתלהכשיל כל סימולטור

  11. חסם תחתון למספר סיבובים • אם קיימת ל L מערכת הוכחה (P,V) שהיא BB-cZK עם 4 סיבובים, אז L ב BPP [KPR 98] • ההוכחה דומה לחסם עבור 3 סיבובים [GK 96] • מניחים בשלילה כי קיים סימולטור S ובונים בעזרתו אלגוריתם הכרעה עבור L • עבור xL הטעות זניחה בגלל השלמות של (P,V) • עבור xL הטעות זניחה בגלל הנכונות של (P,V)

  12. חסם תחתון למספר סיבובים • נגדיר יריב V* שמממש את התזמון הגרוע וכל הודעה שלו תלויה בכל ההודעות הקודמות בכל ה sessions • שימוש ב T(S)-wise independent hash function אלגוריתם הכרעה: • עבור קלט x, הרצת S עם היריב V*, נחזיר כי xL אם בפלט של S, V* משתכנע בכל ה sessions

  13. חסם תחתון למספר סיבובים • עבור xL, S מדמה ריצות רגילות של (P,V) • עבור xL אם קיים S שמשכנע את V* בהסתברות לא זניחה, נבנה בעזרתו P* שמשכנע את V ש xL • היריב P* מצליח אם S לא עושה rewind ל session P* S V* session i .. V ..

  14. עוד חסמים תחתונים • חסם תחתון ל 7 סיבובים [R 00] • חסם תחתון ל log(n)/loglog(n) [CKPR 01] • כל החסמים משתמשים בתזמון קבוע • החסם לכל קבוע משתמש ביריב שסוטה מהפרוטוקול

  15. פרוטוקול עם k סיבובים • נוסיף לפרוטוקול של Blum שלב התחלתי ונחזור עליו k פעמים P V STSRT P1,V1 – slot 1 … Pk,Vk – slot k Part 1 END Part 2 Blum open all slots

  16. הסימולטור של RK • הסימולטור נוקט בגישה חמדנית ומבצע rewind ל slot אם מספר ה sessions שנאבד קטן מ (n-1)/k • נוסחאת נסיגה לעבודה W(n)=poly(n)*W(n-1/k) • אם k=O(n) אז הסימולטור פולינומאלי • אם k=O(1) אז הסימולטור קואזי-פולינומאלי • לכל ε>0 קיים פרוטוקול cZK עם nε סיבובים

  17. solve(hist, m) If m>1 hist1 = solv(hist, m/2) hist2 = solv(hist, m/2) hist3 = solv(hist1, m/2) hist4 = solv(hist1, m/2) return hist3 pick random msg p simulate V*(hist, p)) -> v return hist + (p,v) התעלמות מהתזמון של V* וביצוע rewinds על פי אסטרטגיה קבועה מראש ספירת רק הודעות שלב 1 שמירת כל התשובות העדכניות של V* שימוש בשתשובות שנשמרו עבור הודעות שלב שני הסימולטור של KP

  18. הפרוצדורה solve

  19. ניתוח הסימולטור של PK • הסימולטור רץ בזמן פולינומיאלי • הסימולטור מוציא פלט בלתי מובחן מריצה תקינה • הסימולטור כמעט אף פעם לא "נתקע" • התמודדות עם V* שסוטה מהפרוטוקול

  20. הסימולטור לא נתקע • נניח כי התזמון של V* קבוע מראש, אך לא ידוע • בלוק הוא רצף הודעות שמסומלץ על ידי solve • בלוק i-מינימאלי הוא הבלוק הקטן שמכיל את slot i • בלוקים i-מינימאליים הם שונים • בלוק הוא טוב אם הוא לא מכיל START או END • יש k-2d בלוקים טובים ומספיק אחד בכל session • נבחר k=O(log n) ונקבל כי הסימולטר לא נתקע

  21. התמודדות עם סטיות מהפרוטוקול • היריב V* יכול להחזיר  בכל שלב • הסימולטור מחזיר את התוצאה האחרונה של V* • בלוק הוא רע עם אח שלו מחזיר  והוא לא • בלוק אחד הוא רע בהסתברות קטנה מ ¼ • בלוקים שלא מוכלים זה בזה הם בלתי תלויים • ההסתברות שכל הבלוקים רעים קטנה מ (¼)k/d • נבחר k=O(log2 n) ונקבל הסתברות זניחה להיתקע

  22. הסימולטור של PRS • למעשה מדובר בסימולטור של KP עם ניתוח מתוחכם • המטרה היא להוכיח כי רוב הסרטים האקראיים טובים • התאמת סרטים טובים רבים לכל סרט רע • למצוא בלוקים קטנים שרצים פעמים רבות ולהחליף • להחליף ריצה של בלוקים אחים [PTV 08]

  23. ניתוח הסימולטור של PRS • נגדיר thread כסימולציה רצופה של V* • כל session בכל thread נתקע בהסתברות זניחה • נאמר כי slot פתור ב thread עם הוא מקבל תשובה • מתי thread יגיע ל END של session • מתי thread\session יתקע • נבחר thread\session ראשיים • סרט רע גורם ל thread\session הראשיים להתקע

  24. ניתוח הסימולטור של PRS • עבור סרט r, החלפת בלוק B באחיו B’ על ידי הלחפת הביטים האקראיים בהם השתמשה הסימולציה של B באלו של B’, וקבלת סרט חדש r’ • בתוך B יתכן תזמון שונה מבתוך B’ • הבלוקים B,B’ משתמשים באותה כמות של ביטים • הסימולציה בתוך הבלוקים B,B’ לא משתנה

  25. ניתוח הסימולטור של PRS • נגדיר יחס סדר בין בלוקים (C>B) 1. 2.

  26. ניתוח הסימולטור של PRS • בלוק B עם אח B’ הוא מתחלף אם: • הוא על (מכיל את) ה thread הראשי • הוא מכיל slot פתור של ה session הראשי • הוא לא מכיל את START • B’ לא מכיל את END

  27. ניתוח הסימולטור של PRS • אם B בלוק מתחלף עם אח B’, והסרט r מתקבל על ידי החלפת B עם B’ את הסרט r הוא טוב • אחרי ההחלפה B’ על ה thread הראשי • אחרי ההחלפה B מכיל slot פתור • אם ה thread הראשי מגיע ל END אז B התבצע

  28. ניתוח הסימולטור של PRS • אם C>B בלוקים מתחלפים, לאחר שנחליף את B עם אחיו B’, הבלוק C עדיין מתחלף • אם C מתבצע לפני B, ההחלפה לא משפיעה על C • אם C מכיל את B,B’ הוא מכיל אותם אחרי ההחלפה • הסימולציה באח של C לא משתנה

  29. ניתוח הסימולטור של PRS • בלוק B מתחלף הוא הפיך אם: • בסימולציה בין START ל B יש על ה thread הראשי רק slots משכנעים של ה session הראשי • בסימולציה בין START ל B על כל ה threads האחרים יש רק slots לא משכנעים של ה session הראשי • אם C>B בלוקים הפיכים, החלפת B,B’ משאירה את C הפיך

  30. ניתוח הסימולטור של PRS • עבור סרט r נסמן ב undo(r) את הסרט שמתקבל ממציאת הבלוק הראשון שאינו על ה thread הראשי ומכיל slot משכנע, והחלפתו עם אחיו • אם B בלוק הפיך והסרט r’ מתקבל מ r על ידי החלפת B עם אחיו B’ אז r = undo(r’)

  31. ניתוח הסימולטור של PRS • אם בסרט רע יש p בלוקים מתחלפים והפיכים אז ניתן ליצור ממנו 2p-1 סרטים טוביים • אם שני סרטים טובים מתקבלים משני סרטים רעים על ידי החלפת בלוקים הפיכים, אז הם שונים • אם בכל סרט רע יש p בלוקים מתחלפים והפיכים אז ההסתברות לסרט רע היא (½)p

  32. ניתוח הסימולטור של PRS • נניח כי הסרט רע • יש k-2d בלוקים i-מינימאלים ללא START או END • אם B בלוק i-מינימאלי עם אח B’, לא מכיל את END אז גם B’ לא מכיל את END • כל בלוק i-מינימאלי טוב הוא מתחלף והפיך • נבחר k=O(log n) ונקבל הסתברות זניחה להיתקע

  33. מקורות • O. Goldreich and A. Kahan. How to Construct Constant-Round Zero-Knowledge Proof Systems for NP 1996 • J. Kilian, E. Petrank, and C. Rackoff. Lower Bounds for Zero-Knowledge on the Internet 1998 • R. Richardson and J. Kilian. On the Concurrent Composition of Zero-Knowledge Proofs 1999 • A. Rosen. A Note on the Round-Complexity of Concurrent Zero-Knowledge 2000 • J. Kilian and E. Petrank. Concurrent and Resettable Zero-Knowledge in Polylogarithmic Rounds 2001 • R. Canetti, J. Kilian, E. Petrank and A. Rosen. Black-Box Concurrent Zero-Knowledge Requires (Almost) Logarithmically Many Rounds 2001 • M. Prabhakaran, A. Rosen and A. Sahai. Concurrent Zero-Knowledge Proofs in Logarithmic Number of Rounds • A. Rosen Concurrent Zero-Knowledge 2006 • R. Pass W. Tsengy M. Venkitasubramaniamz Unconditional Characterizations of Concurrent Zero Knowledge 2008

  34. סיכום ושאלות

More Related