Дипломная работа на тему "Ассиметричное шифрование на базе эллиптических кривых"

ГлавнаяИнформатика → Ассиметричное шифрование на базе эллиптических кривых




Не нашли то, что вам нужно?
Посмотрите вашу тему в базе готовых дипломных и курсовых работ:

(Результаты откроются в новом окне)

Текст дипломной работы "Ассиметричное шифрование на базе эллиптических кривых":


Введение

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

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

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

Целью данного диплома является реализация трех лабораторных работ, посвященных:

- нахождению обратного элемента с помощью расширенного алгоритма Евклида;

- алгоритму формированию конечного поля Галуа GF(p) и подсчету количества точек эллиптической кривой n=#Ep;

- алгоритму ассиметричного шифрования на базе эллиптических кривых ECES.

Для вычисления наибольшего общего делителя d и одновременно чисел u и v используется так называемый расширенный алгоритм Евклида. В обычном алгоритме Евклида пара чисел (a, b) в цикле заменяется на пару (b, r), где r - остаток от деления a на b, при этом наибольший общий делитель у обеих пар одинаковый. Начальные значения переменных a и b равны m и n соответственно. Алгоритм заканчивается, когда b становится равным нулю, при этом a будет содержать наибольший общий делитель.

Идея расширенного алгоритма Евклида заключается в том, что на любом шаге алгоритма хранятся коэффициенты, выражающие текущие числа a и b через исходные числа m и n. При замене пары (a, b) на пару (b, r) эти коэффициенты перевычисляются.

Конечное поле или поле Галуа — поле, состоящее из конечного числа элементов. Конечное поле обычно обозначается GF(р), где р — число элементов поля.

Эллиптические кривые являются одним из основных объектов изучения в современной теории чисел и криптографии. Например, они были использованы Эндрю Уайлзом (совместно Ричардом Тейлором) в доказательстве Великой теоремы Ферма. Эллиптическая криптография образует самостоятельный раздел криптографии, посвященный изучению криптосистем на базе эллиптических кривых. В частности, на эллиптических кривых основан российский стандарт цифровой подписи ‎ГОСТ Р 34.10-2001. Эллиптические кривые также применяются в некоторых алгоритмах факторизации (например, Алгоритм Ленстры) и тестирования простоты чисел.

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

Асимметричная криптография основана на сложности решения некоторых математических задач. Ранние криптосистемы с открытым ключом, такие как алгоритм RSA, безопасны благодаря тому, что сложно разложить составное число на простые множители. При использовании алгоритмов на эллиптических кривых полагается, что не существует субэкспоненциальных алгоритмов для решения задачи дискретного логарифмирования в группах их точек. При этом порядок группы точек эллиптической кривой определяет сложность задачи. Считается, что для достижения такого же уровня безопасности как и в RSA требуются группы меньших порядков, что уменьшает затраты на хранение и передачу информации. Например, на конференции RSA 2005 Агентство национальной безопасности объявила о создании “Suite B”, в котором используются исключительно алгоритмы эллиптической криптографии, причём для защиты информации классифицируемой до “Top Secret” используются всего лишь 384-битные ключи.

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

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

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

Заказать написание дипломной - rosdiplomnaya.com

Специальный банк готовых оригинальных дипломных работ предлагает вам написать любые работы по требуемой вам теме. Правильное написание дипломных работ на заказ в Челябинске и в других городах РФ.

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

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

1.  Технологический раздел 1.1 Анализ технического задания

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

Для реализации задачи, исследуем функциональную модель, на базе которой будет разработано ПО.

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

Данный ПП выполняет следующие функции:

1.  Находит обратный элемент с помощью расширенного алгоритма Евклида;

2.  Формирует конечное поле Галуа;

3.  Подсчитывает количество точек эллиптической кривой над сформированным полем;

4.  Реализует алгоритм ассиметричного шифрования на базе эллиптических кривых.

Результат – ПП, демонстрирующий выполнение представленных выше алгоритмов.

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

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

1.2 Цель проекта

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

ПП должен выполнять следующие функции.

Авторство информации.

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

Аутентификация информации.

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

1.3 Анализ требований 1.3.1 Построение дерева целей

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

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

В начале построим дерево целей нашего проекта, которое приведено на рис. 1.

Рисунок убран из работы и доступен только в оригинальном файле.

Рис.1. Дерево целей

Таблица 1. Описание дерева целей

