Криптографические алгоритмы

       

Шифрование файлов


На первый взгляд шифрование файлов можно полностью уподобить шифрованию сообщений, отправителем и получателем которых является одно лицо, а средой передачи служит одно из компьютерных устройств хранения данных (магнитный или оптический диск, магнитная лента, оперативная память). Однако вс  не так просто, как кажется на первый взгляд.

При передаче по коммуникационным каналам сообщение не имеет большой ценности. Если оно затеряется по пути от отправителя к получателю, его можно попытаться передать снова. При шифровании данных, предназначенных для хранения в виде компьютерных файлов, дела обстоят совершенно иначе. Если вы не в состоянии расшифровать свой файл, вам вряд ли удастся сделать это и со второй, и с третьей, и даже с сотой попытки. Ваши данные будут потеряны раз и навсегда. Это означает, что при шифровании файлов необходимо предусмотреть специальные механизмы для предотвращения возникновения ошибок в шифртексте.

Криптография помогает превратить большие секреты в маленькие. Вместо того чтобы безуспешно пытаться запомнить содержимое огромного файла, человеку достаточно его зашифровать и сохранить в памяти использованный для этой цели ключ. Если ключ применяется для шифрования сообщения, то его требуется иметь под рукой лишь до тех пор, пока сообщение не дойд т до своего адресата и не будет им успешно расшифровано. В отличие от сообщений, шифрованные файлы могут хранится годами, и в течение всего этого времени необходимо помнить и держать в секрете соответствующий ключ.

Есть и другие особенности шифрования файлов, о которых необходимо помнить вне зависимости от криптографического алгоритма, применяемого для этой цели:

- нередко после шифрования файла его незашифрованная копия благополучно забыва тся на другом магнитном диске, на другом компьютере или в виде распечатки, сделанной на принтере;

- размер блока в блочном алгоритме шифрования может значительно превышать размер отдельной порции данных в структурированном файле, в результате чего итоговая длина зашифрованного файла окажется намного больше, чем длина исходного файла;


- скорость шифрования файлов при помощи выбранного для этой цели криптографического алгоритма должна соответствовать скоростям, на которых работают устройства ввода/вывода современных компьютеров;

- работа с ключами является довольно непростым делом, поскольку разные пользователи обычно должны иметь доступ не только к различным файлам, но и к отдельным частям одного и того же файла.

Если файл представляет собой единое целое (например, содержит отрезок текста), восстановление этого файла в исходном виде не потребует больших усилий: перед использованием достаточно будет просто расшифровать весь файл. Однако если файл структурирован (например, раздел н на записи и поля, как это делается в базах данных), то расшифровывание всего файла целиком всякий раз, когда необходимо осуществить доступ к отдельной порции данных, сделает работу с таким файлом чрезвычайно неэффективной. А при индивидуальном шифровании порций данных в структурированном файле сделает его уязвимым по отношению к атаке, при которой злоумышленник отыскивает в этом файле нужную порцию данных и заменяет е  на другую по своему усмотрению.

У пользователя, который хочет зашифровать каждый файл, размещ нный на ж стком диске компьютера, имеются две возможности. Если он использует один ключ для шифрования всех файлов, то впоследствии окажется не в состоянии разграничить доступ к отдельным файлам со стороны других пользователей. Кроме того, в результате у криптоаналитика будет значительное количество шифртекста, полученного на одном ключе, что существенно облегчит ему вскрытие этого ключа.

Лучше шифровать каждый файл на отдельном ключе, а затем зашифровать все ключи при помощи мастер-ключа. Тем самым пользователи будут избавлены от суеты, связанной с организацией над жного хранения большого числа ключей. Разграничение доступа групп пользователей к различным файлам будет осуществляться пут м деления множества всех ключей на подмножества и шифрования этих подмножеств на различных мастер-ключах. Стойкость такой криптосистемы будет значительно выше, чем в случае использования единого ключа для шифрования всех файлов на ж стком диске, поскольку ключи, применяемые для шифрования файлов, можно сделать более случайными и, следовательно, более стойкими против словарной атаки.


Содержание раздела