Ho qualche problema a capire la metodologia per un esercizio criptato che sto facendo. L'obiettivo dell'esercizio è recuperare una stringa segreta crittografata tramite un attacco chiave scelto su AES in modalità ECB.
Ho una funzione oracle che accetta una stringa come input, aggiunge la stringa segreta ad essa e restituisce la stringa crittografata AES-ECB-128, usando una chiave statica generata a caso.
oracle("text goes here!!") -> AES.encrypt("text goes here!!somesecretsomesecret", "staticrandomkey!")
Capisco come ottenere il testo in chiaro per la frase segreta usando il metodo descritto qui , e ho avuto successo nel recupero Stringhe segrete a 16 byte.
Quello che non capisco è, in che modo questo metodo può essere applicato a stringhe segrete più lunghe di 16 byte? A meno che non manchi qualcosa di ovvio, funziona solo per recuperare il primo blocco di un segreto aggiunto.