Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
8.1. Криптографические методы информационной безопасности
В качестве основных механизмов информационной безопасности используются:
1) алгоритмы симметричного шифрования алгоритмы шифрования, в которых для шифрования и дешифрования используется один и тот же ключ или ключ дешифрования легко может быть получен из ключа шифрования;
2) алгоритмы асимметричного шифрования алгоритмы шифрования, в которых для шифрования и дешифрования используются два разных ключа, называемые открытым и закрытым ключами, причем, зная один из ключей, вычислить другой невозможно;
3) хэш-функции функции, входным значением которых является сообщение произвольной длины, а выходным значением сообщение фиксированной длины (хэш-функции обладают рядом свойств, которые позволяют с высокой долей вероятности определять изменение входного сообщения).
Здесь под шифрованием и дешифрированием понимаются разновидности процессов кодирования и декодирования информации.
Указанные средства основаны на применении криптографических методов. Разработка и исследование таких методов составляет предмет специальной науки криптографии.
Криптография (тайнопись) это раздел математики, в котором изучаются и разрабатываются системы изменения письма с целью сделать его непонятным для непосвященных лиц. Теоретические основы классической криптографии впервые были изложены Клодом Шенноном в конце 1940-х годов.
Методы криптографии начали развиваться еще в глубокой древности. Известно, что еще в V веке до нашей эры тайнопись использовалась в Древней Греции. Очень распространена была простейшая (для настоящего времени) система шифрования это замена каждого знака письма на другой знак по выбранному правилу. Юлий Цезарь, например, заменял в своих секретных письмах первую букву алфавита на четвертую, вторую на пятую, последнюю на третью и т.п., т.е. A на D, B на E, Z на C и т.п. Его наследник Октавиан Август заменял каждую непоследнюю букву алфавита на следующую, а последнюю на первую. Подобные шифры, называемые простой заменой или подстановкой, описаны в рассказах «Пляшущие человечки» А. К. Дойла, «Золотой жук» Э.По и других детективных произведениях.
Шифры простой замены легко поддаются расшифровке при знании исходного языка сообщения, так как каждый письменный язык характеризуется частотой встречаемости своих знаков. Например, в английском языке чаще всего встречается буква E, а в русском О. Таким образом, в шифрованном подстановкой сообщения на русском языке самому частому знаку будет с большой вероятностью соответствовать буква О. При этом вероятность будет расти с ростом длины сообщения.
Усовершенствованные шифры-подстановки используют возможность заменять символ исходного сообщения на любой символ из заданного для него множества символов, что позволяет выровнять частоты встречаемости различных знаков шифра, но подобные шифры удлиняют сообщение и замедляют скорость обмена информацией.
В шифрах-перестановках знаки сообщения специальным образом переставляются между собой, например, записывая сообщение в строки заданной длины и беря затем последовательность слов в столбцах в качестве шифра. Сообщение «ТЕОРИЯИНФОРМАЦИИ», используя строки длины 4, будет в шифрованном таким методом виде выглядеть как "ТИФАЕЯОЦОИРИРНМИ", потому что при шифровании использовался следующий прямоугольник:
Т |
Е |
О |
Р |
И |
Я |
И |
Н |
Ф |
О |
Р |
М |
А |
Ц |
И |
И |
Шифры-перестановки в общем случае практически не поддаются дешифровке. Для их дешифровки необходимо знать дополнительную информацию. Крупный недостаток подобных шифров в том, что если удастся каким-то образом расшифровать хотя бы одно сообщение, то в дальнейшем можно расшифровать и любое другое. Модификацией шифров-перестановок являются шифры-перестановки со словом-ключом, которое определяет порядок взятия слов-столбцов.
Системы с ключевым словом или просто ключом, известные с XVI века, широко применяются до сих пор. Их особенностью является два уровня секретности. Первый уровень это собственно способ составления кода, который постоянно известен лицам, использующим данный шифр. Второй уровень это ключ, который посылается отдельно от основного сообщения по особо защищенным каналам и без которого расшифровка основного сообщения невозможна.
Наиболее простой способ использования ключа хорошего шифра следующий: под символами сообщения записывается раз за разом ключ, затем номера соответствующих знаков сообщения и ключа складываются. Если полученная сумма больше общего числа знаков, то от нее отнимается это общее число знаков. Полученные числа будут номерами символов кода. С ростом длины ключа трудоемкость дешифровки подобного шифра стремительно растет. Например, рассмотренное ранее сообщение с ключом "КИБЕРНЕТИКА" в шифрованном виде будет выглядеть как "ЮОРЦЪНОБЮЪСШЙШОЪ". Процесс шифровки описывается схемой:
Т |
Е |
О |
Р |
И |
Я |
И |
Н |
Ф |
О |
Р |
М |
А |
Ц |
И |
И |
20 |
6 |
16 |
18 |
10 |
33 |
10 |
15 |
22 |
16 |
18 |
14 |
1 |
24 |
10 |
10 |
К |
И |
Б |
Е |
Р |
Н |
Е |
Т |
И |
К |
А |
К |
И |
Б |
Е |
Р |
12 |
10 |
2 |
6 |
18 |
15 |
6 |
20 |
10 |
12 |
1 |
12 |
10 |
2 |
6 |
18 |
32 |
16 |
18 |
24 |
28 |
15 |
16 |
2 |
32 |
28 |
19 |
26 |
11 |
26 |
16 |
28 |
Ю |
О |
Р |
Ц |
Ъ |
Н |
О |
Б |
Ю |
Ъ |
С |
Ш |
Й |
Ш |
О |
Ъ |
Если в качестве ключа использовать случайную последовательность, то получится нераскрываемый шифр. Проблема такого шифра это способ передачи ключа.
В информационных сетях использование традиционных систем шифрования с ключом затрудненно необходимостью иметь специальный особо защищенный способ для передачи ключа. В 1976 году У.Диффи и М.Хеллман инженеры-электрики из Станфордского университета, а также студент Калифорнийского университета Р.Меркль, предложили новый принцип построения криптосистем, не требующий передачи ключа принимающему сообщение и сохранения в тайне метода шифрования.
Шифрование информации это основной криптографический метод защиты информации, обеспечивающий ее конфиденциальность. При шифровании и расшифровке (дешифрировании) информации выполняется преобразование исходных (открытых) данных в зашифрованные и наоборот. Шифрование данных можно представить в виде следующих формул:
C = Ek1(M),
M = Dk2(C),
где M открытая информация (открытый текст), C полученный в результате зашифровывания шифротекст (криптограмма), E функция зашифровывания, выполняющая криптографические преобразования над исходным текстом, k1 параметр функции зашифрования, называемый ключом зашифровывания, M информация, полученная в результате расшифровывания, k2 параметр для расшифровывания информации, D функция расшифровывания, выполняющая обратные относительно зашифровывания криптографические преобразования над шифротекстом.
В стандарте ГОСТ 28147-89 понятие «ключ» определено следующим образом: «Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований». Другими словами, ключ является уникальным элементом, с помощью которого можно варьировать результат работы алгоритма шифрования: один и тот же открытый текст при использовании различных ключей будет зашифрован по-разному.
Для того чтобы результат последовательного выполнения операций зашифровывания и расшифровывания совпал с исходным сообщением, необходимо выполнение двух условий:
- функция D должна соответствовать функции E,
- ключ k2 должен соответствовать ключу k1.
При отсутствии верного ключа k2 получить исходное сообщение M = M невозможно, если для зашифровывания использовался криптографически стойкий алгоритм шифрования. Криптостойкость является количественной характеристикой алгоритма шифрования, определяемой требуемыми ресурсами для его вскрытия. Ресурсами являются:
- количество информации;
- время;
- память.
Совокупность этих трех величин характеризует конкретную атаку на конкретный алгоритм шифрования. А лучшая (с минимальным набором ресурсов) из возможных атак на алгоритм характеризует его криптостойкость. Кроме того, понятие криптостойкого алгоритма может быть определено следующим образом:
- алгоритм является криптографически стойким, если не существует каких-либо методов его вскрытия, кроме перебора всех возможных вариантов, и
- при этом размер ключа алгоритма является достаточно большим для того, чтобы перебор вариантов стал невозможным при текущем уровне вычислительной техники.
Алгоритмы шифрования можно разделить на две категории:
1) алгоритмы симметричного шифрования, в которых k2 = k1 = k;
2) алгоритмы асимметричного шифрования, в которых ключ зашифровывания k1 вычисляется из ключа k2 таким образом, что обратное вычисление невозможно, например, по формуле
k1 = ak2 mod p,
где a и p параметры алгоритма.
8.3. Алгоритмы симметричного шифрования
Симметричное шифрование делится на два вида: блочное и потоковое. При блочном шифровании информация разбивается на блоки фиксированной длины, после чего они поочередно шифруются. Алгоритмы потокового шифрования обрабатывают данные побитно или посимвольно (можно считать, что данные разбиваются на блоки единичной длины).
Большинство симметричных алгоритмов работают следующим образом: над шифруемым текстом выполняется некоторое преобразование с участием ключа шифрования, которое повторяется определенное число раз (раундов). При этом по виду повторяющегося преобразования алгоритмы шифрования принято делить на несколько категорий.
1. Алгоритмы на основе сети Фейстеля. Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (частей), один из которых обрабатывается некоторой функцией f и накладывается на один или несколько остальных (рис. 8.1). Дополнительный аргумент функции f, обозначенный на рис. 8.1 как Ki, называется ключом раунда и является результатом обработки ключа шифрования процедурой расширения ключа. Задачей процедуры расширения ключа заключается в получении необходимого количества ключей раунда из исходного ключа шифрования (в простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования).
2. Алгоритмы на основе подстановочно-перестановочных сетей. В отличие от алгоритмов, основанных на сети Фейстеля, данные алгоритмы обрабатывают за один раунд шифруемый блок целиком. Обработка данных сводится, в основном, к заменам и перестановкам, зависящим от ключа Ki (рис. 8.2).
3. Алгоритмы с квадратной структурой. Пример подобного алгоритма был приведен выше. Для алгоритмов квадратной структуры характерно представление шифруемого блока данных в виде двумерного массива байтов. Криптографические преобразования могут выполняться над отдельными байтами массива, а также над строками или столбцами.
4. Алгоритмы с нестандартной структурой, к которым можно все остальные существующие алгоритмы симметричного шифрования.
8.4. Алгоритмы асимметричного шифрования
При использовании алгоритмов симметричного шифрования каждая из обменивающихся информацией сторон должна иметь копию общего секретного ключа, что создает сложнейшую проблему управления ключами. Этого недостатка лишены алгоритмы ассиметричного шифрования (однако у них есть свои собственные недостатки, например, они более медленные).
В ассиметричных алгоритмах (алгоритмах с открытым ключом) используются два ключа: открытый и секретный. Открытый ключ может быть опубликован в справочнике наряду с именем пользователя. В результате любой желающий может зашифровать с его помощью свое сообщение и послать закрытую информацию владельцу соответствующего секретного ключа. Расшифровать посланное сообщение сможет только тот, у кого есть секретный ключ.
В основе алгоритма шифрования с открытым ключом лежит идея использования легко осуществимого на стадии шифрования математического преобразования, которое сложно было бы обратить (без знания специальной секретной информации) для реализации второй стадии алгоритма, т. е. расшифрования. Преобразование, обладающее указанным свойством, называется односторонней функцией или функцией-ловушкой.
Имеется набор широко известных и всесторонне изученных односторонних функций. К ним относятся функции, изученные при решении задачи разложения целых чисел на множители, проблемы вычисления дискретных логарифмов или вычисления квадратных корней по модулю составного числа. Отметим, что применяемые функции являются односторонними только в вычислительном отношении, т.е. имея достаточно большие компьютерные мощности, их вполне можно обратить, причем быстрее, чем найти секретный ключ в результате полного перебора.
Рассмотрим построение ассиметричных алгоритмов на примере системы, разработанной в 1978 году американцами Р.Ривестом, Э.Шамиром и Л.Адлеманом. По их именам эта система получила название RSA. Вообще она является первой и наиболее известной системой с открытым ключом.
Пусть абоненты A и B решили организовать для себя возможность секретной переписки. Для этого каждый из них независимо выбирает два больших простых числа (,и ,), находит их произведение (rA и rB), функцию Эйлера от этого произведения ((rA) и ( rB)) и случайное число (a и b), меньшее вычисленного значения функции Эйлера и взаимно простое с ним. Кроме того, A из уравнения
a 1 (mod (rA))
находит (0 < < (rA)), а B из уравнения
b 1 (mod (rB))
находит (0 < < (rB)). Затем A и B публикуют доступную всем информацию вида:
A: rA, a;
B: rB, b.
Теперь кто угодно может отправлять конфиденциальные сообщения A или B. Например, если пользователь C хочет отправить сообщение m для B (m должен быть меньшим rB или делится на куски, меньшие rB), то он использует ключ b для получения шифрованного сообщения m1 по формуле
m1 mb (mod rB),
которое и отправляется B. Получатель сообщения B для дешифрирования m1 использует ключ в формуле
mb m (mod rB),
так как b 1 (mod (rB)), следовательно, b = k(rB) + 1 для некоторого целого k и mk(rB) + 1 (m(rB) )km m (mod rB), так как m(rB) 1 (mod rB) по теореме Эйлера-Ферма.
Функция Эйлера (n), где n натуральное число, определяется следующим образом:
(1) = 1; ,
где pi простые сомножители числа n, i кратности простых сомножителей числа n.
Задача нахождения секретного ключа в алгоритме RSA будет иметь такую же сложность, что и задача разложения числа на простые множители, поскольку здесь использовалась соответствующая односторонняя функция. Рассмотрим алгоритм RSA на примере. Пусть для A имеем = 7 и= 23. Тогда rA = = 161, (rA) = (161) = 6 22 = 132, a = 7, = 19. Если кто-то захочет отправить A секретное сообщение m = 3, то он должен будет преобразовать его в m1 37 94 (mod 161). Когда A получит m1 = 94, он дешифрирует его по формуле m = 9419 3 (mod 161).
8.5. Цифровая подпись
Некоторые из асимметричных алгоритмов могут использоваться для генерирования цифровой подписи. Цифровой подписью называют блок данных, сгенерированный с использованием некоторого секретного ключа. При этом с помощью открытого ключа можно проверить, что данные были действительно сгенерированы с помощью этого секретного ключа.
Цифровые подписи используются для того, чтобы подтвердить, что сообщение пришло действительно от заявленного отправителя (в предположении, что лишь отправитель обладает секретным ключом, соответствующим его открытому ключу). Также подписи используются для проставления штампа времени на документах: сторона, которой доверяют, подписывает документ со штампом времени с помошью своего секретного ключа и, таким образом, подтверждает, что документ уже существовал в момент, объявленный в штампе времени.
Цифровые подписи также можно использовать для удостоверения (сертификации) принадлежности документа определенному лицу: открытый ключ и информация относительно его принадлежности подписываются стороной, которой доверяют. При этом доверять подписывающей стороне можно на основании того, что ее ключ был подписан третьей стороной. Таким образом, возникает иерархия доверия. Очевидно, что некоторый ключ должен быть корнем иерархии (т.е. ему доверяют не потому, что он кем-то подписан, а потому, что априорно известно, что ему можно доверять). В централизованной инфраструктуре ключей имеется очень небольшое количество корневых ключей сети (например, облеченные полномочиями государственные агенства, которые также называют сертификационными агенствами). В распределенной инфраструктуре нет необходимости иметь универсальные для всех корневые ключи, и каждая из сторон может доверять своему набору корневых ключей (скажем своему собственному ключу и ключам, ею подписанным). Эта концепция носит название сети доверия.
Цифровая подпись документа обычно создается следующим образом: из документа генерируется так называемый дайджест и к нему добавляется информация о том, кто подписывает документ, штамп времени и прочее. Получившаяся строка далее зашифровывается секретным ключом подписывающего с использованием того или иного алгоритма. Получившийся зашифрованный набор бит и представляет собой подпись. К подписи обычно прикладывается открытый ключ подписавшей стороны. Получатель сначала решает для себя доверяет ли он тому, что открытый ключ принадлежит именно тому, кому должен принадлежать (с помощью сети доверия или априорного знания), и затем дешифрует подпись с помощью открытого ключа. Если подпись нормально дешифрировалась, и ее содержимое соответствует документу (дайджест и др.), то сообщение считается подтвержденным.
Свободно доступны несколько методов создания и проверки цифровых подписей. Наиболее известным является метод, основанный на применении RSA.
8.6. Хэш-алгоритмы
Криптографические хэш-алгоритмы используются обычно для генерации дайджеста сообщения при создании цифровой подписи. Они основаны на применении хэш-функций, отображающих сообщение в имеющее фиксированный размер хэш-значение таким образом, что все множество возможных сообщений распределяется равномерно по множеству хэш-значений. При этом криптографическая хэш-функция делает это таким образом, что практически невозможно подогнать документ к заданному хэш-значению. Криптографические хэш-функции обычно производят значения длиной в 128 и более бит (это число значительно больше, чем количество собщений, которые когда-либо будут существовать в мире). Широко известны такие хэш-алгоритмы, как MD5 и SHA.
PAGE 102
Рис. 8.2. Подстановочно-перестановочная сеть
Рис. 8.1. Сеть Фейстеля