Dependiendo de la seguridad que está tratando de lograr, esto podría no ser posible: se necesita una cierta cantidad de expansión de salida para proporcionar protección contra ciertos ataques.
Considere el caso de una base de datos que almacena registros de salud en forma de una lista de enfermedades que afectan a una persona; también, considere que la "presión arterial alta" se cifra a 0x1234abcd utilizando AES "normal" (o cualquier cifrado de bloque) en Modo BCE . (El BCE tiene otros problemas además de ser determinista, pero me centraré en ese aspecto aquí).
Un atacante podría no saber el significado de 0x1234abcd, ¡pero puede identificar fácilmente a todos los pacientes que comparten ese registro!
Es posible que se produzcan ataques más elaborados si el atacante tiene acceso de escritura a la base de datos: podrían, por ejemplo, insertar enfermedades aleatorias, mirar los textos cifrados correspondientes y construir una tabla con correspondencias de texto cifrado de texto simple.
Esta es la razón por la que los cifrados en bloque se utilizan casi exclusivamente en un modo de operación que expande la entrada en cierta longitud: La expansión es (entre otras cosas) necesaria para permitir el cifrado de múltiples mensajes en una sola clave.
Dependiendo del contenido de su base de datos, el ataque mencionado podría o no ser un problema, pero en la mayoría abrumadora de todas las aplicaciones, es conveniente que el BCE use CCA-secure cryptosystem, que es necesariamente probabilístico, y por lo tanto también se extiende en longitud.