A seconda della sicurezza che si sta tentando di raggiungere, ciò potrebbe non essere possibile: una certa quantità di espansione dell'output è necessaria per fornire protezione contro determinati attacchi.
Considerare il caso di un database che memorizza i record sanitari sotto forma di un elenco di malattie di cui una persona è affetta; inoltre, considera che "alta pressione sanguigna" crittografa a 0x1234abcd usando "semplice" AES (o qualsiasi cifra a blocchi) in Modalità BCE . (La BCE ha altri problemi oltre a essere deterministica, ma mi concentrerò su questo aspetto qui.)
Un utente malintenzionato potrebbe non conoscere il significato di 0x1234abcd, ma può facilmente identificare tutti i pazienti che condividono quel record!
Gli attacchi più elaborati sono possibili se l'attaccante ha accesso in scrittura al database: potrebbero, ad esempio, inserire malattie casuali, esaminare i corrispondenti numeri cifrati e costruire una tabella con corrispondenze di testo in chiaro in chiaro.
Questo è il motivo per cui i cifrari a blocchi vengono utilizzati quasi esclusivamente in una modalità di funzionamento che espande l'input di una certa lunghezza: L'espansione è (tra le altre cose) necessaria per consentire la crittografia di più messaggi con una sola chiave.
A seconda del contenuto del tuo database, l'attacco menzionato potrebbe o potrebbe non essere un problema, ma nella stragrande maggioranza di tutte le applicazioni, è preferibile che ECB usi un CCA-secure cryptosystem, che è necessariamente probabilistico, e quindi anche esteso in lunghezza.