העברה עלומה

בקריפטוגרפיה, העברה עלומה (Oblivious Transfer, בראשי תיבות OT) הוא פרוטוקול קריפטוגרפי המאפשר לשחקן אחד לשלוח סוד אחד מתוך כמה סודות לשחקן שני, באופן שמה שהתקבל בצד השני נותר נעלם מידיעתו. ומצד שני השחקן השני מקבל בדיוק סוד אחד בלבד מתוכם. הפרוטוקול הראשון להעברה עלומה, שהומצא על ידי פרופסור מיכאל רבין דן בסוגיה איך להעביר סוד אחד לצד השני באופן שהשולח יודע אם הוא התקבל בצד השני בהסתברות 1/2 בלבד, כלומר הדבר "נעלם" מידיעתו האם המידע התקבל או לא ומכאן שם הפרוטוקול.
פרוטוקול זה עונה על בעיה הנקראת בעיית העברה עלומה: כיצד להעביר או להחליף פיסות מידע תוך חשיפה מינימלית ובאופן שאף צד אינו נהנה מיתרון כלשהו על הצד השני. למשל במקרה של העברה עלומה בין שני שחקנים, להבטיח שכל שחקן יפעל בהגינות וימלא אחר הוראות הפרוטוקול ולא ינטוש אותו מייד כשיגלה את הסוד שהוא מעוניין בו. בעיה זו של אילוץ הגינות בנוכחות שחקנים מושחתים, נחשבת לבעיה יסודית בקריפטוגרפיה מתקדמת וקשורה קשר הדוק עם בעיה כללית יותר, הידועה כאחת הבעיות החשובות בקריפטוגרפיה שלה השלכות רבות והיא חישוב רב משתתפים בטוח. היא טובה למשל בפתרון סוגיות כמו מסחר אלקטרוני בטוח, מכירה פומבית דיגיטלית, הצבעה דיגיטלית, חוזה והטלת מטבע דיגיטליים, שיתוף סוד, מידוד והשוואת נתונים ועוד.

היסטוריה

