Криптография и виды шифрования

Тип работы:
Реферат
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

ЮЖНОГО ФЕДЕРАЛЬНОГО УНИВЕРСИТЕТА В г. ТАГАНРОГЕ

Факультет информационной безопасности

Кафедра БИТ

Реферат на тему

«Криптография и виды шифрования»

ст. гр. И-21

Выполнил: В. И. Мищенко

Проверил: Е. А. Маро

Таганрог — 2012

Содержание

Введение

1. История криптографии

1. 1 Появление шифров

1. 2 Эволюция криптографии

2. Криптоанализ

2.1 Характеристики сообщений

2. 2 Свойства естественного текста

2. 3 Критерии определения естественности

3. Симметричное шифрование

4. Ассиметричное шифрование

Заключение

Список литературы

Введение

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

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

С тех пор как письменность стала широко распространенной, криптография стала становиться вполне самостоятельной наукой. Первые криптографические системы можно встретить уже в начале нашей эпохи. Например, Юлий Цезарь в своей личной переписке пользовался систематическим шифром, который впоследствии был назван его именем.
Серьезное развитие шифровальные системы получили в эпоху первой и второй мировых войн. Начиная с ранней послевоенной поры и по сей момент, появление современных вычислительных аппаратов убыстрило создание и усовершенствование шифровальных методов.
Почему вопрос использования шифровальных методов в вычислительных системах (ВС) стал в наше время особенно актуальным?
Во-первых, расширилась сфера применения компьютерных сетей, таких как World Wide Web, с помощью которых передаются огромные объемы информации госудаpственного, военного, коммерческого и личного характера, не дающего возможности доступа к ней стоpонних лиц.
Во-вторых, появление современных сверхмощных компьютеpов, продвинутых технологий сетевых и нейpонных вычислений делает возможным дискpедитацию шифровальных систем еще вчера считавшихся совершенно безопасными.

1. История криптографии

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

С появлением письменности вопрос обеспечения засекреченности и подлинности транслируемых сообщений стала особенно важным. Вследствие этого именно после изобретения письма возникло искусство криптографии, способ «тайно писать» — набор методик, предназначенных для тайной передачи записанных сообщений от одного посвященного человека другому.

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

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

Возникновение в середине 20 столетия первых компьютеров сильно поменяло ситуацию — практическое шифрование сделало в своем развитии громадный скачок и такой термин как «криптография» значительно ушел от своего изначального значения — «тайнопись», «тайное письмо». В наши дни этот предмет объединяет способы защиты информации абсолютно разнородного характера, основывающиеся на преобразовании данных по тайным алгоритмам, включая алгоритмы, которые используют различные секретные параметры.

1.1 Появление шифров

Некоторые из криптографических систем дошли до нас из дремучей древности. Вероятнее всего они родились одновременно с письменностью в IV тысячелетии до нашей эры. Способы тайной переписки были придуманы независимо во многих древних государствах, таких как Египет, Греция и Япония, но детальный состав криптологии в них сейчас неизвестен. Криптограммы находятся даже в древнее время, хотя из-за применявшейся в древнем мире идеографической письменности в виде стилизованных пиктограмм они были довольно примитивны. Шумеры, судя по всему, пользовались искусством тайнописи.

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

Даже в книгах Библии мы можем найти примеры шифровок, хотя почти никто их не замечает. В книге пророка Иеремии (22,23) мы читаем: «…а царь Сессаха выпьет после них.» Этого царя и такого царства не существовало — неужели ошибка автора? Нет, просто иногда священные иудейские манускрипты шифровались обычной заменой. Вместо первой буквы алфавита писали последнюю, вместо второй — предпоследнюю и так далее. Этот старый способ криптографии называется атбаш. Читая с его помощью слово СЕССАХ, на языке оригинала мы имеем слово ВАВИЛОН, и весь смысл библейского манускрипта может быть понят даже теми, кто не верит слепо в истинность писания.

1.2 Эволюция криптографии

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

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

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

Рождением третьего периода развития шифрования обычно принято считать 1976 год, в котором американские математики Диффи и Хеллман изобрели принципиально новый способ организации шифрованной связи, не требующий предварительного обеспечения абонентов тайными ключами — так называемое кодирование с использованием открытого ключа. В результате этого начали возникать шифровальные системы, основанные на базе способа, изобретенного еще в 40-х годах Шенноном. Он предложил создавать шифр таким образом, чтобы его расшифровка была эквивалентна решению сложной математической задачи, требующей выполнения вычислений, которые превосходили бы возможности современных компьютерных систем. Этот период развития шифрования характеризуется возникновением абсолютно автоматизированных систем кодированной связи, в которых любой пользователь владеет своим персональным паролем для верификации, хранит его, например, на магнитной карте или где-либо еще, и предъявляет при авторизации в системе, а все остальное происходит автоматически.

