חתימות דיגיטליות ופונקציות
Hash
האופן
הבסיסי שבו חתימות דיגיטליות נוצרות הוא: במקום להצפין מידע בעזרת המפתח
הציבורי של מישהו אחר, אתה מצפין אותו בעזרת המפתח הפרטי שלך. אם המידע ניתן
לפענוח עם המפתח הציבורי שלך, אזי בהכרח נוצר על-ידך.
למערכת
הנ"ל יש מספר בעיות. היא איטית, ויוצרת כמות עצומה של מידע – לפחות
כפליים מגודל המידע המקורי. שיפור על התכנון הנ"ל הוא ההוספה של פונקציית
הש חד-כיוונית לתהליך. פונקציית הש חד-כיוונית לוקחת קלט באורך משתנה
– במקרה זה, מסר בגודל כלשהו, אפילו אלפי או מיליוני ביטים – ומפיקה פלט
בגודל קבוע; למשל, 160 ביטים. פונקציית ההש מבטיחה כי אם המידע השתנה בצורה
כלשהי – אפילו בביט אחד בלבד – ערך הפלט הנוצר שונה לחלוטין.
PGP
משתמש בפונקציית הש חזקה מבחינה הצפנתית על הטקסט הפשוט אשר המשתמש חותם
עליו. זה יוצר ערך מידע בעל גודל קבוע הנקרא תמצית מסר. (שוב, כל
שינוי במידע מוביל לתמצית שונה לחלוטין.)
PGP
משתמש אז בתמצית ובמפתח הפרטי כדי ליצור את "החתימה". PGP שולח את החתימה והטקסט הפשוט יחדיו. בעת קבלת המסר, המקבל
משתמש ב- PGP כדי לחשב מחדש את התמצית,
וכך מאמת את החתימה. PGP יכול להצפין את הטקסט הפשוט או לא; חתימה על טקסט פשוט
שימושית אם חלק מהמקבלים לא מעונינים או לא מסוגלים לאמת את המקור.
כל
עוד משתמשים בפונקציית הש בטוחה, אין כל דרך להעביר חתימה של מישהו ממסמך
אחד ולהצמידה לאחר, או לשנות מסמך חתום בכל צורה. השינוי הקל ביותר במסמך
חתום יגרום לתהליך אימות החתימה הדיגיטלית להיכשל.
חתימות
דיגיטליות משחקות תפקיד חשוב באימות ומתן תוקף למפתחות של משתמשי PGP אחרים.
|