משתנה היברידי

משתנה היברידי, בקריפטוגרפיה, הוא שיטת הוכחה שנועדה להוכיח ששתי התפלגויות הן דומות (בלתי ניתנות להבחנה חישובית). השיטה הוצגה לראשונה על ידי שפי גולדווסר וסילביו מיקאלי לרוב, כשרוצים להוכיח שאם טענה מסוימת היא נכונה עבור קבוצת המספרים הטבעיים (או חלק ממנה) משתמשים בשיטות כמו אינדוקציה. במדעי המחשב בכלל ובקריפטוגרפיה בפרט, הוכחות באינדוקציה עשויות לא לעבוד, מכיוון שאנחנו מתייחסים גם לזמן הבניה, ולא רק לנכונותה. נניח שיש לנו יצרן פסאודו אקראי הממפה קלט מאורך n ביטים לאורך n+1 ביטים. נרצה להוכיח שקיים יצרן שממפה קלט מאורך n ביטים לאורך 2n ביטים. בסיס האינדוקציה - קיום יצרן בטוח מ-n ל-n+1 צעד האינדוקציה - אם קיים יצרן G k {\displaystyle G_{k}} הממפה מ-k ל-k+1 (עבור k > n) אזי קיים יצרן הממפה מ-k ל-k+2 בנייה עבור קלט s 0 {\displaystyle s_{0}} באורך n נסמן: σ i , s i = G ( s i − 1 ) {\displaystyle \sigma _{i},s_{i}=G(s_{i-1})} , כאשר | σ i | = 1 {\displaystyle |\sigma _{i}|=1} . נחזור על התהליך למעלה k+2 פעמים, ונקבל ( σ 1 , . . . , σ k + 2 ) {\displaystyle (\sigma _{1},...,\sigma _{k+2})} נחזיר את הווקטור ( σ 1 , . . . , σ k + 2 ) {\displaystyle (\sigma _{1},...,\sigma _{k+2})} אם נבדוק נראה שאכן זו בנייה בטוחה. אך הבעיה שונה. בדוגמה זו קל לראות את הבעיה מיד - האינדוקציה לא מגבילה אותנו לאורך - כלומר ניתן להוציא גם אורך אקספוננציאלי. אך הבעיה עמוקה עוד יותר. בצעד ה-k+1 אנחנו מפעילים את היצרן הקודם k+2 פעמים. זאת אומרת שאף על פי שכל צעד בפני עצמו הוא נכון, מתקיים ש: t ( G 2 n ( ⋅ ) ) = 2 n ∗ t ( G 2 n − 1 ( ⋅ ) ) = . . . ≥ n n ∗ t ( G n ( ⋅ ) ) {\displaystyle t(G_{2n}(\cdot ))=2n*t(G_{2n-1}(\cdot ))=...\geq n^{n}*t(G_{n}(\cdot ))} וזה סופר פולינומי. נרצה להראות שההתפלגויות D 1 , D 2 {\displaystyle D^{1},D^{2}} אינן מובחנות חישובית, כלומר לכל יריב A, לכל פולינום p ( ⋅ ) {\displaystyle p(\cdot )} ולכל n גדול דיו | Pr [ A ( x ← D 1 ) = 1 ] − Pr [ A ( x ← D 2 ) = 1 ] | < 1 p ( n ) {\displaystyle |\Pr[A(x\gets D^{1})=1]-\Pr[A(x\gets D^{2})=1]|<{\frac {1}{p(n)}}} כאשר x ← D i {\displaystyle x\gets D^{i}} מסמל דגימה יוניפורמית מ- D i {\displaystyle D^{i}} , ו-n הוא פרמטר הביטחון. נגדיר משתנה היברידי D 1 := H 0 , H 1 , . . . , H t := D 2 {\displaystyle D_{1}:=H_{0},H_{1},...,H_{t}:=D_{2}} כאשר t פולינומי בפרמטר הביטחון n. מתקיים: | Pr [ A ( x ← D 2 ) = 1 ] − Pr [ A ( x ← D 1 ) = 1 ] | = | ∑ i = 1 n Pr [ A ( x ← H i ) = 1 ] − Pr [ A ( x ← H i − 1 ) = 1 ] | {\displaystyle |\Pr[A(x\gets D_{2})=1]-\Pr[A(x\gets D_{1})=1]|=|\sum _{i=1}^{n}\Pr[A(x\gets H_{i})=1]-\Pr[A(x\gets H_{i-1})=1]|} ועל פי אי שוויון המשולש, הביטוי שלמעלה קטן או שווה ל- ∑ i = 1 n | Pr [ A ( x ← H i ) = 1 ] − Pr [ A ( x ← H i − 1 ) = 1 ] | {\displaystyle \sum _{i=1}^{n}|\Pr[A(x\gets H_{i})=1]-\Pr[A(x\gets H_{i-1})=1]|} מאחר ש-t פולינומי ב-n, ועל פי עקרון שובך היונים, אם קיים מבחין A בין D 1 , D 2 {\displaystyle D_{1},D_{2}} עם יתרון לא זניח אז ניתן להבחין גם בין H i {\displaystyle H_{i}} ל- H i + 1 {\displaystyle H_{i+1}} מסוים. מכאן נובע שאם ניתן להוכיח עבור כל זוג היברידים שכנים שהם ניתנים להבחנה בהסתברות זניחה לכל היותר, אזי נובע מיד שלילת הטענה שלמעלה, כלומר זה גורר באופן מיידי שמתקיים D 1 ≡ c D 1 {\displaystyle {D_{1}}\equiv ^{c}{D_{1}}} , כלומר ההתפלגויות ניתנות להבחנה עם יתרון זניח לכל היותר. הצפנה של הודעה עם n מפתחות שונים בלתי תלויים בסכימה בטוחה יוצרת הצפנה בטוחה אם קיים יצרן פסאודו אקראי שמרחיב את הקלט בביט אחד, אזי קיים יצרן פסאודו אקראי לכל פרמטר הרחבה l ( n ) {\displaystyle l(n)} פולינומי. פרק זה לוקה בחסר. אנא תרמו לוויקיפדיה והשלימו אותו. S. Goldwasser and S. Micali. Probabilistic Encryption. JCSS, 28(2):270–299, 1984. הבניה למעלה נכונה, אך צריך להוכיח את נכונותה בזהירות עם משתנה היברידי