Solución a otro reto de criptografía de la plataforma picoCTF 2018.
En esta ocasión la solución a otro de los retos en los que se ve involucrado el criptosistema de clave pública (criptografía asimétrica) más utilizado actualmente, RSA, y que, en mi opinión, presenta un nivel de dificultad fácil (★★☆☆☆).
- Super Safe RSA - Points: 350:
Su enunciado dice lo siguiente: 'Dr. Xernon made the mistake of rolling his own crypto.. Can you find the bug and decrypt the message? Connect with
Solución: A la vista de los datos que se proporcionan: un criptograma (c), el módulo (n) y el exponente de la clave pública (e), y por la pista que se da en la pestaña 'Hints': 'Just try the first thing that comes to mind', lo primero que se me ocurre es intentar factorizar el módulo (n), ya que éste parece pequeño y, por tanto, este ataque podría prosperar.
Para ello, utilizo una de las herramientas online existentes:
Una vez factorizado el módulo, utilizo un pequeño script en python para el descifrado:
import Crypto.Util.number
c = 16841851257390104574404085076875380698170612446978377545213538347601295917887814
n = 24829267815642237415430861027604064208801961221390827482802551463083232315551259
p = 169271609110988374118050271394643241641
q = 146683002223734574933143148221037012676899
e = 65537
print''
print 'n ............:', n
print 'p ............:', p
print 'q ............:', q
print''
print'*** Calcular phi(n)'
phi = (q-1)*(p-1)
print 'phi(n) .......:', phi
print''
print'*** Calcular d'
d = Crypto.Util.number.inverse(e,phi)
print 'd ...........:', d
print''
print'*** Descifrar'
m = pow(c, d, n)
print''
print 'm ...........:', m
print''
print 'm (ascii) ...:', Crypto.Util.number.long_to_bytes(m)
Lo ejecuto y obtengo lo siguiente:
Con lo que la solución a este reto es: picoCTF{us3_l@rg3r_pr1m3$_4928}.
En esta ocasión la solución a otro de los retos en los que se ve involucrado el criptosistema de clave pública (criptografía asimétrica) más utilizado actualmente, RSA, y que, en mi opinión, presenta un nivel de dificultad fácil (★★☆☆☆).
- Super Safe RSA - Points: 350:
Su enunciado dice lo siguiente: 'Dr. Xernon made the mistake of rolling his own crypto.. Can you find the bug and decrypt the message? Connect with
nc 2018shell.picoctf .com 24039
'.Solución: A la vista de los datos que se proporcionan: un criptograma (c), el módulo (n) y el exponente de la clave pública (e), y por la pista que se da en la pestaña 'Hints': 'Just try the first thing that comes to mind', lo primero que se me ocurre es intentar factorizar el módulo (n), ya que éste parece pequeño y, por tanto, este ataque podría prosperar.
Para ello, utilizo una de las herramientas online existentes:
Una vez factorizado el módulo, utilizo un pequeño script en python para el descifrado:
import Crypto.Util.number
c = 16841851257390104574404085076875380698170612446978377545213538347601295917887814
n = 24829267815642237415430861027604064208801961221390827482802551463083232315551259
p = 169271609110988374118050271394643241641
q = 146683002223734574933143148221037012676899
e = 65537
print''
print 'n ............:', n
print 'p ............:', p
print 'q ............:', q
print''
print'*** Calcular phi(n)'
phi = (q-1)*(p-1)
print 'phi(n) .......:', phi
print''
print'*** Calcular d'
d = Crypto.Util.number.inverse(e,phi)
print 'd ...........:', d
print''
print'*** Descifrar'
m = pow(c, d, n)
print''
print 'm ...........:', m
print''
print 'm (ascii) ...:', Crypto.Util.number.long_to_bytes(m)
Lo ejecuto y obtengo lo siguiente:
Con lo que la solución a este reto es: picoCTF{us3_l@rg3r_pr1m3$_4928}.
Comentarios
Publicar un comentario