32
תתתת תתתתתתת תתתתתתתת תתתתת2 – תתתתת תתתתתתתת תתתת: תתתתת תתת תתתת תתתתתת תתתתת תתתתת תתתתתתתת תתתתתתת תתתת תתתתת, תתתתתתת תתתת תתתתת תתתת.

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

  • Upload
    cicada

  • View
    121

  • Download
    17

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: הגנה במערכות מתוכנתות

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

– צפנים סימטריים2תרגול

הערה:

שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה

בלבד.

Page 2: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 2(c) 2007 אריק פרידמן

צפנים סימטריים

מהו צופןצפנים בלוקים וצפני שטף צופןAESModes of Operation

Page 3: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 3(c) 2007 אריק פרידמן

קריפטוגרפיה

.קריפטוגרפיה – המדע של הגנה על מידע:פונקציה אשר מקבלת צופן

, אותו רוצים להצפין, Pכתב גלוי , Kומפתח סודי

.Cומוציאה כפלט כתב סתר E key

Plaintext

Ciphertext

Page 4: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 4(c) 2007 אריק פרידמן

סימונים

סימוןמקור הסימוןמשמעות

Plaintextהכתב הגלוי המיועד להצפנה

Message

P

M

CiphertextCכתב הסתר

KeyKהמפתח שישמש להצפנה

תחת המפתח Pהצפנת ההודעה K

EncryptionEK(P)

תחת Cפענוח כתב הסתר Kהמפתח

DecryptionDK(C)

Page 5: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 5(c) 2007 אריק פרידמן

יותר פורמלי...

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

.P קשה למצוא את Cבהינתן 1.

.C קשה למצוא את Pבהינתן 2.

, או K קשה למצוא את המפתח C ו-Pבהינתן 3. אחרים.C או Pלהצפין/לפענח

Page 6: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 6(c) 2007 אריק פרידמן

הנחת יסוד

פונקציות ההצפנה והפענוח הינן ידועותומוכרות לכולם.

הסוד היחיד של הצופן הוא המפתח, שיגרוםלקושי בפיצוח הצופן.

Page 7: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 7(c) 2007 אריק פרידמן

סוגי צפנים

צפנים סימטריים:אותו מפתח משמש להצפנה ולפיענוח

Ek(P)=C , Dk(C)=Pצפנים אסימטריים, או צפני מפתח פומבי

המפתח הפומבי משמש להצפנה, והמפתח הפרטי משמשלפענוח

Epubkey(P)=C, Dprivkey(C)=P

בתרגול זה נדון אך ורק בצפנים סימטריים

Page 8: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 8(c) 2007 אריק פרידמן

צפני בלוקים

צפנים מוגדרים כפונקציה על נתון בגודל קבוע למשלDES ביט64 עובד על הודעה בגודל

?מה אם היא קטנה יותר?מה אם היא גדולה יותר

צפנים שונים לגדלים שונים – לא סבירחלוקה לבלוקים

) צפני שטףstream ciphers למשל ,(RC4 ביט למשל)8בעלי "זיכרון", גודל בלוק קטן (

) צפני בלוקיםBlock Ciphers למשל ,(DES, Rijndaelחסרי זיכרון – איזה גודל בלוק כדאי?

Page 9: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 9(c) 2007 אריק פרידמן

התקפת טבלה

M=1102712111…155

C=2114219713211…253

TE

MC

0?

1211

……

71197

……

10242

……

155253

……

21113

……

TD

CM

……

13211

……

42102

……

19771

……

2111

……

253155

……

סיביות, ושבידי 8נניח גודל בלוק התוקף ההודעה הבאה והצפנתה:

התוקף יכול לבנות את הטבלאות הבאות:

(Known Plaintext Attack/Chosen Plaintext Attack)

סיביות.128גודל בלוק מומלץ – לפחות

Page 10: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 10(c) 2007 אריק פרידמן

AES (Rijndael)

צופן בלוקים :סיביות128גודל בלוק להצפנה :סיביות256 או 192,128גודל מפתח :סיביות128 גודל בלוק מוצפן

אלגוריתם איטרטיביNr) 12, 10 שלבים, בהתאם לגודל המפתח

שלבים בהתאמה)14או

Page 11: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 11(c) 2007 אריק פרידמן

בלוק כטבלה

P0P4P8P12

P1P5P9P13

P2P6P10P14

P3P7P11P15

K0K4K8K12

K1K5K9K13

K2K6K10K14

K3K7K11K15

Page 12: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 12(c) 2007 אריק פרידמן

תיאורסכמטי

Page 13: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 13(c) 2007 אריק פרידמן

Byte Substitution (BS)

עובדת על בתים בודדיםהפעולה הלא לינארית היחידה בצופן

Page 14: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 14(c) 2007 אריק פרידמן

S-Box

טבלת תרגום קבועה ומוגדרת מראש

Page 15: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 15(c) 2007 אריק פרידמן

Shift Row (SR)

עובדת עלשורות

בטבלה: שורהi זזה

iציקלית מקומות שמאלה

Page 16: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 16(c) 2007 אריק פרידמן

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)

Page 17: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 17(c) 2007 אריק פרידמן

Mix Column (MC)המשך -

