Presentation is loading. Please wait.

Presentation is loading. Please wait.

הגנה במערכות מתוכנתות תרגול 2 – צפנים סימטריים הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.

Similar presentations


Presentation on theme: "הגנה במערכות מתוכנתות תרגול 2 – צפנים סימטריים הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד."— Presentation transcript:

1

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


Download ppt "הגנה במערכות מתוכנתות תרגול 2 – צפנים סימטריים הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד."

Similar presentations


Ads by Google