Upload
cicada
View
121
Download
17
Embed Size (px)
DESCRIPTION
הגנה במערכות מתוכנתות. תרגול 2 – צפנים סימטריים. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. צפנים סימטריים. מהו צופן צפנים בלוקים וצפני שטף צופן AES Modes of Operation. Plaintext. E. key. Ciphertext. קריפטוגרפיה. - PowerPoint PPT Presentation
Citation preview
הגנה במערכות מתוכנתות
– צפנים סימטריים2תרגול
הערה:
שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה
בלבד.
הגנה במערכות מתוכנתות - תרגול 2 2(c) 2007 אריק פרידמן
צפנים סימטריים
מהו צופןצפנים בלוקים וצפני שטף צופןAESModes of Operation
הגנה במערכות מתוכנתות - תרגול 2 3(c) 2007 אריק פרידמן
קריפטוגרפיה
.קריפטוגרפיה – המדע של הגנה על מידע:פונקציה אשר מקבלת צופן
, אותו רוצים להצפין, Pכתב גלוי , Kומפתח סודי
.Cומוציאה כפלט כתב סתר E key
Plaintext
Ciphertext
הגנה במערכות מתוכנתות - תרגול 2 4(c) 2007 אריק פרידמן
סימונים
סימוןמקור הסימוןמשמעות
Plaintextהכתב הגלוי המיועד להצפנה
Message
P
M
CiphertextCכתב הסתר
KeyKהמפתח שישמש להצפנה
תחת המפתח Pהצפנת ההודעה K
EncryptionEK(P)
תחת Cפענוח כתב הסתר Kהמפתח
DecryptionDK(C)
הגנה במערכות מתוכנתות - תרגול 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להצפין/לפענח
הגנה במערכות מתוכנתות - תרגול 2 6(c) 2007 אריק פרידמן
הנחת יסוד
פונקציות ההצפנה והפענוח הינן ידועותומוכרות לכולם.
הסוד היחיד של הצופן הוא המפתח, שיגרוםלקושי בפיצוח הצופן.
הגנה במערכות מתוכנתות - תרגול 2 7(c) 2007 אריק פרידמן
סוגי צפנים
צפנים סימטריים:אותו מפתח משמש להצפנה ולפיענוח
Ek(P)=C , Dk(C)=Pצפנים אסימטריים, או צפני מפתח פומבי
המפתח הפומבי משמש להצפנה, והמפתח הפרטי משמשלפענוח
Epubkey(P)=C, Dprivkey(C)=P
בתרגול זה נדון אך ורק בצפנים סימטריים
הגנה במערכות מתוכנתות - תרגול 2 8(c) 2007 אריק פרידמן
צפני בלוקים
צפנים מוגדרים כפונקציה על נתון בגודל קבוע למשלDES ביט64 עובד על הודעה בגודל
?מה אם היא קטנה יותר?מה אם היא גדולה יותר
צפנים שונים לגדלים שונים – לא סבירחלוקה לבלוקים
) צפני שטףstream ciphers למשל ,(RC4 ביט למשל)8בעלי "זיכרון", גודל בלוק קטן (
) צפני בלוקיםBlock Ciphers למשל ,(DES, Rijndaelחסרי זיכרון – איזה גודל בלוק כדאי?
הגנה במערכות מתוכנתות - תרגול 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גודל בלוק מומלץ – לפחות
הגנה במערכות מתוכנתות - תרגול 2 10(c) 2007 אריק פרידמן
AES (Rijndael)
צופן בלוקים :סיביות128גודל בלוק להצפנה :סיביות256 או 192,128גודל מפתח :סיביות128 גודל בלוק מוצפן
אלגוריתם איטרטיביNr) 12, 10 שלבים, בהתאם לגודל המפתח
שלבים בהתאמה)14או
הגנה במערכות מתוכנתות - תרגול 2 11(c) 2007 אריק פרידמן
בלוק כטבלה
P0P4P8P12
P1P5P9P13
P2P6P10P14
P3P7P11P15
K0K4K8K12
K1K5K9K13
K2K6K10K14
K3K7K11K15
הגנה במערכות מתוכנתות - תרגול 2 12(c) 2007 אריק פרידמן
תיאורסכמטי
הגנה במערכות מתוכנתות - תרגול 2 13(c) 2007 אריק פרידמן
Byte Substitution (BS)
עובדת על בתים בודדיםהפעולה הלא לינארית היחידה בצופן
הגנה במערכות מתוכנתות - תרגול 2 14(c) 2007 אריק פרידמן
S-Box
טבלת תרגום קבועה ומוגדרת מראש
הגנה במערכות מתוכנתות - תרגול 2 15(c) 2007 אריק פרידמן
Shift Row (SR)
עובדת עלשורות
בטבלה: שורהi זזה
iציקלית מקומות שמאלה
הגנה במערכות מתוכנתות - תרגול 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)
הגנה במערכות מתוכנתות - תרגול 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
הגנה במערכות מתוכנתות - תרגול 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)
הגנה במערכות מתוכנתות - תרגול 2 19(c) 2007 אריק פרידמן
פענוח
.לכל אחת מהפעולות יש פעולה הופכית הדומה לה לצורך פענוחC מבצעים את הפעולות ההופכיות בסדר
.Pהפוך, עד שנקבל את
הגנה במערכות מתוכנתות - תרגול 2 20(c) 2007 אריק פרידמן
מחברים את הכל
הגנה במערכות מתוכנתות - תרגול 2 21(c) 2007 אריק פרידמן
לסיכום
הצופן עצמו אינו סודימורכב מפעולות פשוטות החוזק של הצופן נובע משילוב הפעולות ומהמפתח
הסודימספר שלבים רב יותר מקשה על השבירה
– שלבים7התוצאה הכי טובה עד היום
) שלבים) 10לא ידועה כיום התקפה על ריינדל המלא +אשר יעילה יותר מחיפוש ממצה
הגנה במערכות מתוכנתות - תרגול 2 22(c) 2007 אריק פרידמן
1שאלה
-הוחלט לבטל את פעולת הShift Row יתר הפעולות) נשארות)
-תארו את התקפת הChosen Plaintext הטובה ביותר שניתן לבצע.
?כמה זיכרון דרוש להתקפה כמה זוגות)P,C(?דרושים להתקפה ?כמה זמן יידרש להתקפה
הגנה במערכות מתוכנתות - תרגול 2 23(c) 2007 אריק פרידמן
הגנה במערכות מתוכנתות - תרגול 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…
הגנה במערכות מתוכנתות - תרגול 2 25(c) 2007 אריק פרידמן
- פתרון1שאלה
ניתן להסתכל על תהליך ההצפנה בריינדל החדש כארבעהצפנות של עמודות המתרחשות במקביל:
P0P1P2P3 C0C1C2C3
P C
הגנה במערכות מתוכנתות - תרגול 2 26(c) 2007 אריק פרידמן
- פתרון1שאלה
התקפת טבלה מסוגChosen Plaintext232 זוגות של )P,C( כאשר בכל ,P.העמודות זהות בונים טבלת תרגום עבור כל עמודה, ובאופן דומה בונים
טבלאות הופכיות לצורך פענוח. הצלחנו לשבור את הצופן ללא מציאת המפתחK.
סיבוכיות זמןO(232) ,לבניית הטבלאות O(1).להצפנה ופענוח לאחר מכן
סיבוכיות מקום8 128 בתים = 4, בכל כניסה 232 טבלאות, כ"א בגודלGB.
הגנה במערכות מתוכנתות - תרגול 2 27(c) 2007 אריק פרידמן
2שאלה
:הוצע לשנות את ריינדל בצורה הבאה-מחליפים את טבלת הByte Substitution:בפונקציה
S(b0b1b2b3b4b5b6b7)=b7b0b1b2b3b4b5b6
כלומר, הזזה ציקלית של סיבית אחת ימינה.
חוו דעתכם על בטיחות הצופן החדש לעומת הצופןהמקורי.
אם הצופן נחלש, הראו התקפה יעילה ככל האפשר שמפצחת לבחירתכם). chosen plaintext או known plaintextאותו. (
דרושים להתקפה? כמה זמן חישוב נדרש?)P,C(כמה זוגות
הגנה במערכות מתוכנתות - תרגול 2 28(c) 2007 אריק פרידמן
Modes of(אופני תפעול הצופן Operation(
האופן בו נעשית הצפנת הבלוקים של ההודעה:נתייחס ל
Mi=Mj Ci=Cj ?
על כמה בלוקים ישפיע שינויMi?
השפעה של שגיאותerror propagation-מספר הבלוקים פרט ל - Mi
אותם לא נצליח לפענח כראוי
(לא כולל חישובים שנעשו מראש) מהירות פעולה
הגנה במערכות מתוכנתות - תרגול 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
הגנה במערכות מתוכנתות - תרגול 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
הגנה במערכות מתוכנתות - תרגול 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
הגנה במערכות מתוכנתות - תרגול 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