Тип работы:
Предмет:
Язык работы:


РЕАЛИЗАЦИЯ АППРОКСИМИРУЮЩЕГО К-АРНОГО АЛГОРИТМА С ИЗМЕНЯЮЩИМСЯ К

Работа №34938

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы45
Год сдачи2019
Стоимость4900 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
344
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1. Анализ предметной области 5
1.1 Делимость чисел 5
1.2 Наибольший общий делитель 5
2. Обзор различных алгоритмов нахождения НОД 8
2.1 Классический алгоритм Евклида 8
2.2 Расширенный алгоритм Евклида 9
2.3 Бинарный алгоритм 10
2.4 k-арный алгоритм нахождения НОД 11
2.5 Аппроксимирующий Парный алгоритм 13
2.6 Теоретические оценки сложности алгоритмов 18
3. Реализация аппроксимирующего Парного алгоритма 19
3.1 Ряды Фарея 19
3.2 Цепные дроби 21
3.3 Сравнение скорости работы рядов Фарея и цепных дробей 22
3.4 Оптимизация алгоритма 23
3.5 Проверка гипотезы 24
3.6 Реализация алгоритма с изменяющимся к 27
3.7 Программный интерфейс 28
ЗАКЛЮЧЕНИЕ 30
СПИСОК ЛИТЕРАТУРЫ 31
ПРИЛОЖЕНИЯ 33


На сегодняшний день в мире происходит глобальный процесс информатизации. В каждый элемент повседневной жизни человека внедряются компьютерные технологии, которые затрагивают каждый сегмент общества. Если раньше подобные технические достижения применялись в основном в военных целях, то сейчас работа органов государственной власти, компаний крупного и малого бизнеса, различных некоммерческих организации, медицинских учреждений и всех остальных институтов общества теперь напрямую связана с информационными технологиями. Хранимые и передаваемые данные должны оставаться в сохранности и быть защищенными от несанкционированного доступа. Именно поэтому крайне важно обеспечить безопасность и конфиденциальность при работе с информационными системами. Решением этой задачи занимается криптография.
Основной задачей криптографии является обеспечение высокого уровня секретности для защищаемой информации, чтобы не допустить ее утечки или искажения во время атак злоумышленников. В процессе обеспечения безопасности криптография использует множество математических алгоритмов, одним из которых является алгоритм нахождения наибольшего общего делителя (НОД) двух чисел. Нахождение НОД используется во многих криптографических алгоритмах шифрования, например, в RSA, или является частью других математических функций, таких как нахождение наименьшего общего кратного.
Также в криптографии очень большое значение имеют большие числа. На их основе построены все современные алгоритмы шифрования. Причиной этого является то, что работа с большими числами занимает много времени и ресурсов, и взлом таких систем шифрования является очень трудной задачей.
Алгоритм нахождения НОД был известен еще до нашей эры. На данный момент существует несколько способов нахождения наибольшего общего делителя, одним из которых является аппроксимирующий Парный алгоритм.
Он основывается на Парном алгоритме Соренсона, с тем отличием, что при вычислении числа C используется другой метод нахождения коэффициентов х и у. Для того, чтобы их найти, применяется аппроксимация вещественного числа r несократимой дробью. Данное приближение позволяет уменьшить время работы всего алгоритма.
Научным руководителем, Еникеевым Р.Р., была выдвинута гипотеза о том, что при малых значениях чисел A, B наиболее эффективным выбором коэффициента k являются малые числа. На основе данной гипотезы был предложен алгоритм с изменяющимся значением k, который при вычислении НОД больших чисел использует большое значение к, а для малых - уменьшает его значение. Подтверждение гипотезы может способствовать повышению скорости работы алгоритма.
Целью выпускной квалификационной работы является проверка выдвинутой гипотезы и реализация аппроксимирующего алгоритма с изменяющимся k.
Для достижения поставленных целей были выдвинуты следующие задачи:
- изучение литературы по алгоритмам нахождения НОД;
- реализация аппроксимирующего k-арного алгоритма;
- исследование аппроксимирующего алгоритма для различных k;
- реализация аппроксимирующего алгоритма с изменяющимся k.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


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



1. Делимость чисел [Электронный ресурс]. - 2019. - Режим доступа: http://tmel.ru/delimost-chisel/ (дата обращения: 31.03.2019).
2. Крэндалл Р. Простые числа: криптографические и вычислительные аспекты [Текст] / Р. Крэндалл, К. Померанс. - УРСС: Либроком, 2011. - 664 с.
3. Виноградов И. М. Основы теории чисел [Текст] / И. М. Виноградов. - М.-Л.: Гос. изд. технико-теоретической литературы, 1952. - 180 с.
4. Набольший общий делитель [Электронный ресурс]. - 2019. - Режим
доступа: https://ru.wikipedia.org/wiki/Наибольший_общий_делитель/ (дата
обращения: 31.03.2019).
5. Наибольший общий делитель (НОД) - определение, примеры
свойства [Электронный ресурс]. - 2019. - Режим доступа:
http://www.cleverstudents.ru/divisibility/nod.html/ (дата обращения: 31.03.2019).
6. Ишмухаметов Ш.Т. Методы факторизации натуральных чисел [Текст] / Ш. Т. Ишмухаметов - Казань, 2012, 189 с.
7. Шаймарданов И.А. Отчет по практике по получению первичных профессиональных умений и навыков [Текст] / И. А. Шаймарданов, Институт вычислительной математики и информационных технологий Казанский (Приволжский) федеральный университет. - Казань, Россия, 2019 - 9 с.
8. Бинарный алгоритм НОД [Электронный ресурс]. - 2019. - Режим доступа: https://ra.wikipedia.org/wiki/Бинарный_алгоритм_вычисления_НОД/ (дата обращения: 17.04.2019).
9. J. Sorenson. Two fast GCD algorithms [Текст] / J. Sorenson // Journal of Algorithms. - 1994. - Т. 16. - №. 1. - С. 110-144.
10. K. Weber. The accelerated integer GCD algorithm [Текст] / K. Weber //ACM Transactions on Mathematical Software (TOMS). - 1995. - Т. 21. - №. 1. -
С. 111-122.
11. Ishmukhametov S. T. An approximating k-ary GCD algorithm [Текст] /
S. Ishmukhametov //Lobachevskii Journal of Mathematics. - 2016. - Т. 37. - №. 6. - С. 723-729.
12. Еникеев Р. Р. Модифицированный аппроксимирующий k-арный алгоритм вычисления НОД [Текст] / Р. Р. Еникеев // Материалы Международной научной конференции студентов, аспирантов и молодых ученых «ЛОМОНОСОВ-2019». Секция «Вычислительная математика и кибернетика». Московский государственный университет им. М.В. Ломоносова (МГУ). - Москва, 2019. - С. 33-35.
13. Ряд Фарея [Электронный ресурс]. - 2019. - Режим доступа: https://ra.wikipedia.org/wiki/Ряд_Фарея/ (дата обращения: 20.05.2019).
14. Непрерывная дробь [Электронный ресурс]. - 2019. - Режим доступа: https://ru.wikipedia.org/wiki/Непрерывная_дробь/ (дата обращения:
29.05.2019) .
15. Jebelean T. A generalization of the binary GCD algorithm [Текст] /
T. Jebelean // Universitat Linz. Research Institute for Symbolic Computation. - 1993. - C. 111-116.
16. Начало работы с WPF [Электронный ресурс]. - 2019. - URL: https://docs.microsoft.com/m-ru/visualstudio/designers/getting-started-with- фwpf?view=vs-2019/ (дата обращения: 31.03.2019).


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