צופן סימטרי – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
שורה 94:
על פניו נראה שלאיב תהיה בעיה קשה לפענח את הטקסט המוצפן ללא ידיעת המפתח, כיוון שקיימים <math>2^{160}</math> אפשרויות למפתח ולכן התוצאה תראה כאילו אקראית לעיניה. אבל מה יקרה אם איב הצליחה להניח ידה על טקסט קריא יחיד <math>m</math> ועל טקסט מוצפן <math>c</math> המתאים לו (מה שקרוי התקפת גלוי-ידוע או התקפת גלוי נבחר), היות שהפונקציה המתוארת היא [[פונקציה על]] העובדה הבאה נכונה:
:<math>k\equiv m^{-1}\cdot c\text{ (mod }p)</math>.
כלומר איב הצליחה לחשב את המפתח הסודי מתוך הצפנה אחת בלבד. צריך לזכור, כשמפתחים אלגוריתם הצפנה תמיד מביאים בחשבון שחלק מהטקסט שהוצפן יתגלה בדרך כלשהי לא בהכרח על ידי שבירת האלגוריתם, אלא על ידי גניבה או [[ציתות]]. לכן ההנחה שאיב הצליחה להשיג את גלוי וקסט מוצפן המתאים לו היא הנחה ראלית שחובה להתייחס אליה. קל לראות שהצופן הזה מקיים את שלוש התכונות הראשונות אך לא את הרביעית. אם מסירים את החשבון המודולרי עם <math>p</math> וההצפנה הייתה פשוט [[כפל|הכפלה]] בשלם כלשהו <math>k</math> ואילו הפענוח היה פשוט [[חילוק]] ב-<math>k</math> אז גם התכונה השלישית לא הייתה מתקיימת. בגלל העובדה שנכון שניסיון לפענח טקסט מוצפן אחד ללא ידיעת המפתח זו משימה קשה, אך בהינתן מספר טקסטים מוצפנים המשימה יותר קלה מפני שבסבירות גבוהה [[מחלק משותף מקסימלי|המחלק המשותף המקסימלי]] שלהם עלול להיות המפתח הסודי עצמו או כפולה שלו. זו אינדיקציה טובה למה צמצום מודולרי מניב אפקט "ערבוב" מצוין שמשמיד תכונות מסוימות כמו [[מבחני התחלקות|התחלקות]] אך לחלוטין לא מספיק כדי להבטיח סודיות טובה בסטנדרטים של ימינו.
 
גישה אחרת היא להשתמש בחיבור מודולו <math>p</math> במקום כפל שהוא פשוט ויעיל יותר במחשב כי הוא דורש פחות [[פקודה (מחשב)|פקודות מכונה]]. למשל: