¿Cómo funciona el cifrado AES / Rijndael en general?
Esta página tiene una guía divertida de A Stick Figure para el Advanced Encryption Standard (AES) que parece fácil de entender, aunque parece tener más de 50 imágenes, por ejemplo, estas dos:
y
Es demasiado para duplicarlo todo aquí, pero si tiene que tener una imagen todo en uno, es esta:
O bien, hay una explicación más compacta en http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
El método de cifrado de Rijndael se basa en reemplazar, cambiar y realizar operaciones xor en bytes. El método se ve así:
- A partir de la clave de 128 bits, Rijndael genera 10 claves de 128 bits cada una.
- Estas claves se colocan en matrices 4x4.
- El texto plano también se divide en matrices 4x4 (128 bits cada una).
- Cada uno de los elementos de texto sin formato de 128 bits se procesa en 10 rondas (10 rondas para claves de 128 bits, 12 para 192, 14 para 256).
- Después de la décima ronda se genera el código.
- Cada byte individual se sustituye en un cuadro S y se reemplaza por el recíproco en GF (2 8).
- Luego se aplica una matriz de módulo 2 en cuanto a bits, seguida de una operación XOR con 63.
- Las líneas de las matrices se ordenan cíclicamente.
- Las columnas de la multiplicación de la matriz se intercambian en GF (2 8).
- Las subclaves de cada ronda están sujetas a una operación XOR.
El nivel de seguridad de este método de cifrado aumenta si Rijndael se realiza varias veces con diferentes subclaves.
¿Cómo funciona Ubuntu Full Disk Encryption?
Yo creo que funciona mediante el cifrado de una partición con LUKS (configuración predeterminada con AES), y luego se pone algunos volúmenes en él con LVM (como /
, intercambio) y descifra y montajes ellos en el arranque después de introducir una contraseña. Y hay una partición de arranque normal (no encriptada) que arranca lo suficiente como para pedir la frase de contraseña.
the_simple_computer's Guide to Full Disk Encryption with Ubuntu (Actualizado el 28 de junio de 2015) dice que se trata de cómo funciona el cifrado del instalador predeterminado y menciona que el arranque dual no funcionaría (al menos no fuera de la caja), la unidad debe usar MBR así que " si su computadora tiene UEFI, la distribución se instalará en el modo BIOS heredado para que no pueda usar el Arranque seguro " y " también le da un tamaño de intercambio igual al de la RAM de su sistema (a menudo innecesario) y usted no tengo elección sobre qué tipo de cifrado se utiliza " .
¿Qué tan rápido es el cifrado?
Si lo ejecuta cryptsetup benchmark
, ejecutará pruebas y le informará sobre qué tan rápido toma el cifrado solo, observe las líneas aes-xts predeterminadas (actualmente):
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
La velocidad de lectura promedio de un disco duro podría ser de 80-160 MB / s, por lo que no durará mucho más que una lectura normal, y es posible que los sectores de solo lectura ya hayan sido descifrados mientras aún espera el disco duro para leer más.
Un SSD posiblemente podría ser más rápido, tal vez 200-550MB / s, por lo que podría notarlo. Pero, las lecturas aleatorias podrían ser más lentas, y he leído que las velocidades de SSD pueden disminuir después del uso (¿tal vez cuando la unidad se llena por completo y tiene que comenzar a "borrar" sectores?)
¿Cómo puede la computadora cifrar / descifrar completamente toda la unidad en solo unos segundos (no toma más tiempo arrancar o apagar)?
No tiene que descifrar todo primero. El cifrado (LUKS) funciona en bloques de datos , puede descifrar aleatoriamente cualquier bloque y actúa como una capa entre los datos cifrados de la unidad y lo que ve el sistema de archivos.
Cuando el sistema de archivos quiere ver cualquier bloque de datos, LUKS descifra ese bloque primero y luego entrega los datos descifrados al sistema de archivos. Primero espera a que la unidad lea el bloque de datos (al igual que sin usar cifrado), y solo tiene un retraso adicional para el descifrado de ese bloque único (o pocos bloques) de datos , y si el descifrado es más rápido que la unidad puede leer, el descifrado podría finalizar antes de que la unidad lea el siguiente bloque de datos.
Entonces, al igual que un sistema de archivos normal no necesita leer todo el disco para leer un archivo, cuando se agrega el cifrado tampoco necesita leer todo el disco, y no hace las cosas mucho más lentas.
Los datos en el disco duro siempre están encriptados , por lo que no hay nada que hacer al apagar, excepto olvidar la clave.
Esto será un poco simplificado, pero intentaré pasar por el proceso de acceder a un archivo en un sistema de archivos encriptado.
Por ejemplo, digamos que al comienzo del sistema de archivos cifrados hay una tabla de archivos; Digamos que queremos leer
/foo.bar
. Entonces, lo primero que hacemos es leer el comienzo de la partición, descifrarla y buscar el archivo que queremos; Digamos que dice que el archivo comienza en 0x10000000 bytes. Entonces, para leer, comenzamos a leer desde el disco en esa ubicación y descifrarlo; Del mismo modo, para escribir, podemos cifrar los nuevos contenidos y escribirlos en esa nueva ubicación.Esperemos que esto ayude a aclarar cualquier confusión en el proceso.
fuente
El procesador utiliza un conjunto de instrucciones dedicado. Es posible por eso, AES-NI . Permite un cifrado y descifrado rápidos o puede decir que reduce la sobrecarga. Es rápido porque es una implementación de hardware, como se explica aquí .
Puede verificar los impactos en el rendimiento aquí y valen la pena para mayor seguridad.
fuente
Las computadoras modernas pueden realizar miles de millones de operaciones por segundo, por lo que no me sorprende que el cifrado y el descifrado sean rápidos.
Así es como calificaría intuitivamente la rapidez con que las computadoras hacen las cosas:
El otro bit clave a entender es que el funcionamiento no necesita descifrar todo el disco duro para iniciar el sistema. Más bien, el sistema operativo sabe cómo descifrar solo las partes del disco duro que necesita sobre la marcha, y lo mismo ocurre con la escritura.
Intuitivamente, no me sorprende que el cifrado de disco completo no tenga un gran impacto en el rendimiento, ya que imagino que el cuello de botella es el disco.
Por supuesto, estas intuiciones no siempre coinciden con la realidad. Por ejemplo, en realidad, ha habido casos en los que el cifrado de disco completo ha causado un notable impacto en el rendimiento. Pero por lo general, estos se resuelven después de que los desarrolladores pasan por algunas rondas de optimizaciones de desarrollo.
fuente