ВВЕДЕНИЕ 3
1. Анализ основных алгоритмов умножения длинных чисел 6
2. Особенности реализации алгоритмов умножения длинных чисел и
экспериментальные вычисления 24
3. Анализ алгоритмов, использующих операции умножения длинных
чисел 29
4. Особенности реализации алгоритмов, использующих операции
умножения длинных чисел и экспериментальные вычисления 37
ЗАКЛЮЧЕНИЕ 44
СПИСОК ЛИТЕРАТУРЫ 45
ПРИЛОЖЕНИЕ
Актуальность. Активное развитие информационных технологий и средств связи повышает актуальность проблемы информационной безопасности. По этой причине требуется совершенствовать старые методы защиты информации и средства, а также разрабатывать новые методы и средства, направленные на повышение уровня информационной безопасности общества. Следовательно, необходим комплексный подход для повышения уровня информационной безопасности. Таким образом, возникает потребность перейти к эффективному использованию правовых, организационных и технических мер обеспечения защиты информации [1].
Одну из главных ролей в обеспечении информационной безопасности играют криптографические методы. На сегодняшний день, увеличивается актуальность использования криптографических систем защиты информации, например, таких криптографических алгоритмов как Эль-Г амаля и RSA. Эти алгоритмы основаны на вычислительной сложности задач факторизации и вычисления дискретного логарифма в конечном поле.
Стоит отметить, что при работе с криптографическими системами часто возникает необходимость вычисления операций умножения, при этом зачастую данные операции требуется производить десятки и более раз. В связи с этим возникает актуальность исследования алгоритмов умножения длинных чисел, повышение эффективности которых может значительно увеличить эффективность работы действующих криптосистем и дать новые инструменты в обеспечении защиты информации.
Целью научно-исследовательской работы является анализ эффективности работы алгоритмов умножения длинных чисел и оценка практического быстродействия, включая анализ их эффективности в рамках применения в конкретных практических задачах, алгоритмах факторизации чисел и нахождения НОД.
Для достижения поставленной цели были сформулированы следующие задачи:
1. Изучить (проанализировать текущие результаты) следующие алгоритмы умножения длинных чисел:
- Наивный алгоритм;
- Алгоритм Карацубы;
- Алгоритм Тоома-Кука;
- Алгоритм Шенхаге;
- Алгоритм Нюссбаумера.
2. Реализовать (в виде программы) алгоритмы умножения длинных чисел, которые являются предметом исследования в данной работе.
3. Провести практические эксперименты, сформировать выводы на основании полученных результатов об эффективности исследуемых алгоритмов на числах разного порядка.
4. Провести исследование и реализовать (в виде программы) алгоритмы, в которых на практике требуется проводить операции умножения длинных чисел: K-арный алгоритм нахождение НОД, Алгоритм факторизации Ленстры (включая использование проективных координат).
5. Провести практические эксперименты путем использования различных алгоритмов умножения длинных чисел в работе алгоритмов, которые используют операции умножения K-арный алгоритм нахождение НОД, Алгоритм факторизации Ленстры. Сформировать выводы об эффективности использования того или иного алгоритма умножения длинных чисел в рамках алгоритмов, которые используют их как вспомогательные на числах разного порядка.
Результатом научно-исследовательской работы стали полученные в ходе исследования выводы о практической эффективности использования алгоритмов умножения длинных чисел, как составных частей других алгоритмов, используемых в криптографии, а также программный комплекс, который использует различные наиболее эффективные алгоритмы умножения длинных чисел в зависимости от размерности входных чисел, что значительно увеличивает быстродействие вычисления операции умножения длинных чисел.
Выпускная квалификационная работа состоит из 4 основных глав:
- В первой главе приводится описание исследуемой предметной области, значимость исследуемых задач для криптографии, а также описание алгоритмов умножения длинных чисел, которые являются предметом исследования в настоящей работе.
- Во второй главе приводится описание разработанного программного комплекса, предназначенного для тестирования алгоритмов и методика проведения экспериментов, а также сформированные выводы по итогам проведения экспериментальных вычислений.
- В третьей главе приводится описание алгоритмов нахождения НОД и факторизации чисел, которые используют операции умножения.
- В четвертой главе приводится описание программного комплекса, который был разработан для проведения вычислительных экспериментов работы алгоритмов умножения длинных чисел в алгоритмах нахождения НОД и факторизации чисел.
По результатам проведенных работ можно утверждать, что все поставленные цели и задачи были выполнены, а именно были реализованы и проведены эксперименты со следующими алгоритмами умножения длинных чисел:
- «Наивный» алгоритм;
- Алгоритм Карацубы;
- Алгоритм Тоома-Кука;
- Алгоритм Шенхаге;
- Алгоритм Нюссбаумера.
Данные алгоритмы были протестированы в ходе применения в следующих практических задачах (математических алгоритмах):
- k-арный алгоритм нахождения НОД
- Алгоритм факторизации Ленстры
По результатам проведенных экспериментов можно сделать следующие выводы:
- Практическим путем подтвердилась гипотеза о том, что нет наиболее эффективного алгоритма умножения длинных чисел, разные алгоритмы умножения длинных чисел на числах разного порядка имеют разную эффективность.
- Для проведения операций умножения в рамках К-арного алгоритма нахождения НОД наиболее эффективным является «наивный» алгоритм умножения.
- Для проведения операций умножения в рамках алгоритма факторизации Ленстры при размерности входного числа менее 56 знаков наиболее эффективным является «наивный» алгоритм умножения, а в случае если размерность входного числа составляет 56 и более знаков наиболее эффективным является алгоритм умножения Карацубы.
1. Основы информационной безопасности в телекоммуникациях
[Электронный ресурс]. — Режим доступа: URL:
https://siblec.ru/telekommunikatsii/osnovy-informatsionnoj-bezopasnosti-v- telekommunikatsiyakh (дата обращения 20.02.2019)
2. Столяров, Н.В. Современная криптография [Текст] / Н.В. Столяров. — М.: Издательский дом «Вильямс», 2007. — 154 с.
3. Коптенок, Е. В. Разработка способа представления длинных чисел в памяти компьютера [Текст] / Е. В. Коптенок, А. В. Кузин, Т. Б. Шумилин, М. Д. Соколов. — Молодой ученый, 2017. — 26 с.
4. Качко, Е.Г. Распараллеливание алгоритмов умножения чисел многократной точности [Текст] / Е.Г. Качко. — Харьковский национальный университет радиоэлектроники, 2011. — 5 с.
5. Хайруллин, А. Н. Отчёт по производственной практике [Текст]: отчёт / А. Н. Хайруллин. — Казань: Казан. ун., 2018. - 7 c.
6. Померанс, К. Простые числа: Криптографические и вычислительные аспекты [Текст] / К. Померанс, Р. Крэндалл. — М.: УРСС: Книжный дом «Либроком», 2011. — 664 с.
7. Длинная арифметика [Электронный ресурс] — Режим доступа: URL: https://ru.wikipedia.org/wiki/%D0%94%D0 (дата обращения 27.03.2019)
8. Аграновский, А.В. Практическая криптография: алгоритмы и их программирование [Текст] / А.В. Аграновский, Р.А. Хади. — М.: Солон- Пресс, 2009. — 256 с.
9. Кормен, Т. Алгоритмы: построение и анализ [Текст] / Т. Кормен, Ч. Лейзерсон. — М.: Издательский дом «Вильямс», 2012. — 63 с.
10. Дербишир, Д. Простая одержимость [Текст] / Д. Дербишир. — АСТ Астрель, 2010. — 463 с.
11. Pomerance, C. The Pseudoprimes / C. Pomerance, J. Selfrifge, S. Samuel. — Math. Comput, 1994. — P. 1003-1026.
12.Черемушкин А. В. Лекции по арифметическим алгоритмам в криптографии [Текст] / А. В. Черемушкин. — М.: МЦНМО, 2001. —104 с.
13. Стюарт, И. Величайшие математические задачи [Текст] / И. Стюарт. — М.: ТВП, 2003. — 130 с.
14. Кнут, Д. Искусство программирования / Том 2 Получисленные алгоритмы [Текст] / Д. Кнут. — М.: Издательский дом «Вильямс», 2001. —128 с.
15. Ишмухаметов, Ш.Т. Задание на лабораторный практикум по курсу «Теоретические основы компьютерной безопасности» [Текст] / Ш.Т.Ишмухаметов. — Казань: Казан. ун., 2019. - 5 с.
16. Weber, К. А modular integer GCD algorithms / К. Weber, V. ^evisan, L. Martins. — Journal of Algorithms, 2005 — P. 152-167.
17. Ишмухаметов, Ш.Т. Методы факторизации натуральных чисел [Текст]: учебное пособие / Ш. Т. Ишмухаметов. — Казань: Казан. ун., 2011. — 113 с.
18. Факторизация с помощью эллиптических кривых [Электронный
ресурс]. — Режим доступа URL:
https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0% (дата обращения
13.04.2019)
19. Хайруллин, А. Н. Отчёт по преддипломной практике [Текст]: отчёт /А. Н. Хайруллин. — Казань: Казан. ун., 2019. - 23 c.