При обнаружении в цепи блоков ошибки, цепь обрезается до по-
следнего правильного блока, что позволяет считать данные даже при
затирании ряда блоков.
Следует отметить, что такое затирание вполне вероятно при записи
на диск в основную ФС, в которой отсутствует информация о суще-
ствовании SFS. Однако можно изменить код, работающий с основной
ФС данного конкретного устройства с тем, чтобы код содержал инфор-
мацию о размещении секторов SFS и не использовал их при разме-
щении данных. Иными словами, при использовании SFS, например, в
цифровом фотоаппарате, совместная работа SFS и FAT будет возмож-
на при условии изменения кода FAT в микропрограмме фотоаппарата,
что не приведет к снижению безопасности — микропрограмма уже
содержит код SFS.
Любая SFS начинается с корневой директории, начало которой вме-
сте с паролем шифрования являются секретным ключом файловой си-
стемы.
Директория — это файл, состоящий из каталожных записей. Ка-
ждая каталожная запись содержит такую информацию, как тип записи
(
файл, каталог, пустая запись); атрибуты; размер (не определен для ка-
талога); время модификации; первый и последний блок файла, или 0,
если файл пуст; имя. Имена файлов размещаются на диске в кодировке
cp866 (Русская OEM кодировка ОС Windows).
Первая каталожная запись корневой директории содержит инфор-
мацию о начале карты занятых блоков и конце самой корневой ди-
ректории. Все записываемые на диск блоки шифруются по описан-
ному в ГОСТ 28147–89 алгоритму с использованием схемы LRW
(
рис. 3) [6]. Емкость блока шифрования составляет 16 байт; исполь-
зуется 256-битный ключ шифрования и 128-битный ключ схемы LRW.
Для каждого блока шифрования в блоке данных рассчитываются 128-
битный индекс как абсолютный адрес блока шифрования на диске и
128-
битный вспомогательный ключ Т как произведение I на 2-й ключ
в поле GF(2 128). Блок шифрования складывается с T по модулю 2 и
зашифровывается с помощью 1-го ключа; результат складывается с T
по модулю 2 и записывается на диск.
Такая схема обеспечивает привязку каждого 16-байтного блока ши-
фра к его месту в блоке и к месту блока на диске. В противном случае
блоки одинаковых данных давали бы блоки одинаковых шифрован-
ных данных, что позволило бы обнаружить их несанкционированному
пользователю.
Ключи шифрования рассчитываются хешированием (SHA-256)
введенного пользователем пароля. Затем хеш несколько тысяч раз
зашифровывается самим собой. Из полученного 256-битного ключа
8
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012