Descifrar RSA

 

 

hola,
Tengo la clave publica en un archivo binario de RSA. Estoy intentnado utilizar esa clave para descifrar unos datos en lenguaje PHP pero no lo consigo. Alguien me puede echar una mano?

Gracias
Juanan

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).
Eduard RM's picture

Te faltará saber algo...


RSA, en su escencia codifica un valor, por ejemplo M, de tal manera que:

C = M^e mod N, donde C es el criptograma (lo que tu tienes), M el mensaje (lo que tu quieres descifrar) y (e,N) la clave publica del receptor (lo que tu tienes).

Ahora mismo tu tienes C. Para descrifrar C hay que hacer lo siguiente:

M = C^d mod N, donde d és la clave privada (lo que tu no tienes) del receptor

Esto es porqué:

C = M^e mod N
C^d = (M^e mod N)^d = M^(e*d) mod N

(ahora hay que saber que d se diseña de manera que d*e = 1 + k*O(n), siendo O(n) la función de Euler).

finalmente:

C^d = M^(1+kO(n)) mod N = M * M^(O(n)) mod N. Y por definición M^(O(n))mod N es 1.

Resultado: C^d mod N = M.

MORALEJA: Necesitas la clave privada del receptor, no la pública.
---------------------------------------------------------------------------------

Una vez descifrado el criptograma C, tendrás un número. Ese número es el mensaje que, dependiendo de como haya sido cifrado, tendrá una o otra interpretación. por ejemplo:

Si quieres cifrar M=CASA, en ASCII M=01100011 01100001 01110011 01100001. Por lo tanto cuando tu descifres deberás interpretar los bits de 8 en 8. De todas maneras hay infinitas formas de codificar CASA, y cada una de ellas requiere una interpretación a la hora de entender el mensaje descifrado.

Agustín's picture

Gracias


Por una explicación tan concisa y tan clara

---

cabezver's picture

descifrar RSA


y si tienes este tipo de sistema? que descifra?

N = 1434392819357937098298835111195122973183475977817778792060167781715347
2030112613804707167159931839771002506593229423188813923857861567764170
9345935975961129727859596609343289124965796285308717120051606006794321
8373876628087108927624053597642531834166037061202503369843771436471128
73468386573559510267301025317