Информатика.Хеш функции и цифровые подписи. Контроль целостности информации. Информационная образовательная сеть
----------------------------------------------------------------
 Список контрольных вопросовСписок практических заданийЛокальное тестированиеГлоссарийЗадать вопрос в режиме реального времениПомощь в использовании электронного учебника (Руководство по использованию)Перейти на первую страницу электронного учебника
 

 Теоретическая часть

  1. Хэш-функции.
  2. НОВЫЕ КЛАССЫ ХЭШ-ФУНКЦИЙ ДЛЯ КОНТРОЛЯ ЦЕЛОСТНОСТИ ИНФОРМАЦИИ
  3. СРЕДСТВА КОНТРОЛЯ ЦЕЛОСТНОСТИ ИНФОРМАЦИИ
  4. ТЕОРЕТИЧЕСКИЕ И ТЕХНИЧЕСКИЕ ОСНОВЫ ПРИМЕНЕНИЯ В НДЦ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ













Хэш-функции.

. Хэш-функции. Хэш-функции являются необходимым элементом ряда криптографических схем. Под этим термином понимаются функции, отображающие сообщения произвольной длинны (иногда длинна сообщения ограничена, но достаточно большим числом) в значения фиксированной длинны. Последние часто называют хэш-кодами. Таким образом, у всякой хэш-функции h имеется большое количество коллизий, т.е. пар значений x ? y таких, что h(x) = h(y). Основное требование, предъявляемое к хеш-функциям, состоит в отсутствии эффективных алгоритмов поиска коллизий. В ряде криптографических приложений, особенно в схемах электронной цифровой подписи, необходимым элементом является криптографически стойкая хэш-функция. Практические методы построения хэш-функций можно условно разделить на три группы: на основе какого-либо алгоритма шифрования, на основе какой-либо известной вычислительно трудной математической задачи и методы построения "с нуля". Наиболее эффективной с точки зрения программной реализации, оказываются хэш-функции построенные "с нуля". В данной дипломной работе в качестве алгоритма построения хэш-функции использовался алгоритм Ривеста MD5, который будет описан ниже. Универсальные семейства хэш-функций. Понятие универсального семейства хэш-функций было введено в 1979 г. Картером и Вегманом [CW]. Определение 1. Пусть А и В - два конечных множества и H - семейство функций из А в В. H называется универсальным семейством хэш-функций если для любых х1? х2I Аиy1,y2IВ Вероятность берется по случайному равновероятному выбору функции h из семейства Н. Обычно предполагается, что мощность образа (множества В) меньше, чем мощность прообраза (А), и что хэш-функции "сжимают" входные слова. Как правило, рассматриваются семейства хэш-функций, которые переводят множество всех двоичных строк длины п в множество всех двоичных строк длины m, где m < п. Говоря неформально, универсальное семейство хэш-функций — это метод "перемешивания" с сокращением длины строк, при котором выходные значения распределены равномерно. Семейство хэш-функций из определения 1 принято назвать 2-универсалъным семейством. Если в этом определении заменить пары значений xи yна наборы из k значений, то получим определение k-универсального семейства хэш-функций . Лемма о композиции [DeSY].Пусть H1 и Н2 - 2-универсальные семейства, хэш-функций, действующих из C1 вC2 и из С2 в С3 соответственно. Тогда Н = {h == h2 о h1 | h1I H1, h2I H2}, где oобозначает композицию, является 2-универсальным семейством хэш-функции, действующих из C1в C3. Нас эти семейства интересуют в основном как инструмент для определения и построения семейств односторонних хэш-функций. С прикладной точки зрения универсальные семейства хэш-функций должны удовлетворять некоторым дополнительным требованиям. Во-первых, хэш-функции должны быть эффективно вычислимыми. Часто это требование включают в определение универсального семействаи формализуют следующим образом. У каждой хэш-функции hIH имеется достаточно короткое описание h и существуют два эффективных алгоритма, первый из которых по запросу и выдает случайное hIH, а второй по h аргументу x вычисляет h{x). Во-вторых, во многих случаях требуются семейства хэш-функций, которые определяются не на строках только данной фиксированной длины, а на строках всех длин (или бесконечной последовательности длин). В этом случае множество Нп, которое действует согласно определению 1 на строках длины п, называют коллекцией хэш-функций, а универсальным семейством называют {Нп}. В-третьих, для криптографических приложений иногда требуется так называемое свойство доступности коллизий (collision accessibility). Оно требует существования эффективного алгоритма, который по данным х1 и х2 выбирает hIH такую, что h(х1) = h(х2), равновероятным образом среди всех функций из Н, удовлетворяющих этому свойству. 1. Пусть F = GF(2k) и chop: {0,1}k ® {0,1}k-1 - функция, которая просто отбрасывает последний бит. Тогда семейство хэш-функций {chop(ax+b)} является 2-универсальным и удовлетворяет свойству доступности коллизий. 2. Пусть А = {0,1}n и В {0,1}m. Для х I{0,1}n и у I{0,1}n+m-1 определим конволюцию у о х элементов у и х как вектор длины m, i-я координата которого определяется поформуле Тогда семейство H = {(a о х) A b | aI {0,1}n+m-1, bI {0,1}m} представляет собой универсальное семейство хэш-функций. Семейства односторонних хэш-функций. Пусть {n1i} и { n0i} - две возрастающие последовательности натуральных чисел такие) что для всех i n1i?n0i и существует такой полином q, что q(n0i,) ? n1. (такие последовательности полиномиально связаны). Пусть Нk - коллекция функций такая, что для всех hI Hk и пусть . Предположим, что А - вероятностный алгоритм, работающий за поли-номиальное время, который на входе k выдает строку xI {0,1}n1k, называемую исходнымзначением, и затем для данной случайной h IHk пытается найти уI {0,1}n1k такое, что h{x) = h{y), но х? у. Определение 2. Семейство U называется универсальным семейством односторонних хэш-функций, если для всех полиномов р, для всех полиномиальных вероятностных алгоритмов А и всех достаточно больших k выполняются следующие условия: 1. xI {0,1}n1k - исходное значение для А, то Рг[А(h,x) = у, h{x) - h(y), у ? х] < 1/p(n1k), где вероятность берется по всем h из Hk и по всем случайным выборам алгоритма А. 2. Для любой hI Hk существует описание h. полиномиальной (от n1k) длины такое, что по этому описанию и по х значение h(x) вычислимо за полиномиальное время. 3. Коллекция Hk доступна, т. е. существует алгоритм G, который на входе k равномерно по вероятности генерирует описание функции hI Hk . Заметим, что Hk рассматривается как набор описаний функций: два разных описания могут соответствовать одной и той же функции. В данном определении А - это машина Тьюринга (однородная модель). Определение универсального семейства односторонних хэш-функций, а котором А - полиномиальная схема (неоднородная модель) формулируется аналогично, но в п. 1 вероятность берется только по выбору h из Hk. Также заметим, что это семейство называется семейством хэш-функций с трудно обнаружимыми коллизиями. Алгоритмы построения хэш-функций. N –хэш. Алгоритм разработан Nippon Telephone & Telegraph. N- хэш использует блоки длинной 128 бит, размешивающую функцию. На вход пошаговой хэш-функции в качестве аргумента поступают очередной блок сообщения Mi длинной 128 бит и хэш-код hi-1 предыдущего шага. h0 = I, где I – синхропосылка. hi = g(Mi,hi-1) A MiA hi-1. Хэш-кодом всего сообщения объявляется хэш-код, получаемый в результате преобразования последнего блока текста. Функция g вначале меняет местами старшие и младшие части (по 64 бита каждая) хэш-кода предыдущего шага, покоординатно складывая полученное значение с величиной 1010…..1010 и текущим блоком текста Mi. Полученная величина поступает на вход каскада из N (n = 8) преобразующих функций. Вторым аргументом каждой из преобразующих функций является хэш-код предыдущего шага, сложенный покоординатно с одной из восьми констант. На рисунке 1 использованы следующие условные обозначения: EXG –старшая и младшая части входного блока меняются местами; V =1010…1010 (128 бит) в двоичной записи. Vj = d||Aj1||d||Aj2||d||Aj3||d||Aj4; здесь || обозначает конкатенацию бинарных строк; d = 00…00 в двоичной записи; Ajk = 4 * (j-1) + k (k = 1,2,3,4: Ajk длинной 8 бит); PS – преобразующая функция. На рисунке 2 представлена схема преобразующей функции.Каждый из аргументов при этом разбивается на 4 блока:X1||X2||X3||X4, P= P1||P2||P3||P4, схема вычисления функции f представлена на рисунке 3. S0(a,b) = (левый циклический сдвиг на 2 бита) ((a+b)mod256): S1(a,b) = (левый циклический сдвиг на 2 бита) ((a+b+1)mod256): Результат действия преобразующей функции PS предыдущего шага становится входным аргументом очередной преобразующей функции PS. Процесс, показанный на рис.1, завершается покоординатным суммированием по модулю 2 результата действия последней преобразующей функции PS, хэш-кода предыдущего шага и блока хэшируемого текста. MD5. В этом алгоритме размер хэш-кода равен 128 битам. После ряда начальных действий MD5 разбивает текст на блоки длинной 512 битов, которые, в свою очередь делятся на 16 подблоков по 32 бита. Выходом алгоритма являются 4 блока по 32 бита, конкатенация которых образует 128-битовый хэш-код. Сначала текст дополняется таким образом, чтобы длина получаемого текста, выраженная в битах, стала на 64 меньше числа, кратного 512. Дополнение осуществляется приписываниемк концу сообщения единицы и затем необходимого числа нулей (в бинарном представлении). Затем к тексту приписывается 64-битовое представление длины исходного сообщения. Таким образом, получается текст, длина которого кратна 512 битам. Инициализируются 4 переменных размером по 32 бита; А = 01 23 45 67; В = 89 AB CD EF; С = FE DC BA 98; D = 76 54 32 10. Далее начинает работу основной цикл алгоритма. Основной цикл повторяется столько раз, сколько блоков по 512 битов присутствует в хэшируемом сообщении. Создаются копии инициализированных переменных: АА для А, ВВ для В, СС для С, DD для D. Каждый основной цикл состоит из 4 раундов. В свою очередь, каждый раунд состоит из 16 операторов. Все операторы однотипны и имеют вид: u = v + ((F(v, w, z) + Mj + tj) << Sj). Здесь: u, v, w и z суть А, В, С и. D в зависимости от номера раунда и номера оператора в раунде. Mj обозначает j-тыйподблок обрабатываемого блока. В каждом раунде порядок обработки очередным оператором подблоков определяется задаваемой в явном виде подстановкой на множестве всех подблоков (их, также как и операторов, 16). ti обозначают зафиксированные случайные константы, зависящие от номера раунда и номера оператора в раунде. <
  • В первом, раунде действует функция F{X,Y,Z) = XY \/ (not X)Z.
  • Во втором раунде действует функция G(X,Y,Z) = XZ \/ (not Z)Y.
  • В третьем раунде действует функция Н{Х,Y,Z)A =ХAY AZ.
  • В четвертом раунде действует функция I(Х,Y,Z) =YA(X \/ (not Z)). Функции подобраны таким образом, чтобы при равномерном и независимом распределении битов аргументов выходные биты были бы также распределены равномерно и независимо. Основной цикл алгоритма завершается суммированием полученных А, В, Си D и накапливаемых АА, ВВ, СС и DD, после чего алгоритм переходит к обработке нового блока данных. Выходом алгоритма является конкатенация получаемых после последнего цикла А, В, С и D. Схемы хэширования, использующие алгоритмы блочного шифрования. Идея использовать алгоритм блочного шифрования [Schnr], для построения надежных схем хэширования выглядит естественной. Напрашивается мысль использовать алгоритм блочного шифрования в режиме "с зацеплением" при нулевой синхропосылке. При этом считать хэш-кодом последний шифрблок. Очевидно, что на роль DES-алгоритма здесь годится произвольный блочный шифр. Однако при таком подходе возникают две проблемы. Во-первых, размер блока большинства блочных шифров (для DESa — 64 бита) недостаточен для того, чтобы хэш-функция была устойчива против метода на основе парадокса дня рождения. Во-вторых, предлагаемый метод требует задания некоторого ключа, на котором происходит шифрование. В дальнейшем этот ключ необходимо держать в секрете, ибо злоумышленник, зная этот ключ и хэш-значение, может выполнить процедуру в обратном направлении. Следующим шагом в развитии идеи использовать блочный шифр для хэширования является подход, при котором очередной блок текста подается в качестве ключа, а хэш-значение предыдущего шага — в качестве входного блока. Выход алгоритма блочного шифрования является текущим хэш-значением (схема Рабина). Существует масса модификаций этого метода, в том числе хэш-функции, выход которых в два раза длиннее блока. В ряде модификаций промежуточное хэш-значение суммируется покоординатно по модулю 2 с блоком текста. В этом случае подразумевается, что размер ключа и блока у шифра совпадают. В литературе встречаются 12 различных схем хэширования для случая, когда размер ключа и блока у шифра совпадают:
  • 1) Hi = EMi(Hi-1)A H i-1 (схема Дэвиса — Мейера);
  • 2) Hi = Енi-1(Мi) AH i-1A Mi (схема Миягучи);
  • 3) Hi = Енi-1(Мi) AМi, (схема Матиаса, Мейера, Осиаса);
  • 4) Hi = Енi-1(H i-1A Mi) AH i-1A Mi;
  • 5) Hi = Енi-1(H i-1A Mi) A Mi;
  • 6) Hi = ЕMi(Mi A H i-1) A MiAH i-1;
  • 7) Hi = ЕMi (H i-1) A MiAH i-1;
  • 8) Hi = ЕMi (Mi A H i-1) AH i-1;
  • 9) Hi = Енi-1AMi(Mi) A Hi-1;
  • 10) Hi = Енi-1AMi(Hi-1) A Hi-1;
  • 11) Hi = Енi-1AMi(Mi) A Mi;
  • 12) Hi = Енi-1AMi(Hi-1) A Mi; где Ek(M) обозначает результат применения алгоритма блочного шифрования с ключом k к блоку М. Во всех подобных схемах полагают Н0 = Iн, гдеIн — начальное значение. Для алгоритмов блочного шифрования с размером ключа в два раза большим чем размер шифруемого блока (например, IDEA) в 1992 году была предложена модифицированная схема Дэвиса—Мейера: Н0 = Iн, гдеIн — начальное значение; Нi= Енi-1,Mi(Hi-1). Стойкость подобных схем зависит от криптографических и иных свойств алгоритмов блочного шифрования, лежащих в их основе. В частности, даже если алгоритм шифрования является стойким, некоторые из предложенных схем обладают коллизиями [MOI]. К подобным эффектам могут приводить такие свойства алгоритма шифрования как комплиментарность (шифрование инвертированного открытого текста на инвертированном ключе приводит к инвертированному шифртексту), наличие слабых и полуслабых ключей и т. п. Еще одной слабостью указанных выше схем хэширования является то, что размер хэш-кода совпадает с размером блока алгоритма шифрования. Чаще всего размер блока недостаточен для того, чтобы схема была стойкой против атаки на базе "парадокса дня рождения". Поэтому были предприняты попытки построения хэш-алгоритмов на базе блочного шифра с размером хэш-кода в k раз (как правило, k = 2) большим, чем размер блока алгоритма шифрования: Схема Приниля — Босселэра — Гувертса — Вандервалле [PrBGV] где Li, Ri, — левая и правая половины очередного блока хэшируемого текста. Хэш-кодом является конкатенация последних значений Gi, Hi. Глава 4. Модернизация электронной подписи Эль Гамаля. Задача дискретного логарифмирования. Модернизация электронной подписи Эль Гамаля. Также, как и в обычной схеме, секретный ключ x IR Z*p-1 и открытый ключ y = g-x mod p. Пространством сообщений в данной схеме является Zp-1 . Подписывающие выбирают случайные u1,…un, так, чтобы они были взаимно простые (т.е gcd (un,p-1) = 1). Тогда Подписью в этом случае является набор (r1,…,rn,s) . Для проверки подписи (r1,…,rn,s) для сообщения m необходимо сначала проверить условия r1,…,rnIZ*p и s IZp-1 . Если хотя бы одно из них ложно, то подпись отвергается. В противном случае подпись принимается и только тогда, когда . Идея метода состоит в том, что можно подписывать коллективом из n человек, что значительно усложнит задачу раскрытия этой подписи т.к. нам неизвестны все u1,…un . Задача дискретного логарифмирования. Задача дискретного логарифмирования – одно из наиболее популярных задач, используемых в целях криптографии. Это объясняется высокой сложностью ее решения в некоторых группах. Постановка задачи. Пусть G – некоторая мультипликативно записываемая группа, а aи b– некоторые элементы этой группы, связанные равенством b = anпри некотором целом n. Любое целое x, удовлетворяющее уравнению b = ax, называется дискретным логарифмом элемента bпо основанию a. Задача дискретного логарифмирования в группе Gсостоит в отыскании по данным aи bвышеуказанного вида некоторого дискретного логарифма bпо основанию a. Если a имеет бесконечный порядок, то дискретный логарифм любого элемента по основанию aопределен однозначно. В противном случае все дискретные логарифмы bпо основаниям a можно получить из некоторого такого дискретного логарифма x0по формуле x = x0 + km, где km – порядок элемента a, а параметр kпробегает Z. Для криптографических приложений наиболее важна задача дискретного логарифмирования в мультипликативных группах конечных полей GF(q)и колец ZnКак известно, группа GF(q)* циклическая и имеет порядок q –1, поэтому если в качестве aберется некоторый порождающий этой группы, то дискретный логарифм любого элемента GF(q)* по основанию aсуществует и определен однозначно. Если логарифмировать по фиксированному основанию, которое является порождающим g группы GF(q)*, то можно находить дискретные логарифмы по произвольному основанию. Действительно, чтобы найти дискретный логарифм xэлемента bпо основанию a, достаточно вычислить дискретные логарифмы yи z элементов aи bпо основанию aи решить уравнение xy = z(mod q – 1)относительно z. Для краткости обозначим дискретный логарифм y произвольного элемента gIGF(q)*по основанию a, удовлетворяющий неравенству 0 < y < q – 2, через log. Очевидно, что log – взаимно однозначное отображение GF(q)*на Zq-1, удовлетворяющее обычному свойству логарифма: log gh = (log g + log h) mod (q-1)для произвольных g,h IGF(q)*. Алгоритм Гельфонда. В настоящее время не известно полиномиальных алгоритмов дискретного логарифмирования в произвольной группе GF(q)*. Изложенный ниже алгоритм применим к произвольной группе GF(q)* и имеет сложность O(q0,5+e)
  • 1. Положить
  • 2. Вычислить c = aH .
  • 3. Построить наборы (cu|uI{0,1,…,H}) и (bav|uI{0,1,…,H}) элементов GF(q)*.
  • 4. Найти некоторый элемент, входящий в оба набора. Если cu = bav – такой элемент, то это значит, что и log b = (Hu –v) mod (q – 1) – искомый дискретный логарифм b по основанию a. Отметим, что любой элемент xI{0,1,…,q-2} представим в виде x = Hu-v при некоторых u,vI{0,1,…,H}.Поэтому элемент входящий в оба набора из этапа 3 алгоритма, существуют. Заключение Выбор для конкретных ИС должен быть основан на глубоком анализе слабых и сильных сторон тех или иных методов защиты. Обоснованный выбор той или иной системы защиты, в общем-то, должен опираться на какие-то критерии эффективности. К сожалению, до сих пор не разработаны подходящие методики оценки эффективности криптографических систем. Наиболее простой критерий такой эффективности - вероятность раскрытия ключа или мощность множества ключей. По сути, это то же самое, что и криптостойкость. Для ее численной оценки можно использовать также и сложность раскрытия шифра путем перебора всех ключей. Однако этот критерий не учитывает других важных требований к криптосистемам:
  • • невозможность раскрытия или осмысленной модификации информации на основе анализа ее структуры,
  • • совершенство используемых протоколов защиты,
  • • минимальный объем используемой ключевой информации,
  • • минимальная сложность реализации (в количестве машинных операций), ее стоимость,
  • • высокая оперативность. Желательно конечно использование некоторых интегральных показателей, учитывающих указанные факторы. Часто более эффективным при выборе и оценке криптографической системы является использование экспертных оценок и имитационное моделирование. В любом случае выбранный комплекс криптографических методов должен сочетать как удобство, гибкость и оперативность использования, так и надежную защиту от злоумышленников циркулирующей в ИС информации. Автор выражает благодарность своему научному руководителю Блинкову Юрию Анатольевичу за неоценимую помощь в написании данной работы. Таким образом, хэш-функции вместе со схемами электронной цифровой подписи предназначены для решения задач обеспечения целостности и достоверности электронных данных. В прикладных компьютерных системах требуется применение так называемых криптографически стойких хэш-функций. Под термином "криптографически стойкая хэш-функция" понимается функция h, которая является односторонней и свободной от коллизий. Введем следующие обозначения. Хэш-функция h обозначается как h(?) и h(?,?) для одного и двух аргументов соответственно. Хэш-код функции h обозначается как H. При этом H0=I обозначает начальное значение (вектор инициализации) хэш-функции. Под обозначением будет пониматься операция сложения по модулю 2 или логическая операция XOR (исключающая ИЛИ). Результат шифрования блока B блочным шифром на ключе k обозначается Ek(B). Для лучшего понимания дальнейшего материала приведем небольшой пример построения хэш-функции. Предположим нам необходимо получить хэш-код для некоторой программы M. В качестве шифрующего преобразования в хэш-функции будут использоваться процедуры шифра DES с ключом k. Тогда, чтобы получить хэш-код H программы M при помощи хэш-функции h необходимо выполнить следующую итеративную операцию: где код программы M разбит на n 64-битных блока. Хэш-кодом данной хэш-функции является значение H=h(M,I)=Hn. Стойкость (безопасность) хэш-функций. Один из основных методов криптоанализа хэш-функций заключается в проведении криптоаналитиком (противником) атаки, основанной на "парадоксе дня рождения", основные идеи которой, излагаются ниже. Для понимания сущности предлагаемого метода криптоанализа достаточно знать элементарную теорию вероятностей. Атака, основанная на "парадоксе дня рождения", заключается в следующем. Пусть a предметов выбираются с возвращением из некоторого множества с мощностью n. Тогда вероятность того, что два из них окажутся одинаковыми, составляют Практически это означает, что в случайно подобранной группе из 24 человек вероятность наличия двух лиц с одним и тем же днем рождения составляет значение примерно 1/2. Этот старый и хорошо изученный парадокс и положен в основу криптоанализа хэш-функций. Например, для криптоанализа хэш-функций, основанных на использовании криптоалгоритма DES, указанная атака может быть проведена следующим образом. Пусть n - мощность области хэш-кодов (для криптоалгоритма DES она равна 264). Предположим, что есть две программы m1 и m2. Первая программа достоверна, а для второй криптоаналитик пытается получить то же самое значение хэш-кода, выдав таким образом программу m1 за программу m2 (то есть криптоаналитик пытается получить коллизию). Для этого криптоаналитик подготавливает порядка различных, незначительно отличающихся версий m1 и m2 и для каждой из них вычисляет хэш-код. С высокой вероятностью криптоаналитику удается обнаружить пару версий m`1 и m`2, имеющих один и тот же хэш-код. В дальнейшем при использовании данного хэш-кода можно выдать программу m`2 вместо программы m`1, содержание которой близко к содержанию программы m1. К основным методам предотвращения данной атаки можно отнести: увеличение длины получаемых хэш-кодов (увеличение мощности области хэш-кодов) и выполнение требования итерированности шифрующего преобразования. Методы построения криптографически стойких хэш-функций. Практические методы построения хэш-функций можно условно разделить на три группы: методы построения хэш-функций на основе какого-либо алгоритма шифрования (пример, приведенный выше), методы построения хэш-функций на основе какой-либо известной вычислительно трудной математической задачи и методы построения хэш-функций "с нуля" [28]. Рассмотрим примеры построения хэш-функций на основе алгоритмов шифрования. Наряду с примером, приведенным выше, покажем, как строить хэш-функции на основе наиболее известных блочных шифров ГОСТ 28147 - 89, DES и FEAL. В качестве шифрующего преобразования будут использоваться некоторые режимы шифров ГОСТ 28147-89, DES и FEAL с ключом k. Тогда, чтобы получить хэш-код H программы M при помощи хэш-функции h, необходимо выполнить следующую итеративную операцию (например, с использованием алгоритма ГОСТ 28147-89): Другие примеры хэш-функций на основе алгоритмов шифрования. N-хэш алгоритм разработан фирмой Nippon Telephone Telegraph в 1990 году. N-хэш алгоритм использует блоки длиной 128 битов, шифрующую функцию, аналогичную функции алгоритма шифрования FEAL, и вырабатывает блок хэш-кода длиной 128 битов. На вход пошаговой хэш-функции в качестве аргументов поступают очередной блок кода Mi длиной 128 битов и хэш-код Hi-1 предыдущего шага также размером 128 битов. При этом H0=I, а Hi=Ek(Mi,Hi-1) Mi Hi-1. Хэш-кодом всего кода программы объявляется хэш-код, получаемый в результате преобразования последнего блока текста. Идея использовать алгоритм блочного шифрования, стойкость которого общеизвестна, для построения надежных схем хэширования выглядит естественной. Однако для некоторых таких хэш-функций возникает следующая проблема. Предлагаемые методы могут требовать задания некоторого ключа, на котором происходит шифрование. В дальнейшем этот ключ необходимо держать в секрете, ибо противник, зная этот ключ и значение хэш-кода, может выполнить процедуру в обратном направлении. Еще одной слабостью указанных выше схем хэширования является то, что размер хэш-кода совпадает с размером блока алгоритма шифрования. Чаще всего размер блока недостаточен для того, чтобы схема была стойкой против атаки на основе "парадокса дня рождения". Поэтому были предприняты попытки построения хэш-функций на базе блочного шифра с размером хэш-кода в k раз (как правило, k=2) большим, чем размер блока алгоритма шифрования. В качестве примера можно привести хэш-функции MDC2 и MDC4 фирмы IBM. Данные хэш-функции используют блочный шифр (в оригинале DES) для получения хэш-кода, длина которого в два раза больше длины блока шифра. Алгоритм MDC2 работает несколько быстрее, чем MDC4, но представляется несколько менее стойким. Следует также отметить, что существует два основных режима применения хэш-функций: поточный и блочный. Выбор режима зависит от используемого в хэш-функции шифрующего преобразования. В качестве примера хэш-функций, построенных на основе вычислительно трудной математической задачи можно привести функцию из рекомендаций MKKTT X.509. Криптографическая стойкость данной функции основана на сложности решения следующей труднорешаемой теоретико-числовой задачи. Задача умножения двух больших (длиной в несколько сотен битов) простых чисел является простой с вычислительной точки зрения, в то время как факторизация (разложение на простые множители) полученного произведения является труднорешаемой задачей для указанных размерностей. Следует отметить, что задача разложения числа на простые множители эквивалентна следующей труднорешаемой математической задаче. Пусть n=pq произведение двух простых чисел p и q. В этом случае можно легко вычислить квадрат числа по модулю n: x2(mod n), однако вычислительно трудно извлечь квадратный корень по этому модулю. Таким образом, хэш-функцию МККТТ X.509 можно записать как: длина блока Mi представляется в октетах, каждый октет разбит пополам и к каждой половине спереди приписывается полуоктет, состоящий из двоичных единиц; n - произведение двух больших (512-битных) простых чисел p и q. По-видимому, наиболее эффективными на сегодняшний день с точки зрения программной реализации и условий применения оказываются хэш-функции построенные "с нуля". Алгоритм MD4 (Message Digest) был разработан Р. Ривестом [68,69]. Размер вырабатываемого хэш-кода - 128 битов. По заявлениям самого разработчика при создании алгоритма он стремился достичь следующих целей: После того, как алгоритм был впервые опубликован, несколько криптоаналитиков построили коллизии для последних двух из трех раундов, используемых в MD4. Несмотря на то, что ни один из предложенных методов построения коллизий не приводит к успеху для полного MD4, автор усилил алгоритм и предложил новую схему хэширования MD5. Алгоритм MD5 является доработанной версией алгоритма MD4. Аналогично MD4, в алгоритме MD5 размер хэш-кода равен 128 битам. После ряда начальных действий MD5 разбивает текст на блоки длиной 512 битов, которые, в свою очередь, делятся на 16 подблоков по 32 бита. Выходом алгоритма являются 4 блока по 32 бита, конкатенация которых образует 128-битовый хэш-код. В 1993 году Национальный институт стандартов и технологий (NIST) США совместно с Агентством национальной безопасности США выпустил "Стандарт стойкой хэш-функции" (Secure Hash Standard), частью которого является алгоритм SHA. Предложенная процедура вырабатывает хэш-код длиной 160 битов для произвольного текста длиной менее 264 битов. Разработчики считают, что для SHA невозможно предложить алгоритм, имеющий разумную трудоемкость, который строил бы два различных набора данных, дающих один и тот же хэш-код (то есть алгоритм, находящий коллизии). Алгоритм SHA основан на тех же самых принципах, которые использовал Р. Ривест при разработке MD4, более того, алгоритмическая структура SHA очень похожа на структуру MD4. Процедура дополнения хэшируемого текста до кратного 512 битам полностью совпадает с процедурой дополнения алгоритма MD5. Обобщая вышесказанное, следует отметить, что при выборе практически стойких и высокоэффективных криптографических хэш-функций можно руководствоваться следующими эвристическими принципами:
  • •любой из известных алгоритмов построения коллизий не должен быть эффективнее метода, основанного на "парадоксе дня рождения";
  • •алгоритм должен допускать эффективную программную реализацию на 32-разрядном процессоре;
  • •алгоритм не должен использовать сложных структур данных и подпрограмм;
  • •алгоритм должен быть оптимизирован с точки зрения его реализации на микропроцессорах типа Intel.


























    НОВЫЕ КЛАССЫ ХЭШ-ФУНКЦИЙ ДЛЯ КОНТРОЛЯ ЦЕЛОСТНОСТИ ИНФОРМАЦИИ

    НОВЫЕ КЛАССЫ ХЭШ-ФУНКЦИЙ ДЛЯ КОНТРОЛЯ ЦЕЛОСТНОСТИ ИНФОРМАЦИИ В статье описаны три класса хэш-функций для контроля целостности данных, рассмотрены основные их характеристики, вопросы реализации и применения. Задача контроля целостности информации заключается в том, чтобы с заданной достоверностью сделать вывод, правильна ли данная информация или нет. Данная задача решается с использованием хэш-функций (ХФ), которые при обработке входных данных формируют результат конечной разрядности. Если текущий результат не соответствует изначальному, то обрабатываемые данные считаются ошибочными. Для такого подхода основная проблема заключается в обеспечении высокой скорости обработки при сохранении заданного уровня достоверности. Другая важная задача – знание алгоритма работы ХФ не должно позволить злоумышленнику выдать неправильные данные за правильные. Рост объемов информации, хранимой на носителях и передаваемой по линиям связи, ужесточает требования к производительности процедур контроля целостности; переход на 64-х разрядные вычисления открывает новые возможности для создания быстродействующих хэш-функций для контроля целостности данных. Разработаны три класса алгоритмов хэширования, на основе которых можно проектировать ХФ, которые, согласно проведенным исследованиям, не уступают широко известным алгоритмам CRC по достоверности контроля, но существенно опережают их по скорости обработки данных. Так предложенная 32-х разрядная ХФ [1] опережает ХФ CRC-32 более чем в 2.5 раза. Немаловажным преимуществом разработанных алгоритмов является простота наращивания разрядности, что значительно упрощает процесс создания 64-х разрядных ХФ на базе уже имеющихся 32-х разрядных. Первый класс алгоритмов ориентирован на создание хэш-функций, предназначенных для выявления случайных искажений. Эти хэш-функции отличаются наиболее высоким быстродействием, но не устойчивы к детерминированным искажениям, вносимым злоумышленником (этот же недостаток характерен и для алгоритмов CRC). Алгоритмы третьего класса значительно затрудняют моделирование необнаруживаемых искажений контролируемой информации, но работают медленнее. Компромиссом между надежностью и производительностью являются алгоритмы хэширования второго класса. Подробно данные алгоритмы описаны в [1]. На основе предложенных алгоритмов спроектированы три хэш-функции, ориентированные для задач контроля целостности. Все они ориентированы на одновременную обработку двух байт исходной информационной последовательности. Первая из них основана на алгоритме первого класса, результат хэширования файла имеет длину 64 бита и сохраняется в 4-х переменных разрядности 16. Вторая и третья основаны на алгоритмах соответствующего класса и формируют 128-бит результат хэширования входной последовательности. Разработанные хэш-функции могут быть использованы в различных классах задач – при шифровании и расшифровании для контроля правильности расшифрования, при приеме и передаче информации для собственно контроля, при верификации файлов с целью обнаружения искажений. Кроме того, такого рода ХФ допускают легкую аппаратную реализацию при создании средств контроля цифровой информации. Такого рода устройства защищены патентом РФ №2087030. В частности, созданные хэш-функции использованы в программе-ревизоре SIGNER.EXE, представляющей собой простую утилиту командной строки DOS. Назначение программы – отслеживание изменений файлов для предотвращения распространения файловых вирусов. Возможности программы: самоконтроль, выбор вида хэш-функции для любого файла, формирование эталонного результата хэш-функции, обнаружение изменений и управление измененными файлами – удаление, пропуск, обновление эталона. Програма корректно работает в среде Windows 95/98/NT, OS/2. Данную утилиту автор готов предоставить всем желающим по электронной почте; связаться с автором можно по адресу: nick@bcnit.mephi.ru
























    СРЕДСТВА КОНТРОЛЯ ЦЕЛОСТНОСТИ ИНФОРМАЦИИ

    СРЕДСТВА КОНТРОЛЯ ЦЕЛОСТНОСТИ ИНФОРМАЦИИ Системы контроля целостности информации применяются для обнаружения изменений в файлах, базах данных, сообщениях и т.п. с целью защиты от дезинформации, если злоумышленнику удалось осуществить успешную атаку на информационные ресурсы. Функционирование систем контроля целостности основано на фиксации некоторых эталонных характеристик файлов, пакетов, системных объектов или других единиц информации, которые после передачи или хранения данных проверяются с текущими характеристиками и на основе их сравнения делается вывод о целостности и подлинности информации. В качестве эталонных характеристик могут использоваться электронные цифровые подписи, вырабатываемые из текста сообщения на основе хеш-функций, контрольные суммы, временные метки, даты создания файлов, их размеры и т.п. Наиболее эффективные методы контроля целостности основаны на криптографических алгоритмах. Они позволяют обнаружить любые изменения и обеспечивают надежную защиту эталонных характеристик от попыток подделки. Средства контроля целостности позволяют обеспечить эффективный мониторинг информационных ресурсов в системах, для которых критичных является целостность сообщений, например, в платежных системах.
























    ТЕОРЕТИЧЕСКИЕ И ТЕХНИЧЕСКИЕ ОСНОВЫ ПРИМЕНЕНИЯ В НДЦ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ

    ТЕОРЕТИЧЕСКИЕ И ТЕХНИЧЕСКИЕ ОСНОВЫ ПРИМЕНЕНИЯ В НДЦ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ Данная публикация продолжает цикл статей, посвященных вопросам организации электронного документооборота в НДЦ. Для обеспечения депозитарной деятельности НДЦ на организованном рынке ценных бумаг с начала сентября 1998 года введена в эксплуатацию Система Головного Депозитария (СГД), представляющая собой современный программно-технический комплекс, созданный Банком России и НДЦ. Неправомерное искажение или фальсификация, уничтожение или разглашение определенной части информации, равно как и дезорганизация процессов ее обработки и передачи в СГД, может нанести серьезный материальный и моральный урон как НДЦ, так и депонентам, участвующим в процессах автоматизированного информационного взаимодействия. Жизненно важные интересы НДЦ и депонентов, как правило, заключаются в том, чтобы определенная часть информации, касающаяся их безопасности (конфиденциальная коммерческая и персональная), была бы постоянно легко- доступна и в то же время надежно защищена от неправомерного ее использования: нежелательного разглашения, фальсификации, незаконного тиражирования или уничтожения. Острота проблемы обеспечения безопасности субъектов информационных отношений, защиты их законных интересов при использовании информационных и управляющих систем, хранящейся и обрабатываемой в них информации все более возрастает. Этому есть целый ряд объективных причин:
  • •расширение сферы применения средств вычислительной техники и возросший уровень доверия к автоматизированным системам управления и обработки информации;
  • •увеличение объемов обобщенной информации;
  • •расширение круга должностных лиц, допущенных к информации;
  • •информация становится особым товаром, ее стоимость зачастую многократно превосходит стоимость вычислительной системы, в рамках которой она существует;
  • •развитие и распространение вычислительных сетей, территориально распределенных систем и систем с удаленным доступом к совместно используемым ресурсам;
  • •доступность средств вычислительной техники и, прежде всего персональных ЭВМ, привела к распространению компьютерной грамотности в широких слоях населения, что закономерно привело к увеличению числа попыток неправомерного вмешательства в работу государственных и коммерческих автоматизированных систем, как со злым умыслом, так и чисто "из спортивного интереса";
  • •практическое отсутствие стройной и непротиворечивой системы законодательно-правового регулирования отношений в сфере накопления и использования информации;
  • •высвобождение в период экономического кризиса большого количества специалистов-профессионалов, досконально знающих все достоинства и слабые места вычислительных систем, располагающих подробнейшей документацией и самыми совершенными инструментальными и технологическими средствами для анализа и взлома механизмов защиты;
  • •бурное развитие и распространение компьютерных вирусов. При выработке подходов к решению проблемы информационной безопасности НДЦ исходит из того, что защита информации в СГД не является самоцелью. Конечной целью создания системы информационной безопасности является защита всех категорий субъектов, прямо или косвенно участвующих в процессах информационного взаимодействия, от нанесения им ощутимого материального, морального или иного ущерба в результате случайных и преднамеренных воздействий на информацию и системы ее обработки и передачи. Стоит отметить, что элементы СГД базируются на надежных сетевых операционных системах и СУБД, которые имеют встроенные средства идентификации пользователя при подключении к системе и обращении к данным, а также средства протоколирования выполняемых действий. В результате этого пользователи получают строго ограниченные права доступа к ресурсам и все их попытки несанкционированного доступа регистрируются в системных журналах и журналах прикладного программного обеспечения. Вместе с тем приходится констатировать, что, хотя большинство современных сетевых операционных систем и обеспечивают некоторый набор средств для решения задач безопасности, они не могут гарантировать полной конфиденциальности информации, поскольку используют незащищенные сервисы. В связи с этим прикладное и системное программное обеспечение должно быть усилено специальными программными и аппаратными комплексами, гарантирующими криптографическую защиту информации. В СГД используются сертифицированные средства криптографической защиты информации (СКЗИ) "Верба -ОW", на установку и эксплуатацию которых НДЦ имеет лицензию ФАПСИ. Применение несертифицированных СКЗИ противопоказано государственным структурам и учреждениям и не рекомендуется для использования в коммерческих структурах, так как не обеспечивает на территории нашей страны юридической силы подписанным с помощью их средств ЭЦП документам. Кроме того, сертификация косвенно свидетельствует о высокой надежности СКЗИ. Защита данных с помощью криптографических преобразований (преобразование данных шифрованием и (или) выработкой имитовставки) - одно из важнейших средств обеспечения их безопасности. Шифрование данных производится с целью скрыть содержание представляемой ими информации. Зашифрованные данные становятся доступными только для того, кто знает соответствующий ключ, с помощью которого можно расшифровать сообщение, и поэтому похищение зашифрованных данных без знания ключа является бессмысленным занятием. Передаваемые по каналам связи зашифрованные данные критичны к искажениям. Используемые в СКЗИ "Верба-ОW" методы шифрования гарантируют не только высокую секретность, но и эффективное обнаружение искажений или ошибок в передаваемой информации. Основными компонентами криптографии являются данные, криптографическое преобразование и ключ. Данные - при зашифровке исходными данными будет сообщение, а результирующими - зашифрованное сообщение. При расшифровке они меняются местами. Сообщения могут быть различных типов: текст, таблица и т. п. Термин "шифрование" объединяет в себе два процесса: зашифровка и расшифровка информации. Криптографическое преобразование - под ним понимают преобразование данных при помощи алгоритма шифрования или выработки электронной цифровой подписи (ЭЦП). Считается, что криптографическое преобразование известно всем, но, не зная ключа, с помощью которого пользователь закрыл сообщение, практически невозможно восстановить содержание сообщения или подделать ЭЦП. Если зашифровка и расшифровка осуществляются с использованием одного и того же ключа, то такой алгоритм криптографического преобразования называется симметричным, в противном случае - асимметричным. В СКЗИ "Верба-OW" применяется симметричный алгоритм криптографического преобразования. Ключ шифрования (ключ связи) - конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных. В нашем случае термин "ключ" означает уникальный битовый шаблон. При зашифровке сообщения криптографическое преобразование использует ключ. Для расшифровки нужен соответствующий ключ. Важно ограничить доступ к ключам шифрования, так как любой, кто обладает ими, может прочитать зашифрованное вами сообщение. В СКЗИ "Верба-OW" используется механизм открытого распределения ключей, при котором для формирования ключа связи применяется их пара: открытый и секретный ключи шифрования. НДЦ действует как организатор системы на основании лицензии ФАПСИ и выступает в качестве центра генерации и сертификации ключей. Это обстоятельство предполагает определенное доверие к нему со стороны участников системы. Если такого доверия нет, то ни присутствие представителей депонента при генерации ключей, ни генерация ключей на технических средствах участника не может снять полностью недоверия депонента по факту возможного доступа к ключам третьих лиц. Единственным вариантом действий для депонента в этом случае, на наш взгляд, является следующий:
  • - получение лицензии ФАПСИ на установку и эксплуатацию сертифицированных средств криптозащиты;
  • - приобретение у разработчика этих средств Автоматизированного рабочего места администратора безопасности с лицензией на генерацию нескольких ключей с серией НДЦ;
  • - самостоятельная генерация своих ключей и предоставление НДЦ открытых ключей на сертификацию. Только в этом случае депонент может полностью исключить возможность доступа к данным ключам в момент их генерации Администратора безопасности НДЦ. Алгоритм криптографического преобразования В СКЗИ "Верба-ОW" используется симметричный алгоритм криптографического преобразования данных, определенный ГОСТ 28147 89. Данный алгоритм предназначен для аппаратной и программной реализации и удовлетворяет необходимым криптографическим требованиям. ГОСТ 28147 89 предусматривает несколько режимов работы алгоритма криптографического преобразования. В СКЗИ "Верба-ОW" применяется алгоритм шифрования, основанный на принципе гаммирования, который подразумевает процесс наложения по определенному закону гаммы шифра на открытые данные (под гаммой понимается псевдослучайная двоичная последовательность, вырабатываемая по заданному алгоритму). ГОСТ 28147 89 также определяет процесс выработки имитовставки. Имитовставка - это последовательность данных фиксированной длины, которая создается по определенному правилу из открытых данных и ключа шифрования. Выработка имитовставки обеспечивает защиту информации от случайных или преднамеренных искажений в канале связи. Имитовставка передается по каналу связи вместе с зашифрованным сообщением. Поступившие зашифрованные данные расшифровываются, и из полученных блоков данных вырабатывается контрольная имитовставка, которая затем сравнивается с имитовставкой, полученной из канала связи. В случае несовпадения имитовставок все расшифрованные данные считаются ложными. Пара: открытый и секретный ключи шифрования В последнее время широкое распространение получили криптографические системы с открытым распределением ключей. В таких системах для каждого пользователя формируются два ключа: открытый и секретный. Причем последний должен храниться в тайне, первый же, не являясь конфиденциальным, может быть опубликован для использования всеми пользователями системы, которые обмениваются сообщениями. Знание открытого распределения ключей шифрования не дает практической возможности определить секретный ключ. СКЗИ "Верба-ОW" является системой с открытым распределением ключей. Для каждого пользователя вырабатывается персональный секретный ключ, из которого затем с помощью определенной процедуры формируется открытый. Открытые ключи объединяются в справочник. В СКЗИ "Верба-ОW" ключ зашифровки совпадает с ключом расшифровки. При зашифровке сообщения абонентом X для абонента Y общий секретный ключ связи вырабатывается на основе секретного ключа шифрования абонента X и открытого ключа шифрования абонента Y. Соответственно, для расшифровки этого сообщения абонентом Y формируется секретный ключ связи на основе его собственного секретного ключа шифрования и открытого ключа шифрования абонента X. Таким образом, для обеспечения связи с другими абонентами каждому пользователю необходимо иметь: собственный секретный ключ шифрования и открытые ключи шифрования пользователей сети конфиденциальной связи, объединенные в справочники. Далее, для удобства, абонента, который зашифровывает сообщение, будем в дальнейшем называть отправителем; абонента, который расшифровывает закрытое сообщение, - получателем. Электронная цифровая подпись Электронная цифровая подпись - это средство, позволяющее на основе криптографических методов надежно установить авторство и подлинность электронного документа. ЭЦП дает возможность заменить при безбумажном документообороте традиционные печать и подпись. При построении цифровой подписи вместо обычной связи между печатью или рукописной подписью и листом бумаги выступает сложная математическая зависимость между электронным документом, секретным и открытым ключами. Практическая невозможность подделки электронной цифровой подписи опирается на очень большой объем определенных математических вычислений. Проставление подписи под документом не меняет самого документа, оно только дает возможность проверить подлинность и авторство полученной информации. В СКЗИ "Верба-ОW" реализована система электронной цифровой подписи на базе криптографического алгоритма, соответствующего ГОСТ Р 34.10 94. Секретный ключ подписи используется для выработки электронной цифровой подписи. Только сохранение пользователем втайне своего секретного ключа гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего. Открытый ключ подписи вычисляется как значение некоторой функции от секретного ключа, но знание открытого ключа не дает возможности определить секретный. Открытый ключ может быть опубликован и используется для проверки подлинности подписанного документа, а также для предупреждения мошенничества со стороны заверяющего в виде отказа его от подписи документа. При работе с СКЗИ "Верба-ОW" каждому пользователю, обладающему правом подписи, формируются секретный и открытый ключи подписи. Открытые ключи подписи всех пользователей объединяются в справочники открытых ключей сети конфиденциальной связи. Каждому пользователю, обладающему правом подписи, необходимо иметь: секретный ключ подписи и справочник открытых ключей подписи пользователей сети. Электронная цифровая подпись вырабатывается на основе электронного документа, требующего заверения, и секретного ключа. Вначале производится сжатие документа с помощью функции хеширования (ГОСТ Р 34.11 94 "ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ. ФУНКЦИЯ ХЕШИРОВАНИЯ"). Однонаправленная хеш-функция получает на входе исходное сообщение произвольной длины и преобразует его в хеш-значение фиксированной длины (256 бит согласно ГОСТ Р 34.11 94). Значение хеш-функции определенным образом зависит от содержания документа, но не позволяет восстановить сам документ. Хеш-функция чувствительна ко всевозможным изменениям в тексте. Кроме того, для данной хеш-функции практически нельзя подобрать два исходных сообщения, которые могут иметь одно и то же хеш-значение, или одну и ту же цифровую подпись. Далее к полученному хеш-значению применяется некоторое математическое преобразование, в результате которого и получается собственно цифровая подпись электронного документа. При проверке подписи ответственный за эту операцию должен располагать открытым ключом пользователя, поставившего подпись, и ни в коем случае не сомневаться в подлинности открытого ключа (а именно в том, что имеющийся у него открытый ключ соответствует открытому ключу конкретного пользователя). Процедура проверки подписи состоит из вычисления хеш-значения документа и проверки некоторых соотношений, связывающих хеш-значение документа, подпись под этим документом и открытый ключ пользователя, подписавшего документ. Документ считается подлинным, а подпись правильной, если эти соотношения выполняются. В противном случае подпись под документом считается недействительной. Для разрешения споров между отправителем и получателем информации, связанных с возможностью искажения пересылаемого документа или открытого ключа проверки подписи, достоверная копия этого ключа может выдаваться третьей стороне (арбитру) и применяться им при возникновении конфликта между отправителем и получателем. Для контроля целостности и подлинности справочников открытых ключей используется процедура выработки имитовставки, определяемая ГОСТ 28147 89. Варианты поставок библиотек шифрования и подписи В зависимости от среды и потребностей пользователя возможны различные варианты поставок библиотек ППО СКЗИ "Верба ОW". Все реализованные криптографические функции по назначению объединяются в три библиотеки: WBOTHO - библиотека, содержащая функции шифрования, выработки имитовставки, выработки случайного числа, формирования электронной цифровой подписи, проверки подписи и выработки значения хеш-функции, а также функции работы со справочниками открытых ключей; WCRYPTO - библиотека, содержащая функции шифрования, выработки имитовставки, формирования случайного числа, а также функции работы со справочниками открытых ключей; WSIGNO - библиотека, содержащая функции формирования электронной цифровой подписи, проверки подписи и выработки значения хеш-функции, а также функции работы со справочниками открытых ключей. Основные характеристики библиотек шифрования и подписи Вероятность необнаружения искажений, вносимых в зашифрованную информацию злоумышленниками или вирусами, составляет 1Е-9. Размер файла при зашифровании округляется до кратного восьми в большую сторону и увеличивается на (51 + число получателей * 48) байт. Размер области памяти при зашифровании увеличивается на (37 + число получателей * 48) байт. Размер файла или области памяти увеличивается на 98 байт при первой подписи и на 87 байт при каждой последующей подписи.# Скорость шифрования информации (РС/АТ 486/100) - 500 Кб/сек. (не включая время, затрачиваемое на контроль работоспособности функций шифрования и обращения к диску). Время вычисления хэш-функции (РС/АТ 486/100) - 400 Кб/сек. Время формирования ЭЦП (РС/АТ 486/100) - 0,04 сек. Время проверки ЭЦП (РС/АТ 486/100) - 0,2 сек. Ключевая система для шифрования ориентирована на обеспечение возможности парно-выборочной связи каждого абонента сети друг с другом с использованием открытого распределения ключей. Ключи для подписи - асимметричные. Ключи для шифрования и формирования подписи хранятся на ключевых носителях - дискетах 5.5", 3.5" или носителях (таблетках) Touch-Memory. При работе с СКЗИ используется три вида ключевых носителей: ключевой носитель для шифрования - дискета или таблетка Touch-Memory с ключами шифрования; ключевой носитель для подписи - дискета или таблетка Touch-Memory с ключами подписи; совмещенный ключевой носитель - дискета или таблетка Touch-Memory с ключами шифрования и подписи одновременно. Возможно хранение секретных ключей шифрования и подписи на ЖМД. Библиотеки ППО СКЗИ "Верба-ОW" предоставляют пользователю следующие дополнительные возможности: файл может быть подписан 1-255 корреспондентами; файл или область памяти могут быть зашифрованы нескольким корреспондентам одновременно; пользователь (администратор) может корректировать справочники открытых ключей шифрования и подписи. # Примечание. В связи с указанными выше изменениями размеров файлов и областей памяти после использования криптографических функций встраивание библиотек криптографической защиты информации ППО СКЗИ "Верба-OW" может наложить ограничения на производительность прикладных программ, работающих в режиме "клиент-сервер" при прямом обмене (on-line) между приложениями, особенно если размер передаваемых сообщений (в открытом виде) невелик, а интенсивность обмена значительна. В СГД используются 32-разрядные библиотеки WBOTHO в среде Windows 95. Основные функции библиотеки WBOTHO Библиотека WBOTHO обеспечивает выполнение следующих функций: зашифровка/расшифровка информации на уровне файлов; зашифровка/расшифровка области памяти; формирование имитовставки для файлов и областей памяти; формирование случайного числа; подпись файла (ЭЦП добавляется в конец подписываемого файла или записывается в отдельном файле); подпись области памяти (ЭЦП добавляется в конец области памяти или сохраняется отдельно); проверку ЭЦП файла; проверку ЭЦП области памяти; удаление подписи; хеширование файлов и областей памяти. Библиотека предоставляет возможность формирования и корректировки справочников открытых ключей шифрования и подписи. WBOTHO обеспечивает выполнение следующих функций при работе со справочниками открытых ключей: добавление открытого ключа в справочник; удаление открытого ключа из справочника (по идентификатору или порядковому номеру); получение списка всех открытых ключей указанной серии; получение атрибутов открытого ключа по идентификатору и наоборот; проверка справочника открытых ключей; проверка открытого ключа; контроль целостности справочника открытых ключей. Криптография обеспечивает надежную защиту данных. Однако необходимо понимать, что ее применение - это отнюдь не абсолютное решение всех проблем защиты информации. Для эффективного решения проблемы защиты информации требуется целый комплекс мер, который включает в себя соответствующие организационно-технические и административные мероприятия, связанные с обеспечением правильности функционирования технических средств обработки и передачи информации, а также установление определенных правил для обслуживающего персонала, допущенного к работе с конфиденциальной информацией. В дальнейшем мы планируем на страницах "Депозитариума" более подробно рассмотреть различные варианты организации электронного документооборота между НДЦ и депонентами. Мы всегда готовы учесть замечания и пожелания наших клиентов.