הצפנה הופכת הודעה לג'יבריש שרק מי שיש לו מפתח יכול לקרוא. כאן מצפינים בצופן קיסר, אחד העתיקים בעולם, בפייתון, ואז שוברים אותו בשתי דרכים: לפי שכיחות אותיות, ובניסיון של כל המפתחות. בסוף מבינים, בלי נוסחאות, איך עובד מפתח ציבורי. כדאי להכיר מחרוזות ואת סייבר ובטיחות ברשת.
מזיזים כל אות קדימה באלפבית מספר קבוע של מקומות, שנקרא מפתח. עם מפתח 3, A הופכת ל-D, ו-B ל-E. בסוף האלפבית חוזרים להתחלה: X הופכת ל-A. כדי לפענח, מזיזים אחורה באותו מפתח.
יש רק 26 מפתחות, אז אפשר פשוט לנסות את כולם. ויש דרך חכמה עוד יותר: באנגלית האות E היא הכי שכיחה. האות שמופיעה הכי הרבה בהודעה המוצפנת היא כנראה E המוזזת.
דמיינו מנעולים פתוחים שאתם מחלקים לכולם (המפתח הציבורי). כל אחד יכול לנעול איתם קופסה ולשלוח לכם. אבל רק לכם יש את המפתח שפותח אותם (המפתח הפרטי). כך מאובטח כל אתר עם https.
בחרו הודעה והזיזו את המפתח. הטבלה מראה לאן הולכת כל אות. הריצו את התוכנית שורה אחרי שורה: האות שמוצפנת עכשיו מסומנת בטבלה.
נסו את אלה:
אפשר לשנות את הקוד ולהריץ פייתון אמיתי. בפעם הראשונה הטעינה לוקחת כמה שניות.
יירטנו הודעה מוצפנת, ואין לנו את המפתח. מתחת: כמה פעמים מופיעה כל אות. הזיזו את מחוון הניחוש עד שההודעה נקראת. רמז: מצאו את העמודה הכי גבוהה, ושאלו איזה מפתח הופך את E לאות הזו.
כוח גס: כל 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. מי שמזיז שוב קדימה רק מצפין פעמיים.
את המפתח הציבורי (המנעול הפתוח) נותנים לכולם. את המפתח הפרטי לא נותנים לאף אחד, אף פעם.
היתרון: לא צריך להיפגש קודם בסוד כדי להחליף מפתח. בצופן קיסר שני הצדדים חייבים לדעת את אותו מפתח, ומי שמיירט אותו בדרך יכול לקרוא הכול.
שיטת הצפנה שבה מזיזים כל אות מספר קבוע של מקומות באלפבית. עם מפתח 3, HELLO הופכת ל-KHOOR. כדי לפענח, מזיזים אחורה באותו מספר. הוא נקרא על שם יוליוס קיסר, שלפי המסורת השתמש בו. נסו במעבדה.
שתי דרכים. כוח גס: מנסים את כל 26 המפתחות ובוחרים את התוצאה שנראית כמו מילים. שכיחות: סופרים אותיות בהודעה המוצפנת. האות הכי שכיחה היא כנראה E, וההפרש בינה לבין E הוא המפתח. ראו בדוגמה הפתורה.
את המפתח הציבורי נותנים לכולם, ואיתו אפשר רק לנעול (להצפין). המפתח הפרטי נשאר רק אצלכם, ורק הוא פותח (מפענח). כך כל אחד יכול לשלוח לכם הודעה סודית, בלי שתיפגשו קודם. תרגלו למטה.