Encriptación de claves asimétricas: Sistema criptográfico que usa claves vinculadas (públicas y privadas) para encriptar y desencriptar datos. Las claves públicas se usan para encriptar datos y se pueden compartir. Las claves privadas se usan para desencriptar datos y solo el propietario las conoce.
Ciphertext: Es el resultado de la encriptación realizada en texto simple mediante un algoritmo. El texto cifrado no se entiende hasta que se vuelve a convertir en texto simple con una clave.
Coherencia: Significa que Tink se comporta "igual" en todos los lenguajes de programación. Por ejemplo, Tink proporciona coherencia de evaluación, lo que significa que, para un conjunto de claves determinado, si la creación de elementos básicos se realiza correctamente en dos lenguajes, las primitivas se comportan de la misma manera.
Clave: Es información (por ejemplo, una string) necesaria para encriptar o desencriptar datos. Consulta la sección Objetos clave para ver cómo se representan.
Controlador de conjunto de claves: Tink usa conjuntos de claves para administrar teclas. En esencia, es un conjunto de claves que facilitan la rotación de claves. Las propiedades más importantes de un conjunto de claves son las siguientes:
- Cada clave de un conjunto de claves tiene un ID único, que es único dentro de un conjunto de claves. Por lo general, este ID se agrega como un prefijo a cada texto cifrado, firma o etiqueta producido para indicar qué clave se usó (consulta cómo Tink etiqueta texto cifrado para obtener más información).
- Solo una clave a la vez en un conjunto de claves es primaria. Una clave primaria en un conjunto de claves es la clave “en uso” en este momento.
- Todas las claves de un conjunto de claves deben ser implementaciones de la misma primitiva (como AEAD), pero pueden tener diferentes tipos de claves (por ejemplo, una clave AES-GCM y una XCHACHA20-POLY1305).
Cada implementación de Tink proporciona APIs para crear o editar conjuntos de claves. Sin embargo, recomendamos usar Tinkey, nuestra herramienta de la CLI.
Los usuarios operan sobre un conjunto de claves con controladores de conjunto de claves. Un controlador de conjunto de claves limita la exposición del material de clave sensible real. También abstrae un conjunto de claves que permite a los usuarios obtener una primitiva que "une" todo el conjunto. Por ejemplo, puedes obtener una primitiva AEAD de un conjunto de claves con claves N
. Luego, la encriptación y desencriptación con la primitiva obtenida usa la clave primaria en el conjunto de claves.
Sistema de administración de claves (KMS): Es un sistema que se usa para administrar claves criptográficas, incluida su generación, almacenamiento, uso, rotación, destrucción y reemplazo.
Tipo de clave: Un tipo de clave implementa una primitiva específica. La mayoría de las primitivas tienen varios tipos de claves para elegir según tus requisitos de seguridad, entorno de ejecución y espacio. Por ejemplo, AES128_GCM es un AEAD que es rápido y eficaz para la mayoría de las necesidades. Consulta el artículo Tipos de claves admitidos por idioma para obtener más información.
Parámetros: Describe en detalle la información necesaria para crear una clave, sin incluir el material ni el ID de la clave. Consulta la sección Objetos de parámetros para ver cómo se representan.
Texto simple: Es la forma de entrada inteligible de un texto encriptado o de sus elementos.
Primitive: Tink usa primitivas como componentes criptográficos básicos que administran un algoritmo subyacente para que los usuarios puedan realizar tareas criptográficas de forma segura. Una primitiva define los detalles de un algoritmo criptográfico y el tipo de clave.
Funciones primitivas compatibles con Tink:
- Encriptación autenticada con datos asociados (AEAD): Es la primitiva más común para la encriptación de datos y es adecuada para la mayoría de las necesidades de encriptación. AEAD proporciona confidencialidad de texto simple y permite la verificación de su integridad y autenticidad. Consulta Encriptación autenticada con datos asociados (AEAD).
- Encriptación determinista: Es una primitiva que siempre produce el mismo texto cifrado para un texto simple y una clave determinados. Esto puede ser riesgoso, ya que un atacante solo necesita descubrir qué texto cifrado corresponde a una entrada de texto simple determinada para identificarla. Consulta AEAD determinista.
- Firma digital: Una primitiva asimétrica (consulta Encriptación de clave asimétrica) para confirmar la autenticidad y la integridad de los datos firmados. Consulta Firma digital.
- Encriptación híbrida: Es una primitiva que combina la encriptación de clave asimétrica y la criptografía de clave simétrica (consulta Encriptación de claves asimétricas y Encriptación de claves simétricas). La encriptación híbrida combina la eficiencia de la encriptación simétrica con la conveniencia de la encriptación de clave pública. Para encriptar un mensaje, se genera una clave simétrica nueva y se usa para encriptar los datos de texto simple, mientras que la clave pública del destinatario se usa solo para encriptar la clave simétrica. El texto cifrado final consta del texto cifrado simétrico y la clave simétrica encriptada. Consulta Encriptación híbrida.
- Código de autenticación de mensajes (MAC): Es un tipo primitivo simétrico (consulta Encriptación de claves simétricas) para confirmar la autenticidad y la integridad de los datos. Consulta Código de autenticación de mensajes (MAC).
- AEAD de transmisión: Es una primitiva que proporciona encriptación autenticada para datos de transmisión. Es útil cuando los datos que se encriptarán son demasiado grandes para procesarlos en un solo paso. Consulta Transmisión de AEAD.
Consulta primitivas compatibles por lenguaje para obtener información sobre la compatibilidad.
Registro: Es una entidad global en Tink que sabe cómo generar claves y primitivas nuevas. También puedes consultar la guía sobre cómo depurar errores de registro.
Encriptación de claves simétricas: Es un algoritmo criptográfico que usa la misma clave para encriptar texto simple y desencriptar texto cifrado.