"Armoring" una stringa crittografata produce sempre la stessa lunghezza di output se il testo in chiaro aveva la stessa lunghezza?

3

Ho intenzione di crittografare numerose stringhe di testo normale che hanno tutte la stessa lunghezza iniziale. Pianifico sulla crittografia con la chiave AES-128 bit utilizzando GPG. Ho intenzione di "armare" l'output in caratteri alfanumerici. Il testo normale sarà probabilmente inferiore o uguale a 128 bit (sarà un numero fisso una volta impostato)

Il mio caso d'uso è molto sensibile al numero di caratteri che vengono creati e il fatto che i dati crittografati siano sempre della stessa lunghezza (o che conosciamo il limite superiore) è richiesto.

È previsto che tutte le mie uscite abbiano la stessa lunghezza? C'è un modo per conoscere la lunghezza massima o forzare l'output a essere sempre della stessa lunghezza?

    
posta nanotek 08.11.2017 - 23:22
fonte

1 risposta

5

L'armatura ASCII produce la stessa lunghezza di output per lo stesso input di lunghezza, dove l'input per l'armoring ASCII è il testo crittografato. Tuttavia, la crittografia eseguita prima dell'armatura non produce necessariamente la stessa lunghezza dell'output di lunghezza uguale poiché la crittografia simmetrica in GPG implica anche la compressione.

Quindi, la lunghezza dei dati crittografati e quindi la lunghezza dei dati corazzati dipende non solo dalla lunghezza dell'input ma anche da quanto è buono l'input può essere compresso. Puoi disattivare la compressione con --compression-level 0 .

Ma anche se hai disattivato la compressione, la lunghezza dell'output potrebbe essere diversa dal nome del file di input diverso. Pertanto, dovresti leggere da stdin e scrivere su stdout (ad esempio usare gpg come pipe) invece di specificare un nome di file come argomento per la crittografia.

    
risposta data 09.11.2017 - 05:54
fonte

Leggi altre domande sui tag