El xor–encrypt–xor ( XEX ) es un modo de operación (modificable) de un cifrado de bloque . En el modo de libro de códigos modificado con robo de texto cifrado ( modo XTS ), es uno de los modos de operación más populares para el cifrado de disco completo . XEX también es una forma común de blanqueamiento de claves y forma parte de algunas propuestas de tarjetas inteligentes . [1] [2]
En 1984, para proteger a DES contra ataques de búsqueda exhaustiva, Ron Rivest propuso DESX : XOR una clave de pre- blanqueo para el texto sin formato, cifrar el resultado con DES usando una clave secreta y luego XOR una clave de post-blanqueo para el resultado cifrado para producir el resultado final. texto cifrado. [3]
En 1991, motivados por la construcción DESX de Rivest, Even y Mansour propusieron un esquema mucho más simple (el " esquema Even-Mansour de dos claves "), que sugirieron que era quizás el cifrado de bloques más simple posible: XOR el texto plano con una clave de preblanqueo, aplicar una permutación sin clave públicamente conocida (en la práctica, una permutación pseudoaleatoria ) al resultado, y luego XOR una clave posterior al blanqueamiento del resultado permutado para producir el texto cifrado final. [3] [4]
El estudio de cifrados de bloques simples estilo Even-Mansour brinda información sobre la seguridad de los cifrados Feistel (cifrados tipo DES) y ayuda a comprender el diseño de cifrado de bloques en general. [5]
Orr Dunkelman , Nathan Keller y Adi Shamir demostraron más tarde que era posible simplificar aún más el esquema Even-Mansour y aún conservar la misma seguridad demostrable, produciendo el " esquema Even-Mansour de clave única ": XOR el texto sin formato con la clave, aplique una permutación sin clave públicamente conocida al resultado y luego XOR la misma clave al resultado permutado para producir el texto cifrado final. [3] [6]
En 2004, Rogaway presentó el esquema XEX con "ajustes" clave y dependientes de la ubicación: [7]
Rogaway utilizó XEX para permitir el procesamiento eficiente de bloques consecutivos (con respecto al cifrado utilizado) dentro de una unidad de datos (por ejemplo, un sector de disco) para el cifrado de todo el disco . [7]
Muchos sistemas de cifrado de disco completo ( BestCrypt , dm-crypt , FreeOTFE , TrueCrypt , DiskCryptor, geli de FreeBSD , software de cifrado de disco softraid OpenBSD y FileVault 2 de Mac OS X Lion) admiten el modo de libro de códigos modificado basado en XEX con robo de texto cifrado ( modo XTS). ).