תקן הצפנת מידע (DES) הוא צופן בלוקים סימטרי. "צופן בלוקים סימטרי" פירושו שהוא עובד על בלוקים קבועים של נתונים ומשתמש באותו מפתח להצפנה ולפענוח. DES פותח ב-1974 ב-IBM בשיתוף ה-NSA. ב-1976 הוא אומץ כתקן ממשלתי בארה"ב ושימש עד שהוחלף ב-AES ב-2001. למרות זאת משתמשים עדיין בגרסה המשולשת שלו (3DES), בעיקר בבנקאות.
DES עובד על בלוקים בגודל 64 סיביות ומשתמש במפתח של 64 סיביות, אך רק 56 מהן משמשות בפועל. ההצפנה מתבצעת ב-16 חזרות (סבבים). המבנה הפנימי שלו הוא רשת פייסטל (Feistel). ברשת פייסטל החסרה פונקציה אחת שמופעלת על חצי הבלוק בכל סבב; כך אותה פונקציה משמשת גם להצפנה וגם לפענוח.
לפני הסבבים מפעילים תמורה התחלתית (IP) שנועדה לנוחות חומרתית. בכל סבב משתמשים בתת-מפתח שונה בגודל 48 סיביות שמופק מהמפתח הראשי בתהליך שנקרא הכנת מפתח. תהליך זה כולל הפרדה לשני חלקים, הזזות מעגליות ושימוש בטבלאות בחירה (PC1 ו-PC2).
הפונקציה הפנימית f משלבת שלושה שלבים עיקריים: הרחבה (E) שממירה 32 סיביות ל-48, חיבור (XOR) עם תת-המפתח, ואז החלפה לא-ליניארית בתיבות ההחלפה S-box. לבסוף מפעילים תמורה (P) שמסדרת את הסיביות. תיבות ההחלפה (S-box) הן המקור לאי-ליניאריות שלהן תפקיד קריטי בביטחון הצופן.
בכל סבב החצי השמאלי מתחלף עם החצי הימני אחרי החישוב. הצפנה ופענוח משתמשים באותה פונקציה, אך סדר תת-המקשים הופך בפענוח. בתחילת התהליך יש תמורה התחלתית ובסופו תמורה הופכית, שניתן להתעלם מהן בניתוח תיאורטי.
קיימים מספר מפתחות "חלשים" ו"חלשים למחצה" שגורמים להתנהגויות מיוחדות בתהליך יצירת תת-המפתחות. ישנם ארבעה מפתחות חלשים ידועים ושישה זוגות של מפתחות חלשים למחצה. משמעות הדבר היא שהם עלולים להחליש את הביטחון אם לא מתחשבים בכך.
DES הוא דטרמיניסטי: אותו בלוק עם אותו מפתח מניב תמיד את אותו פלט. כדי להימנע מכך משתמשים במצבים כמו שרשור בלוקים (בצורה שמשתמשת בוקטור אתחול, IV) שמקטינים יתירות.
חולשתו העיקרית של DES היא אורך המפתח האפקטיבי, 56 סיביות. בשנות ה־90 התגלו התקפות מתמטיות חזקות כמו קריפטואנליזה דיפרנציאלית (Biham ושמיר) וליניארית. עם זאת, ההתקפות הללו דורשות כמויות גדולות של נתונים, ולכן לא תמיד פרקטיות. התקפה פרקטית ויעילה יותר היא כוח-גס מקבילי שבוצע על ידי חומרה ייעודית. בשנים האחרונות הוצגו מכונות שהן יכולות לשבור DES בזמן סביר ובעלות נמוכה יחסית. יש גם התקפת "יום הולדת" שמקטינה את המאמץ הנדרש.
כדי לחזק את DES פותחו וריאציות רבות. 2DES (הצפנה כפולה) נראית חכמה, אך פגיעה להתקפת היפגשות באמצע שמקטינה את הביטחון האפקטיבי. 3DES (DES משולש) פותר בעיה זו בפועל ונמצא בשימוש נרחב; הביטחון האפקטיבי שלו הוא סביב 2^{112}. גרסה נוספת היא DES-X שמשלבת XOR לפני ואחרי DES כדי להגביר את ההתנגדות לכוח גס. קיימות גם גרסאות קלות כמו DESL ו-DESXL המותאמות לחומרה דלה.
ל-DES יש מערך בדיקה ידוע. לדוגמה הטקסט "Now is the time for all" עם המפתח ההקסדצימלי 0123456789ABCDEF מניב ciphertext מוגדר בטקסט המקורי.
DES הוא אלגוריתם להצפנה. "הצפנה" היא דרך להסתיר מידע בעזרת מפתח. המפתח הוא מחרוזת סיביות שמוחזיקה סוד. DES נוצר ב-1974 על ידי IBM ועבד עד שהוחלף ב-AES ב-2001. עדיין משתמשים בגרסה מיוחדת שלו בבנקאות.
DES עובד על משקלים של נתונים שנקראים "בלוקים". כל בלוק הוא 64 סיביות. יש 16 חזרות קצרות שנקראות סבבים. בכל סבב חלק מהבלוק משתנה.
לפני הסבבים עושים תמורה התחלתית כדי לסדר את הסיביות. לאחר הסבבים עושים תמורה הפוכה בסוף. יש תהליך שממנו מייצרים 16 תת-מפתחות מהמפתח הראשי. אלה משמשים בכל סבב.
התיבה שנקראת S-box היא חלק חשוב. היא מחליפה קבוצת ביטים בערך אחר, בצורה לא פשוטה. זה עוזר להסתיר דפוסים ולחזק את ההצפנה.
אם מצפינים את אותו בלוק פעמיים עם אותו מפתח, התוצאה תהיה זהה. זה יכול להבליט דפוסים. לכן משתמשים בוקטור אתחול (IV) כדי להשתנות בתחילת ההצפנה.
חולשת DES היא שהמפתח קצר יחסית, 56 סיביות בלבד. אפשר לשבור אותו בעזרת מחשוב רב או בחומרה מיוחדת. חוקרים גילו שיטות מתמטיות שמקצרות את החיפוש אחרי המפתח. לכן משתמשים בגרסאות חזקות יותר.
כדי להגן טוב יותר ממציאים דרכים נוספות: 2DES מצפין פעמיים. זה לא מספיק בגלל מתקפת היפגשות באמצע. 3DES מצפין כמה פעמים ומחזק את ההגנה. DES-X מוסיף שלבי XOR לפני ואחרי DES. יש גם גרסאות קלות יותר שנקראות DESL ו-DESXL, שמתאימות למכשירים קטנים.
תגובות גולשים