Maleabilidad (criptografía)
Malleability es una propiedad de algunos algoritmos criptográficos. Un algoritmo de encriptación es "malleable" si es posible transformar un cifertexto en otro cifertexto que descifra a un texto relacionado. Es decir, dada una encriptación de un texto m{displaystyle m}, es posible generar otro cifertexto que descifra f()m){displaystyle f(m)}, para una función conocida f{displaystyle f}, sin necesariamente saber o aprender m{displaystyle m}.
La maleabilidad suele ser una propiedad indeseable en un criptosistema de uso general, ya que permite que un atacante modifique el contenido de un mensaje. Por ejemplo, suponga 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 el cable y puede adivinar el formato del mensaje sin cifrar, el atacante podría cambiar el monto de la transacción o el destinatario de los fondos, p. "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 el diseño. En otras palabras, en algunas circunstancias se puede ver como una característica que cualquiera puede transformar un cifrado de m{displaystyle m} en un cifrado válido f()m){displaystyle f(m)} (para alguna clase restringida de funciones f{displaystyle f}) sin necesariamente aprender m{displaystyle m}. Tales esquemas son conocidos como esquemas de encriptación homomorfa.
Un criptosistema puede ser semánticamente seguro frente a ataques de texto sin formato elegidos o incluso ataques de texto cifrado elegido no adaptativo (CCA1) sin dejar de ser maleable. Sin embargo, la seguridad contra ataques de texto cifrado elegido adaptativo (CCA2) es equivalente a la no maleabilidad.
Ejemplos de criptosistemas maleables
En un cipher de flujo, el cifertexto se produce tomando el exclusivo o del texto y una secuencia de pseudorandades basada en una clave secreta k{displaystyle k}, como E()m)=m⊕ ⊕ S()k){displaystyle E(m)=moplus S(k)}. Un adversario puede construir un cifrado de m⊕ ⊕ t{displaystyle moplus t} para cualquier t{displaystyle t}, como E()m)⊕ ⊕ t=m⊕ ⊕ t⊕ ⊕ S()k)=E()m⊕ ⊕ t){displaystyle E(m)oplus toplus toplus S(k)=E(moplus t)}.
En el criptosistema RSA, un texto m{displaystyle m} está encriptado como E()m)=memodn{displaystyle E(m)=m^{e} {bmod {n}}, donde ()e,n){displaystyle (e,n)} es la clave pública. Dado un cifertexto así, un adversario puede construir una encriptación de mt{displaystyle mt} para cualquier t{displaystyle t}, como E()m)⋅ ⋅ temodn=()mt)emodn=E()mt){fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}} {bmod {}}=E(mt)}. Por esta razón, RSA se utiliza comúnmente junto con métodos de relleno como OAEP o PKCS1.
En el criptosistema ElGamal, un texto m{displaystyle m} está encriptado como E()m)=()gb,mAb){displaystyle E(m)=(g^{b},mA^{b}, donde ()g,A){displaystyle (g,A)} es la clave pública. Dada tal cifertexto ()c1,c2){displaystyle (c_{1},c_{2}}, un adversario puede computar ()c1,t⋅ ⋅ c2){displaystyle (c_{1},tcdot c_{2}}, que es un cifrado válido de tm{displaystyle tm}, para cualquier t{displaystyle t}. En cambio, 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 cifertextos juntos de una manera útil para producir un cifertexto relacionado. En Paillier, dada sólo la clave pública y una encriptación de m1{displaystyle m_{1} y m2{displaystyle m_{2}, se puede calcular un cifrado válido de su suma m1+m2{displaystyle m_{1}+m_{2}. En ElGamal y en RSA, se pueden combinar encriptaciones de m1{displaystyle m_{1} y m2{displaystyle m_{2} para obtener un cifrado válido de su producto m1m2{displaystyle m_{1}m_{2}.
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 alterará por completo el texto sin formato al que se descifra, pero dará como resultado que el mismo bit sea invertido en el texto sin formato de el bloque siguiente. Esto permite que un atacante 'sacrifique' un bloque de texto sin formato 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 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.
No maleabilidad total
Fischlin, en 2005, definió la noción de no maleabilidad total como la capacidad del sistema para 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. En otras palabras, el adversario no debería poder generar un texto cifrado cuyo texto sin formato subyacente esté relacionado con el mensaje original a través de una relación que también tenga en cuenta las claves públicas.
Contenido relacionado
XMMS
Empalme de sustitución
Interfaz de Entrada Común