cerrar-sesion editar-perfil marker video calendario monitor periodico fax rss twitter facebook google-plus linkedin alarma circulo-derecha abajo derecha izquierda mover-vertical candado usuario email lupa exito mapa email2 telefono etiqueta

400430402. Dentro del algoritmo de encriptación del disco de Windows Vista

Escrito por Redacción en Tema de portada
no hay comentarios Haz tu comentario
Imagen de logotipo de facebook Imagen de logotipo de Twitter Imagen de Logotipo de Google+ Imagen de logotipo de Linkedin

Para proteger la confidencialidad de los datos almacenados en los discos duros, se usa con frecuencia aplicaciones de seguridad (denominadas aplicaciones de “encriptado de disco”) Las ediciones Vista Enterprise y Ultimate de Windows, por ejemplo, usan Bitlocker Drive Encryption, que encripta todos los datos en el volumen del sistema. Y en el centro mismo de Bitlocker está el algoritmo de encriptado AES-CBC + Elephant diffuser (download.microsoft.com/download/0/2/3/ 0238acaf-d3bf-4a6d-b3d6-0a0be4bbb36e/ BitLockerCipher200608.pdf).

La figura 1 presenta una panorámica del AES-CBC + Elephant diffuser (un difusor –“diffuser”- es una función para mezclar datos). Como podemos ver, hay cuatro operaciones separadas en cada encriptado. Al texto simple se le pasa por XOR con una clave de sector, se ejecuta a través de dos difusores diferentes, y después se le encripta con Advanced Encription Standard (AES) en modo de cadena de cifrado en bloque o cipher-block chaining (CBC). El difusor A se ejecuta AC veces y el difusor B se ejecuta BC veces. En la implementación actual de Bitlocker, AC=5 y BC=3.

Figura 1: Panorámica de AES-CBC+ Elephant diffuser.

El texto simple y la clave se ponen en parámetros; en el presente artículo, los parámetros que usamos son los siguientes:
– El texto simple es 512 bytes. El tamaño del sector estándar actual.
– La clave de ajuste es 256 bits. Los primeros 128 bits sirven como clave del sector de control y los últimos 128 bits como el vector Inicial (IV) para AES-CBC.
– Usamos las versiones de claves de 256 bits de AES para mayor seguridad.

((Las ediciones Vista Enterprise y Ultimate de Windows, por ejemplo, usan Bitlocker Drive Encryption))

Comprobación de la metodología

Para examinar la fortaleza criptográfica de AES-CBC+ Elephant, ejecutamos cuatro pruebas en el código:
Test1 comprueba si el cambio de cualquier bit en el texto de cifrado irá asociado a cambios en algún bit(s) concreto en el texto sencillo. Ello garantiza que la manipulación en el texto de cifrado no nos llevará a un cambio predecible en el texto simple (un ataque de lanzamiento de bits, en el que el lanzamiento de un bit en el texto de cifrado irá asociado a un lanzamiento de un cierto bit en el texto sencillo”).
Test2 comprueba si el cambio de cualquier bit en el texto sencillo irá asociado a cambios en algún bit(s) concreto en el texto de cifrado. Esto garantiza que la manipulación en el texto sencillo no nos llevará a un cambio predecible en el texto de cifrado.
Test3 mide el efecto avalancha en la dirección de la encriptación (el efecto de cambiar un bit de texto simple en el texto de cifrado). Un buen cifrado tendrá aproximadamente la mitad de bits que el texto de cifrado que se ha cambiado debido al cambio de un solo bit en el texto simple.
Test4 mide el efecto avalancha en la dirección del desencriptado (el efecto de cambiar un bit del texto de cifrado en el texto simple). Eso es para procesar la autentificación del pobre; es decir, el cambio de un bit en el texto de cifrado sugiere que aproximadamente la mitad del texto simple estará revuelto.

AES-CBC + Elephant Diffuser

Primero comprobamos la implementación actual del cifrado con las cuatro pruebas. El cifrado las pasó todas. A continuación estudiamos la capacidad para reducir el número de ejecuciones del Difusor A y del Difusor B para mejorar las prestaciones. Obtuvimos los siguientes resultados:
Test1. El Difusor A debería funcionar al menos dos veces.
Test2. Se puede omitir la capa de difusión y el cifrado pasa.
Test3. El Difusor B debería funcionar al menos una vez.
Test4. El Difusor A debería funcionar al menos dos veces.

Lo que sacamos en conclusión es que podemos conseguir las máximas prestaciones (sin sacrificar las propiedades estadísticas del AES-CBC + Elephant diffusor ) cuando ejecutamos el Difusor A dos veces y el Difusor B una vez.

AES-ECB + Elephant Diffuser

Con la expansión del uso de procesadores de doble núcleo, es posible acelerar la encriptación mediante la paralelización. Con esto en mente, sustituimos la capa AES-CBC (que es secuencial por definición) por la capa AES-ECB (que se puede paralelar con facilidad). La figura 2 muestra el cifrado modificado. Sólo necesitamos 128 bits como clave del sector a pasar por XOR con el texto sencillo.

