Mecanismos de encapsulación clave (Kems) son una clase de técnicas de cifrado diseñado para asegurar criptográfico simétrico material de claves para la transmisión usando asimétricaalgoritmos (de clave pública). En la práctica, los sistemas de clave pública son torpes de usar para transmitir mensajes largos. En cambio, a menudo se utilizan para intercambiar claves simétricas, que son relativamente cortas. La clave simétrica se utiliza para cifrar el mensaje más largo. El enfoque tradicional para enviar una clave simétrica con sistemas de clave pública es generar primero una clave simétrica aleatoria y luego cifrarla utilizando el algoritmo de clave pública elegido. A continuación, el destinatario descifra el mensaje de clave pública para recuperar la clave simétrica. Como la clave simétrica es generalmente corta, se requiere relleno para una seguridad total y las pruebas de seguridad para los esquemas de relleno son a menudo menos que completas. [1] Los KEM simplifican el proceso al generar un elemento aleatorio en el grupo finito subyacente al sistema de clave pública y derivando la clave simétrica mediante el hash de ese elemento, eliminando la necesidad de relleno.
Ejemplo de uso de cifrado RSA
Usando la misma notación empleada en el artículo del sistema RSA , digamos que Alice ha transmitido su clave públicaa Bob , manteniendo su clave privada en secreto, como de costumbre. Bob luego desea enviar la clave simétrica M a Alice. M podría ser una clave AES de 128 o 256 bits, por ejemplo. Tenga en cuenta que la clave públicaes típicamente de 1024 bits o incluso más, por lo que es mucho más grande que las claves simétricas típicas. Si es lo suficientemente pequeño como para , entonces el cifrado se puede romper rápidamente usando aritmética de enteros ordinaria. [2]
Para evitar tal debilidad potencial, Bob primero convierte M en un entero más grandemediante el uso de un protocolo reversible acordado conocido como esquema de relleno , como OAEP . Luego calcula el texto cifrado correspondiente a:
Alice puede recuperarse de mediante el uso de su exponente de clave privada por el siguiente cálculo:
Dado , recupera el mensaje original M invirtiendo el esquema de relleno.
Con KEM, el proceso se simplifica de la siguiente manera: [3]
En lugar de generar una clave simétrica aleatoria M , Bob primero genera una clave aleatoria con . Deriva su clave simétrica M por, dónde es una función de derivación de claves , como un hash criptográfico . Luego calcula el texto cifrado correspondiente a :
Alice luego se recupera de mediante el uso de su exponente de clave privada por el mismo método que el anterior:
Dado , Se puede recuperar la clave simétrica M por.
El KEM elimina la complejidad del esquema de relleno y las pruebas necesarias para demostrar que el relleno es seguro. [1] Tenga en cuenta que si bien M se puede calcular a partir deen el enfoque KEM, lo contrario no es posible, asumiendo que la función de derivación de claves es unidireccional. Un atacante que de alguna manera recupera M no puede obtener el texto sin formato. Con el enfoque acolchado, puede. Por lo tanto, se dice que KEM encapsula la clave.
Tenga en cuenta que si el mismo se utiliza para encapsular claves para o más destinatarios, y los receptores comparten el mismo exponente , pero diferente y , entonces uno puede recuperarse a través del teorema del resto chino . Por lo tanto, si es necesario calcular encapsulaciones de claves para varios destinatarios, valores independientes debería ser usado.
Hay técnicas similares disponibles para el intercambio de claves Diffie-Hellman y otros métodos de claves públicas. [4]
Referencias
- ^ a b Una variante de OAEP con una estricta prueba de seguridad - Borrador 1.0 , Jakob Jonsson, 2002
- ^ RSA (algoritmo) #Ataques contra RSA simple
- ^ Encapsulación de claves: un nuevo esquema para el grupo de trabajo de seguridad XML de cifrado de claves públicas F2F, mayo de 2009
- ^ PSEC-KEM para ECC