Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика теория. 3 Комп. сети. Лаб 5 Криптография.doc
Скачиваний:
43
Добавлен:
20.02.2016
Размер:
1.14 Mб
Скачать

Основные понятия криптографии

Проблема защиты информации от несанкционированного (самовольного) доступа (НСД) заметно обострилась в связи с широким распространением локальных и особенно глобальных компьютерных сетей.

Защита информации необходима для уменьшения вероятности утечки (разглашения), модификации (умышленного искажения) или утраты (уничтожения) информации, представляющей определенную ценность для ее владельца.

Проблема защиты информации волнует людей несколько столетий.

По свидетельству Геродота, уже в V в. до н. э. использовалось преобразование информации методом кодирования.

Одним из самых первых шифровальных приспособлений была скитала, которая применялась в V в. до н.э. во время войны Спарты против Афин. Скитала — это цилиндр, на который виток к витку наматывалась узкая папирусная лента (без пробелов и нахлестов). Затем на этой ленте вдоль оси цилиндра (столбцами) записывался необходимый для передачи текст. Лента сматывалась с цилиндра и отправлялась получателю. Получив такое сообщение, получатель наматывал ленту на цилиндр такого же диаметра, как и диаметр скиталы отправителя. В результате можно было прочитать зашифрованное сообщение.

Аристотелю принадлежит идея взлома такого шифра. Он предложил изготовить длинный конус и, начиная с основания, обертывать его лентой с шифрованным сообщением, постепенно сдвигая ее к вершине. На каком-то участке конуса начнут просматриваться участки читаемого текста. Так определяется секретный размер цилиндра.

Шифры появились в глубокой древности в виде криптограмм (по-гречески — тайнопись). Порой священные иудейские тексты шифровались методом замены. Вместо первой буквы алфавита записывалась последняя буква, вместо второй— предпоследняя и т. д. Этот древний шифр назывался атбаш. Известен факт шифрования переписки Юлия Цезаря (100—44 до н. э.) с Цицероном (106—43 до н. э.).

Шифр Цезаря реализуется заменой каждой буквы в сообщении другой буквой этого же алфавита, отстоящей от нее в алфавите на фиксированное число букв. В своих шифровках Цезарь заменял букву исходного открытого текста буквой, отстоящей от исходной буквы впереди на три позиции.

В Древней Греции (II в. до н.э.) был известен шифр, который создавался с помощью квадрата Полибия. Таблица для шифрования представляла собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такой таблицы записывалась одна буква. В результате каждой букве соответствовала пара цифр, и шифрование сводилось к замене буквы парой цифр.

Идею квадрата Полибия проиллюстрируем таблицей с русскими буквами. Число букв в русском алфавите отличается от числа букв в греческом алфавите, поэтому и размер таблицы выбран иным (квадрат 6 х 6). Заметим, что порядок расположения символов в квадрате Полибия является секретной информацией (ключом).

Зашифруем с помощью квадрата Полибия слово КРИПТОГРАФИЯ:

26 36 24 35 42 34 14 36 11 44 24 63

Из примера видно, что в шифрограмме первым указывается номер строки, а вторым — номер столбца. В квадрате Полибия столбцы и строки можно маркировать не только цифрами, но и буквами.

В настоящее время проблемами защиты информации занимается криптология (kryptos — тайный, logos — наука). Криптология разделяется на два направления — криптографию и криптоанализ. Цели этих двух направлений криптологии прямо противоположны.

Криптография — наука о защите информации от несанкционированного получения ее посторонними лицами. Сфера интересов криптографии — разработка и исследование методов шифрования информации.

Под шифрованием понимается такое преобразование информации, которое делает исходные данные нечитаемыми и трудно раскрываемыми без знания специальной секретной информации — ключа. В результате шифрования открытый текст превращается в шифрограмму и становится нечитаемым без использования дешифрирующего преобразования. Шифрограмма Может называться иначе: зашифрованный текст, криптограмма, шифровка или шифротекст. Шифрограмма позволяет скрыть смысл передаваемого сообщения.

