close

Вход

Забыли?

вход по аккаунту

?

Лаб 5 Криптография

код для вставкиСкачать
Основные понятия криптографии Проблема защиты информации от несанкционированного (самовольного) доступа (НСД) заметно обострилась в связи с широким распространением локальных и особенно глобальных компьютерных сетей.
Защита информации необходима для уменьшения вероятности утечки (разглашения), модификации (умышленного искажения) или утраты (уничтожения) информации, представляющей определенную ценность для ее владельца.
Проблема защиты информации волнует людей несколько столетий.
По свидетельству Геродота, уже в 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 - так зашифровано слово криптография.
В аддитивном методе буквы алфавита вначале заменяются числами, к которым затем добавляются числа секретной псевдослучайной числовой последовательности (гаммы). Состав гаммы меняется в зависимости от использованного ключа. Обычно для шифрования используется логическая операция "Исключающее ИЛИ". При дешифровании та же гамма накладывается на зашифрованные данные. Метод гаммирования широко используется в военных криптографических системах. Шифры, получаемые аддитивным методом, порой называют поточными шифрами.
Комбинированные методы предполагают использование для шифрования сообщения сразу нескольких методов (например, сначала замена символов, а затем их перестановка).
Существует еще один подход к передаче секретных сообщений. Он сводится к сокрытию самого факта передачи информации. Такими способами шифрования занимается наука стеганография.
Если криптография делает открытое сообщение нечитаемым без знания секретного ключа, то стеганография разрабатывает такие методы шифрования, при которых сложно заметить сам факт передачи информации.
Стеганография использует специальные контейнеры, в которых прячется передаваемое сообщение. Например, секретный текст внедряется в безобидный рисунок какого-то цветка на поздравительной открытке.
Шифрование сообщений различными методами
Вместо хвоста - нога, А на ноге - рога.
Л. Дербенеёв.
Рассмотрим, как зашифровать сообщение методом замены (другими словами методом подстановки). Вначале используем шифр Цезаря. Предположим, что требуется зашифровать сообщение "ГДЕ АББА".
Как известно, циклический шифр Цезаря получается заменой каждой буквы открытого текста буквами этого же алфавита, расположенными впереди через определенное число позиций, например через три позиции. Циклическим он называется потому, что при выполнении замены вслед за последней буквой алфавита вновь следует первая буква алфавита. Запишем фрагменты русского алфавита и покажем, как выполняется шифрование (порядок замены):
В результате проведенного преобразования получится шифрограмма:
ЁЖЗ ГДДГ.
В данном случае ключом является величина сдвига (число позиций между буквами). Число ключей этого шифра невелико (оно равно числу букв алфавита). Не представляет труда вскрыть такую шифрограмму перебором всех возможных ключей. Недостатком шифра Цезаря является невысокая криптостойкость. Объясняется это тем, что в зашифрованном тексте буквы по-прежнему располагаются в алфавитном порядке, лишь начало отсчета смещено на несколько позиций.
Замена может осуществляться на символы другого алфавита и с более сложным ключом (алгоритмом замены). Для простоты опять приведем лишь начальные части алфавитов. Линии показывают порядок замены букв русского алфавита на буквы латинского алфавита. Зашифруем фразу "ГДЕ АББА"
В результате такого шифрования получится криптограмма:
CDB EFFE.
Рациональнее использованный в последнем случае ключ записать в виде таблицы:
АБВГДЕЕFАСDВ При шифровании буквы могут быть заменены числами (в простейшем случае порядковыми номерами букв в алфавите). Тогда наша шифровка будет выглядеть так:
4-5-6-1-2-2-1.
Замена символов открытого текста может происходить на специальные символы, например, на "пляшущих человечков", как в рассказе К. Дойла или с помощью флажков, как это делается моряками.
Более высокую криптостойкость по сравнению с шифром Цезаря имеют аффинные криптосистемы.
В аффинных криптосистемах, за счет математических преобразований, буквы, заменяющие открытый текст, хаотично перемешаны. В аффинных криптосистемах буквы открытого текста нумеруются числами, например, для кириллицы от 0 до 32. Затем каждая буква открытого текста заменяется буквой, порядковый номер которой вычисляется с помощью линейного уравнения и вычисления остатка от целочисленного деления.
Аффинные криптосистемы задаются при помощи двух чисел а и b. Для русского алфавита эти числа выбираются из условия а ≥ 0, b ≤ 32. Максимальное число символов в используемом алфавите обозначаются символом γ. Причем числа а и γ = 33 должны быть взаимно простыми. Если это условие не будет выполняться, то две разные буквы могут отображаться (превращаться) в одну. Каждый код буквы открытого текста μ заменяется кодом буквы криптограммы по следующему правилу. Вначале вычисляется число α = a∙μ + b, a затем выполняется операция целочисленного деления числа α на число γ = 33, то есть α = β(mod (γ)). В качестве кода символа Шифрограммы используется остаток от целочисленного деления. Для определенности выберем такие числа: а = 5 и b =3. Фрагмент процедуры, иллюстрирующей порядок шифрования, приведен в таблице.
Буква открытого текстаАБВГДЕ...ЯКод буквы открытого текста μ012345...32Код буквы шифрограммы β3813182328...31Буква шифрограммыГЗМСЦЫ...Ю Предположим, что нужно зашифровать сообщение "ГДЕ АББА". В результате получим:
Открытый текстГДЕАББАШифрограммаСЦЫГЗЗГ В ранее рассмотренных нами шифрах каждой букве открытого текста соответствовала одна определенная буква криптограммы. Подобные шифры называются шифрами одноалфавитной замены.
Длинные сообщения, полученные методом одноалфавитной замены (другое название - шифр простой однобуквенной замены), раскрываются с помощью таблиц относительных частот. Для этого подсчитывается частота появления каждого символа, делится на общее число символов в шифрограмме. Затем с помощью таблицы относительных частот определяется, какая была сделана замена при шифровании.
Повысить криптостойкость позволяют шифры многоалфавитной замены (или шифры многозначной замены). При этом каждому символу открытого алфавита ставят в соответствие не один, а несколько символов шифровки.
Ниже приведен фрагмент ключа многоалфавитной замены:
АБВГДЕ18751921212490358315481422109932 С помощью многоалфавитного шифра сообщение "ГДЕ АББА" можно зашифровать несколькими способами:
19-83-32-48-4-7-12,
10-99-15-12-4-14-12 и т. д.
Для каждой буквы исходного алфавита создается некоторое множество символов шифрограммы так, что множества каждой буквы не содержат одинаковых элементов. Многоалфавитные шифры изменяют картину статистических частот появления букв и этим затрудняют вскрытие шифра без знания ключа.
Рассмотрим еще один шифр многоалфавитной замены, который был описан в 1585 г. французским дипломатом Блезом де Виженером. Шифрование производится с помощью так называемой таблицы Виженера. Здесь, как и прежде, показана лишь часть таблицы для того, чтобы изложить лишь идею метода.
Каждая строка в этой таблице соответствует одному шифру простой замены (типа шифра Цезаря). При шифровании открытое сообщение записывают в строчку, а под ним помещают ключ. Если ключ оказывается короче сообщения, то ключ циклически повторяют. Шифровку получают, находя символ в матрице букв шифрограммы. Символ шифрограммы находится на пересечении столбца с буквой открытого текста и строки с соответствующей буквой ключа.
Предположим, что нужно зашифровать сообщение "ГДЕ АББА". В качестве ключа выберем слово "ДЕВА". В результате получим:
СообщениеГДЕАББАКлючДЕВАДЕВШифровкаЯЯГАЭЬЮ В результате преобразований получится шифровка
ЯЯГ АЭЬЮ.
Система Плейфейра создает многоалфавитные шифры. Рассмотрим основную идею этой системы.
Шифрование производится с помощью квадрата (или прямоугольника), в который занесены буквы соответствующего национального алфавита. Буквы записываются в квадрат или прямоугольник в произвольном порядке. Этот порядок записи букв и конфигурация таблицы являются секретным ключом. Для определенности возьмем прямоугольную таблицу размером 8x4, в качестве букв алфавита - кириллицу, а буквы расположим в алфавитном порядке. Так как число русских букв 33, а число клеток - 32, исключим из таблицы букву Ё.
АБВГДЕЖ3ИИКЛМНОПРСТУФXЦЧШЩЪЫЬЭЮЯ Предположим, что требуется зашифровать слово КРИПТОГРАФИЯ. Рассмотрим правила шифрования.
1. Открытый текст делится на блоки по две буквы. Буквы в одном блоке не должны быть одинаковыми. Произведем разделение исходного слова на блоки по две буквы КР-ИП-ТО-ГР-АФ-ИЯ.
2. Если буквы шифруемого блока находятся в разных строках и столбцах, то в качестве заменяющих букв используются буквы, расположенные в углах прямоугольника, охватывающего буквы открытого текста. На пример, блок КР заменяется символами ИТ.
3. Если буквы открытого текста попадают в одну строку, то шифрограмма получается путем циклического сдвига вправо на одну клетку. Например, блок ИП будет преобразован в ЙИ. Еще один пример к этому правилу. Если, предположим, требуется преобразовать блок КН, то получится ЛО.
4. Если обе буквы открытого текста попадают в один столбец, то для шифрования осуществляют циклический сдвиг на одну клетку вниз.
Блок ЖЦ будет преобразован в символы ОЮ, а блок ТЪ в символы ЪВ.
В соответствии с описанными правилами слово КРИПТОГРАФИЯ будет преобразовано в криптограмму ИТЙИЦКАУДРПШ.
Заметим, что если блоки открытого текста состоят из одинаковых букв, то криптограмма тоже будет содержать одинаковые пары символов. По этой причине рассмотренный шифр относится к одноалфавитным. Однако модификация этого шифра превращает его в многоалфавитную систему. Для этого используется несколько таблиц Плейфейера и производится многократное шифрование.
Здесь уместно рассмотреть криптографическую систему Хилла, в которой шифрование осуществляется с использованием математических преобразований: вычислений с помощью приемов линейной алгебры.
Данный шифр для отдельно взятой буквы можно считать многоалфавитным. Однако пары букв шифруются везде одинаково. Поэтому в широком смысле понятия криптографическую систему Хилла следует отнести к одноалфавитным шифрам.
Первоначально открытый текст методом замены следует преобразовать в совокупность чисел. Предположим, что шифруется текст, написанный с использованием 26-ти латинских букв. Выберем следующий алгоритм замены букв на числа: латинские буквы А, В, С, D, ..., Z будем заменять соответственно числами 1, 2, 3, 4,..., 26. Другими словами: пронумеруем буквы в порядке их расположения в алфавите, и при замене будем использовать их порядковые номера. В данном случае выбран такой алгоритм замены, но понятно, что он может быть любым.
Предположим, что нужно зашифровать немецкое слово ZEIT. Заменим буквы в соответствии с их порядковыми номерами в алфавите четырьмя числами: 26 - 5 - 9 - 20.
Далее следует выбрать некоторое число d > 2. Это число показывает, порядок разбиения открытого текста на группы символов (определяет, сколько букв будет в каждой группе). С математической точки зрения число d показывает, сколько строк должно быть в векторах-столбцах. Примем d = 2. Это означает, что числа 26 - 5 - 9 - 20 нужно разбить на группы по два числа в каждой группе и записать их в виде векторов-столбцов:
Далее следует записать матрицу исходного текста:
Шифрование выполняется путем вычисления следующих выражений:
С1=МР1 и С2 = М∙Р2
В результате расчетов получится:
Окончательный результат шифрования получается путем целочисленного деления элементов векторов-столбцов С1 и С2 по модулю 26 (нахождение остатка от целочисленного деления).
В результате шифрования по каналу связи будет оправлена последовательность чисел: 19 - 22 - 24 - 3. Для ранее выбранного ключа замены это будет соответствовать шифрограмме SVXC. Данный пример иллюстрирует тот факт, что системы шифрования часто базируются на математических преобразованиях.
Рассмотрим примеры шифрования сообщения методом перестановок.
Идея этого метода криптографии заключается в том, что запись открытого текста и последующее считывание шифровки производится по разным путям некоторой геометрической фигуры (например, квадрата).
Для пояснения идеи возьмем квадратную таблицу (матрицу) 8x8. Будем записывать текст последовательно по строкам сверху вниз, а считывать по столбцам последовательно слева направо.
Предположим, что требуется зашифровать сообщение:
НА ПЕРВОМ КУРСЕ ТЯЖЕЛО УЧИТЬСЯ ТОЛЬКО ПЕРВЫЕ ЧЕТЫРЕ ГОДА ДЕКАНАТ.
НА_ПЕРВОМКУРСЕ_ТЯЖЕЛО_УЧИТЬСЯ_ТОЛЬКО_ПЕРВЫЕ_ЧЕТЫРЕ_ГОДА_ДЕКАНАТ В таблице символом "_" обозначен пробел.
В результате преобразований получится шифровка
НМТЧОРЫ_А_ЯИЛВРД_КЖТЬЫЕЕПУЕЬКЕ_КЕРЛСО_ГАРСОЯ_ЧОНВЕ_
_ПЕДАО_УТЕТАТ.
Как видно из примера, шифровка и открытый текст содержат одинаковые символы, но они располагаются на разных местах.
Ключом в данном случае является размер матрицы, порядок записи открытого текста и считывания шифрограммы. Естественно, что ключ может быть другим. Например, запись открытого текста по строкам может производиться в таком порядке: 48127653, а считывание криптограммы может происходить по столбцам в следующем порядке: 81357642.
Будем называть порядок записи в строки матрицы ключом записи, а порядок считывания шифрограммы по столбцам - ключом считывания.
Тогда правило дешифрирования криптограммы, полученной методом перестановок, можно записать так.
Чтобы дешифровать криптограмму, полученную с помощью матрицы п х п, нужно криптограмму разбить на группы символов по п символов в каждой группе. Крайнюю левую группу записать сверху вниз в столбец, номер которого совпадает с первой цифрой ключа считывания. Вторую группу символов записать в столбец, номер которого совпадает со второй цифрой ключа считывания и т.д. Открытый текст считывать из матрицы по строкам в соответствии с цифрами ключа записи.
Рассмотрим пример дешифрации криптограммы, полученной методом перестановок. Известно, что при шифровании использованы матрица 6x6, ключ записи 352146 и ключ считывания 425316. Текст шифрограммы таков:
ДКАГЧЬОВА_РУААКОЕБЗЕРЕ_ДСОХТЕСЕ_Т_ЛУ
Разобьем шифрограмму на группы по 6 символов:
ДКАГЧЬ ОВА_РУ ААКОЕБ ЗЕРЕ_Д СОХТЕС Е_Т_ЛУ
Затем первую группу символов запишем в столбец 4 матрицы 6x6, так как первая цифра ключа считывания - 4 (см. рисунок а). Вторую группу из 6 символов запишем в столбец 2 (см. рисунок б), третью группу символов - в столбец 5 (см. рисунок в), пропустив две фазы заполнения матрицы, изобразим полностью заполненную матрицу (см. рисунок г).
Считывание открытого текста в соответствии с ключом записи начинаем со строки 3, затем используем строку 5 и т.д. В результате дешифрования получаем открытый текст:
ХАРАКТЕР ЧЕЛОВЕКА СОЗДАЕТ ЕГО СУДЬБУ
Естественно, что описанная процедура дешифрования криптограммы производится компьютером автоматически с помощью заранее разработанных программ.
1234561Д2К3А4Г5Ч6Ьа)
1234561ОД2ВК3АА4Г5РЧ6УЬб) 1234561ОДА2ВКА3ААК4ГО5РЧЕ6УЬБ1234561СО3ДАЕ2ОВЕКА3XАРАКТ4ТЕГО5ЕРЧЕЛ6СУДЬБУв)
Для повышения криптостойкости методы замены и перестановки нередко используют в сочетании с аддитивным методом.
При шифровании аддитивным методом вначале открытый текст шифруют методом замены, преобразуя каждую букву в число. Затем к каждому числу добавляют секретную гамму (псевдослучайную числовую последовательность). Технически добавление гаммы в криптографических системах осуществляется поразрядно (поточный шифр): на каждый бит открытого текста поочередно накладывается бит секретной гаммы.
Генератор потока ключей - гаммы выдает поток битов: γ1, γ2, γ3,....,γi. Этот поток битов и поток битов открытого текста ρ1, ρ2, ρ3,....,ρi подвергаются поразрядно логической операции Исключающее ИЛИ. В результате получается поток битов шифротекста:
ci = ρi γi
При дешифровании операция Исключающее ИЛИ выполняется над битами шифротекста и тем же самым потоком гаммы:
ρi = ci γi
Благодаря особенностям логической операции Исключающее ИЛИ на приемной стороне операция вычитания заменяется данной логической операцией. Сказанное иллюстрируется примером.
Предположим, что Р = 10011001, a G = 11001110. В результате зашифрованный байт будет иметь вид:
P10011001G11001110С01010111 На приемной стороне будет повторно выполнена логическая операция Исключающее ИЛИ:
С01010111G11001110Р10011001 Из этих таблиц видно, что переданный и принятый байты одинаковые.
В ЭВМ преобразование открытого текста в числа происходит естественным путем, так как каждый символ кодируется двоичным числом. Вид этого преобразования зависит от используемой операционной системы. Для определенности будем считать, что сообщение в ЭВМ кодируется с помощью кодовой таблицы СР-1251. Итак, будем считать, что секретная гамма добавляется к открытому тексту по правилу сложения по модулю два без переносов в старшие разряды (логическая операция Исключающее ИЛИ). Результаты всех преобразований поместим в таблицу
Открытый текстГДЕАББАДесятичное число195196197192193193192Двоичное число11000011110001001100010111000000110000011100000111000000Гамма (десятич.)3218361161233Гамма (двоич.)00100000000100100010010000001011001111010001011100000011Криптогр. (двоич.)11100011110101101110000111001011111111001101011011000011Кринтогр. (десят.)227214225203252214195КриптограммагЦбЛьЦГ Для наглядности результат шифрования (шифрограмма) переведен с помощью таблицы СР-1251 в буквы. Из таблицы видно, что открытый текст был записан прописными буквами, а криптограмма содержит как прописные, так и строчные буквы. Естественно, что при реальном (а не учебном) шифровании набор символов в шифрограмме будет еще богаче. Кроме русских букв будут присутствовать латинские буквы, знаки препинания, управляющие символы. Криптографическая система с открытым ключом
Рассматриваемый метод закрытия информации разработали в 1976 г. американцы Уитфилд Диффи и Мартин Хеллман.
Опишем пример использования такой системы.
Пусть абонент А (например, банкир) и абонент В (например, вкладчик) решили установить между собой секретную передачу информации.
Каждый из абонентов независимо друг от друга выбирает два больших простых числа, находит их произведение, функцию Эйлера от этого произведения и выбирает случайное число, меньшее вычисленного значения функции Эйлера и взаимно простое с ним.
Напомним, что простое число - это целое положительное число, большее единицы, не имеющее других делителей, кроме самого себя и единицы. Взаимно простые числа - целые числа, не имеющие общих (простых) делителей.
Порядок создания ключей проиллюстрируем с помощью таблицы. Для наглядности числа выбраны малой величины. Фактически эти числа имеют около 100 десятичных разрядов
ДействияАбонент А (банкир)Абонент В (вкладчик)1. Выбор двух простых чисел р и qp = 7; q = 13p = 11; q = 232. Вычисление произведения r = p∙qr = 7∙13 = 91r = 11∙23 = 2533. Расчет функции Эйлера φ(r) = r-p-q+1φ(r) = 72φ(r) = 2204. Выбор случайного числа s, взаимно простого с φ(r) из интервала 0 < s < φ(r)s = 5s = 315. Расчет секретного ключа t с помощью соотношения s∙t= 1(modφ>(r))5∙t=1(mod(72))∙t = 2931∙t = 1(mod(220))∙ t= 716. Публикация открытых ключей s, rs = 5, r = 91s = 31, r = 253 Использованная в таблице запись α = β (mod(γ)) означает, что при целочисленном делении числа α на число γ остаток равен β.
Например, 7 = l(mod(3)).
Функция Эйлера - арифметическая функция φ(r), значение которой равно количеству положительных чисел, не превосходящих г и взаимно простых с г.
Предположим, что абонент А решил послать сообщение абоненту В. Вначале методом замены каждый символ сообщения заменяется (шифруется) числом. Допустим, что требуется переслать первую букву открытого сообщения, которая предварительно зашифрована методом замены числом 2.
Абонент А шифрует число 2 открытым (опубликованным) ключом абонента В. Для шифрования передаваемое число 2 возводится в степень 5 = 31, т.е.
т = 231= 2147483648.
Затем находят остаток от деления числа т на величину г = 253, в результате которого получается число 167, то есть:
231 = 167(mod(253)).
Напомним, что числа s и г являются открытым ключом абонента В.
В линию передается число 167, которое является шифром исходного числа 2.
Получив шифрограмму (167), абонент В использует свой секретный ключ t = 71. Для дешифрации он возводит полученное число 167 в степень 71 и находит остаток от деления на число 253. Математически это записывается так:
16771 = 2(mod(253)).
В данном случае остаток от деления равен 2, значит, шифрация и дешифрирование произошли правильно. Было передано число 2, и это же число было принято после всех преобразований.
Предположим, что абонент В решил ответить абоненту А и направить ему букву, зашифрованную числом 3.
Абонент В использует открытый (опубликованный) ключ абонента А (s = 5, г = 91) и выполняет шифрующее преобразование числа 3. Математически это записывается так:
35 = 61(mod(91)).
В линию отправляется число 61. Получив это число, абонент А восстанавливает (дешифрирует) исходный текст с помощью своего секретного ключа t =29:
6129 = 3(mod(91)).
В результате дешифрации на приемной стороне получено число 3, которое отправил абонент В.
Процесс передачи букв между абонентами иллюстрирует следующая таблица.
ПередачаЧисло в линииПриемБукваЧислоШифрование
ДешифрованиеЧислоБукваМ223l =167(mod(253))16716771=2(mod(253))2МL335 = 61(mod(91))616129 ≡ 3(mod(91))3L Первая строка приведенной таблицы поясняет процесс передачи буквы М от абонента А к абоненту В. Вторая строка показывает, как передается буква L от абонента В к абоненту А. В данном случае считается, что буква М кодируется числом 2, а буква L - числом 3.
В приведенных примерах был рассмотрен порядок передачи одного символа с каждой стороны. Понятно, что таким образом последовательно передается целое сообщение, но преобразование над каждым символом происходит по рассмотренной схеме. Заметим, что для использования этого метода необходимо сообщение предварительно преобразовать в набор чисел, например, с помощью кодовой таблицы.
Достоинством шифрования с открытым ключом является исключение необходимости передачи секретного ключа по закрытым каналам связи, например, с помощью курьера.
Однако у этого метода есть существенный недостаток. Используя опубликованный ключ, сообщение может прислать любой абонент, выдавая себя за другого абонента.
В подобных случаях требуется аутентификация - подтверждение авторства присланного документа. Для этих целей разработан способ шифрования, который называется электронной подписью.
Суть этого метода шифрования заключается в том, что сообщение шифруется не только опубликованным открытым ключом, но и собственным секретным ключом абонента, отправляющего сообщение.
Рассмотрим пример.
Предположим, что абонент В (вкладчик) решил послать сообщение, состоящее из числа 41, абоненту А (банкиру). Вначале вкладчик шифрует сообщение открытым ключом банкира:
415 ≡ 6(mod(91)).
В результате шифрования получено число 6.
Дальше вкладчик повторно шифрует это сообщение своим секретным ключом 71:
б71 ≡ 94(mod(253)).
Шифрограмма 94 отправляется банкиру.
Банкир, получив секретное сообщение, использует вначале открытый ключ вкладчика:
9431 = 6(mod(253)).
Затем банкир использует свой секретный ключ:
629 ≡ 41(mod(91)).
В результате абонент А (банкир) получает сообщение, состоящее из числа 41.
При использовании электронной подписи никто другой не сможет прислать банкиру сообщение (например, поручение перевести деньги) от имени абонента В, так как на передаче нужно обязательно использовать секретный ключ вкладчика, который известен только абоненту В.
Цифровая подпись используется не только для заверения текстовых или финансовых документов. Эта же информационная технология применяется для указания авторства разработанной программы. Активные элементы ActiveX, оживляющие Web-страницы, заверяются цифровой подписью. Этим повышается безопасность использования новых программных продуктов (уменьшается вероятность несанкционированной установки троянских программ).
Задания для выполнения работы:
Произвести шифрование сообщения (индивидуальные варианты см. ниже) различными способами:
1. шифром атбаш;
2. шифром Цезаря;
3. шифром многоалфавитной замены;
4. с помощью квадрата Полибия;
5. с помощью системы Плейфейра (любое словосочетание (не менее 10 букв) из индивидуального варианта).
6. Методом Виженера.
7. Методом перестановок.
Зашифрованные сообщения (лабораторная работа №5) оформить в электронном виде (файл с расширением doc, docx, odt, rtf).
Отчет должен содержать:
1. Ф.И.О. студента, 2. № группы, 3. № варианта,
4. исходный текст сообщения
5. зашифрованные сообщения с указанием способа шифрования. Документ отправить по электронной почте на адрес: fedoseevaou@mail.ru не позднее, чем за 3 дня до зачета по данной дисциплине.
ВариантСообщения для шифрования1Стремление к величию выдаёт с головой: кто обладает величием, тот стремится к доброте.2В стадах нет ничего хорошего, даже когда они бегут вслед за тобою.3Только несгибаемый вправе молчать о самом себе, ни один победитель не верит в случайность.4Когда сто человек стоят друг возле друга, каждый теряет свой рассудок и получает какой-то другой.5Он мыслитель: это значит, он умеет воспринимать вещи проще, чем они есть.6В одном метре 10 дециметров, 100 сантиметров, и 1000 миллиметров.7Хороший писатель имеет не только свой собственный ум, но и ум своих друзей.8Сильные струи увлекают за собой много камней и хвороста, сильные умы - много глупых и запутанных голов.9 "Я не верю ни во что теперь" - вот настоящий образ мысли творческого человека.10Ничто не обходится человеку так дорого, как его ложное представление о добре и зле.11 Будь близ источника и с умеренным требованием: тогда легко исполнится твоё желание.12Если даже ты хочешь быть только своим идеалом, тебе придётся принудить к этому весь свет.13Кто хочет найти самого себя, тому придётся долго считать себя потерянным.14Куда я ни подымусь, за мною всюду следует мой пёс, имя которому "я".15Много маленького счастья даёт нам много маленького несчастья и портит этим характер.16Когда мы бываем утомлены, нас атакуют давно побеждённые понятия.17Если хочешь быть беспристрастным судьей, смотри не на обвинителя, а на самое дело.18Заставьте самого беспристрастного судью разбирать свое собственное дело, и посмотрите, как он начнет толковать законы.
он19Судьи должны помнить, что их дело - истолковывать закон, а не даровать его.20Честный человек, садясь в судейское кресло, забывает о личных симпатиях.21Ни один человек не является неблагожелательным судьей по отношению к самому себе.22Не столь уж хороши мы сами, чтоб укорять других грехами.23Кто сознает свою невинность , тот неохотно унижается до оправданий.24Не берись судить других, прежде чем не сочтешь себя в душе достойным занять судейское место.25Золотое правило: судить о человеке не по его мнениям, а по тому, что делают из него эти мнения.26Лучше оправдать десять виновных, нежели обвинить одного невинного.27Презирать суд людей не трудно, презирать суд собственный - невозможно.28Чтобы научить людей любить справедливость, надо показать им результаты справедливости.29Когда справедливость исчезнет, то не останется ничего, что могло бы придать ценность жизни людей.30Чтобы поступать справедливо, нужно знать очень немного, но чтобы с полным основанием творить несправедливость, нужно основательно изучить право.31Существуют два первоначала справедливости: никому не вредить и приносить пользу обществу.32Самая редкая вещь, какую только можно найти на земле, - это по-настоящему справедливый человек.33Разумный наказывает не потому, что был совершен проступок, а для того, чтобы он не совершался впредь.34Клевета со стороны некоторых господ такая же хорошая рекомендация, как похвала со стороны других.35Наряду с законами государственными, есть еще законы совести, восполняющие упущения законодательства.36Тенденции нашей эпохи стремятся к тому, чтобы заместить во всем моральные двигатели материальными.37Утверждать что-либо, не имея возможности доказать это законным путем, означает клеветать.38Угрызения совести есть единственная добродетель, остающаяся у преступников.39Никогда не поступай против совести, даже если этого требуют государственные интересы.
Постановление Правительства РФ от 29 декабря 2007 N 957 "Об утверждении положений о лицензировании отдельных видов деятельности, связанных с шифровальными (криптографическими) средствами"
Указ Президента РФ от 3 апреля 1995 N 334 "О мерах по соблюдению законности в области разработки, производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в области шифрования информации"
п. 5―11 ст. 17 Федерального Закона от 08.08.2001 N 128-ФЗ "О лицензировании отдельных видов деятельности"
1
Документ
Категория
Рефераты
Просмотров
590
Размер файла
1 114 Кб
Теги
лабораторная работа, криптография, лаб, лаба, лабораторная
1/--страниц
Пожаловаться на содержимое документа