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
- Conecta o crea cuenta para participar

- 619 lecturas
Twitter

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.
Gracias
Por una explicación tan concisa y tan clara
---
descifrar RSA
y si tienes este tipo de sistema? que descifra?
N = 1434392819357937098298835111195122973183475977817778792060167781715347
2030112613804707167159931839771002506593229423188813923857861567764170
9345935975961129727859596609343289124965796285308717120051606006794321
8373876628087108927624053597642531834166037061202503369843771436471128
73468386573559510267301025317