הפעם הראשונה שבאמת הבנתי את צופן קיסר לא הייתה בשיעור קריפטוגרפיה זה היה בזמן איתור באגים במשחק דפדפן שלקוח שלח, שבו ה-"secret" קודי רמה אוחסנו במקור הדף עם תזוזה של חמש שהוחלה על כל אות כל מי שפתח DevTools יכול היה לקרוא אותם תוך כעשר שניות, כלומר צופן קיסר בקצרה: מקסים, היסטורי, קל ללמד וחסר תועלת לחלוטין להרחקת אדם נחוש, בניתי מספיק כלי קידוד עבור Toolz.dev לדעת שצופן קיסר הוא אחד הצפנים המבוקשים ביותר באינטרנט, בעיקר על ידי תלמידים, פותרי חידות ומפתחים שזקוקים להתייחסות מהירה, אז אני רוצה להסביר את זה כמו שצריך כאן.
TL;DR: צופן קיסר מחליף כל אות באות אחת מספר קבוע של מיקומים בהמשך האלפבית Shift by 3 and A becomes D. יש לו רק 25 מפתחות אפשריים, כך שניתן לשבור אותו על ידי ניסיון של כולם, גישה ל כלי צופן קיסר עושה בשבילך בלחיצה אחת.ROT13 הוא צופן קיסר קבוע במשמרת 13, וROT47 מרחיב את הרעיון לפיסוק וספרות השתמש בו לחידות והוראה, לעולם לא לביטחון אמיתי.
מדריך זה מכסה כיצד הצופן עובד, כיצד לפענח הודעה כאשר אינך יודע את המפתח, כיצד ROT13 ו-ROT47 משתלבים, ומדוע אף אחד מהם לא אמור להגן על שום דבר שחשוב. כל מה שהכלי עושה פועל בדפדפן שלך, כך שתוכל לעקוב אחריו מבלי לשלוח תו אחד לשרת.
מהו צופן קיסר וכיצד הוא פועל?
צופן קיסר הוא צופן החלפה כלומר כל אות בהודעה שלך מוחלפת באות אחרת לפי כלל קבוע בצופן קיסר הכלל פשוט: הזז כל אות מספר מוגדר של מקומות במורד האלפבית המספר הזה הוא המפתח, הנקרא בדרך כלל ה-shift.
אמור שאתה בוחר תזוזה של 3 האות A מזיזה שלושה מקומות כדי להפוך ל-D, B הופכת ל-E, C הופכת ל-F, וכן הלאה. כשאתה מגיע לסוף האלפבית אתה עוטף בחזרה להתחלה, אז X הופך ל-A, Y הופך ל-B, ו-Z הופך ל-C. המילה "hello" עם תזוזה של 3 סיבובים ל-"khoor". כדי לקרוא אותו בחזרה, הנמען מעביר כל אות שלושה מקומות בכיוון ההפוך.
השם בא מיוליוס קיסר ההיסטוריון הרומי סואטוניוס, שכתב במאה השנייה, תיאר כיצד קיסר הגן על מסרים בעלי חשיבות צבאית על ידי החלפת כל אות באחד שלושת המקומות בהמשך הגרסה הספציפית הזו, תזוזה שמאלה של שלוש לפענוח, נקראת לפעמים Caesar's צופן לכבודו, אחיינו אוגוסטוס השתמש על פי הדיווחים במשמרת של אחד אף אחד מהם לא הציע הגנה רבה אפילו אז, אבל אוריינות הייתה נדירה מספיק כדי שהתוכנית הייתה כנראה טובה מספיק נגד שליח שנתפס שבקושי הצליח לקרוא.
כמה מאפיינים חשובים לכל מי שמשתמש בו היום הצופן נוגע רק באותיות רווחים, ספרות, סימני פיסוק וסמלים עוברים ללא נגיעה, וכך בדיוק כלי צופן קיסר מתנהג מקרה נשמר, כך אות גדולה נשארת גדולה לאחר הסטה הטרנספורמציה היא הפיכה לחלוטין: לקודד עם הסטה של 7 ולפענח עם הסטה של 7 הפוך, ואתה מקבל את הטקסט המקורי שלך בחזרה בכל פעם.
כיצד אוכל לקודד ולפענח הודעה?
קידוד הוא הכיוון הקל אתה בוחר תזוזה, וכל אות נעה קדימה בכמות כזאת בכלי אתה מקליד את ההודעה שלך, מגדיר את התזוזה עם המחוון וקורא את טקסט ההצפנה בחלונית הפלט אתה יכול להעתיק אותו בלחיצה אחת כדי להדביק לתוך פאזל, פוסט בפורום או שיעור.
פענוח הוא אותה פעולה הפוך אם הודעה קודדה עם תזוזה של 7, אתה מפענח אותה על ידי הזזה של כל אות אחורה 7 מקומות מבחינה מתמטית, פענוח עם תזוזה 7 זהה לקידוד עם תזוזה 19, כי 26 פחות 7 זה 19 והאלפבית עוטף את זה הוא טריק שימושי לזכור: לכל תזוזה שמאלה יש תזוזה ימינה שווה ערך הכלי מטפל בזה בשבילך, אז אתה פשוט עובר בין קידוד לפענוח ושומר על אותו מפתח.
יש עדינות אחת שכדאי לקרוא לה תזוזה של 0 ותזוזה של 26 שתיהן משאירות את הטקסט ללא שינוי, כי 26 הוא טיול מלא סביב האלפבית לכן הטווח המעשי של מפתחות קיסר הוא 1 עד 25 תזוזה של 13 היא נקודת אמצע מיוחדת שנחזור אליה כשנדבר על ROT13.
הנה דוגמה מעובדת קטנה קח את pangram הקלאסי " השועל החום המהיר קופץ מעל הכלב העצלן." עם תזוזה של 5 זה הופך "Ymj vznhp gwtbs ktc ozrux tajw ymj qfed itl." שימו לב שהתקופה, הרווחים, והבירה T בהתחלה כולם מתנהגים בהגיון: סימני פיסוק נשארים לבד והבירה נשארת בירה, פשוט מוזזת.
איך אני מפצח צופן קיסר בלי המפתח?
זה המקום שבו צופן קיסר מראה את גילו, והוא גם התכונה השימושית ביותר עבור כל מי שפותר חידה כי יש רק 25 מפתחות אפשריים, אתה לא צריך להיות חכם אתה יכול פשוט לנסות את כולם ולקרוא את זה הגיוני זה נקרא התקפת כוח גס, ועם 25 אפשרויות זה לוקח למחשב אין זמן מדיד בכלל.
ה כלי צופן קיסר יש לוח כוח גס המציג את כל 25 הפענוחים של טקסט ההצפנה שלך בבת אחת. אתה מדביק את ההודעה המקושקשת, פותח את הפאנל וסורק את הרשימה עבור השורה שנקראת כמילים אמיתיות. השורה הזו אומרת לך גם את הטקסט הפשוט וגם את המשמרת שבה נעשה שימוש. אני מוצא שכך רוב האנשים משתמשים בכלי: יש להם מחרוזת מקודדת ממשחק או ספר והם רק רוצים לראות מה כתוב בו.
ישנה שיטה שנייה, אלגנטית יותר, שבה משתמשים קריפטוגרפים על הודעות ארוכות יותר, הנקראת ניתוח תדרים באנגלית, האות E היא ללא ספק הנפוצה ביותר, ואחריה T, A ו-O. אם סופרים את האותיות בטקסט צופן קיסר ומגלים שאות אחת מופיעה לעתים קרובות הרבה יותר מהשאר, סביר מאוד שהצורה המוצפנת של E. הפער בין האות הזו ל-E נותן לך את השינוי. ניתוח תדרים מוגזם עבור הודעה שאתה יכול בכוח גס בשנייה, אבל זה הבסיס לשבירת צפנים רציניים יותר, וצופן קיסר הוא ההקדמה העדינה ביותר האפשרית אליו.
הטייק אווי בוטה: צופן קיסר לא יכול להתנגד אפילו לתוקף מזדמן. זה לא פגם לתקן, זו כל הסיבה שהצופן שורד ככלי הוראה ולא ככלי אבטחה.
מהו ROT13, וכיצד הוא קשור לצופן קיסר?
ROT13 הוא צופן קיסר עם המשמרת נעולה ב-13 השם הוא קיצור של " rotate by 13 places". מה שמייחד את 13 הוא שזה בדיוק חצי מ-26. בגלל זה, החלת ROT13 פעמיים מחזירה אותך למקום שבו התחלת: העברה קדימה 13 ואז קדימה עוד 13 היא תזוזה כוללת של 26, שהיא לולאה מלאה התוצאה המעשית היא שאותה פעולה גם מקודדת וגם מפענחת אתה לא צריך שלב פענוח נפרד, ואתה אף פעם לא צריך לזכור מפתח.
ל-ROT13 יש היסטוריה ארוכה באינטרנט המוקדם. ב-Usenet ובמייל, אנשים השתמשו בו כדי להסתיר ספוילרים, פאנץ'-ליינים, תשובות פאזלים ובדיחות פוגעניות, כך שהקוראים היו צריכים לעשות בחירה מכוונת כדי לחשוף אותם. זה מעולם לא נועד להצפין שום דבר. זו הייתה מוסכמות נימוס, דרך לומר "הסתכל הצידה אם אתה לא רוצה לדעת". אתה עדיין תראה את זה בשימוש כך בכמה קהילות מקוונות ובתרבות התכנות כבדיחה.
מכיוון ש-ROT13 הוא היפוך משלו, הכלי חושף אותו כקביעה מראש בלחיצה אחת ללא צורך בשינוי. אם אתה מדביק טקסט ROT13, אותו כפתור הופך אותו בחזרה לטקסט רגיל. אם אתה סקרן לגבי טרנספורמציות הפיכות אחרות של טקסט, ה ממיר Unicode ו מקודד URL שווים להסתכל, אם כי אלה משרתים מטרות טכניות שונות מאוד.
מהו ROT47 ומתי הייתי משתמש בו?
ROT47 לוקח את רעיון ROT13 ומותח אותו על פני קבוצה רחבה יותר של תווים במקום לסובב רק את 26 האותיות, ROT47 מסובב את 94 תווי ה-ASCII הנראים להדפסה, העוברים מסימן הקריאה ועד לטילדה. טווח זה כולל אותיות רישיות וקטנות, כל עשר הספרות וכל סימן פיסוק וסמל נפוצים במקלדת רגילה.
כמות הסיבוב היא 47, שזה חצי מ-94, אז כמו ROT13 זה הפוך מעצמו מעבר אחד מתערבל, מעבר זהה שני משחזר ההבדל שתבחין מיד הוא שגם ROT47 משנה מספרים וסימני פיסוק המילה "שלום, עולם! 123" הופך לערבוב בלתי קריא של סמלים ולא למילה אחרת שניתן לבטא. זה הופך את ROT47 למעט יותר טוב בהסתרת צורת הטקסט המקורי, מכיוון שאורכי מילים ומיקומי ספרות פחות ברורים, אבל הוא עדיין הפיך באופן טריוויאלי ואינו מציע אבטחה אמיתית.
אני כולל ROT47 בכלי בעיקר בגלל שאנשים שמחפשים ROT13 רוצים לדעת עליו לעתים קרובות, וזו הדגמה מסודרת שה-" סובב חצי מהאלפבית" הטריק עובד עבור כל ערכת תווים, לא רק 26 האותיות. זה שימושי לערפול מחרוזות באופן שברור שלא נועד להיות סודי, כמו הסתרת מפתח תשובה בקובץ טקסט.
צופן קיסר מול ROT13 מול ROT47
שלושת המצבים הללו הם בני דודים קרובים, וזה עוזר לראות אותם זה לצד זה הטבלה שלהלן מסכמת את ההבדלים החשובים בשימוש היום יומי.
| תכונה | צופן קיסר | ROT13 | ROT47 |
|---|---|---|---|
| מפתח (shift) | כל ערך 1 עד 25 | תוקן ב-13 | תוקן ב-47 |
| דמויות מושפעות | 26 אותיות בלבד | 26 אותיות בלבד | 94 תווי ASCII להדפסה |
| משנה ספרות וסימני פיסוק | לא | לא | כן |
| הפוך מעצמו | רק במשמרת 13 | כן | כן |
| צריך שלב פענוח נפרד | כן, אלא אם כן המשמרת היא 13 | לא | לא |
| שימוש אופייני | חידות, הוראה, שיעורי בית | הסתרת ספוילרים ותשובות | טקסט מעורב מטשטש |
| בִּט | אף אחד | אף אחד | אף אחד |
השורה החשובה ביותר היא האחרונה שלושתם הם צפנים שבהם אתה משתמש בדיוק בגלל שאתה לא צריך סודיות ברגע שאתה צריך סודיות, אתה עוזב את המשפחה הזו לגמרי.
למה לעולם לא להשתמש בצופן קיסר לביטחון אמיתי?
אני רוצה להיות מאוד ישיר כאן, כי השאלה הזאת עולה כל הזמן צופן קיסר מציע אפס הגנה מפני כל מי שרוצה לקרוא את ההודעה שלך יש לו 25 מפתחות טלפון יכול לנסות את כולם מהר יותר ממה שאתה יכול למצמץ גם בלי מחשב, אדם עם עיפרון ורשימת הכוח הגס יכול לפצח אותו תוך פחות מדקה, וניתוח תדרים שובר אותו על טקסטים ארוכים יותר בלי צורך אפילו לנחש.
סודיות אמיתית כיום מגיעה מאלגוריתמים מודרניים, שנבדקו עמיתים עם מרחבי מפתח עצומים תקן ההצפנה המתקדם, AES, משתמש במפתחות של 128 סיביות או יותר, מה שאומר שמספר המפתחות האפשריים גדול מבחינה אסטרונומית, הרבה מעבר למה שכל מחשב יכול לחפש להגנה על סיסמאות באופן ספציפי, אתה לא מצפין אותן בכלל, אתה מגבש אותן עם פונקציה איטית ומלוחה כמו bcrypt, אותה אתה יכול לחקור עם ה מחולל Hash. עבור ערבול סודות במעבר, אתה מסתמך על TLS, הפרוטוקול מאחורי המנעול בדפדפן שלך. לאף אחד מאלה אין שום דבר במשותף עם העברת אותיות בסכום קבוע.
אם אתה מטפל במשהו רגיש, התייחס לצופן קיסר כפי שהיית מתייחס למנעול אופניים עשוי נייר. זה מסמן כוונה, זה לא עוצר אף אחד. למבט מעמיק יותר כיצד כלים צריכים לטפל בנתונים הפרטיים שלך, היצירה על פרטיות נתונים וכלים מקוונים האם בן לוויה טוב לקרוא, וה כלי פרודוקטיביות למפתחים מדריך מכסה היכן כלי עזר קלים כמו זה משתלבים בזרימת עבודה אמיתית.
היכן צופן קיסר מתרגל כיום?
בהתחשב בכל זה, אתה עשוי לתהות מדוע מישהו עדיין נוגע בו התשובה הכנה היא שהוא חי כמכשיר הוראה ומקור לכיף, ואלה תפקידים בעלי ערך אמיתי.
בכיתות, צופן קיסר הוא לעתים קרובות הצופן הראשון שתלמידים נפגשים הוא מציג את אוצר המילים של קריפטוגרפיה, טקסט רגיל, צופן, מפתח, הצפנה, פענוח, ללא כל מתמטיקה מאיימת משם, המורים עוברים לרעיון של מרחב מפתח, ואז למה מרחב מפתח קטן מסוכן, ואז לניתוח תדרים, ובסופו של דבר לקריפטוגרפיה מודרנית צופן קיסר הוא הרמפה.
בחידות ובמשחקים, זה בכל מקום חדרי בריחה, גיאוקאצ'ינג, משחקי מציאות חלופית וספרי פאזלים כולם נשענים עליו כי שחקנים יכולים לפתור את זה בעיפרון ובנייר חידות רבות שפורסמו משתמשות במשמרת קיסר כשכבה אחת מבין כמה אם אי פעם פגעת במחרוזת ג'יבריש בפאזל שהתברר כמסר שהוסט, כלי כוח גס כמו זה הוא הדרך המהירה ביותר דרכו.
בתרבות התכנות, ROT13 בפרט הוא בדיחה רצה ומוסכמה קלה תמצאו את זה בהערות קוד, בתכונות באפריל, ובקשקושים הקלאסיים שהודעה היא "ROT13 כפול מוצפן" לאבטחה נוספת, מה שכמובן אומר שהוא לא מוצפן בכלל הבנת הצופן מאפשרת לך להבין את הבדיחה.
כיצד להשתמש בכלי צופן קיסר צעד אחר צעד
השימוש בכלי נועד לקחת שניות ראשית, הזן את הטקסט שלך בתיבת הקלט, או את ההודעה הפשוטה שברצונך לטרוף או את טקסט ההצפנה שברצונך לקרוא. שנית, בחר את הצופן שלך: קיסר סטנדרטי עם תזוזה שהגדרת במחוון, או את הקביעות המוגדרות מראש של ROT13 או ROT47 שאינן זקוקות למפתח. שלישית, עבור בין קידוד לפענוח בהתאם לאיזה כיוון תרצה. רביעית, העתק את התוצאה בלחיצה אחת, או פתח את חלונית הכוח הגס כדי לראות את כל 25 הפענוחים האפשריים כאשר אינך יודע את המפתח.
מכיוון שכל העניין פועל בצד הלקוח, הוא פועל במצב לא מקוון לאחר שהדף נטען, ושום דבר שאתה מקליד לא מועלה, נרשם או מאוחסן. זה חשוב אפילו עבור צופן צעצוע, מכיוון שהקלט הוא לעתים קרובות הערה אישית, תשובה לחידה או קוד אישור שאתה מעדיף לא למסור לשרת.
שאלות נפוצות
מהו צופן קיסר?
צופן קיסר הוא צופן החלפה המעביר כל אות של הודעה מספר קבוע של מקומות במורד האלפבית עם תזוזה של 3, A הופך ל-D ו-Z עוטף ל-C. זוהי אחת משיטות ההצפנה העתיקות והפשוטות ביותר, על שם יוליוס קיסר, שהשתמש בה להודעות צבאיות.
איך אני מפענח צופן קיסר בלי המפתח?
השתמש בגישה של כוח גס שמראה את כל 25 ההזזות האפשריות בבת אחת מכיוון שלצופן קיסר יש רק 25 מפתחות, אחת מ-25 השורות המועמדות תיקרא כמילים אמיתיות, ושורה זו חושפת גם את הטקסט הפשוט וגם את השינוי שהיה בשימוש עבור הודעות ארוכות יותר, ניתוח תדרים על האות הנפוצה ביותר מצביע גם על המפתח.
האם ROT13 זהה לצופן קיסר?
ROT13 הוא צופן קיסר עם המשמרת קבועה ב-13. מכיוון ש-13 הוא חצי מ-26, החלת ROT13 משחזרת פעמיים את הטקסט המקורי, כך שאותה פעולה גם מקודדת וגם מפענחת צופן קיסר כללי יכול להשתמש בכל משמרת מ-1 ל-25, בעוד ROT13 תמיד משתמש ב-13.
מה ROT47 עושה אחרת?
ROT47 מסובב את 94 תווי ה-ASCII הניתנים להדפסה ב-47 מיקומים, כך שהוא מערבל ספרות, סימני פיסוק וסמלים כמו גם אותיות. כמו ROT13 זה הפוך משלו, כלומר מעבר אחד מקודד ומעבר זהה שני מפענח. קיסר סטנדרטי ו-ROT13 משפיעים רק על 26 האותיות.
האם צופן קיסר מאובטח מספיק עבור סיסמאות או נתונים פרטיים?
מס 'עם רק 25 מפתחות אפשריים זה יכול להישבר בשניות על ידי ניסיון כל משמרת, אז זה לא מציע הגנה אמיתית השתמש אלגוריתמים מודרניים כמו AES להצפנה ו hashes מלוחים כמו bcrypt עבור סיסמאות, ולשמור את צופן קיסר עבור חידות, הוראה, ו ערפול קל.
האם הכלי שומר על מספרים וסימני פיסוק שלמים?
כן. מצבי קיסר ו-ROT13 הסטנדרטיים מעבירים רק את 26 האותיות ומשאירים רווחים, ספרות, סימני פיסוק וסמלים בדיוק כפי שהם. ROT47 הוא היוצא מן הכלל, מכיוון שהוא מסובב בכוונה סימני פיסוק וספרות הניתנים להדפסה יחד עם אותיות.
האם הטקסט שלי נשלח לשרת?
מס 'כל פעולה פועלת כולה בדפדפן שלך באמצעות JavaScript, כך ששום דבר שאתה מקליד לא מועלה, נרשם או מאוחסן בכל מקום זה עושה את זה בטוח לשימוש עם הערות פרטיות או קודי אישור, וזה גם אומר שהכלי עובד במצב לא מקוון לאחר שהדף נטען.
מדוע יש רק 25 מפתחות שימושיים?
באלפבית יש 26 אותיות, והזזה של 0 או 26 משאירה את הטקסט ללא שינוי מכיוון ש-26 הוא נסיעה מלאה סביב האלפבית. זה משאיר תזוזות של 1 עד 25 כיחידות שמערבלות את המסר, וזו הסיבה שהצופן כל כך קל לשבור על ידי ניסיון של כולם.