Сфера интересов криптоанализа противоположная — разработка и исследование методов дешифрования (раскрытия) шифрограммы даже без знания секретного ключа.

Под ключом понимается секретная информация, определяющая, какое преобразование из множества возможных шифрующих преобразований выполняется в данном случае над открытым текстом. При использовании скиталы ключом является диаметр цилиндра.

Дешифрование — обратный шифрованию процесс. При дешифрировании с использованием ключа зашифрованный текст (шифрограмма, шифровка) преобразуется в исходный открытый текст.

Процесс получения криптоаналитиками открытого сообщения из криптограммы без заранее известного ключа называется вскрытием или взломом шифра.

Существует несколько классификаций шифров.

По характеру использования ключа алгоритмы шифрования делятся на два типа: симметричные (с одним ключом, по-другому — с секретным ключом) и несимметричные (с двумя ключами или с открытым ключом). Несимметричные алгоритмы шифрования и дешифрования порой называют асимметричными.

В первом случае в шифраторе отправителя и дешифраторе получателя используется один и тот же ключ (Ключ 1, см. рис). Шифратор образует шифрограмму, которая является функцией открытого текста. Конкретный вид функции преобразования (шифрования) определяется секретным ключом. Дешифратор получателя сообщения выполняет обратное преобразование по отношению к преобразованию, сделанному в шифраторе. Секретный ключ хранится в тайне и передается по каналу, исключающему перехват ключа криптоаналитиком противника или коммерческого конкурента.

Во втором случае (при использовании асимметричного алгоритма) получатель вначале по открытому каналу передает отправителю открытый ключ (Ключ 1), с помощью которого отправитель шифрует информацию. При получении информации получатель дешифрирует ее с помощью второго секретного ключа (Ключ 2). Перехват открытого ключа (Ключ 1) криптоаналитиком противника не позволяет дешифровать закрытое сообщение, так как оно рассекречивается лишь вторым секретным ключом (Ключ 2). При этом секретный Ключ 2 практически невозможно вычислить с помощью открытого Ключа 1.

При оценке эффективности шифра обычно руководствуются правилом голландца Огюста Керкхоффа (1835—1903), согласно которому стойкость шифра определяется только секретностью ключа, т. е. криптоаналитику известны все детали процесса (алгоритма) шифрования и дешифрования, но неизвестно, какой ключ использован для шифрования данного текста.

Криптостойкостью называется характеристика шифра, определяющая его устойчивость к дешифрованию без знания ключа (т. е. устойчивость к криптоанализу). Имеется несколько показателей криптостойкости, среди которых количество всех возможных ключей и среднее время, необходимое для криптоанализа.

Алгоритмы шифрования с открытым ключом используют так называемые необратимые или односторонние функции. Эти функции обладают следующим свойством: при заданном значении аргумента х относительно просто вычислить значение функции f(x). Однако если известно значение Функции у =f(x), то нет простого пути для вычисления значения аргумента х.

Все используемые в настоящее время криптосистемы с открытым ключом опираются на один из следующих типов необратимых преобразований.

  1. Разложение больших чисел на простые множители (алгоритм RSA, авторы — Райвест, Шамир и Адлеман — Rivest, Shamir, Adleman).

  2. Вычисление логарифма или возведение в степень (алгоритм DH, авторы — Диффи и Хелман).

  3. Вычисление корней алгебраических уравнений.

Рассмотрим простейший пример «необратимых» функций. Легко в уме найти произведение двух простых чисел 11 и 13. Но попробуйте быстро в уме найти два простых числа, произведение которых равно 437. Подобные трудности возникают и при использовании вычислительной техники для отыскания двух простых сомножителей для очень большого числа: найти сомножители можно, но потребуется много времени.