--------------------------------------------------
Наименование подцелей | Показатель достижения цели |
---------------------------------------------------------
Цель: Разработать надежный ПП |
---------------------------------------------------------
Обеспечить строгое и наглядное описание проектируемой системы | Строгая последовательность действий |
---------------------------------------------------------
Повышение точности описания предметной области | Разработка ПП отвечающего стандартам ANSI X9.63 и IEEE P1363 |
---------------------------------------------------------
Повышение качества создаваемого программного кода | Использование средств разработки с встроенным контролем качества написанного программного кода и средств отладки программного кода |
---------------------------------------------------------
Повышение качества тестирования ПП | Использование эталонных тестовых вариантов и зарубежных открытых исходных кодов |
---------------------------------------------------------
Обеспечение контроля ввода данных | Предоставление вариантов для выбора при вводе данных |
---------------------------------------------------------
Цель: Разработать удобный ПП |
---------------------------------------------------------
Обеспечить простой диалог пользователя с ПП | Наличие дружественно графического интерфейса пользователя |
---------------------------------------------------------
Обеспечить приемлемую скорость работы | Время ответа по любой из наиболее часто встречающихся операций не превышает 2 секунд |
---------------------------------------------------------
Обеспечить помощь пользователю в процессе работы с ПП | Наличие встроенной системы контекстной помощи |
---------------------------------------------------------
Облегчить ввод данных | Вводимые данные генерирует система, все меню выполнены в классическом Win стиле |
---------------------------------------------------------
Обеспечить простоту освоения ПП | Ориентировка ПП на пользователя не имеющего профессиональных знаний в области вычислительной техники |
---------------------------------------------------------
Цель: Разработать технически эффективный ПП |
---------------------------------------------------------
Обеспечить возможность использования РС с процессором средней производительности | Уровень производительности центрального процессора рабочей станции |
---------------------------------------------------------
Обеспечить возможность использования рабочей станции с небольшой ОП | Количество оперативной памяти на рабочей станции |
---------------------------------------------------------
Цель: Разработать адаптируемый ПП |
---------------------------------------------------------
Обеспечить возможность перевода ПП под управление других ОС | Поддерживаемое количество ОС |
---------------------------------------------------------
Обеспечить возможность простого перехода к использованию другого источника данных | Использование промежуточного уровня при организации доступа к источнику данных |
--------------------------------------------------------- -------------------------------------------------- 1.3.2 Требования по надежности

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

Можно выделить два основных аспекта надежности:

- Наличие в готовом программном продукте ошибок

- Готовность программного продукта к могущим возникнуть исключительным (нештатным) ситуациям

Первый аспект в свою очередь можно разделить на два:

- Ошибки возникающие на этапе проектирования ПП

- Ошибки возникающие на этапе кодирования

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

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

Второй аспект подразделяется на:

- непредусмотренных действий пользователя;

- недопустимых сочетаний исходных данных;

- влияние операционного окружения.

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

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

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

Для оценки требований надежности с точки зрения обеспечения поставленной цели выберем следующие показатели:

- Разработка функциональной модели изучая уже имеющиеся аналоги, различные стандарты;

- Использование средств разработки с встроенным контролем качества написанного программного кода и средств отладки программного кода;

- Использование эталонных тестовых вариантов;

- Ограничение возможных действий пользователя и проверка вводимых данных;

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

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

1.3.3 Технические требования

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

Для оценки технической эффективности с точки зрения обеспечения поставленной цели выберем следующие показатели:

- Производительность ЦП рабочей станции;

- Количество оперативной памяти установленной на рабочей станции.

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

1.3.4 Требования по адаптивности

Уровень адаптивности ПП определяет его подготовленность к возможным изменениям. Необходимость в изменении может возникнуть в следующих случаях:

- Выявлено несоответствие между реализованным и реальным алгоритмом функционирования создаваемой системы;

- Возникла необходимость в переносе ПП под другое операционное окружение;

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

Для оценки адаптивности с точки зрения обеспечения поставленной цели выберем следующие показатели:

- Наличие исходного текста программ;

- Поддерживаемое количество ОС;

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

Опишем влияние каждого из выбранных показателей на адаптивность разрабатываемого ПП:

Наличие исходного текста программ. Без исходных текстов говорить о каком либо значительном изменении в программный продукт просто невозможно. Любое изменение в алгоритме требует наличия исходных текстов. Кроме этого становиться невозможен перевод программного продукта под другие операционные системы, компиляторы.

Поддерживаемое количество ОС. Важный показатель при использовании (планировании использования) в организации разнородных вычислительных систем. Например, если в организации одновременно используются ЭВМ под управлением MS Windows 95, MS Windows NT, MS-DOS, IBM OS/2, NetWare. В таких случаях очень важно правильно выбрать средство разработки программ, определить способы доступа к данным, используемые сетевые протоколы. Если же использование разнородных вычислительных систем ограниченно, то данный показатель во многом теряет свою важность. Особенно это усиливается при использовании одной аппаратной платформы, например все ЭВМ построены на базе процессоров Intel.

1.3.5 Требования удобства пользования

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

Для оценки требований удобства с точки зрения обеспечения поставленной цели выберем следующие показатели:

- Наличие дружественно графического интерфейса пользователя

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

Оценим возможные варианты графического интерфейса по 10 бальной шкале (Таблица 2):

Таблица 2.

--------------------------------------------------
Качество графического интерфейса | Оценка |
---------------------------------------------------------

-  Неумело подобранный цвет экранного изображения,

-  Перегруженная компонентами форма,

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

| 1 |
---------------------------------------------------------

-  Правильно подобранный цвет экранный формы,

-  Наличие меню с большим количеством уровней,

| 5 |
---------------------------------------------------------

-  Правильно подобранный цвет экранный формы,

-  Наличие иерархического меню,

-  Интуитивно понятный интерфейс,
использование общепринятых для данного операционного окружения функциональных клавиш

| 10 |
--------------------------------------------------------- --------------------------------------------------

Оценим возможные варианты время выполнения наиболее часто используемых операций по 10 бальной шкале (Таблица 3):

Таблица 3.

--------------------------------------------------
Время выполнения наиболее часто используемых операций | Оценка |
---------------------------------------------------------
10 секунд | 1 |
---------------------------------------------------------
7 секунд | 5 |
---------------------------------------------------------
4 секунды | 10 |
--------------------------------------------------------- --------------------------------------------------

Оценим возможные варианты справочной системы ПП по 10 бальной шкале (Таблица 4):

Таблица 4.

