Шифрование с асимметричным ключом : криптографическая система, использующая парные ключи — открытый и закрытый — для шифрования и дешифрования данных. Открытые ключи используются для шифрования данных и могут использоваться совместно. Закрытые ключи используются для расшифровки данных и известны только владельцу.
Зашифрованный текст : результат шифрования открытого текста с использованием алгоритма. Зашифрованный текст непонятен до тех пор, пока он не будет преобразован обратно в открытый текст с помощью ключа.
Последовательность : означает, что Tink ведет себя «одинаково» на всех языках программирования. Например, Tink обеспечивает согласованность оценок, а это означает, что для данного набора ключей, если создание примитива на двух языках успешно, примитивы ведут себя одинаково.
Ключ : часть информации (например, строка), необходимая для шифрования или дешифрования данных. См. Ключевые объекты, чтобы узнать, как они представлены.
Набор ключей и дескриптор набора ключей : Tink использует наборы ключей для управления ключами. Набор ключей — это, по сути, набор ключей, которые облегчают вращение клавиш. Примечательными свойствами набора ключей являются:
- Каждый ключ в наборе ключей имеет уникальный идентификатор, который уникален внутри набора ключей. Этот идентификатор обычно добавляется в качестве префикса к каждому произведенному зашифрованному тексту, подписи или тегу, чтобы указать, какой ключ был использован (дополнительную информацию см. в разделе, как Tink помечает зашифрованные тексты ).
- Только один ключ в наборе ключей является первичным . Первичный ключ в наборе ключей — это ключ, «используемый» в данный момент.
- Все ключи в наборе ключей должны быть реализациями одного и того же примитива (например, AEAD), но могут иметь разные типы ключей (например, ключ AES-GCM и XCHACHA20-POLY1305).
Каждая реализация Tink предоставляет API для создания или редактирования наборов ключей. Однако мы рекомендуем использовать Tinkey, наш инструмент CLI.
Пользователи работают с набором ключей, используя дескрипторы набора ключей . Ручка набора ключей ограничивает раскрытие фактического секретного материала ключа. Он также абстрагирует набор ключей, позволяя пользователям получить примитив, который «обертывает» весь набор ключей. Например, вы можете получить примитив AEAD набора ключей с N
клавишами; шифрование и дешифрование с помощью полученного примитива затем используют первичный ключ в наборе ключей.
Система управления ключами (KMS) : система, используемая для управления криптографическими ключами, включая их создание, хранение, использование, ротацию, уничтожение и замену.
Тип ключа : тип ключа реализует определенный примитив. Большинство примитивов имеют несколько типов ключей на выбор в зависимости от ваших требований к безопасности, времени выполнения и пространству. Например, AES128_GCM — это AEAD , быстрый и эффективный для большинства нужд. Дополнительную информацию см. в разделе «Поддерживаемые типы ключей по языкам» .
Параметры : полностью описывает информацию, необходимую для создания ключа, за исключением материала ключа и идентификатора ключа. См. Объекты параметров , чтобы узнать, как они представлены.
Открытый текст : понятная форма ввода зашифрованного текста или его элементов.
Примитивный : Tink использует примитивы в качестве криптографических строительных блоков, которые управляют базовым алгоритмом, чтобы пользователи могли безопасно выполнять криптографические задачи. Примитив определяет детали криптографического алгоритма и тип ключа.
Примитивы, поддерживаемые Tink:
- Аутентифицированное шифрование со связанными данными (AEAD) : наиболее распространенный примитив шифрования данных; подходит для большинства задач шифрования. AEAD обеспечивает конфиденциальность открытого текста и позволяет проверять его целостность и подлинность. См. «Аутентифицированное шифрование со связанными данными» (AEAD) .
- Детерминированное шифрование: примитив, который всегда создает один и тот же зашифрованный текст для данного открытого текста и ключа. Это может быть рискованно, поскольку злоумышленнику нужно только выяснить, какой зашифрованный текст соответствует данному входному открытому тексту, чтобы идентифицировать его. См. Детерминированный AEAD .
- Цифровая подпись : асимметричный (см. Шифрование с асимметричным ключом ) примитив для подтверждения подлинности и целостности подписанных данных. См. Цифровая подпись .
- Гибридное шифрование : примитив, сочетающий в себе шифрование с асимметричным ключом и шифрование с симметричным ключом (см. Шифрование с асимметричным ключом и Шифрование с симметричным ключом ). Гибридное шифрование сочетает в себе эффективность симметричного шифрования с удобством шифрования с открытым ключом. Чтобы зашифровать сообщение, генерируется новый симметричный ключ, который используется для шифрования данных открытого текста, тогда как открытый ключ получателя используется только для шифрования симметричного ключа. Окончательный зашифрованный текст состоит из симметричного зашифрованного текста и зашифрованного симметричного ключа. См. Гибридное шифрование .
- Код аутентификации сообщения (MAC) : симметричный (см. Шифрование с симметричным ключом ) примитив для подтверждения подлинности и целостности данных. См. Код аутентификации сообщения (MAC) .
- Потоковая передача AEAD : примитив, обеспечивающий аутентифицированное шифрование для потоковой передачи данных; полезно, когда данные, подлежащие шифрованию, слишком велики, чтобы их можно было обработать за один шаг. См. Потоковое AEAD .
Информацию о совместимости см. в разделе Поддерживаемые примитивы по языкам .
Реестр : глобальный объект в Tink, умеющий генерировать новые ключи и примитивы. Также см. руководство по устранению ошибок регистрации .
Шифрование с симметричным ключом : криптографический алгоритм, который использует один и тот же ключ для шифрования открытого текста и расшифровки зашифрованного текста.