miércoles, 14 de diciembre de 2016

Criptografía (XXXVIII): ataque a RSA mediante cifrado cíclico

En un post anterior sobre el algoritmo RSA comentaba que se considera que éste será seguro hasta que no se conozca una forma eficiente de hallar los dos factores primos de un número muy grande resultado del producto de éstos, ya que con los ordenadores actuales la potencia de cálculo que se requiere para ello hace que esta tarea sea inabordable en un tiempo razonable.

Pero, ¿existen otros métodos para intentar "romper" el cifrado RSA sin necesidad de realizar esa factorización?. Además, ¿podría "romperse" este cifrado sin conocerse la clave privada del receptor del mensaje?. La respuesta a ambas preguntas es afirmativa, al menos, en teoría.

Pongo un ejemplo de ataque a un cifrado RSA utilizando el método de cifrado cíclico.

En el ejemplo de cifrado RSA que puse en el post anterior al que he hecho referencia realizaba una operación de cifrado y descifrado sobre un mensaje (m) considerando lo siguiente:

Clave pública del receptor (7, 52.841)
Clave privada del receptor (7.399, 52.841)
m = 17.225

Cifrado (el emisor utiliza la clave pública del receptor): c = me mod n = 17.2257 mod 52.841 = 1.855
Descifrado (el receptor utiliza su clave privada): m = cd mod n = 1.8557.399 mod 52.841 = 17.225

Supongamos ahora que interceptamos este mensaje cifrado o criptograma (1.855): ¿podríamos obtener el mensaje en claro a partir de éste y de la clave pública del receptor?. Pues, también en teoría, sí.

El ataque empleando el cifrado cíclico consiste en cifrar repetidas veces el criptograma interceptado con la clave pública del destinatario hasta volver a obtener el criptograma, cosa que tarde o temprano ocurrirá y que nos revelará el mensaje en claro, de la siguiente manera:
Es decir, la operación de cifrado anterior a aquella en la que se obtiene nuevamente el criptograma (c) nos revela el mensaje en claro (m).

Curioso, ¿no?. Nótese que con este método no se obtiene la clave privada del receptor, pero se "rompe" el secreto que se pretendía guardar (el mensaje en claro). Lástima que este método con la potencia de cálculo disponible actualmente resulte incluso más ineficiente que el de la factorización cuando se utilizan números lo suficientemente grandes para generar las claves :). 

2 comentarios:

  1. Me encanto el post !!!. Yo ahora estoy haciendo los algoritmos para poder hacer una app didáctica sobre generación y ataques de RSA, gran aporte !!! gracias

    ResponderEliminar
  2. Muchas gracias por el comentario samaed.

    Un saludo,

    ResponderEliminar