Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "הגנה במערכות מתוכנתות תרגול 3 – קריפטוגרפיית מפתח פומבי הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד."— Præsentationens transcript:

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

2 הגנה במערכות מתוכנתות - תרגול 32 (c) אריק פרידמן 2007 קריפטוגרפיית מפתח פומבי שני מפתחות  מפתח פומבי  מפתח פרטי (סודי) נציג שני שימושים  הצפנה באמצעות צופן מפתח פומבי  חתימה דיגיטלית

3 הגנה במערכות מתוכנתות - תרגול 33 (c) אריק פרידמן 2007 RSA Ron Rivest, Adi Shamir, Leonard Adleman (MIT)

4 הגנה במערכות מתוכנתות - תרגול 34 (c) אריק פרידמן 2007 אלגוריתם RSA אלגוריתם ליצירת מפתחות: 1. בוחרים שני מספרים ראשוניים גדולים p ו-q 2. מחשבים n=pq, φ(n)=(p-1)(q-1) [ φ(n) שווה למספר המספרים הקטנים מ-n והזרים ל-n ] 3. בוחרים e שלם כך ש- 3≤e<φ(n), ו-e זר ל-φ(n). המפתח הפומבי להצפנה: (e,n) 4. בעזרת אלגוריתם אוקלידס המורחב מחשבים את d – ההופכי של e מודולו φ(n). המפתח הפרטי (לפענוח): (d,n) הצפנה של הודעה M: C=M e (mod n) פענוח הודעה C: M=C d (mod n)

5 הגנה במערכות מתוכנתות - תרגול 35 (c) אריק פרידמן 2007 אלגוריתם אוקלידס A=a; B=b; r=A mod B; while (r!=0) { A=B; B=r; r=A mod B; } Output B as gcd(a,b) קלט: שני שלמים a ו-b, נניח a≥b. פלט: gcd(a,b)

6 הגנה במערכות מתוכנתות - תרגול 36 (c) אריק פרידמן 2007 אלגוריתם אוקלידס המורחב קלט: שני שלמים e ו-m, gcd(e,m)=1 פלט: שלם d כך ש-ed=1 (mod m) הרעיון: נשתמש במשוואות שקיבלנו בהרצת אלגוריתם אוקלידס הרגיל לצורך מציאת d.

7 הגנה במערכות מתוכנתות - תרגול 37 (c) אריק פרידמן 2007 הערות האלגוריתם מסתמך על בעיית פירוק מספר גדול לגורמיו הראשוניים (נחשבת בעיה קשה) סודיים: d, p, q, φ(n) נתייחס ל-M כאל מספר בכתיב בינארי |M|<|n| עבור הערכים 0, 1, -1 ההצפנה ידועה תמיד.

8 הגנה במערכות מתוכנתות - תרגול 38 (c) אריק פרידמן 2007 מפתח סימטרי מפתח פומבי מפתח הצפנה פומבי, מפתח פענוח פרטי. קשה לממש בחומרה. חישובים איטיים. מספר המפתחות כמספר המשתמשים במערכת. מפתח יחיד להצפנה וגם לפענוח. מהיר בחומרה ותוכנה. קשה להחליף מפתחות. במערכת עם N משתמשים דרושים O(N 2 ) מפתחות. בד"כ משלבים בין השיטות, למשל: RSA pubB (K) || E K (M)

9 הגנה במערכות מתוכנתות - תרגול 39 (c) אריק פרידמן 2007 חתימה דיגיטלית מטרות:  אימות זהות השולח  שלמות ההודעה  תכונת אי ההכחשה השימוש עם מפתח פומבי:  המפתח הפרטי משמש לחתימה על ההודעה  המפתח הפומבי משמש לאימות ההודעה

10 הגנה במערכות מתוכנתות - תרגול 310 (c) אריק פרידמן 2007 אלגוריתם חתימה דיגיטלית S M Sig(M) Pr U V M || Sig(M) True/False Pub U שולחים: M || Sig(M) פונקציית חתימה פונקציית אימות

11 הגנה במערכות מתוכנתות - תרגול 311 (c) אריק פרידמן 2007 חתימה דיגיטלית באמצעות RSA S M Sig(M) Pr U V M || Sig(M) True/False Pub U Sig(M) = S (M, (d,n)) = M d (mod n) פונקציית חתימה פונקציית אימות V(M,Sig(M), (e,n)) = true iff M=[Sig(M)] e (mod n)

12 הגנה במערכות מתוכנתות - תרגול 312 (c) אריק פרידמן 2007 בעיות... Existential Forgery  עבור Sig כלשהו, מחשבים Sig e (mod n).  מאפשר "לזייף" חתימה, למרות שאין שליטה על התוכן. Multiplication Property  תוקף ששמע שתי הודעות והחתימות עליהן, יכול לשלוח הודעה חתומה M=(M 1 ·M 2 ) (mod n)

13 הגנה במערכות מתוכנתות - תרגול 313 (c) אריק פרידמן 2007 הפתרון – שילוב עם פונקציית תמצות קריפטוגרפית פונקציה h תיקרא פונקציית תמצות (hash) קריפטוגרפית אם היא מקיימת: 1. h:{0,1} * →{0,1} c 2. h חד כיוונית 3. h חסרת התנגשויות לדוגמה: SHA-1, SHA-256, Tiger, (MD5)

14 הגנה במערכות מתוכנתות - תרגול 314 (c) אריק פרידמן 2007 RSA + פונקציית תמצות קריפט' S M Sig(M) Pr U V M || Sig(M) True/False Pub U Sig(M) = S (M, (d,n)) = (h(M)) d (mod n) פונקציית חתימה פונקציית אימות V(M,Sig(M), (e,n)) = true iff h(M)=[Sig(M)] e (mod n)

15 הגנה במערכות מתוכנתות - תרגול 315 (c) אריק פרידמן 2007 איך פותר? אין מגבלת אורך חד-כיווניות של h פותרת Existential Forgery. שימוש בפונקציית התמצות "מחביא" תכונות אלגבריות של RSA. בפועל חתימה והצפנה בצורה נכונה עם RSA הינה מורכבת יותר (PKCS#1, ANSI X9.31)

16 הגנה במערכות מתוכנתות - תרגול 316 (c) אריק פרידמן 2007 שאלה על RSA (אביב תשס"ג, מועד ב', 18.9.03) רוני הוא הסטודנט היחיד שניגש לבחינה במקצוע מתמטיקה טהורה מ'. לרוע המזל, קיבל רוני ציון חד-ספרתי (גדול מ-1) בבחינה. רוני גילה שהמרצה עומד להעביר את ציונו למזכירות בפורמט הבא: Name, Grade, Sig(Grade) כאשר: Sig(Grade) – חתימת RSA (ללא hash) של המרצה על הציון. (e,n) – מפתח RSA הפומבי של המרצה, כאשר n מספר גדול באורך 1024 ביט. הנח שהמפתח הפומבי של המרצה ידוע לכולם, וזו הפעם הראשונה שהמרצה חותם על הודעה כלשהי. ניתן להניח שרוני יכול לקרוא ולשנות הודעות שנשלחות מהמרצה למזכירות. האם רוני יכול לגרום לכך שהציון שיועבר יהיה דו-ספרתי? אם כן, הראה כיצד, אחרת נמק.


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

Lignende præsentationer


Annoncer fra Google