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

קובץ AEAD דטרמיני מספק הצפנה עם מאפיין דטרמיני: הצפנה של אותם נתונים תמיד מניבה את אותו מידע מוצפן (ciphertext). סוג ההצפנה הזה שימושי לאריזת מפתחות או לסכמות מסוימות לחיפוש בנתונים מוצפנים (מידע נוסף זמין ב-RFC 5297, סעיף 1.3). בגלל המאפיין הדטרמיניסטי שלו, הטמעות של המונח הזה עלולות לגרום לאובדן סודיות, כי תוקף צריך לגלות את המידע המוצפן של הודעה נתונה רק כדי לזהות מופעים אחרים של ההודעה.

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

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

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

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

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

מומלץ להשתמש בסוג מפתח של AES256_SIV בכל תרחישי השימוש.

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

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

תרחיש לדוגמה

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