לקריפטוגרפיה מגוון רחב של יישומים בחיינו והיא משמשת כבסיס לאבטחת מידע. מהופעתה של ההצפנה בימי קדם ועד להתפתחות ההצפנה המודרנית, טכניקות ההצפנה שבהן משתמשים אנשים נקראות קריפטוגרפיה קלאסית.
קריפטוגרפיה קלאסית עוסקת בעיקר בהעברה סודית של מידע, ובשיטות הפענוח המתאימות. העיצוב של אלגוריתמים קריפטוגרפיים קלאסיים תלוי בדרך כלל ביצירתיות של המעצב, והאבטחה תלויה בסודיות האלגוריתם. בואו נסתכל על כמה צפנים קלאסיים נפוצים.
קוד "Fan Qie"
בתקופת שושלת מינג, הקוד "Fan Qie" שהומצא על ידי Qi Jiguang השתמש בשני שירים כ"ספר הקוד" (ראה טבלה 1 ו-2). ראשי התיבות של המילים של השיר הראשון הוקצו מספרים 1-15 ואילו התנועות של המילים של השיר השני קיבלו מספרים 1-36. לאחר מכן, שמונה צלילי ההגייה באותה תקופה הוקצו אז מספרים 1-8, ויצרו מערכת שלמה של "קוד Fan Qie".
טבלה 1: טבלת ראשי תיבות
טבלה 2: טבלת תנועות
לדוגמה, אם הקוד של תו סיני מסוים הוא "5-25-2", בהתייחס לטבלאות נוכל לקבוע שהראשית המקבילה למספר 5 היא "d", התנועה המקבילה למספר 25 היא "i", והטון המתאים למספר 2 הוא הטון השני. לכן, אנו יכולים להסיק שהתו הסיני הוא "敌".
צפן תמורה
צופן הפרמוטציה מאופיין בשמירה על כל האותיות של הטקסט הפשוט ללא שינוי ורק שימוש בכלל התמורה כדי לסדר מחדש את המיקום והסדר של תווי הטקסט הפשוט. הנה דוגמה:
טקסט פשוט: "HELLO,WORLD!", מוצג בעמודות כ-
מפתח: (14) (23), כלומר התוכן של עמודות 1 ו-4 מוחלפים, והתוכן של עמודות 2 ו-3 מוחלפים.
טקסט צופן: ניתן להחליף טקסט רגיל לפי עמודות כדי לקבל
טקסט צופן: ניתן להחליף טקסט רגיל לפי עמודות כדי לקבל , מה שהופך את טקסט ההצפנה "LO!LWDE, LHOR ".
קיסר צופן
צופן הקיסר מעביר באופן מעגלי את האלפבית על ידי "k" סיביות להצפנה ופענוח. כאשר k = 3, יחסי ההסטה בין טקסט רגיל לטקסט צופן מוצג באיור 1:
איור 1: יחסי הסטת צופן קיסר (k=3)
לדוגמה, אם הודעת הטקסט הפשוט היא "CAESAR", הודעת הטקסט המוסטת תהיה "FDHVDU". צופן הקיסר הוא מעבר מחזורי של אותיות באנגלית להצפנה ופענוח, הידוע גם בשם "צופן ההזזה".
בצופן קיסר, המפתח "k" מייצג את מספר העמדות שבאמצעותן מוזזות האותיות הפשוטות. מכיוון שיש 26 אותיות באלפבית, יש רק 26 מקרים אפשריים ברווח המפתח, כלומר k ∈ [0, 25]. כמו כן, בשל מספרי המפתחות המוגבלים, די בניסיון של כל 26 המפתחות כדי לקבל את הטקסט הפשוט הנכון. שיטה זו של ניסיון כל המפתחות האפשריים ידועה גם בשם פיצוח בכוח גס. ניתן לראות שהתנאי ההכרחי של אבטחת מערכת קריפטו הוא להתנגד למתקפת חיפוש המפתח הממצה.
צופן החלפה
צופן קלאסי מוכר נוסף הוא צופן ההחלפה. החלפה כוללת החלפת האותיות בטקסט הפשוט באותיות או סמלים אחרים. בדרך כלל נוצרת טבלת החלפה לצופן החלפה. במהלך ההצפנה, הטקסט הפשוט מוחלף ברצף בתווים המתאימים המתקבלים מהטבלה, וכתוצאה מכך נוצר הטקסט המוצפן. טבלת החלפות זו משמשת כמפתח לצופן ההחלפה.
קח לדוגמא טבלת החלפות המוצגת באיור 2. אם הודעת הטקסט הפשוטה היא "SUBSTITUTION", הפניה לטבלה תקבל את הודעת הטקסט המוצפן "YNHYWOWNWOAL".
איור 2: טבלת החלפות
טבלת ההחלפות המוצגת באיור 2 היא רק סוג אחד של החלפות. ישנם תחליפים אפשריים של "26!" ל-26 אותיות, כלומר גודל מרחב המפתח של צופן ההחלפה הוא יותר מ-4.0×1026. בשלב זה, הקושי בשימוש בהתקפת חיפוש מקש ממצה יגדל באופן משמעותי. עם זאת, זה אינו מרמז שצופני החלפה מאובטחים, מכיוון שניתן לפצח אותם באמצעות ניתוח תדרים.
ניתוח תדרים משמש בעיקר ללימוד תדירות האותיות או צירופי האותיות בטקסט, ולהשתמש בחוקים סטטיסטיים כדי לממש ניתוח הצפנה באמצעות ספקולציות ואימות. בטקסט בעל קיבולת ומשמעות דגימה גדולה, התדירות של כל אות אינה זהה. אם לוקחים אנגלית כדוגמה, האות הנפוצה ביותר היא "e", ואחריה "t", "a" ו-"o". על ידי ניתוח סטטיסטי של התדרים של כל אות או צירוף אותיות בטקסט ההצפנה ובהתבסס על יסודות לשוניים ומאפיינים של צירופי אותיות, ניתן להסיק את הקשר התואם בין הטקסט הפשוט לטקסט הצופן.
Vigenere Chipher
בצופן הקיסר וההחלפה שהוצגו קודם לכן, לאחר בחירת המפתח, אותיות זהות בהודעת הטקסט הפשוט מוחלפות באותיות קבועות כשהן מוצפנות (כלומר אם האותיות בטקסט הפשוט זהות, אז האותיות בטקסט הפשוט הן אותו). מערכת צופן זו נקראת Monoalphabetic Substitution Cipher. צופן Vigenere הוא צופן החלפה פוליא-אלפביתי המבוסס על זה. גם אם האות זהה בהודעת הטקסט הפשוט, היא עשויה להיות מוצפנת בטקסט צופן אחר. הקשר בין טקסט רגיל לטקסט צופן בצופן Vigenere מוצג באיור 3.
איור 3: דיאגרמת קשרי טקסט רגיל-צופן Vigenere
לדוגמה, אם הודעת הטקסט הפשוטה היא "HELLOWORLD" והמפתח הוא "CIPHER", בהתייחס לאיור, נוכל לקבוע שהטקסט המוצפן הוא "JMASSNQZAK". ניתן לראות שהאות "O" בהודעת הטקסט הפשוט (במיקומים שונים של רצף הטקסט הפשוט) תקבל טקסט צופן שונה "S" ו-"Q".
מרחב המפתח של צופן Vigenere הוא 26 מטר, כאשר m מייצג את אורך המפתח. גם אם הערך של m קטן, זה עדיין ידרוש זמן רב להשתמש בהתקפת מפתח ממצה. לדוגמה, כאשר m=5, גודל רווח המפתח הוא יותר מ-1.1×107, וכבר קשה מאוד לתקוף על ידי התקפת מפתח ממצה ידנית. בהשוואה ל-Monoalphabetic Substitution Cipher, Vigenere Cipher מקבל צפנים שונים עם מיקומים שונים של אותה אות ברצף הטקסט הפשוט, בעל עמידות טובה יותר בפני ניתוח תדרים. עם זאת, זה לא אומר שה-Vigenere Cipher בלתי ניתן לשבירה. מכיוון שהצופן Vigenere עושה שימוש חוזר במפתח באופן מחזורי בעת הצפנת טקסטים ארוכים, כאשר שתי קבוצות זהות של אותיות מופיעות בטקסט הצפנה, יש סבירות גבוהה שהן מתאימות לאותו טקסט פשוט. שיטת הבדיקה של Kasiski מבוססת על רעיון זה כדי לחזות את אורך המפתח, ולאחר מכן להשתמש בשיטת אינדקס צירוף המקרים לפענוח נוסף של המפתח הספציפי.
עם ההתפתחות המהירה של ההצפנה המודרנית, כמעט ולא נעשה שימוש באלגוריתמי צופן קלאסיים בפועל. עם זאת, הרעיונות של "תמורה" ו"החלפה" בקריפטוגרפיה קלאסית הם עדיין רעיונות הליבה בבניית צופן בלוקים, שהם בעלי משמעות רבה לחקר ולמחקר של קריפטוגרפיה מודרנית.
Comments