((Cuando aplicamos las cuatro pruebas, los resultados muestran que si usamos la implementación actual de la capa de difusores, el cifrado modificado pasa todas las pruebas))

Observemos que añadimos un contador de bloques a la clave del sector de unidades antes de pasarlo por XOR con el texto simple. Este contador tiene el valor de 0 para el primer texto simple y se incrementa por 1 para cada texto simple dentro del bloque (hasta que alcanza el valor de 31). Este contador se añadió al diseño original para hacer que cada texto simple fuera dependiente de su posición dentro del bloque.

Figura 2: Panorámica de AES-CBC+ Elephant diffuser.

Cuando aplicamos las cuatro pruebas, los resultados muestran que si usamos la implementación actual de la capa de difusores, el cifrado modificado pasa todas las pruebas. Con esto en mente, hemos examinado después si podríamos reducir el número de ejecuciones del Difusor A y del Difusor B, y así aumentar las prestaciones. Obtuvimos los siguientes resultados:
Test1. El Difusor A debería funcionar al menos dos veces.
Test2. Se puede omitir la capa de difusión y el cifrado pasa.
Test3. El Difusor B debería funcionar al menos dos veces.
Test4. El Difusor A debería funcionar al menos dos veces.

De estos resultados, sacamos en conclusión que se puede conseguir las máximas prestaciones sin sacrificar las propiedades estadísticas del AES-ECB + Elephant diffusor cuando ejecutamos tanto el Difusor A como el Difusor B dos veces cada uno.

Análisis de las prestaciones

Hemos estudiado las prestaciones de AES-CBC + Elephant diffuser (la implementación original y la recomendada aquí para las máximas prestaciones) y el propuesto AES-CBC + Elephant diffuser en un solo procesador, y después hemos calculado sus prestaciones en un procesador de doble núcleo.

Las mediciones que comunicamos son ciclos de reloj del procesador en un procesador PIV 3-GHz que funciona con Windows Vista. El entorno de programación es Microsoft VC++

Un solo procesador

Nuestra implementación optimizada por el Difusor A y el Difusor B (usando un mecanismo de desenrollado de bucles) muestra que:
– Se necesitan 4.560 ciclos de reloj para la implementación actual de la capa de difusión.
– 256 ciclos (128 para el proceso XOR de la clave de sector y los otros 128 en el proceso XOR del modo CBC, usando la operación 32-bit XOR).
– 13.888 ciclos de reloj para la encriptación AES (usando lenguaje de ensamblaje optimizado).

Es decir, se necesitan 18.704 ciclos de reloj para encriptar un sector de 512 bytes con el AES-CBC + Elephant diffuser. Este valor puede reducirse a 15.854 si utilizamos (AC=2 y BC=1); lo que resulta en una mejora del 18 por ciento en el tiempo total de ejecución.

Con el AES-ECB + Elephant Diffuser
– Se necesitan 4.560 ciclos de reloj para la implementación actual de la capa de difusión.
– 128 relojes para el proceso XOR de la clave de sector.
– 32 relojes para la agregación del contador.
– 13.888 ciclos de reloj para el encriptado AES.

En este caso, se usan 18.608 ciclos de reloj para encriptar un sector de 512 bytes con el AES-ECB + Elephant diffuser. Este valor puede reducirse a 16.328 si se utilizan los valores mínimos recomendados para conseguir mejores prestaciones (AC=2 y BC=2). Ello equivale a entorno un 14 por ciento de mejora en el tiempo total de ejecución.

Procesador doble

Para aprovechar las ventajas de los procesadores de doble núcleo, hemos investigado AES-ECB + Elephant diffuser con la capa AES-ECB (que se puede paralelar con facilidad). Aquí, calculamos el tiempo de procesado cuando se usa un procesador de doble núcleo. Para simplificar, hemos dividido el tiempo de procesado entre dos cuando se puede realizar la paralelización.

(Hemos estudiado las prestaciones de AES-CBC + Elephant diffuser (la implementación original y la recomendada aquí ) y el propuesto AES-CBC + Elephant diffuser en un solo procesador)]

En el caso de AES-CBC + Elephant diffuser, se puede paralelar el pasar por XOR con la clave de sector, así que se tarda sólo 64 ciclos de reloj. No se puede paralelar ni la capa de difusión ni AES-CBC (por definición son seriales). Así, los tiempos de procesado estimados son 15.696 (cuando AC=5 y BC=3) y 12.846 (cuando AC=2 y BC=1) ciclos de reloj para encriptar un sector de 512 bytes.