במאמר מאת סטיבן ויסנר (Stephen Wiesner), שפורסם ב-1983 (אף על פי שנכתב כעשור לפני כן), מתואר מושג קידוד מזווג (Conjugate coding) ככלי אלגברי ליישום קוד תיקון שגיאות קוונטי. מה שהיווה בסיס ל-CSS - אלגוריתם תיקון שגיאות קוונטי שפותח על ידי שור וקלדרבנק ב-1995. הרעיון של ויזנר שקול להעברה עלומה 1 מתוך 2 המתוארת להלן, אם כי ויזנר עצמו לא התייחס בזמנו לנושא מהיבט קריפטוגרפי. מאוחר יותר עלה רעיון ניצול מושג זה לצורכי קריפטוגרפיה ואומץ השם "העברה עלומה".
הקשר המעשי לקריפטוגרפיה הועלה לראשונה על ידי מיכאל רבין, שפרסם ב-1981 מאמר "איך להחליף סודות עם העברה עלומה", בו הוא מתאר פרוטוקול המתמודד עם בעיה שהועלתה בפניו על ידי ריצ'רד דמילו (Richard DeMillo) והיא כדלהלן: אליס ובוב מחזיקים כל אחד בסוד משלו, סודות שאותם הם רוצים להחליף ביניהם, אולם אין ברצונם שאחד מהצדדים יהיה מסוגל לראות את הסוד הנשלח אליו, בטרם קיבל הצד השני את הסוד שלו בשלמותו, היות שהם אינם סומכים זה על זה וקיים חשש בלבם שהצד השני עלול לנטוש את הפרוטוקול מבלי לסיימו, מיד לאחר שיעלה בידו לגלות את הסוד בו הוא מעוניין בשלמותו. רבין הראה שהדבר אפשרי. פתרונו של רבין הוא שהשולח יעביר את סודו למקבל רק בהסתברות של חצי. כלומר השולח לא יוכל לדעת בוודאות אם הסוד אכן התקבל בצד השני או שמא התקבל מידע חסר משמעות, עד שיושלם הפרוטוקול במלואו. פרוטוקול רבין מנצל הצפנת מפתח ציבורי כגון הצפנת רבין או RSA.
אף על פי שפרוטוקול רבין (המתואר להלן) אינו שימושי במיוחד כשלעצמו, הוא מהווה אבן יסוד לאחת מהבעיות הקריפטוגרפיות החשובות בעיית חישוב רב-משתתפים בטוח (בקיצור MPC). משל המסביר היטב את בעיית MPC הוא בעיית המיליונרים: כיצד יכולים שני מיליונרים סקרנים להעריך מי מהם עשיר יותר, מבלי לגלות מהו הערך המדויק של נכסיהם? העברה עלומה יכולה לשמש בסיס לחישוב רב-משתתפים באופן שאף משתתף לא יוכל ללמוד מתוצאת החישוב מאומה בנוגע לסודם של האחרים מעבר לנחוץ.
במאמר משנת 1985, שמעון אבן, עודד גולדרייך ואברהם למפל (מכון ויצמן למדע), הרחיבו את הרעיון של רבין לפרוטוקול הנקרא העברה עלומה 1 מתוך 2. הפרוטוקול שלהם  מצוין בתור תת-פרוטוקול במערכת חישוב רב משתתפים. בפרוטוקול זה שחקן אחד מהעביר סוד אחד בדיוק מתוך שני סודות בני הגדרה לשחקן השני, כאשר השולח אינו בטוח איזה משניהם התקבל. כלומר הסוד (הראשון או השני) מתקבל בהסתברות של חצי. גם מימוש פרוטוקול זה מסתמך על הצפנת מפתח ציבורי. למעשה הפרוטוקול של רבין וזה של אבן, גולדרייך ולמפל שקולים, כפי שהוכח על ידי Claude Crepeau. כלומר אפשר להכין מכל פרוטוקול העברה עלומה 1 מתוך 2, פרוטוקול העברה עלומה של סוד אחד על ידי שמגדירים את סוד אחד משניהם להיות ערך אקראי חסר חשיבות.

פרוטוקול העברה עלומה של רבין

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

העברה עלומה והערכה עלומה

הרעיון הכללי של העברה עלומה מתחלק לכמה סוגים; פרוטוקול העברה עלומה 1 מתוך N שבו אליס יודעת N סודות ומעוניינת לאפשר לבוב לבחור אחד מהסודות שירצה בדרך כזו שהוא לא יידע יותר מסוד אחד בלבד, בעוד אליס לא תדע איזה מהם בוב בחר, וכן פרוטוקול הערכה עלומה המאפשר לאליס ובוב, המחזיקים כל אחד בסודות  ו- בהתאמה, לחשב פונקציה פומבית  מבלי שאף אחד מהם ילמד לגבי הסוד של האחר מעבר למה שניתן ללמוד מהפונקציה  של שני הסודות (דוגמת בעיית המליונרים לעיל). מוני נאור ובני פנקס (מכון ויצמן למדע) פרסמו ב-1999 פרוטוקולים יעילים המיישמים רעיונות אלו. ביל איילו (Bill Aiello), יובל ישי ועומר רינגולד פרסמו פרוטוקול המשתמש בהעברה עלומה לצורך מסחר דיגיטלי המגן על פרטיות הלקוחות באופן שהמוכר אינו יודע מה, כמה או מתי הלקוח רכש סחורה. סוון לאור (Sven Laur) והלגר ליפמאה (Helger Lipmaa) הציעו פרוטוקול דומה הנקרא Conditional Disclosure of Secrets המשתמש בהעברה עלומה כדי לאפשר ללקוח לרכוש סחורה משרת רק אם ההצעה שהציע תואמת את הרצוי. הפרוטוקול מונע מהשרת לחשוף את הסוד במקרה שההצעה שקיבל עבור הסוד אינה רצויה לו.