Криптоанализ асимметричных шифров
Понятие криптосистемы с открытым ключом. Основные криптосистемы с открытым ключом и их особенности. Криптоанализ систем шифрования, основанных на сложности задачи дискретного логарифмирования. Метод экспоненциального ключевого обмена Диффи-Хеллмана.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.09.2017 |
Размер файла | 264,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство железнодорожного транспорта
Российской Федерации
Уральский государственный университет путей сообщения
Кафедра «Высшая и прикладная математика»
КУРСОВАЯ РАБОТА
по теме: «Криптоанализ асимметричных шифров»
Выполнил
студент гр. ИТ-211
Бураков А.А.
Проверил:
профессор Титов С. С.
Екатеринбург - 2012
Содержание
Содержание
Введение
Глава 1. Криптосистемы с открытым ключом
1.1 Понятие криптосистемы с открытым ключом
1.2 Основные криптосистемы с открытым ключом и их особенности
Глава 2. Методы криптоанализа асимметричных криптосистем
2.1 Криптоанализ систем шифрования, основанных на сложности задачи дискретного логарифмирования
2.2 Криптоанализ систем шифрования, основанных на сложности задачи факторизации
Практика
1) Метод экспоненциального ключевого обмена Диффи-Хеллмана
2) Алгоритм Эль-Гамаля
3) Алгоритм RSA
Заключение
Список литературы
Введение
1976 год считается годом рождения несимметричной криптографии. В этом году американскими математиками Вайтфилдом Диффи, Мартином Хеллманом и Ральфом Меркле была представлена идеология криптосистемы с открытым ключом
Кардинальное отличие криптосистемы с открытым ключом (по другой терминологии, несимметричной системы) от симметричной системы состоит в том, что в криптосистемах с открытым ключом процедура зашифровывания становится общедоступной. Это, однако, не означает как в традиционных системах шифрования, что общедоступной является и процедура расшифровывания. Понятие ключа разбивается на две части (включает теперь два понятия): ключ открытый, и ключ секретный. Общедоступный открытый ключ используется для зашифровывания, но расшифровывание может осуществить только тот, кто владеет секретным ключом.
Именно как раз в допущении того, что нахождение ключа расшифровывания по известному ключу зашифровывания может быть сложно-вычислимой задачей, и заключается идея, которая определила дальнейшее направление развития криптографии.
Но наравне с криптографией шло развитие и криптоанализа - другого противоположного раздела криптологии, предметом которого является разработка методов взлома новых криптографических алгоритмов с целью выявления их надежности. Результатом возникновения каждого нового метода криптоанализа является пересмотр оценок безопасности шифров, что в свою очередь, влечет необходимость создания более стойких шифров.
Целью курсовой работы является анализ надежности алгоритмов ассиметричных методов шифрования.
Первая глава работы будет посвящена описанию существующих алгоритмов и их особенностей.
Во второй главе будут описаны методы криптоанализа, основанные на особенностях систем шифрования с открытым ключом.
Глава 1. Криптосистемы с открытым ключом
1.1 Понятие криптосистемы с открытым ключом
криптосистема ключ дискретный шифрование
Криптографическая система с открытым ключом - система шифрования, при которой открытый ключ передаётся по открытому каналу связи, и используется для шифрования сообщения, а для расшифрования сообщения используется секретный ключ.
Идея криптографии с открытым ключом очень тесно связана с идеей односторонних функций, то есть таких функций f(x), что по известному x довольно просто найти значение f(x), тогда как определение x из f(x) сложно в смысле теории.
Но сама односторонняя функция бесполезна в применении: ею можно зашифровать сообщение, но расшифровать нельзя. Поэтому криптография с открытым ключом использует односторонние функции с лазейкой. Лазейка -- это некий секрет, который помогает расшифровать. То есть существует такой y, что зная f(x), можно вычислить x. К примеру, если разобрать часы на множество составных частей, то очень сложно собрать вновь работающие часы. Но если есть инструкция по сборке (лазейка), то можно легко решить эту проблему.
Алгоритмы шифрования с открытым ключом разрабатывались для того, чтобы решить две наиболее трудные задачи, возникшие при использовании симметричного шифрования.
Первой задачей является распределение ключа. При симметричном шифровании требуется, чтобы обе стороны уже имели общий ключ, который каким-то образом должен быть им заранее передан.
Второй задачей является необходимость создания таких механизмов, при использовании которых невозможно было бы подменить кого-либо из участников, т.е. нужна цифровая подпись. При использовании коммуникаций для решения широкого круга задач, например в коммерческих и частных целях, электронные сообщения и документы должны иметь эквивалент подписи, содержащейся в бумажных документах. Необходимо создать метод, при использовании которого все участники будут убеждены, что электронное сообщение было послано конкретным участником. Это более сильное требование, чем аутентификация.
Рассмотрим требования, сформулированные Диффи и Хеллманом, которым должен удовлетворять алгоритм шифрования с открытым ключом.
§ Вычислительно легко создавать пару (открытый ключ, закрытый ключ);
§ Вычислительно легко, имея открытый ключ и незашифрованное сообщение , создать соответствующее зашифрованное сообщение;
§ Вычислительно легко дешифровать сообщение, используя закрытый ключ;
§ Вычислительно невозможно, зная открытый ключ, определить закрытый ключ;
§ Вычислительно невозможно, зная открытый ключ и зашифрованное сообщение, восстановить исходное сообщение;
§ Шифрующие и дешифрующие функции могут применяться в любом порядке (это требование не выполняется для всех алгоритмов с открытым ключом)
Основными способами использования алгоритмов с открытым ключом являются шифрование/дешифрование, создание и проверка подписи.
Шифрование с открытым ключом состоит из следующих шагов (рис. 1):
Рисунок 1. Схема шифрования с открытым ключом
1. Пользователь В создает пару ключей KUb и KRb, используемых для шифрования и дешифрования передаваемых сообщений;
2. Пользователь В делает доступным некоторым надежным способом свой ключ шифрования, т.е. открытый ключ KUb. Составляющий пару закрытый ключ KRb держится в секрете;
3. Если А хочет послать сообщение В, он шифрует сообщение, используя открытый ключ В KUb;
4. Когда В получает сообщение, он дешифрует его, используя свой закрытый ключ KRb. Никто другой не сможет дешифровать сообщение, так как этот закрытый ключ знает только В.
Если пользователь (конечная система) надежно хранит свой закрытый ключ, никто не сможет подсмотреть передаваемые сообщения.
Создание и проверка подписи состоит из следующих шагов (рис. 2):
Рисунок 2. Создание и проверка подписи
1. Пользователь А создает пару ключей KRA и KUA, используемых для создания и проверки подписи передаваемых сообщений;
2. Пользователь А делает доступным некоторым надежным способом свой ключ проверки, т.е. открытый ключ KUA. Составляющий пару закрытый ключ KRA держится в секрете;
3. Если А хочет послать подписанное сообщение В, он создает подпись EKRa[M] для этого сообщения, используя свой закрытый ключ KRA;
4. Когда В получает подписанное сообщение, он проверяет подпись DKUa[M], используя открытый ключ А KUA. Никто другой не может подписать сообщение, так как этот закрытый ключ знает только А.
До тех пор, пока пользователь или прикладная система надежно хранит свой закрытый ключ, их подписи достоверны. Кроме того, невозможно изменить сообщение, не имея доступа к закрытому ключу А; тем самым обеспечивается аутентификация и целостность данных.
В этой схеме все сообщение подписывается, причем для подтверждения целостности сообщения требуется много памяти. Каждое сообщение должно храниться в незашифрованном виде для использования в практических целях. Кроме того, копия сообщения также должна храниться в зашифрованном виде, чтобы можно было проверить в случае необходимости подпись. Более эффективным способом является шифрование небольшого блока битов, который является функцией от сообщения. Такой блок, называемый аутентификатором, должен обладать свойством невозможности изменения сообщения без изменения аутентификатора. Если аутентификатор зашифрован закрытым ключом отправителя, он является цифровой подписью, с помощью которой можно проверить исходное сообщение. Далее эта технология будет рассматриваться в деталях.
Важно подчеркнуть, что описанный процесс создания подписи не обеспечивает конфиденциальность. Это означает, что сообщение, посланное таким способом, невозможно изменить, но можно подсмотреть. Это очевидно в том случае, если подпись основана на аутентификаторе, так как само сообщение передается в явном виде. Но даже если осуществляется шифрование всего сообщения, конфиденциальность не обеспечивается, так как любой может расшифровать сообщение, используя открытый ключ отправителя.
В следующем разделе рассмотрим наиболее популярные на сегодняшний день алгоритмы и их особенности.
1.2 Основные криптосистемы с открытым ключом и их особенности
Первой системой с открытым ключом стал метод экспоненциального ключевого обмена Диффи - Хеллмана, разработанный в 1976 году. Метод предназначен для передачи секретного ключа симметричного шифрования. В обмене задействованы два участника А и Б (рис.3). Сначала они выбирают большие простые числа n и g<n (эти числа секретными не являются). Затем участник A выбирает большое целое число х, вычисляет Х=gx mod n и передает Х участнику Б. Б в свою очередь выбирает большое целое число y, вычисляет Y=gy mod n и передает Y участнику А. Б вычисляет K'=Xy mod n, А вычисляет K''=Yx mod n. Легко заметить, что K'=K''=gxy mod n, и это значение оба участника могут использовать в качестве ключа симметричного шифрования.
Размещено на http://www.allbest.ru/
Криптостойкость этого метода определяется трудоемкостью вычисления дискретного логарифма в конечном поле. Действительно, злоумышленник может узнать такие параметры алгоритма, как n, g, X, Y, но вычислить по ним значения x или y - задача, требующая очень больших вычислительных мощностей и времени (последнее утверждение верно при использовании сверхбольших чисел, размером более 768 бит). Метод легко можно обобщить на случай ключевого обмена для большего количества участников.
Размещено на http://www.allbest.ru/
Алгоритм Эль-Гамаля - асимметричный алгоритм шифрования, основанный на проблеме дискретного логарифмирования, разработан в 1985 г. Последовательность действий при генерации ключей, шифровании и дешифрации представлена на рис. 4.
Необходимо пояснить процедуру дешифрования. Так как axgkx mod p, то имеем:
Таким образом, кодируемое сообщение М разбивается на части, каждая из которых m интерпретируется как число в диапазоне [0 .. p-1], и выполняется операция шифрования согласно схеме на рис.4. На практике при использовании данного алгоритма рекомендуется выбирать ключи размером 768, 1024 и 1536 бит.
Алгоритм RSA был разработан в 1978 году. Алгоритм назван в честь авторов (Rivest, Shamir, Adleman). В основу криптостойкости RSA положена задача факторизации (разложения на множители) больших целых чисел.
Размещено на http://www.allbest.ru/
Процедуры генерации ключей, шифрования и дешифрования для этого алгоритма представлены на рис. 5.
На этапе генерации ключей формируется пара ключей: закрытый d и открытый e. Шифрование данных должно начинаться с его разбиения на блоки L размером k=[log2 (n)] бит каждый, чтобы блок L можно было рассматривать как целое число в диапазоне [0.. n-1].
Основная задача криптоаналитика при взломе этого шифра - узнать закрытый ключ d. Для этого он должен выполнить те же действия, что и получатель при генерации ключа - решить в целых числах уравнение ed + y (p-1)(q-1) =1 относительно d и y. Однако, если получателю известны входящие в уравнение параметры p и q, то криптоаналитик знает только число n - произведение p и q. Следовательно, ему необходимо произвести факторизацию числа n, то есть разложить его на множители. Для решения задачи факторизации к настоящему времени разработано множество алгоритмов, наиболее известными из них являются метод квадратичного решета и метод эллиптических кривых. Но для чисел большой размерности (около 1024 бит и более) это очень трудоемкая задача.
DSA (Digital Signature Algorithm) - алгоритм цифровой подписи, принятый в 1994 году в качестве стандарта США на ЭЦП и действовавший до 2001 г., представляет собой один из вариантов схемы Эль-Гамаля.
Национальный институт стандартов и технологии NIST, вместе с АНБ, разработал алгоритм SHA (Secure Hash Algorithm - алгоритм стойкого хеширования), требуемый для обеспечения стойкости алгоритма цифровой подписи DSA. По предположениям Microsoft, алгоритм SHA-2, предусматривающий генерацию хеш-значений длиной 256, 384 и 512 разрядов, еще на протяжение нескольких лет будет оставаться стойким, но в конечном счете будет заменен.
Ряд успешных атак на системы, основанные на сложности дискретного логарифмирования в конечных полях, привел к тому, что стандарты ЭЦП России и США в 2001 году были обновлены: переведены на эллиптические кривые. Алгоритмы ЭЦП при этом не изменились, однако вместо элементов конечного поля они оперируют эллиптическими числами, т.е. решениями уравнения эллиптических кривых над указанными конечными полями, а роль операции возведения в степень в конечном поле выполняет операция взятия кратной точки эллиптической кривой.
Специальный выбор типа эллиптической кривой позволяет не только во много раз усложнить задачу взлома схемы ЭЦП, но и уменьшить рабочий размер блоков данных. Старый российский стандарт ЭЦП оперирует 1024-битовыми блоками, а новый, основанный на эллиптических кривых, -- 256-битовыми, и при этом обладает большей стойкостью.
EC-DSA (Elliptic Curve Digital Signature Algorithm) - это классический алгоритм DSA, «переведенный» на эллиптические кривые. Стандарт FIPS 186-2 предусматривает 256- и 284-битный рабочий размер блоков данных, но Microsoft также поддерживает 521-разрядные ключи.
Как известно, далеко не все присутствующие на рынке криптографические средства обеспечивают обещанный уровень защиты. Системы и средства защиты информации (СЗИ) характеризуются тем, что для них не существует простых и однозначных тестов, позволяющих убедиться в надежной защите информации. Например, чтобы проверить работоспособность системы связи, достаточно провести ее испытания. Тем не менее, успешное завершение этих испытаний не дает возможность сделать вывод, что встроенная подсистема защиты информации тоже является работоспособной. Часто задача определения эффективности СЗИ при использовании криптографических методов защиты оказывается даже более трудоемкой, чем разработка СЗИ, т.к. требует наличия специальных знаний и более высокой квалификации, чем задача разработки. Как правило, анализ нового криптографического алгоритма является новой научной, а не инженерной задачей.
Повышение производительности вычислительной техники и появление новых видов атак на шифры ведет к понижению стойкости известных криптографических алгоритмов. Для уменьшения возможного ущерба, вызванного несвоевременной заменой потерявшего свою стойкость криптоалгоритма, необходима периодическая перепроверка стойкости криптоалгоритмов, которая включает в себя как разработку новых методов криптоанализа, так и повышение эффективности существующих методов.
То обстоятельство, что любую задачу отыскания способа раскрытия некоторой конкретной криптосистемы можно переформулировать как привлекательную математическую задачу, при решении которой удается использовать многие методы той же теории сложности, теории чисел и алгебры, привело к раскрытию многих криптосистем.
Практически все используемые алгоритмы асимметричной криптографии основаны задачах факторизации и дискретного логарифмирования в различных алгебраических структурах.
Глава 2. Методы криптоанализа асимметричных криптосистем
2.1 Криптоанализ систем шифрования, основанных на сложности задачи дискретного логарифмирования
Задача дискретного логарифмирования считается более сложной, чем задача факторизации. Если будет найден полиномиальный алгоритм ее решения, станет возможным и разложение на множители (обратное не доказано).
Последние достижения теории вычислительной сложности показали, что общая проблема логарифмирования в конечных полях не может считаться достаточно прочным фундаментом. Наиболее эффективные на сегодняшний день алгоритмы дискретного логарифмирования имеют уже не экспоненциальную, а субэкспоненциальную временную сложность. Это алгоритмы “index-calculus”, использующие факторную базу.
Первый такой алгоритм был предложен Адлеманом и имеет временную сложность при вычислении дискретного логарифма в простом поле (, где ).
На практике алгоритм оказался недостаточно эффективным. Копперсмит, Одлыжко и Шреппель предложили алгоритм дискретного логарифмирования COS с эвристической оценкой сложности операций.
Алгоритм решета числового поля, предложенный Широкауэром, при работает эффективнее различных модификаций метода COS; его временная сложность составляет порядка арифметических операций.
Пусть G - мультипликативная абелева группа. Вычислить дискретный логарифм b по основанию а в группе G означает найти , при котором. Свойства дискретного логарифма во многом схожи со свойствами обычного логарифма в поле действительных чисел.
Например, выполняется тождество:
,
где - порядок группы, а - образующая.
Основная идея методов “index-calculus” заключается в том, что если
для некоторых элементов конечного поля , то
(1)
Получив достаточно много соотношений (1) (причем хотя бы одно из них должно включать элемент g, для которого известен), можно решить систему линейных уравнений относительно неизвестных и в кольце вычетов при условии, что количество неизвестных в уравнениях не слишком велико.
Самый простой подход к генерации соотношений вида (1) - выбрать произвольный элемент , вычислить и с помощью перебора попытаться найти числа, удовлетворяющие соотношению:
,
где - простые числа, такие, что < В для некоторой границы В . Если удалось найти такие числа, то u является гладким элементом с границей гладкости В.
Выделяются два основных этапа в работе алгоритмов: на первой, подготовительной стадии, формируется факторная база и на ее основе генерируется система линейных уравнений в кольце ; вид факторной базы (множество простых чисел, неприводимых многочленов или других объектов) и способы получения матрицы системы зависят от выбранного алгоритма.
На второй стадии (которая является общей для рассматриваемых алгоритмов) требуется получить решение этой системы. Интенсивные предварительные вычисления для каждого поля достаточно выполнить только один раз. Затем можно быстро вычислять различные дискретные логарифмы. Таким образом, все субэкспоненциальные методы дискретного логарифмирования в конечных полях сводятся к этой задаче решения систем линейных уравнений в кольцах вычетов.
Алгоритмов, осуществляющих дискретной логарифмирование на эллиптических кривых в общем случае хотя бы с субэкспоненциальной сложностью, на сегодняшний день не существует. Тем не менее, известны работы И.А. Семаева, в одной из которых рассматривается метод, идейно близкий методам логарифмирования в конечном поле Адлемана. В другой работе для эллиптических кривых специального вида (накладываются некоторые условия на модуль арифметики и на мощность группы точек) И.А. Семаев указал способ сведения с полиномиальной сложностью задачи логарифмирования в группе точек эллиптической кривой к задаче логарифмирования в некотором расширении простого поля. При этом используется так называемое спаривания Вейля, после чего можно применять известные субэкспоненциальные методы. Аналогичные результаты опубликованы за рубежом.
2.2 Криптоанализ систем шифрования, основанных на сложности задачи факторизации
Поиском эффективных способов разложения целых чисел на множители занимаются очень давно. Наиболее очевидный метод разложения числа n на множители - перебор простых делителей не превышающих .
Существует также другой переборный метод (метод Ферма), который основан на представлении числа n в виде разности квадратов:
Ферма предложил, вычисляя , попытаться найти нетривиальный делитель n. Он предложил способ, позволяющий найти требуемое представление. Если разлагаемое число имеет два не очень различающиеся по величине множителя, этот способ позволяет определить их быстрее, чем простой перебор делителей. Лежандр обратил внимание на то, что при таком подходе достаточно получить сравнение:
(2)
Не каждая пара чисел, удовлетворяющая ему, позволяет разложить n на множители. Для нахождения чисел, связанных соотношением (2), Лежандр использовал непрерывные дроби. В его работе описано некоторое усовершенствование метода Ферма.
По сложности как простой переборный метод, так и метод Ферма оцениваются величиной , однако последний метод может оказаться эффективнее, если делители числа n близки друг к другу.
Для достаточно больших чисел n время работы таких алгоритмов становится неприемлемым. Прежде чем приступать к факторизации таких чисел, следует убедиться в том, что они действительно составные. Для этого лучше всего использовать один из вероятностных тестов на простоту, например, алгоритм Миллера--Рабина.
Методов факторизации с экспоненциальной сложностью для больших чисел используются в сочетании с субэкспоненциальными методами факторизации, которые будут описаны далее, и применяются, как правило, для предварительного отделения небольших простых делителей у факторизуемого числа.
Существуют и более эффективные методы разложения чисел на множители - это методы, имеющие субэкспоненциальную оценку сложности. Так, вероятностный алгоритм Ленстры для факторизации целых чисел с помощью эллиптических кривых имеет среднюю оценку временной сложности , где р - минимальный простой делитель n. При замене p на получаем субэкспоненциальную оценку сложности . Этот метод может быть эффективно использован для отделения небольших простых делителей. Преимуществом также является использование небольшого объема памяти.
Рассмотрим еще один субъкспоненциальный алгоритм факторизации - метод Диксона. Пусть - число, которое мы хотим разложить на множители, - некоторая постоянная, значение которой будет определено ниже. Факторной базой будем называть множество простых чисел таких, что (где ). Обозначим символом k количество простых чисел в факторной базе, а Q(m)-
наименьший неотрицательный вычет в классе .
Случайным перебором ищем числа такие, что:
.
являются гладкими числами, т.к. могут быть представлены в виде произведения небольших простых чисел.
Обозначим - векторы показателей в разложении на множители ( - векторное пространство столбцов длины с координатами из ).
Решая систему линейных уравнений в векторном пространстве (k-мерное булево пространство), находим значения , не все из которых равны нулю (такое решение существует, поскольку число уравнений k меньше числа неизвестных).
Для вычисленных значений справедливо соотношение:
Обозначим , (числа - целые определению .). Получаем соотношение. Далее проверяем условие . В случае успеха мы разложили n на множители (вероятность успеха не меньше Ѕ). В случае неудачи возвращаемся в начало алгоритма и ищем другие значения .
При выборе границы факторной базы равной временная сложность оценивается как .Существует несколько стратегий, позволяющих повысить эффективность алгоритма Диксона:
§ Стратегия LP (использование больших простых чисел)
§ Стратегия PS (применение алгоритма Полларда--Штрассена)
§ Стратегия EAS (стратегия раннего обрыва)
В алгоритме Бриллхарта-Моррисона случайный выбор m из алгоритма Диксона заменяется на детерминированное определение очередного значения m, для которого мы ищем разложение на простые множители из факторной базы. Этот выбор m делается с помощью непрерывных дробей для числа . Данный метод факторизации был наиболее популярным до появления в 1981 г. алгоритма квадратичного решета Померанца. Покажем его основную идею.
В качестве факторной базы выберем ограниченные по величине некоторым параметром простые числа , такие что , где - так называемый символ Якоби. Обозначим буквой s количество таких чисел.
Обозначим , где . При малых целых значениях t величина Q(t) будет сравнительно невелика. На следующем шаге, вместо того чтобы перебирать числа t и раскладывать соответствующие значения Q(t) на множители, алгоритм сразу же отсеивает «ненужные» значения t, оставляя только те, для которых Q(t) имеет делители среди элементов базы факторной базы:
т.е. Q(t) раскладывается в факторной базе. Тогда, обозначая B = H(t), получаем сравнение , и, накопив достаточно много таких соотношений, проводим исключение переменных и строим соотношение так же, как в алгоритме Диксона.
Эвристическая оценка сложности усовершенствованного алгоритма квадратичного решета составляет арифметических операций. Рекордное значение для факторизованных этим методом чисел составляет 129-значное RSA-число n. Метод квадратичного решета следует применять для факторизации, если число n не превосходит 10110. Для чисел большей величины следует использовать алгоритмы решета числового поля. Решето числового поля по сути не является алгоритмом: это метод вычисления, состоящий из нескольких этапов, и каждый из этих этапов обслуживается несколькими алгоритмами. Описание этого метода слишком объемно, чтобы уместиться в рамках данной курсовой работы. На сегодняшний день алгоритмы решета числового поля и квадратичное решето Померанца - самые быстрые из известных алгоритмов факторизации больших чисел.
Практика
1) Метод экспоненциального ключевого обмена Диффи - Хеллмана
s = секретный ключ. s = 2
g = открытое простое число. g = 5
p = открытое простое число. p = 23
a = секретный ключ Алисы. a = 6
A = открытый ключ Алисы. A = ga mod p = 8
b = секретный ключ Боба. b = 15
B = открытый ключ Боба. B = gb mod p = 19
Алиса знает
p = 23
g = 5
a = 6
A = 56 mod 23 = 8
B = 5b mod 23 = 19
s = 196 mod 23 = 2
s = 8b mod 23 = 2
s = 196 mod 23 = 8b mod 23
s = 2
Алиса не знает
b=?
Боб знает
p = 23
g = 5
b = 15
B = 515 mod 23 = 19
A = 5a mod 23 = 8
s = 815 mod 23 = 2
s = 19a mod 23 = 2
s = 815 mod 23 = 19a mod 23
s = 2
Боб не знает
а=?
Ева знает
p = 23
g = 5
A = 5a mod 23 = 8
B = 5b mod 23 = 19
s = 19a mod 23
s = 8b mod 23
s = 19a mod 23 = 8b mod 23
Ева не знает
а=?
b=?
s=?
2) Алгоритм Эль-Гамаля
1. Шифрование
a. Допустим что нужно зашифровать сообщение .
b. Произведем генерацию ключей :
i. пусть . Выберем - случайное целое число такое,что .
ii. Вычислим .
iii. Итак , открытым является тройка ,а закрытым ключом является число .
c. Выбираем случайное целое число такое, что 1 < k < (p ? 1). Пусть .
d. Вычисляем число .
e. Вычисляем число .
f. Полученная пара является шифротекстом.
2. Расшифрование
a. Необходимо получить сообщение по известному шифротексту и закрытому ключу .
b. Вычисляем M по формуле:
c. Получили исходное сообщение .
3) Алгоритм RSA
1) Рассматиравать будем на примере слова БЛОГИ, но начнем сначала, а именно с создания пары ключей.
1. p=3 q=11
2. N=33
3. F(p,q)=20
4. D=3
5. 7*3 mod 20 =1, e=7
Шифруем слово
2) Получаем цифровой эквивалент слова БЛОГИ я решил получить его с помошью вычисления их порядковых номеров в алфавите Цифровой эквивалент = 2(Б) 13(Л) 16(О) 4(Г) 10(И).
Шифрование производится по формуле yi=xie mod N, где xi цифровой эквивалент букве, остальные значения получены выше.
y1=27 mod 33=128 mod 33= 29
y2=137 mod 33=62748517 mod 33= 7
y3=167 mod 33=268435456 mod 33= 25
y4=47 mod 33=16384 mod 33= 16
y5=107 mod 33=10000000 mod 33= 10
И так мы получили зашифрованое сообщение чтож теперь нам предстоит его расшифровать это не столь сложная задача когда мы знаем закрытый ключ ;)
Дешифрация
3) Расшифрование производится по формуле xi=yid mod N
После небольших мучений с калькулятором мы получаем:
x1=293 mod 33=24389 mod 33= 2
x2=73 mod 33=343 mod 33= 13
x3=253 mod 33=15625 mod 33= 16
x4=163 mod 33=4096 mod 33= 4
x5=103 mod 33=1000 mod 33= 10
Как видно если сравнить xi c порядковыми номерами букв мы получим слово БЛОГИ.
Заключение
Чтобы снизить вероятность непредсказуемого “обвала” вновь разработанного криптоалгоритма, необходимо заблаговременное проведение криптографических исследований. Разработка любого шифра предусматривает оценку его стойкости к достаточно разнообразным типам криптоаналитических нападений. Как относиться к заявляемым оценкам стойкости с учетом того, что их получение обычно является довольно сложной задачей? Это зависит от того, кто дает оценку. Стойкость шифра рассматривается как разработчиком, так и критиком (криптоаналитиком). Оценки разработчика шифра можно считать корректными, если он делает некоторые допущения в пользу криптоаналитика. Оценки разработчика будут опровергнуты, если кто-либо укажет другой способ криптоанализа, для которого вычислительная сложность получается меньше заявляемой.
Оценки критика являются корректными, если он не занижает значение стойкости по предлагаемому им лучшему методу криптоанализа. Оценки критика будут опровергнуты, если кто-либо найдет и укажет принятые криптоаналитиком существенные допущения, учет которых приводит к значительному увеличению сложности предлагаемого криптоаналитического нападения. Таким образом, если криптоаналитик предлагает корректный вариант атаки, который вычислительно реализуем по оценкам, то практическая проверка должна быть положительной.
В обоих случаях риск того, что оценки будут скомпрометированы, тем меньше, чем больше специалистов анализировали алгоритм, чем выше их квалификация и чем больше времени они уделили анализу. Поэтому открытая публикация криптоалгоритмов, их исследование и публичное обсуждение являются необходимыми.
Для уменьшения возможного ущерба, вызванного несвоевременной заменой криптоалгоритма, потерявшего свою стойкость, желательна периодическая перепроверка стойкости криптоалгоритма. То обстоятельство, что любую задачу отыскания способа раскрытия некоторой конкретной криптосистемы можно переформулировать как привлекательную математическую задачу, при решении которой удается использовать многие методы той же теории сложности, теории чисел и алгебры, привело к раскрытию многих криптосистем. С развитием математики и средств вычислительной техники стойкость криптоалгоритма может только уменьшаться. Если влияние роста мощности компьютеров на стойкость алгоритмов еще можно предсказать с той или иной степенью точности (до настоящего момента каждое десятилетие скорость вычислений вырастала на порядок), то оценить перспективы научного прогресса не под силу даже ученым-криптографам с мировым именем. Так, в 1977 году Рон Ривест заявил, что разложение на множители 125-разрядного числа потребует 40 квадриллионов лет. Однако уже в 1994 г. было факторизовано число, состоящее из 129 двоичных разрядов!
В курсовой работе был сделан обзор основных криптосистем, основанных на использовании открытого ключа, и приведены методы криптоанализа, основанные на сложности задач дискретного логарифмирования и факторизации.
Список литературы
1. Завгородний В.И. - Комплексная защита информации в компьютерных системах. - М.: «Логос», 2003;
2. Савельева А.А. - Исследование эффективности алгоритмов дискретного логарифмирования, использующих факторную базу. - М.: «ГУВШЭ», 2007;
3. Лясин Д.Н., Макушкин И.А. - Асимметричное шифрование. - Волгоград: «ВГТУ», 2008;
4. Авдошин С.М., Савельева А.А. Криптоанализ: современное состояние и перспективы развития// Бизнес-информатика. - 2007.-(№4);
5. Авдошин С.М., Савельева А.А. Криптоанализ вчера, сегодня, завтра// Бизнес-информатика. - 2008.-(№5);
6. Кочер П.В. Временной криптоанализ Диффи-Хеллмана, RSA, DSS и других систем// Криптография. - 2002.-(№1);
7. Ростовцев В.Г., Михайлова Н.В. Методы криптоанализа классических шифров// Защита инсайд. - 2006.-(№4);
8. www.wikipedia.org - Википедия;
9. www.intuit.ru - Интернет-университет информационных технологий;
10. www.cryptomach.ru - Сайт, посвященный криптологии.
Размещено на Allbest.ru
...Подобные документы
Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Описание алгоритма RSA: шифрование и дешифрование. Возможные атаки, способы взлома, обоснование и практическая реализация RSA.
курсовая работа [45,9 K], добавлен 24.12.2011Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.
лабораторная работа [326,0 K], добавлен 04.11.2013Изучение основных методов и алгоритмов криптографии с открытым ключом и их практического использования. Анализ и практическое применение алгоритмов криптографии с открытым ключом: шифрование данных, конфиденциальность, генерация и управление ключами.
дипломная работа [1,2 M], добавлен 20.06.2011Принципы криптографии, история ее развития. Шифры с секретным и с открытым ключом. Криптография как оружие, угрозы данным, их раскрытие. Ужесточчение мер в отношении использования криптоалгоритмов. Раскрытие криптосистемы и стойкость системы к раскрытию.
доклад [35,8 K], добавлен 09.11.2009Краткие сведения о истории криптографии. Симметричные криптосистемы (системы с секретным ключом) и системы с открытым ключом. Аутентификация и идентификация, электронная цифровая подпись. Управление ключами, их архивирование, хранение и восстановление.
доклад [458,9 K], добавлен 08.11.2013Появление шифров, история эволюции криптографии. Способ приложения знаний особенностей естественного текста для нужд шифрования. Критерии определения естественности. Способ построения алгоритмов симметричного шифрования. Криптосистема с открытым ключом.
реферат [452,2 K], добавлен 31.05.2013Актуальность и предыстория проблемы построения систем связи с открытым ключом. Алгоритм кодирования, перевода из десятичного числа в двоичное, быстрого возведения числа в степень, поиска взаимно простых чисел. Дешифрование сообщения по криптоалгоритму.
курсовая работа [140,3 K], добавлен 20.06.2017Ход и порядок работы с пакетом ABBYY FineReader 9.0 Professional Edition. Сохранение во внешние редакторы и форматы. Первая система с открытым ключом - система Диффи-Хеллмана. Одностороння функция с "лазейкой" и шифр RSA. Элементы теории чисел.
курсовая работа [1,9 M], добавлен 23.03.2012Разложение на простые сомножители. Понятия теории сравнений. Вычисление мультипликативного обратного. Существование конечного поля. Шифрование потока данных. Принцип работы RSA-криптосистемы. Криптографический анализ асимметричных систем шифрования.
дипломная работа [390,4 K], добавлен 14.08.2015Основные программы стеганографии. Программно-аппаратные средства криптографической защиты информации с закрытым ключом. Требования к используемым криптографическим средствам за рубежом и в России. Отечественные системы шифрования с открытым ключом.
отчет по практике [64,6 K], добавлен 18.09.2013Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009Выбор шифров перестановки для проведения анализа. Анализ алгоритма двух различных шифров, построение блок-схемы алгоритма и программы, разработка общего интерфейса. Сравнение шифров перестановки по результатам шифрования и криптоанализа текстов.
курсовая работа [2,8 M], добавлен 14.01.2014Изучение, освоение на примере симметричных шифров элементы практической криптографии. Использование расширенного алгоритма Евклида для нахождения обратного по модулю числа. Ознакомление с демо-версией программы симметричного шифрования с секретным ключом.
лабораторная работа [97,5 K], добавлен 18.04.2015Обмен информации, защищенной от фальсификаций и незаконных пользователей. Распределение секретных ключей с помощью системы с открытым ключом. Разработка модулей системы генерации ключей и обмена конфиденциальной информацией для группы пользователей.
курсовая работа [2,0 M], добавлен 17.11.2011Традиционные симметричные криптосистемы. Основные понятия и определения. Методы шифрования. Метод перестановок на основе маршрутов Гамильтона. Асимметричная криптосистема RSA. Расширенный алгоритм Евклида. Алгоритмы электронной цифровой подписи Гамаля.
курсовая работа [235,6 K], добавлен 06.01.2017Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.
курсовая работа [564,3 K], добавлен 09.05.2012Комбинированное использование симметричного и асимметричного шифрования. Зависимость между открытым и закрытым ключами. Основные недостатки симметричного шифрования. Схема двухстороннего конфиденциального обмена. Концепция шифрования по алгоритму DES.
презентация [1,4 M], добавлен 20.12.2012Рассмотрение основных понятий криптографии: конфиденциальности, целостности, аутентификации и цифровой подписи. Описание криптографических средств защиты (криптосистемы, принципы работы криптосистемы, распространение ключей, алгоритмы шифрования).
дипломная работа [802,2 K], добавлен 08.06.2013Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.
лабораторная работа [24,3 K], добавлен 20.02.2014Разновидности защиты компьютерной информации. Особенности алгоритмов и шрифтов, применяемых в криптографии. Специфика использования криптосистем с открытым ключом. Структура вредоносного программного обеспечения. Обеспечение безопасности баз данных.
презентация [393,2 K], добавлен 05.04.2012