- ТЕМА 5. ОТЕЧЕСТВЕННЫЙ СТАНДАРТ ШИФРОВАНИЯ ПО ГОСТ 28147–89
- Оглавление:
- 5.1. Принципы построения алгоритма шифрования
- 5.2. Основной шаг и базовые циклы криптопреобразований по ГОСТ 28147-89
- ТЕМА 5. ОТЕЧЕСТВЕННЫЙ СТАНДАРТ ШИФРОВАНИЯ ПО ГОСТ 28147–89
- Оглавление:
- 5.3. Режимы и схемы работы алгоритмов шифрования по ГОСТ 28147–89
- 5.4. Аппаратно-программный комплекс криптографической защиты данных и ограничения доступа к ним КРИПТОН – 4/PCI
- Принципы работы УКЗД
- Защита компьютера от несанкционированного доступа
- Принципы взаимодействия с прикладными процессами
- Комплексная защита компьютера
ТЕМА 5. ОТЕЧЕСТВЕННЫЙ СТАНДАРТ ШИФРОВАНИЯ ПО ГОСТ 28147–89
Цели и задачи изучения темы:
- сформировать представление об общей структуре алгоритма шифрования по ГОСТ 28147–89;
- ознакомить с основными режимами работы алгоритма шифрования;
- познакомить с аппаратно-программным комплексом криптографической защиты данных и ограничения доступа к ним КРИПТОН – 4/PCI;
- приобрести навыки практической работы с программным средством КРИПТОН ® Шифрование.
Оглавление:
5.1. Принципы построения алгоритма шифрования
Рассмотрим один из наиболее актуальных в настоящее время алгоритмов шифрования информации – отечественный стандарт ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
Несмотря на то, что ГОСТ 28147-89 был принят еще в 1989 году, он и в наши дни является весьма широко используемым как в России, так и в мире в целом.
Во-первых, этому способствует отечественное законодательство. Государственные организации и ряд коммерческих обязаны использовать для защиты информации только сертифицированные криптосредства, а получение сертификата подразумевает, что «в указанных криптосредствах реализованы криптографические алгоритмы, объявленные государственными или отраслевыми стандартами Российской Федерации. ».
Во-вторых, данный алгоритм разрабатывался с огромным запасом в криптостойкости, причем с небольшим ущербом скорости шифрования.
Алгоритм ГОСТ 28147-89 является классическим алгоритмом симметричного шифрования на основе сети Фейстеля (см. рис. 1). Данный алгоритм шифрует информацию блоками по 64 бита (такие алгоритмы называются «блочными»). Блок шифруемой информации разбивается на два или более субблоков, часть которых обрабатывается по определенному закону, после чего результат этой обработки накладывается (операцией побитового сложения по модулю 2) на необрабатываемые субблоки. Затем субблоки меняются местами, после чего обрабатываются снова и т.д. определенное для каждого алгоритма число раз -раундов.
Рис. 1. Схема алгоритма ГОСТ 28147–89.
Основное отличие алгоритмов симметричного шифрования друг от друга состоит именно в различных функциях обработки субблоков. Данная функция часто называется «основным криптографическим преобразованием», поскольку именно она несет основную нагрузку при шифровании информации.
5.2. Основной шаг и базовые циклы криптопреобразований по ГОСТ 28147-89
Основное преобразование алгоритма ГОСТ 28147–89 является достаточно простым, что обеспечивает высокое быстродействие алгоритма; в нем выполняются следующие операции (см. рис. 2):
- Сложение субблока с определенным фрагменом ключа шифрования по модулю 2 32 . Кх – это 32-битная часть («подключ») 256-битного ключа шифрования, который можно представить как конкатенацию 8 подключей:
. В зависимости от номера раунда и режима работы алгоритма (о них – ниже), для данной операции выбирается один из подключей.
- Табличная замена. Для ее выполнения субблок разбивается на 8 4-битных фрагментов, каждый из которых прогоняется через свою таблицу замены. Таблица замены содержит в определенной последовательности значения от 0 до 15 (т. е. все варианты значений 4-битного фрагмента данных); на вход таблицы подается блок данных, числовое представление которого определяет номер выходного значения. Например, подается значение 5 на вход следующей таблицы: «13 0 11 74 91 10 143 5 122 15 8 6». В результате на выходе получается значение 9 (поскольку 0 заменяется на 13, 1 – на 0, 2 – на 11 и т. д.).
- Побитовый циклический сдвиг данных внутри субблока на 11 бит влево.
Рис. 2. Основное преобразование алгоритма ГОСТ 28147–89.
Если внимательно изучить ГОСТ 28147–89, то можно заметить, что в нем содержится описание алгоритмов нескольких уровней. На самом верхнем находятся практические алгоритмы, предназначенные для шифрования массивов данных и выработки для них имитовставки. Все они опираются на три алгоритма низшего уровня, называемые в тексте ГОСТа циклами. Эти фундаментальные алгоритмы названы здесь базовыми циклами для того, чтобы отличить их от всех прочих циклов. Они имеют следующие названия и обозначения. Последние приведены в скобках и смысл их будет объяснен позже:
- цикл зашифрования (32-З);
- цикл расшифрования (32-Р);
- цикл выработки имитовставки (16-З).
В свою очередь, каждый из базовых циклов представляет собой многократное повторение одной единственной процедуры, называемой далее основным шагом криптопреобразования.
Таким образом, для того чтобы разобраться в ГОСТе, надо осознать следующее:
- что такое основной шаг криптопреобразования;
- как из основных шагов складываются базовые циклы;
- как из трех базовых циклов складываются все практические алгоритмы ГОСТа.
Прежде чем перейти к изучению этих вопросов, следует поговорить о ключевой информации, используемой алгоритмами ГОСТа. В соответствии с принципом Киркхоффса, которому удовлетворяют все современные известные шифры, именно ее секретность обеспечивает секретность зашифрованного сообщения. В ГОСТе ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шифров, она содержит еще и таблицу замен. Ниже приведены основные характеристики ключевых структур ГОСТа.
- Ключ является массивом из восьми 32-битовых элементов кода. В ГОСТе элементы ключа K i используются как 32-разрядные целые числа без знака: значения ключа K i могут изменяться от 0 до 2** 32. Таким образом, размер ключа составляет 32 . 8=256 бит или 32 байта.
- Таблица замен может быть представлена в виде матрицы размера 8х16, содержащей 4-битовые элементы, которые можно представить в виде целых чисел от 0 до 15.
- Строки таблицы замен называются узлами замен, они должны содержать различные значения, то есть каждый узел замен должен содержать 16 различных чисел от 0 до 15 в произвольном порядке. Таким образом, общий объем таблицы замен равен: 8 узлов х 16 элементов/узел х 4 бита/элемент = 512 бит или 64 байта.
Основной шаг криптопреобразования по своей сути является оператором, определяющим преобразование 64-битового блока данных. Дополнительным параметром этого оператора является 32-битовый блок, в качестве которого используется какой-либо элемент ключа. Число повторений основного шага криптопреобразования (число раундов) n=32. Ниже даны пояснения к алгоритму основного шага.
Шаг 0. Определяет исходные данные для основного шага криптопреобразования:
N – преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N 1) и старшая (N 2) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N 1, N 2); X – 32-битовый элемент ключа.
Шаг 1. Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю 2** 32 с используемым на шаге элементом ключа, результат передается на следующий шаг.
Шаг 2. Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S = (S 0, S 1, S 2, S 3, S 4, S 5, S 6, S 7).
Далее значение каждого из восьми блоков заменяется новым, которое выбирается по таблице замен следующим образом: значение блока S i меняется на S i-й по порядку элемент (нумерация с нуля) i-го узла замен (т. е. i-й строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Теперь становится понятным размер таблицы замен: число строк в ней равно числу 4-битовых элементов в 32-битовом блоке данных, то есть восьми, а число столбцов равно числу различных значений 4-битового блока данных, равному как известно 2 4, шестнадцати.
Шаг 3. Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11 бит в сторону старших разрядов и передается на следующий шаг.
Шаг 4. Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.
Шаг 5. Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.
Шаг 6. Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования.
Базовые циклы криптографических преобразований. Поскольку ГОСТ относится к классу блочных шифров, т. е. единицей обработки информации в нем является блок данных. Следовательно, вполне логично ожидать, что в нем будут определены алгоритмы для криптографических преобразований, т. е. для зашифрования, расшифрования и «учета» в контрольной комбинации одного блока данных. Именно эти алгоритмы и называются базовыми циклами ГОСТа, что подчеркивает их фундаментальное значение для построения этого шифра.
Базовые циклы построены из основных шагов криптографического преобразования, рассмотренного ранее. В процессе выполнения основного шага используется только один элемент ключа, в то время как ключ ГОСТа содержит восемь таких элементов. Следовательно, для того, чтобы ключ был использован полностью, каждый из базовых циклов должен многократно выполнять основной шаг с различными его элементами. Вместе с тем кажется вполне естественным, что в каждом базовом цикле все элементы ключа должны быть использованы одинаковое число раз, по соображениям стойкости шифра это число должно быть больше одного.
Все сделанные выше предположения, опирающиеся просто на здравый смысл, оказались верными. Базовые циклы заключаются в многократном выполнении основного шага с использованием разных элементов ключа и отличаются друг от друга только числом повторений шага и порядком использования ключевых элементов.
Ниже приведен этот порядок для различных циклов.
- Цикл зашифрования 32-З:
.
- Цикл расшифрования 32-Р:
- Цикл выработки имитовставки 16-З:
Каждый из циклов имеет собственное буквенно-цифровое обозначение, соответствующее шаблону «n-X» , где первый элемент обозначения (n), задает число повторений основного шага в цикле, а второй элемент обозначения (X), буква, задает порядок зашифрования (З) или расшифрования (Р) в использовании ключевых элементов. Этот порядок нуждается в дополнительном пояснении: цикл расшифрования должен быть обратным циклу зашифрования, т. е. последовательное применение этих двух циклов к произвольному блоку должно дать в итоге исходный блок, что отражается следующим соотношением: Ц 32-Р ( Ц 32-З (T))=T , где T – произвольный 64-битовый блок данных, Ц X (T) – результат выполнения цикла X над блоком данных T. Для выполнения этого условия для алгоритмов, подобных ГОСТу, необходимо и достаточно, чтобы порядок использования ключевых элементов соответствующими циклами был взаимно обратным. В справедливости записанного условия для рассматриваемого случая легко убедиться, сравнив приведенные выше последовательности для циклов 32-З и 32-Р.
Из сказанного вытекает одно интересное следствие: свойство цикла быть обратным другому циклу является взаимным, т. е. цикл 32-З является обратным по отношению к циклу 32-Р. Другими словами, зашифрование блока данных теоретически может быть выполнено с помощью цикла расшифрования. В этом случае расшифрование блока данных должно быть выполнено циклом зашифрования. Из двух взаимно обратных циклов любой может быть использован для зашифрования, тогда второй должен быть использован для расшифрования данных, однако стандарт ГОСТ 28147–89 закрепляет роли за циклами и не предоставляет пользователю права выбора в этом вопросе.
Источник
ТЕМА 5. ОТЕЧЕСТВЕННЫЙ СТАНДАРТ ШИФРОВАНИЯ ПО ГОСТ 28147–89
Цели и задачи изучения темы:
- сформировать представление об общей структуре алгоритма шифрования по ГОСТ 28147–89;
- ознакомить с основными режимами работы алгоритма шифрования;
- познакомить с аппаратно-программным комплексом криптографической защиты данных и ограничения доступа к ним КРИПТОН – 4/PCI;
- приобрести навыки практической работы с программным средством КРИПТОН ® Шифрование.
Оглавление:
5.3. Режимы и схемы работы алгоритмов шифрования по ГОСТ 28147–89
Цикл выработки имитовставки вдвое короче циклов шифрования, порядок использования ключевых элементов в нем такой же, как в первых 16 шагах цикла зашифрования, в чем нетрудно убедиться, рассмотрев приведенные выше последовательности, поэтому порядок в обозначении цикла кодируется той же самой буквой З.
Алгоритм ГОСТ 28147–89 имеет четыре режима работы:
- Режим простой замены.
- Режим гаммирования.
- Режим гаммирования с обратной связью.
- Режим выработки имитоприставок.
Таким образом, ГОСТ 28147–89 предусматривает три режима шифрования данных и дополнительный – режим выработки имитовставки. В любом из этих режимов данные обрабатываются блоками по 64 бита, на которые разбивается массив, подвергаемый криптографическому преобразованию, именно поэтому ГОСТ относится к блочным шифрам. Однако в двух режимах гаммирования есть возможность обработки неполного блока данных размером меньше 8 байт, что существенно при шифровании массивов данных с произвольным размером, который может не быть кратным 8 байтам. Все режимы используют одно и то же основное преобразование, но с разным числом раундов и различным образом.
Простая замена. Режим простой замены предназначен для шифрования ключей (существует множество схем применения алгоритмов симметричного шифрования, использующих несколько ключей различного назначения; в этих случаях требуется шифрование одних ключей на другие). В данном режиме выполняются 32 раунда основного преобразования. В каждом из раундов, как было сказано выше, используется определенный подключ, который выбирается следующим образом:
– для раундов с 1-го по 24-й (r – номер раунда, а % – операция вычисления остатка от деления), т. е.
и т. д.;
– для раундов с 25-го по 32-й, т. е. в обратном порядке:
.
Для расшифрования информации в режиме простой замены также выполняются 32 раунда основного преобразования, но с использованием подключей по другой схеме: в прямом порядке в раундах с 1-го по 8-й; в обратном порядке в последующих раундах. Зашифрование в данном режиме заключается в применении цикла 32-З к блокам открытых данных, расшифрование – цикла 32-Р к блокам зашифрованных данных. Это наиболее простой из режимов, а 64-битовые блоки данных обрабатываются в нем независимо друг от друга. Схемы алгоритмов зашифрования и расшифрования в режиме простой замены – тривиальны и не нуждаются в комментариях.
Размер массива открытых или зашифрованных данных, подвергающихся соответственно зашифрованию или расшифрованию, должен быть кратен 64 битам: |T о|=|T ш|=64 . n; после выполнения операции размер полученного массива данных не изменяется.
Табличные замены (Substitution box – S-box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция. В таблицу записываются выходные значения блоков. Блок данных определенной размерности (в нашем случае – 4-бит) имеет свое числовое представление, которое определяет номер выходного значения. Например, если S-box имеет вид 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 и на вход пришел 4-бит блок «0100» (значение 4), то, согласно таблице, выходное значение будет равно 15, т. е. «1111» (0 а 4, 1 а 11, 2 а 2. ).
Режим шифрования простой заменой имеет следующие особенности:
- Так как блоки данных шифруются независимо друг от друга и от их позиции в массиве, при зашифровании двух одинаковых блоков открытого текста получаются одинаковые блоки шифртекста и наоборот. Отмеченное свойство позволит криптоаналитику сделать заключение о тождественности блоков исходных данных, если в массиве зашифрованных данных ему встретились идентичные блоки, что является недопустимым для серьезного шифра.
- Если длина шифруемого массива данных не кратна 8 байтам или 64 битам, то возникает проблема: чем и как дополнять последний неполный блок данных массива до полных 64 бит. Эта задача не так проста, как кажется на первый взгляд. Очевидные решения типа «дополнить неполный блок нулевыми битами» или, в более общем виде, «дополнить неполный блок фиксированной комбинацией нулевых и единичных битов» могут при определенных условиях дать в руки криптоаналитика возможность методами перебора определить содержимое этого самого неполного блока, и этот факт означает снижение стойкости шифра. Кроме того, при таком подходе изменится длина шифртекста, увеличившись до ближайшего целого, кратного 64 битам, что часто бывает нежелательным.
На первый взгляд перечисленные выше особенности делают практически невозможным использование режима простой замены, ведь он может применяться только для шифрования массивов данных с размером, кратным 64 битам, не содержащим повторяющихся 64-битовых блоков. Кажется, что для любых реальных данных гарантировать выполнение указанных условий невозможно. Это почти так, но есть одно очень важное исключение: вспомните, что размер ключа составляет 32 байта, а размер таблицы замен – 64 байта. Кроме того, наличие повторяющихся 8-байтовых блоков в ключе или таблице замен будет говорить об их весьма плохом качестве, поэтому в реальных ключевых элементах такого повторения быть не может.
Таким образом, режим простой замены вполне подходит для шифрования ключевой информации, тем более, что прочие режимы для этой цели менее удобны, поскольку требуют наличия дополнительного синхронизирующего элемента данных – синхропосылки (см. далее). Действительно, ГОСТ предписывает использовать режим простой замены исключительно для шифрования ключевых данных.
Гаммирование. Для собственно шифрования информации используются режимы гаммирования и гаммирования с обратной связью. В данных режимах шифрование информации производится побитовым сложением по модулю 2 каждого 64-битного блока шифруемой информации с блоком гаммы шифра. Гамма шифра — это псевдослучайная последовательность, вырабатываемая с использованием основного преобразования алгоритма ГОСТ 28147–89 следующим образом (см. рис. 3):
Рис. 3. Режим гаммирования.
- В регистры N1 и N2 записывается их начальное заполнение – 64-битная величина, называемая «синхропосылкой».
- Выполняется зашифровывание содержимого регистров N1 и N2 (в данном случае – синхропосылки) в режиме простой замены.
- Содержимое N1 складывается по модулю (2 32 – 1) с константой
; результат сложения записывается в регистр N1.
- Содержимое N2 складывается по модулю 2 32 с константой
; результат сложения записывается в регистр N2.
- Содержимое регистров N1 и N2 подается на выход в качестве 64-битного блока гаммы шифра (т. е. в данном случае N1 и N2 образуют первый блок гаммы).
- Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифрование или расшифрование), выполняется возврат к шагу 2.
Для последующего расшифрования аналогичным образом вырабатывается гамма шифра и складывается с зашифрованной информацией. В результате получается исходная информация, поскольку известно, что: для любых последовательностей одинаковой размерности А и В, где знак
– знак операции побитового сложения по модулю 2.
Ясно, что для расшифрования информации необходимо иметь тот же ключ шифрования и то же самое значение синхропосылки, что и при зашифровании. Существуют реализации алгоритма ГОСТ 28147–89, в которых синхропосылка является секретным элементом наряду с ключом шифрования. Фактически в этом случае можно считать, что ключ шифрования увеличивается на длину синхропосылки (64 бита), что усиливает стойкость алгоритма.
Режим гаммирования с обратной связью отличается от режима гаммирования только тем, что перед возвратом к шагу 2 (для выработки следующего блока гаммы) в регистры N1 и N2 записывается содержимое блока зашифрованной информации, для зашифрования которого использовался предыдущий блок гаммы.
Рассмотрим подробнее, как же избавиться от недостатков режима простой замены. Для этого необходимо сделать возможным шифрование блоков с размером менее 64 бит и обеспечить зависимость блока шифртекста от его номера, иными словами, рандомизировать процесс шифрования. В ГОСТе это достигается двумя различными способами в двух режимах шифрования, предусматривающих гаммирование.
Гаммирование — это наложение (снятие) на открытые (зашифрованные) данные криптографической гаммы, т. е. последовательности элементов данных, вырабатываемых с помощью некоторого криптографического алгоритма, для получения зашифрованных (открытых) данных. Для наложения гаммы при зашифровании и ее снятия при расшифровании должны использоваться взаимно обратные бинарные операции, например сложение и вычитание по модулю 2** 64 для 64-битовых блоков данных. В ГОСТе для этой цели используется операция побитного сложения по модулю 2, поскольку она является обратной самой себе и, к тому же, наиболее просто реализуется аппаратно.
Гаммирование решает обе упомянутые проблемы:
- во-первых, все элементы гаммы различны для реальных шифруемых массивов и, следовательно, результат зашифрования даже двух одинаковых блоков в одном массиве данных будет различным;
- во-вторых, хотя элементы гаммы и вырабатываются одинаковыми порциями в 64 бита, использоваться может и часть такого блока с размером, равным размеру шифруемого блока.
Перейдем к описанию режима гаммирования. Гамма для этого режима получается следующим образом: с помощью некоторого алгоритмического рекуррентного генератора последовательности чисел (РГПЧ) вырабатываются 64-битовые блоки данных, которые далее подвергаются преобразованию по циклу 32-З, т. е. зашифрованию в режиме простой замены, в результате чего получаются блоки гаммы. Благодаря тому что наложение и снятие гаммы осуществляются при помощи одной и той же операции побитового исключающего ИЛИ, алгоритмы зашифрования и расшифрования в режиме гаммирования идентичны.
РГПЧ, используемый для выработки гаммы, является рекуррентной функцией:
Fi+1=f(Fi), где Fi – элементы рекуррентной последовательности; f – функция преобразования. Следовательно, неизбежно возникает вопрос об его инициализации, т. е. об элементе F0. В действительности этот элемент данных является параметром алгоритма для режимов гаммирования; на схемах он обозначен как S и называется в криптографии синхропосылкой , а в ГОСТе – начальным заполнением одного из регистров шифрователя.
По определенным соображениям разработчики ГОСТа решили использовать для инициализации РГПЧ не непосредственно синхропосылку, а результат ее преобразования по циклу 32-З: F0=Ц 32-З (S). Последовательность элементов, вырабатываемых РГПЧ, целиком зависит от его начального заполнения, т. е. элементы этой последовательности являются функцией своего номера и начального заполнения РГПЧ. С учетом преобразования по алгоритму простой замены добавляется еще и зависимость от ключа шифрования.
Таким образом, последовательность элементов гаммы для использования в режиме гаммирования однозначно определяется ключевыми данными и синхропосылкой. Естественно, для обратимости процедуры шифрования в процессах зашифрования и расшифрования должна использоваться одна и та же синхропосылка. Из требования уникальности гаммы, невыполнение которого приводит к катастрофическому снижению стойкости шифра, следует, что для шифрования двух различных массивов данных на одном ключе необходимо обеспечить использование различных синхропосылок. Это приводит к необходимости хранить или передавать синхропосылку по каналам связи вместе с зашифрованными данными, хотя в отдельных особых случаях она может быть предопределена или вычисляться особым образом, если исключается шифрование двух массивов на одном ключе.
Теперь подробно рассмотрим РГПЧ, используемый в ГОСТе для генерации элементов гаммы. Прежде всего, надо отметить, что к нему не предъявляются требования обеспечения каких-либо статистических характеристик вырабатываемой последовательности чисел.
РГПЧ спроектирован разработчиками ГОСТа, исходя из необходимости выполнения следующих условий:
- период повторения последовательности чисел, вырабатываемой РГПЧ, не должен (в процентном отношении) значительно отличаться от максимально возможного при заданном размере блока значения 2** 64;
- соседние значения, вырабатываемые РГПЧ, должны отличаться друг от друга в каждом байте, иначе задача криптоаналитика будет упрощена;
- РГПЧ должен быть достаточно просто реализуем как аппаратно, так и программно на наиболее распространенных типах процессоров, большинство из которых, как известно, имеют разрядность 32 бита.
Исходя из перечисленных принципов, создатели ГОСТа спроектировали весьма удачный РГПЧ, имеющий следующие характеристики:
- в 64-битовом блоке старшая и младшая части обрабатываются независимо друг от друга. Фактически, существуют два независимых РГПЧ для старшей и младшей частей блока;
- период повторения последовательности для младшей части составляет 2** 32, для старшей 2** 32–1, а для всей последовательности период составляет (2** 32) *(2** 32–1). Доказательство этого факта – весьма несложно. Первая формула из приведенных двух реализуется за одну команду, вторая, несмотря на ее кажущуюся громоздкость, за две команды на всех современных 32-разрядных процессорах.
Пояснения к схеме алгоритма шифрования в режиме гаммирования изложены ниже.
Шаг 0. Определяет исходные данные для основного шага криптопреобразования:
- Tо(ш) – массив открытых (зашифрованных) данных произвольного размера, подвергаемый процедуре зашифрования (расшифрования); по ходу процедуры массив подвергается преобразованию порциями по 64 бита.
- S – синхропосылка, 64-битовый элемент данных, необходимый для инициализации генератора гаммы.
Шаг 1. Начальное преобразование синхропосылки, выполняемое для ее «рандомизации», т. е. для устранения статистических закономерностей, присутствующих в ней; результат используется как начальное заполнение РГПЧ.
Шаг 2. Один шаг работы РГПЧ, реализующий его рекуррентный алгоритм. В ходе данного шага старшая (S1) и младшая (S0) части последовательности данных вырабатываются независимо друг от друга.
Шаг 3. Гаммирование. Очередной 64-битовый элемент, выработанный РГПЧ, подвергается процедуре зашифрования по циклу 32–З; результат используется как элемент гаммы для зашифрования (расшифрования) очередного блока открытых (зашифрованных) данных того же размера.
Шаг 4. Результат работы алгоритма – зашифрованный (расшифрованный) массив данных.
Особенности гаммирования как режима шифрования:
- Одинаковые блоки в открытом массиве данных дадут при зашифровании различные блоки шифртекста, что позволит скрыть факт их идентичности.
- Поскольку наложение гаммы выполняется побитно, шифрование неполного блока данных легко выполнимо как шифрование битов этого неполного блока, для чего используются соответствующие биты блока гаммы. Так, для зашифрования неполного блока в 1 бит можно использовать любой бит из блока гаммы.
- Синхропосылка, использованная при зашифровании, каким-то образом должна быть передана для использования при расшифровании. Это может быть достигнуто следующими путями:
- хранить или передавать синхропосылку вместе с зашифрованным массивом данных, что приведет к увеличению размера массива данных при зашифровании на размер синхропосылки, т. е. на 8 байт;
- использовать предопределенное значение синхропосылки или вырабатывать ее синхронно источником и приемником по определенному закону; в этом случае изменение размера передаваемого или хранимого массива данных отсутствует.
Оба способа дополняют друг друга, и в тех редких случаях, где не работает первый, наиболее употребительный из них, может быть использован второй, более экзотический.
Второй способ имеет гораздо меньшее применение, поскольку сделать синхропосылку предопределенной можно только в том случае, если на данном комплекте ключевой информации шифруется заведомо не более одного массива данных, что бывает в редких случаях. Генерировать синхропосылку синхронно у источника и получателя массива данных также не всегда возможно, поскольку требует жесткой привязки к чему-либо в системе. По этой причине использование при передаче зашифрованных сообщений в качестве синхропосылки номера передаваемого сообщения не подходит, поскольку сообщение может потеряться и не дойти до адресата. В этом случае произойдет рассинхронизация систем шифрования источника и приемника. Поэтому в рассмотренном случае нет альтернативы передаче синхропосылки вместе с зашифрованным сообщением.
Можно привести и обратный пример. Допустим, шифрование данных используется для защиты информации на диске, и реализовано оно на низком уровне, для обеспечения независимого доступа данные шифруются по секторам. В этом случае невозможно хранить синхропосылку вместе с зашифрованными данными, поскольку размер сектора нельзя изменить, однако ее можно вычислять как некоторую функцию от номера считывающей головки диска, номера дорожки (цилиндра) и номера сектора на дорожке. В этом случае синхропосылка привязывается к положению сектора на диске, которое вряд ли может измениться без переформатирования диска, то есть без уничтожения данных на нем.
Режим гаммирования имеет еще одну интересную особенность. В этом режиме биты массива данных шифруются независимо друг от друга. Таким образом, каждый бит шифртекста зависит от соответствующего бита открытого текста и, естественно, порядкового номера бита в массиве: .
Из этого вытекает, что изменение бита шифртекста на противоположное значение приведет к аналогичному изменению бита открытого текста на противоположный:
,
где – обозначает инвертированное по отношению к t значение бита
.
Данное свойство дает злоумышленнику возможность, воздействуя на биты шифртекста, вносить предсказуемые и даже целенаправленные изменения в соответствующий открытый текст, получаемый после его расшифрования, не зная при этом секретного ключа.
Это иллюстрирует хорошо известный в криптологии факт, что секретность и аутентичность – суть различные свойства криптографических систем. Иными словами, свойства криптосистемы обеспечивать защиту от несанкционированного ознакомления с содержимым сообщения и от несанкционированного внесения изменений в сообщение являются независимыми и лишь в отдельных случаях могут пересекаться. Сказанное означает, что существуют криптографические алгоритмы, обеспечивающие определенную секретность зашифрованных данных и при этом никак не защищающие от внесения изменений и, наоборот, обеспечивающие аутентичность данных и никак не ограничивающие возможность ознакомления с ними. По этой причине свойство режима гаммирования не должно рассматриваться как его недостаток.
Гаммирование с обратной связью. Данный режим очень похож на режим гаммирования и отличается от него только способом выработки элементов гаммы – очередной элемент гаммы вырабатывается как результат преобразования по циклу 32-З предыдущего блока зашифрованных данных, а для зашифрования первого блока массива данных элемент гаммы вырабатывается как результат преобразования синхропосылки по тому же циклу 32-З. Этим достигается «сцепление блоков» – каждый блок шифртекста в этом режиме зависит от соответствующего и всех предыдущих блоков открытого текста.
Поэтому данный режим иногда называется гаммированием со сцеплением блоков. На криптостойкость шифра факт «сцепления» блоков не оказывает никакого влияния.
Схема алгоритмов зашифрования и расшифрования в режиме гаммирования с обратной связью ввиду своей простоты в комментариях не нуждается.
Шифрование в режиме гаммирования с обратной связью обладает теми же особенностями, что и шифрование в режиме обычного гаммирования, за исключением влияния искажений шифртекста на соответствующий открытый текст.
Для сравнения запишем функции расшифрования блока для обоих упомянутых режимов:
, гаммирование;
, гаммирование с обратной связью.
Если в режиме обычного гаммирования изменения в определенных битах шифртекста влияют только на соответствующие биты открытого текста, то в режиме гаммирования с обратной связью картина несколько сложнее. Как видно из соответствующего уравнения, при расшифровании блока данных в режиме гаммирования с обратной связью блок открытых данных зависит от соответствующего и предыдущего блоков зашифрованных данных. Поэтому, если внести искажения в зашифрованный блок, то после расшифрования искаженными окажутся два блока открытых данных – соответствующий и следующий за ним, причем искажения в первом случае будут носить тот же характер, что и в режиме гаммирования, а во втором случае – как в режиме простой замены. Другими словами, в соответствующем блоке открытых данных искаженными окажутся те же самые биты, что и в блоке шифрованных данных, а в следующем блоке открытых данных все биты независимо друг от друга с вероятностью 1/2 изменят свои значения.
Выработка имитовставки к массиву данных. Ранее мы обсудили влияние искажения шифрованных данных на соответствующие открытые данные. Мы установили, что при расшифровании в режиме простой замены соответствующий блок открытых данных оказывается искаженным непредсказуемым образом, а при расшифровании блока в режиме гаммирования изменения предсказуемы.
В режиме гаммирования с обратной связью искаженными оказываются два блока: один предсказуемым, а другой непредсказуемым образом. Означает ли это, что с точки зрения защиты от навязывания ложных данных режим гаммирования является плохим, а режимы простой замены и гаммирования с обратной связью хорошими? – Ни в коем случае.
При анализе данной ситуации необходимо учесть то, что непредсказуемые изменения в расшифрованном блоке данных могут быть обнаружены только в случае избыточности этих данных, причем чем больше степень избыточности, тем вероятнее обнаружение искажения. Очень большая избыточность имеет место, например, для текстов на естественных и искусственных языках; в этом случае факт искажения обнаруживается практически неизбежно.
Однако в других случаях, например при искажении сжатых звуковых образов, мы получим просто другой образ, который сможет воспринять наше ухо. Искажение в этом случае останется необнаруженным, если, конечно, нет априорной информации о характере звука.
Вывод здесь такой: поскольку способность некоторых режимов шифрования обнаруживать искажения, внесенные в шифрованные данные, существенным образом опирается на наличие и степень избыточности шифруемых данных, эта способность не является имманентным свойством соответствующих режимов и не может рассматриваться как их достоинство.
Для решения задачи обнаружения искажений в зашифрованном массиве данных с заданной вероятностью в ГОСТе предусмотрен дополнительный режим криптографического преобразования – выработка имитовставки. Имитовставка – это контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Целью использования имитовставки является обнаружение всех случайных или преднамеренных изменений в массиве информации. Проблема, изложенная в предыдущем пункте, может быть успешно решена с помощью добавления к шифрованным данным имитовставки.
Для потенциального злоумышленника две следующие задачи практически неразрешимы, если он не владеет ключевой информацией:
- вычисление имитовставки для заданного открытого массива информации;
- подбор открытых данных под заданную имитовставку.
В качестве имитовставки берется часть выходного блока (обычно 32 его младших бита). При выборе размера имитовставки надо принимать во внимание, что вероятность успешного навязывания ложных данных равна величине 2**(–|I|) на одну попытку подбора, при условии, что в распоряжении злоумышленника нет более эффективного метода подбора, чем простое угадывание. При использовании имитовставки размером 32 бита эта вероятность равна 2**(–32)» 0.23 . 10**(–9).
С помощью режима выработки имитоприставок вычисляются имитоприставки – криптографические контрольные суммы информации, вычисленные с использованием определенного ключа шифрования. Имитоприставки обычно вычисляются до зашифрования информации и хранятся или отправляются вместе с зашифрованными данными, чтобы впоследствии использоваться для контроля целостности. После расшифрования информации имитоприставка вычисляется снова и сравнивается с хранимой; несовпадение значений указывает на порчу или преднамеренную модификацию данных при хранении или передаче или на ошибку расшифрования.
В режиме выработки имитоприставки выполняются следующие операции:
Первый 64-битный блок информации, для которой вычисляется имитоприставка, записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простой замены, в котором выполняется 16 раундов основного преобразования вместо 32.
Полученный результат суммируется по модулю 2 со следующим блоком открытого текста и сохраняется в N1 и N2 (и т. д. до последнего блока открытого текста).
В качестве имитоприставки используется результирующее содержимое регистров N1 и N2 или его часть (в зависимости от требующегося уровня стойкости) – часто имитоприставкой считается 32-битное содержимое регистра N1.
При разработке алгоритма ГОСТ 28147–89 криптографами отечественных спецслужб была заложена избыточная стойкость – до сих пор не известны более эффективные методы взлома данного алгоритма, чем метод полного перебора возможных вариантов ключей шифрования. А полный перебор 2^256 ключей (не считая секретной синхропосылки) при современном развитии компьютерной техники за реальное время осуществить невозможно.
Требования к качеству ключевой информации и источники ключей. Не все ключи и таблицы замен обеспечивают максимальную стойкость шифра. Для каждого алгоритма шифрования существуют свои критерии оценки ключевой информации. Исчерпывающий ответ на вопрос о критериях качества ключей и таблиц замен ГОСТа если и можно получить, то только у разработчиков алгоритма.
Соответствующие данные не были опубликованы в открытой печати. Однако, согласно установленному порядку, для шифрования информации, имеющей гриф секретности, должны быть использованы ключевые данные, полученные от уполномоченной организации.
Косвенно это может свидетельствовать о наличии методик проверки ключевых данных на их «слабость». Сам факт существования слабых ключевых данных в российском стандарте шифрования сомнения не вызывает. Очевидно, что нулевой ключ и тривиальная таблица замен, по которой любое значение заменяется но него самого, являются слабыми. При использовании хотя бы одного из них шифр достаточно просто взламывается, каков бы ни был второй ключевой элемент.
Как было отмечено выше, критерии оценки качества ключевой информации недоступны, однако на их счет все же можно высказать некоторые общие соображения:
- Ключ должен являться массивом статистически независимых битов, принимающих с равной вероятностью значения 0 и 1. При этом некоторые конкретные значения ключа могут оказаться «слабыми», т. е. шифр может не обеспечивать заданный уровень стойкости в случае их использования. Однако, предположительно, доля таких значений в общей массе всех возможных ключей ничтожно мала. Поэтому ключи, выработанные с помощью некоторого датчика истинно случайных чисел, будут качественными с вероятностью, отличающейся от единицы на ничтожно малую величину. Если же ключи вырабатываются с помощью генератора псевдослучайных чисел, то используемый генератор должен обеспечивать указанные выше статистические характеристики и, кроме того, обладать высокой криптостойкостью, не меньшей, чем у самого ГОСТа. Иными словами, задача определения отсутствующих членов вырабатываемой генератором последовательности элементов не должна быть проще, чем задача вскрытия шифра. Кроме того, для отбраковки ключей с плохими статистическими характеристиками могут быть использованы различные статистические критерии. На практике обычно хватает двух критериев: для проверки равновероятного распределения битов ключа между значениями 0 и 1 обычно используется критерий Пирсона («хи квадрат»), а для проверки независимости битов ключа – критерий серий. Об упомянутых критериях можно прочитать в учебниках или справочниках по математической статистике.
- Таблица замен является долговременным ключевым элементом, т. е. действует в течение гораздо более длительного срока, чем отдельный ключ. Предполагается, что она является общей для всех узлов шифрования в рамках одной системы криптографической защиты. Даже при нарушении конфиденциальности таблицы замен стойкость шифра остается чрезвычайно высокой и не снижается ниже допустимого предела. К качеству отдельных узлов замен можно предъявить приведенное ниже требование. Каждый узел замен может быть описан четверкой логических функций, каждая из которых имеет четыре логических аргумента. Необходимо, чтобы эти функции были достаточно сложными. Это требование сложности невозможно выразить формально, однако в качестве необходимого условия можно потребовать, чтобы соответствующие логические функции, записанные в минимальной форме (т. е. с минимально возможной длиной выражения) с использованием основных логических операций, не были короче некоторого необходимого минимума. В первом и очень грубом приближении это условие может сойти и за достаточное. Кроме того, отдельные функции в пределах всей таблицы замен должны отличаться друг от друга в достаточной степени. На практике бывает достаточно получить узлы замен как независимые случайные перестановки чисел от 0 до 15, это может быть практически реализовано, например с помощью перемешивания колоды из шестнадцати карт, за каждой из которых закреплено одно из значений указанного диапазона.
Необходимо отметить еще один интересный факт относительно таблицы замен. Для обратимости циклов шифрования «32-З» и «32-Р» не требуется, чтобы узлы замен были перестановками чисел от 0 до 15. Все работает даже в том случае, если в узле замен есть повторяющиеся элементы и замена, определяемая таким узлом, необратима, однако в этом случае снижается стойкость шифра. Почему это так – убедиться несложно. Для этого достаточно, используя демонстрационную программу шифрования файлов данных, прилагающуюся к настоящей статье, зашифровать, а затем расшифровать файл данных, использовав для этой процедуры «неполноценную» таблицу замен, узлы которой содержат повторяющиеся значения.
Если вы разрабатываете программы, использующие криптографические алгоритмы, вам необходимо позаботиться об утилитах, вырабатывающих ключевую информацию, а для таких утилит необходим источник случайных чисел (СЧ) высокого статистического качества и криптостойкости. Наилучшим подходом здесь было бы использование аппаратных датчиков СЧ, однако это не всегда приемлемо по экономическим соображениям. В качестве разумной альтернативы возможно (и очень широко распространено) использование различных программных датчиков СЧ. При генерации небольшого по объему массива ключевой информации широко применяется метод «электронной рулетки», когда очередная получаемая с такого датчика порция случайных битов зависит от момента времени нажатия оператором некоторой клавиши на клавиатуре компьютера.
5.4. Аппаратно-программный комплекс криптографической защиты данных и ограничения доступа к ним КРИПТОН – 4/PCI
Алгоритмы защиты информации, в частности алгоритмы шифрования, могут быть реализованы как программным, так и аппаратным способом. Оба варианта имеют ярко выраженные достоинства и недостатки. Основной недостаток устройств криптографической защиты данных (УКЗД), реализующих аппаратное шифрование информации, – это их относительно высокая стоимость. К достоинствам же относится тот факт, что на базе УКЗД можно обеспечить всестороннюю защиту компьютера, чего нельзя сделать при использовании только программно реализованного шифрования.
Принципы работы УКЗД
Основное назначение УКЗД – шифрование данных. Эта операция выполняется шифропроцессором, представляющим собой специализированную микросхему, которая выполняет криптографические операции, или микросхему программируемой логики (PLD – Programmable Logic Device). Шифропроцессоров может быть несколько для повышения скорости и/или надежности шифрования. Для повышения скорости информацию распараллеливают между ними. Для обеспечения надежности производят обработку одних и тех же данных двумя шифропроцессорами с последующим сравнением результатов перед их выдачей. Шифропроцессорами и остальными модулями УКЗД управляет основной модуль – блок управления, реализуемый обычно на базе микроконтроллера с достаточным количеством внутренних ресурсов и хорошим быстродействием.
Помимо собственно шифрования, УКЗД может выполнять ряд дополнительных функций, из которых прежде всего стоит отметить следующие:
- наличие аппаратного датчика случайных чисел (ДСЧ), которые необходимы для генерации криптографических ключей, а также используются в алгоритмах электронной цифровой подписи (ЭЦП);
- наличие функциональности электронного замка: контроль входа пользователя на компьютер и контроль целостности файлов операционной системы.
Последняя функция позволяет обеспечить на базе УКЗД полноценную защиту компьютера от несанкционированного доступа. Рассмотрим более подробно принципы работы электронного замка.
Защита компьютера от несанкционированного доступа
УКЗД, работающее в режиме электронного замка, при загрузке компьютера перехватывает управление (в тот момент, когда BIOS компьютера опрашивает вставленные в него аппаратные модули) и выполняет следующий набор действий:
- Предлагает пользователю вставить специальный ключевой носитель (в простейшем случае – дискету с файлами криптографических ключей), с которого считывает необходимую информацию. Производятся анализ предъявленных ключей и аутентификация пользователя. Если пользователь не входит в число тех, кому разрешен доступ на данный компьютер (список хранится в памяти УКЗД), в загрузке компьютера будет отказано.
- Производится контроль целостности важных файлов компьютера согласно списку, хранящемуся в памяти УКЗД. Список контролируемых файлов хранится вместе с контрольными суммами или хэш-значениями, рассчитанными по алгоритму ГОСТ Р 34.11–94 для каждого файла, входящего в список. Если хэш хотя бы одного из файлов списка не совпадает с эталоном для данного файла, УКЗД расценивает это как нарушение целостности операционной системы и блокирует загрузку компьютера.
- Если описанные выше условия выполнены, УКЗД возвращает компьютеру управление, разрешая загрузить операционную систему. Удачная или неудавшаяся попытка входа на компьютер фиксируется в аппаратном журнале УКЗД.
См. подробнее в хрестоматии
Подразумевается, что за каждое рабочее место, оснащенное УКЗД, отвечает администратор по безопасности (один на организацию или структурное подразделение). В данном случае его функциями является настройка и обслуживание электронного замка, а именно:
- создание списка пользователей, которым разрешен доступ на компьютер, и генерация ключевых комплектов для каждого из них;
- создание списка контролируемых файлов. Набор файлов различается в зависимости от используемой операционной системы и выполняемых пользователем задач. Набор файлов может выглядеть следующим образом: io.sys, msdos.sys, autoexec.bat, gdi 32.dll, kernel 32.dll, user 32.dll, normal.dot, winword.exe и т. д. Нарушение целостности этих файлов (которые находятся в постоянном использовании) может быть следствием попытки внедрения злоумышленником программной закладки с целью, например, последующего перехвата и/или модификации обрабатываемой пользователем информации;
- анализ журнала УКЗД для расследования попыток несанкционированного входа на компьютер. Электронный замок отличает администратора от непривилегированных пользователей по специальному ключевому носителю администратора, по предъявлении которого перечисленные выше возможности по настройке становятся доступными.
Для обеспечения полной надежности защиты от НСД память УКЗД содержит программную среду, гарантированно свободную от внедренного злоумышленником программного обеспечения («закладок»). Именно в этой среде, загружаемой в компьютер непосредственно из памяти УКЗД, и производятся все описанные выше проверки. Гарантированная программная среда не позволит также злоумышленнику осуществить перехват ключевой информации на этапе ее ввода в УКЗД.
Принципы взаимодействия с прикладными процессами
Все же основное значение УКЗД – аппаратное шифрование данных, выполняемое согласно получаемым устройством командам. Команды может отдавать, например, программа шифрования файлов.
Рассмотрим принципы взаимодействия прикладных программ с УКЗД на примере операционных систем семейства Microsoft Windows. УКЗД может одновременно использоваться несколькими программами, например:
- программой прозрачного шифрования логических дисков компьютера;
- модулем шифрования сообщений электронной почты;
- программой ЭЦП (запросы к ДСЧ);
- программой генерации ключей шифрования (запросы к ДСЧ).
Обычно прикладные программы не получают прямого интерфейса к УКЗД (что было принято в MS – DOS). В Windows такой подход неприменим по ряду причин, в качестве основной из которых следует назвать возможность возникновения коллизий при одновременном обращении различных программ к УКЗД. Поэтому на промежуточном уровне между Windows-приложениями и УКЗД располагается программный интерфейс, управляющий УКЗД и решающий нижеперечисленные задачи (см. рис. 4).
Рис. 4. Организация взаимодействия с прикладными процессами.
- Управление очередностью обращений к УКЗД различных прикладных программ и модулей. Интерфейс управграммы, которая обращается к УКЗД, создает отдельную сессию, а затем следит за корректным поочередным предоставлением ресурсов УКЗД разным сессиям. Это несколько похоже на распределение ресурсов центрального процессора компьютера между несколькими программами в многозадачной среде. Таким образом, УКЗД виртуализуется для каждого прикладного процесса – каждая сессия имеет как бы собственный шифратор со своими ключами шифрования, которые корректно перезагружаются при переключении между сессиями.
- Предоставление корректного интерфейса к УКЗД прикладным программам, работающим в DOS-сессии Microsoft Windows. Эта особенность позволяет использовать УКЗД в многозадачной среде DOS-программам, не рассчитанным на многозадачность и требующим монопольного использования ресурсов УКЗД.
Механизм виртуализации позволяет выполнять такие DOS-программы параллельно с шифрующими Windows-приложениями.
- Предоставление стандартного интерфейса функций УКЗД Windows-приложениям.
- Возможность подключения различных типов УКЗД через драйверы, предоставляющие стандартный набор функций, требующийся интерфейсу управления УКЗД. Это позволяет прикладным программам не зависеть от конкретного типа УКЗД. В данном случае вместо УКЗД можно подключить и программный шифратор, работающий на уровне ядра операционной системы.
Таким образом, при обращении программы к УКЗД любой запрос проходит несколько уровней:
- уровень приложений;
- уровень, обеспечивающий интерфейс между приложением и драйвером УКЗД;
- уровень ядра операционной системы – драйвер УКЗД;
- аппаратный уровень – собственно УКЗД.
Тем не менее, несмотря на сложность реализации такой схемы, по принципу унификации интерфейсов и разделения аппаратных ресурсов в системах семейства Microsoft Windows работают многие подсистемы, например сетевая.
Комплексная защита компьютера
Рассмотрим комплекс задач по обеспечению защиты информации на персональном компьютере. Для большинства случаев приведенный список является избыточным – набор задач на конкретных автоматизированных рабочих местах (АРМ) представляет собой подмножество приведенных здесь.
- Обеспечение защиты компьютера от НСД и контроль целостности операционной системы – во избежание внедрения злоумышленником программных закладок, имеющих целью перехват криптографических ключей, прочтение и модификацию хранимой и обрабатываемой информации, удаленное управление компьютером и т. д.
- Обеспечение конфиденциальности и целостности хранящейся и обрабатываемой информации.
- Обеспечение конфиденциальности и целостности, а также подтверждение авторства информации, передаваемой по локальным и/или глобальным вычислительным сетям.
- Обеспечение защиты компьютера от НСД по сети.
Решение первой из приведенных задач – применение УКЗД в режиме электронного замка, который подробно описан выше. Данный режим имеет один серьезный недостаток: злоумышленник может вынуть УКЗД из компьютера, что позволит ему получить желаемый доступ к компьютеру. Эта проблема решается административными мерами и/или применением средств «прозрачного» шифрования информации.
Термин «прозрачное» означает незаметность шифрования для пользователя. Средство прозрачного шифрования обычно один раз настраивается на шифрование определенных логических дисков компьютера, после чего производит автоматическое зашифрование данных при их записи на HDD компьютера и их расшифрование при чтении. Ясно, что в данном случае удаление УКЗД или хищение HDD не позволит злоумышленнику получить доступ к информации.
Помимо средств прозрачного шифрования, существуют и программы, в которых можно вручную выбирать шифруемые объекты (файлы или каталоги). Применение таких программ совместно с программами ЭЦП решает задачи обеспечения конфиденциальности и целостности хранящейся и передаваемой информации. Программные модули, реализующие алгоритмы шифрования и ЭЦП, в зависимости от конкретных задач выполняются как в виде отдельных программ с графическим интерфейсом или интерфейсом командной строки, так и в виде дополнительных модулей, встраиваемых в наиболее часто используемые приложения, например Windows Explorer, Microsoft Office и т. д.
В любом из этих случаев для шифрования и генерации случайных чисел программными модулями используются ресурсы УКЗД через интерфейс управления УКЗД. Защита от НСД по сети обеспечивается применением прозрачного шифрования сетевого обмена данными в сочетании с механизмом фильтрации входящих и исходящих информационных пакетов. Здесь соблюдается аналогия с программами прозрачного шифрования логических дисков в том смысле, что достаточно один раз настроить критерии фильтрации сетевых пакетов и критерии выбора криптографических ключей, после чего все действия будут выполняться автоматически.
Следует также отметить, что существуют специализированные АРМ, например АРМ администратора по безопасности, где, помимо перечисленных задач, УКЗД используется для генерации комплектов криптографических ключей для всех пользователей организации или структурного подразделения.
Основой построения систем криптографической защиты информации служит шифратор серии КРИПТОН – аппаратное устройство КРИПТОН или программный драйвер-шифратор Crypon Emulator (рис. 5). С шифратором работает прикладное программное обеспечение, рассчитанное на конечного пользователя, и/или средства разработки – библиотеки, предназначенные для встраивания в продукты независимых разработчиков функций шифрования и/или электронной цифровой подписи (ЭЦП). Ключи шифрования и ЭЦП могут храниться на дискетах, смарт-картах с открытой и защищенной памятью, микропроцессорных смарт-картах, идентификаторах Touch Memory, брелоках e Token для шины USB.
Для максимального удобства пользователей разработаны и поставляются модули защиты информации, подключаемые к программным продуктам Microsoft Office: MS Word 97/2000, MS Excel 97/2000. Пользователю Crypton Word или Crypton Excel достаточно шелкнуть мышью на дополнительной панели, чтобы, не выходя из офисного приложения, подписать и зашифровать файл документа или открыть защищенный файл, одновременно проверив его авторство и целостность.
Рис. 5. Общая структура аппаратно-программного комплекса криптографической защиты данных
и ограничения доступа к ним КРИПТОН – 4/PCI.Интерфейс комплекса – пакет Crypton API. Crypton API Crypton API v2.25 – пакет программ, реализующих программный интерфейс между УКЗД серии «КРИПТОН» или его программным эмулятором Crypton Emulator и прикладными программами Win32 в операционных средах Windows NT 4.0/2000 и Windows 95/98/ME.
Данный пакет программ состоит из следующих элементов:
- драйвер и библиотека для поддержки DOS приложений в Windows NT 4.0/2000 (CryptVDD.dll и CryptDOS.sys);
- драйвер для поддержки DOS приложений в Windows 95/98/ME (cryptdos.vxd);
- библиотека функций Crypton API (CryptAPI.dll);
- приложение-пример, использующее функции Crypton API (TestAPI.exe);
- библиотека SCAPI, обеспечивающая подключение различных драйверов периферийных устройств ввода/вывода.
Данный пакет необходим для работы Win32-приложений, использующих УКЗД серии «КРИПТОН» или Crypton Emulator. Также данный программный интерфейс необходим при работе приложений DOS, использующих устройства «КРИПТОН» или Crypton Emulator в среде Windows.
Источник