--------------------------------------------------
Наличие справочной системы | Оценка |
---------------------------------------------------------
Отсутствие справочной системы | 1 |
---------------------------------------------------------
Наличие руководства по основным режимам работы, ограниченные контекстные справки | 5 |
---------------------------------------------------------

Наличие контекстной справки,

Полное руководство по использованию ПП

| 10 |
--------------------------------------------------------- --------------------------------------------------

Оценим возможные варианты наличия выбора справочных значений – по 10 бальной шкале (Таблица 5):

Таблица 5.

--------------------------------------------------
Выбор справочного значения из нескольких возможных | Оценка |
---------------------------------------------------------
Необходимо напечатать нужное значение | 1 |
---------------------------------------------------------
Ввести номер значения | 5 |
---------------------------------------------------------
Установить курсор в нужном положении | 10 |
--------------------------------------------------------- --------------------------------------------------

Определим уровень требований показателей основываясь на выбранной 10 бальной шкале (Таблица 6):

Таблица 6.

--------------------------------------------------
Характеристика показателя | Оценка |
---------------------------------------------------------
Наличие развитого графического интерфейса | 7 |
---------------------------------------------------------
Время реакции системы не превышает 4 секунды | 10 |
---------------------------------------------------------
Достаточно полная справочная система | 5 |
---------------------------------------------------------
Выбор справочных значений из списка | 6 |
--------------------------------------------------------- -------------------------------------------------- 1.3.6 Построение аддитивного интегрального критерия

После построения дерева целей мы приходим к необходимости использовать для оценки качества проектных решений X один критерий. А именно: удобство. Поэтому при наличии вектора критериев U(x) = (U1(x), U2(x), U3(x), U4(x)) будем говорить не об оптимальности по какому-то отдельному критерию, а об оптимальности по вектору критериев. Для оценки предпочтения одного решения над другим построим интегральный критерий. Наличие интегрального критерия сводит процедуру выбора оптимального решения по многим критериям к однокритериальной задаче математического программирования.

Найти: x0 = arg max x (min) Y[u(x)], при условии, что x Є P*, где P* - множество сравниваемых решений.

Интегральный критерий используемый в нашем случае будем строить по принципу аддитивного интегрального критерия, который имеет вид:

Y[u(x)]=Srkwk [ uk(x) ], S rk = 1 (1)

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

Приведем эту теорему:

Для того чтобы интегральный критерий имел аддитивный вид, необходимо и достаточно выполнение условия независимости по предпочтению для каждой пары критериев (ui, uj), i ¹ j, i, j = 1….K.

Анализируя используемые у нас критерии мы приходим к выводу, что это правило выполняется. Теперь перейдем собственно к самому построению аддитивного интегрального критерия в виде:

Y(u) = r1w1(u1) + r2w2(u2) + r3w3(u3) + r4w4(u4)

Где функция wk - зависимость веса критерия от его значения;

rk - весовой коэффициент, учитывающий важности частных критериев, при этом rk определяет степень влияния к-го частного критерия на эффективность системы в целом;

uk - частный критерий эффективности

Для этого воспользуемся алгоритмом независимого шкалирования. Выберем один из значимых показателей –удобство ПП. Опишем частные критерии эффективности которые будут использоваться при построении аддитивного интегрального критерия:

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

- Время реакции системы не превышает 2 секунды – границы изменения от 1 до 10, цель оптимизации максимизация данного критерия.

- Достаточно полная справочная система – границы изменения от 1 до 10, цель оптимизации максимизация данного критерия.

- Выбор справочных значений из списка - границы изменения от 1 до 10, цель оптимизации максимизация данного критерия.

1.  Наличие дружественно графического интерфейса пользователя. Используя понятие среднего по ценности значения критерия построим функцию w1(u1).Значения сведены в таблицу 7.

Таблица 7.

--------------------------------------------------

U1

|

w1

|
---------------------------------------------------------
1 | 0 |
---------------------------------------------------------
3 | 0,25 |
---------------------------------------------------------
5 | 0,5 |
---------------------------------------------------------
7 | 0,75 |
---------------------------------------------------------
10 | 1 |
--------------------------------------------------------- --------------------------------------------------

w1

Рисунок убран из работы и доступен только в оригинальном файле. U1

Рис. 2. Функция ценности критерия.

2.

Время реакции системы не превышает 4 секунды. Используя понятие среднего по ценности значения критерия построим функцию w2(u2). Значения сведены в таблицу 8.

Таблица 1.

--------------------------------------------------

U2

|

w2

|
---------------------------------------------------------
1 | 0 |
---------------------------------------------------------
4 | 0,25 |
---------------------------------------------------------
6 | 0,5 |
---------------------------------------------------------
8 | 0,75 |
---------------------------------------------------------
10 | 1 |
--------------------------------------------------------- --------------------------------------------------

w2

Рисунок убран из работы и доступен только в оригинальном файле. U2

Рис. 3. Функция ценности критерия

3. Достаточно полная справочная система. Используя понятие среднего по ценности значения критерия построим функцию w3(u3) Значения сведены в таблицу 9

Таблица 2.

--------------------------------------------------

U3

|

w3

|
---------------------------------------------------------
1 | 0 |
---------------------------------------------------------
2 | 0,25 |
---------------------------------------------------------
4 | 0,5 |
---------------------------------------------------------
8 | 0,75 |
---------------------------------------------------------
10 | 1 |
--------------------------------------------------------- --------------------------------------------------

w3

Рисунок убран из работы и доступен только в оригинальном файле. U3

