הצורך להצפין התכתבות התעורר בעולם העתיק, והופיעו צפני החלפה פשוטים. הודעות מוצפנות קבעו את גורלם של קרבות רבים והשפיעו על מהלך ההיסטוריה. עם הזמן, אנשים המציאו יותר ויותר שיטות הצפנה מתקדמות.
קוד וצפן הם, אגב, מושגים שונים. המשמעות הראשונה היא החלפת כל מילה בהודעה במילת קוד. השני הוא להצפין כל סמל מידע באמצעות אלגוריתם ספציפי.
לאחר שהמתמטיקה החלה לקודד מידע ופותחה תורת ההצפנה, מדענים גילו תכונות שימושיות רבות של המדע היישומי הזה. לדוגמה, אלגוריתמי פענוח עזרו לפענח שפות מתות כמו מצרית עתיקה או לטינית.
סטגנוגרפיה
הסטגנוגרפיה ישנה יותר מקידוד והצפנה. האמנות הזו קיימת כבר הרבה מאוד זמן. הפירוש המילולי הוא "כתיבה נסתרת" או "כתיבת צופן". למרות שסטגנוגרפיה לא ממש עונה על ההגדרות של קוד או צופן, היא נועדה להסתיר מידע מזרים.עין.
סטגנוגרפיה היא הצופן הפשוט ביותר. תווי בליעה מכוסים בשעווה הם דוגמאות אופייניות, או הודעה על ראש מגולח שמסתתר מתחת לשיער גדל. הדוגמה המובהקת ביותר לסטגנוגרפיה היא השיטה המתוארת בספרי בלשים רבים באנגלית (ולא רק), כאשר מסרים מועברים דרך עיתון, כאשר האותיות מסומנות בצורה לא בולטת.
החיסרון העיקרי של סטגנוגרפיה הוא שזר קשוב יכול להבחין בה. לכן, על מנת למנוע קריאה קלה של ההודעה הסודית, נעשה שימוש בשיטות הצפנה וקידוד בשילוב עם סטגנוגרפיה.
ROT1 וצופן קיסר
שם הצופן הזה הוא סובב אות אחת קדימה, והוא ידוע לתלמידי בית ספר רבים. זהו צופן תחליף פשוט. המהות שלה טמונה בעובדה שכל אות מוצפנת על ידי העברה בסדר אלפביתי באות אחת קדימה. A -> B, B -> C, …, Z -> A. לדוגמה, אנו מצפינים את הביטוי "נאסטיה שלנו בוכה בקול רם" ונקבל "general Obtua dspnlp rmbsheu".
ניתן להכליל את צופן ROT1 למספר שרירותי של קיזוזים, ואז הוא נקרא ROTN, כאשר N הוא המספר שבאמצעותו יש להזיז את ההצפנה של האותיות. בצורה זו, הצופן מוכר עוד מימי קדם ונקרא "צופן הקיסר".
צופן קיסר הוא מאוד פשוט ומהיר, אבל זהו צופן פשוט של תמורה בודדת ולכן קל לשבור אותו. עם חיסרון כזה, זה מתאים רק למעשי קונדס ילדותיים.
צפני טרנספוזיציה או תמורות
הסוגים האלה של צפני תמורה פשוטים הם רציניים יותר ונעשה בהם שימוש פעיל לפני זמן לא רב. במהלך מלחמת האזרחים האמריקאית ומלחמת העולם הראשונה, הוא שימש לשליחת הודעות. האלגוריתם שלו מורכב מסידור מחדש של האותיות במקומות - כתוב את ההודעה בסדר הפוך או סידור מחדש של האותיות בזוגות. לדוגמה, בואו נצפין את המשפט "קוד מורס הוא גם צופן" -> "akubza ezrom - hedgehog rfish".
עם אלגוריתם טוב שקבע תמורות שרירותיות עבור כל דמות או קבוצה שלהם, הצופן הפך עמיד בפני פיצוח פשוט. אבל! רק בזמן הנכון. מכיוון שהצופן נשבר בקלות על ידי התאמת כוח גס פשוט או מילון, כיום כל סמארטפון יכול להתמודד עם הפענוח שלו. לכן, עם הופעת המחשבים, הצופן הזה עבר גם לקטגוריה של ילדים.
קוד מורס
ה-ABC הוא אמצעי לחילופי מידע ומשימתו העיקרית היא להפוך את ההודעות לקלות ומובנות יותר לשידור. למרות שזה מנוגד למה שמיועדת ההצפנה. עם זאת, זה עובד כמו הצפנים הפשוטים ביותר. במערכת המורס, לכל אות, מספר וסימן פיסוק יש קוד משלו, המורכב מקבוצה של מקפים ונקודות. בעת שליחת הודעה באמצעות הטלגרף, מקפים ונקודות מייצגים אותות ארוכים וקצרים.
טלגרף וקוד מורס… מורס היה זה שרשם לראשונה פטנט על ההמצאה "שלו" ב-1840, אם כי מכשירים דומים הומצאו ברוסיה ובאנגליה לפניו. אבל למי אכפת עכשיו… טלגרף ואלפביתלקוד מורס הייתה השפעה גדולה מאוד על העולם, ואיפשר שידור כמעט מיידי של הודעות על פני מרחקים יבשתיים.
החלפה חד אלפביתית
קוד ה-ROTN והמורס המתוארים לעיל הם דוגמאות לגופנים חלופיים חד-אלפביתיים. הקידומת "מונו" פירושה שבמהלך ההצפנה, כל אות בהודעה המקורית מוחלפת באות או קוד אחר מאלפבית ההצפנה היחיד.
פענוח צפני החלפה פשוטים אינו קשה, וזה החיסרון העיקרי שלהם. הם נפתרים על ידי ספירה פשוטה או ניתוח תדרים. לדוגמה, ידוע שהאותיות הנפוצות ביותר בשפה הרוסית הן "o", "a", "i". לפיכך, ניתן להניח שבטקסט ההצפנה משמעות האותיות המופיעות לרוב הן "o", או "a", או "ו". בהתבסס על שיקולים אלה, ניתן לפענח את ההודעה גם ללא חיפוש במחשב.
ידוע שמרי הראשונה, מלכת הסקוטים מ-1561 עד 1567, השתמשה בצופן החלפה חד-אלפביתי מורכב מאוד עם מספר צירופים. עם זאת אויביה הצליחו לפענח את ההודעות, והמידע הספיק כדי לגזור עונש מוות על המלכה.
צופן גרונספלד, או החלפה רב-אלפביתית
צפנים פשוטים מוכרזים כחסרי תועלת על ידי הצפנה. לכן, רבים מהם שופרו. צופן גרונספלד הוא שינוי של צופן קיסר. שיטה זו עמידה הרבה יותר בפני פריצה ונמצאת בעובדה שכל תו של המידע המקודד מוצפן באמצעות אחד מהאלפביתים השונים, שחוזרים על עצמם בצורה מחזורית. ניתן לומר כי מדובר באפליקציה רב מימדיתצופן ההחלפה הפשוט ביותר. למעשה, צופן גרונספלד דומה מאוד לצופן Vigenère הנדון להלן.
אלגוריתם הצפנה ADFGX
זהו הצופן המפורסם ביותר של מלחמת העולם הראשונה ששימש את הגרמנים. הצופן קיבל את שמו מכיוון שאלגוריתם ההצפנה הוביל את כל הצפנים לסירוגין של אותיות אלו. בחירת האותיות עצמן נקבעה לפי נוחותן בעת שידורן בקווי טלגרף. כל אות בצופן מיוצגת על ידי שתיים. בואו נסתכל על גרסה מעניינת יותר של ריבוע ADFGX הכולל מספרים ונקרא ADFGVX.
A | D | F | G | V | X | |
A | J | Q | A | 5 | H | D |
D | 2 | E | R | V | 9 | Z |
F | 8 | Y | I | N | K | V |
G | U | P | B | F | 6 | O |
V | 4 | G | X | S | 3 | T |
X | W | L | Q | 7 | C | 0 |
אלגוריתם הריבוע של ADFGX הוא כדלקמן:
- בחר n אותיות אקראיות עבור עמודות ושורות.
- בניית מטריצה N x N.
- הזן את האלפבית, המספרים, התווים המפוזרים באקראי על פני התאים לתוך המטריצה.
בואו נעשה ריבוע דומה לשפה הרוסית. לדוגמה, בואו ניצור ריבוע ABCD:
A | B | B | G | D | |
A | E/E | N | b/b | A | I/Y |
B | W | V/F | G/R | З | D |
B | Sh/Sh | B | L | X | I |
G | R | M | O | Yu | P |
D | F | T | T | S | U |
המטריצה הזו נראית מוזרה מכיוון ששורה של תאים מכילה שתי אותיות. זה מקובל, משמעות ההודעה לא אבדה. ניתן לשחזר אותו בקלות. הצפין את הביטוי "צופן קומפקטי" באמצעות טבלה זו:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
ביטוי | K | O | M | P | A | K | T | N | S | Y | Ш | F | R | |
Cipher | bw | gv | gb | where | ag | bw | db | ab | dg | גיהנום | wa | גיהנום | bb | ha |
לכן, ההודעה המוצפנת הסופית נראית כך: "bvgvgbgdagbvdbabdgvdvaadbbga". כמובן, הגרמנים ביצעו קו דומה דרך מספר צפנים נוספים. ובסוף זה יצא מאוד יציבכדי לפצח את ההודעה המוצפנת.
צופן Vigenère
צופן זה הוא בסדר גודל עמיד יותר בפני פיצוח מאשר צופן חד-אלפביתי, למרות שזהו צופן פשוט להחלפת טקסט. עם זאת, בשל האלגוריתם החזק, זה נחשב זמן רב לבלתי אפשרי לפרוץ. האזכור הראשון שלו מתוארך למאה ה-16. Vigenère (דיפלומט צרפתי) זוכה בטעות כממציא שלה. כדי להבין טוב יותר מה עומד על כף המאזניים, שקול את טבלת Vigenère (כיכר Vigenère, tabula recta) עבור השפה הרוסית.
בוא נתחיל לקודד את הביטוי "קספרוביץ' צוחק". אבל כדי שההצפנה תצליח, יש צורך במילת מפתח - שתהיה "סיסמה". עכשיו בואו נתחיל בהצפנה. לשם כך, אנו כותבים את המפתח כל כך הרבה פעמים שמספר האותיות ממנו מתאים למספר האותיות בביטוי המוצפן, על ידי חזרה על המפתח או חיתוך:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
ביטוי: | K | A | С | P | E | R | O | B | W | С | M | E | E | T | С | I | |
Key | P | A | R | O | L | b | P | A | R | O | L | b | P | A | R | O | L |
כעת, באמצעות טבלת Vigenère, כמו במישור הקואורדינטות, אנו מחפשים תא שהוא מפגש של זוגות אותיות, ומקבלים: K + P=b, A + A=B, C + P=C וכו'
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
צופן: | b | B | B | Yu | С | N | Yu | G | Sch | F | E | Y | X | F | G | A | L |
אנחנו מבינים ש"קספרוביץ' צוחק"="bvusnyugschzh eykhzhgal".
פיצוח צופן Vigenère הוא כל כך קשה מכיוון שניתוח תדרים צריך לדעת את אורך מילת המפתח כדי לעבוד. אז הפריצה היא לזרוק באופן אקראי את אורך מילת המפתח ולנסות לפצח את ההודעה הסודית.
יש לציין גם שבנוסף למפתח אקראי לחלוטין, ניתן להשתמש בטבלת Vigenère שונה לחלוטין. במקרה זה, ריבוע Vigenère מורכב מאלפבית רוסי כתוב שורה אחר שורה עם תזוזה של אחד. מה שמפנה אותנו לצופן ROT1. ובדיוק כמו בצופן קיסר, הקיזוז יכול להיות כל דבר. יתרה מכך, סדר האותיות אינו חייב להיות אלפביתי. במקרה זה, הטבלה עצמה יכולה להיות המפתח, מבלי לדעת איזה אי אפשר יהיה לקרוא את ההודעה, אפילו לדעת את המפתח.
קודים
קודים אמיתיים מורכבים מהתאמות לכל אחד מהםמילים של קוד נפרד. כדי לעבוד איתם, יש צורך במה שנקרא ספרי קוד. למעשה, זהו אותו מילון, המכיל רק תרגומים של מילים לקודים. דוגמה טיפוסית ומפושטת של קודים היא טבלת ASCII - צופן בינלאומי של תווים פשוטים.
היתרון העיקרי של קודים הוא שקשה מאוד לפענח אותם. ניתוח תדרים כמעט ולא עובד כאשר הם נפרצים. החולשה של הקודים היא, למעשה, הספרים עצמם. ראשית, הכנתם היא תהליך מורכב ויקר. שנית, עבור אויבים הם הופכים לאובייקט רצוי והיירוט של אפילו חלק מהספר מאלץ אותך לשנות את כל הקודים לחלוטין.
במאה ה-20, מדינות רבות השתמשו בקודים כדי להעביר נתונים סודיים, והחליפו את ספר הקודים לאחר תקופה מסוימת. והם גם חיפשו באופן פעיל אחר ספרים של שכנים ומתנגדים.
אניגמה
כולם יודעים שאניגמה הייתה מכונת ההצפנה העיקרית של הנאצים במהלך מלחמת העולם השנייה. המבנה של אניגמה כולל שילוב של מעגלים חשמליים ומכניים. איך הצופן ייצא תלוי בתצורה הראשונית של אניגמה. במקביל, אניגמה משנה אוטומטית את התצורה שלה במהלך הפעולה, ומצפינה הודעה אחת בכמה דרכים לכל אורכה.
בניגוד לצפנים הפשוטים ביותר, "אניגמה" נתנה טריליוני שילובים אפשריים, מה שהפך את פיצוח המידע המוצפן לכמעט בלתי אפשרי. בתורם, לנאצים הכין שילוב מסוים לכל יום, שאותו הםמשמש ביום מסוים לשליחת הודעות. לכן, גם אם אניגמה נפלה לידיו של האויב, היא לא עשתה דבר כדי לפענח הודעות מבלי להיכנס לתצורה הנכונה בכל יום.
האק "אניגמה" נוסתה באופן פעיל במהלך כל המערכה הצבאית של היטלר. באנגליה, בשנת 1936, נבנה לכך אחד ממכשירי המחשוב הראשונים (מכונת טיורינג), שהפך בעתיד לאב-טיפוס של מחשבים. משימתו הייתה לדמות את פעולתן של כמה עשרות אניגמות בו-זמנית ולהריץ דרכן מסרים נאציים יורטים. אבל אפילו מכונת הטיורינג הצליחה לפצח את המסר רק מדי פעם.
הצפנת מפתח ציבורי
הפופולרי ביותר מבין אלגוריתמי ההצפנה, שנמצא בשימוש בכל מקום בטכנולוגיה ובמערכות מחשוב. המהות שלה טמונה, ככלל, בנוכחות שני מפתחות, שאחד מהם מועבר בפומבי, והשני סודי (פרטי). המפתח הציבורי משמש להצפנת ההודעה והמפתח הפרטי משמש לפענוחה.
המפתח הציבורי הוא לרוב מספר גדול מאוד שיש לו רק שני מחלקים, לא סופר אחד והמספר עצמו. יחד, שני המחלקים הללו יוצרים מפתח סודי.
בואו נשקול דוגמה פשוטה. תנו למפתח הציבורי להיות 905. המחלקים שלו הם המספרים 1, 5, 181 ו- 905. אז המפתח הסודי יהיה, למשל, המספר 5181. אתה אומר קל מדי? מה אם בתפקידמספר ציבורי יהיה מספר עם 60 ספרות? קשה מבחינה מתמטית לחשב את המחלקים של מספר גדול.
לדוגמה חיה יותר, דמיינו שאתם מושכים כסף מכספומט. בקריאת הכרטיס, הנתונים האישיים מוצפנים במפתח ציבורי מסוים, ובצד הבנק מפוענח המידע במפתח סודי. ואת המפתח הציבורי הזה ניתן לשנות עבור כל פעולה. ואין דרכים למצוא במהירות מחלקי מפתח בעת יירוטו.
עמידות גופן
חוזק ההצפנה של אלגוריתם הצפנה הוא היכולת להתנגד לפריצה. פרמטר זה הוא החשוב ביותר עבור כל הצפנה. ברור שצופן ההחלפה הפשוט, שניתן לפענח על ידי כל מכשיר אלקטרוני, הוא אחד הבלתי יציבים ביותר.
היום, אין סטנדרטים אחידים לפיהם ניתן יהיה להעריך את עוצמת הצופן. זהו תהליך מייגע וארוך. עם זאת, ישנן מספר ועדות שהפיקו תקנים בתחום זה. לדוגמה, דרישות המינימום עבור אלגוריתם ההצפנה המתקדם או AES שפותח על ידי NIST USA.
לעיון: צופן Vernam מוכר כצופן העמיד ביותר בפני שבירה. יחד עם זאת, היתרון שלו בכך שלפי האלגוריתם שלו הוא הצופן הפשוט ביותר.