יעל סמיט דורון פרידלנד בר כץ ארז אלון

27
טטט טטטט טטטטט טטטטטטט טט טט טטט טטטט

Upload: cosmo

Post on 05-Jan-2016

78 views

Category:

Documents


0 download

DESCRIPTION

סדנה בבטיחות תקשורת. נושא :. MPC – Multi Party Computation. יעל סמיט דורון פרידלנד בר כץ ארז אלון. הבעיה. מס' אנשים (לשם המקוריות, נניח n ) מעוניינים לחשב איזושהי פונקציה ביחד, כאשר לפונקציה n כניסות – וכל אחד מהשחקנים נותן כניסה אחת. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: יעל סמיט דורון פרידלנד בר כץ ארז אלון

יעל סמיטדורון פרידלנד

בר כץארז אלון

Page 2: יעל סמיט דורון פרידלנד בר כץ ארז אלון

הבעיה( מעוניינים לחשב איזושהי nמס' אנשים )לשם המקוריות, נניח •

כניסות – וכל אחד מהשחקנים nפונקציה ביחד, כאשר לפונקציה נותן כניסה אחת.

הבעיה היא שהשחקנים אינם רוצים לשתף אחד את השני •בכניסה שהם מספקים – הם רק רוצים לדעת מה תוצאות

החישוב.

– כל שחקן נחשוב לדוגמא על מקרה של הצבעה אלקטרונית•רוצה לתת את קולו )נניח בעד, נגד או נמנע(, ובסופו של דבר כל השחקנים רוצים לדעת מה היתה תוצאת ההצבעה, אך אף שחקן

אינו רוצה לחשוף את מה שהצביע.

Page 3: יעל סמיט דורון פרידלנד בר כץ ארז אלון

הפיתרון

הפיתרון לבעיה הוא פיתרון מתמטי שעיקר הרעיון בו מתבסס על חלקים.nחלוקת הסוד של כל משתתף ל

באופן זה, כל משתתף יכול לחשב את הפונקציה כולה, כאשר הכניסות לפונקציה אינם הכניסות אותם הכניסו השחקנים

)ה"סודות"( אלא "חלק" שלהם - שלא מוסיף מידע כלל לגבי הסוד המקורי.

איך מחלקים מספר לחלקים ???לא נרחיב בבסיס המתמטי, אבל העיקרון הוא פשוט – הגרלת

פולינום והסתרת הסוד באיבר החופשי של הפולינום.

Page 4: יעל סמיט דורון פרידלנד בר כץ ארז אלון

איך בעצם זה עובד??בשלב הראשון יש להפוך את הפונקציה הנתונה למעגל חישובי המכיל רק •

שערי חיבור חיסור וכפל. מעגל זה הוא שיחושב ע"י המשתתפים.

חלקים ומשתף כל משתתף אחר nכל משתתף מחלק את הסוד שלו ל •בחלק אחד )אחר( מהסוד.

כל אחד מהמשתתפים מבצע את פעולת המעגל על החלקים שאצלו. •במידה ועל השחקנים לבצע שער "*" הם עושים זאת ביחד תוך העברת

מידע אחד לשני – ועל כך נרחיב בהמשך.

בסוף התהליך המשתתפים יכולים לשתף אחד את השני בתוצאות החישוב •– שהם למעשה "חלק" של התוצאה. בעזרת כל חלקי התוצאה ניתן בהליך

מתמטי לגלות את התוצאה האמיתית.

Page 5: יעל סמיט דורון פרידלנד בר כץ ארז אלון

עבודה בשדה סופי

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

המשמעות היא שבתהליך אנו קובעים מספר • p .מספר זה מגדיר שדה בגודל pראשוני

)0,1…p-1( .שמעליו אנו עובדים

כל הפעולות המתמטיות מתבצעות מעל שדה •(.pזה )כלומר, מודולו

Page 6: יעל סמיט דורון פרידלנד בר כץ ארז אלון

GUI

MPC Implementation מודולים עיקריים -

Parser

Connection Controller

MPC Protocol

Create Circuit

Circuit Object

Create Connections

Send/Receive from other

players

Circuit Object +

configurations

Results

Page 7: יעל סמיט דורון פרידלנד בר כץ ארז אלון

תהליך פעולת האפקליציה

. כתיבת/טעינת תכנית והפעלת קומפילציה לבדיקת התחביר אויצירת המעגל.

. בחירת קונפיגורציות להפעלת החישוב והכנסת ה"סוד".ב

ועוד מספר הגדרות( IP/Port. הגדרת המשתתפים בתהליך )גבעזרת קובץ הגדרות או הורדה מתוך שרת.

. הפעלת החישוב... צפייה בתוצאה.ד

Page 8: יעל סמיט דורון פרידלנד בר כץ ארז אלון

א. יצירת המעגלFunction Configuration

דרכים לטעון פונקציה:3בשלב זה ניתן לבחור בין מתוך קובץ – קובץ טקסט פשוט המכיל את הקוד.– מוכן מראש – חיבור/הכפלה/בדיקת שוויון/הצבעה. templateמתוך –

במקרה זה יש צורך להכניס גם מה מספר השחקנים.–Blank With Pattern .נותן קטע קוד בסיסי המסביר את התחביר –

לקוד בו הוא חפץGUIהמשתמש יכול לשנות אותו מתוך ה

Page 9: יעל סמיט דורון פרידלנד בר כץ ארז אלון

א. יצירת המעגל- המשך..Function Source Edit

לאחר טעינת הקוד יופיע הקוד בתוך חלון טקסט. בשלב זה יכול המשתמש לשנות את הקוד כפי שירצה )אלא אם כן הקוד נוצר