Таким образом, в системе кодирования RSA, основанной на разложении на множители, используются два разных ключа: один для шифрования сообщения, а второй — отличный от первого, но связанный с ним — для дешифрования. Ключ шифрования (открытый, несекретный ключ) основан на произведении двух огромных простых чисел, а ключ дешифрования (закрытый, секретный ключ) — на самих простых числах.

Заметим, что по операцию разложения простого числа на множители порой называют факторизацией.

Термин «необратимые» функции неудачен. Правильнее было бы их назвать быстро (или просто) необратимые функции. Однако этот термин устоявшийся, и с неточностью приходится мириться.

В 40-х годах XX в. американский инженер и математик Клод Шеннон предложил разрабатывать шифр таким образом, чтобы его раскрытие было эквивалентно решению сложной математической задачи. Причем, сложность задачи должна быть такой, чтобы объем необходимых вычислений превосходил бы возможности современных ЭВМ.

В асимметричных системах приходится применять длинные ключи (2048 бита и больше). Длинный ключ увеличивает время шифрования открытого сообщения. Кроме того, генерация ключей становится весьма длительной. Зато пересылать открытые ключи можно по незащищенным (незасекреченным, открытым) каналам связи. Это особенно удобно, например, для коммерческих партнеров, разделенных большими расстояниями. Открытый ключ удобно передавать от банкира сразу нескольким вкладчикам.

В симметричных алгоритмах используют более короткие ключи, поэтому шифрование и дешифрование происходят быстрее. Но в таких системах рассылка ключей -является сложной процедурой. Передавать ключи нужно по закрытым (секретным) каналам. Использование курьеров для рассылки секретных ключей дорогая, сложная и медленная процедура.

В США для передачи секретных сообщений наибольшее распространение получил стандарт DES (Data Encryption Standard).

Стандарт DES является блочным шифром. Он шифрует данные блоками по 64 бита. При шифровании используется ключ длиной 56 битов. Данный стандарт подвергался многократному детальному криптоанализу. Для его взлома были разработаны специализированные ЭВМ стоимостью, достигавшей 20 миллионов долларов. Были разработаны способы силового взлома стандарта DES на основании распределенных вычислений с использованием множества ЭВМ. Для увеличения криптостойкости впоследствии был разработан способ DES-шифрования с использованием трех ключей — так называемый «тройной DES».

Можно утверждать, что на протяжении многих лет дешифрованию криптограмм помогает частотный анализ появления отдельных символов и их сочетаний. Вероятности появления отдельных букв в тексте сильно различаются. Для русского языка, например, буква «о» появляется в 45 раз чаще буквы «ф» и в 30 раз чаще буквы «э». Анализируя достаточно длинный текст, зашифрованный методом замены, можно по частотам появления символов произвести обратную замену и восстановить исходный открытый текст. В таблице приведены относительные частоты появления русских букв.

Буква

Частота

Буква

Частота

Буква

Частота

Буква

Частота

о

0.09

в

0.038

з

0.016

ж

0.007

е, ё

0.072

л

0.035

ы

0.016

ш

0.006

а

0.062

к

0.028

б

0.014

ю

0.006

и

0.062

м

0.026

ь, ъ

0.014

ц

0.004

н

0.053

д

0.025

г

0.013

щ

0.003

т

0.053

п

0.023

ч

0.012

э

0.003

с

0.045

у

0.021

и

0.01

ф

0.002

р

0.04

я

0.018

х

0.009

Относительная частота появления пробела или знака препинания в русском языке составляет 0,174. Приведенные цифры означают следующее: среди 1000 букв текста в среднем будет 174 пробелов и знаков препинания, 90 букв «о», 72 буквы «е» и т. д.