En el caso de AES-ECB + Elephant diffuser, como se puede paralelar la agregación del contador, se tarda sólo 16 ciclos de reloj. El paso por XOR con la clave de sector se puede paralelar, así que sólo tarda 64 ciclos de reloj. La capa de difusión no se puede paralelar. Pero como la capa AES-ECB se puede paralelar, los tiempos de procesado estimados son 11.584 (cuando AC=5 y BC=3) y 9.304 (cuando AC=2 y BC=2) ciclos de reloj para encriptar un sector de 512 bytes. Lo que es entre un 60 y un 100 por cien más rápido que la implementación original de AES-CBC + Elephant diffuser (dependiendo de los valores de AC y BC).

Seguridad

Supongamos que hay un atacante atacando dos discos duros idénticos, uno encriptado con AES-CBC + Elephant diffuser y el otro encriptado solo con AES-CBC. Vamos a darle al atacante la clave de ajuste de la figura 1; ello implica que el atacante puede ahora hacer funcionar la capa de difusión para cualquier texto simple. En otras palabras, la capa de difusión se hace transparente para el atacante. Todo lo que le queda al atacante es atacar la capa AES-CBC, que es el mismo problema que tiene cuando ataca el otro disco duro (encriptado sólo con el modo AES-CBC). Ello implica que, aunque ayudamos bastante al atacante al suministrarle la clave de ajuste, todavía tiene que atacar la capa AES-CBC. Lo que muestra que atacar el AES-CBC + Elephant diffuser no es más fácil que atacar solamente AES-CBC. Así, el AES-CBC + Elephant diffuser es, cuando menos, tan seguro como AES-CBC—de hecho tiene mejores características estadísticas porque pasa cuatro pruebas estadísticas, mientras que AES-CBC sólo pasa una.

Observemos que este bosquejo de prueba de seguridad es válido para todos los valores de AC y BC, pero no recomendamos que se use AC con menos de 2 o BC con menos de 1 para tener buenas propiedades estadísticas. El pasar la prueba Test1 implica que AES-CBC + Elephant diffuser no sufre un ataque de lanzamiento de bits, como lo hace el modo AES-CBC.

((Nuestro análisis muestra que este cifrado posee buenas propiedades de difusión que puede reducir los ataques de manipulación. Hemos establecido un límite más bajo en el número de ciclos a usar))

Al usar la misma metodología, se puede demostrar que AES-ECB + Elephant diffuser es, como mínimo, tan seguro como AES-ECB, y al proporcionar al atacante la clave de ajuste de la Figura 2, tendrá que atacar la capa AES-ECB. AES-ECB + Elephant diffuser pasa las cuatro pruebas estadísticas, mientras que AES-ECB pasa sólo una prueba. Lo que demuestra que AES-ECB + Elephant diffuser tiene mejores propiedades estadísticas que AES-ECB. Al pasar por XOR el texto simple con la clave de sector de unidad, el bloque de 512 bytes se hace dependiente del sector. Y al añadir el contador de la Figura 2, cada bloque de 16 bytes (dentro de los 512) es dependiente de su posición. Esto es para reducir la posibilidad de repetir ataques.

Conclusión

Para resumir, en el presente artículo, hemos estudiado el nuevo AES-CBC + Elephant diffuser – el algoritmo de encriptación del disco de Windows Vista. Nuestro análisis muestra que este cifrado posee buenas propiedades de difusión que puede reducir los ataques de manipulación. Y a partir de nuestro análisis, hemos establecido un límite más bajo en el número de ciclos a usar por cada uno de los dos difusores; dichos valores son AC=2 y BC=1. Con estos valores, el cifrado no perderá sus propiedades estadísticas. Lo que es más, seguirá siendo, cuanto menos, tan seguro como el modo AES-CBC. Por otro lado, el uso de estos valores aumenta las prestaciones totales del cifrado en aproximadamente un 18 por ciento.

Proponemos además un nuevo AES-ECB + Elephant diffuser de cifrado que tiene unas propiedades similares a AES-CBC + Elephant diffuser Y a partir de nuestro análisis, hemos establecido un límite más bajo en el número de ciclos a usar por cada uno de los dos difusores; dichos valores son AC=2 y BC=2. Se pueden usar estos valores, y el cifrado no perderá sus propiedades estadísticas y será, cuanto menos, tan seguro como el modo AES-ECB. Por otro lado, el uso de estos valores aumenta las prestaciones totales del cifrado en aproximadamente un 14 por ciento.

Mientras que el AES-ECB + Elephant diffuser tiene más o menos la misma velocidad que AES-CBC + Elephant diffuser cuando se utiliza un solo procesador, es entre un 60 y un 100 por cien más rápido que AES-CBC + Elephant diffuser (dependiendo de los valores de AC y BC) cuando se utiliza un procesador de doble núcleo. Esta aceleración es inversamente proporcional al número de núcleos de procesador utilizados. El código fuente completo que acompaña al presente artículo está disponible online (sólo con fines demostrtivos, para su desarrollo, hay que contactar con Microsoft); véase [www.ddj.com/code/

Noticias relacionadas

Comentarios

No hay comentarios.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Debes haber iniciado sesión para comentar una noticia.