1 / 33

הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות. תרגול 3 – צפנים סימטריים. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. צפנים סימטריים. מהו צופן צפני בלוקים וצפני שטף צופן AES Modes of Operation. Plaintext. E. key. Ciphertext. קריפטוגרפיה.

Download Presentation

הגנה במערכות מתוכנתות

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. צפנים סימטריים • מהו צופן • צפני בלוקים וצפני שטף • צופן AES • Modes of Operation הגנה במערכות מתוכנתות - תרגול 3

  3. Plaintext E key Ciphertext קריפטוגרפיה • קריפטוגרפיה – תורת ההגנה על מידע. • צופן: פונקציה אשר מקבלת כתב גלוי P, אותו רוצים להצפין, ומפתח סודי K, ומוציאה כפלט כתב סתר C. הגנה במערכות מתוכנתות - תרגול 3

  4. סימונים הגנה במערכות מתוכנתות - תרגול 3

  5. יותר פורמלי... • צופן הוא פונקציה הפיכה C=EK(P) המקיימת: • קל להצפין:בהינתן P ו-K קל לחשב את C. • קל לפענח: בהינתן C ו-K קל לחשב את P. • קשה לשבור: • בהינתן C קשה למצוא את P. • בהינתן P קשה למצוא את C. • בהינתן P ו-C קשה למצוא את K. הגנה במערכות מתוכנתות - תרגול 3

  6. הנחת יסוד • פונקציות ההצפנה והפענוח הינן ידועות ומוכרות לכולם. • הסוד היחיד של ההצפנה הוא המפתח, שיגרום לקושי בפיצוח הצופן. הגנה במערכות מתוכנתות - תרגול 3

  7. סוגי צפנים • צפנים סימטריים • אותו מפתח משמש להצפנה ולפיענוח: Ek(P)=C , Dk(C)=P • צפנים אסימטריים, או צפני מפתח פומבי • המפתח הפומבי משמש להצפנה, והמפתח הפרטי משמש לפענוח Epubkey(P)=C, Dprivkey(C)=P • בתרגול זה נדון אך ורק בצפנים סימטריים הגנה במערכות מתוכנתות - תרגול 3

  8. צפני בלוקים • צפנים המוגדרים כפונקציה על נתון בגודל קבוע • למשל DES עובד על הודעה בגודל 64 ביט • מה אם היא קטנה יותר? • מה אם היא גדולה יותר? • צפנים שונים לגדלים שונים – לא סביר • חלוקה לבלוקים • צפני שטף (stream ciphers), למשל RC4בעלי "זיכרון", גודל בלוק קטן (8 ביט למשל) • צפני בלוקים (Block Ciphers), למשל DES, Rijndaelחסרי זיכרון – איזה גודל בלוק כדאי? הגנה במערכות מתוכנתות - תרגול 3

  9. התקפת טבלה נניח גודל בלוק 8 סיביות, ושבידי התוקף ההודעה הבאה והצפנתה: התוקף יכול לבנות את הטבלאות הבאות: (Known Plaintext Attack/Chosen Plaintext Attack) גודל בלוק מומלץ – לפחות 128 סיביות. הגנה במערכות מתוכנתות - תרגול 3

  10. AES (Rijndael) • צופן בלוקים • גודל בלוק להצפנה: 128 סיביות • גודל מפתח: 192,128 או 256 סיביות • גודל בלוק מוצפן:128 סיביות • אלגוריתם איטרטיבי • פונקציית שלב, עליה חוזרים Nr פעמים (בהתאם לגודל המפתח Nr= 10, 12 או 14 בהתאמה). הגנה במערכות מתוכנתות - תרגול 3

  11. בלוק כטבלה הגנה במערכות מתוכנתות - תרגול 3

  12. AES - Nr שלבים, 4 פעולות הגנה במערכות מתוכנתות - תרגול 3 Byte Substitution (BS) Shift Row (SR) Mix Column (MC) Key Mixing (KM) כל שלב (כמעט) מורכב מ-4 הפעולות הנ"ל כל שלב מתבצע עם תת-מפתח שונה, הנגזר מהמפתח הראשי

  13. תיאורסכמטי הגנה במערכות מתוכנתות - תרגול 3

  14. Byte Substitution (BS) • עובדת על בתים בודדים • הפעולה הלא לינארית היחידה בצופן הגנה במערכות מתוכנתות - תרגול 3

  15. S-Box • טבלת תרגום קבועה ומוגדרת מראש הגנה במערכות מתוכנתות - תרגול 3

  16. Shift Row (SR) • עובדת על שורות בטבלה: • שורה i זזה ציקלית i מקומות שמאלה הגנה במערכות מתוכנתות - תרגול 3

  17. Mix Column (MC) • עובדת על עמודות בטבלה: • ערך כל בית אחרי הפעולה תלוי ביותר מבית אחד. 0 ≤ i,c ≤ 3 S’i,c=f(Si,c, S (i+1) mod 4, c, S (i+2) mod 4, c, S (i+3) mod 4, c) הגנה במערכות מתוכנתות - תרגול 3

  18. Mix Column (MC) - המשך • הפעולה עצמה: (לא צריך לזכור) הגנה במערכות מתוכנתות - תרגול 3

  19. Key Mixing (KM) • bitwise XOR בין הטבלה לבין תת-מפתח • כל פעם מתבצע עם מפתח שונה A: K(128 or 192 or 256 bits) (אלגוריתם תזמון מפתחות) K’(128(Nr+1) bits) = K0(128 bits)K1(128 bits)…KNr(128 bits) הגנה במערכות מתוכנתות - תרגול 3

  20. פענוח • לכל אחת מהפעולות יש פעולה הופכית הדומה לה. • לצורך פענוח C מבצעים את הפעולות ההופכיות בסדר הפוך, עד שנקבל את P. הגנה במערכות מתוכנתות - תרגול 3

  21. מחברים את הכל הגנה במערכות מתוכנתות - תרגול 3

  22. לסיכום • הצופן עצמו אינו סודי • מורכב מפעולות פשוטות • החוזק של הצופן נובע משילוב הפעולות ומהמפתח הסודי • מספר שלבים רב יותר מקשה על השבירה • לאחרונה התגלו התקפות על גרסאות ה-256 וה-192 ביט. • ההתקפות מפחיתות את הסיבוכיות ל- פעולות עבור גרסת ה-256 ביט. • לא ידועה התקפה עבור גרסאות ה-128 ביט. הגנה במערכות מתוכנתות - תרגול 3

  23. שאלה 1 • הוחלט לבטל את פעולת ה-Shift Row (יתר הפעולות נשארות) • תארו את התקפת ה-Chosen Plaintext הטובה ביותר שניתן לבצע. • כמה זיכרון דרוש להתקפה? • כמה זוגות (P,C) דרושים להתקפה? • כמה זמן יידרש להתקפה? הגנה במערכות מתוכנתות - תרגול 3

  24. הגנה במערכות מתוכנתות - תרגול 3

  25. שאלה 1- פתרון BS MC KM KM MC BS … הגנה במערכות מתוכנתות - תרגול 3

  26. שאלה 1- פתרון • ניתן להסתכל על תהליך ההצפנה בריינדל החדש כארבע הצפנות של עמודות המתרחשות במקביל: P C הגנה במערכות מתוכנתות - תרגול 3

  27. שאלה 1- פתרון • התקפת טבלה מסוג Chosen Plaintext • 232 זוגות של (P,C), כאשר בכל P העמודות זהות. • בונים טבלת תרגום עבור כל עמודה, ובאופן דומה בונים טבלאות הופכיות לצורך פענוח. • הצלחנו לשבור את הצופן ללא מציאת המפתח K. • סיבוכיות זמן • O(232) לבניית הטבלאות, O(1) להצפנה ופענוח לאחר מכן. • סיבוכיות מקום • 8 טבלאות, כ"א בגודל 232, בכל כניסה 4 בתים = 128GB. הגנה במערכות מתוכנתות - תרגול 3

  28. שאלה 2 • הוצע לשנות את ריינדל בצורה הבאה: • מחליפים את טבלת ה-Byte Substitution בפונקציה: S(b0b1b2b3b4b5b6b7)=b7b0b1b2b3b4b5b6כלומר, הזזה ציקלית של סיבית אחת ימינה. • חוו דעתכם על בטיחות הצופן החדש לעומת הצופן המקורי. • אם הצופן נחלש, הראו התקפה יעילה ככל האפשר שמפצחת אותו. (known plaintext או chosen plaintext לבחירתכם). כמה זוגות (P,C) דרושים להתקפה? כמה זמן חישוב נדרש? הגנה במערכות מתוכנתות - תרגול 3

  29. אופני תפעול הצופן (Modes of Operation) • האופן בו נעשית הצפנת הבלוקים של ההודעה • נתייחס ל: • Mi=MjCi=Cj  ? • על כמה בלוקים ישפיע שינוי Mi? • השפעה של שגיאות • error propagation - מספר הבלוקים פרט ל-Miאותם לא נצליח לפענח כראוי • מהירות פעולה (לא כולל חישובים שנעשו מראש) הגנה במערכות מתוכנתות - תרגול 3

  30. M1 M2 M3 M4 E E E E C1 C2 C3 C4 Electronic Code Book (ECB) Mode • הצפנה: Ci=Ek(Mi) • פענוח: Mi=Dk(Ci) הגנה במערכות מתוכנתות - תרגול 3

  31. M1 M2 M3 M4 E E E E C1 C2 C3 C4 Cipher Block Chaining (CBC) Mode • אתחול: C0=IV • הצפנה:Ci=Ek(MiCi-1) • פענוח:Mi=Dk(Ci )Ci-1 IV הגנה במערכות מתוכנתות - תרגול 3

  32. M1 M2 M4 M3 IV E E E E C1 C2 C4 C3 Output Feedback (OFB) Mode • אתחול: V0=IV • הצפנה:Vi=Ek(Vi-1)Ci=MiVi • פענוח:Mi=Ci Vi (c) אריק פרידמן 2007 הגנה במערכות מתוכנתות - תרגול 3

  33. Cipher Feedback (CFB) Mode • אתחול: C0=IV • הצפנה:Ci=MiEk(Ci-1) • פענוח:Mi=Ci  Ek(Ci-1) M1 M2 M4 M3 IV E E E E C1 C2 C4 C3 הגנה במערכות מתוכנתות - תרגול 3

More Related