При проведении криптоанализа требуется по небольшому отрезку текста решить, что собой представляет дешифрованный текст: осмысленное сообщение или набор случайных символов. Часто криптоаналитики вскрывают шифры на ЭВМ методом перебора ключей. Вручную выполнить анализ множества фрагментов дешифрированных текстов невозможно. Поэтому задачу выделения осмысленного текста (т. е. обнаружение правильно дешифрированного текста) решают с помощью ЭВМ. В этом случае используют теоретические положения, разработанные в конце XIX в. петербургским Математиком А.А. Марковым, так называемые цепи Маркова.

Следует заметить, что, по мнению некоторых специалистов, нет нераскрываемых шифров. Рассекретить (взломать) любую шифрограмму можно либо за большое время, либо за большие деньги. Во втором случае для дешифрования потребуется использование нескольких суперкомпьютеров, что приведет к существенным материальным затратам. Все чаще для взлома секретных сообщений используют распределенные ресурсы Интернета, распараллеливая вычисления и привлекая к расчетам сотни и даже тысячи рабочих станций.

Есть и другое мнение. Если длина ключа равна длине сообщения, а ключ генерируется из случайных чисел с равновероятным распределением и меняется с каждым новым сообщением, то шифр невозможно взломать даже теоретически. Подобный подход впервые описал Г. Вернам в начале XX в., предложив алгоритм одноразовых шифроблокнотов.

Рассмотрим еще одну классификацию шифров.

Множество современных методов шифрования можно разделить на четыре большие группы: методы замены (подстановки), перестановок, аддитивные (гаммирования) и комбинированные методы.

В шифре перестановок все буквы открытого текста остаются без изменений, но перемещаются с их исходных позиций на другие места (примером является шифрование с помощью скиталы).

Следующая простейшая «шифровка» получена методом перестановки двух соседних букв РКПИОТРГФАЯИ.

В этом «секретном» сообщении легко узнать слово КРИПТОГРАФИЯ.

Более сложный алгоритм перестановок сводится к разбиению сообщения на группы по три буквы. В каждой группе первую букву ставят на третье место, а вторую и третью буквы смещают на одну позицию влево. В результате получится криптограмма: РИКТОПРАГИЯФ.

Перестановки получаются в результате записи исходного текста и чтения шифрованного текста по разным путям некоторой геометрической фигуры.

В шифре замены позиции букв в шифровке остаются теми же, что и у открытого текста, но символы открытого текста заменяются символами другого алфавита. В качестве примера можно назвать квадрат Полибия. Здесь буквы заменяются соответствующими цифрами.

Метод замены часто реализуется многими пользователями случайно при работе на ЭВМ. Если по забывчивости не переключить на клавиатуре регистр с латиницы на кириллицу, то вместо букв русского алфавита при вводе текста будут печататься буквы латинского алфавита. В результате исходное сообщение будет «зашифровано» латинскими буквами. Например, rhbgnjuhfabz - так зашифровано слово криптография.

В аддитивном методе буквы алфавита вначале заменяются числами, к которым затем добавляются числа секретной псевдослучайной числовой последовательности (гаммы). Состав гаммы меняется в зависимости от использованного ключа. Обычно для шифрования используется логическая операция «Исключающее ИЛИ». При дешифровании та же гамма накладывается на зашифрованные данные. Метод гаммирования широко используется в военных криптографических системах. Шифры, получаемые аддитивным методом, порой называют поточными шифрами.

Комбинированные методы предполагают использование для шифрования сообщения сразу нескольких методов (например, сначала замена символов, а затем их перестановка).

Существует еще один подход к передаче секретных сообщений. Он сводится к сокрытию самого факта передачи информации. Такими способами шифрования занимается наука стеганография.

Если криптография делает открытое сообщение нечитаемым без знания секретного ключа, то стеганография разрабатывает такие методы шифрования, при которых сложно заметить сам факт передачи информации.

Стеганография использует специальные контейнеры, в которых прячется передаваемое сообщение. Например, секретный текст внедряется в безобидный рисунок какого-то цветка на поздравительной открытке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]