Рис. 4. Функция ценности критерия

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

Таблица 3.

--------------------------------------------------

U4

|

w4

|
---------------------------------------------------------
1 | 0 |
---------------------------------------------------------
2 | 0,25 |
---------------------------------------------------------
5 | 0,5 |
---------------------------------------------------------
7 | 0,75 |
---------------------------------------------------------
10 | 1 |
--------------------------------------------------------- --------------------------------------------------

w4

Рисунок убран из работы и доступен только в оригинальном файле. U4

Рис. 5. Функция ценности критерия

Теперь вычислим ri для этого введем вектора:

U1 = (U1*, 1, 1, 1)

U2 = (1,U2*, 1, 1 )

U3 = (1, 1, U3*, 1)

U4= (1, 1, 1, U4*)

Выберем для Uk* такие значения, что бы эти вектора были приблизительно равны, тогда получим: U1* = 6, U2* = 8, U3* = 7, U4= 8. Из эквивалентности U1 и U2, U1 и U3, U1 и U4, и дополнив условием нормировки коэффициентов rk получим систему из четырех уравнений:

r1 w1(6) = r2 w2(8)

r1 w1(6) = r3 w3(7)

r1 w1(6) = r4 w4(8)

r1 + r2 + r3 + r4 = 1

Подставляя значения wk из соответствующего графика где:

w1(6) = 0,625

w2(8) = 0,75

w3(7) = 0,68

w4(8) = 0,84

и выражая все через r1 получаем следующие значения коэффициентов rk

r1 = 0,28

r2 = 0,23

r3 = 0,25

r4 = 0,20

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

Отсюда аддитивный интегральный критерий будет иметь вид:

= 0,28 11) + 0,23 22) + 0,25 33) + 0,20 44) (2)

где функция k - зависимость веса критерия от его значения;

uk - частный критерий эффективности;

w1(u1) – зависимость веса критерия (наличие развитого графического интерфейса) от его значения;

w2(u2) – зависимость веса критерия (время реакции системы не превышает 4 секунды) от его значения;

w3(u3) – зависимость веса критерия (достаточно полная справочная система) от его значения;

w4(u4) – зависимость веса критерия (выбор справочных значений из списка) от его значения.

Используя значения из таблиц 7,8,9(пункт 1.3.6) находим коэффициенты для уравнений прямых, рисунки 2,3,4 (пункт 1.3.6), выбранных участков графиков, получаем следующие значения зависимости веса критерия от его значения:

1) w1=0,083u1+0,17, берем из таблицы 10 (пункт 1.3.5.) значение u1 и получаем w1=0,083*7 + 0,17 = 0,75

2) w2=0,125u2-0,25, берем из таблицы 10 (пункт 1.3.5.) значение u2 и получаем w1=0,125*10 - 0,25 = 1

3) w3=0,0625u3+0,25, берем из таблицы 10 (пункт 1.3.5.) значение u3 и получаем w3=0,0625*5+0,25=0,56

4) w4=0,083u4+0,17, берем из таблицы 10 (пункт 1.3.5.) значение u4 и получаем w4= 0,083*6+0,17=0,67

Подставим w1, w2, w3 и w4 в уравнение аддитивного интегрального критерия 2 и рассчитаем оценку ПП.

В заключении, по анализу требований к дипломному проекту, рассчитаем значение аддитивного интегрального критерия по определенным выше значениям параметров:

= 0,28*0,75 + 0,23*1+ 0,25*0,56+ 0,20*0,67 = 0,71

Потребуем, чтобы разрабатываемый программный продукт имел оценку по интегральному аддитивному показателю, рассчитываемому по формуле 1 (пункт 1.3.6), не ниже 0,71.

1.4 Заключение по выбранным характеристикам

На основании выполненного анализа сформулируем требования по критерию удобство ПП:

- Значение показателя - наличие развитого графического интерфейса –должно быть не менее баллов по выбранной шкале;

- Значение показателя - время реакции системы не превышает 2 секунды –должно быть не менее 10 баллов по выбранной шкале;

- Значение показателя - достаточно полная справочная система – должно быть не менее 5 баллов по выбранной шкале;

- Значение показателя - выбор справочных значений из списка – должно быть не менее балла по выбранной шкале.

- Значение аддитивного интегрального критерия должно быть не менее 0,71.

2. Проектный раздел   2.1 Введение

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

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

На рис. 6 показана обобщенная схема асимметричной криптосистемы с открытым ключом. В этой криптосистеме Ко – открытый ключ, Кс – секретный ключ получателя. Генератор ключей располагается на стороне получателя, так как это дает возможность не пересылать секретный ключ Кс по незащищенному каналу.

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

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

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

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

Асимметричные криптосистемы имеют следующие особенности:

- открытый ключ Ко и криптограмма С могут быть отправлены по незащищенным каналам, т. е. противнику известны открытый ключ и криптограмма;

- открытыми являются алгоритмы зашифрования и расшифрования.

Защита информации в асимметричной криптосистеме основана на секретности ключа Кс.

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

- вычисление пары ключей (Ко, Кс) должно быть простым;

- отправитель может легко вычислить криптограмму, зная открытый ключ Ко и сообщение М;

C = ЕКо(М) (3)

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

М = DКс (С) (4)

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

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

2.2 Анализ существующих алгоритмов

Для выполнения дипломной работы понадобилось изучить два вида алгоритмов:

- алгоритмы нахождения НОД;

- алгоритмы ассиметричного шифрования.