– ואז המשתמש אינו רשאי לשנותו(. לאחר templateבעזרת .Saveהסיום יכול המשתמש לשמור את הקוד לקובץ בעזרת

Page 10: יעל סמיט דורון פרידלנד בר כץ ארז אלון

א. יצירת המעגל- המשך..The syntax

התחביר הנתמך תומך בפעולות הבאות:•חיבור חיסור כפל וחילוק תוך נתינת קדימויות מתמטיות.–שימוש בסוגריים לשינוי סדר הפעולות.–שימוש חופשי במשתנים ללא צורך להגדירם – כל המשתנים מטיפוס –

Integer. הבודקת אם שני האופרנדים שווים. ערך הביטוי a==bתמיכה בפעולה –

אחרת.0 אם הם שווים ו 1הוא .a=c, אחרת a=d נקבל b=0. במידה ו a = b ? c : dתמיכה בפעולה – Inputsהגדרת כניסות ויציאות המעגל בצורה פשוטה בעזרת שורת –

. Outputsושורת Input נתייחס לפי סדר הופעתם בשורה זו – הראשון יהיה ה Inputsל –

של השחקן הראשון, השני של השני וכן הלאה. שכל שחקן יהיה רשאי לראות נוכל להגדיר בהמשך.Outputsאת ה –

Page 11: יעל סמיט דורון פרידלנד בר כץ ארז אלון

א. יצירת המעגל- המשך..פעולת הקומפילציה

כאשר המשתמש מסיים לכתוב ולבדוק את הקוד הוא יכול •.compileלקמפל אותו בעזרת פקודת

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

במידה והקוד חוקי יוכל עתה המשתמש לראות את המעגל שיצר, וכן –יפתחו בפניו האופציות בחלק הימני של המסך – המשמשות להרצת

החישוב עצמו.

Page 12: יעל סמיט דורון פרידלנד בר כץ ארז אלון

א. יצירת המעגל- המשך..Circuitחלון

בחלון זה יכול המשתמש לראות תרשים גרפי של המעגל אותו •יצר והוא מתכונן להריץ.

של המעגל וב i{ את הכניסה ה iלשם פשטות, אנו מסמנים ב }•i את הערך הקבוע i בדוגמא(12 )כמו

Page 13: יעל סמיט דורון פרידלנד בר כץ ארז אלון

א. יצירת המעגל- המשך..הערה לגבי פעולת החילוק

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

, נשתמש pמכיוון שאנו עובדים בשדה סופי שנוצר מהמספר הראשוני • מוגדר ע"י וזאת מכיוון שלכל xבעובדה שבשדה כזה ההופכי של אחד מהאיברים בשדה מתקיים:

שקולה תמיד להכפלה בהופכי, עלינו למצוא a/bמכיוון שפעולת החלוקה • פעמים, ואז להכפיל את p-2 – ע"י הכפלתו בעצמו bאת ההופכי של

.aהתוצאה ב במעגל אנו מראים שער "/" פשוט, כאשר מאחורי הקלעים מתבצע החישוב •

המלא כפי שתיארנו לעיל. פעמים מתבצעת בעזרת עץ חישוב שסיבוכיותו p-2פעולת ההכפלה •

.pלוגריתמית ב

2px

1 21 1p p px x x x x

Page 14: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ב. קונפיגורציות החישוב והכנסת ה"סוד"

כל שחקן מכניס את ה"סוד" שלו ואת האינדקס שלו, •.n-1 ל- 0כאשר האינדקסים הינם מס' בין

בנוסף על השחקן לטעון קובץ קונפיגורציות הכולל •.SSL והפורט של השחקן, ומפתח לחיבור ב-IPאת ה-

לבסוף על המשתמש לבחור בסוג הפרוטוקול אותו •הוא רוצה להריץ.

Page 15: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ג. הגדרת המשתתפים

דרכים:2השחקנים יכולים להתחבר זה לזה ב-• )זהו קובץ הקונפיגורציות בו מוסיפים XMLקובץ •

