Domanda

Vorrei aggiungere la crittografia AES a un prodotto software, ma sono preoccupato dall'aumento della dimensione dei dati.Immagino che i dati aumentino di dimensioni e quindi dovrò aggiungere un algoritmo di compressione per compensare.

È stato utile?

Soluzione

AES non espande i dati.Inoltre, l'output generalmente non sarà comprimibile;se intendi comprimere i tuoi dati, fallo prima di crittografarli.

Tuttavia, tieni presente che la crittografia AES è solitamente combinata con imbottitura, Quale Volere aumentare la dimensione dei dati (anche se solo di pochi byte).

Altri suggerimenti

AES non espande i dati, ad eccezione di alcuni byte di riempimento alla fine dell'ultimo blocco.

I dati risultanti non sono in ogni caso comprimibili, perché sono fondamentalmente casuali: nessun algoritmo basato su dizionario è in grado di comprimerli efficacemente.Una procedura consigliata consiste nel comprimere prima i dati e quindi crittografarli.

È normale comprimere i dati prima di crittografarli.Comprimerlo successivamente non funziona, perché i dati crittografati AES appaiono casuali (come per ogni buon codice, a parte eventuali intestazioni e quant'altro).

Tuttavia, la compressione può introdurre attacchi di canale laterale in alcuni contesti, quindi è necessario analizzarne l'utilizzo.Tali attacchi sono stati recentemente segnalati contro il VOIP crittografato:il succo è che sillabe diverse creano variazioni caratteristiche nel bitrate quando compresse con VBR, perché alcuni suoni si comprimono meglio di altri.Alcune (o tutte) le sillabe potrebbero quindi essere recuperabili con un'analisi sufficiente, poiché i dati vengono trasmessi alla velocità con cui vengono generati.La soluzione consiste nell'utilizzare la compressione CBR (meno efficiente) o nell'utilizzare un buffer per trasmettere a velocità costante indipendentemente dalla velocità dei dati in uscita dall'encoder (aumento della latenza).

AES trasforma i blocchi di ingresso da 16 byte in blocchi di uscita da 16 byte.L'unica espansione consiste nell'arrotondare i dati a un numero intero di blocchi.

Sono abbastanza sicuro che la crittografia AES non aggiunga nulla ai dati crittografati, poiché ciò fornirebbe informazioni sulle variabili di stato, e questa è una brutta cosa quando si tratta di crittografia.

Se vuoi combinare compressione e crittografia, eseguile in quest'ordine.Il motivo è che i dati crittografati (idealmente) sembrano dati totalmente casuali e gli algoritmi di compressione finiranno per rendere i dati più grandi, a causa della loro incapacità di comprimerli effettivamente e del sovraccarico della contabilità che viene fornito con qualsiasi formato di file compresso.

Se è necessaria la compressione, fallo prima di crittografare.

NO.L'unica modifica sarà una piccola quantità di riempimento per allineare i dati alla dimensione di un blocco

Tuttavia, se stai comprimendo il contenuto, tieni presente che dovresti farlo Prima crittografia.I dati crittografati dovrebbero generalmente essere indistinguibili dai dati casuali, il che significa che non verranno compressi.

@freespace e altri:Una delle cose che ricordo dalle mie lezioni di crittografia è che non dovresti comprimere i tuoi dati prima della crittografia, perché alcuni pezzi ripetibili di flusso compresso (come ad esempio le intestazioni di sezione) potrebbero rendere più semplice decifrare la crittografia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top