Małe jest piękne (crypto 50)

Znaleźliśmy zaszyfrowane dane na bardzo starej maszynie. Jedyne co o niej wiemy, to to że obsługiwała jedynie obliczenia na małych liczbach. Może da się to jakoś wykorzystać do odzyskania danych.

import codecs


def bytes_to_long(data):
    return int(data.encode("hex"), 16)


def rsa_encrypt(msg, e, n):
    return pow(bytes_to_long(msg), e, n)


def main():
    n = 13513545201780754751363061730973412461964840798555163524204230289623875027547891
    e = 65537
    flag = "" # secret!
    with codecs.open("encrypted.txt", "w") as output_flag:
        output_flag.write(hex(rsa_encrypt(flag, e, n)))


main()

Oto zaszyfrowane dane:

0x2b159079b43d4d15a2a5ab21d4c76248343db01ade023ac233c63086dd638de694L

Aktualności

2016-11-07 10:00:00

Zaczynamy równo o 10!!!

2016-11-07 15:35:00

Plik do zadania RE 50 został zupdatowany żeby bardziej było widać jak wygląda poprawna flaga (sama flaga się nie zmieniła).

2016-11-07 16:23:00

Zadanie SPA z kryptografi jest teraz warte 150 punktów.

2016-11-07 16:24:00

Dodatkowe zadania zostaną opublikowane jutro rano.

2016-11-08 12:00:00

Dodatkowe zadania zostały opublikowane.


Info

Konkurs trwa od poniedziałku, godz. 9:00 do wtorku godz. 17:00.

Prosimy o rozwiązywanie zadań, a nie atakowanie infrastruktury :).

Używanie automatycznych skanerów podatności i nachalne brute-force'owanie nie jest mile widziane (raczej i tak nie pomogą).