Articulo de referencia

Mecanismo de encapsulación clave

Un mecanismo de encapsulación clave para transportar de forma confidencial una clave secreta aleatoria. k {\displaystyle k} La transmisión de un mensaje de un remitente a un rec...

Diagrama de flujo de un mecanismo de encapsulación de claves, que relaciona las entradas y salidas de los algoritmos Gen, Encap y Decap de un KEM.
Un mecanismo de encapsulación clave para transportar de forma confidencial una clave secreta aleatoria.k{\displaystyle k}La transmisión de un mensaje de un remitente a un receptor consta de tres algoritmos: Gen, Encap y Decap. Los círculos sombreados en azul representan la clave pública del receptor.pagk{\displaystyle pk}y la encapsulacióndo{\displaystyle c}—puede revelarse de forma segura a un adversario, mientras que los recuadros sombreados en rojo—la clave privada del receptorsk{\displaystyle sk}y la clave secreta encapsuladak{\displaystyle k}—debe mantenerse en secreto. La llave secretak{\displaystyle k}se elige al azar dentro de la lógica de Encap, y el remitente no tiene control sobre ello.

En criptografía , un mecanismo de encapsulación de clave ( KEM ) es un criptosistema de clave pública que permite a un emisor generar una clave secreta corta y transmitirla a un receptor de forma confidencial, a pesar de la interceptación por parte de adversarios. [ 1 ] [ 2 ] [ 3 ] Los estándares modernos para el cifrado de clave pública de mensajes arbitrarios suelen basarse en KEM. [ 4 ] [ 5 ]

Un KEM permite que un remitente que conoce una clave pública genere simultáneamente una clave secreta aleatoria corta y una encapsulación o texto cifrado de la clave secreta mediante el algoritmo de encapsulación del KEM . El receptor que conoce la clave privada correspondiente a la clave pública puede recuperar la misma clave secreta aleatoria a partir de la encapsulación mediante el algoritmo de desencapsulación del KEM . [ 1 ] [ 2 ] [ 3 ]

El objetivo de seguridad de un KEM es evitar que cualquier persona que no conozca la clave privada recupere información sobre las claves secretas encapsuladas, incluso después de interceptar la comunicación o enviar otras encapsulaciones al receptor para estudiar su reacción. [ 1 ] [ 2 ] [ 3 ]

Diferencia con el cifrado de clave pública

Diagrama de flujo de un esquema de cifrado de clave pública, que relaciona las entradas y salidas de sus algoritmos de generación, cifrado y descifrado.
Un esquema de cifrado de clave pública para transportar de forma confidencial un mensaje arbitrario.metro{\displaystyle m}de un remitente a un receptor. El mensajemetro{\displaystyle m}es elegido por el remitente.

La diferencia entre un esquema de cifrado de clave pública y un KEM radica en que un esquema de cifrado de clave pública permite al remitente elegir un mensaje arbitrario de un conjunto de mensajes posibles, mientras que un KEM elige una clave secreta corta al azar para el remitente. [ 1 ] [ 2 ] [ 3 ]

El remitente puede tomar la clave secreta aleatoria producida por un KEM y usarla como clave simétrica para un cifrado autenticado cuyo texto cifrado se envía junto con la encapsulación al receptor. Esto sirve para componer un esquema de cifrado de clave pública a partir de un KEM y un cifrado autenticado de clave simétrica en un criptosistema híbrido . [ 1 ] [ 2 ] [ 3 ] [ 5 ]

La mayoría de los esquemas de cifrado de clave pública, como RSAES-PKCS1-v1_5 , RSAES-OAEP y el cifrado Elgamal , se limitan a mensajes pequeños [ 6 ] [ 7 ] y casi siempre se utilizan para cifrar una clave secreta aleatoria corta en un criptosistema híbrido. [ 8 ] [ 9 ] [ 5 ] Y aunque un esquema de cifrado de clave pública puede convertirse a su vez en un KEM eligiendo una clave secreta aleatoria y cifrándola como un mensaje, es más fácil diseñar y analizar un KEM seguro que diseñar un esquema de cifrado de clave pública seguro como base. Por lo tanto, la mayoría de los esquemas de cifrado de clave pública modernos se basan en KEM y no al revés. [ 10 ] [ 5 ]

Definición

Sintaxis

