מנגנון לאריזת מפתחות (KEM) הוא תהליך קריפטוגרפי שמשמש ליצירת סוד משותף בין שני צדדים בערוץ לא מהימן. מנגנון של אנקפסולציה של מפתח כולל שלושה אלגוריתמים עיקריים:
- יצירת מפתח: נוצר זוג מפתחות שכולל מפתח ציבורי ומפתח פרטי.
- Encapsulation: המפתח הציבורי משמש ליצירת סוד לשימוש עם טוקן צרכן וטקסט מוצפן תואם.
- הסרת הכיסוי: המפתח הפרטי משמש לשחזור הסוד המשותף מהטקסט המוצפן.
מנגנוני אריזת מפתחות הם אבן בניין בסיסית לפרוטוקולים של חילופי מפתחות ולהצפנה היברידית של מפתחות ציבוריים (HPKE).
תהליך העבודה של אנקפסולציה ודקפסולציה
בקטע הבא מתואר התהליך של שימוש בזוג מפתחות KEM כדי לבצע אנקפסולציה ודקפסולציה של נתונים. שני המשתתפים בתהליך העבודה הזה הם השולח והמקבל. השולח יוצר מידע מוצפן (ciphertext) וסוד לשימוש עם טוקן צרכן באמצעות המפתח הציבורי של הנמען, ואז הנמען מפענח את המידע המוצפן (ciphertext) באמצעות המפתח הפרטי שלו כדי לאחזר את סוד לשימוש עם טוקן צרכן. רק מי שמכיר את המפתח הפרטי יכול לבטל את האנקפסולציה של מידע מוצפן (ciphertext) כדי לאחזר את סוד לשימוש עם טוקן צרכן המקורי.
השולח מאחזר את המפתח הציבורי של הנמען.
השולח משתמש במפתח הציבורי כדי לבצע את שלב האנקפסולציה, שיוצר סוד לשימוש עם טוקן צרכן וטקסט מוצפן תואם.
השולח שולח את הטקסט המוצפן לנמען.
הנמען משתמש במפתח הפרטי שלו כדי לבטל את האנקפסולציה של המידע המוצפן. עכשיו לנמען ולשולח יש סוד משותף זהה.
מנגנוני הצפנה של מפתח פוסט-קוונטי (PQ-KEM)
למחשבים קוונטיים יש פוטנציאל לפענוח חומר מוצפן באמצעות אלגוריתמים קלאסיים להצפנה, כמו אלגוריתמי RSA ו-ECDSA שנמצאים בשימוש נרחב. כך חומר מוצפן כזה יכול להיות פגיע למתקפות מסוג 'איסוף עכשיו, פענוח אחר כך'. במתקפות כאלה, התוקפים אוספים נתונים מוצפנים מהיום שמוצפנים באמצעות אלגוריתמים קלאסיים להצפנה, ומאחסנים אותם במטרה לפענח אותם בהמשך, אחרי שמחשבים קוונטיים חזקים יהיו זמינים. מנגנוני PQ-KEM נועדו להיות עמידים בפני מתקפות קוונטיות, כדי להבטיח שנתונים שמוצפנים באמצעותם היום יישארו מאובטחים גם בעידן הקוונטי, וכדי למנוע פענוח עתידי של מידע שנאסף היום.
שירות Cloud Key Management תומך ב-ML-KEM-768 וב-ML-KEM-1024, שעברו סטנדרטיזציה על ידי NIST ב-FIPS-203, וב-X-Wing, שהוא KEM היברידי שמשלב בין ML-KEM-768 לבין X25519. האלגוריתמים האלה כוללים את ערכי הגודל הבאים (בבייטים):
| אלגוריתם | מפתח ציבורי | מידע מוצפן (ciphertext) | סוד משותף |
|---|---|---|---|
| ML_KEM_768 | 1184 | 1088 | 32 |
| ML_KEM_1024 | 1568 | 1568 | 32 |
| KEM_XWING | 1216 | 1120 | 32 |
יכולות KEM ב-Cloud KMS
Cloud KMS מספק את היכולות הבאות שקשורות למנגנוני הצפנה של מפתחות:
יצירת מפתח KEM עם מטרת המפתח
KEY_ENCAPSULATIONואלגוריתם לאריזת מפתח.שליפת המפתח הציבורי של מפתח KEM.
כדי לבצע אנקפסולציה באמצעות מפתחות Cloud KMS, צריך להשתמש בערכות SDK ובכלים שזמינים לציבור עם המפתח הציבורי. Cloud KMS לא מספק יכולות של אנקפסולציה.