פרטי התחברות לשאר השחקנים(. ומס' הפורט IP, כאשר יש להכניס את ה-serverע"י •

שלו, השולח לכל השחקנים את פרטי ההתחברות לשחקנים האחרים.

Page 16: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ג. הגדרת המשתתפים – המשךמבנה קובץ הקונפיגורציות

כניסות עיקריות – הגדרת המשתתפים והגדרת ה 2לקובץ •SSL.

בו הוא key על המשתמש רק להגדיר את מיקום ה SSLבהגדרת ה –משתמש.

בהגדרת המשתתפים, עבור כל שחקן יש להגדיר:–•IP/Port.

•Index.

•Outputs זוהי רשימת ה – Outputs של המעגל שהשחקן רשאי לראות, לפי הסדר שהוגדרו בקוד ובמעגל.

: במקרה של הגדרת השחקנים מתוך שרת, המשתמש צריך להגדיר רק הערה שכל שחקן אמור Outputs שלו )ולשאר השחקנים רק את ה Port/IPאת ה

לקבל(.

Page 17: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ג. הגדרת המשתתפים – המשךהסרבר

ישום נפרד •

כל משתתף שמתחבר לסרבר, שולח לו את הפרטים של עצמו, •ופרטים שקשורים לחישוב )מספר שחקנים מצופה, המספר הראשוני

של השדה, ועוד...(

נעשית בדיקה שכל המששתפים אכן מבצעים את אותו חישוב ואין •קונפליקטים בינהם.

שימוש בסרבר חוסך את הצורך בידיעת כתובות האייפי והפורט של •המשתתפים השונים.

Page 18: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ג. הגדרת המשתתפים – המשךהסרבר

Page 19: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ד. הפעלת החישוב וצפייה בתוצאהProgressחלון

ברגע שכל השחקנים התחברו, ניתן לראות את כל • .Progressתהליך ההתחברות והחישוב בחלון

אם יש אזהרות או שגיאות,•

הטקסט מופיע בצבעים ירוק

ואדום בהתאמה.בכל שלב ניתן לנקות את •

החלון, וכן לעלות ולרדת עם

.Scroll barה-

Page 20: יעל סמיט דורון פרידלנד בר כץ ארז אלון

ד. הפעלת החישוב וצפייה בתוצאה-המשך..

Resultחלון בסיום החישוב קופץ חלון בו כתובות תוצאות החישוב.•

בתחילת החישוב, כל שחקן יכול להחליט אילו תוצאות •הוא רוצה לקבל )כל השחקנים צריכים להסכים על

