1

В Linux (Fedora 28) мой домашний каталог зашифрован LUKS, при использовании Gnome Disk (снимок экрана) я могу отдельно сравнить базовый раздел LUKS (верхний синий прямоугольник) и расшифрованный домашний раздел (нижний белый прямоугольник).

Раздел LUKS дает время доступа 500 МБ / с, но расшифрованный доступ дает 350 МБ / с. Чтобы быть понятным, это тот же раздел SSD на 500 ГБ.

Справедливо ли сделать вывод, что шифрование замедляет доступ к данным на 30% (= 150/500)?

Этот тип номера задокументирован или я делаю что-то неправильно? Это намного больше, чем я ожидал.

screenshotdisks


РЕДАКТИРОВАТЬ: это мой вывод для

$ cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       384375 iterations per second for 256-bit key
PBKDF2-sha256     494611 iterations per second for 256-bit key
PBKDF2-sha512     323634 iterations per second for 256-bit key
PBKDF2-ripemd160  293225 iterations per second for 256-bit key
PBKDF2-whirlpool  185917 iterations per second for 256-bit key
argon2i       4 iterations, 748334 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 745443 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b       195.0 MiB/s       664.0 MiB/s
    serpent-cbc        128b        28.8 MiB/s        94.7 MiB/s
    twofish-cbc        128b        58.8 MiB/s       111.6 MiB/s
        aes-cbc        256b       146.5 MiB/s       507.3 MiB/s
    serpent-cbc        256b        33.3 MiB/s       110.2 MiB/s
    twofish-cbc        256b        59.3 MiB/s       123.6 MiB/s
        aes-xts        256b       433.7 MiB/s       416.8 MiB/s
    serpent-xts        256b       101.0 MiB/s        94.7 MiB/s
    twofish-xts        256b       111.8 MiB/s       110.3 MiB/s
        aes-xts        512b       349.5 MiB/s       356.6 MiB/s
    serpent-xts        512b       101.6 MiB/s        96.0 MiB/s
    twofish-xts        512b       111.2 MiB/s       108.1 MiB/s

$ lscpu | grep aes
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall
 nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
 nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est 
tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer
 aes xsave avx f16c rdrand lahf_lm cpuid_fault epb pti ssbd ibrs ibpb stibp
 tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm 
ida arat pln pts flush_l1d

ПРИМЕЧАНИЕ. Этот вопрос можно найти здесь: https://ask.fedoraproject.org/en/question/130463/how-to-activate-the-aes-module-cpu-decryptor/.

1 ответ1

1

Шифрование добавляет дополнительную нагрузку на процессор, так как каждый блок диска должен быть дешифрован ОС при доступе. Результаты вашего теста (расшифровка ~ 600 МБ / с) довольно средние для обычной обработки AES на i7.

Чтобы избежать этой проблемы, современные процессоры обычно поставляются с аппаратной поддержкой AES. Intel называет эту функцию «AES-NI» (обозначена в lscpu как "aes"), и она позволяет достигать скорости 2–3 ГБ / с для той же самой расшифровки AES.

Сначала запустите lscpu и проверьте, упоминает ли он "aes" среди флагов функций. Intel ARK показывает его как присутствующий в вашей модели процессора, но он может быть отключен настройками прошивки (BIOS). (ARK имеет сноску: «Некоторые продукты могут поддерживать новые инструкции AES с обновлением конфигурации процессора… Пожалуйста, свяжитесь с OEM-поставщиком для получения BIOS, включающего последнее обновление конфигурации процессора».)

Linux использует модуль "aesni_intel" для включения аппаратного ускорения. Проверьте, включено ли оно в вашем ядре, запустив zgrep AES_NI_INTEL /proc/config.gz . Если он показывает « =y », он является частью основного образа ядра и должен быть доступен.

Если вывод показывает « =m », он был скомпилирован как модуль - попробуйте загрузить модуль вручную, запустив sudo modprobe -v aesni_intel . Если команда не может найти модуль, вам, вероятно, придется перезагрузиться. (После перезагрузки убедитесь, что uname -r показывает ту же версию ядра, что и в ls /lib/modules .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .