הצפנה ברמת העמודה באמצעות Cloud KMS

אתם יכולים להשתמש ב-Cloud Key Management Service ‏ (Cloud KMS) כדי להצפין את המפתחות שמשמשים להצפנת הערכים בטבלאות BigQuery. אתם יכולים להשתמש בפונקציות ההצפנה של AEAD עם ערכות מפתחות של Cloud KMS או עם ערכות מפתחות ארוזות כדי לספק שכבת הגנה שנייה ברמת העמודה.

מבוא

כדי לספק שכבת הגנה נוספת, Cloud KMS מצפין את המפתח להצפנת הנתונים (DEK) באמצעות מפתח שני להצפנת מפתחות (KEK). ב-BigQuery, הפניה לקבוצת מפתחות מוצפנת במקום לקבוצת מפתחות בטקסט גלוי עוזרת לצמצם את הסיכון לחשיפת מפתחות. ה-KEK הוא קבוצת מפתחות להצפנה סימטרית שמאוחסנת בצורה מאובטחת ב-Cloud KMS ומנוהלת באמצעות תפקידים והרשאות בניהול זהויות והרשאות גישה (IAM).

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

בזמן הביצוע של השאילתה, אתם מספקים את נתיב המשאב של Cloud KMS של KEK ואת הטקסט המוצפן מ-DEK הארוז. ‫BigQuery קורא ל-Cloud KMS כדי לבטל את העטיפה של ה-DEK, ואז משתמש במפתח הזה כדי לפענח את הנתונים בשאילתה. הגרסה הלא עטופה של ה-DEK מאוחסנת בזיכרון רק למשך השאילתה, ואז היא מושמדת.

אם אתם משתמשים ב-Cloud KMS באזור שבו נתמך Cloud External Key Manager, אתם יכולים להשתמש במפתחות שמבוססים על Cloud EKM ב-Cloud KMS.

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

תרחישים לדוגמה לשימוש בהצפנה באמצעות מפתחות Cloud KMS:

  • נתונים מוצפנים חיצוניים שצריך לאחסן ב-BigQuery בלי לאחסן את קבוצת המפתחות בטקסט לא מוצפן. אחר כך אפשר לייצא את הנתונים מהטבלה או לפענח אותם באמצעות שאילתת SQL.
  • "בקרת גישה כפולה" לנתונים מוצפנים ב-BigQuery. כדי שמשתמש יוכל לקרוא נתונים בטקסט לא מוצפן, צריך לתת לו הרשאה לטבלה ולמפתח ההצפנה.
טבלת הרשאות משתמשים
הרשאה בטבלה אין הרשאה בטבלה
הרשאות במפתח קריאה ופענוח של נתונים מוצפנים. אין גישה.
אין הרשאות במפתח קריאת נתונים מוצפנים. אין גישה.

אם למשתמש יש הרשאה לגשת למפתח KMS וגישה לערכת המפתחות העטופה, פונקציות SQL יכולות לבטל את העטיפה של ערכת המפתחות ולפענח את הטקסט המוצפן. משתמשים יכולים גם להשתמש ב-API בארכיטקטורת REST או ב-CLI של Cloud KMS כדי לבטל את העטיפה של קבוצת המפתחות.
בדוגמה הבאה של שאילתה נעשה שימוש בפונקציות SQL של KMS כדי לפענח טקסט מוצפן לא דטרמיניסטי:

SELECT
  AEAD.DECRYPT_STRING(
    KEYS.KEYSET_CHAIN(@kms_resource_name, @first_level_keyset),
    ciphertext,
    additional_authenticated_data)
FROM
  ciphertext_table
WHERE
  ...

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

נניח שאתם מטמיעים את התכונה במקרה שבו מיקודים נחשבים למידע רגיש. אפשר להוסיף נתונים של מיקוד לטבלה ב-BigQuery באמצעות פונקציית ההצפנה AEAD, וכך להצפין את העמודה Zipcode. בדוגמה הזו, אנחנו משתמשים בפונקציה AEAD.ENCRYPT עם פונקציית ניהול של קבוצת מפתחות עטופה. הפונקציה KEYS.KEYSET_CHAIN מפענחת את מפתח ההצפנה הדיגיטלי באמצעות ה-KEK, והפונקציה AEAD.ENCRYPT מעבירה את המידע ל-KMS.

שרשרת ערכות המפתחות להצפנה ולפענוח מבטיחה שהמפתח להצפנת נתונים (DEK) מוצפן או ארוז באמצעות KEK ומועבר עם ה-KEK הזה. ה-DEK העטוף מפוענח או שהאריזה שלו נפתחת בתוך פונקציית ה-SQL, ואז הוא משמש להצפנה או לפענוח של נתונים.

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

