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 descifra en un texto sin formato relacionado . Es decir, dado un cifrado de un texto plano , es posible generar otro texto cifrado que lo descifre , para una función conocida , sin necesariamente saberlo o aprenderlo .

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, " TRANSFERIR $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, " TRANSFERIR $0100000.00 A LA CUENTA #227 ". La maleabilidad no se refiere a la capacidad del atacante para leer el mensaje cifrado. Tanto antes como después de la manipulación, el atacante no puede leer el mensaje cifrado.

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

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

Ejemplos de criptosistemas maleables

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

En el criptosistema RSA , un texto plano se cifra como , donde está la clave pública. Dado dicho texto cifrado, 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 plano se cifra como , donde está la clave pública. Dado dicho texto cifrado , un adversario puede calcular cuál es un cifrado válido para cualquier cosa . 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 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: invertir un bit en un bloque de texto cifrado destrozará completamente el texto sin formato al que se descifra, pero dará como resultado que el mismo bit se invierta en el texto sin formato del siguiente bloque. . Esto permite a un atacante "sacrificar" un bloque de texto plano para cambiar algunos datos en el siguiente, posiblemente logrando alterar maliciosamente el mensaje. Esta es esencialmente la idea central del ataque del oráculo de relleno contra 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 completa no maleabilidad como la capacidad del sistema de permanecer no maleable mientras otorga 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 generar un texto cifrado cuyo texto plano subyacente esté relacionado con el mensaje original a través de una relación que también tenga en cuenta las claves públicas.

Ver también

Referencias

  1. ^ Dolev, Danny; Dwork, Cynthia ; Naor, Moni (2000). "Criptografía no maleable". Revista SIAM de Computación . 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 . Apuntes de conferencias sobre informática. Springer Berlín 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 conferencias 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.