Se ho un carico utile di, ad es. 8 bit e voglio crittografarlo usando AES 128, dovrò aggiungere un padding casuale per rendere il testo in chiaro lungo 128 bit. Questo riempimento influisce sulla sicurezza di AES?
Se ho un carico utile di, ad es. 8 bit e voglio crittografarlo usando AES 128, dovrò aggiungere un padding casuale per rendere il testo in chiaro lungo 128 bit. Questo riempimento influisce sulla sicurezza di AES?
Poiché AES è un codice a blocchi con blocchi a 128 bit, può, per definizione, elaborare solo una voce a 128 bit. Per trasformarlo in un sistema in grado di crittografare e decodificare i messaggi di lunghezza arbitraria, è necessario utilizzare una modalità di funzionamento . Ogni modalità ha i suoi requisiti. La maggior parte richiede un IV che NON DEVE essere riutilizzato (se hai crittografato più messaggi con la stessa chiave, ogni messaggio ha bisogno del suo IV specifica) e alcune modalità hanno requisiti aggiuntivi (ad esempio in CBC, è fondamentale che le IV siano selezionate casualmente, in modo uniforme e in un modo che non può essere previsto da chi sceglie i dati da crittografare).
Alcune modalità richiedono anche "padding" nel caso in cui la lunghezza del messaggio di input non sia appropriata in qualche modo. Alcune modalità possono elaborare dati di input di lunghezza arbitraria (ad esempio CTR), mentre altri richiedono che i dati abbiano una lunghezza che è un multiplo della lunghezza del blocco (ad esempio CBC).
La maggior parte dei modelli di attacco che garantiscono la crittografia può essere facilmente trasformata in modelli di attacco attivi , in cui l'attaccante non solo desidera ispezionare i dati, ma può anche modificare dati. Pertanto, ogni volta che si utilizza la crittografia, normalmente è necessario anche l'integrità. Combinare la crittografia e un MAC è un'attività non banale, quindi è altamente raccomandato l'utilizzo di una modalità che combina entrambe le funzionalità. La modalità più standard che combina in modo sicuro crittografia e MAC è, all'inizio del 2016, GCM .
Se fai tutto correttamente, non ci sono ulteriori problemi con i dati in ingresso che sono brevi. Brevi dati sono comuni in, ad esempio, connessioni SSH.
Si noti, tuttavia, che mentre la crittografia protegge i dati contenuti , tende a filtrare i dati lunghezza . A seconda del tipo di dati che stai inviando, la sua lunghezza potrebbe rivelare molte informazioni agli estranei.
Non utilizzare il riempimento casuale . Il riempimento casuale non può essere controllato dal lato decrittografia, perché può essere qualsiasi cosa. Il riempimento casuale fornisce maggiore potenza agli attaccanti attivi (in SSL / TLS, vedi l'attacco POODLE , che sfrutta il riempimento casuale in SSL 3.0 ). Invece, se è necessario il padding, usa un padding deterministico che il ricevitore può controllare. È preferibile una modalità che non richiede il riempimento, poiché è più semplice elaborarla correttamente sul lato decrittografato (ovvero senza perdite di informazioni quando viene inviato un messaggio non valido).
Riepilogo: utilizza GCM.
No, il riempimento non influisce sulla sicurezza di AES.
È comunemente usato in modalità come CBC , PKCS # 7 padding è particolarmente popolare.
Tuttavia, se hai bisogno di riempire il tuo messaggio, è probabile che stai facendo qualcosa di sbagliato.
Innanzitutto puoi utilizzare la modalità CTR per sbarazzarti della necessità di riempire i tuoi messaggi e in secondo luogo dovresti usare crittografia autenticata (ad esempio AES- GCM ) comunque.
Leggi altre domande sui tag encryption aes