2. Криптоанализ

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

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

2.1 Характеристики сообщений

Сообщения, насколько бы сложными они ни были, вполне возможно представить себе в виде каком-либо порядке символов. Эти символы нужно взять из заранее фиксированного набора, к примеру, из русского алфавита или из палитры цветов (красный, желтый, зеленый). Различные символы могут встречаться в сообщениях с различной периодичностью. В связи с этим объем информации, транслируемый различными символами может быть разным. В том понимании, которое предложил Шеннон, объем информации определяется усредненным значением чисел возможных вопросов с вариантами ответов ДА и НЕТ для того, чтобы предугадать последующий знак в сообщении. Если символы в тексте расположены в последовательности, не зависящей друг от друга, то усредненное количество информации в таком сообщении приходящееся на один символ, равно:

H= PiLd (Pi)

где Pi — частота проявления знака i, a Ld- двоичный логарифм. Следует отметить три феномена такого распределения информации.

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

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

В каких единицах измеряется значение объема информации по Шеннону? Вернее всего ответ на такой вопрос может дать теорема шифрации, утверждающая, что любое сообщение возможно зашифровать символами 0 и 1 таким образом, что полученный объем информации будет сколь угодно близким сверху к Н. Такая теорема позволяет нам указать и единицу информации — это бит.

2.2 Свойства естественного текста

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

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

При объеме подобных ошибок больше чем одна тысяча в день человек, сидящий за компьютером, устанет и может в дальнейшем проверять фрагменты текста невнимательно. Это означает, что возможно допустить не более одной ошибки подобного рода на 100 000 проверок. В другой крайности, если подойти к проверке невнимательно, то вполне возможно пропустить осмысленный текст и в конце полного перебора его придется снова повторять. Для того, чтобы не рисковать необходимостью повторения всего объема работ, ошибки второго рода, также называемые «пропусками фрагмента», возможно допустить лишь в одном случае из 100 или 1000.

2.3 Критерии определения естественности

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

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

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

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

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

3. Симметричное шифрование

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

В настоящее время симметричные шифры -- это:

Блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект -- нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.

Поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28 147–89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F (D, K), где D -- порция данных, размером вдвое меньше блока шифрования, а K -- «ключ прохода» для данного прохода. От функции не требуется обратимость -- обратная ей функция может быть неизвестна. Достоинства сети Фейстеля -- почти полное совпадение дешифровки с шифрованием (единственное отличие -- обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна -- f (a) xor f (b) == f (a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

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

Рисунок 1. Виды ключей

4. Ассиметричное шифрование

Криптографическая система с открытым ключом (или асимметричное шифрование, асимметричный шифр) -- система шифрования и/или электронной цифровой подписи, при которой открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для проверки ЭЦП и для шифрования сообщения. Для генерации ЭЦП и для расшифровки сообщения используется секретный ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH.

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

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

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

Имя

(имя_пароль)

АЛИСА

РОМАШКА

БОБ

НАРЦИСС

Вход в систему теперь выглядит так:

Имя:

АЛИСА

Пароль:

ГЛАДИОЛУС

Когда Алиса вводит «секретный» пароль, компьютер проверяет, даёт или нет функция, применяемая к ГЛАДИОЛУС, правильный результат РОМАШКА, хранящийся на диске компьютера. Стоит изменить хотя бы одну букву в имени или в пароле, и результат функции будет совершенно другим. «Секретный» пароль не хранится в компьютере ни в каком виде. Файл паролей может быть теперь просмотрен другими пользователями без потери секретности, так как функция практически необратимая.

В предыдущем примере используется односторонняя функция без лазейки, поскольку не требуется по зашифрованному сообщению получить исходное. В следующем примере рассматривается схема с возможностью восстановить исходное сообщение с помощью «лазейки», то есть труднодоступной информации. Для шифрования текста можно взять большой абонентский справочник, состоящий из нескольких толстых томов (по нему очень легко найти номер любого жителя города, но почти невозможно по известному номеру найти абонента). Для каждой буквы из шифруемого сообщения выбирается имя, начинающееся на ту же букву. Таким образом букве ставится в соответствие номер телефона абонента. Отправляемое сообщение, например «КОРОБКА», будет зашифровано следующим образом:

Сообщение

Выбранное имя

Криптотекст

К

Королёв

5 643 452

О

Орехов

3 572 651

Р

Рузаева

4 673 956

O

Осипов

3 517 289

Б

Батурин

7 755 628

К

Кирсанова

1 235 267

А

Арсеньева

8 492 746

Криптотекстом будет являться цепочка номеров, записанных в порядке их в

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

Примеры таких криптотекстов:

Криптотекст 1

Криптотекст 2

Криптотекст 3

1 235 267

5 643 452

1 235 267

3 572 651

3 517 289

3 517 289

4 673 956

4 673 956

4 673 956

3 517 289

3 572 651

3 572 651

7 755 628

7 755 628

7 755 628

5 643 452

1 235 267

5 643 452

8 492 746

8 492 746

8 492 746

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

Схема шифрования с открытым ключом

Пусть -- пространство ключей, а и -- ключи шифрования и расшифрования соответственно. -- функция шифрования для произвольного ключа, такая что:

Здесь, где -- пространство шифротекстов, а, где -- пространство сообщений.

-- функция расшифрования, с помощью которой можно найти исходное сообщение, зная шифротекст:

{: } -- набор шифрования, а {: } -- соответствующий набор для расшифрования. Каждая пара имеет свойство: зная, невозможно решить уравнение, то есть для данного произвольного шифротекста, невозможно найти сообщение. Это значит, что по данному невозможно определить соответствующий ключ расшифрования. является односторонней функцией, а -- лазейкой.

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

Рисунок 2. Ассиметричное шифрование

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

Чтобы послать сообщение Бобу, Алиса применяет функцию шифрования, определённую открытым ключом:, -- полученный шифротекст.

Боб расшифровывает шифротекст, применяя обратное преобразование, однозначно определённое значением.

Научная основа

Начало асимметричным шифрам было положено в работе «Новые направления в современной криптографии» Уитфилда Диффи и Мартина Хеллмана, опубликованной в 1976 году. Находясь под влиянием работы Ральфа Меркле о распространении открытого ключа, они предложили метод получения секретных ключей, используя открытый канал. Этот метод экспоненциального обмена ключей, который стал известен как обмен ключами Диффи -- Хеллмана, был первым опубликованным практичным методом для установления разделения секретного ключа между заверенными пользователями канала. В 2002 году Хеллман предложил называть данный алгоритм «Диффи -- Хеллмана -- Меркле», признавая вклад Меркле в изобретение криптографии с открытым ключом. Эта же схема была разработана Малькольмом Вильямсоном в 1970-х, но держалась в секрете до 1997 года. Метод Меркле по распространению открытого ключа был изобретён в 1974 и опубликован в 1978 году, его также называют загадкой Меркле.

В 1977 году учёными Рональдом Ривестом, Ади Шамиром и Леонардом Адлеманом из Массачусетского технологического института был разработан алгоритм шифрования, основанный на проблеме о разложении на множители. Система была названа по первым буквам их фамилий (RSA -- Rivest, Shamir, Adleman). Эта же система была изобретена в 1973 году Клиффордом Коксом, работавшим в центре правительственной связи (GCHQ), но эта работа хранилась лишь во внутренних документах центра, поэтому о её существовании было не известно до 1977 года. RSA стал первым алгоритмом, пригодным и для шифрования, и для цифровой подписи.

Вообще, в основу известных асимметричных криптосистем кладётся одна из сложных математических проблем, которая позволяет строить односторонние функции и функции-лазейки. Например, криптосистемы Меркля -- Хеллмана и Хора -- Ривеста опираются на так называемую задачу об укладке рюкзака.

Основные принципы построения криптосистем с открытым ключом

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

Можно выделить легкую подзадачу из. Она должна решаться за полиномиальное время и лучше, если за линейное.

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

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

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

Криптография с несколькими открытыми ключами

В следующем примере показана схема, в которой Алиса шифрует сообщение так, что только Боб может прочитать его, и наоборот, Боб шифрует сообщение так, что только Алиса может расшифровать его.

Пусть есть 3 ключа, ,, распределенные так, как показано в таблице.

криптография шифрование ключ симметричный

Лицо

Ключ

Алиса

Боб

Кэрол

Дэйв

,

Эллен

,

Франк

,

Тогда Алиса может зашифровать сообщение ключом, а Эллен расшифровать ключами, , Кэрол -- зашифровать ключом, а Дэйв расшифровать ключами ,. Если Дэйв зашифрует сообщение ключом, то сообщение сможет прочитать Эллен, если ключом, то его сможет прочитать Франк, если же обоими ключами и, то сообщение прочитает Кэрол. По аналогии действуют и другие участники. Таким образом, если используется одно подмножество ключей для шифрования, то для расшифрования требуются оставшиеся ключи множества. Такую схему можно использовать для n ключей.

Шифруется ключом

Расшифровывается ключом

и

и

и

,

,

,

Теперь можно посылать сообщения группам агентов, не зная заранее состав группы.

Рассмотрим для начала множество, состоящее из трех агентов: Алисы, Боба и Кэрол. Алисе выдаются ключи и, Бобу -- и, Кэрол -- и. Теперь, если отправляемое сообщение зашифровано ключом, то его сможет прочитать только Алиса, последовательно применяя ключи и. Если нужно отправить сообщение Бобу, сообщение шифруется ключом, Кэрол -- ключом. Если нужно отправить сообщение и Алисе и Кэрол, то для шифрования используются ключи и.

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

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

Криптоанализ алгоритмов с открытым ключом

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

Рисунок 3. Криптосистема с открытым ключом и активным перехватчиком

В этой модели Ева перехватывает открытый ключ, посланный Бобом Алисе. Затем создает пару ключей и, «маскируется» под Боба, посылая Алисе открытый ключ, который, как думает Алиса, открытый ключ, посланный ей Бобом. Ева перехватывает зашифрованные сообщения от Алисы к Бобу, расшифровывает их с помощью секретного ключа, заново зашифровывает открытым ключом Боба и отправляет сообщение Бобу. Таким образом, никто из участников не догадывается, что есть третье лицо, которое может как просто перехватить сообщение, так и подменить его на ложное сообщение. Это подчеркивает необходимость аутентификации открытых ключей. Для этого обычно используют сертификаты. Распределённое управление ключами в PGP решает возникшую проблему с помощью поручителей.

Ещё одна форма атаки -- вычисление закрытого ключа, зная открытый (рисунок ниже). Криптоаналитик знает алгоритм шифрования, анализируя его, пытается найти. Этот процесс упрощается, если криптоаналитик перехватил несколько криптотекстов, посланных лицом A лицу B.

Рисунок 4. Ассиметричная криптосистема с пассивным перехватчиком.

Большинство криптосистем с открытым ключом основаны на проблеме факторизации больших чисел. К примеру, RSA использует в качестве открытого ключа n произведение двух больших чисел. Сложность взлома такого алгоритма состоит в трудности разложения числа n на множители. Но эту задачу решить реально. И с каждым годом процесс разложения становится все быстрее. Ниже приведены данные разложения на множители с помощью алгоритма «Квадратичное решето».

Год

Число десятичных разрядов
в разложенном числе

Во сколько раз сложнее разложить
на множители 512-битовое число

1983

71

> 20 млн

1985

80

> 2 млн

1988

90

250 тыс.

1989

100

30 тыс.

1993

120

500

1994

129

100

Также задачу разложения потенциально можно решить с помощью Алгоритма Шора при использовании достаточно мощного квантового компьютера.

Для многих методов несимметричного шифрования криптостойкость, полученная в результате криптоанализа, существенно отличается от величин, заявляемых разработчиками алгоритмов на основании теоретических оценок. Поэтому во многих странах вопрос применения алгоритмов шифрования данных находится в поле законодательного регулирования. В частности, в России к использованию в государственных и коммерческих организациях разрешены только те программные средства шифрования данных, которые прошли государственную сертификацию в административных органах, в частности, в ФСБ.

Заключение

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

Список литературы

Гатчин Ю.А., Коробейников А. Г. Основы криптографических алгоритмов. Учебное пособие. — СПб.: СПбГИТМО (ТУ), 2002.

Кон П. Универсальная алгебра. — М.: Мир. — 1968

Коробейников А. Г. Математические основы криптографии. Учебное пособие. СПб: СПб ГИТМО (ТУ), 2002.

Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. -- М.: Триумф, 2002.

www.

ПоказатьСвернуть
Заполнить форму текущей работой