एन्क्रिप्शन के आधुनिक मोड, जुड़े हुए डेटा के साथ काम करते हैं. इस डेटा की पुष्टि की जाती है, लेकिन उसे एन्क्रिप्ट नहीं किया जाता. इसका इस्तेमाल, किसी खास संदर्भ में सिफरटेक्स्ट को बांधने के लिए किया जा सकता है.
संबंधित डेटा से सिफरटेक्स्ट को बांधने के उदाहरणों में ये शामिल हैं:
डेटाबेस की सेल-दर-सेल (या कॉलम-दर-कॉलम) एन्क्रिप्ट करना. इससे यह पक्का होता है कि सेल का सिफरटेक्स्ट सिर्फ़ उस सेल में मान्य है. इससे, हमलावर को कोड में बदले गए टेक्स्ट को एक सेल से दूसरी सेल में ले जाने से रोका जा सकता है. इस उदाहरण में, दिए गए डेटाबेस सेल के लिए, सिफरटेक्स्ट को
column_id
औरrow_id
से बंधा होना चाहिए.अलग-अलग क्लाइंट में सिफरटेक्स्ट सेव करने से, आपको गलत व्यवहार का पता चलता है. ऐसा तब होता है, जब क्लाइंट A, क्लाइंट B के सिफरटेक्स्ट को डिक्रिप्ट करने के लिए उपलब्ध कराता है. यहां, सिफरटेक्स्ट को क्लाइंट के नाम से जोड़ा जाना चाहिए.
Tink में, सिफरटेक्स्ट को उसके कॉन्टेक्स्ट से जोड़ने के कई विकल्प हैं:
AEAD, स्ट्रीमिंग AEAD, और डेटरमिनिस्टिक AEAD, सभी साफ़ टेक्स्ट के साथ-साथ उससे जुड़ा डेटा इनपुट भी स्वीकार करते हैं. अगर सिफरटेक्स्ट के साथ उससे जुड़ा डेटा नहीं दिया जाता है, तो डेटा डिक्रिप्ट नहीं किया जा सकता.
हाइब्रिड एन्क्रिप्शन, context info पैरामीटर का इस्तेमाल करके, यही सुविधा देता है.