Алгоритмы нахождения НОД

Алгоритм Евклида

Алгоритм Евклида — алгоритм для нахождения наибольшего общего делителя двух целых чисел или наибольшей общей меры двух однородных величин.

Этот алгоритм не был открыт Евклидом, так как упоминание о нём имеется уже в Топике Аристотеля. В «Началах» Евклида он описан дважды — в VII книге для нахождения наибольшего общего делителя двух натуральных чисел и в X книге для нахождения наибольшей общей меры двух однородных величин. В обоих случаях дано геометрическое описание алгоритма, для нахождения «общей меры» двух отрезков.

Историками математики (Цейтен и др.) было выдвинуто предположение, что именно с помощью алгоритма Евклида (процедуры последовательного взаимного вычитания) в древнегреческой математике впервые было открыто существование несоизмеримых величин (стороны и диагонали квадрата, или стороны и диагонали правильного пятиугольника). Впрочем, это предположение не имеет достаточных документальных подтверждений. Алгоритм для поиска наибольшего общего делителя двух натуральных чисел описан также в I книге древнекитайского трактата Математика в девяти книгах.

Ряд математиков средневекового Востока (Сабит ибн Курра, ал-Махани, Ибн ал-Хайсам, Омар Хайям) попытались построить на основе алгоритма Евклида теорию отношений, альтернативную по отношению теории отношений Евдокса, изложенной в V книге «Начал» Евклида. Согласно определению, предложенному этими авторами, четыре величины, первая ко второй и третья к четвёртой, имеют между собой одно и то же отношение, если при последовательном взаимном вычитании второй величины в обеих парах на каждом шаге будут получаться одни и те же неполные частные.

Алгоритм Евклида для целых чисел

Пусть a и b целые числа, не равные одновременно нулю, и последовательность чисел

Рисунок убран из работы и доступен только в оригинальном файле.

определена тем, что каждое rk — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть

a = bq0 + r1

b = r1q1 + r2

r1 = r2q2 + r3

Рисунок убран из работы и доступен только в оригинальном файле.

rk − 2 = rk − 1qk − 1 + rk

Рисунок убран из работы и доступен только в оригинальном файле.

rn − 1 = rnqn

Тогда НОД(a, b), наибольший общий делитель a и b, равен rn, последнему ненулевому члену этой последовательности.

Существование таких r1,r2,..., то есть возможность деления с остатком m на n для любого целого m и целого Рисунок убран из работы и доступен только в оригинальном файле., доказывается индукцией по m.

Проще сформулировать алгоритм Евклида так: если даны натуральные числа a и b и, пока получается положительное число, по очереди вычитать из большего меньшее, то в результате получится НОД.

Бинарный алгоритм

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

- НОД(2m, 2n) = 2 НОД(m, n),

- НОД(2m, 2n+1) = НОД(m, 2n+1),

- НОД(-m, n) = НОД(m, n)

Алгоритм

- НОД(0, n) = n; НОД(m, 0) = m; НОД(m, m) = m;

- НОД(1, n) = 1; НОД(m, 1) = 1;

- Если m, n чётные, то НОД(m, n) = 2*НОД(m/2, n/2);

- Если m чётное, n нечётное, то НОД(m, n) = НОД(m/2, n);

- Если n чётное, m нечётное, то НОД(m, n) = НОД(m, n/2);

- Если m, n нечётные, то НОД(m, n) = НОД(n, |m - n|).

Так как алгоритм является Хвостовой рекурсией, то рекурсию можно заменить итерацией.

Криптосистема шифрования данных RSA

В настоящее время наиболее изученным методом криптографической защиты, основанным на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов, является алгоритм RSA (названый по начальным буквам фамилий ее изобретателей Rivest, Shamir, Adleman). Этот алгоритм может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи.

Схема RSA представляет собой блочный шифр, в котором открытый и зашифрованный тексты представляются целыми числами из диапазона от 0 до N – 1 для некоторого N, т. е. открытый текст шифруется блоками, каждый из которых содержит двоичное значение, меньшее некоторого заданного числа N. Это значит, что длина блока должна быть меньше или равна log2(N).

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

Рисунок убран из работы и доступен только в оригинальном файле.

где N – модуль, P и Q являются случайными большими взаимно простыми числами. Их выбирают равной длины и хранят в секрете для обеспечения максимальной безопасности.

Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N.

Открытый ключ Ко выбирают случайным образом так, чтобы выполнялись условия

Рисунок убран из работы и доступен только в оригинальном файле.

где (N) – функция Эйлера, которая указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно просты с N.

Кроме того, открытый ключ Ко и функция Эйлера ϕ(N) также должны

быть взаимно простыми.

Затем, используя расширенный алгоритм Евклида, вычисляют секретный ключ Кс такой, что

Рисунок убран из работы и доступен только в оригинальном файле.

Данное вычисление возможно, поскольку получатель знает пару простых чисел (P, Q) и может легко найти ϕ(N), при этом Кс и N должны быть взаимно простыми. Задачу зашифрования открытого текста М в криптограмму С можно решить, используя открытый ключ Ko, по следующей формуле:

Рисунок убран из работы и доступен только в оригинальном файле.

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

Рисунок убран из работы и доступен только в оригинальном файле.

Процесс расшифрования можно записать так:

Рисунок убран из работы и доступен только в оригинальном файле.

Подставляя значение в предыдущие 2 формулы, получаем:

Рисунок убран из работы и доступен только в оригинальном файле.

