На практике самыми эффективными и распространенными являются аддитивные методы, в основу которых положено использование генераторов (датчиков) псевдослучайных чисел. Генератор использует исходную информацию относительно малой длины для получения практически бесконечной последовательности псевдослучайных чисел.
Для получения последовательности псевдослучайных чисел (ПСЧ) могут использоваться конгруэнтные генераторы. Генераторы этого класса вырабатывают псевдослучайные последовательности чисел, для которых могут быть строго математически определены такие основные характеристики генераторов как периодичность и случайность выходных последовательностей.
Среди конгруэнтных генераторов ПСЧ выделяется своей простотой и
эффективностью линейный генератор, вырабатывающий псевдослучайную
последовательность чисел Т(i) в соответствии с соотношением
Т(i+1) = (а * Т(i) + с) mod m,
где а и с - константы, Т(0) - исходная величина, выбранная в качестве порождающего числа.
Период повторения такого датчика ПСЧ зависит от величин а и с. Значение m обычно принимается равным 2s, где s - длина слова ЭВМ в битах. Период повторения последовательности генерируемых чисел будет максимальным тогда и только тогда, когда с - нечетное число и а (mod 4) = 1: Такой генератор может быть сравнительно легко создан как аппаратными средствами, так и программно.
Наряду с традиционным шифрованием на основе секретного ключа в последние годы все большее признание получают системы шифрования с открытым ключом. В таких системах используются два ключа. Информация шифруется с помощью открытого ключа, а расшифровывается с использованием секретного ключа.
В основе применения систем с открытым ключом лежит использование необратимых или односторонних функций. Эти функции обладают следующим свойством. По известному х легко определяется функция у = f(х). Но по известному значению у практически невозможно получить х. В криптографии используется односторонние функции, имеющие так называемый потайной ход. Эти функции с параметром z обладают следующими свойствами. Для определенного z могут быть найдены алгоритмы Ez и Dz. С помощью Ez легко получить функцию fz(х) для всех х из области определения. Так же просто с помощью алгоритма Dz получается и обратная функция х = f-1(y) для всех у из области допустимых значений. В то же время практически для всех z и почти для всех у из области допустимых значений нахождение f-1(y) при помощи вычислений невозможно даже при известном Ez. В качестве открытого ключа используется у, а в качестве закрытого - х.
При шифровании с использованием открытого ключа нет необходимости в передаче секретного ключа между взаимодействующими субъектами, что существенно упрощает криптозащиту передаваемой информации.
Криптосистемы с открытыми ключами различаются видом односторонних функций. Среди них самыми известными являются системы RSA, Эль-Гамаля и Мак-Элиса. В настоящее время наиболее эффективным и распространенным алгоритмом шифрования с открытым ключом является алгоритм RSA, получивший свое название от первых букв фамилий его создателей: Rivest, Shamir и Adleman.
Алгоритм основан на использовании операции возведения в степень модульной арифметики. Его можно представить в виде следующей последовательности шагов.
Шаг 1. Выбираются два больших простых числа р и q. Простыми называются числа, которые делятся только на самих себя и на 1 . Величина этих чисел должна быть больше 200.
Шаг 2. Получается открытая компонента ключа n:
n
= р * q.
Шаг 3. Вычисляется функция Эйлера по формуле:
f(p, q) = (p-1) * (q-1).
Функция Эйлера показывает количество целых положительных чисел от 1 до n, которые взаимно просты с n. Взаимно простыми являются такие числа, которые не имеют ни одного общего делителя, кроме 1.
Шаг 4. Выбирается большое простое число d, которое является взаимно простым со значением f(p, q).
Шаг 5. Определяется число е, удовлетворяющее условию:
e
* d = 1(modf(p, q)).
Данное условие означает, что остаток от деления (вычет) произведения е*d
на функцию f(р, q) равен 1. Число е принимается в качестве
второй компоненты открытого ключа. В качестве секретного ключа используются
числа p и q. Шаг 6. Исходная информация, независимо от ее
физической природы, представляется в числовом двоичном виде. Последовательность
бит разделяется на блоки длиной L бит, где L - наименьшее целое число,
удовлетворяющее условию: L≥lоg2(n+1). Каждый блок
рассматривается как целое положительное число Х(i), принадлежащее
интервалу [0, n-1]. Таким образом, исходная информация представляется
последовательностью чисел Х(i),i=
. Значение I определяется длиной
шифруемой последовательности.
Шаг 7. Зашифрованная информация получается в виде последовательности
чисел Y(i), вычисляемых по формуле:
Y(i) = (Х(i))e(mod n).
Шаг 8. Для расшифрования информации
используется следующая зависимость:
X(i) = (Y(i))d(mod n).
Пример применения метода RSA для криптографического закрытия информации. Примечание: для простоты вычислений использованы минимально возможные числа.
Пусть требуется зашифровать сообщение на русском языке "ГАЗ".
Для зашифрования и расшифрования сообщения необходимо выполнить следующие шаги.
Шаг 1. Выбирается p = 3 и q = 11.
Шаг 2. Вычисляется n = 3 * 11 = 33.
Шаг 3. Определяется функция Эйлера
f(p, q) = (3-1)*(11-1) = 20.
Шаг 4. В качестве взаимно простого числа выбирается число
Шаг 5. Выбирается такое число е, которое удовлетворяло бы ношению: (е*3) (mod 20) = 1. Пусть е = 7.
Шаг 6. Исходное сообщение представляется как последовательность целых чисел. Пусть букве А соответствует число 1, букве Г - число 4, букве З - число 9. Для представления чисел в двоичном коде требуется 6 двоичных разрядов, так как в русском алфавите используются 33 буквы (случайное совпадение с числом n). Исходная информация в двоичном коде имеет вид:
000001 001001.
Длина блока L определяется как минимальное число из целых чисел, удовлетворяющих условию: L≥log2(33+1), так как n=33. Отсюда L = 6. Тогда исходный текст представляется в виде кортежа Х(i) = <4, 1, 9>.
Шаг 7. Кортеж Х(i) зашифровывается с помощью открытого ключа {7, 33}:
Y(3) = (97) (mod 33) = 4782969 (mod 33) = 15.
Получено зашифрованное сообщение Y(i) = <16, 1, 15>.
Шаг 8. Расшифровка сообщения Y(i) = <16, 1, 15> осуществляется с помощью секретного ключа {3, 33}:
Х(1) = (163) (mod 33) = 4096 (mod 33) = 4;
Х(2) = (13) (mod 33) = 1 (mod 33) = 1;
Х(3) = (153) (mod 33) = 3375 (mod 33) = 9.
Исходная числовая последовательность в расшифрованном виде X(1) = <4, 1, 9> заменяется исходным текстом "ГАЗ".
Система Эль-Гамаля основана на сложности вычисления дискретных логарифмов в конечных полях. Основным недостатком систем RSA и Эль-Гамаля является необходимость выполнения трудоемких операций в модульной арифметике, что требует привлечения значительных вычислительных ресурсов. Криптосистема Мак-Элиса использует коды, исправляющие ошибки. Она реализуется в несколько раз быстрее, чем криптосистема RSA, но имеет и существенный недостаток. В криптосистеме Мак-Элиса используется ключ большой длины и получаемый шифртекст в два раза превышает длину исходного текста.
Для всех методов шифрования с открытым ключом математически строго не
доказано отсутствие других методов криптоанализа кроме решения NP-полной задачи
(задачи полного перебора). Если появятся методы эффективного решения таких
задач, то криптосистемы такого типа будут дискредитированы. Например, ранее
считалось, что задача укладки рюкзака является NР-полной. В настоящее время
известен метод решения такой задачи, позволяющий избежать полного перебора.
2.4.1 ДВА
ВАЖНЫХ СВОЙСТВА КРИПТОГРАФИИ С ОТКРЫТЫМИ КЛЮЧАМИ
Рисунок 2.4.1.1 Два свойства криптографии с открытыми ключами
Схема шифрования данных с использованием открытого ключа приведена на
Рисунке 2.4.1.1 и состоит из двух этапов. На первом из них производится обмен
по несекретному каналу открытыми ключами. При этом необходимо обеспечить
подлинность передачи ключевой информации. На втором этапе, собственно,
реализуется шифрование сообщений, при котором отправитель зашифровывает
сообщение открытым ключом получателя.
Зашифрованный файл может быть прочитан только владельцем секретного ключа, т.е.
получателем. Схема расшифрования, реализуемая получателем сообщения, использует
для этого секретный ключ получателя.
2.4.2 ШИФРОВАНИЕ
Рисунок 2.4.2.1 Схема шифрования в криптографии с открытыми ключами.
Реализация схемы ЭЦП связанна с вычислением хэш-функции (дайджеста)
данных, которая представляет собой уникальное число, полученное из исходных
данных путем его сжатия (свертки) с помощью сложного, но известного алгоритма.
Хэш-функция является однонаправленной функцией, т.е. по хэш-значению не
возможно восстановить исходные данные. Хэш-функция чувствительна к всевозможным
искажениям данных. Кроме того, очень трудно отыскать два набора данных,
обладающих одним и тем же значением хэш-функции.
2.4.3 ФОРМИРОВАНИЕ ЭЦП С ХЭШИРОВАНИЕМ
Схема формирования подписи ЭД его отправителем включает вычисление хэш-функции ЭД и шифрование этого значения посредством секретного ключа отправителя. Результатом шифрования является значение ЭЦП ЭД (реквизит ЭД), которое пересылается вместе с самим ЭД получателю. При этом получателю сообщения должен быть предварительно передан открытый ключ отправителя сообщения.
Рисунок 2.4.3.1 Схема ЭЦП в криптографии с открытыми ключами
Схема проверки (верификации) ЭЦП, осуществляемая получателем сообщения, состоит из следующих этапов. На первом из них производится расшифрование блока ЭЦП посредством открытого ключа отправителя. Затем вычисляется хэш-функция ЭД. Результат вычисления сравнивается с результатом расшифрования блока ЭЦП. В случае совпадения, принимается решение о соответствии ЭЦП ЭД. Несовпадение результата расшифрования с результатом вычисления хеш-функции ЭД может объясняться следующими причинами:
· в процессе передачи по каналу связи была потеряна целостность ЭД;
· при формировании ЭЦП был использован не тот (поддельный) секретный ключ;
· при проверке ЭЦП был использован не тот открытый ключ (в процессе передачи по каналу связи или при дальнейшем его хранении открытый ключ был модифицирован или подменен).
Реализация криптографических алгоритмов с открытыми ключами (по сравнению
с симметричными алгоритмами) требует больших затрат процессорного времени.
Поэтому криптография с открытыми ключами обычно используется для решения задач
распределения ключей и ЭЦП, а симметричная криптография для шифрования. Широко
известна схема комбинированного шифрования, сочетающая высокую безопасность
криптосистем с открытым ключом с преимуществами высокой скорости работы симметричных
криптосистем. В этой схеме для шифрования используется случайно вырабатываемый
симметричный (сеансовый) ключ, который, в свою очередь, зашифровывается
посредством открытой криптосистемы для его секретной передачи по каналу в
начале сеанса связи.
2.4.4 КОМБИНИРОВАННЫЙ МЕТОД
Рисунок 2.4.4.1 Схема комбинированного шифрования
2.4.5 ДОВЕРИЕ К ОТКРЫТОМУ КЛЮЧУ И ЦИФРОВЫЕ СЕРТИФИКАТЫ
Центральным вопросом схемы открытого распределения ключей является вопрос доверия к полученному открытому ключу партнера, который в процессе передачи или хранения может быть модифицирован или подменен.
Для широкого класса практических систем (системы электронного документооборота, системы Клиент-Банк, межбанковские системы электронных расчетов), в которых возможна личная встреча партнеров до начала обмена ЭД, эта задача имеет относительно простое решение - взаимная сертификация открытых ключей.
Эта процедура заключается в том, что каждая сторона при личной встрече удостоверяет подписью уполномоченного лица и печатью бумажный документ - распечатку содержимого открытого ключа другой стороны. Этот бумажный сертификат является, во-первых, обязательством стороны использовать для проверки подписи под входящими сообщениями данный ключ, и, во-вторых, обеспечивает юридическую значимость взаимодействия. Действительно, рассмотренные бумажные сертификаты позволяют однозначно идентифицировать мошенника среди двух партнеров, если один из них захочет подменить ключи. Таким образом, для реализации юридически значимого электронного взаимодействия двух сторон необходимо заключить договор, предусматривающий обмен сертификатами. Сертификат представляет собой документ, связывающий личностные данные владельца и его открытый ключ. В бумажном виде он должен содержать рукописные подписи уполномоченных лиц и печати.
В системах, где отсутствует возможность предварительного личного контакта
партнеров, необходимо использовать цифровые сертификаты, выданные и заверенные
ЭЦП доверенного посредника - удостоверяющего или сертификационного центра.
Как показывает практика, криптографические методы защиты действительно обеспечивают безопасность на достаточно высоком уровне. Несомненно, что данное направление будет быстро развиваться с появлением новых коммуникационных аппаратно-программных средств. Большинство современных компаний стараются разработать универсальные криптографические интерфейсы и избавить разработчика программного обеспечения от самостоятельных реализаций сложных алгоритмов.
На основании всего вышесказанного можно смело говорить о том, что тенденции развития рынка средств криптографической защиты информации совпадают с тенденциями, наблюдаемыми в прочих сегментах рынка прикладного программного обеспечения.
Среди основных тенденций следует особо выделить унификацию параметров криптографических алгоритмов, форматов криптографических сообщений и протоколов, используемых в СКЗИ.
На сегодняшний день криптография применяется практически во всех отраслях
человеческой деятельности, что является немаловажной задачей в более детальном
ее изучении и дальнейшем развитии.
[1] Хоффман Л.Дж. Современные методы защиты информации / Пер. с англ. - М: Сов. радио, 1980.
[2] Мельников В.В. Защита информации в компьютерных системах. - М.: Финансы и статистика; Электронинформ, 1997.
[3] https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82
%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F
[4] http://sec4all.net/modules/myarticles/article.php?storyid=605
[5] http://sumk.ulstu.ru/docs/mszki/Zavgorodnii/