Введение 7
Глава 1 Теоретические основы эллиптических кривых 9
1.1 Эллиптические кривые в действительных числах 9
1.1.1 Определение эллиптической кривой 9
1.1.2 Эллиптическая кривая как группа 10
1.1.3 Сложение точек на эллиптической кривой 12
1.1.4 Скалярное умножение 18
1.1.5 Задача логарифмирования и ее значение в криптографии 20
1.2 Эллиптические кривые над конечными полями 21
1.2.1 Поле целых чисел по модулю p 21
1.2.2 Эллиптические кривые над полем 24
1.2.3 Сложение точек на эллиптической кривой над конечным полем ... 25
1.2.4 Порядок группы на эллиптической кривой 27
1.2.5 Циклические подгруппы и их характеристики 28
1.2.6 Задача дискретного логарифмирования 32
Глава 2 Алгоритмы эллиптической криптографии 35
2.1 Обмен ключами - ECDH 35
2.2 Цифровая подпись - ECDSA 36
2.3 Смешанные алгоритмы - ECIES 38
Глава 3 Программная реализация алгоритмов 42
3.1 Выбор средств 42
3.2 Структура проекта 42
3.3 Реализация эллиптических кривых 43
3.4 Реализация ECDH 54
3.5 Реализация ECDSA 55
Заключение 59
Список используемой литературы 60
В настоящий момент рынок мобильных устройств является одним из самых быстроразвивающихся на планете. У каждого человека есть если не смартфон, то обыкновенный мобильный телефон. Учитывая множество функций, которые выполняют в современном мире мобильные устройства, так или иначе они будут взаимодействовать с конфиденциальной информацией. Большинство этих устройств также имеют сетевые возможности, и там, где есть подключение к Интернету, есть злоумышленники, которые пытаются использовать слабые места в системе безопасности.
В дополнение к смартфонам и планшетам, Интернет вещей (IoT) также набирает популярность. Люди живут в "умных" домах, где лампочки, кондиционеры, гаражные двери и дверные звонки подключены к Интернету. Теперь, когда IoT размывает границы между цифровым и физическим миром, безопасность жизненно важна.
Актуальность бакалаврской работы объясняется тем, что криптография на эллиптических кривых является наиболее подходящим подходом к обеспечению информационной безопасности на устройствах с ограниченными вычислительными ресурсами [11]. К таким устройствам относятся как мобильные телефоны и смартфоны, так и маломощные домашние устройства IoT, работающие на беспроводных сетях. Криптография на эллиптических кривых достигает большей скорости выполнения при меньших размерах ключей, что позволяет экономить как память, так и процессорную мощность, и полосу пропускания [5]. Эти особенности делают ее идеальной для применения в современном мире, где мобильные устройства и беспроводная связь имеют большее распространение, чем когда-либо.
Целью бакалаврской работы является реализация криптографических алгоритмов на основе эллиптических кривых.
Задачи бакалаврской работы:
- описать теоретические основы эллиптических кривых,
использующиеся в криптографии;
- исследовать алгоритмы криптографии на эллиптических кривых;
- реализовать алгоритм обмена ключами ECDH и алгоритм цифровой подписи ECDSA.
Объектом исследования бакалаврской работы являются эллиптические кривые.
Предметом исследования бакалаврской работы являются криптографические алгоритмы на эллиптических кривых.
Бакалаврская работа содержит три главы.
В первой главе описывается математическая теория эллиптических кривых, использующаяся в криптографических алгоритмах. Описываются как эллиптические кривые в действительных числах, так и на конечных полях.
Во второй главе проводится исследование криптографических алгоритмов на эллиптических кривых. Исследуются три направления: обмен ключами через алгоритм ECDH, цифровая подпись через алгоритм ECDSA и смешанные алгоритмы шифрования через алгоритм ECIES.
В третьей главе происходит разработка и программная имплементация алгоритмов криптографии на эллиптических кривых. Разрабатываются как математические основы эллиптических кривых, так и алгоритмы, на них построенные.
Бакалаврская работа содержит 28 рисунков и 28 формул.
Выпускная квалификационная работа была посвящена реализации и исследованию криптографических алгоритмов на эллиптических кривых. Поставленная цель достигнута. Задачи, поставленные в начале работы, были выполнены.
В ходе выполнения работы из теории эллиптических кривых была выделены значимые части, стоящие в основе криптографии на эллиптических кривых.
Были проанализированы фундаментальные криптографические алгоритмы, основанные на эллиптических кривых. В том числе были рассмотрены направление обмена ключами на примере алгоритма ECDH, направление цифровой подписи на примере алгоритма ECDSA и направление шифрования на примере смешанного алгоритма ECIES.
Для программной реализации были выбраны алгоритмы ECDH и ECDSA. На основе объектно-ориентированного программирования были разработаны классы Fld, ElC, ECpt, ECgroup, реализующие програмно свойства конечных полей, эллиптических кривых, точек на эллиптических кривых, и групп эллиптических кривых над конечными полями соответственно.
Используя вышеописанные классы, были реализованы ранее рассмотренные алгоритмы обмена ключами ECDH, состоящий из одной функции, и цифровой подписи ECDSA, состоящий из двух функций: функции подписи и функции верификации.
Результатом работы является заголовочная библиотека классов, написанная на языке C++, которая реализует математические свойства эллиптических кривых и может использоваться для дальнейшего построения алгоритмов, а также уже реализованные алгоритмы ECDH и ECDSA.
1. Aumasson, J-P. Serious Cryptography: a Practical Introduction to Modern Encryption / J-P. Aumasson No Starch Press. - 2018.
2. Bancila, M. Modern C++ Programming Cookbook / M. Bancila Packt Publishing. - 2017.
3. Bancila, M. The Modern C++ Challenge / M. Bancila Packt Publishing. - 2018.
4. Easttom W Modern Cryptography / W Easttom Applied Mathematics for Encryption and Information Security. - Springer. - 2021.
5. Khaleel, A. Emerging Security Algorithms and Techniques / A. Khaleel CRC Press, Taylor & Francis Group. - 2019.
6. Neapolitan, R. E. Foundations of Algorithms. / R. E. Neapolitan Jones & Bartlett Learning. - 2015.
7. Shemanske T. R. Modern Cryptography and Elliptic Curves: a Beginners Guide / T. R. Shemanske American Mathematical Society. - 2017.
8. Welschenbach, M. Cryptography in C++ and C / M. Welschenbach Apress. - 2013.
9. Yang H. EC Cryptography Tutorials - Herong's Tutorial Examples / H. Yang. - 2019.
10. Friedl S. An Elementary Proof of the Group Law for Elliptic Curves. / S. Friedl - Groups Complexity Cryptology 10(1). - 2017. - pp. 117-123.
11. Harkanson, R. Applications of Elliptic Curve Cryptography / R. Harkanson, Y. Kim Proceedings of the 12th Annual Conference on Cyber and Information Security Research. - 2017. - pp. 1-7.
12. Koblitz, A. H. Elliptic Curve Cryptography: The Serpentine Course of a Paradigm Shift / A. H. Koblitz Journal of Number Theory 131(5). - 2011. - pp. 781-814.
13. Kodali R. K. Energy Efficient ECC Encryption Using ECDH / R. K. Kodali, N. V. S. Narasimha Sarma. Lecture Notes in Electrical Engineering Emerging Research in Electronics, Computer Science and Technology. - 2013. - pp. 471-478.
14. Setiadi I. Elliptic curve cryptography: Algorithms and implementation analysis over coordinate systems / I. Setiadi, A. I. Kistijantoro, A. Miyaji 2015 2nd International Conference on Advanced Informatics: Concepts, Theory and Applications (ICAICTA). - 2015. - pp. 1-6.
15. The Elliptic Curve Diffe-Hellman (ECDH) // Портал KogLab
[Электронный ресурс]. URL:
http://koclab.cs.ucsb.edu/teaching/ecc/project/2015Projects/Haakegaard+Lang.pdf (дата обращения: 01.06.2021).
16. The Elliptic Curve Digital Signature Algorithm (ECDSA) // Портал кафедры информационных технологий университета Майами [Электронный ресурс]. URL: https://www.cs.miami.edu/home/burt/learning/Csc609.142/ecdsa- cert.pdf (дата обращения: 01.06.2021).
17. The Elliptic Curve Group Law // Портал кафедры математики
Брауновского университета [Электронный ресурс]. URL:
https: //www. math.brown. edu/reschwar/M1540B/elliptic. pdf (дата обращения: 01.06.2021).
18. The Euclidean Algorithm and Multiplicative Inverses // Портал кафедры математики университета Уты [Электронный ресурс]. URL: https://www.math.utah.edu/~fguevara/ACCESS2013/Euclid.pdf (дата обращения: 01.06.2021).
19. Givaro: Givaro Documentation // Документация Givaro в
электронном виде [Электронный ресурс]. URL: https://casys. gricad-pages.univ- grenoble-alpes.fr/givaro/givaro-html/index.html (дата обращения: 01.06.2021).
20. Schoofs algorithm // Портал кафедры математики Массачусетского
технологического института [Электронный ресурс]. URL: https://math.mit.edu/classes/18.783/2015/LectureNotes9.pdf (дата обращения: 01.06.2021).