Las funciones de cifrado (cifrados de bloque) no pueden admitirse en una entrada de longitud arbitraria. Por lo tanto, incluso si cifra el archivo completo, la función de cifrado en sí misma lo dividirá en bloques y cifrará los bloques individualmente. Esto es similar al cifrado de registros individuales, excepto que el modo de operación dictará si / cómo estos bloques se mezclan entre sí.
Al cifrar cada registro individualmente, está haciendo algo similar al modo de operación del BCE. La diferencia es que usted mismo particionó los datos. Esto preserva la información sobre la estructura y cualquier ataque contra el BCE también se aplicará al enfoque de cifrado de registros individualmente (sin relleno aleatorio). Por ejemplo, si dos registros son iguales, podrá ver eso en el texto cifrado.
También al cifrar cada registro individualmente, no está llenando los bloques completamente, lo que será menos eficiente en términos de velocidad y almacenamiento.
Entonces, la respuesta corta es: es mucho mejor cifrar todo el archivo y usar un buen modo de operación para hacerlo (por ejemplo, CBC o XTS).
La única razón por la que consideraría no cifrar todo el archivo es si necesita descifrar los registros de manera selectiva de manera eficiente o reemplazar los registros. Cifrar todo el archivo significa recuperar un registro, debe descifrar todo el archivo hasta el registro en el que está interesado. Y cambiar cualquier parte de un registro individual significa volver a cifrar el resto de los datos. Si esto es una preocupación, hay formas estándar de hacer el cifrado sector por sector.