הצפנה מאומתת דטרמיניסטית עם נתונים משויכים (AEAD דטרמיני)

הפרימיטיב Deterministic Authenticated Encryption with Associated Data (הצפנה דטרמיניסטית מאומתת עם נתונים משויכים, Deterministic AEAD) מספק הצפנה עם מאפיין דטרמיניסטי: הצפנה של אותם נתונים תמיד מניבה את אותו טקסט מוצפן. הצפנה מהסוג הזה שימושית לעטיפת מפתחות או לתוכניות מסוימות לחיפוש נתונים מוצפנים (מידע נוסף מופיע בRFC 5297, Section 1.3). בגלל המאפיין הדטרמיניסטי שלו, יישומים של הפרימיטיב הזה עלולים לגרום לאובדן סודיות, כי תוקף צריך רק לגלות את הטקסט המוצפן של הודעה מסוימת כדי לזהות מקרים אחרים של ההודעה הזו.

ל-AEAD דטרמיניסטי יש את המאפיינים הבאים:

  • Secrecy: לא ידוע דבר על הטקסט הגלוי, מלבד האורך שלו והשוויון של טקסטים גלויים שחוזרים על עצמם.
  • אותנטיות: אי אפשר לשנות את הטקסט הרגיל המוצפן שמהווה את הבסיס לטקסט המוצפן בלי שהשינוי יתגלה.
  • סימטרי: הצפנת הטקסט הגלוי ופענוח הטקסט המוצפן מתבצעים באמצעות אותו מפתח.
  • דטרמיניסטי: כל עוד המפתח הראשי לא משתנה, הצפנה של טקסט פשוט פעמיים עם אותם פרמטרים מניבה את אותו טקסט מוצפן.

נתונים משויכים

אפשר להשתמש ב-AEAD דטרמיניסטי כדי לקשור טקסט מוצפן לנתונים משויכים ספציפיים. נניח שיש לכם מסד נתונים עם השדות user-id ו-encrypted-medical-history. בתרחיש הזה, אפשר להשתמש ב-user-id כנתונים משויכים כשמצפינים את encrypted-medical-history. כך לא תהיה אפשרות לתוקף להעביר היסטוריה רפואית ממשתמש אחד למשתמש אחר.

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

בחירת סוג המפתח

אנחנו ממליצים להשתמש בסוג המפתח AES256_SIV בכל תרחישי השימוש.

התחייבויות אבטחה

  • חוזק אימות של 80 ביט לפחות.
  • הטקסט הרגיל והנתונים המשויכים יכולים להיות באורך שרירותי (בטווח של 0 עד 232 בייטים).
  • רמת אבטחה של 128 ביט מפני מתקפות לשחזור מפתחות, וגם מפני מתקפות של משתמשים רבים עם עד 232 מפתחות – כלומר, אם גורם עוין משיג 232 טקסטים מוצפנים של אותה הודעה שהוצפנה באמצעות 232 מפתחות, הוא צריך לבצע 2128 חישובים כדי להשיג מפתח יחיד.
  • היכולת להצפין בבטחה 238 הודעות, בתנאי שאורך כל אחת מהן קטן מ-1MB.

תרחיש שימוש לדוגמה

אני רוצה להצפין נתונים באופן דטרמיניסטי ולקשור טקסט מוצפן להקשר שלו.