16
תתתת תתתתתתת תתתתתתתת תתתתת4 – תתתתתתתתתתתת תתתת תתתתת תתתת: תתתתת תתת תתתת תתתתתת תתתתת תתתתת תתתתתתתת תתתתתתת תתתת תתתתת, תתתתתתת תתתת תתתתת תתתת.

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

  • Upload
    terrel

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

הגנה במערכות מתוכנתות. תרגול 4 – קריפטוגרפיית מפתח פומבי. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. קריפטוגרפית מפתח פומבי. קריפטוגרפית מפתח פומבי RSA אלגוריתם אוקלידס המורחב חתימה דיגיטלית פונקצית תמצות קריפטוגרפית. - PowerPoint PPT Presentation

Citation preview

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

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

– קריפטוגרפיית מפתח 4תרגול פומבי

הערה:

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

בלבד.

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

קריפטוגרפית מפתח פומבי

קריפטוגרפית מפתח פומביRSAאלגוריתם אוקלידס המורחבחתימה דיגיטליתפונקצית תמצות קריפטוגרפית

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

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

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

קריפטוגרפיית מפתח פומבי

שני מפתחותמפתח פומבי)מפתח פרטי )סודי

נציג שני שימושיםהצפנה באמצעות צופן מפתח פומביחתימה דיגיטלית

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

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

RSARon Rivest, Adi Shamir, Leonard Adleman

(MIT)

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

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

RSAאלגוריתם

אלגוריתם ליצירת מפתחות:q ו-pבוחרים שני מספרים ראשוניים גדולים 1.

)n=pq, φ)n(=)p-1()q-1מחשבים 2. [φ)n(-שווה למספר המספרים הקטנים מ n-והזרים ל n]

.)n(φ זר ל-e, ו-)e<φ)n≥3 שלם כך ש- eבוחרים 3.(e,n )המפתח הפומבי להצפנה:

e – ההופכי של dבעזרת אלגוריתם אוקלידס המורחב מחשבים את 4..)φ)nמודולו

(d,n)המפתח הפרטי )לפענוח(:

M: C=Me mod nהצפנה של הודעה C: M=Cd mod nפענוח הודעה

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

4הגנה במערכות מתוכנתות - תרגול 6(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(

, נניח b ו-aקלט: שני שלמים a≤b.

)gcd)a,bפלט:

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

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

הערות

האלגוריתם מסתמך על בעיית פירוק מספרגדול לגורמיו הראשוניים )נחשבת בעיה קשה(

:סודייםd, p, q, φ)n(-נתייחס לMכאל מספר בכתיב בינארי |M|<|n| ההצפנה ידועה תמיד.1, -1, 0עבור הערכים

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

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

מפתח פומבימפתח סימטרי

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

.קשה לממש בחומרה.חישובים איטיים מספר המפתחות

כמספר המשתמשים במערכת.

מפתח יחיד להצפנהוגם לפענוח.

.מהיר בחומרה ותוכנה.קשה להחליף מפתחות במערכת עםN

משתמשים דרושים O)N2(.מפתחות

|| )RSApubB)Kבד"כ משלבים בין השיטות, למשל: EK)M(

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

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

חתימה דיגיטלית

:מטרותאימות זהות השולחשלמות ההודעהתכונת אי ההכחשה

:השימוש עם מפתח פומביהמפתח הפרטי משמש לחתימה על ההודעההמפתח הפומבי משמש לאימות ההודעה

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

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

אלגוריתם חתימה דיגיטלית

S

M

Sig)M(

PrUV

M || Sig)M(

True/False

PubU

)M || Sig)Mשולחים:

פונקציית חתימה

פונקציית אימות

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

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

RSAחתימה דיגיטלית באמצעות

S

M

Sig)M(

PrUV

M || Sig)M(

True/False

PubU

Sig)M( = S )M, )d,n(( = Md )mod n(

פונקציית חתימה

פונקציית אימות

V)M,Sig)M(, )e,n(( = true

iff M=]Sig)M([e )mod n(

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

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

בעיות...

Existential Forgery עבורSig כלשהו, מחשבים Sige)mod n(. מאפשר "לזייף" חתימה, למרות שאין שליטה על

התוכן.Multiplication Property

תוקף ששמע שתי הודעות והחתימות עליהן, יכול)M=)M1·M2( )mod nלשלוח הודעה חתומה

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

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

RSAשאלה על (18.9.03)אביב תשס"ג, מועד ב',

רוני הוא הסטודנט היחיד שניגש לבחינה במקצוע מתמטיקה טהורה מ'.( בבחינה.1לרוע המזל, קיבל רוני ציון חד-ספרתי )גדול מ-

רוני גילה שהמרצה עומד להעביר את ציונו למזכירות בפורמט הבא:Name, Grade, Sig)Grade(

כאשר:Sig)Grade( חתימת – RSA ללא( hash.של המרצה על הציון )

(e,n) מפתח – RSA הפומבי של המרצה, כאשר n ביט.1024 מספר גדול באורך

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

ולשנות הודעות שנשלחות מהמרצה למזכירות.האם רוני יכול לגרום לכך שהציון שיועבר יהיה דו-ספרתי?

אם כן, הראה כיצד, אחרת נמק.

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

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

הפתרון – שילוב עם פונקציית תמצות קריפטוגרפית

פונקציהh( תיקרא פונקציית תמצות hash )קריפטוגרפית אם היא מקיימת:

.1h:{0,1}*→{0,1}c

.2hחד כיוונית

.3hחסרת התנגשויות :לדוגמהSHA-1, SHA-256, Tiger, )MD5(

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

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

RSA'פונקציית תמצות קריפט +

S

M

Sig)M(

PrUV

M || Sig)M(

True/False

PubU

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(

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

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

איך פותר?

אין מגבלת אורך חד-כיווניות שלh פותרת Existential Forgery שימוש בפונקציית התמצות "מחביא" תכונות

RSAאלגבריות של בפועל חתימה והצפנה בצורה נכונה עםRSA

(PKCS#1, ANSI X9.31הינה מורכבת יותר )