Таким образом, получатель, который создает криптосистему, защищает два параметра: секретный ключ Кс и пару чисел P и Q, произведение которых даёт модуль N. Одновременно публикует значения модуля N и открытого ключа Ко, поэтому противнику известны только значения Ко и N. Если бы криптоаналитик смог разложить число N на множители P и Q, то он узнал бы тройку чисел (P, Q, Ko), значение функции Эйлера ϕ(N) = (P – 1) (Q – 1) и определил значение секретного ключа Kc.

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

2.3 Используемые алгоритмы Расширенный алгоритм Евклида

Формулы для ri могут быть переписаны следующим образом:

r1 = a + b(- q0)

r2 = b − r1q1 = a(− q1) + b(1 + q1q0)

Рисунок убран из работы и доступен только в оригинальном файле.

gcd(a, b) = rn = as + bt

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

Связь с цепными дробями

Отношение a / b допускает представление в виде цепной дроби:

Рисунок убран из работы и доступен только в оригинальном файле..

При этом цепная дробь без последнего члена равна отношению коэффициентов Безу t / s, взятому со знаком минус:

Рисунок убран из работы и доступен только в оригинальном файле..

Ускоренные версии алгоритма

- Одним из методов ускорения целочисленного алгоритма Евклида является использование симметричного остатка:

-

Рисунок убран из работы и доступен только в оригинальном файле.

где

Рисунок убран из работы и доступен только в оригинальном файле.

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

ECЕS

В алгоритме ECES (Elliptic Curve Encryption Scheme) на первом этапе должны быть определены параметры, являющиеся общей открытой информацией для всех пользователей системы:

- конечное поле GF(p);

- эллиптическая кривая E(GF(p));

- большой простой делитель количества точек кривой p;

- точка G, координаты которой имеют порядок, что и число p.

Каждый пользователь системы генерирует пару ключей следующим образом:

- выбирает случайное целое число Kc, 1 < Kc < p -1;

- вычисляет точку Kо = Kc P.

При этом секретным ключом пользователя является число Kc, открытым ключом - точка Kо. Кроме того, сообщение M разбивается на блоки длиной 2L - 16 бит, где L равно ближайшему большему целому от log2 p;

- выбирается случайное целое число k, 1 < k < n - 1;

- вычисляется точка (х1, у1) = kP;

- вычисляется точка (х2, у2) = k Kо.

Известно несколько подходов к зашифрованию - расшифрованию информации, предполагающих использование эллиптических кривых. Мы рассмотрим наиболее простой из этих подходов. Как было изложено выше, зашифрованное сообщение пересылается в виде значения (х, у) для точки Pm. Здесь точка Рm будет представлять зашифрованный текст и впоследствии будет расшифроваться. В качестве параметров данной криптосистемы рассматривается точка G и эллиптическая группа Еp (а, b).

Пользователи А и В выбирают секретные ключи KcА и KcB, а также генерируют открытые ключи KоA = KcА P и KоB = KcB P соответственно. Чтобы зашифровать сообщение Рm, пользователь А выбирает случайное положительное целое число k и вычисляет криптограмму Сm с помощью открытого ключа стороны В, - KоB, состоящую из двух точек

Cm = {(kG), (Pm + k KоB) }.

Чтобы расшифровать эту криптограмму, пользователь В умножает первую точку (kP) на cвой секретный ключ KcB и вычитает результат из второй точки:

(Рm + k KоB) - KcB (kP) = Рm + k(KcB P) - KcB (kP) = Рm.

Пользователь А замаскировал сообщение Рm с помощью добавления к нему маски k KоB.. Однако следует заметить, что никто не сможет убрать маску k KоB, кроме пользователя, который знает значение k и имеет личный ключ KcB. Противнику для восстановления сообщения придется вычислить k по данным P и kP, что является трудной задачей. В качестве примера возьмем

р = 751, ЕP = (-1, 188) и P = (0, 376).

Все расчеты в данном примере выполняются по модулю p.

Предположим, что пользователь А отправляет пользователю В сообщение, которое кодируется точкой Рm = (562, 201), и выбирает случайное число k = 386. Открытым ключом В является KоB = (201, 5). Мы имеем 386(0, 376) = (676, 558) и (562, 201) + 386(201, 5) = (385, 328).

Таким образом, пользователь А должен послать зашифрованный текст {(676, 558), (385, 328)}.

2.4 Выполнение алгоритмов Нахождение обратного элемента с помощью расширенного алгоритма Евклида Теоретические сведения

Вычисляем значение х, в выражении х * А=В mod С

1.  Выбор 2-х взаимно простых чисел А и С;

2.  Выбор числа В < С;

3.  Устанавливаем начальные значения для вычисления обратного элемента:

Рисунок убран из работы и доступен только в оригинальном файле.

4.  Подставляем значения в формулы:

Рисунок убран из работы и доступен только в оригинальном файле.

5.  Последовательно выполняем вычисление шага 4, пока Рисунок убран из работы и доступен только в оригинальном файле.. В ответ пойдет последний, отличный от нуля остаток Рисунок убран из работы и доступен только в оригинальном файле.

6.  После вычисления мы получим следующее равенство:

Рисунок убран из работы и доступен только в оригинальном файле.

7.  Подставляем полученное значение r в выражение и вычисляем значение :

Рисунок убран из работы и доступен только в оригинальном файле.

8.  Подставляем полученный результат в исходное выражение

х * А=В mod С и проверяем полученный результат.

