מירי
כיתה יב · הכנה לבגרות

הצפנה בסיסית מצופן קיסר עד מפתחות

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

1

הרעיון

צופן קיסר

מזיזים כל אות קדימה באלפבית מספר קבוע של מקומות, שנקרא מפתח. עם מפתח 3, A הופכת ל-D, ו-B ל-E. בסוף האלפבית חוזרים להתחלה: X הופכת ל-A. כדי לפענח, מזיזים אחורה באותו מפתח.

למה קל לשבור אותו

יש רק 26 מפתחות, אז אפשר פשוט לנסות את כולם. ויש דרך חכמה עוד יותר: באנגלית האות E היא הכי שכיחה. האות שמופיעה הכי הרבה בהודעה המוצפנת היא כנראה E המוזזת.

מפתח ציבורי

דמיינו מנעולים פתוחים שאתם מחלקים לכולם (המפתח הציבורי). כל אחד יכול לנעול איתם קופסה ולשלוח לכם. אבל רק לכם יש את המפתח שפותח אותם (המפתח הפרטי). כך מאובטח כל אתר עם https.

לזכור: הצפנה טובה לא נשענת על סוד השיטה, אלא על סוד המפתח. צופן קיסר נשבר כי יש מעט מדי מפתחות. בהצפנה מודרנית יש יותר מפתחות ממספר האטומים בכדור הארץ.
2

מעבדה: מצפינים ושוברים

א. מצפינים

בחרו הודעה והזיזו את המפתח. הטבלה מראה לאן הולכת כל אות. הריצו את התוכנית שורה אחרי שורה: האות שמוצפנת עכשיו מסומנת בטבלה.

נסו את אלה:

הריצו בעצמכם

אפשר לשנות את הקוד ולהריץ פייתון אמיתי. בפעם הראשונה הטעינה לוקחת כמה שניות.

ב. שוברים הודעה שיירטנו

יירטנו הודעה מוצפנת, ואין לנו את המפתח. מתחת: כמה פעמים מופיעה כל אות. הזיזו את מחוון הניחוש עד שההודעה נקראת. רמז: מצאו את העמודה הכי גבוהה, ושאלו איזה מפתח הופך את E לאות הזו.

כוח גס: כל 26 המפתחות בבת אחת. רק שורה אחת נראית כמו אנגלית.

3

טעויות שכולם עושים

שוכחים את % 26

בלי שארית החלוקה, Z עם מפתח 3 יוצאת מהאלפבית לתו מוזר.

✗ לא נכון

code = ord(ch) - 65 + shift
# Z, 3 → ']'

✓ נכון

code = (ord(ch) - 65 + shift) % 26
# Z, 3 → 'C'

מצפינים גם רווחים

רק אותיות זזות. רווח, ספרה וסימן נשארים כמו שהם, אחרת הם הופכים לאותיות.

✗ לא נכון

for ch in text:
    result += shift_letter(ch)

✓ נכון

for ch in text:
    if ch.isalpha():
        result += shift_letter(ch)
    else:
        result += ch

מפענחים לכיוון הלא נכון

מפענחים עם המפתח ההפוך: −shift, או 26 − shift. מי שמזיז שוב קדימה רק מצפין פעמיים.

חושבים שמפתח פרטי משתפים

את המפתח הציבורי (המנעול הפתוח) נותנים לכולם. את המפתח הפרטי לא נותנים לאף אחד, אף פעם.

4

דוגמה פתורה: שוברים לפי שכיחות

ואיך עובד מפתח ציבורי?

🔓
אתם מחלקים לכולם מנעולים פתוחים. זה המפתח הציבורי.
📦🔒
חבר שם הודעה בקופסה ונועל אותה במנעול שלכם. גם הוא כבר לא יכול לפתוח.
🔑
רק לכם יש את המפתח שפותח. זה המפתח הפרטי, והוא אף פעם לא נשלח.

היתרון: לא צריך להיפגש קודם בסוד כדי להחליף מפתח. בצופן קיסר שני הצדדים חייבים לדעת את אותו מפתח, ומי שמיירט אותו בדרך יכול לקרוא הכול.

5

תרגול

6

שאלות שכולם שואלים

מה זה צופן קיסר?

שיטת הצפנה שבה מזיזים כל אות מספר קבוע של מקומות באלפבית. עם מפתח 3, HELLO הופכת ל-KHOOR. כדי לפענח, מזיזים אחורה באותו מספר. הוא נקרא על שם יוליוס קיסר, שלפי המסורת השתמש בו. נסו במעבדה.

איך שוברים צופן קיסר?

שתי דרכים. כוח גס: מנסים את כל 26 המפתחות ובוחרים את התוצאה שנראית כמו מילים. שכיחות: סופרים אותיות בהודעה המוצפנת. האות הכי שכיחה היא כנראה E, וההפרש בינה לבין E הוא המפתח. ראו בדוגמה הפתורה.

מה ההבדל בין מפתח ציבורי למפתח פרטי?

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