קריפטואנליזה ליניארית – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ קרפיטואנליזה->קריפטואנליזה - תיקון תקלדה בקליק
מ הוספת קישור להצפנה
שורה 40:
כאשר <math>X_i</math> מייצג את הסיבית במיקום ה-<math>i</math> של בלוק הקלט <math>X=[X_1,X_2,...,X_n]</math> המכיל <math>n</math> סיביות וכן <math>Y_j </math> מייצג את הסיבית במיקום ה-<math>j</math> של בלוק הפלט <math>Y=[Y_1,Y_2,...,Y_n]</math>. המשוואה המתוארת מחברת תת-קבוצה באורך <math>u</math> סיביות של <math>X</math> עם תת-קבוצה באורך <math>v</math> סיביות של <math>Y</math>. המטרה היא למצוא סיביות קלט/פלט שמקיימות את המשוואה האמורה בהסתברות גבוהה באופן משמעותי או בהסתברות נמוכה באופן משמעותי. באופן כללי אסור שלינאריות כזו תתרחש בצופן, אחרת הוא יהיה חלש מאוד כי היא הוכחה לכך שהצופן מכיל אקראיות ירודה. באופן אידיאלי אם ננסה להזין <math>v+u</math> סיביות קלט/פלט שונות במשוואה המתוארת ההסתברות שהמשוואה תתקיים צריכה להיות <math>1/2</math>. ככל [[סטיית תקן|שהסטייה]] או ה[[נטאי]] בתוצאות גדולה מחצי כך קל יותר למנתח הצופן לשבור אותו. ההטיה בהקשר זה נקראת '''הטיה ליניארית הסתברותית''' אותה מסמנים ב-<math>p_L</math>. ככל ששיעור ההטיה ההסתברותית <math>|p_L-1/2|</math> גדלה משמעותית כך קל יותר ליישם את ההתקפה הליניארית על הצופן.
 
ישנן מגוון דרכים לביצוע הקריפטואנליזה הליניארית. לצורך התיאור כאן נתייחס למה שמיצורו מצואי מכנה במאמר שלו '''אלגוריתם 1'''. למרות שבמשוואה הליניארית לעיל לא מופיעות סיביות ממפתח ההצפנהה[[הצפנה]] המותקף, האגף הימני במשוואה "0" כולל באופן עקיף סיביות מהמפתח שמיקומן ידוע אך לא ערכן. אם סכום הסיביות מהמפתח המשתתפות במשוואה הוא אפס, ההטיה תהיה עם סימן (פלוס או מינוס) זהה אילו המשוואה כללה סיביות מהמפתח (אם ההסתברות <math>p_L</math> התקבלה). אם <math>p_L=1</math> פירושו של דבר שהמשוואה המתוארת מייצגת את התנהגות הצופן בשלמות ולכן הצופן כנראה מכיל פגם חמור. אם <math>p_L=0</math> פירושו של דבר שהמשוואה המתוארת מייצגת [[פונקציה אפינית]] של הצופן, שגם זו אינדיקציה לתקלה חמורה. במקרה של XOR פונקציה אפינית היא בעצם המשלים של הפונקציה הליניארית, כך שבשני המקרים הצופן יהיה חשוף להתקפה ליניארית.
 
===דוגמה לקריפטואנליזה ליניארית===