stringtranslate.com

Maleabilidad (criptografía)

La maleabilidad es una propiedad de algunos algoritmos criptográficos . [1] Un algoritmo de cifrado es "maleable" si es posible transformar un texto cifrado en otro texto cifrado que se descifre en un texto plano relacionado . Es decir, dado un cifrado de un texto plano , es posible generar otro texto cifrado que se descifre en , para una función conocida , sin necesariamente saber o aprender .

La maleabilidad es a menudo una propiedad indeseable en un criptosistema de propósito general, ya que permite a un atacante modificar el contenido de un mensaje. Por ejemplo, supongamos que un banco utiliza un cifrado de flujo para ocultar su información financiera y un usuario envía un mensaje cifrado que contiene, por ejemplo, " TRANSFERENCIA $0000100.00 A LA CUENTA #199 ". Si un atacante puede modificar el mensaje en la transferencia y puede adivinar el formato del mensaje no cifrado, el atacante podría cambiar el monto de la transacción o el destinatario de los fondos, por ejemplo, " TRANSFERENCIA $0100000.00 A LA CUENTA #227 ". La maleabilidad no se refiere a la capacidad del atacante de leer el mensaje cifrado. Tanto antes como después de la manipulación, el atacante no puede leer el mensaje cifrado.

Por otra parte, algunos criptosistemas son maleables por diseño. En otras palabras, en algunas circunstancias puede considerarse como una característica que cualquiera pueda transformar un cifrado de en un cifrado válido de (para alguna clase restringida de funciones ) sin tener que aprender necesariamente . Estos esquemas se conocen como esquemas de cifrado homomórficos .

Un criptosistema puede ser semánticamente seguro contra ataques de texto simple elegido o incluso ataques de texto cifrado elegido no adaptativo (CCA1) y, al mismo tiempo, ser maleable. Sin embargo, la seguridad contra ataques de texto cifrado elegido adaptativo (CCA2) es equivalente a la no maleabilidad. [2]

Ejemplos de criptosistemas maleables

En un cifrado de flujo , el texto cifrado se produce tomando el o exclusivo del texto simple y un flujo pseudoaleatorio basado en una clave secreta , como . Un adversario puede construir un cifrado de para cualquier , como .

En el criptosistema RSA , un texto simple se cifra como , donde es la clave pública. Dado un texto cifrado de este tipo, un adversario puede construir un cifrado de para cualquier , como . Por este motivo, RSA se utiliza habitualmente junto con métodos de relleno como OAEP o PKCS1.

En el criptosistema ElGamal , un texto simple se cifra como , donde es la clave pública. Dado un texto cifrado de este tipo , un adversario puede calcular , que es un cifrado válido de , para cualquier . Por el contrario, el sistema Cramer-Shoup (que se basa en ElGamal) no es maleable.

En los criptosistemas Paillier , ElGamal y RSA , también es posible combinar varios textos cifrados de una manera útil para producir un texto cifrado relacionado. En Paillier, dada solo la clave pública y un cifrado de y , se puede calcular un cifrado válido de su suma . En ElGamal y en RSA, se pueden combinar los cifrados de y para obtener un cifrado válido de su producto .

Los cifrados de bloque en el modo de operación de encadenamiento de bloques de cifrado , por ejemplo, son parcialmente maleables: al invertir un bit en un bloque de texto cifrado, se deformará por completo el texto simple al que se descifra, pero el mismo bit se invertirá en el texto simple del siguiente bloque. Esto permite a un atacante "sacrificar" un bloque de texto simple para cambiar algunos datos en el siguiente, posiblemente logrando alterar maliciosamente el mensaje. Esta es esencialmente la idea central del ataque de oráculo de relleno en CBC , que permite al atacante descifrar casi un texto cifrado completo sin conocer la clave. Por esta y muchas otras razones, se requiere un código de autenticación de mensajes para protegerse contra cualquier método de manipulación.

Completa no maleabilidad

Fischlin, en 2005, definió la noción de no maleabilidad completa como la capacidad del sistema de permanecer no maleable mientras le da al adversario poder adicional para elegir una nueva clave pública que podría ser una función de la clave pública original. [3] En otras palabras, el adversario no debería ser capaz de crear un texto cifrado cuyo texto simple subyacente esté relacionado con el mensaje original a través de una relación que también tenga en cuenta las claves públicas.

Véase también

Referencias

  1. ^ Dolev, Danny; Dwork, Cynthia ; Naor, Moni (2000). "Criptografía no maleable". Revista SIAM de Informática . 30 (2): 391–437. CiteSeerX  10.1.1.49.4643 . doi :10.1137/S0097539795291562.
  2. ^ Bellare, Mihir; Desai, Anand; Pointcheval, David; Rogaway, Phillip (23 de agosto de 1998). Krawczyk, Hugo (ed.). Relaciones entre nociones de seguridad para esquemas de cifrado de clave pública . Lecture Notes in Computer Science. Springer Berlin Heidelberg. págs. 26–45. doi :10.1007/bfb0055718. ISBN. 978-3540648925. {{cite book}}: |work=ignorado ( ayuda )
  3. ^ Fischlin, Marc (11 de julio de 2005). "Esquemas completamente no maleables". Autómatas, lenguajes y programación . Apuntes de clase sobre informática. Vol. 3580. Springer, Berlín, Heidelberg. págs. 779–790. CiteSeerX 10.1.1.501.6445 . doi :10.1007/11523468_63. ISBN.  9783540275800.