Jak ogólnie działa szyfrowanie AES / Rijndael?
Na tej stronie znajduje się ciekawy „Przewodnik po rysunkach” do AES (Advanced Encryption Standard), który wygląda na łatwy do zrozumienia, chociaż wygląda na ponad 50 obrazów, na przykład te dwa:
i
To o wiele za dużo, żeby powielić to wszystko tutaj, ale jeśli musisz mieć obraz typu „wszystko w jednym”, to jest to:
Lub jest bardziej zwięzłe wyjaśnienie na http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
Metoda szyfrowania Rijndael polega na zamianie, zmianie i wykonywaniu operacji xor na bajtach. Metoda wygląda następująco:
- Z 128-bitowego klucza Rijndael generuje 10 kluczy po 128 bitów każdy.
- Te klucze są umieszczane w tablicach 4x4.
- Zwykły tekst jest również podzielony na tablice 4x4 (128 bitów każda).
- Każdy z 128-bitowych elementów zwykłego tekstu jest przetwarzany w 10 rundach (10 rund dla kluczy 128-bitowych, 12 dla 192, 14 dla 256).
- Po 10 rundzie generowany jest kod.
- Każdy pojedynczy bajt jest podstawiany w ramce S i zastępowany przez wzajemność na GF (28).
- Następnie stosuje się bitową matrycę modulo-2, a następnie operację XOR z 63.
- Linie macierzy są sortowane cyklicznie.
- Kolumny mnożenia macierzy są zamieniane na GF (28).
- Podklucze każdej rundy są poddawane operacji XOR.
Poziom bezpieczeństwa tej metody szyfrowania wzrasta, jeśli Rijndael jest wykonywany kilka razy z różnymi podkluczami.
Jak działa pełne szyfrowanie dysku Ubuntu?
I wierzę , że działa poprzez szyfrowanie partycji z LUKS (ustawienia domyślne z AES), a następnie umieszcza kilka woluminów LVM na nim (jak /
, swap) i odszyfrowuje i montuje je w bagażniku po wpisaniu hasła. Istnieje też zwykła (niezaszyfrowana) partycja rozruchowa, która uruchamia się na tyle, aby poprosić o hasło.
The_simple_computer's Guide to Full Disk Encryption with Ubuntu (zaktualizowany 28 czerwca 2015) mówi, że chodzi o to, jak działa szyfrowanie domyślnego instalatora, i wspomina, że podwójne uruchamianie nie zadziałałoby (przynajmniej nie po wyjęciu z pudełka), napędu musisz użyć MBR, więc „ jeśli twój komputer ma UEFI, dystrybucja zostanie zainstalowana w starszym trybie BIOS, więc nie możesz używać Bezpiecznego rozruchu ”, a także „ daje ci rozmiar wymiany równy rozmiarowi RAM systemowej (często niepotrzebny), a ty nie mam wyboru, jakiego rodzaju szyfrowania się używa. ”
Jak szybkie jest szyfrowanie?
Jeśli uruchomisz cryptsetup benchmark
, uruchomią się testy i powiedzą, jak szybko zajmuje samo szyfrowanie, uważaj na (obecnie) domyślne linie aes-xts:
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
Średnia prędkość odczytu dysku twardego może wynosić 80-160 MB / s, więc nie będziesz dużo dłuższy niż zwykły odczyt, i możliwe jest, że sektory właśnie odczytane zostały już odszyfrowane, gdy wciąż czekasz na dysk twardy, aby przeczytać więcej.
Dysk SSD może być szybszy, może 200-550 MB / s, więc możesz to zauważyć. Ale losowe odczyty mogą być wolniejsze i przeczytałem, że prędkości SSD mogą spowolnić po użyciu (może gdy dysk zapełni się całkowicie i musi zacząć „kasować” sektory?)
W jaki sposób komputer może całkowicie zaszyfrować / odszyfrować cały dysk w ciągu zaledwie kilku sekund (uruchomienie lub zamknięcie nie trwa dłużej)?
Nie musi najpierw wszystkiego odszyfrowywać. Szyfrowanie (LUKS) działa na blokach danych , może losowo odszyfrować dowolny blok i działa jak warstwa między zaszyfrowanymi danymi dysku a tym, co widzi system plików.
Gdy system plików chce zobaczyć dowolny blok danych, LUKS najpierw odszyfrowuje ten blok, a następnie przekazuje odszyfrowane dane do systemu plików. Najpierw musisz poczekać, aż dysk odczyta blok danych (tak jak bez szyfrowania), a masz tylko dodatkowe opóźnienie w odszyfrowaniu tego pojedynczego bloku (lub kilku bloków) danych - i jeśli odszyfrowanie jest szybsze niż dysk można odczytać, deszyfrowanie może być zakończone, zanim dysk odczyta następny blok danych.
Tak jak zwykły system plików nie musi czytać całego dysku, aby odczytać plik, po dodaniu szyfrowania nie musi on również czytać całego dysku i nie powoduje to o wiele wolniejszego działania.
Dane na dysku twardym są zawsze szyfrowane , więc przy wyłączaniu nie ma nic do roboty poza zapomnieniem klucza.
To będzie trochę uproszczenie, ale postaram się przejść przez proces uzyskiwania dostępu do pliku w zaszyfrowanym systemie plików.
Załóżmy na przykład, że na początku zaszyfrowanego systemu plików znajduje się tabela plików; powiedzmy, że chcemy przeczytać
/foo.bar
. Najpierw czytamy początek partycji, odszyfrowujemy ją i szukamy odpowiedniego pliku; powiedzmy, że mówi, że plik zaczyna się od 0x10000000 bajtów. Aby przeczytać, zaczynamy czytać z dysku w tej lokalizacji i odszyfrowywać go; podobnie, aby napisać, możemy zaszyfrować nową zawartość i zapisać ją w tej nowej lokalizacji.Mamy nadzieję, że pomoże to rozwiązać wszelkie nieporozumienia związane z tym procesem.
źródło
Procesor używa dedykowanego zestawu instrukcji. Jest to możliwe dzięki temu, AES-NI . Umożliwia szybkie szyfrowanie i deszyfrowanie lub można powiedzieć, że zmniejsza obciążenie. Jest szybki, ponieważ jest to implementacja sprzętowa, jak wyjaśniono tutaj .
Można sprawdzić o oddziaływań wydajności tutaj i są warto dla zwiększenia bezpieczeństwa.
źródło
Nowoczesne komputery mogą wykonywać miliardy operacji na sekundę, więc nie dziwi mnie, że szyfrowanie i deszyfrowanie są szybkie.
W ten sposób intuicyjnie oceniłbym szybkość komputerów w robieniu rzeczy:
Innym kluczem do zrozumienia jest to, że system operacyjny nie musi odszyfrowywać całego dysku twardego, aby uruchomić system. Przeciwnie, system operacyjny wie, jak odszyfrować tylko te części dysku twardego, których potrzebuje w locie, to samo dotyczy pisania.
Tak intuicyjnie, nie dziwię się, że pełne szyfrowanie dysku nie ma większego wpływu na wydajność, ponieważ wyobrażam sobie, że szyjką butelki jest dysk.
Oczywiście te intuicje nie zawsze pasują do rzeczywistości. Na przykład w rzeczywistości zdarzały się przypadki, gdy szyfrowanie całego dysku spowodowało zauważalny spadek wydajności. Ale zwykle są one rozwiązywane po tym, jak programiści przechodzą przez kilka rund opracowywania optymalizacji.
źródło