Cifrado maleable

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda


[1] Un esquema de cifrado es maleable (en inglés malleable) si conocido un texto cifrado c_i se puede fácilmente crear otro texto cifrado c_j tal que el resultado de descifrar c_i (d_k(c_i)) y el resultado de descifrar c_j (d_k(c_j)) tienen una relación conocida.

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

Implicaciones[editar]

[3] 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.[4] 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

[1] 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.

Ejemplos[editar]

  • 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 es la clave secreta y E(m) = m \oplus S(k) es el texto cifrado. Un adversario puede construir un cifrado de m \oplus t para cualquier t, con E(m) \oplus t = m \oplus t \oplus S(k) = E(m \oplus t).
  • En el criptosistema RSA, un texto plano m es cifrado como E(m) = m^e \bmod n donde (e,n) es la clave pública. Dado un texto cifrado, un adversario puede construir un cifrado de mt para cualquier t, haciendo 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 es cifrado con E(m) = (g^b, m A^b), donde (g,A) es la clave pública. Dado un texto cifrado (c_1, c_2), un adversario puede hallar (c_1, t \cdot c_2), el cual es un cifrado válido de tm, para cualquier t.

Referencias[editar]

  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. Nikita Borisov et al.,"Off-the-Record Communication, or, Why Not To Use PGP"
  4. Jiang Bian et al.,"Off-the-record Instant Messaging for Group Conversation". Department of Computer Science of Arkansas at Little Rock, Arkansas USA