Алгоритм формирования конечного поля Галуа GF(p) и подсчет количества точек эллиптической кривой n=#Ep Теоретические сведения

На момент начала формирования поля GF(p) необходимо иметь инициализованные переменные эллиптической кривой, такие как p (простое число), a, b, а также выбрать координату х первой точки. Рассмотрим порядок формирования GF(p):

1.  Проверяем условие несингулярности кривой:

Рисунок убран из работы и доступен только в оригинальном файле.

2.  Рассчитываем координату Y первой точки по формуле:

Рисунок убран из работы и доступен только в оригинальном файле.

3.  Находим следующую точку поля, путем удваивания первой точки:

Рисунок убран из работы и доступен только в оригинальном файле.

4.  Каждую следующую точку рассчитываем по формулам:

Рисунок убран из работы и доступен только в оригинальном файле.

Условием выхода из цикла является деление на 0. К полученному количеству точек необходимо добавить точку бесконечности О с координатами O[0,0].

Алгоритм ассиметричного шифрования на базе эллиптических кривых ECES Теоретические сведения

В алгоритме ECES (Elliptic Curve Encryption Scheme) на первом этапе должны быть определены параметры, являющиеся общей открытой информацией, для всех пользователей системы:

- подгруппа точек эллиптической кривой q (в данном примере примем q = р);

- конечное поле GF(q);

- эллиптическая кривая E(GF(q));

- точка Р, координаты которой имеют порядок, что и число р.

Каждый пользователь системы генерирует пару ключей следующим образом:

- выбирает случайное целое число d, 1 < d < р-1

- вычисляет точку О = dP.

При этом секретным ключом пользователя является число d, открытым ключом – точка Q. Обмен конфиденциальной информацией производится в два этапа. Рассмотрим детально процесс обмена информацией между пользователями сети (а точнее между отправителем и получателем В). Методика выполнения пунктов 1-6 подробно описана в предыдущем алгоритме.

Действия отправителя:

1.  Выбираем случайным образом число р, с учетом вьшолнения условий: р>3;

2.  Выбор коэффициениов эллиптической кривой а и b:

3.  Проверяем выполнение условия

Рисунок убран из работы и доступен только в оригинальном файле.

4.  Выбираем случайным образом координату X точки эллиптической кривой;

5.  Вычисляем значение координаты точки У,

Рисунок убран из работы и доступен только в оригинальном файле.;

6.  Определяем поле Галуа GF(p), а также количество точек на эллиптической кривой p.

7.  Выбираем точку Р, координаты которой имеют порядок, что и число p

8.  Определяет порядок подгруппы группы точек эллиптической кривой q;

9.  После чего отправитель пересылает получателю следующие данные:

- конечное поле GF(q);

- эллиптическую кривая E(GF(q));

- порядок подгруппы группы точек эллиптической кривой q;

- точку Р.

10.  Выбираем случайное число КсA - секретный ключ отправителя,

1 < КсА < p-1;

11.  Вычисляем точку КоА - открытый ключ отправителя КоА = КсAР;

12.  Выбираем случайное число k (2-й секретный ключ отправителя),

1 < k < p-1;

13.  Вычисляем точку кР (которая является первой точкой криптограммы);

Действия получателя:

14.  Выбираем случайное число КсB - секретный ключ получателя, 1 < КсВ <p - 1;

15.  Вычисляем точку КоВ - открытый ключ отправителя КсB = КсB Р;

16.  Отправляем получателю свой открытый ключ КoB;

Действия отправителя:

17.  Разбиваем исходное сообщение на блоки (символы ASCII (CP Win 1251));

18.  Шифруем исходное сообщение в точки эллиптической кривой (вторая часть криптограммы),

Рисунок убран из работы и доступен только в оригинальном файле.;

19.  Отправляем криптограмму C,

Рисунок убран из работы и доступен только в оригинальном файле.;

Действия получателя:

20.  Получатель получив криптограмму, умножает ее первую часть (первую точку кР) на собственный секретный ключ КсВ и получает результат КсВ(кР);

21.  Вычитает полученный результат КсВ(кР) из точек второй части криптограммы в результате чего получает исходное сообщение.

3. Специальный раздел   3.1 Тестирование и отладка программного обеспечения Нахождение обратного элемента с помощью расширенного алгоритма Евклида

Пример вычисления выражения x*173 = 151 mod 200

1.  Устанавливаем начальные значения:

Рисунок убран из работы и доступен только в оригинальном файле.

2.  Вычисляем значения по формулам:

Рисунок убран из работы и доступен только в оригинальном файле.

Последовательно выполняем вычисление шага 2. В ответ пойдет последний отличный от нуля остаток r:

Рисунок убран из работы и доступен только в оригинальном файле.

Рисунок убран из работы и доступен только в оригинальном файле.

Рисунок убран из работы и доступен только в оригинальном файле.

Рисунок убран из работы и доступен только в оригинальном файле.

Рисунок убран из работы и доступен только в оригинальном файле.

Далее не считаем, так как процесс остановился – получен нулевой остаток. В ответ идут вычисленные на предыдущем шаге значения r5 = 1 – это НОД, u5 = -32 – это коэффициент перед 200, v5 – коэффициент пред 173.

3.  Теперь, имея обратный элемент поля (равный 37), мы умножаем его на 151, и затем берем модуль от значения:

37 * 151 mod 200=187;

4.  Данное значение и есть х, в уравнении x*173 = 151 mod 200 проверяем:

187*173 mod 200=32351 mod 200 = 151.