אילו תוצאות כל אחד מקבל(.במידה ולשחקן אין תוצאות המיועדות עבורו הודעה זו •

תופיעה בחלון התוצאות.

Page 21: יעל סמיט דורון פרידלנד בר כץ ארז אלון

עבודה עם רמאיםByzantine protocol

כל האלגוריתם שהסברנו עד עתה תקף כאשר השחקנים •שולחים את המידע אותו הם אמורים לשלוח.

האלגוריתם מגן על הסודות של המשתתפים, אך איננו יודע •להתמודד ולהמשיך את החישוב כאשר שחקנים מנסים לשלוח

מידע שגוי בטעות/בכוונה או שאינם שולחים מידע כלל.

בשלב השני של הפרוייקט מימשנו מספר רכיבים שנועדו •להתמודד עם בעיה זו.

Page 22: יעל סמיט דורון פרידלנד בר כץ ארז אלון

(2עבודה עם רמאים )Byzantine protocol

ניתן לחלק את הרכיבים המטפלים בכך לשלושה חלקים:

– משתתף יכול לשלוח מספרים שאינם בהכרח בשלב הראשון – חלוקת הסודות•חלק של הסוד שלו )ואינם בהכרח חלק של סוד כלשהו(.

שמורכב ממספר איטרציות של העברת מידע בין VSSפתרון בעזרת אלגוריתם •

השחקנים. , מחלק פולינומים לכל שחקן ולא dealer כחלק מאלגוריתם זה, שחקן המחלק את סודו,

מספרים. בעזרת פולינומים אלה יכולים השחקנים להם חילקו את החלקים השונים לוודא כי המידע

אותו שלח קונסיסטנטי.dealer ה

או כל שחקן אחר יכול לנסות לפגוע בחישוב ע"י כך שלא ישלח dealerנשים לב, כי ה • שלא שלח מידע ,אפילו לחלק מן dealer-ים: Timeoutדבר. טיפלנו בבעייה זו ע"י

השחקנים, מקבל יחס של מי שמנסה לרמות ומוגשת נגדו "תלונה".

כרמאי הוא מוצא מתהליך החישוב והשחקנים dealerאם המשתתפים מכריזים על ה •" )לפי הגדרת הפרוטוקול(. 0מתחשבים בקלט שלו כאילו והוא "

Page 23: יעל סמיט דורון פרידלנד בר כץ ארז אלון

(3עבודה עם רמאים )Byzantine protocol

אנו צריכים לדעת להתמודד עם משתמש בשלב השני –•שמנסה לשלוח מידע לא נכון בצעד הכפל.

שיודע GRR בכדי לפתור בעייה זו השתמשנו באלגוריתם של לאתר שחקנים המנסים לרמות בשלב זה.

נרצה להתמודד עם משתמש שבשלב בשלב השלישי -•איחוד התוצאה )בסוף החישוב( שולח חלקי תוצאות שגויים.

שיודע, WB לטובת כך מימשנו אלגוריתם לתיקון שגיאות של בשלב זה, לתקן את הערכים – גם אם אחד מהם הוא שקר או פשוט לא קיים )משתמש יכול גם פשוט לא לשלוח כלום ולאו

דווקא לשקר(.

Page 24: יעל סמיט דורון פרידלנד בר כץ ארז אלון

שלב א' - הפרוטוקול הפשוט :

קומפיילר המקבל קלט בפורמט מסוים ויוצר ממנו מעגל•ביצוע פעולות על מספרים ומטריצות בשדות סופיים•(Recombine( ואיחוד סוד )shareחלוקת סוד )•.GRR ולפי BGWמימוש צעד הכפל של הפרוטוקול לפי •יכולות תקשורת בסיסיות – שליחת מספרים בודדים•XMLטעינת פרטי התקשרות לשחקנים מקובץ •ממשק נוח למשתמש•הצגה גרפית של מעגל החישוב•

יכולות ממומשות

Page 25: יעל סמיט דורון פרידלנד בר כץ ארז אלון

(2יכולות ממומשות )

שלב ב' - הפרוטוקול המורכב )כולל טיפול ברמאים( :

יכולות תקשורת מתקדמות – שליחת אובייקטים כלשהם••Absolute verification of a secretGRRמימוש צעד ההכפלה לפי •BCH לקודי Welch-Berlekampאלגוריתם לתיקון שגיאות של •הוצאת שחקן שקרן מתהליך החישוב•טעינת פרטי התקשרות לשחקנים משרת•הוצאת חיוויים מתאימים למשתמש על נסיונות רמאות•הוספת תבניות מוגדרות מראש לפונקציות מסויימות•

Page 26: יעל סמיט דורון פרידלנד בר כץ ארז אלון

מה נשאר...)לשנה הבאה(

מימוש צעד ההכפלה במקרה של השקרנים לפי •הפתרון של רן קנטי

– לוח מודעות עליו ניתן Broadcastמימוש פרוטוקול •לפרסם הודעות לכולם.

במעגל ”X>Y"הוספת תמיכה באופרטורים כגון•החישובי

Page 27: יעל סמיט דורון פרידלנד בר כץ ארז אלון

מאמרים רלוונטים

1. Completeness Theorem for Non-Cryptographic Fault-Tolerant Distributed Computation - BGW)88(

2. Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography – GRR)88(

3. Algorithmic Introduction to Coding Theory – Madhu Sudan )2001(