Risposta breve : non preoccuparti. Nella maggior parte dei casi, la scelta del metodo di riempimento non ha importanza.
Risposta più lunga: perché non ha importanza. Finché utilizzi le pratiche di progettazione crittografica appropriate, in particolare, purché i testi crittografati siano correttamente autenticati, non sono a conoscenza di in modo che la scelta del padding influenzi la sicurezza (con una eccezione, vedi sotto).
È vero che se non riesci ad autenticare i testi cifrati, allora ci possono essere degli attacchi, come spiega @Thomas. Poi di nuovo, se i testi cifrati non sono correttamente autenticati, probabilmente hai una serie di altri problemi, quindi non dovresti incolparlo sullo schema di riempimento. I crittografi sanno che se si cripta qualcosa, davvero dovrebbe essere l'autenticazione del testo cifrato ; non farlo è un classico errore da principiante che può aprire gravi falle nella sicurezza .
In breve, se stai seguendo buone pratiche di crittografia, la scelta del padding non dovrebbe avere un gran che per la sicurezza (e se non segui buone pratiche di crittografia, potresti avere problemi più grandi).
L'eccezione: un caso in cui è importante. OK, ora siamo pronti per la stampa fine. È qui che ammetto che quanto sopra è un po 'troppo semplicistico. C'è una situazione in cui la scelta del padding può essere molto importante per la sicurezza: resistenza all'analisi del traffico.
La crittografia non nasconde la lunghezza dei messaggi crittografati: il messaggio crittografato in genere rivela la lunghezza (o la lunghezza approssimativa) del messaggio crittografato. In alcuni contesti, questo può essere molto problematico. Per esempio, ci sono contesti in cui le informazioni rivelanti la lunghezza rivelano l'intero negozio: rivela le cose che stavi cercando di mantenere riservate. (Vedi, ad esempio, gli attacchi ai canali laterali di Chen et al sorprendenti su applicazioni Web crittografate SSL . cose, hanno dimostrato che un intercettatore che osserva le lunghezze dei pacchetti di rete mentre l'utente sta digitando una query di ricerca web può dedurre quale sia la query di ricerca. Penso che Google abbia risolto il problema, ma è stato un esempio sbalorditivo di un rischio generale precedentemente noto.)
Se ti trovi in un contesto in cui le lunghezze dei messaggi rivelano informazioni riservate, allora hai un problema. La difesa standard consiste nel riempire i messaggi prima della crittografia, in modo che la lunghezza del testo cifrato non rivelhi nulla sulla lunghezza dei messaggi. Un modo per farlo è quello di riempire tutti i messaggi a una lunghezza fissa, prima della crittografia. Un altro (meno sicuro) modo di farlo è aggiungere padding di una lunghezza casuale, con sufficiente riempimento casuale che il rumore casuale oscuri il segnale e impedisca a un utente malintenzionato di apprendere informazioni sufficienti sulle lunghezze per fare del male. Quindi, in un contesto in cui dobbiamo evitare l'analisi del traffico, la progettazione dello schema di riempimento diventa critica e gli schemi di riempimento standard probabilmente non saranno sufficienti: potresti dover fare qualcosa di speciale.