Рисунок убран из работы и доступен только в оригинальном файле.

Результаты расчета с использованием разработанного программного средства

Результаты совпадают

Алгоритм формирования конечного поля Галуа GF(p) и подсчет количества точек эллиптической кривой n=#Ep

Возьмем р = 7, а = 2, b = 6.

Рассмотрим кривую:

Рисунок убран из работы и доступен только в оригинальном файле.

Проверяем условие:

Рисунок убран из работы и доступен только в оригинальном файле.

Итак, данная кривая несингулярна. Рассчитаем координату первой точки:

Рисунок убран из работы и доступен только в оригинальном файле.

Координаты первой точки найдены G1[5,1]. Находим следующую точку поля, путем удваивания первой точки

Рисунок убран из работы и доступен только в оригинальном файле.

Теперь чтобы найти значение Рисунок убран из работы и доступен только в оригинальном файле. преобразуем текущее значение к виду: 2*х = mod 7, после чего применяем алгоритм нахождения обратного элемента с помощью расширенного алгоритма Евклида. В результате получаем Рисунок убран из работы и доступен только в оригинальном файле..

Рисунок убран из работы и доступен только в оригинальном файле.

Находим третью точку поля:

Рисунок убран из работы и доступен только в оригинальном файле.

Преобразуем, текущее значение к виду: 6*х = 5 mod 7, и также применим алгоритм нахождения обратного элемента Евклида. В результате получим Рисунок убран из работы и доступен только в оригинальном файле..

Рисунок убран из работы и доступен только в оригинальном файле.

Таким же образом продолжаем формировать поле, пока не получим деление на 0, и получаем G2[5,4], G3[2,5], G4[1,3], G5[3,5], G6[3,2], G7[1,4], G8[2,2], G9[4,1], G10[5,6]. Таким образом, мы сформировали конечное поле GF(p). Теперь добавляем к полученному количеству точек точку в бесконечности О, и тем самым определяем конечное количество точек, равное 11.

Рисунок убран из работы и доступен только в оригинальном файле.

Результаты расчета с использованием разработанного программного средства

Результаты совпадают

Алгоритм ассиметричного шифрования на базе эллиптических кривых ECES

Рисунок убран из работы и доступен только в оригинальном файле.

Шифруемое сообщение

Рисунок убран из работы и доступен только в оригинальном файле.

Расшифрованное сообщение

Результаты совпадают

4. Организационно-экономическая часть 4.1 Сетевой график Построение и расчет сетевого графика

Исходные данные для расчета и числовые характеристики, определение длительности работ приведены в таблице Б.1 (приложение Б).

Исходный сетевой график (макет) с указанием ожидаемой длительности работ – на рис. Б.1 (приложение Б).

В соответствии со временем, отведенным на дипломное проектирование, директивный срок, за который должно быть выполнено проектирование зададим как L = 125 дней.

Состав критического пути

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

L11=0,1,2,3,4,5,6,7,8,9=2+1+1+6+8+5+3+3=29

L12=0,1,2,3,6,7,8,9 =2+1+1+5+3+3=15

L21=9,10,11,13,12,16,17,19=6+7+2+19+9+7=50

L22=9,14,15,12,16,17,19=6+5+19+9+7=46

L23=9,10,11,12,16,17,19=6+7+5+19+9+7=53

L31=19,20,21,23=8+10=18

L32=19,21,23=6+10=16

L33=19,22,21,23=4+10=14

L41=23,24,25,26,27,28=4+8+4+5+1+1=23

Lкр.= L11 + L23 + L31 + L41 =29+53+18+23=123

Основные временные параметры сетевой модели (по кодам событий) приведены в таблице Б.2 (приложение Б).

Основные временные параметры сетевой модели (по кодам работ) приведены в таблице Б.3 (приложение Б).

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

Коэффициенты напряженности и дисперсии работ, приведены в таблице Б.4 (приложение Б).

Введем нормировочную переменную с математическим ожиданием, равным нулю, и дисперсией, равной единице:

Z = Рисунок убран из работы и доступен только в оригинальном файле.

График нормального распределения вероятностей представлен Приложение Б.

По графику функции нормального распределения находим вероятность свершения конечного события в заданный срок: Pk≈0,6. Полученное значение Pk удовлетворяет неравенству 0,35<Pk<0,65, т. к. он попадает в заданный промежуток, и, следовательно, оптимизация по временным параметрам не нужна и повторное планирование или повторный расчет сетевого графика производить также нет необходимости.

  4.2 Определение структуры затрат на разработку проекта

Затраты на выполнение проекта включают единовремен

Здесь опубликована для ознакомления часть дипломной работы "Ассиметричное шифрование на базе эллиптических кривых". Эта работа найдена в открытых источниках Интернет. А это значит, что если попытаться её защитить, то она 100% не пройдёт проверку российских ВУЗов на плагиат и её не примет ваш руководитель дипломной работы!
Если у вас нет возможности самостоятельно написать дипломную - закажите её написание опытному автору»


Просмотров: 571

Другие дипломные работы по специальности "Информатика":

Web-сайт для учителей информатики: анализ существующих и разработка нового приложения

Смотреть работу >>

Поиск фотооборудования

Смотреть работу >>

Автоматизированная система складского учета в ЗАО "Белгородский бройлер"

Смотреть работу >>

Автоматизированная система учета договоров страхования предпринимательских рисков

Смотреть работу >>

Создание информационно-справочной системы "Методический кабинет"

Смотреть работу >>