Download presentation
Presentation is loading. Please wait.
2
הגנה במערכות מתוכנתות תרגול 2 – צפנים סימטריים הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
3
הגנה במערכות מתוכנתות - תרגול 22 (c) אריק פרידמן 2007 צפנים סימטריים מהו צופן צפנים בלוקים וצפני שטף צופן AES Modes of Operation
4
הגנה במערכות מתוכנתות - תרגול 23 (c) אריק פרידמן 2007 קריפטוגרפיה קריפטוגרפיה – המדע של הגנה על מידע. צופן: פונקציה אשר מקבלת כתב גלוי P, אותו רוצים להצפין, ומפתח סודי K, ומוציאה כפלט כתב סתר C. E key Plaintext Ciphertext
5
הגנה במערכות מתוכנתות - תרגול 24 (c) אריק פרידמן 2007 סימונים סימוןמקור הסימוןמשמעות PMPM Plaintext Message הכתב הגלוי המיועד להצפנה CCiphertextכתב הסתר KKeyהמפתח שישמש להצפנה E K (P)Encryptionהצפנת ההודעה P תחת המפתח K D K (C)Decryptionפענוח כתב הסתר C תחת המפתח K
6
הגנה במערכות מתוכנתות - תרגול 25 (c) אריק פרידמן 2007 יותר פורמלי... צופן הוא פונקציה הפיכה C=E K (P) המקיימת: 1. קל להצפין: בהינתן P ו-K קל לחשב את C. 2. קל לפענח: בהינתן C ו-K קל לחשב את P. 3. קשה לשבור: בהינתן C קשה למצוא את P. בהינתן P קשה למצוא את C. בהינתן P ו-C קשה למצוא את המפתח K, או להצפין/לפענח P או C אחרים.
7
הגנה במערכות מתוכנתות - תרגול 26 (c) אריק פרידמן 2007 הנחת יסוד פונקציות ההצפנה והפענוח הינן ידועות ומוכרות לכולם. הסוד היחיד של הצופן הוא המפתח, שיגרום לקושי בפיצוח הצופן.
8
הגנה במערכות מתוכנתות - תרגול 27 (c) אריק פרידמן 2007 סוגי צפנים צפנים סימטריים אותו מפתח משמש להצפנה ולפיענוח: E k (P)=C, D k (C)=P צפנים אסימטריים, או צפני מפתח פומבי המפתח הפומבי משמש להצפנה, והמפתח הפרטי משמש לפענוח E pubkey (P)=C, D privkey (C)=P בתרגול זה נדון אך ורק בצפנים סימטריים
9
הגנה במערכות מתוכנתות - תרגול 28 (c) אריק פרידמן 2007 צפני בלוקים צפנים מוגדרים כפונקציה על נתון בגודל קבוע למשל DES עובד על הודעה בגודל 64 ביט מה אם היא קטנה יותר? מה אם היא גדולה יותר? צפנים שונים לגדלים שונים – לא סביר חלוקה לבלוקים צפני שטף (stream ciphers), למשל RC4 בעלי "זיכרון", גודל בלוק קטן (8 ביט למשל) צפני בלוקים (Block Ciphers), למשל DES, Rijndael חסרי זיכרון – איזה גודל בלוק כדאי?
10
הגנה במערכות מתוכנתות - תרגול 29 (c) אריק פרידמן 2007 התקפת טבלה 155…1211711021=M 253…2111319742211=C TETE CM ?0 1 …… 19771 …… 42102 …… 253155 …… 13211 …… TDTD MC …… 13 …… 10242 …… 71197 …… 1211 …… 155253 …… נניח גודל בלוק 8 סיביות, ושבידי התוקף ההודעה הבאה והצפנתה: התוקף יכול לבנות את הטבלאות הבאות: (Known Plaintext Attack/Chosen Plaintext Attack) גודל בלוק מומלץ – לפחות 128 סיביות.
11
הגנה במערכות מתוכנתות - תרגול 210 (c) אריק פרידמן 2007 AES (Rijndael) צופן בלוקים גודל בלוק להצפנה: 128 סיביות גודל מפתח: 192,128 או 256 סיביות גודל בלוק מוצפן: 128 סיביות אלגוריתם איטרטיבי N r שלבים, בהתאם לגודל המפתח (10, 12 או 14 שלבים בהתאמה)
12
הגנה במערכות מתוכנתות - תרגול 211 (c) אריק פרידמן 2007 בלוק כטבלה P 12 P8P8 P4P4 P0P0 P 13 P9P9 P5P5 P1P1 P 14 P 10 P6P6 P2P2 P 15 P 11 P7P7 P3P3 K 12 K8K8 K4K4 K0K0 K 13 K9K9 K5K5 K1K1 K 14 K 10 K6K6 K2K2 K 15 K 11 K7K7 K3K3
13
הגנה במערכות מתוכנתות - תרגול 212 (c) אריק פרידמן 2007 תיאור סכמטי
14
הגנה במערכות מתוכנתות - תרגול 213 (c) אריק פרידמן 2007 Byte Substitution (BS) עובדת על בתים בודדים הפעולה הלא לינארית היחידה בצופן
15
הגנה במערכות מתוכנתות - תרגול 214 (c) אריק פרידמן 2007 S-Box טבלת תרגום קבועה ומוגדרת מראש
16
הגנה במערכות מתוכנתות - תרגול 215 (c) אריק פרידמן 2007 Shift Row (SR) עובדת על שורות בטבלה: שורה i זזה ציקלית i מקומות שמאלה
17
הגנה במערכות מתוכנתות - תרגול 216 (c) אריק פרידמן 2007 Mix Column (MC) עובדת על עמודות בטבלה: ערך כל בית אחרי הפעולה תלוי ביותר מבית אחד. 0 ≤ i,c ≤ 3 S’ i,c =f(S i,c, S (i+1) mod 4, c, S (i+2) mod 4, c, S (i+3) mod 4, c )
18
הגנה במערכות מתוכנתות - תרגול 217 (c) אריק פרידמן 2007 Mix Column (MC) - המשך הפעולה עצמה: (לא צריך לזכור)
19
הגנה במערכות מתוכנתות - תרגול 218 (c) אריק פרידמן 2007 Key Mixing (KM) bitwise XOR בין הטבלה לבין תת- מפתח כל פעם מתבצע עם מפתח שונה A: K (128 or 192 or 256 bits) ( אלגוריתם תזמון מפתחות) K’ (128(Nr+1) bits) = K 0(128 bits) K 1(128 bits) …K Nr(128 bits)
20
הגנה במערכות מתוכנתות - תרגול 219 (c) אריק פרידמן 2007 פענוח לכל אחת מהפעולות יש פעולה הופכית הדומה לה. לצורך פענוח C מבצעים את הפעולות ההופכיות בסדר הפוך, עד שנקבל את P.
21
הגנה במערכות מתוכנתות - תרגול 220 (c) אריק פרידמן 2007 מחברים את הכל
22
הגנה במערכות מתוכנתות - תרגול 221 (c) אריק פרידמן 2007 לסיכום הצופן עצמו אינו סודי מורכב מפעולות פשוטות החוזק של הצופן נובע משילוב הפעולות ומהמפתח הסודי מספר שלבים רב יותר מקשה על השבירה התוצאה הכי טובה עד היום – 7 שלבים לא ידועה כיום התקפה על ריינדל המלא (10+ שלבים) אשר יעילה יותר מחיפוש ממצה
23
הגנה במערכות מתוכנתות - תרגול 222 (c) אריק פרידמן 2007 שאלה 1 הוחלט לבטל את פעולת ה-Shift Row (יתר הפעולות נשארות) תארו את התקפת ה-Chosen Plaintext הטובה ביותר שניתן לבצע. כמה זיכרון דרוש להתקפה? כמה זוגות (P,C) דרושים להתקפה? כמה זמן יידרש להתקפה?
24
הגנה במערכות מתוכנתות - תרגול 223 (c) אריק פרידמן 2007
25
הגנה במערכות מתוכנתות - תרגול 224 (c) אריק פרידמן 2007 שאלה 1- פתרון x x x x x x x x x x x x x x x x x x BS MC KM …
26
הגנה במערכות מתוכנתות - תרגול 225 (c) אריק פרידמן 2007 שאלה 1- פתרון ניתן להסתכל על תהליך ההצפנה בריינדל החדש כארבע הצפנות של עמודות המתרחשות במקביל: P3P3 P2P2 P1P1 P0P0 C3C3 C2C2 C1C1 C0C0 PC
27
הגנה במערכות מתוכנתות - תרגול 226 (c) אריק פרידמן 2007 שאלה 1- פתרון התקפת טבלה מסוג Chosen Plaintext 2 32 זוגות של (P,C), כאשר בכל P העמודות זהות. בונים טבלת תרגום עבור כל עמודה, ובאופן דומה בונים טבלאות הופכיות לצורך פענוח. הצלחנו לשבור את הצופן ללא מציאת המפתח K. סיבוכיות זמן O(2 32 ) לבניית הטבלאות, O(1) להצפנה ופענוח לאחר מכן. סיבוכיות מקום 8 טבלאות, כ"א בגודל 2 32, בכל כניסה 4 בתים = 128GB.
28
הגנה במערכות מתוכנתות - תרגול 227 (c) אריק פרידמן 2007 שאלה 2 הוצע לשנות את ריינדל בצורה הבאה: מחליפים את טבלת ה-Byte Substitution בפונקציה: S(b 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 )=b 7 b 0 b 1 b 2 b 3 b 4 b 5 b 6 כלומר, הזזה ציקלית של סיבית אחת ימינה. חוו דעתכם על בטיחות הצופן החדש לעומת הצופן המקורי. אם הצופן נחלש, הראו התקפה יעילה ככל האפשר שמפצחת אותו. (known plaintext או chosen plaintext לבחירתכם). כמה זוגות (P,C) דרושים להתקפה? כמה זמן חישוב נדרש?
29
הגנה במערכות מתוכנתות - תרגול 228 (c) אריק פרידמן 2007 אופני תפעול הצופן (Modes of Operation) האופן בו נעשית הצפנת הבלוקים של ההודעה נתייחס ל: M i =M j C i =C j ? על כמה בלוקים ישפיע שינוי M i ? השפעה של שגיאות error propagation - מספר הבלוקים פרט ל-Mi אותם לא נצליח לפענח כראוי מהירות פעולה (לא כולל חישובים שנעשו מראש)
30
הגנה במערכות מתוכנתות - תרגול 229 (c) אריק פרידמן 2007 Electronic Code Book (ECB) Mode הצפנה: C i =E k (M i ) פענוח: M i =D k (C i ) E M1M1 C1C1 E M2M2 C2C2 E M3M3 C3C3 E M4M4 C4C4
31
הגנה במערכות מתוכנתות - תרגול 230 (c) אריק פרידמן 2007 Cipher Block Chaining (CBC) Mode אתחול: C 0 =IV הצפנה: C i =E k (M i C i-1 ) פענוח: M i =D k (C i ) C i-1 E M1M1 C1C1 IV E M2M2 C2C2 E M3M3 C3C3 E M4M4 C4C4
32
הגנה במערכות מתוכנתות - תרגול 231 (c) אריק פרידמן 2007 Output Feedback (OFB) Mode אתחול: V 0 =IV הצפנה: V i =E k (V i-1 ) C i =M i V i פענוח: M i =C i V i M1M1 C1C1 M2M2 C2C2 M3M3 C3C3 M4M4 C4C4 IV EE E E
33
הגנה במערכות מתוכנתות - תרגול 232 (c) אריק פרידמן 2007 Cipher Feedback (CFB) Mode אתחול: C 0 =IV הצפנה: C i =M i E k (C i-1 ) פענוח: M i =C i E k (C i-1 ) M1M1 C1C1 M2M2 C2C2 M3M3 C3C3 M4M4 C4C4 IV EE E E
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.