Cifrado maleable

Este artículo o sección sobre ciencia necesita ser wikificado, por favor, edítalo para que cumpla con las convenciones de estilo.
Este aviso fue puesto el 2 de septiembre de 2012.

Un esquema de cifrado es maleable (en inglés malleable) si conocido un texto cifrado c i {\displaystyle c_{i}} se puede fácilmente crear otro texto cifrado c j {\displaystyle c_{j}} tal que el resultado de descifrar c i {\displaystyle c_{i}} ( d k ( c i ) {\displaystyle d_{k}(c_{i})} ) y el resultado de descifrar c j {\displaystyle c_{j}} ( d k ( c j ) {\displaystyle d_{k}(c_{j})} ) tienen una relación[1]

Este concepto fue introducido en 1991 por D. Dolev, Dwork y J. L. Carter.[2]

Implicaciones

La maleabilidad de un cifrado permite, sin saber la clave, alterar el texto cifrado para conseguir cambiar el significado del texto plano. De esta forma podemos cambiar el significado. Esto es aprovechado en alguna aplicación (Ej. protocolo Off-the-Record) para que el código cifrado no pueda ser usado como prueba de que ese mensaje ha sido enviado por un conocedor de la clave secreta. En estas aplicaciones se quiere tener la prueba de que cualquiera puede generar un código cifrado concreto.[3]​ Técnicamente no es un cifrado negable, pero su negabilidad se refiere a la imposibilidad de que una tercera parte pruebe la autenticidad del mensaje.[4]

Un mensaje cifrado con este tipo de cifrado no prueba de ninguna forma la integridad o la autenticidad, En los sistemas de cifrado no-maleables es difícil, sin conocer la clave, producir textos cifrados que al descifrar produzcan texto plano con significado. Cualquier cambio que un atacante pudiera realizar en el texto cifrado, al descifrar normalmente tendría como resultado un texto plano con bits aleatorios en lugar de texto plano con significado en el contexto. Esto se podría aprovechar como técnica de autenticación (Ej. Protocolo de Needham-Schroeder) aunque es una práctica muy pobre, ya que hay ataques que pueden romper este tipo de protección. Sin embargo en algunos casos es difícil aplicar este tipo de ataques.[1]

Ejemplos

  • El cifrador de flujo one-time-pad cifra el texto plano haciendo un XOR con una clave. Para descifrar vuelve a aplicar la función XOR. Este tipo de cifrado es maleable ya que un cambio en cualquier bit en el texto cifrado se corresponderá con un cambio en el correspondiente bit del texto plano. Por tanto si un atacante obtiene o puede adivinar el texto plano, entonces este atacante puede componer el texto cifrado para cualquier otro mensaje de la misma longitud sin conocer la clave privada. Usando notación matemática:
Si k {\displaystyle k} es la clave secreta y E ( m ) = m S ( k ) {\displaystyle E(m)=m\oplus S(k)} es el texto cifrado. Un adversario puede construir un cifrado de m t {\displaystyle m\oplus t} para cualquier t {\displaystyle t} , con E ( m ) t = m t S ( k ) = E ( m t ) {\displaystyle E(m)\oplus t=m\oplus t\oplus S(k)=E(m\oplus t)} .
  • En el criptosistema RSA, un texto plano m {\displaystyle m} es cifrado como E ( m ) = m e mod n {\displaystyle E(m)=m^{e}{\bmod {n}}} donde ( e , n ) {\displaystyle (e,n)} es la clave pública. Dado un texto cifrado, un adversario puede construir un cifrado de m t {\displaystyle mt} para cualquier t {\displaystyle t} , haciendo E ( m ) t e mod n = ( m t ) e mod n = E ( m t ) {\displaystyle E(m)\cdot t^{e}{\bmod {n}}=(mt)^{e}{\bmod {n}}=E(mt)} . Por esta razón, RSA es comúnmente usado junto con un esquema de relleno como OAEP o PKCS1.
  • El cifrado ElGamal, un texto plano m {\displaystyle m} es cifrado con E ( m ) = ( g b , m A b ) {\displaystyle E(m)=(g^{b},mA^{b})} , donde ( g , A ) {\displaystyle (g,A)} es la clave pública. Dado un texto cifrado ( c 1 , c 2 ) {\displaystyle (c_{1},c_{2})} , un adversario puede hallar ( c 1 , t c 2 ) {\displaystyle (c_{1},t\cdot c_{2})} , el cual es un cifrado válido de t m {\displaystyle tm} , para cualquier t {\displaystyle t} .
  • El cifrado Cramer-Shoup (basado en el cifrado ElGamal) no es maleable.
  • En el sistema criptográfico Paillier, cifrado ElGamal, y RSA, es posible combinar varios textos cifrados junto de cierta forma para producir un texto cifrado relacionado. En el sistema criptográfico Paillier, dada solo la clave pública y un cifrado de m 1 {\displaystyle m_{1}} y m 2 {\displaystyle m_{2}} , se puede calcular un cifrado válido de su suma m 1 + m 2 {\displaystyle m_{1}+m_{2}} . En el cifrado ElGamal y RSA, se pueden combiar cifrado de m 1 {\displaystyle m_{1}} y m 2 {\displaystyle m_{2}} para obtener un cifrado válido de su producto m 1 m 2 {\displaystyle m_{1}m_{2}} .

Referencias

  1. a b Matej Pivoluska,"Non-malleable encryption and message authentication". Diploma Thesis. Brno 2010
  2. Dolev, D., Dwork, C., Naor, M. (1991). ”Non–malleable Cryptography”. Annual ACM Symposium on Theory of Computing archive Proceedings of the twenty-third annual ACM symposium on Theory of computing: 542 - 552
  3. Jiang Bian et al.,"Off-the-record Instant Messaging for Group Conversation". Department of Computer Science of Arkansas at Little Rock, Arkansas USA
  4. Nikita Borisov et al.,"Off-the-Record Communication, or, Why Not To Use PGP"
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q4668956
  • Wd Datos: Q4668956