Un KEM consta de tres algoritmos: [ 1 ] [ 2 ] [ 3 ] [ 11 ] [ 12 ]

  1. Generación de claves ,(pagk,sk):=Gen(){\displaystyle ({\mathit {pk}},{\mathit {sk}}):=\operatorname {Gen} ()}No requiere ninguna entrada y devuelve un par de claves públicas.pagk{\displaystyle {\mathit {pk}}}y una clave privadask{\displaystyle {\mathit {sk}}}.
  2. Encapsulación ,(k,do):=Encap(pagk){\displaystyle (k,c):=\operatorname {Encap} ({\mathit {pk}})}, requiere una clave públicapagk{\displaystyle {\mathit {pk}}}elige aleatoriamente una clave secretak{\displaystyle k}y devuelvek{\displaystyle k}junto con su encapsulacióndo{\displaystyle c}.
  3. Desencapsulación ,k:=Decap(sk,do){\displaystyle k':=\operatorname {Decap} ({\mathit {sk}},c')}, requiere una clave privadask{\displaystyle {\mathit {sk}}}y una encapsulacióndo{\displaystyle c'}y devuelve una clave secreta encapsulada.k{\displaystyle k'}o falla, a veces indicado por un retorno{\displaystyle \bot }(llamado " fondo ").

En el contexto asintótico de la criptografía teórica, todos los algoritmos son probabilísticos de tiempo polinomial en un parámetro de seguridad.λ{\displaystyle \lambda }y la longitud de la clave secretak{\displaystyle k}es una función del parámetro de seguridadλ{\displaystyle \lambda }. [ 1 ] [ 2 ]

En criptografía práctica, la clave secretak{\displaystyle k}Por lo general, tiene una longitud fija para cada algoritmo. Por ejemplo, ML-KEM siempre utiliza claves secretas de 256 bits, [ 4 ] : § 3.3, p. 16 mientras que los algoritmos en RFC 9180 varían entre claves secretas de 256, 384 y 512 bits; [ 5 ] : § 7.1 se pueden derivar claves secretas de longitud arbitraria de k{\displaystyle k}mediante una función de derivación clave . [ 13 ] : § 5.3 [ 5 ]

Rechazo explícito frente a rechazo implícito

La desencapsulación puede fallar debido a su entradado{\displaystyle c'}no es una encapsulacióndo{\displaystyle c}Devuelto por Encap, pero ha sido manipulado o creado maliciosamente. KEM que informan de un fallo mediante un símbolo distintivo.{\displaystyle \bot }(implementados en la práctica devolviendo un código de error o generando una excepción) se dice que utilizan rechazo explícito . Un KEM puede, en cambio, devolver una clave secreta aleatoria en este caso, o una clave secreta derivada pseudoaleatoriamente dedo{\displaystyle c'}bajo la llavesk{\displaystyle sk}; esto se denomina rechazo implícito . [ 14 ] : § 5.3, pp. 76–78 [ 12 ]

Exactitud

Un KEM es correcto si, para cualquier par de claves(pagk,sk){\displaystyle ({\mathit {pk}},{\mathit {sk}})}generado porGen{\displaystyle \operatorname {Gen} }, desencapsulando una encapsulacióndo{\displaystyle c}devuelto por(k,do):=Encap(pagk){\displaystyle (k,c):=\operatorname {Encap} ({\mathit {pk}})}con alta probabilidad produce la misma clavek{\displaystyle k}, eso es,Decap(sk,do)=k{\displaystyle \operatorname {Decap} ({\mathit {sk}},c)=k}. [ 2 ] [ 3 ] [ 11 ] [ 12 ]

Seguridad: IND-CCA

La seguridad de un KEM se cuantifica por su indistinguibilidad frente a un ataque adaptativo de texto cifrado elegido (IND-CCA), que es, en términos generales, cuánto mejor puede hacerlo un adversario que lanzar una moneda para determinar si, dada una clave aleatoria y una encapsulación, la clave está encapsulada por dicha encapsulación o es una clave aleatoria independiente. [ 2 ] [ 3 ] [ 11 ] [ 12 ] [ 1 ]