2103

1032

0321

3210

3

2

1

0

,,,

,,,

,,,

,,,

aaaaf

aaaaf

aaaaf

aaaaf

b

b

b

b :הפעולה עצמה

(לא צריך לזכור)

xBxxxxxg

aagaaaaaaaf

:110?1000&

1,,, 103213210

Page 18: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 18(c) 2007 אריק פרידמן

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)

Page 19: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 19(c) 2007 אריק פרידמן

פענוח

.לכל אחת מהפעולות יש פעולה הופכית הדומה לה לצורך פענוחC מבצעים את הפעולות ההופכיות בסדר

.Pהפוך, עד שנקבל את

Page 20: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 20(c) 2007 אריק פרידמן

מחברים את הכל

Page 21: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 21(c) 2007 אריק פרידמן

לסיכום

הצופן עצמו אינו סודימורכב מפעולות פשוטות החוזק של הצופן נובע משילוב הפעולות ומהמפתח

הסודימספר שלבים רב יותר מקשה על השבירה

– שלבים7התוצאה הכי טובה עד היום

) שלבים) 10לא ידועה כיום התקפה על ריינדל המלא +אשר יעילה יותר מחיפוש ממצה

Page 22: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 22(c) 2007 אריק פרידמן

1שאלה

-הוחלט לבטל את פעולת הShift Row יתר הפעולות) נשארות)

-תארו את התקפת הChosen Plaintext הטובה ביותר שניתן לבצע.

?כמה זיכרון דרוש להתקפה כמה זוגות)P,C(?דרושים להתקפה ?כמה זמן יידרש להתקפה

Page 23: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 23(c) 2007 אריק פרידמן

Page 24: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 24(c) 2007 אריק פרידמן

- פתרון1שאלה

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

BS

BS

MC

MC

KM

KM…

Page 25: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 25(c) 2007 אריק פרידמן

- פתרון1שאלה

ניתן להסתכל על תהליך ההצפנה בריינדל החדש כארבעהצפנות של עמודות המתרחשות במקביל:

P0P1P2P3 C0C1C2C3

P C

Page 26: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 26(c) 2007 אריק פרידמן

- פתרון1שאלה

התקפת טבלה מסוגChosen Plaintext232 זוגות של )P,C( כאשר בכל ,P.העמודות זהות בונים טבלת תרגום עבור כל עמודה, ובאופן דומה בונים

טבלאות הופכיות לצורך פענוח. הצלחנו לשבור את הצופן ללא מציאת המפתחK.

סיבוכיות זמןO(232) ,לבניית הטבלאות O(1).להצפנה ופענוח לאחר מכן

סיבוכיות מקום8 128 בתים = 4, בכל כניסה 232 טבלאות, כ"א בגודלGB.

Page 27: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 27(c) 2007 אריק פרידמן

2שאלה

:הוצע לשנות את ריינדל בצורה הבאה-מחליפים את טבלת הByte Substitution:בפונקציה

S(b0b1b2b3b4b5b6b7)=b7b0b1b2b3b4b5b6

כלומר, הזזה ציקלית של סיבית אחת ימינה.

חוו דעתכם על בטיחות הצופן החדש לעומת הצופןהמקורי.

אם הצופן נחלש, הראו התקפה יעילה ככל האפשר שמפצחת לבחירתכם). chosen plaintext או known plaintextאותו. (

דרושים להתקפה? כמה זמן חישוב נדרש?)P,C(כמה זוגות

Page 28: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 28(c) 2007 אריק פרידמן

Modes of(אופני תפעול הצופן Operation(

האופן בו נעשית הצפנת הבלוקים של ההודעה:נתייחס ל

Mi=Mj Ci=Cj ?

על כמה בלוקים ישפיע שינויMi?

השפעה של שגיאותerror propagation-מספר הבלוקים פרט ל - Mi

אותם לא נצליח לפענח כראוי

(לא כולל חישובים שנעשו מראש) מהירות פעולה

Page 29: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 29(c) 2007 אריק פרידמן

Electronic Code Book (ECB) Mode :הצפנהCi=Ek(Mi)

:פענוחMi=Dk(Ci)

E

M1

C1

E

M2

C2

E

M3

C3

E

M4

C4

Page 30: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 30(c) 2007 אריק פרידמן

Cipher Block Chaining (CBC) Mode :אתחולC0=IV

:הצפנה Ci=Ek(MiCi-1)

:פענוח Mi=Dk(Ci ) Ci-1

E

M1

C1

IV E

M2

C2

E

M3

C3

E

M4

C4

Page 31: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 31(c) 2007 אריק פרידמן

Output Feedback (OFB) Mode :אתחולV0=IV

:הצפנה Vi=Ek(Vi-1)

Ci=MiVi

:פענוח Mi=Ci Vi

M1

C1

M2

C2

M3

C3

M4

C4

IV

E E E E

Page 32: הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות - תרגול 2 32(c) 2007 אריק פרידמן

Cipher Feedback (CFB) Mode :אתחולC0=IV

:הצפנה Ci=MiEk(Ci-1)

:פענוח Mi=Ci Ek(Ci-1)

M1

C1

M2

C2

M3

C3

M4

C4

IV

E E E E