Криптография и шифрование, алгоритмы шифрования. 1 Криптография и шифрование, алгоритмы шифрования 4 1 Понятие шифрование 4
Скачать 478.11 Kb.
|
2.3 Аппаратный шифраторИзвестно, что алгоритмы защиты информации (прежде всего шифрования) можно реализовать как программным, так и аппаратным методом. Рассмотрим аппаратные шифраторы: почему они считаются более надежными и обеспечивающими лучшую защиту. Аппаратный шифратор по виду и по сути представляет собой обычное компьютерное «железо», чаще всего это плата расширения, вставляемая в разъем ISA или РCI системной платы ПК. Бывают и другие варианты, например в виде USB-ключа с криптографическими функциями, но мы здесь рассмотрим классический вариант – шифратор для шины РCI. Использовать целую плату только для функций шифрования – непозволительная роскошь, поэтому производители аппаратных шифраторов обычно стараются насытить их различными дополнительными возможностями, среди которых: Генерация случайных чисел. Это нужно прежде всего для получения криптографических ключей. Кроме того, многие алгоритмы защиты используют их и для других целей, например алгоритм электронной подписи ГОСТ Р 34.10 – 2001. При каждом вычислении подписи ему необходимо новое случайное число. Контроль входа на компьютер. При включении ПК устройство требует от пользователя ввести персональную информацию (например, вставить дискету с ключами). Работа будет разрешена только после того, как устройство опознает предъявленные ключи и сочтет их «своими» . В противном случае придется разбирать системный блок и вынимать оттуда шифратор, чтобы загрузиться (однако, как известно, информация на ПК тоже может быть зашифрована). Контроль целостности файлов операционной системы. Это не позволит злоумышленнику в ваше отсутствие изменить какие-либо данные. Шифратор хранит в себе список всех важных файлов с заранее рассчитанными для каждого контрольными суммами (или хэш - значениями), и если при следующей загрузке не совпадет эталонная сумма хотя бы с одним из них, компьютер будет блокирован. Плата со всеми перечисленными возможностями называется устройством криптографической защиты данных – УКЗД. Шифратор, выполняющий контроль входа на ПК и проверяющий целостность операционной системы, называется также «электронным замком». Ясно, что аналогия неполная – обычные замки существенно уступают этим интеллектуальным устройствам. Понятно, что последним не обойтись без программного обеспечения – необходима утилита, с помощью которой формируются ключи для пользователей и ведется их список для распознавания «свой/чужой». Кроме того, требуется приложение для выбора важных файлов и расчета их контрольных сумм. Эти программы обычно доступны только администратору по безопасности, который должен предварительно настроить все УКЗД для пользователей, а в случае возникновения проблем разбираться в их причинах. Вообще, поставив на свой компьютер УКЗД, вы будете приятно удивлены уже при следующей загрузке: устройство проявится через несколько секунд после включения, как минимум сообщив о себе и попросив ключи. Шифратор всегда перехватывает управление при загрузке ПК (когда BIOS компьютера поочередно опрашивает все вставленное в него «железо»), после чего не так-то легко получить его обратно. УКЗД позволит продолжить загрузку только после всех своих проверок. Кстати, если ПК по какой-либо причине не отдаст управление шифратору, тот, немного подождав, все равно его заблокирует. И это также прибавит работы администратору по безопасности. Структура шифратора представлена в приложение Г. 2.4 Структура аппаратных шифраторовРассмотрим теперь, из чего должно состоять УКЗД, чтобы выполнять эти непростые функции: Блок управления – основной модуль шифратора, который «заведует» работой всех остальных. Обычно реализуется на базе микроконтроллера, сейчас их предлагается немало и можно выбрать подходящий. Главное – быстродействие и достаточное количество внутренних ресурсов, а также внешних портов для подключения всех необходимых модулей. Контроллер системной шины ПК (например, РCI). Через него осуществляется основной обмен данными между УКЗД и компьютером. Энергонезависимое запоминающее устройство (ЗУ) – обычно на базе микросхем флэш-памяти. Оно должно быть достаточно емким (несколько мегабайт) и допускать большое число циклов записи. Здесь размещается программное обеспечение микроконтроллера, которое выполняется при инициализации устройства(т.е. когда шифратор перехватывает управление при загрузке компьютера). Память журнала. Тоже представляет собой энергонезависимое ЗУ; это действительно еще одна флэш-микросхема: во избежание возможных коллизий память для программ и для журнала не должны объединяться. Шифропроцессор (или несколько) – это специализированная микросхема или микросхема программируемой логики РLD – Рrogrammable Logic Device. Собственно, он и шифрует данные. Подробнее об этом немного позже. Генератор случайных чисел. Обычно представляет собой некое устройство, дающее статически случайный шум. Это может быть шумовой диод. А перед использованием по специальным правилам белый шум преобразуется в цифровую форму. Блок ввода ключевой информации. Обеспечивает защищенный прием ключей с ключевого носителя, через него также вводится информация о пользователе для решения вопроса «свой/чужой». Блок коммутаторов. Помимо перечисленных выше основных функций, УКЗД может по велению администратора безопасности отключать возможность работы со внешними устройствами: дисководами, CD-ROM, параллельными и последовательными портами, шиной USB и т.д. Если пользователь работает с настолько важной информацией, что ее нельзя ни печатать, ни копировать, УКЗД при входе на компьютер заблокирует все внешние устройства, включая даже сетевую карту. Шифропроцессор Шифрование в УКЗД должно выполняться так, чтобы посторонним невозможно было узнать ключи и каким-либо образом повлиять на реализуемые алгоритмы. Иногда бывает полезно засекретить и правила преобразования ключей. Поэтому шифропроцессор логически состоит из нескольких структурных единиц: Вычислитель – набор регистров, сумматоров, блоков подстановки и т.п., связанных между собой шинами передачи данных. Собственно, он и выполняет криптографические действия, причем должен делать это максимально быстро. На вход вычислитель получает открытые данные, которые следует зашифровать, и ключ шифрования, который, как известно, является случайным числом. А шифрование – это сложное математическое преобразование, поэтому его результат тоже очень похож на выбор случайных величин (попробуйте сжать зашифрованный файл каким-нибудь архиватором – при использовании серьезного алгоритма защиты это будет невозможно). Блок управления. На самом деле это аппаратно реализованная программа, управляющая вычислителем. Если по какой-нибудь причине программа измениться, его работа начнет давать сбой. Это чревато, например, появлением данных в открытом виде вместо зашифрованного (хотя это крайний случай; более вероятно получение такой шифровки, которую ни вы сами, ни кто-либо еще уже не расшифрует никогда). Поэтому программа должна не только надежно храниться и устойчиво функционировать, но и регулярно проверять сама себя. Кстати, внешний блок управления(описанный выше) тоже периодически посылает ей контрольные задачи. На практике для большей уверенности ставят два шифропроцессора. Которые постоянно сравнивают свои результаты (если они не совпадают, шифрование придется повторить). Все это требуется для обеспечения неизменности алгоритма шифрования. Буфер ввода-вывода необходим для повышения производительности устройства: пока шифруется первый блок данных, загружается следующий и т.д. То же самое происходит и на выходе. Такая конвейерная передача данных серьезно увеличивает скорость шифрования. Быстродействие Кстати, о скорости. Разумеется любому пользователю ПК желательно, чтобы присутствие в его компьютере УКЗД не отражалось на удобстве работы(конечно, если человек выполняет только разрешенные действия). Но, естественно шифрование данных отнимает некоторое время, причем раньше приходилось просто ждать, когда закончится шифрование, например, локального диска. В Windows позволялось заняться чем-то параллельно, но еще несколько лет назад шифраторы отвлекали на себя значительные ресурсы процессора, поэтому одновременно без заметного торможения можно было только раскладывать пасьянс. Современные УКЗД шифруют данные без помощи центрального процессора ПК. В шифратор лишь передается команда, а затем он сам извлекает данные из ОЗУ компьютера, шифрует их и кладет в указанное место. Процессор же при этом вполне может выполнять другие задачи. Исследования современных УКЗД показывают, что во время их работы производительность ПК практически не снижается. Возможно применение и нескольких УКЗД на одном компьютере, например на криптографическом маршрутизаторе: один шифрует отправляемую в Интернет информацию, второй принимаемую. Производительность такой системы не вносит задержек в работу локальной сети Fast Ethernet (100 Мбит/с). Потоковая скорость обработки данных – это один из основных параметров, по которым оценивают аппаратные шифраторы. Она изменяется в мегабайтах в секунду и зависит прежде всего от сложности алгоритма шифрования. Проще всего оценить ее по формуле: V = F x K / n, где F - тактовая частота, K – размер стандартного блока шифрования, n - число тактов, требующееся на преобразование стандартного блока. Например, отечественный алгоритм ГОСТ 28147-89 имеет быстродействие 32 такта на 8-байтовый блок, а значит, теоретически скорость шифрования должна стремиться к 25 Мбайт/с при тактовой частоте 100 Мгц. Однако скорости аппаратной реализации этого алгоритма - 8-9 Мбайт/с. Ограничения являются чисто технологическими: отсутствие необходимого уровня разработок или элементной базы. Хотелось бы отметить, что программная реализация криптоГОСТа на ПК при тактовой частоте процессора 1 Ггц достигает 12-16 Мбайт/с. Хотя в этом случае аппаратная скорость шифрования теоретически могла бы быть около 250 Мбайт/с. |