RSA Beginner
2 minutos de lectura
Se nos proporcionan estos números:
e: 3
c: 174422460809195453539354885823735245900172562989776845322302
n: 245841236512478852752909734912575581815967630033049838269083
Tenemos el exponente
Está claro que estamos ante un criptosistema RSA. Vamos a recordar cómo funciona RSA:
Se eligen dos números primos
Para cifrar un mensaje
Donde
En este punto, la clave pública es el conjunto
El criptosistema RSA será robusto en función de la dificultad para factorizar el módulo
Esta vez, el ódulo
Y ahora que tenemos
$ python3 -q
>>> e = 3
>>> c = 174422460809195453539354885823735245900172562989776845322302
>>> n = 245841236512478852752909734912575581815967630033049838269083
>>> p = 416064700201658306196320137931
>>> q = 590872612825179551336102196593
>>> phi_n = (p - 1) * (q - 1)
>>> d = pow(e, -1, phi_n)
>>> m = pow(c, d, n)
>>> hex(m)
'0x4354466c6561726e7b7273345f69735f61773373306d337d'
El mensaje está en formato numérico, por lo que tenemos que decodificarlo como bytes en ASCII:
>>> bytes.fromhex('4354466c6561726e7b7273345f69735f61773373306d337d')
b'CTFlearn{rs4_is_aw3s0m3}'