Modos de Cifrado
Modos de Cifrado
Modos de Cifrado
ECB - Electronic Code Book Mode: ECB ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology). Este modo de cifrado es el ms simple de todos, pues se limita a partir el mensaje en bloques y cifrarlos por separado.
VENTAJAS La posibilidad de romper el mensaje en bloques y cifrarlos en paralelo o el acceso aleatorio a diferentes bloques.
DESVENTAJAS
El hecho de cifrar los bloques por separado implica que cuando se cifre un bloque con cierto valor, siempre se obtendr el mismo resultado. Esto hace posible los ataques de diccionario. Cuando se cifran varios bloques y se envan por un canal inseguro, es posible que un adversario elimine ciertos bloques sin ser detectado, o que capture algunos bloques y los reenve ms adelante.
CBC - Cipher Block Chaining Mode: CBC ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology). Este modo de cifrado es una extensin de ECB que aade cierta seguridad. El modo de cifrado CBC divide el mensaje en bloques y usa XOR para combinar el cifrado del bloque anterior con el texto plano del bloque actual. Como no se dispone de un texto cifrado con el que combinar el primer bloque, se usa un vector de inicializacin IV (nmero aleatorio que puede ser publicamente conocido). El uso del vector de inicializacin es importante, pues de no usarlo, podra ser susceptible de ataques de diccionario. Tambin es necesario que el IV sea aleatorio y no un nmero secuencial o predecible.
VENTAJAS: usa XOR para combinar el cifrado del bloque anterior con el texto plano del bloque actual.
DESVENTAJAS: La necesidad de realizar el cifrado de forma secuencial (no puede ser paralelizado). Tambin hay que tener en cuenta la posibilidad de realizar ataques de reenvo de un mensaje entero (o parcial).
CTR - Counter Mode: Mientras que ECB y CBC son modos basados en bloques, CTR simula un cifrado de flujo. Es decir, se usa un cifrado de bloque para producir un flujo pseudo aleatorio conocido como keystream. Este flujo se combina con el texto plano mediante XOR dando lugar al cifrado. Para generar el keystream se cifra un contador combinado con un nmero aleatorio (nonce) mediante ECB y se va incrementando. El valor del contador puede ser pblicamente conocido, aunque es preferible guardarlo en secreto. Es necesario que el valor de nonce+contador lo conozcan ambos lados de la comunicacin.
VENTAJAS: la posibilidad de precalcular el keystream (y/o trabajar en paralelo), el acceso aleatorio al keystream o que revela poqusima informacin sobre la clave.
DESVENTAJAS Reutilizar un contador en la misma clave puede ser desastroso, pues se generar de nuevo el mismo keystream. Modificar bits en el texto plano es muy sencillo, pues modificando un bit del cifrado se modificar el bit del texto plano correspondiente (Bit-flipping attacks). Por lo que es adecuado usar este modo de cifrado junto con una verificacin de la integridad del mensaje.
OFB - Output Feedback Mode: OFB ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology). Como CTR es otro cifrado de flujo. En este caso el keystream se genera cifrando el bloque anterior del keystream, dando lugar al siguiente bloque. El primer bloque de keystream se crea cifrando un vector de inicializacin IV.
VENTAJAS En OFB se pueden precalcular los keystream (aunque no se puede realizar en paralelo) y a diferencia de CTR no da problemas al ser usado con cifrados de bloque de 64 bits. Adems, como en el caso de CTR, revela muy poca informacin sobre la clave.
DESVENTAJAS Comparte con CTR sus desventajas: reutilizar un contador en la misma clave puede ser desastroso y permite Bit-flipping attacks.
CFB - Cipher Feedback Mode: CFB ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology) y es muy similar a OFB. Para producir el keystream cifra el ltimo bloque de cifrado, en lugar del ltimo bloque del keystrema como hace OFB.
DESVENTAJAS: Como en OFB reutilizar un contador en la misma clave puede ser desastroso y permite Bitflipping attacks.