אבטחת צפני בלוקים מושרשת ביסודה ביישום איטרטיבי של פעולות בלבול ודיפוזיה. מושג זה גובש לראשונה על ידי קלוד שאנון בעבודתו פורצת הדרך על תורת התקשורת של מערכות סודיות, שם ניסח את הצורך הן בבלבול והן בדיפוזיה במערכות קריפטוגרפיות כדי לסכל התקפות סטטיסטיות ומבניות. הבנת הסיבה לכך שנדרשים סבבים מרובים של פעולות אלו, וכיצד הם קשורים זה לזה, היא קריטית להערכת התכנון והאבטחה של צפני בלוקים מודרניים כמו תקן הצפנת הנתונים (DES) ותקן ההצפנה המתקדם (AES).
בלבול ופיזור: הגדרות ותפקידים
בלבול מבקש להפוך את הקשר בין הטקסט המוצפן למפתח למורכב ככל האפשר. הוא עושה זאת על ידי הסתרת המבנה הסטטיסטי של הטקסט הרגיל, לעתים קרובות באמצעות החלפות לא ליניאריות (למשל, תיבות S ב-DES ו-AES). ככל שמיפוי זה לא ליניארי ומורכב יותר, כך קשה יותר לתוקף להסיק מידע על המפתח, אפילו בהינתן גישה לזוגות רבים של טקסט רגיל-טקסט מוצפן.
דיפוזיה, לעומת זאת, שואפת לפזר את ההשפעה של כל סיבית טקסט פשוט על פני סיבית מוצפנת רבה, כך ששינוי בסיבית קלט אחת יביא לשינויים בסיבית פלט רבה. מאפיין זה מבטיח שתכונות סטטיסטיות של הטקסט הרגיל מתפזרות דרך הטקסט המוצפן, מה שהופך את זה לבלתי אפשרי עבור תוקפים לנצל דפוסים באמצעות ניתוח תדרים או טכניקות דומות. דיפוזיה מושגת בדרך כלל באמצעות פעולות ערבוב ליניאריות, כגון תמורה, XORs לפי סיביות, או כפל מטריצות (כמו בפעולת MixColumns של AES).
מבנה של צפני בלוקים איטרטיביים
רוב צפני הבלוקים בנויים כצפנים איטרטיביים, כלומר הם מיישמים פונקציית מעגל פשוטה מספר פעמים כדי להשיג רמת אבטחה גבוהה. פונקציית המעגל משלבת בדרך כלל גם בלבול (למשל, באמצעות יישומי S-box) וגם דיפוזיה (למשל, באמצעות שלבי תמורה או ערבוב). הרציונל מאחורי שימוש בסיבובים מרובים הוא שיישום יחיד של בלבול ודיפוזיה אינו מספיק כדי לטשטש את כל הקשרים המבניים בין טקסט רגיל, טקסט מוצפן ומפתח. כל סיבוב מגדיל בהדרגה את מורכבות הקשרים הללו, ורק לאחר מספר סיבובים הצופן משיג את רמת האבטחה הרצויה מפני התקפות קריפטאנליטיות ידועות.
לדוגמה, בהתחשב בצופן AES, כל סבב הצפנה מורכב מהשלבים המרכזיים הבאים:
1. תת-בייטים (בלבול): כל בייט במטריצת המצב מוחלף באחר בהתאם ל-S-box לא ליניארית קבועה, מה שמכניס אי-לינאריות.
2. ShiftRows (דיפוזיה): שורות מטריצת המצב מועברות באופן מחזורי, מה שמעביר בתים לעמודות שונות ומקל על ערבוב ערכים.
3. MixColumns (דיפוזיה): עמודות של המצב מעורבבות באמצעות כפל מטריצות בשדה סופי, מה שמפיץ עוד יותר את ההשפעה של כל בייט קלט.
4. AddRoundKey (בלבול): מטריצת המצב משולבת עם מפתח משנה הנגזר מהמפתח הראשי, מה שמציג תלות מפתח בכל סיבוב.
יעילות הצופן תלויה לא רק בחוזקה של כל פעולה בנפרד, אלא גם במספר הפעמים שפעולות אלה מיושמות. קריפטאנליסטים הוכיחו כי צמצום מספר הסיבובים בצופן כמו AES או DES יכול להפוך אותו לפגיע להתקפות כגון קריפטאנליזה דיפרנציאלית וליניארית. לדוגמה, בעוד ש-AES-128 המלא משתמש ב-10 סיבובים, גרסאות עם 6 סיבובים בלבד רגישות לטכניקות קריפטאנליטיות מסוימות.
הצורך בסיבובים מרובים
כדי להבהיר עוד יותר, יש לשקול מה קורה אם מיושם רק סבב אחד של בלבול ודיפוזיה. גם אם משתמשים בתיבות S חזקות ובשכבות ערבוב, קשרים ודפוסים סטטיסטיים עשויים להימשך. תוקפים עלולים לנצל דפוסים שיוריים אלה באמצעות התקפות מסוג "טקסט פשוט נבחר" או "טקסט פשוט ידוע". סבבים מרובים מבטיחים שההשפעה של כל מפתח וביט טקסט פשוט תתפזר ביסודיות על פני כל הטקסט המוצפן, מה שהופך את ביצוע התקפות כאלה לבלתי אפשרי.
מושג "אפקט המפולת" הוא מרכזי כאן. צופן חזק מבטיח ששינוי קטן בטקסט הרגיל (כגון היפוך של ביט בודד) יביא לשינוי בכמחצית הביטים של הטקסט המוצפן, ותכונה זו מושגת רק לאחר מספר סבבים של בלבול ופיזור. המבנה האיטרטיבי של צפני בלוקים מודרניים תוכנן במיוחד כדי להגביר אפקט זה, מה שהופך את הצופן לעמיד בפני התקפות המסתמכות על מעקב אחר יחסי קלט-פלט.
דוגמאות: DES ו-AES
צופן DES ההיסטורי ממחיש עיקרון זה היטב. DES משתמש ב-16 סיבובים במבנה רשת Feistel שלו, כאשר כל סיבוב מורכב מהרחבה, החלפת S-box (בלבול) ותמורה (דיפוזיה). קריפטאנליזה נרחבת הראתה ששימוש בפחות מ-16 סיבובים מוביל לחולשות; קריפטאנליזה דיפרנציאלית יעילה כנגד גרסאות עם פחות סיבובים. המתכננים בחרו ב-16 סיבובים כדי לספק מרווח אבטחה מפני התקדמות בקריפטאנליזה, מה שמדגיש את החשיבות של איטרציות מרובות.
AES, שתוכנן עשרות שנים מאוחר יותר, מיישם 10, 12 או 14 סיבובים בהתאם לגודל המפתח (128, 192 או 256 סיביות, בהתאמה). כל סיבוב משלב את ההשפעות המשולבות של בלבול ודיפוזיה דרך שלבי SubBytes, ShiftRows ו-MixColumns. מספר הסיבובים נבחר בקפידה על סמך ממצאים קריפטאנליטיים כדי לאזן בין אבטחה לביצועים.
אופני פעולה והקשר ביניהם
בעוד שהאבטחה הפנימית של צפני בלוקים נקבעת על ידי בלבול ופיזור חוזרים ונשנים, אופן הפעולה (למשל, ECB, CBC, CFB, OFB, CTR) מציין כיצד צפני בלוקים מוחלים על נתונים גדולים מבלוק בודד. מאפייני האבטחה של צופן בלוקים במצב נתון תלויים באופן מהותי בעמידות צופן הבלוק להתקפות, אשר בתורה היא פונקציה של מידת היסוד של מושגים בלבול ופיזור על פני מספר סיבובים. אם צופן הבלוקים הבסיסי חלש (למשל, עם מעט מדי סיבובים), אף אופן פעולה לא יכול לפצות על חיסרון זה.
התקפות קריפטאנליטיות וסיבובים
מספר התקפות קריפטאנליטיות מנצלות בלבול ופיזור לא מספקים בצפני בלוקים. קריפטאנליזה דיפרנציאלית, למשל, חוקרת כיצד הבדלים בטקסטים פשוטים משפיעים על הבדלי הטקסט המוצפן שנוצרים. אם הצופן לא פיזר כראוי הבדלי קלט, תוקף יכול לחזות כיצד הבדלים אלה מתפשטים ולהשתמש בידע זה כדי לשחזר את המפתח. באופן דומה, קריפטאנליזה לינארית מחפשת קירובים ליניאריים בין טקסט פשוט, טקסט מוצפן וביטים של מפתח. יעילותן של התקפות אלו פוחתת ככל שמספר הסיבובים עולה, בתנאי שכל סיבוב מיישם ביעילות בלבול ופיזור.
לשם המחשה, DES עם 8 סיבובים (מחצית מהמספר הסטנדרטי) רגיש לקריפטאנליזה דיפרנציאלית, אך עם 16 סיבובים, ההסתברות להפצת נתיב דיפרנציאלי שימושי על פני כל הסיבובים הופכת לזניחה. זה מדגים שהמבנה האיטרטיבי, ובמיוחד מספר הסיבובים, הוא בסיסי להשגת אבטחה מעשית.
פשרות עיצוב
מתכנני צופן חייבים לאזן בין מספר הסיבובים לדרישות הביצועים. סיבובים רבים יותר בדרך כלל משמעותם אבטחה רבה יותר, אך גם עלות חישובית גבוהה יותר. מספר הסיבובים נבחר בדרך כלל כדי לספק מרווח אבטחה מעל ההתקפות הידועות ביותר בזמן התכנון, מתוך ציפייה שהתקדמות עתידית בקריפטאנליזה עלולה לכרסם במרווח זה. גישה שמרנית זו מבטיחה שהצופן יישאר מאובטח לאורך תוחלת החיים הצפויה שלו.
הצדקה מתמטית
מנקודת מבט תיאורטית, ניתן לבחון עיצובים איטרטיביים של צופן בלוקים דרך עדשת מודל "צופן מוצר איטרטיבי". תחת הנחות מסוימות, הוכח כי הרכב של מספר צפנים חלשים (שכל אחד מהם מיישם בלבול ו/או דיפוזיה חלשים) יכול לייצר צופן כולל חזק, בתנאי שהרכיבים בלתי תלויים מספיק ומספר הסיבובים גדול. זה מצדיק את הגישה האיטרטיבית לבלבול ודיפוזיה בתכנון צופן מעשי.
דוגמאות מעשיות
דוגמה מאלפת לכך היא מבנה רשת ההחלפה-תמורה (SPN), המשמש את AES. ב-SPN, הטקסט הרגיל עובר שכבות מתחלפות של החלפה (בלבול) ותמורה (דיפוזיה). לאחר מספר סיבובים, כל סיבית פלט תלויה בכל סיבית קלט בצורה לא ליניארית ביותר. תכונה זו אינה מושגת בסיבוב אחד; זוהי ההשפעה המצטברת של סיבובים מרובים שמבטיחה שכל סיבית בטקסט המוצפן היא פונקציה מורכבת של כל סיבית בטקסט הרגיל והמפתח, תכונה המכונה דיפוזיה מלאה.
רשת פייסטל, כפי שמשמשת ב-DES, משיגה אבטחה דומה על ידי יישום איטרטיבי של פונקציית מעגל המשלבת הצבה ותמורה, כאשר הפלט של כל מעגל מזין את הבא אחריו. האבטחה של מבנים כאלה עולה באופן אקספוננציאלי עם מספר המעגלים, בהנחה שפונקציית המעגל עצמה אינה ניתנת להפיכה טריוויאלית או ליניארית.
מסקנה: תלות אבטחתית באיטרציה
חוזקם של צפני בלוקים קשור באופן הדוק ליישום חוזר ונשנה של פעולות בלבול ודיפוזיה. צפנים מודרניים מתוכננים עם מספר מספיק של סיבובים כדי להבטיח שכל קשר סטטיסטי שיורי מהטקסט הרגיל או מהמפתח יבוטל, ושכל סיבית של הטקסט המוצפן מושפעת מכל סיבית של הטקסט הרגיל והמפתח. תהליך איטרטיבי זה אינו רק פרט יישום, אלא עיקרון יסוד של אבטחת צופן. מספר הסיבובים נבחר על סמך קריפטאנליזה נרחבת כדי לספק מרווח ביטחון ומוערך מחדש מעת לעת ככל שצצות התקפות חדשות. מכל הבחינות המעשיות והתיאורטיות, אבטחת צפני בלוקים אכן תלויה בשילוב של פעולות בלבול ודיפוזיה פעמים רבות.
שאלות ותשובות אחרונות אחרות בנושא יישומים של צופי חסימות:
- מה צריך לכלול צופן בלוקים לפי שאנון?
- האם דיפוזיה פירושה שקטעים בודדים של טקסט מוצפן מושפעים מקטעים רבים של טקסט רגיל?
- האם מצב ה-ECB מפרק טקסט רגיל גדול לבלוקים הבאים
- האם נוכל להשתמש בצופן בלוק כדי לבנות פונקציית Hash או MAC?
- האם מצב OFB יכול לשמש כמחוללי זרם מפתח?
- האם הצגה יכולה להיות דטרמיניסטית?
- מהם אופני הפעולה?
- מה עושה מצב ECB לצפני חסימה פשוטים
- האם PSRNG יכול להיעשות על ידי צפני בלוק?
- האם MAC יכול להיבנות על ידי צפני בלוק?
צפה בשאלות ותשובות נוספות באפליקציות של צופני בלוק

