Încerc să rezolv o problemă CTF legată de criptarea RSA.
Pot rula un binar de provocare care va citi un steag dintr-un fișier, steag se va potrivi cu următorul RegEx:
AB1234C\{[0-9a-f]{32}\}\n
Deci, în total, indicatorul este de 42 de octeți, inclusiv linia nouă
Steagul este apoi umplut cu umplutură aleatoare la un total de 128 de octeți.
Pot alege exponentul public e, atâta timp cât e>1. Binarul va genera un modul aleator de 2048 de biți folosind funcția Python Crypto.PublicKey.RSA.generate(bits=2048)
Binarul va tipări modulul, precum și textul cifrat al steagului căptușit criptat.
Pot rula binarul de mai multe ori, modulul și umplutura vor fi diferite între fiecare rulare.
M-am gândit că ar putea fi legat de atacul lui Hastad, dar asta pare să funcționeze doar pentru umplutura liniară, iar atacul cu pad scurt al lui Coppersmith funcționează doar dacă aveți două mesaje cu umplutură aleatoare, dar criptate cu același modul, ceea ce nu le am aici din cauza faptul că se generează un modul diferit de fiecare dată când rulez binarul.
Sunt încă un începător când vine vorba de cripto, așa că s-ar putea să fi greșit în privința acestor atacuri și s-ar putea să fi omis ceva evident.
Cred că vulnerabilitatea ar putea fi legată de dimensiunea căptușelii, deoarece mesajul căptușit este doar jumătate din lungimea modulului.
Nu vreau neapărat soluția, ci doar un ghiont în direcția corectă. Mulțumiri.