הצפנה במפתח אסימטרי: מערכת קריפטוגרפית שמשתמשת במפתחות מוצמדים – ציבורי ופרטי – כדי להצפין ולפענח נתונים. מפתחות ציבוריים משמשים להצפנת נתונים, ואפשר לשתף אותם. מפתחות פרטיים משמשים לפענוח נתונים, והם ידועים רק לבעלים.
טקסט מוצפן (Ciphertext): התוצאה של הצפנה שבוצעה על טקסט פשוט באמצעות אלגוריתם. אי אפשר להבין את הטקסט המוצפן עד שממירים אותו בחזרה לטקסט רגיל באמצעות מפתח.
עקביות: פירושה ש-Tink מתנהג "באופן זהה" בכל שפות התכנות. לדוגמה, Tink מספקת עקביות בהערכה, כלומר, עבור קבוצת מפתחות נתונה, אם יצירת הפרימיטיב מצליחה בשתי שפות, הפרימיטיבים מתנהגים באופן זהה.
מפתח: פיסת מידע (לדוגמה, מחרוזת) שנדרשת להצפנה או לפענוח של נתונים. במאמר Key objects מוסבר איך הם מיוצגים.
Keyset & keyset handle: Tink משתמש בkeysets לניהול מפתחות. קבוצת מפתחות היא בעצם קבוצה של מפתחות שמקלים על רוטציית מפתחות. מאפיינים חשובים של קבוצת מפתחות:
- לכל מפתח בערכת מפתחות יש מזהה ייחודי, שהוא ייחודי בתוך ערכת המפתחות. המזהה הזה בדרך כלל מתווסף כקידומת לכל טקסט מוצפן, חתימה או תג שנוצרו, כדי לציין באיזה מפתח נעשה שימוש (מידע נוסף על תיוג טקסטים מוצפנים ב-Tink).
- רק מפתח אחד בכל קבוצת מפתחות יכול להיות ראשי. מפתח ראשי בערכת מפתחות הוא המפתח שנמצא בשימוש באותו רגע.
- כל המפתחות בערכת מפתחות חייבים להיות יישומים של אותו פרימיטיב (למשל, AEAD), אבל יכולים להיות להם סוגי מפתחות שונים (לדוגמה, מפתח AES-GCM ומפתח XCHACHA20-POLY1305).
כל הטמעה של Tink מספקת ממשקי API ליצירה או לעריכה של קבוצות מפתחות. עם זאת, מומלץ להשתמש ב-Tinkey, כלי ה-CLI שלנו.
המשתמשים פועלים על קבוצת מקשים באמצעות ידיות של קבוצת מקשים. השימוש ב-keyset handle מצמצם את החשיפה של חומר המפתח הרגיש בפועל. היא גם מבצעת הפשטה של קבוצת מפתחות, ומאפשרת למשתמשים לקבל פרימיטיב שעוטף את קבוצת המפתחות כולה. לדוגמה, אפשר לקבל פרימיטיב AEAD של קבוצת מפתחות עם N מפתחות. הצפנה ופענוח באמצעות הפרימיטיב שהתקבל משתמשים במפתח הראשי בקבוצת המפתחות.
מערכת לניהול מפתחות (KMS): מערכת שמשמשת לניהול מפתחות קריפטוגרפיים, כולל יצירה, אחסון, שימוש, רוטציה, השמדה והחלפה שלהם.
Key type: Key type מטמיע פרימיטיב ספציפי. לרוב הפרימיטיבים יש כמה סוגי מפתחות שאפשר לבחור מתוכם, בהתאם לדרישות שלכם לגבי אבטחה, זמן ריצה ושטח. לדוגמה, AES128_GCM הוא AEAD שפועל במהירות ויעיל לרוב הצרכים. מידע נוסף זמין במאמר סוגי מפתחות נתמכים לפי שפה.
פרמטרים: תיאור מלא של המידע שנדרש ליצירת מפתח, לא כולל חומר המפתח ומזהה המפתח. במאמר אובייקטים של פרמטרים מוסבר איך הם מיוצגים.
טקסט רגיל: טופס קלט מובן של טקסט מוצפן או של האלמנטים שלו.
Primitive: Tink משתמש ב-primitives כמרכיבים קריפטוגרפיים בסיסיים שמנהלים אלגוריתם בסיסי, כדי שהמשתמשים יוכלו לבצע משימות קריפטוגרפיות בצורה בטוחה. פרימיטיב מגדיר את הפרטים של אלגוריתם קריפטוגרפי ואת סוג המפתח.
- במאמר בחירת פרימיטיב מופיע סקירה כללית של הפרימיטיבים הנתמכים והתרחישים לדוגמה לשימוש בהם.
- מידע על תאימות זמין במאמר פרימיטיבים נתמכים לפי שפה.
Registry: ישות גלובלית ב-Tink שיודעת איך ליצור מפתחות ופרימיטיבים חדשים. כדאי לעיין גם בהנחיות בנושא ניפוי באגים של שגיאות ברישום.
הצפנה סימטרית: אלגוריתם קריפטוגרפי שמשתמש באותו מפתח כדי להצפין טקסט לא מוצפן ולפענח טקסט מוצפן.