Выберите свой вариант использования, чтобы определить правильный примитив, затем перейдите по ссылке для получения руководства по использованию примитива.
Шифровать данные...
| Примитивный | Подробности | |
|---|---|---|
| ...стандартных размеров | Аутентифицированное шифрование со связанными данными (AEAD) | - Подходит для большинства нужд - Принимает открытые тексты длиной до 2 32 байт - Обеспечивает конфиденциальность открытого текста и проверяет целостность и подлинность |
| ...в больших файлах или потоках данных | Потоковое AEAD | - Для данных, которые слишком велики для обработки за один шаг |
| ...детерминированно | Детерминированный AEAD | - Создает тот же шифротекст для заданного открытого текста и ключа |
| ...с ключами, защищенными KMS | Система управления ключами (KMS) Конверт AEAD | - Шифрует каждый открытый текст новым ключом AEAD - Шифрует каждый ключ AEAD с помощью KMS |
| ...с открытым ключом, расшифровать данные с помощью закрытого ключа | Гибридное шифрование | - Не аутентифицировано - Полезно, когда отправители не могут хранить секреты (закрытый ключ) |
Все эти примитивы способны привязывать шифротекст к его контексту .
Обеспечьте подлинность и целостность данных путем...
| Примитивный | Подробности | |
|---|---|---|
| ...создание и проверка MAC с помощью одного ключа | Код аутентификации сообщения (MAC) | - Очень быстро - Проверяется только теми сторонами, которые также могут создавать MAC-адреса. |
| ...создание подписи с помощью закрытого ключа, проверка с помощью открытого ключа | Цифровая подпись | - Может быть проверено сторонами, которые не могут создавать подписи |
Разное
| Примитивный | Подробности | |
|---|---|---|
| Создание и проверка JWT | Веб-токены JSON (JWT) | - Дополнительно может конвертировать в/из формата JSON Web Key (JWK) |
| Зашифруйте любой набор ключей примитива с помощью KMS | Примитив, зашифрованный KMS | - Не требует взаимодействия с KMS каждый раз при использовании примитива (например, для шифрования открытого текста), в отличие от KMS Envelope AEAD |
Есть вопрос?
Создайте задачу в репозитории GitHub для конкретного языка, ссылка на который находится на странице организации Tink .