הצפנה מאומתת
רקע ומוטיבציה > הרכבה גנרית

רעיון הצפנה מאומתת 'גנרית' הוא הרכבה של הצפנה סימטרית כקופסה שחורה עם מנגנון אימות. כלומר קיימת הפרדה בין האימות להצפנה כך שניתן יהיה להחליף את הצופן הסימטרי או את אלגוריתם האימות בכל שלב. בהגדרה יש להבטיח שהרכבה כזו בטוחה כנגד התקפת גלוי-נבחר שבה התוקף אינו יכול הבחין בהבדל בין הצפנה של טקסט גלוי כלשהו לפי בחירתו לבין טקסט אקראי. מסמנים זאת IND-CPA שהיא הגדרה חלשה יותר לעומת IND-CCA (קיצור של אי-יכולת הבחנה תחת התקפת מוצפן-נבחר). באופן כללי מרבית האלגוריתמים המודרניים עומדים לפחות בהגדרה החלשה.
אימות אפשר להשיג באמצעות אלגוריתם קוד אימות מסרים בטוח. במקרה כזה ההצפנה המאומתת מושגת בשני שלבים, ריצת הצפנה וריצת אימות. נניח שפונקציית ההצפנה של הצופן הסימטרי נקראת  {\text{Enc}} והפענוח  {\text{Dec}}, פונקציית יצירת תג האימות  {\text{Mac}}, פונקציית בדיקת התג  {\text{Verify}}. יהי  k=(k_{1},k_{2}) מפתח סודי המשותף לשולח והמקבל, כאשר  k_{1} משמש להצפנה ו- k_{2} לאימות. קיימות שלוש דרכים נפוצות לשילוב הצפנה עם אימות:
הצפנה ואימות: בשיטה זו ההצפנה והאימות מבוצעים בנפרד. בהינתן טקסט גלוי  m השולח מכין את  c ו- t כדלהלן:
אימות ואז הצפנה: בשיטה זו תחילה מייצרים תג אימות ואז מצפינים את המסר יחד עם תג האימות ושולחים רק את  c:
הצפנה ואז אימות: בשיטה זו המסר תחילה מוצפן ואז מכינים מהטקסט המוצפן  c תג אימות  t ושולחים את שניהם:
כל אחת מהשיטות מניבה ביטחון שונה בהתאם למודלים של ביטחון שונים. כאשר השיטה הראשונה הצפנה ואימות נפרדים, היא החלשה ביותר ואילו השיטה האחרונה אימות אחרי הצפנה, היא החזקה ביותר. הנחת הבסיס היא שהצופן הסימטרי בטוח לפחות כנגד התקפת גלוי-נבחר בקיצור (CPA) ואלגוריתם האימות אינו ניתן לזיוף לפחות תחת CMA - התקפת מסר-נבחר. הטבלה הבאה פורסמה ב-2007 על ידי Mihir Bellare מאוניברסיטת קליפורניה בסן דייגו שנחשב לאחד מהוגי הרעיון ו-Chanathip Namprempre באוניברסיטת תאמאסאט בתאילנד והיא מציגה את הקשר בין הגדרות הבטחת סודיות והבטחת אימות בהתאם למודלים שונים של ביטחון. בשתי הטבלאות הבאות "כן" מתייחס לכך שהמבנה הוכח כבטוח תחת ההנחות המתוארות. ו"לא" פירושו שקיים מבנה כזה שאינו עונה על כל הגדרות הביטחון - במקרים מסוימים (לא בכל המקרים).
| שיטה | פרטיות | פרטיות | פרטיות | שלמות | שלמות |
| --- | --- | --- | --- | --- | --- |
|  | IND-CPA | IND-CCA | NM-CPA | INT-PTXT | IND-CTXT |
| הצפנה ואימות | לא | לא | לא | כן | לא |
| אימות ואז הצפנה | כן | לא | לא | כן | לא |
| הצפנה ואז אימות | כן | לא | לא | כן | לא |
| שיטה | פרטיות | פרטיות | פרטיות | שלמות | שלמות |
| --- | --- | --- | --- | --- | --- |
|  | IND-CPA | IND-CCA | NM-CPA | INT-PTXT | IND-CTXT |
| הצפנה ואימות | לא | לא | לא | כן | לא |
| אימות ואז הצפנה | כן | לא | לא | כן | לא |
הצפנה ואז אימות: כן
שתי הטבלאות מציגות את תוצאות רמת הביטחון של שלושת המבנים המתוארים תחת מודלים שונים מהכבד אל הקל. הטבלה העליונה מניחה שקוד אימות המסרים בטוח תחת ההגדרה המקלה של 'אי-זיוף' ואילו הטבלה התחתונה מתייחסת למקרה שבו קוד האימות עמיד כנגד ההתקפה האמורה בהגדרה החזקה שלה. המושג NM-CPA מתייחס לאי-חשילות שהיא הגדרה חזקה יותר של ביטחון סמנטי.
הרכבה גנרית של הצפנה מאומתת סובלת מכמה חסרונות; יעילות נמוכה, התנפחות לא רצויה של הצופן וסיכון בטיחותי שנובע מהחשש שלמרות שכל אחד מהמרכיבים בטוח, השילוב ביניהם עלול להחדיר חולשות או פרצות בלתי ידועות. ההעדפה היא לפתח מערכת ייעודית המקפלת בתוכה הצפנה עם אימות, עם ביטחון מוכח ובעדיפות לריצה אחת מסיבות של יעילות. מסיבות של תאימות ויעילות רצוי שהאלגוריתם יקבל מפתח הצפנה יחיד, למרות שפנימית האלגוריתם עושה שימוש במפתח אימות נפרד הנגזר מהמפתח הראשי. נושא נוסף שנשקל הוא זכויות יוצרים, ארגוני תקינה ויצרנים נמנעים באופן גורף משימוש באלגוריתמים המעוגנים בפטנטים ובזכויות יוצרים.