תמונה

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

תמונה

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

התחביר הנתמך לשימוש בפונקציות לא דטרמיניסטיות כולל את האפשרויות הבאות:

AEAD.ENCRYPT(
  KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset),
  plaintext,
  additional_authenticated_data)
AEAD.DECRYPT_STRING(
  KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset),
  ciphertext,
  additional_authenticated_data)
AEAD.DECRYPT_BYTES(
  KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset),
  ciphertext,
  additional_authenticated_data)

AEAD.DECRYPT_BYTES, AEAD.ENCRYPT, AEAD.DECRYPT_STRING, וKEYS.KEYSET_CHAIN תחביר הפונקציות.

תחביר של פונקציה דטרמיניסטית

התחביר הנתמך לשימוש בפונקציות דטרמיניסטיות כולל את האפשרויות הבאות:

DETERMINISTIC_ENCRYPT(
  KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset),
  plaintext,
  additional_data)
DETERMINISTIC_DECRYPT_STRING(
  KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset),
  ciphertext,
  additional_data)
DETERMINISTIC_DECRYPT_BYTES(
  KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset),
  ciphertext,
  additional_data)

DETERMINISTIC_DECRYPT_BYTES, DETERMINISTIC_ENCRYPT, DETERMINISTIC_DECRYPT_STRING, וKEYS.KEYSET_CHAIN תחביר הפונקציות.

תפקידים והרשאות

רשימת התפקידים ב-Cloud KMS מופיעה במאמר הרשאות ותפקידים ב-Cloud KMS.

מגבלות

ההצפנה באמצעות Cloud KMS כפופה למגבלות ולהגבלות הבאות:

  • המפתחות של Cloud KMS מוגבלים לאותו אזור או מספר אזורים כמו השאילתה. אסור להשתמש במפתחות גלובליים של Cloud KMS מסיבות שקשורות למהימנות.

  • אי אפשר לסובב קבוצת מקשים שמוקפת ב-KEYS.ROTATE_KEYSET באמצעות הפונקציה.

  • הפרמטרים הקבועים בשאילתת BigQuery גלויים למשתמשים בתוכנית השאילתה לאבחון. הגורם הזה יכול להשפיע על הפרמטרים kms_resource_name ו-first_level_keyset של הפונקציה KEYSET_CHAIN. המפתחות אף פעם לא נחשפים בטקסט לא מוצפן, ונדרשת הרשאה למפתח Cloud KMS כדי לבצע פענוח של קבוצת המפתחות העטופה. הגישה הזו מבטיחה שהמפתחות לא ייחשפו דרך תוכנית השאילתות של האבחון, אלא אם למשתמש יש הרשאה לפענח את קבוצת המפתחות.

  • כשמשתמשים בהצפנה ברמת העמודה עם סיווגי אבטחה מבוססי-סוג, חלות המגבלות הבאות:

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

    • אבטחה ברמת השורה: משתמשים יכולים לפענח נתונים רק בשורות שיש להם הרשאה לגשת אליהן.

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

לפני שמתחילים

כדי לעבוד עם מפתחות Cloud KMS, קבוצות מפתחות, טבלאות מוצפנות, פונקציות דטרמיניסטיות ופונקציות לא דטרמיניסטיות, צריך לבצע את הפעולות הבאות אם עדיין לא ביצעתם אותן:

  1. יוצרים Google Cloud פרויקט.

  2. יוצרים מערך נתונים ב-BigQuery.

  3. יצירת אוסף מפתחות של Cloud KMS.

  4. יוצרים מפתח Cloud KMS עבור עמוד מוצפן עם רמת ההגנה של תוכנה או מודול אבטחה לחומרה (HSM).

  5. הענקת הרשאות למשתמשים לעבודה עם מפתחות, הצפנה ופענוח של Cloud KMS.

