Download presentation
Presentation is loading. Please wait.
1
הגנה במערכות מתוכנתות חורף תשס " ד הרצאה 2 מושגי יסוד בקריפטוגרפיה – הצפנה
2
הגנה - חורף תשס"ד - הרצאה 22 פונקציות קריפטוגרפיות ניתן לחלק את רוב הפונקציות הקריפטוגרפיות לשלושה סוגים : פונקציות מבוססות מפתח סודי פונקציות מבוססות מפתח פומבי פונקציות תמצות
3
הגנה - חורף תשס"ד - הרצאה 23 קריפטוגרפית מפתח סימטרי ישנו מפתח סודי אחד שידוע לגורמים המורשים ורק להם. מקרה טיפוסי : לכל זוג אנשים במערכת יש מפתח סודי משותף הידוע רק לשניהם. נראה : צפני מפתח סימטרי (DES,AES,RC4…) ביצוע בדיקת אימות ושלמות עם מפתח סימטרי – MAC.
4
הגנה - חורף תשס"ד - הרצאה 24 קריפטוגרפית מפתח פומבי כל גורם במערכת מחזיק במפתח פומבי ( שמפורסם ברבים וידוע לכולם ) ובמפתח פרטי המתאים לו ( שידוע רק לו ). נראה : צפני מפתח פומבי (RSA) ביצוע בדיקת אימות ושלמות עם מפתח פומבי – חתימה דיגיטלית.
5
הגנה - חורף תשס"ד - הרצאה 25 פונקציות תמצות פונקציות תמצות (hash) קריפטוגרפיות משמשות לצורך ביצוע משימות אחרות דוגמת חתימה דיגטלית, MAC וכו'. בשונה מפונקציות מבוססות מפתח (סודי או פומבי), פונקציית תמצות קריפטוגרפית אינה דורשת שום מפתח סודי לצורך הפעלתה. תפקידה של פונקציית תמצות קריפטוגרפית הינו "צמצום בטוח" של מרחב ההודעות למרחב בגודל נתון.
6
הגנה - חורף תשס"ד - הרצאה 26 צפנים
7
הגנה - חורף תשס"ד - הרצאה 27 צפנים הצפנה מאפשרת להסתיר את תוכן המידע. למשל: אליס מצפינה את ההודעה (כתב גלוי) בעזרת מפתח ההצפנה. רק מי שיודע את המפתח המתאים (בוב ואליס) יכול לפענח את ההודעה ולגלות את תוכנה.
8
הגנה - חורף תשס"ד - הרצאה 28 תזכורת E keke C Mהצפנה D kdkd M Cפענוח k e, k d – מפתחות ההצפנה והפענוח M – כתב גלוי (Plaintext) E, D – פעולות ההצפנה והפענוח C – כתב סתר (Ciphertext)
9
הגנה - חורף תשס"ד - הרצאה 29 דרישות מצפנים כל משתמש חוקי יכול להצפין ולפענח בקלות עבור מתקיף, גם אם ברשותו מספר רב של הודעות מוצפנות והוא יודע באיזה צופן משתמשים, –קשה לגלות את המפתח הסודי. –קשה לגלות את תוכן ההודעה המוצפנת (או חלקים ממנה).
10
הגנה - חורף תשס"ד - הרצאה 210 צפנים - המשך נבחין בין שני סוגים של צפנים: צפני מפתח סודי (נקראים גם סימטריים). צפני מפתח פומבי (אסימטריים). את הצפנים הסימטריים ניתן לחלק לשתי קטגוריות נוספות: צפני בלוקים – צפנים המקבלים גודל קלט קבוע. צפני שטף (stream ciphers) – צפנים המסוגלים להצפין (כמעט) כל אורך של קלט.
11
הגנה - חורף תשס"ד - הרצאה 211 צפני בלוקים צופן בלוקים מקבל קלט בגודל נתון ( גודל הבלוק ) יחד עם מפתח סודי ומצפין אותו להודעה בגודל נתון ( לרוב אותו הגודל ). בכדי להצפין הודעה M, שאורכה עולה על אורך הקלט של הצופן, מחלקים את M לבלוקים שאורכם כאורך הקלט של הצופן ( אם יש צורך מבצעים דיפון ). כל בלוק עובר הצפנה בנפרד. ניתן להצפין כל בלוק על סמך בלוקים קודמים או באופן בלתי תלוי. הקשר בין הצפנת בלוקים עוקבים נקרא Mode of Operation.
12
הגנה - חורף תשס"ד - הרצאה 212 צפני בלוקים - דוגמא תהי M הודעת הקלט המחולקת לבלוקים M=M 1 M 2 …M n ניתן להצפין כל בלוק באופן בלתי תלוי בבלוקים קודמים על ידי שימוש באותו מפתח k. מוד הפעולה הזה נקרא Elctronic Book Code (ECB) ובו מתקיים : (C i =E k (M i ישנם הרבה צפני בלוקים. בין הנפוצים בשימוש : DES, AES, IDEA ו -RC5.
13
הגנה - חורף תשס"ד - הרצאה 213 Data Encryption Standard (DES) פותח ע ” י I.B.M. בשנות ה -70' אומץ ע ” י NIST. גודל בלוק – 64 סיביות אורך המפתח – 56 סיביות התקן היה בשימוש נרחב מאז במשך מעל ל- 20 שנה. יולי 1998 : Deep Crack - מכונה שפותחה ע " י EFF במיוחד למטרה זו, ועלתה 210000$. המכונה מסוגלת למצוא בהנתן הודעה M ואת ההצפנה שלה C תחת מפתח k, את המפתח k תוך 56 שעות.
14
הגנה - חורף תשס"ד - הרצאה 214 הגדלת הבטיחות של שימוש ב -DES ע " י הצפנה כפולה ומשולשת אחת הדרכים שהוצעו כדי לשפר בטיחות של מערכות הצפנה שהשתמשו ב -DES היתה להשתמש בכמה שכבות הצפנה. הצפנה כפולה : C=E k1 (E k2 (M)) M=D k2 (D k1 (C)) הערה : הצפנה כפולה חשופה ל -Meet in the middle attack הצפנה משולשת (Triple-DES): C=E k1 (D k2 (E k3 (M)) M=D k3 (E k2 (D k1 (C))
15
הגנה - חורף תשס"ד - הרצאה 215 Advanced Encryption Standard (AES) אלגוריתם ההצפנה המחליף את DES כאלגוריתם ההצפנה הסטנדרטי. NIST הוציא “ מכרז ” להצעות ל -AES 15 הצעות מכל רחבי העולם התקבלו. Rijndeal הוכרז כ -AES בספטמבר 2000 גודל בלוק – 128 סיביות. אורך המפתח משתנה – 128 סיביות, 192 סיביות או 256 סיביות. יעיל מאוד גם בתוכנה וגם בחומרה.
16
הגנה - חורף תשס"ד - הרצאה 216 צפני שטף (Stream ciphers) מפתח ההצפנה ( והפענוח ) יכול להשתנות. ההצפנה מתבצעת בעזרת Key stream. ה -key stream יכול להיות פונקציה של הבלוקים הקודמים, של מספר הבלוק, ושל מפתח קלט. צפני שטף משמשים לרוב כאשר יש צורך להצפין שטף של מידע הנוצר כל הזמן כגון שיחת טלפון.
17
הגנה - חורף תשס"ד - הרצאה 217 דוגמא לצופן שטף: RC4 צופן שטף המשמש כתקן בפועל. בהנתן מפתח k ( באורך של עד 256 בתים ), מייצר key stream באורך בלתי מוגבל שמשמש כ " מעין מפתח " ל -One Time Pad ( רצף פסודו אקראי ). ההצפנה – xor בין ההודעה ל -key stream. עובד על בתים. פותח ע ” י Ron Rivest.
18
הגנה - חורף תשס"ד - הרצאה 218 צפני בלוקים לעומת צפני שטף צפני שטף עובדים לעיתים קרובות על יחידות קטנות של קלט. עובדה זו הופכת אותם למתאימים יותר למימוש בחמרה מאשר בתכנה. בדרך כלל, צפני שטף מהירים יותר מצפני בלוקים. לרוב, צפני בלוקים נחשבים בטוחים יותר. כיום, השימוש בצפני בלוקים נפוץ יותר.
19
הגנה - חורף תשס"ד - הרצאה 219 צפני מפתח פומבי כל משתמש מחזיק זוג מפתחות : מפתח להצפנה הידוע לכולם ( פומבי ) ומפתח לפענוח הידוע אך ורק לו ( פרטי ). בהנתן מפתח ההצפנה בלבד קשה לחשב את מפתח הפענוח. רוב הצפנים הללו מבוססים על בעיות מתמטיות שקל לפתור בהנתן מידע מסוים, אך קשה אחרת. לדוגמא, שיטת RSA שנציג מיד מבוססת על בעית החלוקה לגורמים ראשוניים (factoring).
20
הגנה - חורף תשס"ד - הרצאה 220 דוגמא לצופן מפתח ציבורי – RSA (Rivest, Shamir, Adelman `78) c=m e (mod n) המפתח הפומבי שמפרסם המשתמש הינו צמד מספרים שלמים – (n,e). הראשון n משמש כמודולו של כל יתר החישובים. השני e משמש כחזקה של ההצפנה. ההצפנה של הודעה m הינה קל לראות כי בהנתן (n,e) כל אחד יכול להצפין כל הודעה m שהוא מעוניין להצפין ולשלוח.
21
הגנה - חורף תשס"ד - הרצאה 221 המשך דוגמא לצופן מפתח ציבורי – RSA m=c d (mod n) המפתח הפרטי של המשתמש הינו מספר שלם d. את המודולו n הדרוש לפענוח ניתן לקחת מהמפתח הפומבי, או להתייחס אליו כחלק מהפתח הפרטי. הפענוח של כתב סתר c הינו קל לראות כי בהנתן (n,d) בעל המפתח הפרטי יכול לפענח כל כתב סתר c שהוא מקבל.
22
הגנה - חורף תשס"ד - הרצאה 222 RSA – הרקע המתמטי ברור שחייבים להתקיים כל מיני קשרים בין n,e ו -d כדי ש : 1. פענוח הודע מוצפנית ייתן תשובה נכונה ( כלומר שייתקיים (m e ) d = m (mod n)). 2. בהנתן n,e קשה למצוא את d. 3. המשתמש החוקי ( בעל המפתח ) כן יהיה מסוגל למצוא את d. תזכורת מאלגברה מודרנית : נתבונן בחבורה הכפלית Z * n.. אם סדר החבורה הכפלית הינו מספר כלשהו r אזי מתקיים לכל a בחבורה הכפלית a r = 1 (mod n).
23
הגנה - חורף תשס"ד - הרצאה 223 RSA – הרקע המתמטי אם נבחר זוג ראשוניים גדולים p,q ונבחר את n כך שיתקיים n=pq, אזי נוכל לדעת את סדר החבורה הכפלית Z * n.. סדר החבורה הכפלית הינו (p-1)(q-1). לכן אם יתקיים ש -ed = 1 (mod (p-1)(q-1)) מובטח שייתקיים לכל הודעה 0<m<n: (m e ) d = m (mod n) בכך עמדנו בדרישות 1 ו -3. ההצפנה והפענוח יפעלו כשורה, ויצירת המפתחות היא די פשוטה.
24
הגנה - חורף תשס"ד - הרצאה 224 - בטיחות RSA בטיחותו של RSA מסתמכת על הקושי במציאת d ללא ידיעת הפירוק לגורמים של n. נהוג לומר כי בטיחות RSA מבוססת על בעיית הפירוק (factoring), אם כי ייתכן שניתן לשבור את RSA גם ללא פירוק. במשך השנים עבודות מחקר רבות בתחום של פירוק לגורמים פורסמו. עם זאת, בעיית פירוק מספר שהינו מכפלת זוג ראשוניים גדולים הינה בעיה קשה מאוד.
25
הגנה - חורף תשס"ד - הרצאה 225 פרוק לגורמים – מאז ועד היום RSA-129 הינו מספר בן 129 ספרות (426 סיביות ), אשר פורסם ב -1977. פורק לגורמים ב -1994 ע ” י שימוש ב -1600 מחשבים ( דרך ה -Internet), תוך שמונה חודשים. היום, אלגוריתם הפירוק הטוב ביותר יכול לפרק מספר באורך 512 סיביות במספר ימים תוך שימוש בעשרות מחשבים וחומרה ייעודית בעלות משוערכת של 10 מיליון דולר. כיום, באופן מעשי, לא ניתן לפרק לגורמים ראשוניים מספרים בני 1024 סיביות או יותר.
26
הגנה - חורף תשס"ד - הרצאה 226 RSA - סיכום יצירת מפתחות : 1. בחר זוג ראשוניים גדולים (512 סיביות או יותר ) p,q. 2. מצא זוג מספרים e,d כך ש -ed=1(mod (p-1)(q-1)). 3. פרסם את (n,e) כמפתח פומבי ושמור את d כפרטי. הצפנה של הודעה m נעשית ע " י העלאת ההודעה בחזקת e מודולו n: הפענוח של כתב סתר c נעשית ע ” י העלאת כתב הסתר בחזקת d מודולו n: נשים לב כי מתקיים : D(E(M))=D(m e (mod n))= m ed (mod n)=m E(D(M))=E(m d (mod n))= m ed (mod n)=m c=m e (mod n) m=c d (mod n)
27
הגנה - חורף תשס"ד - הרצאה 227 צפנים סימטריים מהירים מאוד בהשוואה לאלגוריתמי מפתח ציבורי. מבוססים על מבנים שמאמינים כי הם בטוחים. ניהול המפתחות בעייתי. צפני מפתח פומבי נוחים לשימוש - אין צורך בפרוטוקול להסכמה על מפתח משותף. אך יש צורך לוודא שמשתמשים במפתח הפומבי הנכון. מבוססים לרוב על בעיות מתמטיות שנחשבות קשות. איטיים באופן יחסי.
28
הגנה - חורף תשס"ד - הרצאה 228 שיטת ההכלאה (hybrid) שיטה זו היא בעצם מעין פרוטוקול תקשורת קטן. בהתחלה מסכימים על מפתח סימטרי בעזרת צופן מפתח פומבי. לאחר מכן כל התקשורת מוצפנת בעזרת צופן סימטרי.
29
הגנה - חורף תשס"ד - הרצאה 229 צפנים – הערה חשובה חשוב לזכור: צפנים מיועדים להסתרת המידע בלבד! הם אינם מבטיחים שהמידע לא השתנה בדרך ע"י תוקף. לדוגמא ב-RC4 (על אף שזה נכון גם לצפנים אחרים): שינוי ביט בכתב הסתר יגרום לשינויו בכתב הגלוי שיפוענח. - במיוחד, אם ידוע לנו חלק מתוכן ההודעה המוצפן, נוכל לשנות את אותו התוכן לכל דבר שנרצה. כדי לקבל את ההגנה על התוכן ששודר יש להשתמש בפרימטיבים המבטיחים אימות ושלמות, דוגמת MAC או חתימה דיגטלית.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.