Homomorphic Encryption and Computational Proofs אלי דיין ><[email protected] 20.11.2012 1 מוטיבציה האם ניתן לשלוח חישוב למקום שאנו לא בוטחים בו? כלומר ,האם יש אפשרות שנשלח את החישוב למקום אחר ,ונבטיח את הנכונות שלו ואת סודיות המידע בחישוב? למשל ,האם אפשר לבצע חיפוש ב־ ,Googleבלי ש־ Googleילמד עלינו? כלומר ,נשלח ל־ Googleשאילתה מוצפנת ,ונקבל תשובה מוצפנת ,בלי ש־ Googleידע מה תוכן השאילתה ומה תוכן התשובה )כי Googleלא יודעים את המפתח הסודי(? דוגמה נוספת לשימוש היא מחשוב ענן :שולחים קלט xמוצפן ותוכנית ,Pוהשרת יחשב את ההצפנה של )) P (xבלי לפענח את ה־ xהמוצפן(. הגדרה מערכת הצפנה הומומורפית מכילה ) ,(Key, Gen, Enc, Dec, Evalכך ש־ Evalמאפשר חישוב על מידע מוצפן. תכונת הנכונות של :Evalאם ) c = Enc (PK, xו־) ,c0 = Eval (PK, c, Pאזי ).Dec (SK, c0 ) = P (x אנחנו למעשה כבר מכירים מימוש לזה )שכולל הצפנה( Eval :יכול לשרשר את cו־ ,P ו־ Decיעשה את כל העבודה .כלומר ,בהינתן שיטת הצפנה ,CCA-1ניתן לבנות מערכת הצפנה הומומורפית. הבעיה בפתרון הזה היא עניין של יעילות Eval :למעשה לא מבצעת את פעולת החישוב. כדי למנוע מצב כזה ,נגדיר את תכונת הקומפקטיות :האורך של c0צריך להיות בלתי־תלוי בגודל של .P נגדיר גם את תכונת הבטיחות :סמנטית. עד לא מזמן ,לא ידעו איך להשיג הומומורפיות מלאה .ידעו לעשות רק הומומורפיות מוגבלת. למשל ,אם נצפין את m1ו־ m2עם ,RSAנקבל c1ו־ c2בהתאמה ,כאשר ci = m3i )כמובן עם מודולו( .נוכל לחשב באופן הומומורפי את m1 · m2באמצעות חישוב של .c1 · c2 למה זה עובד? נשים לב: 3 ) c1 · c2 = m31 · m32 = (m1 · m2 למעשה ,הבטיחות לא בהכרח נשמרת .למשל ,ב־ :CCA-2נבקש מהחבר הטלפוני לפענח ˜ .אבל p˜ = m1 · m2היא התשובה לחישוב ˜ .נקבל p · x ˜ ,כאשר c = c1 · c2 את c · x3 ההומומורפי ,ולכן נפגעה כאן הבטיחות. 1 2 הצפנה הומומורפית עם מפתח פרטי אלגוריתם 1הצפנה הומומורפית עם מפתח פרטי .1נבחר מפתח פרטי – מספר אי־זוגי .p .2כדי להצפין את הביט }:b ∈ {0, 1 )א( נבחר כפולה ״גדולה״ של ,pלמשל .p · q )ב( נבחר מספר זוגי ״קטן״ ) 2rרעש(. )ג( הסתר יהיה.c = q · p + 2r + b : .3כדי לפענח את הסתר ,cנסתמך על העובדה הבאה: )c ≡ 2r + b (mod p לכן (c mod p) mod 2 ,הוא הביט הגלוי .b זוהי למעשה הוכחה לכך שמערכת הצפנה הומומורפית לא יכולה לקיים .CCA-2במילים אחרות ,אם מערכת ההצפנה היא ,CCA-2אנחנו בוודאות לא נוכל לקיים הומומורפיות .עם אנחנו בכל זאת רוצים הומומורפיות ,נצטרך לוותר על חוזקת מערכת ההצפנה. באופן דומה ,במערכות כמו GMו־ Paillierאפשר לעשות הומומורפיות עם חיבור. החיפוש האמיתי הוא אחר מערכות שיהיו הומומורפיות גם לכפל וגם לחיבור .רק בשנת 2009נמצאה חבורת השריגים לביצוע הומומורפיות חיבורית וכפלית. הפתרון מאוד מסובך וקשה למימוש ,אבל קיים .נתאר כאן גרסה מפושטת של הפתרון. 2 הצפנה הומומורפית עם מפתח פרטי אלגוריתם 2מתאר הצפנה הומומורפית עם מפתח פרטי. נשים לב שתיתכן בעייה בפענוח :אם rגדול מדי ,יש לנו בעיה ,כי בתוצאה עשוייה להיות השפעה על .p · q כדי למנוע בעיות מהסוג הזה ,נקבע פרמטר בטיחות nשיוגדר על ידי: • pיהיה בגודל של n2ביטים. • qיהיה בגודל של n5ביטים. • rיהיה בגודל של nביטים. מבחינת נכונות – הפרמטרים מבטיחים אותה. למה qצריך להיות בגודל של n5ביטים? בשביל הבטיחות ,כדי לרווח את מרחב הסתרים )וליצור בתוכו סתרים שאינם אפשריים(. איך נחבר ונכפיל ביטים מוצפנים? אם: = q1 · p + 2r1 + b1 c1 = q2 · p + 2r2 + b2 c2 אזי: ) c1 + c2 = (q1 + q2 ) · p + 2 (r1 + r2 ) + (b1 + b2 2 הצפנה הומומורפית עם מפתח פומבי 3 אלגוריתם 2הצפנה הומומורפית עם מפתח פומבי .1נבחר מפתח סודי – מספר אי־זוגי pבגודל של nביטים. 2 .2המפתח הפומבי יהיה: ] (x0 , . . . , xt ) = [q0 · p + 2r0 , . . . , qt · p + 2rt את } {qiו־} {riנבחר כמו קודם. למעשה ,אלו הן t + 1הצפנות של .0בשביל הנוחות ,נניח כי x0הכי גדול. .3הפענוח יהיה זהה להצפנה הומומורפית עם מפתח פרטי.(c mod p) mod 2 : .4ההצפנה: )א( נבחר תת־קבוצה אקראית }.S ⊆ {1, . . . , t )ב( הסתר יהיה: ) xi + 2r + b (mod x0 X i∈S )ג( Eval יהיה כמו קודם. בחרנו את הפרמטרים כך ש־) 2 (r1 + r2 ) + (b1 + b2יהיה באיזור של ,pולכן הנכונות מתקיימת. בנוגע לכפל: (c2 · q1 + c1 · q2 + q1 · q2 · p) · p = 2 · (r1 · r2 + r1 · b2 + r2 · b1 ) + b1 · b2 + c1 · c2 נבחן את הגודל של הרעש r1 · b2 :ו־ r2 · b1הם בגודל של nביטים לכל היותר ,ו־ r1 · r2 הוא בגודל של 2nביטים. מה הבעיות במימוש הזה? • הסתר גדל בכל פעולה. • הרעש גדל בכל פעולה. זאת הסיבה לכך שהפתרון הוא .Somewhat Homomorphicהפתרון לא מסוגל לחשב כל פונקציה Pכפי שהוא .לכל פונקציה Pצריך למצוא פרמטר בטיחות nשיתאים לה ,ולפעול באמצעותו. 3 הצפנה הומומורפית עם מפתח פומבי אלגוריתם 2מתאר הצפנה הומומורפית עם מפתח פומבי. למה בהצפנה עושים ? (mod x)0 3 5 מעבר מ־Somewhat Homomorphic להצפנה הומומורפית מלאה • כדי להקטין את הגודל של הסתר .c • כדי להגדיל את הבטיחות. איך זה עוזר לבטיחות? ) xi + 2r + b (mod x0 X = c i∈S " " # # X X = p · qi + 2 · r + ri + b − k · x0 i∈S i∈S " # " # X X = p · qi− k · q0 + 2 · r + ri − k · r0 + b i∈S i∈S היינו רוצים ש־ qi ∼ q0 ולכן הרעש i∈S P .מכיוון ש־ x0הוא הגדול ביותר ,q0 > qi ,ולכן ,k ≥ t ri − k · r0 X r+ i∈S הוא רעש קטן יחסית וזניח. 4 בעיית ה־ gcdהמקורב זוהי בעיה חישובית ,שתגדיר לנו מאפיין בטיחות. הקלט :שלושה מספרים Q ,Pו־ .Rבוחרים } ,p ∈ {0, . . . , Pמכפילים אותו בהרבה רעש מהצורה qi · p + riכאשר } qi ∈ {0, . . . , Qו־} ,ri ∈ {0, . . . , Rומבקשים מהיריב לחשב את pבהסתברות טובה. ההנחה אומרת שעבור בחירת פרמטרים צנועים ,ליריב יהיה קשה מאוד לחשב את .p אפשר להוכיח שהבעיה שקולה להגדרת הבטיחות הסמנטית. 5 מעבר מ־Somewhat Homomorphic להצפנה הומומורפית מלאה NAND היא פעולה אוניברסלית .איור 1 נוכיח את המעבר בכך שהפעולה את זה. ,(αשאותו אפשר לקודד כתוכנית ולשלוח לו )נקרא מעגל מתאר האיור כי לב נשים ל־ .Evalלאחר הקריאה ל־ ,Evalנקבל את ,Eval c¯1 , c¯2 , sk , αכאשר: ) (c1 pk ) (c2 pk )(sk pk Enc = c¯1 Enc = c¯2 Enc = sk 4 מתאר איך עושים 5 מעבר מ־Somewhat Homomorphic להצפנה הומומורפית מלאה איור :1יצירת הצפנה הומומורפית שלמה 5 מ־Somewhat homomorphic להצפנה הומומורפית מלאה Somewhat Homomorphicמעבר מ־ 5 : כאשר,c¯3 יחזיר לנו Dec sk .Fully Homomorphic ל־ (¯ c3 ) = p1 NAND p2 p1 = Dec sk (c1 ) p2 = Dec sk (c2 ) יכולה להפוך Eval Somewhat Homomorphic משפט כל מערכת .Bootstrappable צריך לדרוש גם,אבל למעשה 6
© Copyright 2024