Я собираюсь зашифровать PenDrive, используя AES (с TrueCrypt). Какой будет наиболее эффективный размер единицы выделения при форматировании?
Поскольку размер блока AES составляет 16 КБ, будут ли наиболее эффективными 16 КБ? Правильна ли эта логика?
Я собираюсь зашифровать PenDrive, используя AES (с TrueCrypt). Какой будет наиболее эффективный размер единицы выделения при форматировании?
Поскольку размер блока AES составляет 16 КБ, будут ли наиболее эффективными 16 КБ? Правильна ли эта логика?
Ответы:
Сосредоточьтесь на вашей файловой системе, а не на атрибутах AES. Вот список от MS с единицами выделения по умолчанию для разных размеров тома в разных файловых системах / версиях. вы не сможете достичь паритета между размером блока шифра и размером блока выделения файловой системы. Фактически, попытка сделать это может сделать вашу криптографию менее эффективной для каждого файла отдельно, если только ваши файлы не очень, очень маленькие.
Размер кластера (единицы размещения) на самом деле очень мало, если вообще что-то делать с шифрованием - у вас будут те же проблемы с незашифрованным виртуальным диском.
Во всяком случае, чтобы процитировать TrueCrypt документы ( акцент мой):
" Размер кластера
Кластер - это единица распределения. Например, один кластер выделяется в файловой системе FAT для однобайтового файла. Когда файл выходит за границы кластера, выделяется другой кластер. Теоретически это означает, что чем больше размер кластера, тем больше дискового пространства тратится впустую; тем не менее, лучше производительность. Если вы не знаете, какое значение использовать, используйте значение по умолчанию. "
В любом случае, вы почти наверняка захотите выбрать тот же размер кластера, что и для диска, на котором хранится контейнер TrueCrypt, или, возможно, даже его кратное число или часть, чтобы кластеры в томе TrueCrypt были выровнены с кластерами в базовой файловой системе (и, следовательно, предположительно с секторами на реальном диске, на котором он хранится).
Кроме этого, это просто компромисс между скоростью и пространством. Детали будут различаться в зависимости от используемой файловой системы и типа файлов, которые вы хотите хранить (практическое правило: большие файлы → большие кластеры, множество маленьких файлов → маленькие кластеры), но обычно значение по умолчанию должно быть в порядке.
Размер кластера следует выбирать исходя из размера сектора физического носителя и размера файлов в файловой системе. Поскольку флеш-накопитель представляет собой флеш-память, он использует блоки и страницы, а не сектора.
Блоки флэш-памяти обычно имеют размер 16 КБ или 128 КБ с размерами страниц 512 Б или 2048 Б. Микросхемы флэш-памяти больших / малых размеров используют блоки больших размеров. Поэтому можно предположить, что любой типичный размер кластера NTFS является приемлемым для флэш-памяти, до 16 КБ для большинства применений. Флэш-память записана в блоках, поэтому вы не должны выбирать размер кластера больше, чем размер блока, если только файлы не будут редко изменены или имеют достаточно большой размер.
Это сложнее при обсуждении содержимого файловой системы. Нет стандартной практики, я использую заданные значения в зависимости от типа ожидаемых файлов и их среднего размера.
Для NTFS 4 КБ является наиболее распространенным для больших дисков, но он расточителен, когда файлы большого размера, такие как видеофайлы и аудио с высокой скоростью передачи. Файловая система должна отслеживать, какие кластеры используются для каждого файла, поэтому видеофайл 16 ГБ будет содержать 4194304 записей кластера в таблице файлов. Для того же файла в кластерной файловой системе размером 64 КБ потребуется всего 262144 записей. Если вы ожидаете только большие файлы, которые редко изменяются, выберите максимально возможный размер кластера. Если файлы имеют небольшой размер или часто изменяются, соответствующий диапазон составляет от 2 КБ до 16 КБ.
Для exFAT 32 КБ является наиболее распространенным для внешних устройств флэш-памяти. exFAT был разработан с учетом флэш-памяти, и 32 КБ подходит для большинства применений, за исключением больших нечасто изменяемых файлов, которые должны использовать больший кластер. Эта файловая система является новой и имеет ограниченную совместимость с операционной системой.
Использование программного обеспечения для шифрования диска не имеет отношения к размеру кластера, поскольку размер блока шифрования меньше, чем наименьший доступный размер кластера.
Использование программного обеспечения для шифрования диска имеет большое значение, некоторые микросхемы одновременно считывают и записывают 32 КБ или других размеров, независимо от размера кластера файловой системы; программное обеспечение для шифрования диска использует длительное чтение / запись, как если бы был кэш предварительной загрузки.
К сожалению, большинство из них не сообщают об этом, используя низкоуровневые сканеры. Я видел, что VeraCrypt использовал операции чтения / записи 32 КБ (в некоторых системах Linux), в то время как файловая система была Ext4 (которая допускает кластер только 4 КБ), поэтому первое чтение заняло восемь раз больше, чем незашифрованные, но следующие 7 последовательных чтений были почти мгновенными (то есть кэшированными при первом чтении).
Так что да, использование программного обеспечения для шифрования диска имеет большое значение.
Я хотел бы установить размер кластера Ext4 равным 32 КБ, случайное чтение было бы намного быстрее с 4 КБ, поскольку VeraCrypt всегда считывал 32 КБ, при случайном чтении 4 КБ было потеряно 28 КБ.
И помните, многие инструменты шифрования (большинство, если они заполнены диском) используют большие блоки для чтения / записи, что довольно хорошо для последовательных, но ужасно для случайных.
Кроме того, собственный дисковый кеш Linux (предварительное чтение) также важен и актуален, может негативно повлиять на производительность при шифровании (также при не шифровании) ... все зависит от того, как вы получаете доступ к данным.
Я придерживаюсь этого правила: системный диск 4 КБ без чередования, 128 КБ, если с чередованием (большинство, если это SSD); диски с данными от 32 КБ до 128 КБ, в зависимости от соотношения маленьких файлов к большим файлам; и у меня всегда есть пять копий на пяти разных носителях, которые я синхронизирую вручную, имея не более двух подключенных одновременно.
Предупреждение: AES не работает (по крайней мере, до 4096 бит).