Una clave en criptografía es un fragmento de información, normalmente una cadena de números o letras que se almacena en un archivo y que, al procesarse mediante un algoritmo criptográfico , puede codificar o descodificar datos criptográficos. Según el método utilizado, la clave puede tener distintos tamaños y variedades, pero en todos los casos, la solidez del cifrado depende de la seguridad de la clave que se mantenga. La solidez de la seguridad de una clave depende de su algoritmo, el tamaño de la clave, la generación de la clave y el proceso de intercambio de claves.
La clave es lo que se utiliza para cifrar los datos de texto simple a texto cifrado . [1] Existen diferentes métodos para utilizar claves y cifrado.
La criptografía simétrica se refiere a la práctica de utilizar la misma clave tanto para el cifrado como para el descifrado. [2]
La criptografía asimétrica tiene claves separadas para cifrar y descifrar. [3] [4] Estas claves se conocen como claves públicas y privadas, respectivamente. [5]
Dado que la clave protege la confidencialidad y la integridad del sistema, es importante mantenerla en secreto frente a terceros no autorizados. Con la criptografía de clave pública, solo la clave privada debe mantenerse en secreto, pero con la criptografía simétrica, es importante mantener la confidencialidad de la clave. El principio de Kerckhoff establece que toda la seguridad del sistema criptográfico depende de la confidencialidad de la clave. [6]
El tamaño de la clave es la cantidad de bits de la clave definida por el algoritmo. Este tamaño define el límite superior de la seguridad del algoritmo criptográfico. [7] Cuanto mayor sea el tamaño de la clave, más tiempo pasará antes de que la clave se vea comprometida por un ataque de fuerza bruta. Dado que el secreto perfecto no es factible para los algoritmos de clave, las investigaciones ahora se centran más en la seguridad computacional.
En el pasado, se requería que las claves tuvieran una longitud mínima de 40 bits; sin embargo, a medida que la tecnología avanzaba, estas claves se descifraban cada vez más rápido. Como respuesta, se ampliaron las restricciones a las claves simétricas para que fueran de mayor tamaño.
En la actualidad, se utiliza habitualmente el RSA de 2048 bits [8] , que es suficiente para los sistemas actuales. Sin embargo, los tamaños de clave actuales se podrían descifrar rápidamente con un ordenador cuántico potente.
“Las claves utilizadas en la criptografía de clave pública tienen cierta estructura matemática. Por ejemplo, las claves públicas utilizadas en el sistema RSA son el producto de dos números primos. Por lo tanto, los sistemas de clave pública requieren longitudes de clave más largas que los sistemas simétricos para un nivel de seguridad equivalente. 3072 bits es la longitud de clave sugerida para sistemas basados en factorización y logaritmos discretos enteros que apuntan a tener una seguridad equivalente a un cifrado simétrico de 128 bits”. [9]
Para evitar que una clave sea adivinada, las claves deben generarse aleatoriamente y contener suficiente entropía . El problema de cómo generar claves aleatorias de forma segura es difícil y ha sido abordado de muchas maneras por varios sistemas criptográficos. Una clave puede generarse directamente utilizando la salida de un generador de bits aleatorios (RBG), un sistema que genera una secuencia de bits impredecibles e imparciales. [10] Un RBG puede usarse para producir directamente una clave simétrica o la salida aleatoria para una generación de pares de claves asimétricas. Alternativamente, una clave también puede crearse indirectamente durante una transacción de acuerdo de claves, a partir de otra clave o de una contraseña. [11]
Algunos sistemas operativos incluyen herramientas para "recolectar" entropía a partir de la sincronización de operaciones impredecibles, como los movimientos de los cabezales de las unidades de disco. Para la producción de pequeñas cantidades de material de codificación, los dados comunes proporcionan una buena fuente de aleatoriedad de alta calidad.
La seguridad de una clave depende de cómo se intercambia una clave entre las partes. Es necesario establecer un canal de comunicación seguro para que los extraños no puedan obtener la clave. Un esquema de establecimiento de claves (o intercambio de claves) se utiliza para transferir una clave de cifrado entre entidades. El acuerdo de claves y el transporte de claves son los dos tipos de esquema de intercambio de claves que se utilizan para intercambiar de forma remota entre entidades. En un esquema de acuerdo de claves, se configura una clave secreta, que se utiliza entre el emisor y el receptor para cifrar y descifrar información, para que se envíe de forma indirecta. Todas las partes intercambian información (el secreto compartido) que permite a cada parte obtener el material de la clave secreta. En un esquema de transporte de claves, el material de claves cifrado que elige el emisor se transporta al receptor. En ambos esquemas se pueden utilizar técnicas de clave simétrica o de clave asimétrica. [11]
El algoritmo de intercambio de claves Diffie-Hellman y el algoritmo Rivest-Shamir-Adleman (RSA) son los dos algoritmos de intercambio de claves más utilizados. [12] En 1976, Whitfield Diffie y Martin Hellman construyeron el algoritmo Diffie-Hellman , que fue el primer algoritmo de clave pública. El protocolo de intercambio de claves Diffie-Hellman permite el intercambio de claves a través de un canal inseguro mediante la generación electrónica de una clave compartida entre dos partes. Por otro lado, RSA es una forma del sistema de clave asimétrica que consta de tres pasos: generación de claves, cifrado y descifrado. [12]
La confirmación de claves ofrece una garantía entre el receptor y el proveedor de la confirmación de claves de que los materiales de codificación compartidos son correctos y están establecidos. El Instituto Nacional de Normas y Tecnología recomienda que la confirmación de claves se integre en un esquema de establecimiento de claves para validar sus implementaciones. [11]
La gestión de claves se ocupa de la generación, el establecimiento, el almacenamiento, el uso y la sustitución de claves criptográficas. Un sistema de gestión de claves (KMS) normalmente incluye tres pasos: establecimiento, almacenamiento y uso de claves. La base de la seguridad para la generación, el almacenamiento, la distribución, el uso y la destrucción de claves depende de protocolos de gestión de claves eficaces. [13]
Una contraseña es una serie de caracteres memorizados que incluyen letras, dígitos y otros símbolos especiales que se utilizan para verificar la identidad. A menudo, la crea un usuario humano o un software de gestión de contraseñas para proteger información personal y confidencial o generar claves criptográficas. Las contraseñas suelen crearse para que los usuarios las memoricen y pueden contener información no aleatoria, como palabras del diccionario. [11] Por otro lado, una clave puede ayudar a fortalecer la protección de la contraseña al implementar un algoritmo criptográfico que es difícil de adivinar o reemplazar la contraseña por completo. Una clave se genera en función de datos aleatorios o pseudoaleatorios y, a menudo, puede ser ilegible para los humanos. [14]
Una contraseña es menos segura que una clave criptográfica debido a su baja entropía, aleatoriedad y propiedades legibles por humanos. Sin embargo, la contraseña puede ser el único dato secreto al que tenga acceso el algoritmo criptográfico para la seguridad de la información en algunas aplicaciones, como la protección de la información en dispositivos de almacenamiento. Por lo tanto, un algoritmo determinista llamado función de derivación de claves (KDF) utiliza una contraseña para generar el material de clave criptográfica segura para compensar la debilidad de la contraseña. Se pueden utilizar varios métodos en la generación, como la adición de una sal o la ampliación de la clave. [11]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )