הצפנת מפתחות אסימטרית: מערכת קריפטוגרפית שמשתמשת במפתחות מותאמים – ציבוריים ופרטיים – כדי להצפין נתונים ולפענח אותם. מפתחות ציבוריים משמשים להצפנת נתונים ועשויים להיות משותפים. מפתחות פרטיים משמשים לפענוח הנתונים, ורק הבעלים מכירים אותם.
Ciphertext: התוצאה של הצפנה המבוצעת בטקסט ללא הצפנה באמצעות אלגוריתם. אי אפשר להבין את הטקסט המוצפן עד להמרה בחזרה לטקסט ללא הצפנה באמצעות מפתח.
עקביות: המשמעות היא ש-Tink מתנהג "אותו הדבר" בכל שפות התכנות. לדוגמה, Tink מספקת עקביות הערכה, כך שעבור קבוצת מפתחות נתונה, אם היצירה הפרימיטיבית מצליחה בשתי שפות, הפרמיטיבים יפעלו באותו אופן.
מפתח: פרט מידע (למשל, מחרוזת) שנדרש כדי להצפין את הנתונים או לפענח אותם. במאמר אובייקטי מפתח מוסבר איך הם מוצגים.
כינוי לערכת המפתחות ולערכת המפתחות: ב-Tink נעשה שימוש בערכות מפתחות לניהול מפתחות. קבוצת מפתחות היא למעשה קבוצה של מפתחות שמאפשרים רוטציית מפתחות. מאפיינים ראויים לציון של קבוצת מפתחות הם:
- לכל מפתח בקבוצת מפתחות יש מזהה ייחודי, שהוא ייחודי בתוך ערכת מפתחות. המזהה הזה מתווסף בדרך כלל כקידומת לכל מידע מוצפן (ciphertext), חתימה או תג שנוצרו כדי לציין באיזה מפתח נעשה שימוש (למידע נוסף, אפשר לקרוא איך Tink tags ciphertexts).
- רק מפתח אחד בכל פעם בקבוצת מפתחות הוא ראשי. מפתח ראשי בקבוצת מפתחות הוא המפתח שנמצא בשימוש כרגע.
- כל המפתחות בקבוצת מפתחות חייבים להיות הטמעות של אותו פרימיטיב (כמו AEAD), אבל יכולים להיות להם סוגים שונים של מפתחות (לדוגמה, מפתח AES-GCM ו-XCHACHA20-POLY1305).
כל הטמעה של Tink מספקת ממשקי API ליצירה או לעריכה של מפתחות מפתחות. עם זאת, אנחנו ממליצים להשתמש בכלי ה-CLI שלנו Tinkey.
משתמשים פועלים על קבוצת מפתחות באמצעות נקודות אחיזה למערך מפתחות. נקודת האחיזה של קבוצת המפתחות מגבילה את החשיפה של חומר המפתח הרגיש בפועל. הוא גם מפשט מערך מפתחות שמאפשר למשתמשים לקבל פרימיטיב ש "אורז" את כל ערכת המפתחות. לדוגמה, אפשר לקבל פרימיטיב AEAD של קבוצת מפתחות עם מפתחות N
; הצפנה ופענוח באמצעות הפרמיטיב שהושג ולאחר מכן שימוש במפתח הראשי בערכת המפתחות.
מערכת ניהול מפתחות (KMS): מערכת המשמשת לניהול מפתחות קריפטוגרפיים, כולל היצירה, האחסון, השימוש, הרוטציה, ההשמדה והחלפה של המפתחות.
סוג מפתח: בסוג מפתח יש פרימיטיב ספציפי. לרוב פרימיטיבים יש כמה סוגי מפתחות שאפשר לבחור, בהתאם לדרישות של האבטחה, זמן הריצה והשטח. לדוגמה, AES128_GCM הוא תקן AEAD שהוא מהיר ואפקטיבי לרוב הצרכים. מידע נוסף זמין במאמר סוגי מפתחות נתמכים לפי שפה.
פרמטרים: תיאור מלא של המידע שנדרש ליצירת מפתח, לא כולל חומר המפתח ומזהה המפתח. במאמר אובייקטים של פרמטרים מוסבר איך הם מיוצגים.
Plaintext: צורת הקלט המובנת של טקסט מוצפן או של הרכיבים שלו.
פרימיטיבים: ב-Tink משתמש בפרימיטיבים כאבני בניין קריפטוגרפיות שמנהלות אלגוריתם בסיסי, כדי שהמשתמשים יוכלו לבצע משימות קריפטוגרפיות בבטחה. פרימיטיב מגדיר את הפרטים של אלגוריתם קריפטוגרפי ואת סוג המפתח.
פרימיטיבים שנתמכים על ידי Tink:
- הצפנה מאומתת עם Associated Data (AEAD): הדרך הנפוצה ביותר להצפנת נתונים, שמתאימה לרוב צורכי ההצפנה. קובץ AEAD מספק סודיות של טקסט ללא הצפנה ומאפשר אימות של התקינות והאותנטיות שלו. למידע נוסף, ראו הצפנה מאומתת עם נתונים משויכים (AEAD).
- הצפנה דטרמיניסטית: פרימיטיב שתמיד מייצר את אותו מידע מוצפן (ciphertext) לטקסט ללא הצפנה ולמפתח מסוימים. זה עלול להיות מסוכן, כי תוקפים צריכים לגלות רק איזה מידע מוצפן (ciphertext) תואם לקלט נתון של טקסט ללא הצפנה כדי לזהות אותו. ראו קובץ דטרמיניסטי של AEAD.
- חתימה דיגיטלית: אסימטרית (ראו הצפנת מפתחות אסימטריים) כדי לאשר את האותנטיות והשלמות של נתונים חתומים. למידע נוסף, ראו חתימה דיגיטלית.
- הצפנה היברידית: פרימיטיב שמשלב בין הצפנת מפתחות אסימטריים והצפנת מפתחות סימטריים (פרטים נוספים זמינים במאמרים הצפנת מפתחות אסימטריים והצפנת מפתחות סימטריים). הצפנה היברידית משלבת את היעילות של הצפנה סימטרית עם הנוחות של הצפנת מפתח ציבורי. כדי להצפין הודעה, נוצר מפתח סימטרי חדש ומשמש להצפנה של הנתונים בטקסט ללא הצפנה, והמפתח הציבורי של הנמען משמש להצפנה של המפתח הסימטרי בלבד. המידע המוצפן הסופי מורכב מהמידע המוצפן הסימטרי ומהמפתח הסימטרי המוצפן. למידע נוסף, ראו הצפנה היברידית.
- קוד אימות הודעות (MAC): אמצעי סימטרי (ראו הצפנת מפתח סימטרי) כדי לאשר את האותנטיות והשלמות של הנתונים. למידע נוסף, ראו קוד אימות הודעות (MAC).
- Streaming AEAD: פרימיטיב שמספק הצפנה מאומתת לסטרימינג של נתונים. שימושי כאשר הנתונים להצפין גדולים מדי ואי אפשר לעבד אותם בשלב אחד. ראו סטרימינג של AEAD.
למידע על התאימות, קראו את המאמר פרימיטיבים נתמכים לפי שפה.
מרשם: ישות גלובלית ב-Tink שיודעת ליצור מפתחות ופרימיטיבים חדשים. עיינו גם בהנחיות לניפוי באגים שגיאות רישום.
הצפנת מפתחות סימטריים: אלגוריתם קריפטוגרפי שמשתמש באותו מפתח כדי להצפין טקסט ללא הצפנה ולפענח מידע מוצפן (ciphertext).