Современные режимы шифрования поддерживают связанные данные , которые аутентифицируются, но не шифруются. Это можно использовать для привязки зашифрованного текста к определенному контексту.
Примеры привязки зашифрованного текста к связанным данным включают:
Шифрование базы данных по ячейке (или по столбцу). Это гарантирует, что зашифрованный текст ячейки действителен только в этой конкретной ячейке. Это не позволяет злоумышленнику переместить зашифрованный текст из одной ячейки в другую. В этом примере зашифрованный текст должен быть привязан к
column_id
иrow_id
для данной ячейки базы данных.Хранение зашифрованных текстов на разных клиентах позволяет обнаружить неправомерное поведение, если клиент A предоставляет зашифрованный текст клиента B для расшифровки. Здесь зашифрованный текст должен быть привязан к имени клиента.
У Tink есть несколько вариантов привязки зашифрованного текста к его контексту:
AEAD , Streaming AEAD и Deterministic AEAD принимают связанные входные данные вместе с открытым текстом. Расшифровка не удалась, если связанные данные не предоставлены вместе с зашифрованным текстом.
Гибридное шифрование обеспечивает ту же функцию с помощью параметра context info .