חשוב לשים לב למושגים הבאים, כי הם מוזכרים בקטעים הבאים:

  • PROJECT_ID: השם של הפרויקט ב-Google Cloud.

  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery.

  • LOCATION_ID: המיקום של מערך הנתונים ב-BigQuery.

  • TABLE_NAME: השם של הטבלה ב-BigQuery.

  • KEY_RING_ID: השם של אוסף המפתחות ב-Cloud KMS.

  • KEY_ID: השם של מפתח Cloud KMS.

  • KMS_KEY: מפתח Cloud KMS‏ (KEK) בפורמט הזה:

    'gcp-kms://projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID'

    הנה דוגמה למפתח Cloud KMS:

    'gcp-kms://projects/myProject/locations/us/keyRings/myKeyRing/cryptoKeys/myKeyName'
    
  • KMS_KEY_SHORT: בדומה ל-KMS_KEY, אבל בפורמט הזה:

    projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID
  • KEYSET_DECODED: קבוצת מפתחות מפוענחת כרצף BYTES. הפלט נראה דומה לזה של קבוצת מפתחות מוצפנת מפוענחת.

    למרות שפונקציות של ערכות מקשים מחזירות ערכות מקשים כבייטים, הפלט של המשתמש מוצג כמחרוזת מקודדת. כדי להמיר קבוצת מפתחות מקודדת לקבוצת מפתחות מפוענחת, אפשר לעיין במאמר בנושא פענוח של קבוצת מפתחות של Cloud KMS.

  • KEYSET_ENCODED: קבוצת מפתחות מקודדת בתור STRING. הפלט דומה לזה של קבוצת מפתחות עטופה ומקודדת.

    כדי להמיר קבוצת מפתחות מקודדת לקבוצת מפתחות מפוענחת, ראו פענוח של קבוצת מפתחות של Cloud KMS

  • WRAPPED_KEYSET_DECODED: קבוצת מפתחות מפוענחת ועטופה כרצף BYTES. דוגמה לפלט:

    b'\x0a$\x00\xa6\xee\x12Y\x8d|l"\xf7\xfa\xc6\xeafM\xdeefy\xe9\x7f\xf2z\xb3M\
    xf6"\xd0\xe0Le\xa8\x8e\x0fR\xed\x12\xb7\x01\x00\xf0\xa80\xbd\xc1\x07Z\\
    \xd0L<\x80A0\x9ae\xfd(9\x1e\xfa\xc8\x93\xc7\xe8\...'
    

    למרות שפונקציות של קבוצות מקשים מוצפנות מחזירות קבוצות מקשים מוצפנות כבייטים, הפלט שמוצג למשתמש הוא מחרוזת מקודדת. כדי להמיר קבוצת מפתחות עטופה ומקודדת לקבוצת מפתחות עטופה ומפוענחת, אפשר לעיין במאמר בנושא פענוח של קבוצת מפתחות של Cloud KMS.

  • WRAPPED_KEYSET_ENCODED: קבוצת מפתחות עטופה ומקודדת כ-STRING. דוגמה לפלט:

    'CiQApu4SWTozQ7lNwITxpEvGlo5sT2rv1tyuSv3UAMtoTq/lhDwStwEA8KgwvX7CpVVzhWWMkRw
    WZNr3pf8uBIlzHeunCy8ZsQ6CofQYFpiBRBB6k/QqATbiFV+3opnDk/6dBL/S8OO1WoDC+DdD9
    uzEFwqt5D20lTXCkGWFv1...'
    

    כדי להמיר קבוצת מפתחות עטופה ומקודדת לקבוצת מפתחות עטופה ומפוענחת, אפשר לעיין במאמר בנושא פענוח של קבוצת מפתחות של Cloud KMS.

ניהול מפתחות

בקטעים הבאים מפורטות משימות נפוצות שאפשר לבצע באמצעות מפתחות Cloud KMS.

יצירת קבוצת מפתחות

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

יצירת קבוצת מפתחות גולמית

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

SELECT KEYS.NEW_KEYSET('DETERMINISTIC_AEAD_AES_SIV_CMAC_256') AS raw_keyset

יצירת קבוצת מפתחות עטופה

מריצים את השאילתה הבאה כדי ליצור קבוצת מפתחות עטופה של Cloud KMS עם מפתח מסוג DETERMINISTIC_AEAD_AES_SIV_CMAC_256.

SELECT KEYS.NEW_WRAPPED_KEYSET(
  KMS_KEY,
  'DETERMINISTIC_AEAD_AES_SIV_CMAC_256')

פענוח של קבוצת מקשים

למרות שפונקציות SQL שמחזירות קבוצות מפתחות יוצרות את קבוצות המפתחות בפורמט BYTES, התוצאה שמוצגת למשתמש מקודדת ומוצגת בפורמט STRING. אם רוצים להמיר את המחרוזת המקודדת הזו לרצף של בייטים מפוענחים שאפשר להשתמש בהם כפונקציות מילוליות להצפנת מפתחות, אפשר להשתמש בשאילתה הבאה.

פענוח של קבוצת מפתחות מוצפנת

מריצים את השאילתה הבאה כדי לפענח קבוצת מפתחות שעברה אריזה ב-Cloud KMS.

SELECT FORMAT('%T', FROM_BASE64(WRAPPED_KEYSET_ENCODED'))

פענוח של קבוצת מפתחות גולמית

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

SELECT FORMAT('%T', FROM_BASE64(KEYSET_ENCODED'))

שינוי של קבוצת מקשים מוצפנת

מריצים את השאילתה הבאה כדי לארוז מחדש קבוצת מפתחות ארוזה של Cloud KMS באמצעות מפתח חדש של Cloud KMS. ‫KMS_KEY_CURRENT מייצג את KMS_KEY החדש שמשמש להצפנת קבוצת המפתחות. ‫KMS_KEY_NEW מייצג את KMS_KEY החדש שמשמש להצפנת קבוצת המפתחות.

SELECT KEYS.REWRAP_KEYSET(
  KMS_KEY_CURRENT,
  KMS_KEY_NEW,
  WRAPPED_KEYSET_DECODED)

ביצוע רוטציה של קבוצת מפתחות מוצפנת

מריצים את השאילתה הבאה כדי להחליף קבוצת מפתחות ארוזה של Cloud KMS עם מפתח מסוג DETERMINISTIC_AEAD_AES_SIV_CMAC_256.

SELECT KEYS.ROTATE_WRAPPED_KEYSET(
  KMS_KEY,
  WRAPPED_KEYSET_DECODED,
  'DETERMINISTIC_AEAD_AES_SIV_CMAC_256')

יצירת קבוצת מפתחות גולמית מקבוצת מפתחות עטופה

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

  1. יצירת קבוצת מפתחות מוצפנת.

  2. בכלי שורת הפקודה של BigQuery, מזינים את הפקודות הבאות כדי לשמור קבוצת מפתחות מוצפנת בקובץ בשם keyset_to_unwrap, לפענח את קבוצת המפתחות המוצפנת וליצור את הפלט בפורמט KEYSET_DECODED:

    echo WRAPPED_KEYSET_ENCODED | base64 -d > /tmp/decoded_wrapped_key
    gcloud kms decrypt \
    --ciphertext-file=/tmp/decoded_wrapped_key \
    --key=KMS_KEY_SHORT \
    --plaintext-file=/tmp/keyset_to_unwrap.dec \
    --project=PROJECT_ID
    od -An --format=o1 /tmp/keyset_to_unwrap.dec | tr ' ' '\'

יצירת חבילת מפתחות ממערכת מפתחות גולמית

חלק מפונקציות ההצפנה דורשות ערכת מפתחות עטופה של Cloud KMS. כדי להצפין קבוצת מפתחות גולמית וליצור קבוצת מפתחות עטופה, מבצעים את השלבים הבאים.

  1. יצירת קבוצת מפתחות גולמית

  2. בכלי שורת הפקודה של BigQuery, מזינים את הפקודות הבאות כדי לשמור קבוצת מפתחות גולמית בקובץ בשם keyset_to_wrap, להצפין את קבוצת המפתחות הגולמית וליצור את הפלט בפורמט WRAPPED_KEYSET_DECODED:

    echo KEYSET_ENCODED | base64 -d > /tmp/decoded_key
    gcloud kms encrypt \
    --plaintext-file=/tmp/decoded_key \
    --key=KMS_KEY_SHORT \
    --ciphertext-file=/tmp/keyset_to_wrap.dec \
    --project=PROJECT_ID
    od -An --format=o1 /tmp/keyset_to_wrap.dec | tr ' ' '\'

יצירת מפתח עטוף לפונקציית DLP

כדי להשתמש בפונקציות DLP, צריך מפתח קריפטוגרפי ואז להשתמש במפתח הזה כדי לקבל מפתח עטוף.

  1. כדי ליצור מפתח קריפטוגרפי חדש, מריצים את הפקודה הבאה בשורת הפקודה. גודל המפתח יכול להיות 16, 24 או 32 בייטים. בדוגמה הבאה נעשה שימוש במפתח של 16 בייט:

    openssl rand 16 > rand.key.16.bin
    
  2. עוטפים את המפתח שנוצר באורך 16 בייט באמצעות מפתח KMS. מקרה לדוגמה:

    KEYRING=projects/myproject/locations/us/keyRings/kms-test
    KEY=projects/myproject/locations/us/keyRings/kms-test/cryptoKeys/test-Kek
    PROJECT="myproject"
    
    gcloud kms encrypt --project $PROJECT --location us --keyring $KEYRING --key $KEY --plaintext-file ./rand.key.16.bin --ciphertext-file ./rand.key.16.wrapped
    
  3. עכשיו אפשר לקבל את BYTES הערך המילולי של המפתח העטוף או את פורמט base64 של המפתח העטוף.

    • מילולית של בייטים

      username:~/tmp$ od -b ./rand.key.16.wrapped | cut -d ' ' -f 2- | head -n -1 | sed  -e 's/^/ /' | tr ' ' '\'
      

      הפלט אמור להיראות כך:

      \012\044\000\325\155\264\153\246\071\172\130\372\305\103\047\342\356\061\077\014\030\126\147\041\126\150\012\036\020\202\215\044\267\310\331\014\116\233\022\071\000\363\344\230\067\274\007\340\273\016\212\151\226\064\200\377\303\207\103\147\052\267\035\350\004\147\365\251\271\133\062\251\246\152\177\017\005\270\044\141\211\116\337\043\035\263\122\340\110\333\266\220\377\247\204\215\233
      
    • פורמט Base64

      username:~/tmp$ base64 ./rand.key.16.wrapped
      

      הפלט אמור להיראות כך:

      CiQA1W20a6Y5elj6xUMn4u4xPwwYVmchVmgKHhCCjSS3yNkMTpsSOQDz5Jg3vAfguw6KaZY0gP/Dh0NnKrcd6ARn9am5WzKppmp/DwW4JGGJTt8jHbNS4EjbtpD/p4SNmw==
      

קבלת מספר המפתחות בערכת מפתחות

מריצים את השאילתה הבאה כדי לקבל את מספר המפתחות ב-keyset גולמי.

  1. אם אתם עובדים עם קבוצת מפתחות מוצפנת, קודם צריך ליצור קבוצת מפתחות גולמית.

  2. מריצים את השאילתה הזו עם קבוצת המפתחות הגולמית:

    SELECT KEYS.KEYSET_LENGTH(KEYSET_DECODED) as key_count;

קבלת ייצוג JSON של קבוצת מפתחות

מריצים את השאילתה הבאה כדי לראות ייצוג JSON של קבוצת מפתחות גולמית.

  1. אם אתם עובדים עם קבוצת מפתחות מוצפנת, קודם צריך ליצור קבוצת מפתחות גולמית.

  2. מריצים את השאילתה הזו עם קבוצת המפתחות הגולמית:

    SELECT KEYS.KEYSET_TO_JSON(KEYSET_DECODED);

הצפנה ופענוח

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

הצפנה דטרמיניסטית של עמודה באמצעות קבוצת מפתחות עטופה

מריצים את השאילתה הבאה כדי ליצור טבלה ולאחסן ערכת מפתחות שעברה אריזה ב-Cloud KMS עם הצפנה דטרמיניסטית בעמודה שנקראת encrypted_content.

  1. יצירת קבוצת מפתחות מוצפנת.

  2. הצפנה של עמודה באמצעות קבוצת המפתחות העטופה.

    CREATE OR REPLACE TABLE DATASET_NAME.TABLE_NAME AS
      SELECT DETERMINISTIC_ENCRYPT(
        KEYS.KEYSET_CHAIN(KMS_KEY, WRAPPED_KEYSET_DECODED),
        'plaintext',
        '') AS encrypted_content

פענוח דטרמיניסטי של עמודה עם קבוצת מפתחות מוצפנת

מריצים את השאילתה הבאה כדי לפענח באופן דטרמיניסטי עמודה שמכילה תוכן מוצפן, באמצעות ערכת מפתחות עטופה של Cloud KMS. השאילתה הזו מניחה שאתם מפנים לטבלה עם עמודה בשם encrypted_content.

SELECT DETERMINISTIC_DECRYPT_STRING(
  KEYS.KEYSET_CHAIN(KMS_KEY, WRAPPED_KEYSET_DECODED),
  encrypted_content,
  '')
FROM DATASET_NAME.TABLE_NAME

הצפנה לא דטרמיניסטית של עמודה באמצעות קבוצת מפתחות עטופה

אפשר לעיין במאמר בנושא הצפנה דטרמיניסטית של עמודה באמצעות קבוצת מפתחות עטופה, אבל להחליף את DETERMINISTIC_ENCRYPT ב-AEAD.ENCRYPT. חשוב לוודא שקבוצת המפתחות היא מסוג AEAD_AES_GCM_256.

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

אפשר לעיין במאמר בנושא פענוח דטרמיניסטי של עמודה באמצעות קבוצת מפתחות מוצפנת, אבל להחליף את DETERMINISTIC_DECRYPT_STRING ב-AEAD.DECRYPT_STRING. חשוב לוודא שקבוצת המפתחות היא מסוג AEAD_AES_GCM_256.

המאמרים הבאים