Específicamente, en el juego IND-CCA:

  1. El algoritmo de generación de claves se ejecuta para generar(pagk,sk):=Gen(){\displaystyle ({\mathit {pk}},{\mathit {sk}}):=\operatorname {Gen} ()}.
  2. pagk{\displaystyle {\mathit {pk}}}se revela al adversario.
  3. El adversario puede consultarDecap(sk,do){\displaystyle \operatorname {Decap} ({\mathit {sk}},c')}para encapsulaciones arbitrariasdo{\displaystyle c'}de la elección del adversario.
  4. El algoritmo de encapsulación se ejecuta para generar aleatoriamente una clave secreta y una encapsulación.(k0,do):=Encap(pagk){\displaystyle (k_{0},c):=\operatorname {Encap} ({\mathit {pk}})}y otra llave secretak1{\displaystyle k_{1}}se genera de forma independiente y aleatoria.
  5. Se lanza una moneda justa , obteniendo un resultado.b{0,1}{\displaystyle b\in \{0,1\}}.
  6. La pareja(kb,do){\displaystyle (k_{b},c)}se revela al adversario.
  7. El adversario puede volver a preguntarDecap(sk,do){\displaystyle \operatorname {Decap} ({\mathit {sk}},c')}para encapsulaciones arbitrariasdo{\displaystyle c'}de la elección del adversario, exceptodo{\displaystyle c}.
  8. El adversario devuelve una suposiciónb{0,1}{\displaystyle b'\in \{0,1\}}y gana el juego sib=b{\displaystyle b=b'}.

La ventaja IND-CCA del adversario es|Pr[b=b]1/2|{\displaystyle \left|\Pr[b'=b]-1/2\right|}, es decir, la probabilidad, más allá del azar, de distinguir correctamente una clave encapsulada de una clave elegida aleatoriamente de forma independiente.

Aplicaciones

Cifrado de clave pública

Se puede utilizar un mecanismo de encapsulación de clave junto con un cifrado simétrico autenticado para construir un esquema de cifrado de clave pública para mensajes arbitrarios. El requisito de seguridad para el cifrado simétrico, denominado mecanismo de encapsulación de datos o DEM , es la indistinguibilidad frente a ataques de texto cifrado elegido para un único mensaje cifrado por el remitente. [ 15 ] [ 11 ] [ 16 ]

Dado un KEM seguro con algoritmos Gen/Encap/Decap y un DEM seguromik(metro){\displaystyle E_{k}(m)}, el siguiente esquema de cifrado híbrido de clave pública también es seguro contra ataques adaptativos de texto cifrado elegido en el entorno de clave pública: [ 1 ] [ 2 ] : § 7.2, Teorema 7.3 [ 13 ] : § 6.2.1

  • Generación de claves: Igual que la del KEM.
  • Para cifrar un mensajemetro{\displaystyle m}para una clave públicapagk{\displaystyle {\mathit {pk}}}:
    1. Dejar(k,do):=Encap(pagk){\displaystyle (k,c):=\operatorname {Encap} ({\mathit {pk}})}.
    2. Dejarσ:=mik(metro){\displaystyle \sigma :=E_{k}(m)} .
    3. Enviar(do,σ){\displaystyle (c,\sigma )}como el texto cifrado.
  • Para descifrar un texto cifrado(do,σ){\displaystyle (c',\sigma ')}con clave privadask{\displaystyle {\mathit {sk}}}:
    1. Dejark:=Decap(sk,do){\displaystyle k':=\operatorname {Decap} ({\mathit {sk}},c')}o fallar si falla.
    2. Devuelve el mensajemik1(σ){\displaystyle E_{k'}^{-1}(\sigma ')}o fallar si falla.

Cabe señalar que , al igual que con cualquier cifrado de clave pública por sí solo , esto no autentica al remitente: cualquiera que posea la clave pública puede enviar un mensaje a un destinatario con la clave privada. Para que el remitente demuestre su identidad al receptor, es necesario utilizar otros métodos criptográficos, como las firmas digitales , en un protocolo. [ 17 ]

No obstante, en este esquema de cifrado de clave pública anónimo se requiere el uso de un cifrado simétrico autenticado para cumplir con la seguridad IND-CCA. Si se utilizara un cifrado no autenticado , seguro solo contra ataques de texto plano elegido (IND-CPA), un adversario podría modificar selectivamente un mensaje a través de su texto cifrado en tránsito, lo que no solo invalida la seguridad IND-CCA por un tecnicismo [ 18 ] , sino que también puede comprometer la confidencialidad en la práctica, como en EFAIL [ 19 ] .

Protocolos de acuerdo clave

Un KEM también puede utilizarse en un protocolo de acuerdo de clave autenticado como TLS con secreto directo para una sesión en línea, haciendo que el cliente y el servidor generen pares de claves KEM e intercambien encapsulaciones firmadas utilizando esos pares de claves, que luego borran al final de la sesión. [ 13 ]

Combinando KEMs

Los distintos KEM se basan en diferentes problemas matemáticos para su seguridad. Por ejemplo, la seguridad de Rabin-KEM se basa en la dificultad de la factorización de enteros [ 11 ] , que se ha estudiado durante siglos, pero se sabe que es vulnerable a las computadoras cuánticas capaces de ejecutar el algoritmo de Shor . En cambio, la seguridad de ML-KEM se basa en la dificultad del aprendizaje con errores [ 4 ] , que solo se ha estudiado durante décadas, pero no se sabe que sea vulnerable ni siquiera a un adversario con una computadora cuántica capaz de ejecutar Shor.

Un combinador KEM es un esquema para combinar dos KEM, KEM 1 y KEM 2 con sus respectivos algoritmos de encapsulación KEM 1 .Encap y KEM 2 .Encap, y así sucesivamente, en un KEM combinado que es seguro si KEM 1 o KEM 2 es seguro. [ 20 ]

Un KEM que combina un KEM vulnerable a la computación cuántica, como DH-KEM usando X25519 , con un KEM post-cuántico , como ML-KEM, a veces se denomina híbrido , [ 21 ] [ 10 ] [ 22 ] que no debe confundirse con un criptosistema híbrido que combina criptografía de clave pública con criptografía de clave simétrica .

Ejemplos y motivación

RSA

Cifrado RSA tradicional , cont{\displaystyle t}Módulos y exponentes de -bitsmi{\displaystyle e}, se define de la siguiente manera: [ 23 ] [ 24 ] [ 25 ]

  • Generación de claves ,(pagk,sk):=Gen(){\displaystyle ({\mathit {pk}},{\mathit {sk}}):=\operatorname {Gen} ()}:
  1. Generar unt{\displaystyle t}semiprimo de -bitnorte{\displaystyle n}con2t1<norte<2t{\displaystyle 2^{t-1}<n<2^{t}}al azar satisfactoriomcd(mi,λ(norte))=1{\displaystyle \gcd(e,\lambda (n))=1}, dóndeλ(norte){\displaystyle \lambda (n)}es la función de Carmichael .
  2. Calculard:=mi1modλ(norte){\displaystyle d:=e^{-1}{\bmod {\lambda }}(n)}.
  3. Devolverpagk:=norte{\displaystyle {\mathit {pk}}:=n}como clave pública ysk:=(norte,d){\displaystyle {\mathit {sk}}:=(n,d)}como clave privada. (Existen muchas variaciones de algoritmos de generación de claves y formatos de clave privada. [ 26 ] )
  • Cifrado de(t1){\displaystyle (t-1)}-mensaje de bitsmetro{\displaystyle m}clave públicapagk=norte{\displaystyle {\mathit {pk}}=n}, donacióndo:=Cifrar(pagk,metro){\displaystyle c:=\operatorname {Encrypt} ({\mathit {pk}},m)}:
  1. Codifique la cadena de bitsmetro{\displaystyle m}como un número enteror{\displaystyle r}con0r<norte{\displaystyle 0\leq r<n}.
  2. Devolverdo:=rmimodnorte{\displaystyle c:=r^{e}{\bmod {n}}}.
  • Descifrado del texto cifradodo{\displaystyle c'}con clave privadask=(norte,d){\displaystyle {\mathit {sk}}=(n,d)}, donaciónmetro:=Descifrar(sk,do){\displaystyle m':=\operatorname {Decrypt} ({\mathit {sk}},c')}:
  1. Calcularr:=(do)dmodnorte{\displaystyle r':=(c')^{d}{\bmod {n}}}.
  2. Decodifica el número enteror{\displaystyle r'}como una cadena de bitsmetro{\displaystyle m'}.

Este enfoque ingenuo es totalmente inseguro. Por ejemplo, al no ser aleatorio, no puede protegerse ni siquiera contra ataques de texto plano conocido : un adversario puede determinar si el remitente envía un mensaje ATTACK AT DAWNo uno falso ATTACK AT DUSKsimplemente cifrando esos mensajes y comparando el texto cifrado.

Incluso simetro{\displaystyle m}siempre es una clave secreta aleatoria, como una clave AES de 256 bits , cuandomi{\displaystyle e}se elige para optimizar la eficiencia comomi=3{\displaystyle e=3}, el mensajemetro{\displaystyle m}se puede calcular a partir del texto cifradodo{\displaystyle c}simplemente tomando raíces cúbicas de números reales , y hay muchos otros ataques contra RSA simple . [ 23 ] [ 24 ] Se han ideado varios esquemas de relleno aleatorio en intentos —a veces fallidos, como RSAES-PKCS1-v1_5 [ 23 ] [ 27 ] [ 28 ] —de hacerlo seguro para mensajes cortos arbitrariosmetro{\displaystyle m}. [ 23 ] [ 24 ]

Desde el mensajemetro{\displaystyle m}es casi siempre una clave secreta corta para un cifrado autenticado de clave simétrica utilizado para encriptar un mensaje de cadena de bits arbitrario, un enfoque más simple llamado RSA-KEM es elegir un elemento deZ/norteZ{\displaystyle \mathbb {Z} /n\mathbb {Z} }de forma aleatoria y usar eso para derivar una clave secreta usando una función de derivación de clave.H{\displaystyle H}, aproximadamente como sigue: [ 15 ] [ 8 ] [ 16 ]

  • Generación de claves : Como se indicó anteriormente.
  • Encapsulación para una clave públicapagk=norte{\displaystyle {\mathit {pk}}=n}, donación(k,do):=Encap(pagk){\displaystyle (k,c):=\operatorname {Encap} ({\mathit {pk}})}:
  1. Elige un número enteror{\displaystyle r}con0r<norte{\displaystyle 0\leq r<n}uniformemente al azar.
  2. Devolverk:=H(r){\displaystyle k:=H(r)}ydo:=rmimodnorte{\displaystyle c:=r^{e}{\bmod {n}}}como su encapsulación.
  • Desencapsulación dedo{\displaystyle c'}con clave privadask=(norte,d){\displaystyle {\mathit {sk}}=(n,d)}, donaciónk:=Decap(sk,do){\displaystyle k':=\operatorname {Decap} ({\mathit {sk}},c')}:
  1. Calcularr:=(do)dmodnorte{\displaystyle r':=(c')^{d}{\bmod {n}}}.
  2. Devolverk:=H(r){\displaystyle k':=H(r')}.

Este enfoque es más sencillo de implementar y proporciona una reducción más precisa al problema RSA que los esquemas de relleno como RSAES-OAEP . [ 15 ]

Elgamal

El cifrado Elgamal tradicional se define sobre un subgrupo multiplicativo del campo finito.Z/pagZ{\displaystyle \mathbb {Z} /p\mathbb {Z} }con generadorgramo{\displaystyle g}del ordenq{\displaystyle q}de la siguiente manera: [ 29 ] [ 30 ]

  • Generación de claves ,(pagk,sk):=Gen(){\displaystyle (pk,sk):=\operatorname {Gen} ()}:
  1. ElegirincógnitaZ/qZ{\displaystyle x\in \mathbb {Z} /q\mathbb {Z} }uniformemente al azar.
  2. Calculary:=gramoincógnitamodpag{\displaystyle y:=g^{x}{\bmod {p}}}.
  3. Devolversk:=incógnita{\displaystyle {\mathit {sk}}:=x}como clave privada ypagk:=y{\displaystyle {\mathit {pk}}:=y}como clave pública.
  • Cifrado de un mensajemetroZ/pagZ{\displaystyle m\in \mathbb {Z} /p\mathbb {Z} }clave públicapagk=y{\displaystyle {\mathit {pk}}=y}, donacióndo:=Cifrar(pagk,metro){\displaystyle c:=\operatorname {Encrypt} ({\mathit {pk}},m)}:
  1. ElegirrZ/qZ{\displaystyle r\in \mathbb {Z} /q\mathbb {Z} }uniformemente al azar.
  2. Calcular:t:=yrmodpagdo1:=gramormodpagdo2:=(tmetro)modpag{\displaystyle {\begin{aligned}t&:=y^{r}{\bmod {p}}\\c_{1}&:=g^{r}{\bmod {p}}\\c_{2}&:=(t\cdot m){\bmod {p}}\end{aligned}}}
  3. Devuelve el texto cifradodo:=(do1,do2){\displaystyle c:=(c_{1},c_{2})}.
  • Descifrado de un texto cifradodo=(do1,do2){\displaystyle c'=(c'_{1},c'_{2})}para una clave privadask=incógnita{\displaystyle {\mathit {sk}}=x}, donaciónmetro:=Descifrar(sk,do){\displaystyle m':=\operatorname {Decrypt} ({\mathit {sk}},c')}:
  1. Fallar y regresar{\displaystyle \bot }si(do1)(pag1)/q1(modpag){\displaystyle (c'_{1})^{(p-1)/q}\not \equiv 1{\pmod {p}}}o si(do2)(pag1)/q1(modpag){\displaystyle (c'_{2})^{(p-1)/q}\not \equiv 1{\pmod {p}}}, es decir, sido1{\displaystyle c'_{1}}odo2{\displaystyle c'_{2}}no está en el subgrupo generado porgramo{\displaystyle g}.
  2. Calculart:=(do1)incógnitamodpag{\displaystyle t':=(c'_{1})^{x}{\bmod {p}}}.
  3. Devolvermetro:=t1do2modpag{\displaystyle m':=t^{-1}c'_{2}{\bmod {p}}}.

Esto cumple con la sintaxis de un esquema de cifrado de clave pública, restringido a mensajes en el espacioZ/pagZ{\displaystyle \mathbb {Z} /p\mathbb {Z} }(lo que lo limita a un mensaje de unos pocos cientos de bytes para valores típicos depag{\displaystyle p}Al validar los textos cifrados durante el descifrado, se evita la filtración de bits de la clave privada.incógnita{\displaystyle x}a través de textos cifrados elegidos maliciosamente fuera del grupo generado porgramo{\displaystyle g}.

Sin embargo, esto no logra la indistinguibilidad contra un ataque de texto cifrado elegido . Por ejemplo, un adversario que tenga un texto cifradodo=(do1,do2){\displaystyle c=(c_{1},c_{2})}para un mensaje desconocidometro{\displaystyle m}puede descifrarlo trivialmente consultando al oráculo de descifrado para obtener el texto cifrado distinto.do:=(do1,do2gramo){\displaystyle c':=(c_{1},c_{2}g)}, lo que produce el texto plano relacionadometro:=metrogramomodpag{\displaystyle m':=mg{\bmod {p}}}, de la cualmetro{\displaystyle m}puede ser recuperado pormetro=metrogramo1modpag{\displaystyle m=m'g^{-1}{\bmod {p}}}. [ 29 ]

El cifrado Elgamal tradicional se puede adaptar al entorno de curva elíptica, pero requiere algún método para codificar mensajes de forma reversible como puntos en la curva, lo cual es menos trivial que codificar mensajes como números enteros módulopag{\displaystyle p}. [ 31 ]

Desde el mensajemetro{\displaystyle m}es casi siempre una clave secreta corta para un cifrado autenticado de clave simétrica utilizado para encriptar un mensaje de cadena de bits arbitrario, un enfoque más simple , llamado Elgamal-KEM o DH-KEM , es derivar la clave secreta det{\displaystyle t}y prescindir demetro{\displaystyle m}ydo2{\displaystyle c_{2}}En conjunto, como un KEM, utilizando una función de derivación claveH{\displaystyle H}: [ 1 ] [ 5 ]

  • Generación de claves : Como se indicó anteriormente.
  • Encapsulación para una clave públicapagk=y{\displaystyle {\mathit {pk}}=y}, donación(k,do):=Encap(pagk){\displaystyle (k,c):=\operatorname {Encap} ({\mathit {pk}})}:
  1. ElegirrZ/qZ{\displaystyle r\in \mathbb {Z} /q\mathbb {Z} }uniformemente al azar.
  2. Calculart:=yrmodpag{\displaystyle t:=y^{r}{\bmod {p}}}.
  3. Devolverk:=H(t){\displaystyle k:=H(t)}ydo:=gramormodpag{\displaystyle c:=g^{r}{\bmod {p}}}como su encapsulación.
  • Desencapsulación dedo{\displaystyle c'}con clave privadask=incógnita{\displaystyle {\mathit {sk}}=x}, donaciónk:=Decap(sk,do){\displaystyle k':=\operatorname {Decap} ({\mathit {sk}},c')}:
  1. Fallar y regresar{\displaystyle \bot }si(do)(pag1)/q1(modpag){\displaystyle (c')^{(p-1)/q}\not \equiv 1{\pmod {p}}}, es decir, sido{\displaystyle c'} no está en el subgrupo generado porgramo{\displaystyle g}.
  2. Calculart:=(do)incógnitamodpag{\displaystyle t':=(c')^{x}{\bmod {p}}}.
  3. Devolverk:=H(t){\displaystyle k':=H(t')}.

Cuando se combina con un cifrado autenticado para encriptar mensajes de cadena de bits arbitrarios, la combinación es esencialmente el Esquema de Cifrado Integrado . Dado que este KEM solo requiere una función de derivación de clave unidireccional para aplicar hash a elementos aleatorios del grupo sobre el que está definido,Z/pagZ{\displaystyle \mathbb {Z} /p\mathbb {Z} }En este caso, y no se trata de una codificación reversible de mensajes, es fácil extenderla a grupos de curvas elípticas más compactos y eficientes para la misma seguridad, como en las instancias de ECIES, Elliptic Curve Integrated Encryption Scheme o RFC 9180 DHKEM(...). 

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 9 10 Galbraith, Steven (2012). "§23.1.1: El paradigma KEM/DEM". Matemáticas de la criptografía de clave pública . Cambridge University Press. págs. 471–478 . ISBN  978-1-107-01392-6.
  2. 1 2 3 4 5 6 7 8 9 10 Shoup, Victor (mayo de 2000). Preneel, Bart (ed.). Uso de funciones hash como protección contra ataques de texto cifrado elegido . Avances en criptología – EUROCRYPT 2000. Notas de clase en ciencias de la computación. Vol. 1807. Brujas, Bélgica: Springer. págs. 275–288 . doi : 10.1007/3-540-45539-6_19 . ISBN   978-3-540-67517-4.
  3. 1 2 3 4 5 6 7 8 Cramer, Ronald ; Shoup, Victor (2003). "Diseño y análisis de esquemas prácticos de cifrado de clave pública seguros contra ataques adaptativos de texto cifrado elegido" . SIAM Journal on Computing . 33 (1). Society for Industrial and Applied Mathematics : 167–226 . doi : 10.1137/S0097539702403773 .
  4. 1 2 3 FIPS 203: Estándar del mecanismo de encapsulación de claves basado en retículos de módulos (PDF) , NIST , 13 de agosto de 2024, doi : 10.6028/NIST.FIPS.203
  5. 1 2 3 4 5 6 7 R. Barnes; K. Bhargavan; B. Lipp; C. Wood (febrero de 2022). Cifrado híbrido de clave pública . Grupo de trabajo de investigación de Internet . doi : 10.17487/RFC9180 . RFC 9180 .Informativo.
  6. B. Kaliski; A. Rusch; J. Johnsson; A. Rusch (noviembre de 2016). K. Moriarty (ed.). PKCS #1: Especificaciones de criptografía RSA Versión 2.2 . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC8017 . ISSN 2070-1721 . RFC 8017 . Informativo. Sustituye a RFC 3447 . 
  7. Menezes, Alfred J .; van Oorschot, Paul C .; Vanstone, Scott A. (octubre de 1996). "8. Cifrado de clave pública" (PDF) . Manual de criptografía aplicada . CRC Press. págs. 283–319 . ISBN  0-8493-8523-7.
  8. 1 2 Ferguson, Niels ; Kohno, Tadayoshi ; Schneier, Bruce (2010). "12. RSA". Ingeniería criptográfica . Wiley. págs. 195–211 . ISBN  978-0-470-47424-2.
  9. J. Callas ; L. Donnerhacke; H. Finney ; D. Shaw; R. Thayer (noviembre de 2007). Formato de mensaje OpenPGP . Grupo de trabajo de redes. doi : 10.17487/RFC4880 . RFC 4880 .Norma propuesta. Deja obsoletos los RFC 1991 y RFC 2440. Dejada obsoleta por el RFC 9580 .   
  10. 1 2 "Criptografía postcuántica: Preguntas frecuentes" . NIST . 19 de julio de 2024. Archivado del original el 26 de junio de 2024. Consultado el 20 de julio de 2024 .
  11. 1 2 3 4 5 Dent, Alexander W. (2002), Guía del diseñador para KEM , Archivo de preimpresiones de criptología, IACR
  12. 1 2 3 4 Hofheinz, Dennis; Hövelmanns, Kathrin; Kiltz, Eike (noviembre de 2017). Kalai, Yael; Reyzin, Leonid (eds.). Un análisis modular de la transformación Fujisaki-Okamoto . Teoría de la criptografía – TCC 2017. Lecture Notes in Computer Science. Vol. 10677. Baltimore, MD, Estados Unidos: Springer. págs. 341–371 . doi : 10.1007/978-3-319-70500-2_12 . ISBN   978-3-319-70499-9.
  13. 1 2 3 Alagic, Gorjan; Barker, Elaine; Chen, Lily; Dustin, Moody; Robinson, Angela; Silberg, Hamilton; Waller, Noah (enero de 2025), SP 800-227 ipd: Recomendaciones para mecanismos de encapsulación de claves , Borrador público inicial, NIST , doi : 10.6028/NIST.SP.800-227.ipd
  14. Persichetti, Edoardo (noviembre de 2012). Mejora de la eficiencia de la criptografía basada en códigos . Departamento de Matemáticas (tesis doctoral). Universidad de Auckland.
  15. 1 2 3 Shoup, Victor (2001), Propuesta de una norma ISO para el cifrado de clave pública (versión 2.1) , Cryptology ePrint Archive, IACR
  16. 1 2 R. Housley; S. Turner (febrero de 2025). Uso del algoritmo RSA-KEM en la sintaxis de mensajes criptográficos (CMS) . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC9690 . RFC 9690 .Norma propuesta. Sustituye a RFC 5990 . 
  17. An, Jee Hea (2001), Cifrado autenticado en el entorno de clave pública: nociones y análisis de seguridad , Cryptology ePrint Archive, IACR
  18. Bellare, Mihir ; Desai, Anand; Pointcheval, David ; Rogaway, Phillip (1998). "Relaciones entre nociones de seguridad para esquemas de cifrado de clave pública" . En Krawczyk, Hugo (ed.). 18.ª Conferencia Internacional Anual de Criptología, Santa Bárbara, California, EE. UU., 23-27 de agosto de 1998, Actas . Avances en Criptología CRYPTO '98 . Lecture Notes in Computer Science. Vol. 1462. Springer. pp. 26-45 . doi : 10.1007/BFb0055718 . ISBN   978-3-540-64892-5ISSN 0302-9743 
  19. Poddebniak, Damián; Dresen, cristiano; Müller, Jens; Ising, Fabián; Schinzel, Sebastián; Friedberger, Simón; Somorovsky, Juraj; Schwenk, Jörg (agosto de 2018). "Efail: romper el cifrado de correo electrónico S/MIME y OpenPGP mediante canales de exfiltración" . 27º Simposio de Seguridad USENIX (Seguridad USENIX 18) . Asociación USENIX. págs. 549– 566. ISBN  978-1-939133-04-5.
  20. Giacon, Federico; Heuer, Felix; Poettering, Bertram. «KEM Combiners» . En Abdalla, Michel; Dahab, Ricardo (eds.). XXI Conferencia Internacional IACR sobre Práctica y Teoría de la Criptografía de Clave Pública, Río de Janeiro, Brasil, 25-29 de marzo de 2018, Actas, Parte I. Criptografía de Clave Pública – PKC 2018. Lecture Notes in Computer Science. Vol. 10769. Springer. pp. 190-218 . doi : 10.1007/978-3-319-76578-5_7 . ISBN   978-3-319-76578-5.
  21. Bindel, Nina; Brendel, Jacqueline; Fischlin, Marc; Goncalves, Brian; Stebila, Douglas. «Mecanismos de encapsulación de claves híbridas e intercambio de claves autenticado» . En Ding, Jintai; Steinwaldt, Rainer (eds.). 10.ª Conferencia Internacional, PQCrypto 2019, Chongqing, China, 8-10 de mayo de 2019. Artículos seleccionados revisados . Criptografía post-cuántica . Lecture Notes in Computer Science. Vol. 11505. Springer. doi : 10.1007/978-3-030-25510-7 . ISBN  978-3-030-25510-7.
  22. Comité Técnico de Ciberseguridad (CYBER) de ETSI (diciembre de 2020), Intercambios de claves híbridos seguros frente a ataques cuánticos (PDF) , Normas técnicas, ETSI
  23. 1 2 3 4 Aumasson, Jean-Philippe (2018). "10. RSA". Criptografía seria: Una introducción práctica al cifrado moderno . No Starch Press. págs. 181–199 . ISBN  978-1-59327-826-7.
  24. 1 2 3 Stinson, Douglas R. (2006). "5. El criptosistema RSA y la factorización de enteros". Teoría y práctica de la criptografía (3.ª ed.). Chapman & Hall/CRC. págs. 161–232 . ISBN   978-1-58488-508-5.
  25. Rivest, RL ; Shamir, A .; Adleman, L. (1978-02-01). "Un método para obtener firmas digitales y criptosistemas de clave pública" (PDF) . Communications of the ACM . 21 (2). ACM : 120–126 . doi : 10.1145/359340.359342 .
  26. Švenda, Petr; Nemec, Matúš; Sekan, Peter; Kvašňovský, Rudolf; Formánek, David; Komárek, David; Matyáš, Vashek (agosto de 2016). La pregunta del millón de claves: investigación de los orígenes de las claves públicas RSA . 25º Simposio de Seguridad USENIX. Austin, TX, Estados Unidos: Asociación USENIX. págs. 893–910 . ISBN  978-1-931971-32-4.
  27. Bleichenbacher, Daniel (agosto de 1998). Krawczyk, Hugo (ed.). Ataques de texto cifrado elegido contra protocolos basados ​​en el estándar de cifrado RSA PKCS #1 . Avances en criptología – CRYPTO '98 . Notas de clase en ciencias de la computación. Vol. 1462. Santa Bárbara, CA, Estados Unidos: Springer. págs. 1–12 . doi : 10.1007/BFb0055716 . ISBN   978-3-540-64892-5.
  28. ^ Corón, Jean-Sébastien; Joye, Marc; Naccache, David ; Paillier, Pascal (mayo de 2000). Preneel, Bart (ed.). Nuevos ataques al cifrado PKCS#1 v1.5 . Avances en Criptología – EUROCRYPT 2000 . Apuntes de conferencias sobre informática. vol. 1807. Brujas, Bélgica: Springer. págs. 369– 381. doi : 10.1007/3-540-45539-6_25 . ISBN   978-3-540-67517-4.
  29. 1 2 Galbraith, Steven (2012). "§20.3: Cifrado Elgamal de libro de texto". Matemáticas de la criptografía de clave pública . Cambridge University Press. págs. 471–478 . ISBN  978-1-107-01392-6.
  30. Elgamal, Taher (agosto de 1984). Blakley, George Robert ; Chaum, David (eds.). Un criptosistema de clave pública y un esquema de firma basado en logaritmos discretos . Avances en criptología – CRYPTO 1984. Notas de clase en ciencias de la computación. Vol. 196. Santa Bárbara, CA, Estados Unidos: Springer. págs. 10–18 . doi : 10.1007/3-540-39568-7_2 . ISBN   978-3-540-15658-1.
  31. Koblitz, Neal (enero de 1987). "Criptosistemas de curvas elípticas" (PDF) . Matemáticas de la computación . 48 (177). Sociedad Matemática Americana : 203–209 . doi : 10.1090/S0025-5718-1987-0866109-5 .