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.
Dies ist eine kleine Vereinfachung, aber ich werde versuchen, den Zugriff auf eine Datei in einem verschlüsselten Dateisystem durchzuführen.
Angenommen, am Anfang des verschlüsselten Dateisystems befindet sich eine Dateitabelle. Nehmen wir an, wir wollen lesen
/foo.bar
. Als erstes lesen wir den Anfang der Partition, entschlüsseln sie und durchsuchen sie nach der gewünschten Datei. Angenommen, die Datei beginnt bei 0x10000000 Byte. Zum Lesen beginnen wir also, an dieser Stelle von der Festplatte zu lesen und sie zu entschlüsseln. In ähnlicher Weise können wir zum Schreiben die neuen Inhalte verschlüsseln und an dieser neuen Stelle schreiben.Hoffentlich hilft dies dabei, Verwirrung über den Prozess zu beseitigen.
quelle
Der Prozessor verwendet einen dedizierten Befehlssatz. Es ist deshalb möglich, AES-NI . Es ermöglicht eine schnelle Ver- und Entschlüsselung, oder Sie können sagen, es reduziert den Overhead. Es ist schnell, da es sich um eine Hardware-Implementierung handelt, wie hier erläutert .
Sie können über Auswirkungen auf die Leistung überprüfen hier und sie sind es wert für zusätzliche Sicherheit.
quelle
Moderne Computer können Milliarden von Vorgängen pro Sekunde ausführen, daher wundert es mich nicht, dass Ver- und Entschlüsselung schnell sind.
So würde ich intuitiv bewerten, wie schnell Computer Dinge tun:
Der andere wichtige Punkt ist, dass der Betrieb nicht die gesamte Festplatte entschlüsseln muss, um das System zu starten. Vielmehr kann das Betriebssystem nur die Teile der Festplatte entschlüsseln, die es im laufenden Betrieb benötigt, und das Gleiche gilt für das Schreiben.
So intuitiv wundert es mich nicht, dass die vollständige Festplattenverschlüsselung keinen großen Einfluss auf die Leistung hat, da ich mir den Flaschenhals als Festplatte vorstelle.
Natürlich stimmen diese Intuitionen nicht immer mit der Realität überein. In der Realität gab es beispielsweise Fälle, in denen die Festplattenverschlüsselung zu einem spürbaren Leistungseinbruch geführt hat. In der Regel werden diese Probleme jedoch gelöst, nachdem die Entwickler einige Optimierungsrunden durchlaufen haben.
quelle