Как работает AES / Rijndael Encryption в целом?
На этой странице есть забавное руководство по рисунку на палочке к расширенному стандарту шифрования (AES), которое легко понять, хотя выглядит более 50 изображений, например, эти два:
и
Слишком много, чтобы дублировать все это здесь, но если вам нужно изображение «все в одном», то вот оно:
Или есть более компактное объяснение на http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
Метод шифрования Rijndael основан на замене, изменении и выполнении операций xor на байтах. Метод выглядит так:
- Из 128-битного ключа Rijndael генерирует 10 ключей по 128 бит каждый.
- Эти ключи помещены в массивы 4х4.
- Простой текст также делится на массивы 4х4 (по 128 бит).
- Каждый из 128-битных текстовых элементов обрабатывается в 10 раундов (10 раундов для 128-битных ключей, 12 для 192, 14 для 256).
- После 10-го тура код генерируется.
- Каждый отдельный байт подставляется в S-блок и заменяется обратным на GF (2 8).
- Затем применяется побитовая матрица по модулю 2 с последующей операцией XOR с 63.
- Линии матриц сортируются циклически.
- Столбцы умножения матриц чередуются на GF (2 8).
- Подключи каждого раунда подвергаются операции XOR.
Уровень безопасности этого метода шифрования увеличивается, если Rijndael выполняется несколько раз с разными подразделами.
Как работает полное дисковое шифрование Ubuntu?
Я считаю, что это работает путем шифрования раздела с помощью LUKS (настройки по умолчанию с AES), а затем помещает на него несколько томов с помощью LVM (например /
, swap), и расшифровывает и монтирует их при загрузке после ввода ключевой фразы. И есть обычный (не зашифрованный) загрузочный раздел, который загружается достаточно, чтобы запросить пароль.
Руководство the_simple_computer по полному шифрованию диска с Ubuntu (Обновлено 28 июня 2015 г.) говорит о том, как работает шифрование установщика по умолчанию, и упоминает, что двойная загрузка не будет работать (по крайней мере, не из коробки), диск необходимо использовать MBR, так что « если на вашем компьютере установлен UEFI, дистрибутив будет установлен в устаревшем режиме BIOS, чтобы вы не могли использовать безопасную загрузку », а « также дает вам размер подкачки, равный размеру оперативной памяти вашей системы (часто ненужный), и вы У меня нет выбора, какой тип шифрования используется ".
Как быстро шифрование?
Если вы запустите cryptsetup benchmark
его, он запустит тесты и расскажет вам, как быстро выполняется одно только шифрование, обратите внимание на строки (в настоящее время) aes-xts по умолчанию:
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
Средняя скорость чтения жесткого диска может составлять 80–160 МБ / с, поэтому вы не будете намного дольше обычного чтения, и вполне возможно, что только что прочитанные сектора уже были расшифрованы, пока вы все еще ожидаете жесткий диск, чтобы читать больше.
SSD может быть быстрее, может быть, 200-550 МБ / с, так что вы можете заметить это. Но случайное чтение может быть медленнее, и я читал, что скорости SSD могут замедляться после использования (может быть, когда накопитель полностью заполняется, и он должен начать «стирать» сектора?)
Как компьютер может полностью зашифровать / расшифровать весь диск всего за несколько секунд (для загрузки или выключения не требуется больше времени)?
Это не должно расшифровывать все сначала. Шифрование (LUKS) работает с блоками данных , может произвольно расшифровывать любой блок и действует как слой между зашифрованными данными накопителя и тем, что видит файловая система.
Когда файловая система хочет увидеть какой-либо блок данных, LUKS сначала расшифровывает этот блок, а затем передает расшифрованные данные в файловую систему. Сначала вы ждете, пока накопитель прочитает блок данных (как без использования шифрования), и у вас будет только дополнительная задержка для расшифровки этого одного блока (или нескольких блоков) данных - и если расшифровка выполняется быстрее, чем накопитель может прочитать, расшифровка может быть завершена до того, как накопитель прочитает следующий блок данных.
Так что, как и обычной файловой системе, не нужно читать весь диск, чтобы прочитать файл, когда шифрование добавлено, ему не нужно читать весь диск, и это не делает вещи намного медленнее.
Данные на жестком диске всегда зашифрованы , поэтому при выключении ничего не нужно делать, кроме как забыть ключ.
Это будет немного упрощением, но я постараюсь пройти через процесс доступа к файлу в зашифрованной файловой системе.
Например, скажем, в начале зашифрованной файловой системы есть таблица файлов; скажем, мы хотим прочитать
/foo.bar
. Итак, первое, что мы делаем, это читаем начало раздела, расшифровываем его и ищем нужный файл; скажем, он говорит, что файл начинается с 0x10000000 байт. Итак, чтобы прочитать, мы начинаем читать с диска в этом месте и расшифровывать его; аналогично, для записи мы можем зашифровать новое содержимое и записать его в этом новом месте.Надеемся, что это поможет устранить путаницу в процессе.
источник
Процессор использует выделенный набор команд. Это возможно из-за этого, AES-NI . Это обеспечивает быстрое шифрование и дешифрование, или вы можете сказать, что это сокращает накладные расходы. Это быстро, потому что это аппаратная реализация, как объяснено здесь .
Вы можете проверить влияние на производительность здесь, и они того стоят для дополнительной безопасности.
источник
Современные компьютеры могут выполнять миллиарды операций в секунду, поэтому меня не удивляет быстрота шифрования и дешифрования.
Вот как я бы интуитивно оценил скорость работы компьютеров:
Другой ключевой момент, который нужно понять, это то, что операционная система не нуждается в расшифровке всего жесткого диска для загрузки системы. Скорее операционная система знает, как дешифровать только те части жесткого диска, которые ей нужны на лету, и то же самое относится и к записи.
Интуитивно, я не удивлен, что полное шифрование диска не сильно влияет на производительность, так как я считаю, что узким местом является диск.
Конечно, эти интуиции не всегда соответствуют действительности. Например, в действительности были случаи, когда полное шифрование диска вызывало заметное снижение производительности. Но обычно они решаются после того, как разработчики проходят несколько этапов разработки оптимизаций.
источник