Pad per molti casi sui dati delle immagini, come procedere?

3

Ho dati di immagini grezzi che sono crittografati con XOR con un blocco temporaneo di dimensioni fisse ripetuto su tutta la lunghezza dell'immagine. So quale sia il formato del contenitore di dati immagine in modo da poter recuperare con successo i primi 6 byte della chiave.

Ma è fin qui, non ho idea di come procedere .. Ci sono delle relazioni tra pixel adiacenti? Qualche ricerca è stata fatta sull'argomento, e se c'è, come? Ho cercato per ore senza alcun risultato.

Modifica

Il file è un'immagine BMP di Windows ( BM numero magico) con un BITMAPINFOHEADER . Ecco perché posso indovinare correttamente i primi 6 byte e qualche altro byte in mezzo.

La chiave è un flusso di 337 byte generati da un PRNG, più specificamente, Mersenne Twister. Quindi la chiave potrebbe essere considerata casuale per ora.

In questo momento, tutto quello che mi rimane è, beh, la differenza XOR tra due linee nell'immagine. C'è un modello, io proprio non so cosa farne esattamente.

    
posta Khaled Nassar 09.03.2013 - 20:56
fonte

2 risposte

4

Hai una chiave da 337 byte ripetuta fino alla nausea e poi XORed con tutti i bit di un file immagine.

Probabilmente puoi sfruttare alcuni fattori del BMP, ad esempio come ha Padding (alla fine di ogni riga del pixel dati quindi ogni riga è un multiplo di 4 byte e tipicamente sarebbe zero. Quindi potresti indovinare l'altezza / larghezza dell'immagine, trovare dove dovrebbe essere il padding e quindi impostare i bit della chiave in quei punti.

Forse ci sono altre proprietà dell'immagine che puoi sfruttare; ad esempio, la scarsità sotto una trasformazione sfavorevole (simile al rilevamento compresso) e può modificare ogni bit per vedere se porta a un'immagine migliore.

    
risposta data 10.03.2013 - 10:04
fonte
3

La crittanalisi classica del pad a più riprese (ovvero il cifrario di Vigenère) riguarda la crittografia di un testo ; l'attacco utilizza quindi la frequenza di lettere e coppie di lettere e completa parole parziali, ogni volta che propagano i risultati (quando si conosce un byte di testo in chiaro, si conosce il byte chiave corrispondente e quindi è possibile decodificare tutti i byte in cui è stato utilizzato quel byte chiave , che sono facili da individuare formano un'ipotesi sulla lunghezza della chiave). Vedi ad esempio questo motore di decrittografia automatico .

Con un'immagine, dovrai lavorare a modo tuo a seconda del livello di ridondanza strutturale nel formato del file. Quindi dipende molto sul formato esatto del file: è un BMP, PNG, JPEG? I formati più compressi possono darti dei problemi, perché la compressione riguarda esattamente il rintracciamento e la rimozione delle ridondanze (per ridurre le dimensioni del file). Non sto affermando che la compressione rende sicuro molti pad , ma solo che richiederà un maggiore sforzo da parte dell'utente malintenzionato.

Se conosci già i primi 6 byte della chiave e supponi che la chiave sia breve (ad esempio 10 byte o meno), puoi eseguire una ricerca esauriente sui byte mancanti. Se la chiave è una stringa di caratteri, potrebbe essere "significativa": ad es. se inizia con platyp allora è probabile che i prossimi due byte chiave saranno us .

    
risposta data 09.03.2013 - 23:50
fonte

Leggi altre domande sui tag