Wie funktioniert die AES / Rijndael-Verschlüsselung im Allgemeinen?
Diese Seite bietet eine unterhaltsame Strichmännchen-Anleitung zum Advanced Encryption Standard (AES) , die leicht zu verstehen ist, obwohl es sich um mehr als 50 Bilder handelt, zum Beispiel diese beiden:
und
Es ist viel zu viel, um alles hier zu duplizieren, aber wenn Sie ein All-in-One-Bild haben müssen, ist es dieses:
Oder es gibt eine kompaktere Erklärung unter http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
Die Rijndael-Verschlüsselungsmethode basiert auf dem Ersetzen, Ändern und Ausführen von xor-Operationen für Bytes. Die Methode sieht folgendermaßen aus:
- Aus dem 128-Bit-Schlüssel generiert Rijndael 10 Schlüssel mit jeweils 128 Bit.
- Diese Schlüssel werden in 4x4-Arrays platziert.
- Der Klartext ist auch in 4x4-Arrays (jeweils 128 Bit) unterteilt.
- Jedes der 128-Bit-Klartextelemente wird in 10 Runden verarbeitet (10 Runden für 128-Bit-Schlüssel, 12 für 192, 14 für 256).
- Nach der 10. Runde wird der Code generiert.
- Jedes einzelne Byte wird in einer S-Box ersetzt und durch den Kehrwert in GF (2 8) ersetzt.
- Dann wird eine bitweise Modulo-2-Matrix angewendet, gefolgt von einer XOR-Operation mit 63.
- Die Zeilen der Matrizen werden zyklisch sortiert.
- Die Spalten der Matrixmultiplikation sind auf GF (2 8) vertauscht.
- Die Unterschlüssel jeder Runde werden einer XOR-Operation unterzogen.
Die Sicherheitsstufe dieser Verschlüsselungsmethode erhöht sich, wenn Rijndael mehrmals mit verschiedenen Unterschlüsseln ausgeführt wird.
Wie funktioniert die vollständige Festplattenverschlüsselung von Ubuntu?
Ich glaube, es funktioniert, indem eine Partition mit LUKS verschlüsselt wird (Standardeinstellungen mit AES) und dann einige Volumes mit LVM (wie /
Swap) darauf gelegt werden und diese beim Booten entschlüsselt und bereitgestellt werden, nachdem Sie eine Passphrase eingegeben haben. Und es gibt eine reguläre (nicht verschlüsselte) Boot-Partition, die genug bootet, um nach der Passphrase zu fragen.
Im Handbuch des einfachen Computers zur vollständigen Festplattenverschlüsselung mit Ubuntu (aktualisiert am 28. Juni 2015) heißt es, dass die Verschlüsselung des Standardinstallationsprogramms so funktioniert, und erwähnt, dass das Dual-Booten des Laufwerks nicht funktionieren würde (zumindest nicht sofort einsatzbereit ) MBR muss verwendet werden, damit " wenn Ihr Computer über UEFI verfügt, die Distribution im Legacy-BIOS-Modus installiert wird, sodass Sie Secure Boot nicht verwenden können " und " Sie eine Swap-Größe erhalten, die der Ihres System-RAM (häufig nicht erforderlich) entspricht, und Sie Ich habe keine Wahl, welche Art von Verschlüsselung verwendet wird. "
Wie schnell ist die Verschlüsselung?
Wenn Sie cryptsetup benchmark
es ausführen, werden Tests ausgeführt und Sie erfahren, wie schnell die Verschlüsselung allein dauert. Achten Sie auf die (derzeit) Standardzeilen von aes-xts:
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
Eine durchschnittliche Lesegeschwindigkeit der Festplatte kann 80-160 MB / s betragen, sodass Sie nicht viel länger als ein normaler Lesevorgang sind. Möglicherweise wurden die gerade gelesenen Sektoren bereits entschlüsselt, während Sie noch auf die warten Festplatte, um mehr zu lesen.
Eine SSD könnte möglicherweise schneller sein, vielleicht 200-550 MB / s, also könnten Sie es bemerken. Zufällige Lesevorgänge können jedoch langsamer sein, und ich habe gelesen, dass sich die SSD-Geschwindigkeit nach der Verwendung verlangsamen kann (möglicherweise, wenn das Laufwerk vollständig voll ist und Sektoren "gelöscht" werden müssen?).
Wie kann der Computer das gesamte Laufwerk in nur wenigen Sekunden vollständig verschlüsseln / entschlüsseln (das Booten oder Herunterfahren dauert nicht länger)?
Es muss nicht alles zuerst entschlüsseln. Die Verschlüsselung (LUKS) arbeitet mit Datenblöcken , kann jeden Block zufällig entschlüsseln und wirkt wie eine Schicht zwischen den verschlüsselten Daten des Laufwerks und dem, was das Dateisystem sieht.
Wenn das Dateisystem einen Datenblock sehen möchte, entschlüsselt LUKS diesen Block zuerst und gibt dann die entschlüsselten Daten an das Dateisystem weiter. Sie warten zunächst, bis das Laufwerk den Datenblock gelesen hat (genau wie ohne Verschlüsselung), und haben nur eine zusätzliche Verzögerung für die Entschlüsselung dieses einzelnen Datenblocks (oder einiger weniger Datenblöcke) - und wenn die Entschlüsselung schneller als die des Laufwerks ist lesen kann, die Entschlüsselung könnte beendet sein , bevor der Antrieb den nächsten Block von Daten liest.
So wie ein normales Dateisystem nicht das gesamte Laufwerk lesen muss, um eine Datei zu lesen, muss beim Hinzufügen der Verschlüsselung auch nicht das gesamte Laufwerk gelesen werden, und es macht die Dinge nicht viel langsamer.
Die Daten auf der Festplatte sind immer verschlüsselt , sodass beim Herunterfahren nichts anderes zu tun ist, als den Schlüssel zu vergessen.