חתימה דיגיטלית מאפשרת לחותם שהנפיק מפתח אימות ציבורי מתאים, לחתום על מסמך דיגיטלי כך שכל עוד לקורא הקובץ יש גישה למפתח האימות המשויך לחותם, הוא יכול לוודא שהמסמך אכן אותנטי ושהחתום על הקובץ אכן הנפיק אותו.חתימה דיגיטלית (לפעמים מכונה גם "חתימה אלקטרונית") היא שיטת חתימה (כמו חתימה ידנית, או שימוש בחותמת) באמצעות מידע דיגיטלי והיא ייחודית לגורם החותם ולמסמך הנחתם, כלומר בעבור חתימה על מסמך אחד אי-אפשר לזייף חתימה על מסמך אחר וכן עבור חתימה של חותם כלשהו אי-אפשר לזייף חתימה של חותם אחר. ישנן גרסות משופרות של חתימה דיגיטלית בהן נכנסים פרמטרים נוספים כמו מועד החתימה.
חתימה דיגיטלית מקבילה במובנים מסוימים לחתימה פיזית, בהיותה סימן היכר ייחודי לחותם. למשל: מקרה בו אדם חותם בחתימת ידו על גבי חוזה מכירה או השכרה. חתימת ידו משמשת גם לזיהויו וגם לסמל את התחייבותו לתוכן המסמך, כאשר אמינותה נשענת על הקושי הטכני שבזיוף או העתקת החתימה. לעומת זאת, חתימה דיגיטלית ניתן לשכפל בקלות כמו כל מידע דיגיטלי ולכן אין די בכך שתהיה ייחודית לחותם ונפרדת מהמידע ועל חתימה דיגיטלית להיות ייחודית ושונה עבור כל מסמך.
דוגמה ליצירת ייחודיות.
בחשבון מודולרי, קל יחסית להוציא שורש מודולו מספר ראשוני, אך הוצאת שורש מודולו מכפלה של שני ראשוניים דורשת את היכולת לפרק את המכפלה לגורמים (ואף שקולה אליה מבחינה חישובית), והרי פירוק מספר גדול לגורמיו הראשוניים היא בעיה קשה. עובדות אלה מציעות סכימה לחתימה דיגיטלית: החותם יבחר זוג ראשוניים גדולים, P ו-Q, ויפרסם את המכפלה שלהם N=PQ. ברצותו לחתום על הודעה X, הוא יחשב את השורש הריבועי שלה מודולו N (על ידי חישוב השורשים מודולו P ו-Q, ושילובם באמצעות משפט השאריות הסיני). השורש הוא חתימה, שאותה קל לבדוק על ידי העלאה בריבוע, וקשה לזייף.
הגדרה מתמטית.
חתימה דיגיטלית מורכבת משלושה אלגוריתמים: אלגוריתם הכנה "Gen", אלגוריתם חתימה "Sign" ואלגוריתם אימות "Verify" המוגדרים כך:
לצורך תקינות, עבור כל formula_1 ועבור כל זוג מפתחות תואם (formula_2) שהוכנו באמצעות אלגוריתם ההכנה המתואר ועבור כל מסר formula_9 צריך תמיד להתקיים:
אלגוריתם החתימה מגודר רק אם המסר formula_9 הוא באורך המתאים למשל אם הוא פונקציה של פרמטר הביטחון formula_1 אז החתימה תקפה רק אם formula_9 הוא באורך formula_22 לכל היותר. במילים אחרות סכמת החתימה אינה מתאימה כאשר המסר אינו בגודל הרצוי.
שימוש בסכימת חתימה נעשה כך שהחותם formula_23 מפעיל את אלגוריתם ההכנה formula_24 כדי לקבל את (formula_2).
החותם שומר את formula_4 בסוד ומפרסם את formula_8 באופן שיהיה אפשרי לוודא את שייכותו אליו. למשל, אפשר לפרסמו באתר אינטרנט או ברשומות ציבוריות כלשהן. כאשר formula_23 רוצה לחתום על המסמך formula_9 הוא מבצע השמה formula_30 ושולח את formula_31 ליעדם; המקבל יכול לבצע בדיקת תקפות על ידי חישוב formula_32 ובדיקה האם הערך המתקבל הוא 1. מבדיקה זו מוכיחים שני דברים. ש-formula_23 הוא המקור וכן ש-formula_9 אותנטי ולא חל בו שינוי בידי צד שלישי בזדון או שינוי בגלל תקלה בתקשורת.
במובן של תשתיות מפתח ציבורי, formula_23 יכול לבצע לפחות פעם אחת משלוח בטוח ואמין של המפתח formula_8 (למשל במפגש אישי); ברגע שהחותם הצליח להנפיק בצורה מאומתת מפתח אימות ציבורי אחד לפחות, אפשר להשתמש בו כדי לאמת מפתחות ציבוריים נוספים ובכך ליצור מעין רשת אמון.
ביטחון.
בהינתן מפתח ציבורי formula_8, אדם מוגדר כמי שזייף את החתימה אם הצליח להנפיק מסר formula_9 (שלא נחתם בעבר על ידי formula_23) וחתימה formula_6 תקפה כך שאלגוריתם האימות יחזיר 1 (שהחתימה אותנטית כאילו נעשתה על ידי השולח formula_23). כאשר לפי המודל המקובל המתקיף רשאי או מסוגל להשיג או לבקש חתימות תקפות של formula_23 על מסמכים רבים (בכמות פולינומית) לפי בחירתו. נניח שנתונה סכמת חתימה דיגיטלית formula_43, הניסוי formula_44 הבא מנסח את הגדרת הביטחון של סכמת החתימה בנוכחות המתקיף formula_45 עם פרמטר הביטחון formula_1 כדלהלן:
לאור הניסוי האמור אפשר להגדיר ביטחון של סכמת חתימה דיגיטלית נגד זיופים לפי מודל מסר נבחר אדפטיבי אם עבור כל אלגוריתם יריב formula_45 קיימת פונקציה זניחה formula_61 כך שמתקיים:
במילים אחרות, הכוונה היא שסיכוייו של הזייפן להצליח בזיוף החתימה נמוכים מערך זניח שניתן להתעלם ממנו.
שימושי חתימה דיגיטלית.
הבטחת שלמות.
חתימה דיגיטלית מסייעת במקרי צורך בהבטחת שלמות מידע דיגיטלי, כדי לוודא שלא נערכו מחדש או שונו לאחר החתימה; כל עריכה מחדש של המסמך תבטל את תקפות החתימה הדיגיטלית הקיימת. דוגמות לכך:
סוגי חתימה דיגיטלית.
מנגנוני חתימה דיגיטלית מתחלקים בין היתר לסוגים אלה (קיימים סוגים נוספים שלא תוארו בפרק):
הכנת חתימה דיגיטלית.
עקרונית אפשר להכין חתימה דיגיטלית באמצעות כל שיטת הצפנה אסימטרית, כאשר המפתח הפרטי משמש לחתימה והמפתח הציבורי משמש לאימות. מבחינה היסטורית, חתימה דיגיטלית הייתה ניתנת למימוש בצורה זו של היפוך סדר הפעולות בהצפנת מפתח ציבורי, כך שמפתח הפענוח מקביל למפתח החתימה ואילו מפתח ההצפנה מקביל למפתח האימות. במקרה של RSA זה נכון רק אם מפעילים פונקציית יתירות מתאימה, אך באופן כללי זה לא תמיד אפשרי ובמיוחד עלול להיות לא בטוח כלל.
לעיתים יש צורך לחתום על מסמך וגם להצפינו. על פניו אין הבדל בין מפתחות חתימה למפתחות ההצפנה ולכן עקרונית ניתן להשתמש באותם מפתחות גם להצפנה וגם לחתימה. אולם מקובל להפריד הפרדה מלאה בין תהליך החתימה לבין תהליך ההצפנה, כלומר להשתמש בסט מפתחות שונה, מכמה סיבות. ראשית מטעמי ביטחון, באלגוריתמים אסימטריים קיימת חולשה לשימוש כפול במפתחות הן להצפנה והן לחתימה, מה שיוצר פרצת אבטחה בתנאים מסוימים. שנית משום שלעיתים יש מגבלות (חוקיות ואחרות) על ההצפנה שאינן חלות על החתימה, כך שייתכן ולא תמיד נוכל להצפין את המסמך אולם עדיין נרצה לאמת את מקורו.
רשות מאשרת.
כדי לדעת שהחתימה הדיגיטלית היא אותנטית, יש לשייכה לבעליה בדרך בטוחה כלשהי, כגון באמצעות תעודה דיגיטלית המונפקת על ידי צד שלישי (רשות מאשרת) המוכרת כאמינה.
ביישומים מעשיים תהליך הפנייה אל הגורם המאשר הוא בדרך כלל שקוף למשתמש ומבוצע כחלק מתהליך ממוחשב. השיטה המקובלת היא התקנת "תעודת שורש" של הגורם המאשר בדפדפן המשתמש, שבאמצעותה ניתן לוודא שהחתימה של ישות כלשהי (כגון אדם או מחשב) אכן נחתמה על ידי מי שמתיימר להחזיק במפתח החתימה.
דפדפני אינטרנט פועלים על פי חתימה דיגיטלית המונפקת על ידי רשות מאשרת כדי לזהות אתרים מפוקפקים ולהתריע בפני המשתמש על סכנות אפשריות בזמן גלישה.
רשת אמון.
רשת אמון (Web of trust) היא אסטרטגיה לאימות מפתח ציבורי שננקטה לראשונה על ידי חברי מיזם PGP; ההתאמה של מפתח ציבורי לאדם מסוים אפשרית בדרך הפשוטה של הכרות אישית. כדי לעשות כן יש להכיר את האדם, לפוגשו ולזהותו באמצעי זיהוי מקובלים (למשל תעודת זהות). לאחר שזוהה האדם בתור האישיות שהוא טוען לה, ניתן לרשום את המפתח הציבורי השייך לו. אולם, בעולם האמיתי דרך זו אינה מעשית כי ארגונים מסחריים רבים נדרשים לעיתים קרובות לתקשר עם עמיתיהם או לקוחותיהם בצד האחר של העולם ולכן הפתרון הוא רשת אמון במסגרתה מקבל המסמך יכול לסמוך על אמינות המפתח הציבורי של השולח אם ואך ורק אם קיימת שרשרת אנשים אשר וידאו זה את מפתחו של זה שבראשה עומדת ישות בעלת אמינות גבוהה. החוליה האחרונה בשרשרת - מקבל המסמך, יכול ליהנות מאמינות המפתח הציבורי של השולח על סמך אמינות השרשרת כולה.
מניעת הכחשה וחותם-זמן.
מניעת הכחשה (Non-repudiation) מסייעת במניעה מגורם כלשהי להכחיש או לכפור בהתחייבות שנתנה או פעולה שביצעה.
אדם עלול לאשר רכישת מוצר ולאחר מכן להכחיש כי עשה זאת. בדרך כלל כאשר מתעוררים חילוקי דעות מסוג זה, נדרשת מעורבות צד-שלישי המשמש כבורר בין הצדדים. חתימה דיגיטלית רגילה אינה מספקת להפרכת טענת בעל החתימה, מאחר שבעל החתימה עלול לטעון כי חתימתו נגנבה. למשל, הוא עלול לחשוף במכוון את מפתח החתימה מיד לאחר ביצוע העסקה ולטעון כי נעשה בה שימוש בלתי הולם מצד גורם זדוני כלשהו בלא ידיעתו. יש צורך להוכיח כי בנקודת הזמן שבה בוצעה העסקה או נחתם המסמך הדבר נעשה מידיעתו ומרצונו של בעל החתימה האותנטי. מניעת התכחשות פותרת בעיה זו.
מניעת התכחשות בחתימה דיגיטלית אפשרית בכמה דרכים:
אחסון וגיבוי.
מקובל לאחסן מפתח חתימה דיגיטלית לא במחשב אלא בהתקן חומרה מאובטח שתוכנן להיות עמיד בפני ניסיונות פריצה תומך PKI דוגמת מכשירי HSM.
בניגוד למפתח הצפנה, אותו יש לגבות באופן מאובטח כדי לאפשר שחזור מידע מוצפן אם מפתח ההצפנה המקורי אינו זמין, אין לגבות מפתח חתימה בשום אופן שהרי גיבוי מעצם הגדרתו מרמז על האפשרות שלמישהו אחר תהיה גישה אליו.
חקיקה.
במדינות אחדות קיימות הגבלות ייצוא של כלי הצפנה ואילו באחרות קיימות הגבלות חוקיות על העיסוק בהצפנה בכלל. יש להבחין בין סוגי חתימה דיגיטלית המערבות שימוש בהצפנה כיוון שלהן השפעה ישירה על המסמך החתום (סוגים אלו בדרך כלל מחייבים אישור חוקי למימושן) לבין כאלו שאין להם השפעה ישירה על המסמך (כלומר המסמך נותר קריא) כך שאינן מוגדרות בחוק כהצפנה ועל כן לא חלות עליהן מגבלות כלשהן.
בחוק הישראלי.