Разработка и исследование алгоритмов для организации защищенных анонимных дистанционных голосований тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Дьячкова Ирина Сергеевна

  • Дьячкова Ирина Сергеевна
  • кандидат науккандидат наук
  • 2025, ФГБОУ ВО «Сибирский государственный университет телекоммуникаций и информатики»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 205
Дьячкова Ирина Сергеевна. Разработка и исследование алгоритмов для организации защищенных анонимных дистанционных голосований: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГБОУ ВО «Сибирский государственный университет телекоммуникаций и информатики». 2025. 205 с.

Оглавление диссертации кандидат наук Дьячкова Ирина Сергеевна

ВВЕДЕНИЕ

1 ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ ИССЛЕДОВАНИЯ

1.1 Необходимые сведения из криптографии

1.1.1 Электронная (цифровая) подпись

1.1.1.1 Алгоритм RSA

1.1.1.2 Алгоритм «слепой» электронной подписи

1.1.1.3 Хеширование

1.1.2 Блокчейн-технология

1.1.2.1 Доказательство выполнения работы (proof-of-work)

1.1.2.2 Создание цепочки блоков и датирование документов

1.2 Обзор криптографических протоколов дистанционного анонимного голосования

1.2.1 Описание известных протоколов тайного голосования

1.2.2 Обзор некоторых существующих систем тайного голосования

1.2.3 Проблема организации систем тайного голосования

1.3 Основные способы организации анонимной передачи данных

1.4 Выводы по первой главе

2 СИСТЕМА ДИСТАНЦИОННОГО АНОНИМНОГО ГОЛОСОВАНИЯ

2.1 Формальная постановка задачи голосования и основные требования к разрабатываемой системе

2.2 Протокол дистанционного голосования на базе «слепой» электронной подписи и алгоритма для анонимной передачи данных

2.3 Анонимный канал передачи данных

2.4 Угрозы и уязвимости в системе

2.4.1 Уязвимости, возникающие при программной реализации системы

2.4.2 Уязвимости, возникающие при описании системы

2.4.2.1 Уязвимости, возникающие при создании и подписывании бюллетеня

2.4.2.2 Угрозы, возникающие при отправке данных по анонимному каналу

2.4.2.3 Другие угрозы

2.5 Выводы по второй главе

3 ЗАЩИЩЕННОЕ ДИСТАНЦИОННОЕ АНОНИМНОЕ ГОЛОСОВАНИЕ И ИССЛЕДОВАНИЕ ЕГО ПАРАМЕТРОВ

3.1 Протокол защищенного анонимного электронного голосования

3.2 Определение степени анонимности сети

3.2.1 Определение наилучшей вероятности отправки сообщения для минимального количества голосующих

3.2.2 Определение наилучшей вероятности отправки сообщения для трех и более голосующих

3.3 Выводы по третьей главе

4 ОСОБЕННОСТИ ПРИКЛАДНОЙ РЕАЛИЗАЦИИ СИСТЕМЫ ДИСТАНЦИОННОГО АНОНИМНОГО ГОЛОСОВАНИЯ

4.1 Описание деталей реализации отдельных этапов протокола защищенного анонимного электронного голосования

4.2 Архитектура клиент-серверного взаимодействия

4.2.1 Общие принципы взаимодействия

4.2.2 Связь представлений с функционалом сайта

4.3 Архитектура баз данных

4.4 Особенности распределения прав пользователей и организации интерфейса

4.5 Исследование прототипа системы дистанционного анонимного голосования

4.5.1 Установка программного комплекса на сервер

4.5.2 Описание функций прототипа системы дистанционного анонимного голосования

4.5.3 Описание и тестирование улучшенного прототипа системы дистанционного анонимного голосования

4.6 Выводы по четвертой главе

ЗАКЛЮЧЕНИЕ

СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ

ПУБЛИКАЦИИ АВТОРА ПО ТЕМЕ ДИССЕРТАЦИИ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ А

ПРИЛОЖЕНИЕ Б

ПРИЛОЖЕНИЕ В

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Разработка и исследование алгоритмов для организации защищенных анонимных дистанционных голосований»

ВВЕДЕНИЕ

Основные определения и понятия.

Голосование - способ группового принятия решения, при котором общее мнение формулируется путём подсчёта голосов членов группы.

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

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

- легитимность голосования (голосовать могут только уполномоченные избиратели);

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

- решение голосующего не может быть изменено кем-то другим (никто не может изменить чужой голос, не будучи обнаруженным).

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

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

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

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

В связи с этим в настоящее время актуальной является задача создания анонимной и устойчивой к атакам (защищенной) системы дистанционного голосования.

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

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

Начало научного описания систем шифрования было положено в работах К. Шеннона (Shannon, C.) в 1948 году [82]. Наибольший подъем исследований начался после создания У. Диффи (Diffie, W.) и М. Хеллманом (Hellman, M.) в 1976 году криптосистемы с открытым ключом [61]. Далее важные результаты были получены в работах известных исследователей Р. Меркля (Mercle, R.) [75], Р. Ривеста (Rivest, R.), А. Шамира (Shamir, A.), Л. Адлемана (Adleman, L.), например [79], а также Д. Чаума (Chaum, D) [58]. Значительный вклад в развитие современной криптографии внесли работы Б.Я. Рябко [34],

B.И. Коржика [13], В.А. Яковлева [12], И.В. Котенко [1], А.Н. Фионова [35],

C.В. Беззатеева [2], С.В. Белима [55] и других отечественных ученых.

Именно криптографические алгоритмы позволяют формировать, подписывать и впоследствии хранить бюллетени в электронном голосования.

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

Степень разработанности темы исследования. Задача разработки криптографических протоколов анонимного дистанционного голосования рассматривалась многими исследователями. Одной из наиболее эффективных считается схема Фудзиоки - Окамото - Оты [68], основанная на «слепой» подписи. В настоящее время существует множество модификаций этого и других протоколов [60, 68, 71], однако все эти разработки имеют свои недостатки. Например, проблема многих алгоритмов голосования заключается в том, что после снятия «маскирующего» шифрования в слепой подписи бюллетень пользователя должен быть отправлен на сервер по анонимному каналу, а организация такого канала является достаточно сложной задачей.

В некоторых схемах голосования предлагается использовать существующие решения по организации анонимных каналов на основе гибридных сетей, например, VPN [67] или TOR [62]. Но использование таких схем может привести к утечке данных пользователей и, как следствие, нарушению анонимности голосования.

Поэтому в настоящее время востребована разработка альтернативных защищенных алгоритмов дистанционного анонимного голосования.

Объектом исследования является защищенное анонимное дистанционное голосование.

Предметом исследования являются алгоритмы для организации защищенного анонимного дистанционного голосования, отвечающего заданным свойствам.

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

алгоритмах, должны обладать доказанными свойствами анонимности и удовлетворять типовым требованиям, предъявляемым к протоколам дистанционного голосования.

В соответствии с поставленной целью определены следующие задачи:

1. Разработка и исследование методов и алгоритмов формирования бюллетеней и подписывания их при помощи «слепой» электронной подписи.

2. Разработка алгоритма организации анонимного канала для отправки бюллетеней на сервер голосования.

3. Разработка метода расчета вероятности передачи бюллетеня напрямую серверу для достижения максимальной анонимности пользователей.

4. Разработка алгоритмов для защиты дистанционного голосования от саботажа пересылки бюллетеней и других угроз.

5. Исследование особенностей программной реализации системы анонимного защищенного дистанционного голосования.

Научная новизна результатов работы.

1. Разработан протокол дистанционного голосования на базе «слепой» электронной подписи и алгоритма для анонимной передачи данных, который соответствует всем требованиям к анонимности и защищенности голосований. В данном протоколе впервые было сформулировано и выражено в виде количественной характеристики понятие анонимности голосования.

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

3. Предложена формула для расчета вероятности передачи бюллетеня напрямую серверу. Данная формула позволяет для каждого конкретного количества участников определить такое значение вероятности, при котором неопределенность отправителя бюллетеня отличается от теоретического максимума не более, чем на 1%.

4. Разработана детализированная схема построения систем голосования и даны рекомендации по настройке параметров этих систем для обеспечения анонимности и защиты от саботажа и других угроз.

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

Разработанный протокол анонимного голосования (на базе «слепой» подписи и алгоритма для анонимной передачи бюллетеней) позволяет строить системы голосований для различных областей применения с ограниченным количеством участников, в частности, для ученых и диссертационных советов.

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

Технология «Блокчейн», используемая в предложенном протоколе голосования, позволяет обеспечить дополнительную защищенность хранения данных.

Внедрение результатов работы. Основные результаты использованы при выполнении следующих проектов и государственных программ.

- Разработка эффективных теоретико-информационных методов и средств анализа и обработки больших данных для обеспечения устойчивости и безопасности информационно-телекоммуникационных систем: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И.В. Нечта, исполн.: А.А. Ракитский, П.А. Приставка, К.И. Морозова, У.В. Павлова, И.С. Дьячкова. Новосибирск, 12.01.2022. 31 с. Библиогр.: 23. № ГР 1210628002035.

- Разработка и исследование теоретико-информационных подходов и методов машинного обучения для защиты, анализа и передачи данных: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики;

рук. И.В. Нечта, исполн.: А.А. Ракитский, П.А. Приставка, А.Р. Чусовитин, И.С. Дьячкова, Б.В. Бочкарев. Новосибирск, 21.01.2021. 32 с. Библиогр.: 21. № ГР АААА-А20-120042490019-4.

- Разработка и исследование перспективных методов машинного обучения для повышения эффективности обработки данных: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И.В. Нечта, исполн.: А.А. Ракитский, П.А. Приставка, И.С. Дьячкова, Б.В. Бочкарёв, Новосибирск, 2020. 42 с. Библиогр.: 27. № ГР АААА-Б20-220012890074-1.

Результаты работы внедрены:

- в учебный процесс кафедры Прикладной математики и кибернетики (ПМиК) ФГБОУ ВО «Сибирский государственный университет телекоммуникаций и информатики» в программах курсов "Защита информации" (бакалавриат) и "Перспективные технологии защиты информации" (магистратура) направлений 09.03.01, 09.04.01 "Информатика и вычислительная техника",

- в структуру ФГБОУ ВО «Сибирский государственный университет науки и технологий имени академика М.Ф. Решетнева» в виде системы дистанционного голосования для проведения голосований на кафедре Безопасности информационных технологий (БИТ),

- в структуру ФГБОУ ВО «Новосибирский государственный технический университет» в виде системы дистанционного голосования для проведения голосований на кафедре Защиты информации (ЗИ).

Получены два свидетельства о государственной регистрации программ для ЭВМ: № 2022610697 от 13.01.2022 [49] и № 2025611810 от 23.01.2025 [50].

Методология и методы исследования. В диссертационной работе применялись методы теории информации, криптографии, высшей математики и теории вероятностей.

Положения, выносимые на защиту:

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

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

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

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

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

Апробация результатов. Основные результаты работы докладывались и обсуждались на международных и всероссийских научных конференциях:

IEEE International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON - 2019, г. Новосибирск), 2021 IEEE Ural Symposium on Biomedical Engineering, Radioelectronics and Information Technology (USBEREIT - 2021, г. Екатеринбург), Информатика и математическое моделирование (2018, г. Новосибирск), Обработка информации и математическое моделирование (2019, г. Новосибирск), Современные проблемы

телекоммуникаций (2021, г. Новосибирск), Информационная безопасность цифровой экономики (2021, г. Новосибирск), Обработка информации и математическое моделирование (2023, г. Новосибирск).

Публикации. По теме диссертации лично и в соавторстве опубликованы 14 научных работ, в том числе 2 статьи в научных журналах и изданиях, входящих в перечень ВАК РФ, 2 научные публикации, индексируемые в международных информационно-аналитических системах научного цитирования Web of Science и Scopus, 2 свидетельства о регистрации программ для ЭВМ, 3 отчета по НИР, а также 5 работ, опубликованных в других изданиях и сборниках трудов конференций.

Личный вклад в работах, выполненных в соавторстве, состоит в построении и реализации предлагаемых алгоритмов, оценке их эффективности, проведении необходимых экспериментальных исследований, доказательстве свойств протоколов.

Соответствие паспорту специальности. Диссертационное исследование соответствует паспорту научной специальности 2.3.8 - «Информатика и информационные процессы», а именно:

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

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

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

литературы и трех приложений. Работа содержит 7 таблиц и 37 рисунков. Список литературы включает в себя 86 источников.

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

Вторая глава посвящена системе дистанционного анонимного голосования. В ней рассматриваются основные требования к разрабатываемой системе. Описано применение алгоритма «слепой» подписи к протоколу анонимного голосования. Предложена схема организации анонимного канала передачи данных голосования на сервер. Рассмотрены возможные угрозы и атаки на систему.

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

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

Заключение содержит основные выводы по результатам выполненных исследований.

Приложение А содержит свидетельства о регистрации программ, приложение Б содержит исходные коды программного прототипа системы анонимного дистанционного голосования, приложение В содержит акты о внедрении результатов диссертации.

1 ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ ИССЛЕДОВАНИЯ

1.1 Необходимые сведения из криптографии

1.1.1 Электронная (цифровая) подпись

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

1.1.1.1 Алгоритм RSA

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

Пусть в системе имеется клиент - Alice (Алиса), он выбирает случайно два больших простых секретных числа Р и Q (Р Ф Q), затем вычисляет открытый другим пользователям параметр N = PQ, а также 4>(N) = (Р — 1)(Q — 1) -функцию Эйлера для числа N.

После этого пользователь Alice выбирает число d < ф(М), взаимно простое с и по обобщенному алгоритму Евклида [35] вычисляет значение

с - инверсию числа d, т.е. с = d~" mod ф(М). Теперь у клиента Alice имеются открытый параметр N, открытый ключ d и секретный ключ с. Соотношение этих параметров также можно описать следующим образом: c,d < N и cd mod ф(Ы) = 1. Числа N и d публикуются в свободном доступе, ключ с хранится в секрете от остальных участников системы.

Предположим, пользователь Alice хочет отправить сообщение т = т" ... тп, где п - количество бит в сообщении. Тогда сначала ему необходимо вычислить хеш-функцию от данного сообщения, алгоритм которой известен всем участникам: h = hash(m). Криптографические хеш-функции, применяемые в алгоритме электронной подписи, должны обладать следующим свойством: практически невозможно изменить текст хешируемого сообщения т, не изменив значение h. Поэтому после вычисления h достаточно создать электронную подпись для этого значения, она автоматически будет относиться и к сообщению т = т± ... тп.

Далее происходит процесс подписывания, в ходе которого Alice возводит значение h в степень своего секретного ключа с по модулю открытого параметра N: s = h$ mod N. Полученное значение s (подпись) добавляется к исходному сообщению т и Alice теперь имеет подписанное сообщение вида (т, s).

Подлинность данной электронной подписи может проверить любой пользователь, который знает открытые ключи Alice N и d, а также знает, какой алгоритм хеширования использовался при создании электронной подписи (поэтому данная информация также должна быть открытой для проверяющих). Для проверки подписи нужно вычислить значение хеш-функции от исходного сообщения т по тому же алгоритму, который использовала Alice, а затем сравнить ее значение со значением подписи, возведенным в степень открытого ключа d по модулю N, то есть произвести проверку равенства hash(m) = s% mod N.

В случае совпадения значений электронная подпись считается верной и действительной для сообщения т.

1.1.1.2 Алгоритм «слепой» электронной подписи

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

Людям тяжело было привыкнуть к необходимости делиться информацией о своей кредитной карте при совершении покупок в Интернете, так как некоторые компании собирают данные об онлайн-покупках пользователей. В 1990-х годах шифрование на уровне протокола только начинало развиваться, и покупатели боялись передавать данные своих карт по незащищенному каналу. В такой среде возник большой интерес к промежуточной архитектуре. Таким образом появились компании, которые стали посредниками в платежах. Например, первой промежуточной платежной компанией была FirstVirtual [72], затем появились CyberCash [66] и другие. В подобных платежных системах общение между покупателем и продавцом происходит через компанию-посредника, в таком случае покупатель отправляет информацию о своей кредитной карте этому посреднику, который утверждает транзакцию и уведомляет продавца. Посредник рассчитывается с продавцом в конце каждого дня. Это дает покупателям анонимность перед продавцом, а также сохраняет данные их кредитных карт

в безопасности, однако теряется удобство непосредственного общения с продавцом.

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

Одна из ранних идей применения криптографии к онлайн-платежам и создания электронных денег принадлежит Д. Чауму [58]. В 1983 году он изобрел алгоритм «слепой подписи» и впервые реализовал его на основе метода RSA. Основная особенность этой электронной подписи заключается в том, что подписавший не может знать содержание подписываемого документа, он только проверяет этот документ на соответствие определенным условиям (параметрам) и подписывает его при соблюдении всех условий. Данная схема считается безопасной, потому что взломать ее можно, применив факторизацию, то есть разложив большое составное число (модуль N) на простые множители. На самом деле, взломать RSA можно, если придумать алгоритм извлечения корней по модулю N более простой, чем факторизация числа N. Пока такого алгоритма не существует. Как было описано ранее, данная схема используется во многих криптографических протоколах.

Алгоритм слепой подписи работает на основе протокола RSA, однако RSA может быть заменен любым другим алгоритмом цифровой подписи с открытым и закрытым ключом, например, любым из алгоритмов семейства DSA [74]. Кроме того, протокол подписи можно легко изменить, не нарушая сути алгоритма.

Эта схема используется во многих криптографических протоколах, рассмотрим далее ее использование для системы «электронные деньги» [35]. Существуют «плохие» (имеющие уязвимости) и «хорошие» варианты построения схемы «электронные деньги», однако в данной работе будет описана сразу «хорошая» схема, исключающая недостатки и уязвимости «плохих» схем.

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

Этап 1. Со счета покупателя в банке снимается необходимая для покупки сумма.

Этап 2. Снятая со счета покупателя сумма «пересылается» от покупателя к продавцу.

Этап 3. Продавец сообщает в банк, что была совершена сделка с покупателем, банк зачисляет нужную сумму на счет магазина (продавца) и затем товар доставляется покупателю.

Схема должна быть безопасной и анонимной, то есть такой, чтобы злоумышленники не могли подделать электронные банкноты, а банк не мог узнать, кто именно купил данный товар. Далее приведено подробное пошаговое описание такой схемы.

1. Данная схема базируется на алгоритме RSA. Банк создает 3 секретных параметра (Р, Q и с) и 2 открытых параметра:

N = PQ,

(1.1)

d = сmod ф(Ы),

(1.2)

где Р, Q - большие простые числа (рекомендованный размер Р, Q для устойчивости к факторизации - не менее 512 бит),

N - модуль, по которому будут выполняться все операции, Ф(Ю = (Р — 1)(Q — 1) - функция Эйлера для числа N,

с и d - закрытый и открытый ключи соответственно (с, d < N, cd mod ф(Ы) = 1).

2. Допустим, покупатель хочет израсходовать купюру определенного номинала (заранее обговоренного с банком). В данном протоколе подразумевается, что пользователю известны открытые параметры банка N и d.

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Дьячкова Ирина Сергеевна, 2025 год

Литература

Любимый литературный жанр?

Фантастика Детектив Прикпючения

Проголосовать

Перейти к результатам голосований

Назад

Рисунок 4.8 - Форма выбора вариантов ответа

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

Литература

Любимый литературный жанр?

Фантастика = 13 Детектив = 14 Приключения = 7

Рисунок 4.9 - Результаты голосования в данный момент времени

Администратор системы имеет гораздо больше прав, чем обычный пользователь (см. рисунок 4.10). Он может создавать голосования (см. рисунок 4.11). При создании нового голосования помимо самой формулировки вопроса и вариантов ответа (до 30 вариантов), необходимо указывать дату и время начала и окончания голосования. Также администратор может удалять голосования из системы (см. рисунок 4.12).

Меню суперпользователя [admin]

Текущие голосования ■ Результаты голосований Создать голосование Удалить голосование

л Список пользователей - Группы пользователей _ Добавить пользователя Удалить пользователя

- Инструкция администратора ■ Сменить пароль [а(1шш] - Все голосования (в системе)

Назад

Рисунок 4.10 - Меню функций администратора голосования

Создание голосования

Название

Текст вопроса

Дата и время начала голосования

Дата и время окончания гало сования

Выберите группы, которые могут голосовать

Все сотрудники ИВТ СО РАН

Рисунок 4.11 - Форма создания нового голосования

Удаление голосований

Удалить

Главное меню

Рисунок 4.12 - Форма для удаления голосований

Администратор управляет аккаунтами пользователей, в частности, он имеет право регистрировать и удалять пользователей (см. рисунки 4.13 и 4.14), просматривать список всех участников системы (см. рисунок 4.15).

Добавление пользователей

пп

Создать

Рисунок 4.13 - Форма для создания нового пользователя

Удаление пользователей

Удалить

Рисунок 4.14 - Форма для удаления пользователя

Список пользователей

Ю_пользователя: Логин: ФИО_пользователя:

8 Ре^оуаАппа Петрова Анна Васильевна

10 Махт1сл/_Махнг) Максимов Максим Петрович

11 1уапоу_Ре1г Иванов Петр Сергеевич

12 Та га$оуАпс1 геу Тарасов Андрей Михайлович

13 ОуасИкоуа_1ппа Дьячкова Ирина Сергеевна

14 Магкоуа_1пда Маркова Инга Федоровна

Главное меню

Рисунок 4.15 - Список всех пользователей приложения

Также администратор может создавать и удалять группы пользователей (см. рисунок 4.16), просматривать состав групп, добавлять или исключать участников из групп (см. рисунок 4.17).

Редактирование групп пользователей

Все сотрудники ИВТ СО РАН

Студенты

ГруппаЗ

Группа 5

Главное меню

Создать фуппу пользователей Удалить группу пользователей

Рисунок 4.16 - Редактирование групп пользователей

Группа пользователей (кодовое слово группы):

students

Юпользователя: Логин: ФИО_пользователя:

11 IvanovPetr Иванов Петр Сергеевич

10 Maximov_Maxim Максимов Максим Петрович

12 Tarasov_Andrey Тарасов Андрей Михайлович

С Добавить пользователей в данную группу J

О Петрова Анна Васильевна [Petrova_Anna]

□ Максимов Максим Петрович [Maximov_Maxim]

О Иванов Петр Сергеевич [Ivanov_Petr]

□ Тарасов Андрей Михайлович [Tarasov_Andrey]

□ Дьячкова Ирина Сергеевна [Dyachkova_Irina]

□ Маркова Инга Федоровна [Markova_Inga]

| Reset | OK |

( Удалить пользователей из данной группы ]

Главное меню

Рисунок 4.17 - Просмотр состава групп пользователей, редактирование

участников группы

4.5.3 Описание и тестирование улучшенного прототипа системы дистанционного анонимного голосования

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

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

- C# [23] - в качестве основного языка программирования,

- .net Blazor Web App [15] - для реализации клиентской части проекта,

- .net Web API - для реализации серверной части проекта,

- Docker (Docker Compose) [27] - для организации топологии приложения,

- PostgreSQL [30] - для создания серверной и клиентской баз данных,

- Nginx [29] - для организации единой точки входа и распределения трафика между клиентскими приложениями.

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

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

Все обязательные требования, выдвинутые в главе 1, были выполнены в разрабатываемом прототипе системы голосований на языке C#. Среди необязательных требований указано, что система не должна затрачивать много ресурсов. Разработанная система учитывает этот критерий и подходит для малых групп (например, для голосований ученых советов или диссертационных советов).

В среднем, на одного планируемого пользователя системы потребуется 80 Мб оперативной памяти. Например, на компьютере с 16 Гб оперативной памяти можно запустить голосование приблизительно на 170 участников. Из 16 ГБ на серверную часть, базы данных и сервер ^тх необходимо не более 500 Мб. На практике же максимальное количество участников может оказаться меньше в связи с высокими накладными расходами при пересылке бюллетеней между клиентами. Однако возможно увеличение максимального количества пользователей за счет выделения дополнительной оперативной памяти и увеличения экземпляров клиентской части приложения.

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

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

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

Было проведено нагрузочное тестирование при количестве участников голосования от 2 до 64 для выявления зависимости между количеством участников и временем (в секундах), затрачиваемым системой на доставку всех бюллетеней до сервера. Результаты данного тестирования представлены на рисунке 4.18 в виде графика вышеописанной зависимости. По результатам тестирования выявлена следующая закономерность: при двукратном увеличении количества участников

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

Рисунок 4.18 - Зависимость между временем доставки всех бюллетеней на сервер

и количеством участников голосования

Ниже представлен интерфейс обновленного программного прототипа, реализованный с использованием .net Blazor Web App.

На рисунке 4.19 показана форма авторизации на сайте голосования. Так же, как и в предыдущей версии системы, самостоятельно зарегистрироваться невозможно. Администратор может регистрировать новых участников (см. рисунок 4.20), выдавать им логин и пароль для первого входа в систему (впоследствии у пользователя имеется возможность изменить пароль). Администратор может просматривать список всех пользователей системы, а также удалять участников из приложения (см. рисунок 4.21).

Рисунок 4.19 - Форма авторизации в обновленном программном прототипе

системы голосований

Рисунок 4.20 - Форма для регистрации нового пользователя в обновленном программном прототипе системы голосований

Информация '— Пользователи

Группы Голосования

Рисунок 4.21 - Список всех пользователей обновленного приложения

Администратор может создавать и удалять группы пользователей (см. рисунок 4.22), просматривать состав групп (см. рисунок 4.23), добавлять или исключать участников из групп.

Рисунок 4.22 - Создание групп пользователей в обновленном приложении

Рисунок 4.23 - Просмотр групп пользователей в обновленном приложении

Администратор имеет право создавать новые голосования (см. рисунок 4.24). При создании нового голосования помимо названия, формулировки вопроса, вариантов ответа (до 30 вариантов), даты и время начала и окончания голосования необходимо указывать тип голосования - с единственным возможным выбором или с множественным выбором. Также можно выбрать и назначить группы пользователей, которые имеют право участвовать в данном голосовании. Администратор может просматривать уже созданные голосования (см. рисунок 4.25) и удалять голосования из системы.

Рисунок 4.24 - Форма создания голосования в обновленном приложении

Рисунок 4.25 - Просмотр голосований в обновленном приложении

Рядовой участник голосования имеет доступ лишь к текущим голосованиям, и результатам уже закончившихся голосования. Для удобства пользователей на основной странице представлена инструкция (см. рисунок 4.26).

Информация

ЬогоуоуАУ | вый™

Инструкция пользователя

Рядовой участник голосования имеет доступ лишь к текущим голосованиям и результатам этих голосований. В боковом меню есть пункт "Мои голосования" где отображаются все голосования пользователя.

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

Рисунок 4.26 - Инструкция пользователя в обновленном приложении

При переходе в пункт меню «Мои голосования» появляется информация о голосованиях, в которых данный пользователь участвовал или собирается принять участие (см. рисунок 4.27).

Рисунок 4.27 -Информация о голосованиях, доступных пользователю в

обновленном приложении

В голосовании можно выбрать один или несколько вариантов ответа, в зависимости от типа голосования - с единственным возможным выбором (см. рисунок 4.28) или с множественным выбором (см. рисунок 4.29).

Система голосования Голосование: Голосование 3 х ЬогоуоуАУ вый™

Информация Мои ГОЛОСОВ Описание: Тестовое голосование 3 Дата начала

14.01.2025 00:00

1(1 Тема Ог Дата окончания 15.01.2025 00:06 Конец Голос зачтен

1 Голосование 1 Те Варианты: 2025 0:00:00 12.01.2025 21:56:00 о

3 Голосование 2 Те О Вариант 1 2025 0:06:00 16.01.2025 0:06:00 о

4 Голосование 3 те (•) Вариант 2 2025 0:00:00 15.01.2025 0:06:00 □

О Вариант 3

Рисунок 4.28 - Форма выбора одного варианта ответа в обновленном приложении

Система голосования

Информация

Рисунок 4.29 - Форма выбора вариантов ответа (множественный выбор)

в обновленном приложении

После окончания времени, отведенного на голосование, пользователь может ознакомиться с результатами голосования (см. рисунок 4.30).

Рисунок 4.30 - Результаты голосования в обновленном приложении

4.6 Выводы по четвертой главе

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

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

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

3. Представленная схема тайного дистанционного голосования является хорошей альтернативой традиционному голосованию и другим анонимным цифровым системам для голосований.

147

ЗАКЛЮЧЕНИЕ

В диссертационной работе разработаны и исследованы алгоритмы для организации анонимных дистанционных голосований, обладающие доказанными свойствами анонимности и удовлетворяющие типовым требованиям, предъявляемым к протоколам дистанционного голосования.

В процессе работы получены следующие результаты:

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

2. Разработан метод организации анонимного канала для отправки бюллетеней на сервер голосования. Представленная в работе схема организации анонимного канала передачи бюллетеней позволяет пользователям отправлять свои голоса на сервер, не раскрывая их выбор.

3. Предложена формула для расчета вероятности передачи бюллетеня напрямую серверу. Данная формула позволяет для каждого конкретного количества участников определить такое значение вероятности, при котором энтропия системы отличается от теоретического максимума не более, чем на 1%.

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

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

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

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

СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ

DoS Denial-Of-Service («отказ в обслуживании»), хакерская атака

на вычислительную систему с целью довести её до отказа DDoS Distributed Denial-Of-Service, распределённая атака типа «отказ в обслуживании»

HTML HyperText Markup Language («язык гипертекстовой разметки»), стандартизированный язык гипертекстовой разметки документов для просмотра веб-страниц в браузере

HTTP HyperText Transfer Protocol («протокол передачи гипертекста»)

URL Uniform Resource Locator («единообразный указатель

местонахождения ресурса»), адрес ресурса в сети Интернет

БД База данных

см. смотрите

СУБД Система управления базами данных

ЭВМ Электронная вычислительная машина

ЭЦП Электронная цифровая подпись

ПУБЛИКАЦИИ АВТОРА ПО ТЕМЕ ДИССЕРТАЦИИ

1. Дьячкова, И.С. Исследование и анализ потенциальных уязвимостей системы анонимного дистанционного голосования [Текст] / И.С. Дьячкова // Современные проблемы телекоммуникаций: Международная науч.-техн. конф.: материалы конф. - СибГУТИ, Новосибирск: [Б. и.], 2021. - С. 124-127.

2. Дьячкова, И.С. Методы модификации протокола электронного анонимного голосования для профилактики попыток саботажа [Текст] / И.С. Дьячкова // Обработка информации и математическое моделирование: Всерос. науч.-техн. конф.: материалы конф. - СибГУТИ, Новосибирск: [Б. и.], 2023. -С.164-167.

3. Дьячкова, И.С. Разработка защищенной системы дистанционного голосования и исследование характеристик её анонимности [Текст] / И.С. Дьячкова // Вестник СибГУТИ. - 2023. - Т. 17, №3. - С. 106-122.

4. Дьячкова, И.С. Система электронного анонимного голосования на основе «слепой» цифровой подписи [Текст] / И.С. Дьячкова, А.А. Ракитский // Вычислительные технологии. - 2024. - Т. 29, № 1. - С. 59-73.

5. Дьячкова, И.С. Сравнительный анализ существующих криптовалют [Текст] / И.С. Дьячкова // Информатика и математическое моделирование: Рос. науч.-техн. конф.: материалы конф. - СибГУТИ, Новосибирск: [Б. и.], 2018. -С.137-140.

6. Дьячкова, И.С. Система дистанционного анонимного голосования [Текст] / И.С. Дьячкова, А.А. Ракитский // Обработка информации и математическое моделирование: Рос. науч.-техн. конф.: материалы конф. -СибГУТИ, Новосибирск: [Б. и.], 2019. - С. 179-182.

7. Дьячкова, И.С. Система электронного тайного голосования на основе слепой цифровой подписи [Текст] / И.С. Дьячкова // Информационная безопасность цифровой экономики: Всерос. науч.-техн. конф.: материалы конф. -СибГУТИ, Новосибирск: [Б. и.], 2021.

8. Разработка и исследование перспективных методов машинного обучения для повышения эффективности обработки данных: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И. В. Нечта, исполн.: А. А. Ракитский, П.А. Приставка, И.С. Дьячкова, Б.В. Бочкарёв, Новосибирск, 2020. 42 с. Библиогр.: 27. № ГР АААА-Б20-220012890074-1.

9. Разработка и исследование теоретико-информационных подходов и методов машинного обучения для защиты, анализа и передачи данных: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И.В. Нечта, исполн.: А. А. Ракитский, П.А. Приставка, А.Р. Чусовитин, И.С. Дьячкова, Б.В. Бочкарев. Новосибирск, 21.01.2021. 32 с. Библиогр.: 21. № ГР АААА-А20-120042490019-4.

10. Разработка эффективных теоретико-информационных методов и средств анализа и обработки больших данных для обеспечения устойчивости и безопасности информационно-телекоммуникационных систем: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И. В. Нечта, исполн.: А. А. Ракитский, П.А. Приставка, К.И. Морозова, У.В. Павлова, И.С. Дьячкова. Новосибирск, 12.01.2022. 31 с. Библиогр.: 23. № ГР 1210628002035.

11. Свид. 2022610697 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программный комплекс для организации и проведения анонимного дистанционного голосования / И.С. Дьячкова, А.А. Ракитский; правообладатель "СибГУТИ". Заявл. 22.12.2021, опубл. 13.01.2022. [Электронный ресурс]. - [Б. м.: б. и.].

12. Свид. 2025611810 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программный комплекс для организации дистанционного анонимного голосования / И.С. Дьячкова, М.С. Дьячкова, А.А. Ракитский,; правообладатель "СибГУТИ". Заявл. 09.01.2025, опубл. 23.01.2025. [Электронный ресурс]. - [Б. м.: б. и.].

13. Dyachkova, I. Anonymous remote voting system [Text] / I. Dyachkova, A. Rakitskiy // 2019 International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON). - Novosibirsk: [S.n.], 21-22 Oct, 2019. P. 0850 -0852.

14. Dyachkova, I. Development of the Remote Anonimous Voting System and the Analysis of its Vulnerabilities [Text] / I. Dyachkova, A. Rakitskiy // 2021 Ural Symposium on Biomedical Engineering, Radioelectronics and Information Technology (USBEREIT). - Yekaterinburg: [S.n.], 2021. P. 485 - 487.

СПИСОК ЛИТЕРАТУРЫ

1. Браницкий, А.А. Анализ и классификация методов обнаружения сетевых атак [Текст] / А.А. Браницкий, И.В. Котенко // Труды СПИИРАН. - 2016. - № 2 (45). - С. 207-244.

2. Давыдов, В.В. Ключ к шифру [Текст] / В.В. Давыдов, С.В. Беззатеев // Машины и механизмы. - 2021. - № 189 (июнь). - С. 20-23.

3. Депман, И.Я. История арифметики. Пособие для учителей [Текст] / И.Я. Депман - М.: Просвещение, 1965. - 416 с.

4. Дьячкова, И.С. Исследование и анализ потенциальных уязвимостей системы анонимного дистанционного голосования [Текст] / И.С. Дьячкова // Современные проблемы телекоммуникаций: Международная науч.-техн. конф.: материалы конф. - СибГУТИ, Новосибирск: [Б. и.], 2021. - С. 124-127.

5. Дьячкова, И.С. Методы модификации протокола электронного анонимного голосования для профилактики попыток саботажа [Текст] / И.С. Дьячкова // Обработка информации и математическое моделирование: Всерос. науч.-техн. конф.: материалы конф. - СибГУТИ, Новосибирск: [Б. и.], 2023. -С.164-167.

6. Дьячкова, И.С. Разработка защищенной системы дистанционного голосования и исследование характеристик её анонимности [Текст] / И.С. Дьячкова // Вестник СибГУТИ. - 2023. - Т. 17, №3. - С. 106-122.

7. Дьячкова, И.С. Система электронного анонимного голосования на основе «слепой» цифровой подписи [Текст] / И.С. Дьячкова, А.А. Ракитский // Вычислительные технологии. - 2024. - Т. 29, № 1. - С. 59-73.

8. Дьячкова, И.С. Сравнительный анализ существующих криптовалют [Текст] / И.С. Дьячкова // Информатика и математическое моделирование: Рос. науч.-техн. конф.: материалы конф. - СибГУТИ, Новосибирск: [Б. и.], 2018. -С.137-140.

9. Дьячкова, И.С. Система дистанционного анонимного голосования [Текст] / И.С. Дьячкова, А.А. Ракитский // Обработка информации и математическое моделирование: Рос. науч.-техн. конф.: материалы конф. -СибГУТИ, Новосибирск: [Б. и.], 2019. - С. 179-182.

10. Дьячкова, И.С. Система электронного тайного голосования на основе слепой цифровой подписи [Текст] / И.С. Дьячкова // Информационная безопасность цифровой экономики: Всерос. науч.-техн. конф.: материалы конф. -СибГУТИ, Новосибирск: [Б. и.], 2021.

11. Ильин, В.А. Математический анализ [Текст] / В.А. Ильин, В.А. Садовничий, Бл.Х. Сендов. Под ред. А. Н. Тихонова. - 3-е изд., перераб. и доп. - М.: Проспект, 2006. - Т. 1. - С. 146. - 672 с.

12. Коржик, В.И. Бесключевая криптосистема с обеспечением секретности на физическом уровне: миф или реальность [Текст] / В.И. Коржик, В.А. Яковлев, С.В. Тихонов // Проблемы информационной безопасности. Компьютерные системы. - 2015. - № 4. - С. 79-89.

13. Коржик, В.И. Основы криптографии [Текст] / В.И. Коржик, В.А. Яковлев. - Санкт-Петербург, 2016. - 296 с.

14. Левитин, А.В. Алгоритмы. Введение в разработку и анализ [Текст] / А.В. Левитин. - М.: Вильямс, 2006. - С. 476-480. - 576 с.

15. Официальный сайт веб-платформы Blazor [Электронный ресурс]. -URL: https://dotnet.microsoft.com/ru-ru/apps/aspnet/web-apps/blazor (дата обращения: 22.05.2025).

16. Официальный сайт голосования Election Buddy [Электронный ресурс]. - https://electionbuddy.com/ (дата обращения: 22.05.2025).

17. Официальный сайт голосования Helios Voting [Электронный ресурс]. - https://vote.heliosvoting.org/ (дата обращения: 22.05.2025).

18. Официальный сайт компании Web3 Tech [Электронный ресурс]. -URL: https://web3tech.ru/ (дата обращения: 22.05.2025).

19. Официальный сайт СУБД SQLite3 [Электронный ресурс]. -URL: https://www.sqlite.org/index.html (дата обращения: 22.05.2025).

20. Официальный сайт фреймворка Django [Электронный ресурс]. -URL: https://www.djangoproject.com/ (дата обращения: 22.05.2025).

21. Официальный сайт фреймворка Flask [Электронный ресурс]. -URL: http://flask.pocoo.org/docs/L0/ (дата обращения: 22.05.2025).

22. Официальный сайт хеш-функции Keccak [Электронный ресурс]. -URL: https://keccak.team/index.html (дата обращения: 22.05.2025).

23. Официальный сайт языка программирования C# [Электронный ресурс]. - URL: https://dotnet.microsoft.com/ru-ru/languages/csharp (дата обращения: 22.05.2025).

24. Официальный сайт языка программирования Java [Электронный ресурс]. - URL: https://www.oracle.com/cis/java/ (дата обращения: 22.05.2025).

25. Официальный сайт языка программирования Javascript [Электронный ресурс]. - URL: https://www.javascript.com/ (дата обращения: 22.05.2025).

26. Официальный сайт языка программирования Python [Электронный ресурс]. - URL: https://www.python.org/ (дата обращения: 22.05.2025).

27. Официальный сайт Docker [Электронный ресурс]. - URL https://www.docker.com/ (дата обращения: 22.05.2025).

28. Официальный сайт Horizen [Электронный ресурс]. -https://www.horizen.io/ (дата обращения: 22.05.2025).

29. Официальный сайт Nginx [Электронный ресурс]. - https://nginx.org/ (дата обращения: 22.05.2025).

30. Официальный сайт Postgres [Электронный ресурс]. - URL https://www.postgresql.org/ (дата обращения: 22.05.2025).

31. Разработка и исследование перспективных методов машинного обучения для повышения эффективности обработки данных: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И. В. Нечта,

исполн.: А. А. Ракитский, П.А. Приставка, И.С. Дьячкова, Б.В. Бочкарёв, Новосибирск, 2020. 42 с. Библиогр.: 27. № ГР АААА-Б20-220012890074-1.

32. Разработка и исследование теоретико-информационных подходов и методов машинного обучения для защиты, анализа и передачи данных: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И.В. Нечта, исполн.: А. А. Ракитский, П.А. Приставка, А.Р. Чусовитин, И.С. Дьячкова, Б.В. Бочкарев. Новосибирск, 21.01.2021. 32 с. Библиогр.: 21. № ГР АААА-А20-120042490019-4.

33. Разработка эффективных теоретико-информационных методов и средств анализа и обработки больших данных для обеспечения устойчивости и безопасности информационно-телекоммуникационных систем: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И. В. Нечта, исполн.: А. А. Ракитский, П.А. Приставка, К.И. Морозова, У.В. Павлова, И.С. Дьячкова. Новосибирск, 12.01.2022. 31 с. Библиогр.: 23. № ГР 1210628002035.

34. Рябко, Б.Я. Криптографические методы защиты информации. Учебное пособие [Текст] / Б.Я. Рябко, А.Н. Фионов. - М.: Горячая линия -Телеком, 2012. - 229 с.

35. Рябко, Б.Я. Криптография в информационном мире [Текст] / Б.Я. Рябко, А.Н. Фионов. - М.: Горячая линия - Телеком, 2018. - 300 с.

36. Сайт «Kaspersky.ru». Статья «Tor Browser и анонимность: что нужно знать» [Электронный ресурс]. - URL: https://www.kaspersky.ru/blog/what-you-need-to-know-about-tor-browser-and-anonymity/38482/ (дата обращения: 22.05.2025).

37. Сайт «Kaspersky.ru». [Электронный ресурс]. - URL: https://www.kaspersky.ru/about/press-releases/polys-ot-laboratorii-kasperskogo-predstavlyaet-blokchein-mashini-dlya-golosovaniya (дата обращения: 22.05.2025).

38. Сайт «Портал дистанционного электронного голосования ЦИК России». [Электронный ресурс]. - URL: https://vybory.gov.ru/ (дата обращения: 22.04.2024).

39. Сайт «РИА Новости». [Электронный ресурс]. -URL: https://ria.ru/20200625/1573357895.html (дата обращения: 22.05.2025).

40. Сайт «AI IMPACTS». Статья «Progress in general purpose factoring» [Электронный ресурс]. - URL: https://aiimpacts.org/progress-in-general-purpose-factoring/ (дата обращения: 22.05.2025).

41. Сайт «AMD Technical Information Portal». Описание стандарта IEEE 802.3 Cyclic Redundancy Check [Электронный ресурс]. - URL: https://docs.amd.com/v/u/en-US/xapp209/ (дата обращения: 22.05.2025).

42. Сайт «Anti-Malware.ru». Статья «Действительно ли браузер Tor обеспечивает полную анонимность?» [Электронный ресурс]. - URL: https://www.anti-malware.ru/analytics/Technology_Analysis/Is-The-Tor-Browser-Fully-Anonymous/ (дата обращения: 22.05.2025).

43. Сайт «ANts P2P file-sharing peer-to-peer». [Электронный ресурс]. -URL: https://antsp2p.sourceforge.net (дата обращения: 22.05.2025).

44. Сайт «Freenet - a peer-to-peer platform for censorship-resistant and privacy-respecting publishing and communication». [Электронный ресурс]. -URL: https://freenetproject.org/ (дата обращения: 22.05.2025).

45. Сайт «Internet Archive». Статья «Sundaram's Sieve» [Электронный ресурс]. - URL: https://web.archive.org/web/20110812050501/http://banach.millersville.edu/~bob/math478/History/S undaram.html/ (дата обращения: 22.05.2025).

46. Сайт «Linux-notes.org». Статья «Пишем systemd Unit файл.» [Электронный ресурс]. - URL: https://linux-notes.org/pishem-systemd-unit-fajl/ (дата обращения: 22.05.2025).

47. Сайт «TAdviser - портал выбора технологий и поставщиков». Статья «Как устроено дистанционное электронное голосование в России, и какие у него перспективы.» [Электронный ресурс]. - URL: https://www.tadviser.ru/index.php/Статья:Как_устроено_дистанционное_электронное_голосован ие_в_России,_и_какие_у_него_перспективы (дата обращения: 22.05.2025).

48. Сайт «The Invisible Internet Project». [Электронный ресурс]. - URL: https://geti2p.net/en/ (дата обращения: 22.05.2025).

49. Свид. 2022610697 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программный комплекс для организации и проведения анонимного дистанционного голосования / И.С. Дьячкова, А.А. Ракитский; правообладатель "СибГУТИ". Заявл. 22.12.2021, опубл. 13.01.2022. [Электронный ресурс]. - [Б. м.: б. и.].

50. Свид. 2025611810 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программный комплекс для организации дистанционного анонимного голосования / И.С. Дьячкова, М.С. Дьячкова, А.А. Ракитский,; правообладатель "СибГУТИ". Заявл. 09.01.2025, опубл. 23.01.2025. [Электронный ресурс]. - [Б. м.: б. и.].

51. Яндекс.взгляд - сервис для создания опросов [Электронный ресурс]. - URL: https://surveys.yandex.ru (дата обращения: 22.05.2025).

52. Atkin, A. Prime sieves using binary quadratic forms [Text]. / A. Atkin, D. Bernstein // Mathematics in computation, 2003. - Vol. 73, № 246. - P. 1023-1030. -URL: https://www.ams.org/journals/mcom/2004-73-246/S0025-5718-03-01501-1/S0025-5718-03-01501-1.pdf (дата обращения: 22.05.2025).

53. Back, A. Hashcash - a denial of service counter-measure [Text]. - URL: http://www.hashcash.org/papers/hashcash.pdf (дата обращения: 22.05.2025).

54. Bayer, D. Improving the efficiency and reliability of digital time-stamping [Text] / D. Bayer, S. Haber, W.S. Stornetta. // Sequences II. - Springer, New York, 1993. - P. 329-334.

55. Belim S.V. A general scheme for the pre-distribution of keys [Text] / S.V. Belim, S.Yu. Belim // Automatic Control and Computer Sciences. - 2020. - Vol. 54, № 8. - P. 860-863.

56. Bernstein, D. A general number field sieve implementation [Text] / D. Bernstein, A. Lenstra // In: Lenstra, A., Lenstra, H. (eds) The development of the

number field sieve. Lecture Notes in Mathematics. - Springer, Berlin, Heidelberg, 1993.

- Vol. 1554. - URL: https://doi.org/10.1007/BFb0091541 (дата обращения: 22.05.2025).

57. Bertoni, G. Permutation-based encryption, authentication and authenticated encryption. [Text] / G. Bertoni, J. Daemen, M. Peeters, G.V. Assche. -2012. - URL: https://keccak.team/files/KeccakDIAC2012.pdf (дата обращения: 22.05.2025).

58. Chaum, D. Blind Signatures for Untraceable Payments [Text] / D. Chaum, R. Rivest, A. Sherman // Advances in Cryptology Proceedings of Crypto 82, Plenum (Springer-Verlag): New York, 1982. - P. 199-203.

59. Chohan, Usman W. Proof-of-Stake Algorithmic Methods: A Comparative Summary [Text] / Usman W. Chohan // SSRN Electronic Journal, 2018. - URL: https://ssrn.com/abstract=3131897 (дата обращения: 22.05.2025).

60. Cranor, L.F. Sensus: A Security-Conscious Electronic Polling System for the Internet [Text] // L.F. Cranor, K.R. Cytron. - Published in the Proceedins of the Hawaii International Conference on System Sciences. - Wailea, Hawaii, USA: [s. n.], 1997. - URL: https://lorrie.cranor.org/pubs/hicss/hicss.html (дата обращения: 22.05.2025).

61. Diffie, W. New directions in cryptography [Text] / W. Diffie, M. E. Hellman // IEEE Transactions on Information Theory. - [S. l.: s. n.], 1976. - V. 22. - P. 644-654.

62. Dingledine, R. Tor: The second-generation onion router [Text] / R. Dingledine, N. Mathewson, P. Syverson. - Naval Research Lab Washington DC: [s. n.], 2004, 17. - URL: https://sharif.edu/~kharrazi/courses/40817-941/reading/tor-design.pdf (дата обращения: 22.05.2025).

63. Dwork, C. Pricing via processing or combatting junk mail [Text] / C. Dwork, M. Naor // Advances in Cryptography - CRYPT0'92.

- LNCS 740. - Springer-Verlag, 1993. - P. 139-147. -URL: https://www.wisdom.weizmann.ac.il/~naor/PAPERS/pvp.pdf (дата обращения: 22.05.2025).

64. Dyachkova, I. Anonymous remote voting system [Text] / I. Dyachkova, A. Rakitskiy // 2019 International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON). - Novosibirsk: [S.n.], 21-22 Oct, 2019. P. 0850 -0852.

65. Dyachkova, I. Development of the Remote Anonimous Voting System and the Analysis of its Vulnerabilities [Text] / I. Dyachkova, A. Rakitskiy // 2021 Ural Symposium on Biomedical Engineering, Radioelectronics and Information Technology (USBEREIT). - Yekaterinburg: [S.n.], 2021. P. 485 - 487.

66. Eastlake 3rd. CyberCash credit card protocol version 0.8 [Text] / D. Eastlake 3rd, B. Boesch, S. Crocker, M. Yesil. - 1996. -URL: https://www.rfc-editor.org/rfc/rfc1898.html (дата обращения: 22.05.2025).

67. Ferguson, P. What is a VPN? [Text] / P. Ferguson, G. Huston. -1998: 22. - URL: https://www.potaroo.net/papers/vpn.pdf (дата обращения: 22.05.2025).

68. Fujioka, A. A practical secret voting scheme for large scale elections [Text] / A. Fujioka, T. Okamoto, K. Ohta // Lecture Notes in Computer Science. - 1993. - Vol. 718. - P. 244-251. - URL: https://people.csail.mit.edu/rivest/voting/papers/FujiokaOkamotoOhtaAPracticalSecretVotingScheme ForLargeScaleElections.pdf (дата обращения: 24.04.2024).

69. Google service for creating forms [Electronic resource]. -URL: https://docs.google.com/forms (дата обращения: 22.05.2025).

70. Haber, S. How to time-stamp a digital document [Text] / S. Haber, W.S. Stornetta // Journal of Cryptology. - 1991. - Vol. 3(2). - P. 99-111.

71. He, Q. A New Practical Secure e-Voting Scheme [Text] / Q. He, Z. Su. -na, 1998. - URL: https://www.cs.cmu.edu/~qihe/paper/e_voting/ (дата обращения: 22.05.2025).

72. Huff, S. First virtual holdings incorporated. / S. Huff, M. Wade // ICIS 1999 Proceedings. - [S. l.: s. n.], 1999. -URL: https://dl.acm.org/doi/pdf/10.5555/352925.353020 (дата обращения: 22.05.2025).

73. Jakobsson, M. Proofs of Work and Bread Pudding Protocols (Extended Abstract) [Text] / M. Jakobsson, A. Juels // In: Preneel, B. (eds) Secure Information Networks. IFIP - The International Federation for Information Processing. - Springer, Boston, MA, 1999. - Vol. 23. - P. 258-272. -URL: https://doi.org/10.1007/978-0-387-35568-9_18 (дата обращения: 22.05.2025).

74. Kerry, C. Digital signature standard (DSS) [Text] / C. Kerry, P. Gallagher.

- FIPS PUB, 2013: 186-4. - URL: https://people.csail.mit.edu/alinush/6.857-spring-2015/papers/dsa.pdf (дата обращения: 22.05.2025).

75. Merkle, R. A Certified Digital Signature [Text] / R. Merkle // In: Brassard, G. (eds) Advances in Cryptology - CRYPTO' 89 Proceedings. CRYPTO 1989. Lecture Notes in Computer Science. - Springer, New York, NY. - Vol 435.

- P. 218-238. - URL: https://link.springer.com/chapter/10.1007/0-387-34805-0_21 (дата обращения: 22.05.2025).

76. Menezes, A. Handbook of Applied Cryptography [Text] / A. Menezes, P. van Oorschot, S. Vanstone. - CRC Press, 2018. - 661 p.

77. Nakamoto, S. Bitcoin: a peer-to-peer electronic cash system. 2008. [Text]

- URL: https://www.ussc.gov/sites/default/files/pdf/training/annual-national-training-seminar/2018/Emerging_Tech_Bitcoin_Crypto.pdf (дата обращения: 22.05.2025).

78. Nurmi, H. Conducting secret ballot elections in computer networks: Problems and solutions [Text] / H. Nurmi, A. Salomaa // Annals of Operations Research, 1994. - Vol. 51. - P. 185-194.

79. Rivest, R. A method for obtaining digital signatures and public-key cryptosystems [Text] / R. Rivest, A. Shamir, L. Adleman // Commun. ACM - NYC, USA: ACM, 1978. - Vol. 21(2). - P. 120-126.

80. Rivest, R.L. How to Leak a Secret [Text] / R.L. Rivest, A. Shamir, Y. Tauman // Proceedings of 7th International Conference on the Theory and Application of Cryptology and Information Security. - Gold Coast, Australia: [s. n.], 2001. -P. 552-565.

81. Schneier, B. Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C [Text] / B. Schneier // John Wiley & Sons, Inc., 1996.

82. Shannon, C. E. A mathematical theory of communication [Text] / C. E. Shannon // Bell System Technical Journal. - 1948. - Vol. 27(3). - P. 379-423.

83. SurveyMonkey service for creating polls [Electronic resource]. -URL: https://www.surveymonkey.com (дата обращения: 22.05.2025).

84. Van Saberhagen, N. CryptoNote v 2.0. 2013. [Text]. -URL: https://bytecoin.org/old/whitepaper.pdf (дата обращения: 22.05.2025).

85. Warren, J. Bitmessage: A Peer-to-Peer Message Authentication and Delivery System. 2012. [Text]. - URL: https://bitmessage.org/bitmessage.pdf (дата обращения: 22.05.2025).

86. Zhu, Y. Anonymous Voting Scheme for Boardroom with Blockchain [Text] / Y. Zhu, Z. Zeng, C. Lv // International Journal of Performability Engineering. - 2018. - Vol. 14, no. 10. - P. 2414-2422. - URL: https://www.ijpe-online.com/EN/10.23940/ijpe.18.10.p17.24142422 (дата обращения: 22.05.2025).

163

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ А

Свидетельства о регистрации программ

165

ПРИЛОЖЕНИЕ Б

Исходные коды программного прототипа системы анонимного дистанционного голосования

Программа реализации серверной части приложения на языке Python main.py

import hashlib import json import sqlite3 import rsa

from datetime import * from flask import *

app = Flask(_name_)

app.secret_key = 'app secret key'

questions = []

@app.before_request def before_request():

if request.url.startswith('http://'):

url = request.url.replace('http://', 'https://', 1) code = 301

return redirect(url, code=code)

@app.route("/", methods=["GET"]) def index():

return render_template("index1.html", title='Система дистанционного анонимного голосования')

@app.route("/changepsvd", methods=["GET"]) def chpass():

login = session['username'] print(login)

conn = sqlite3.connect("213.db") cursor = conn.cursor()

sql = "SELECT password FROM users WHERE login = '" + str(login) + "';"

cursor.execute(sql)

Result = cursor.fetchone()

print("Result=", Result)

passw_hash = Result[0]

print("Passw=", passw_hash)

conn.close()

return render_template("changepsvd.html", login = login, passw_hash = passw_hash)

@app.route("/changepsvd", methods=["POST"]) def AddNewPassw():

login = request.form['login_old']

new_password = request.form['password_new'] print(login, new_password)

conn = sqlite3.connect("213.db") curs = conn.cursor()

curs.execute("UPDATE users SET password = '"+ str(new_password) +"' where (login = :login);",{"login": login}) conn.commit()

return render_template("index.html")

#

@app.route("/changepsvd_user", methods=["GET"]) def chpass1():

login = session['username'] print(login)

conn = sqlite3.connect("213.db") cursor = conn.cursor()

sql = "SELECT password FROM users WHERE login = '" + str(login) + "';"

cursor.execute(sql)

Result = cursor.fetchone()

print("Result=", Result)

passw_hash = Result[0]

print("Passw=", passw_hash)

conn.close()

return render_template("changepsvd_user.html", login = login, passw_hash = passw_hash)

@app.route("/changepsvd_user", methods=["POST"]) def AddNewPassw1():

login = request.form['login_old'] new_password = request.form['password_new'] print(login, new_password)

conn = sqlite3.connect("213.db") curs = conn.cursor()

curs.execute("UPDATE users SET password = '"+ str(new_password) +"' where (login = :login);",{"login": login}) conn.commit()

return render_template("index.html")

# @app.route("/login", methods=["GET"])

# def login():

# return render_template("login.html", usr1 = 'admin')

@app.route("/", methods=["GET"]) def q():

session['login'] = 0

return render_template("index1.html")

@app.route("/", methods=["POST"]) def form_login():

session['username'] = request.form['login']

session['login'] = 1

print(session)

usr = request.form['login']

print("usr=", usr)

passw = request.form['password']

print("Pass=", passw)

passwl = number2hashnum(passw)

print("Pass1=", passwl)

conn = sqlite3.connect("213.db")

cursor = conn.cursor()

sql = "SELECT COUNT(*) FROM users WHERE login = '" + str(request.form['login']) + "' AND password = '" \

+ str(passwl) + "';" cursor.execute(sql)

print("login=", str(request.form['login'])) print("parol=", str(passwl)) Result = cursor.fetchone() print("Result=", Result) conn.close()

if Result[0] == 0:

return render_template("index1.html") elif session['username'] == "admin":

return redirect(url_for('main_list_admin')) elif session['username'] != "admin":

return redirect(url_for('main_list_user'))

''' if session['username'] == "admin":

return redirect(url_for('main_list_admin'))'''

@app.route('7main_list_admin", methods=["POST", "GET"]) def main_list_admin():

print("session['login'] = ", session['login']) if (session['login'] == 1):

return render_template("main_list_admin.html", login = session['username']) else:

return render_template("index1.html")

@app.route("/main_list_user", methods=["POST", "GET"]) def main_list_user():

return render_template("main_list_user.html", login = session['username'])

@app.route("/guide", methods=["POST", "GET"]) def guide():

return render_template("guide.html", login = session['username'])

@app.route("/guide_user", methods=["POST", "GET"]) def guide1():

return render_template("guide_user.html", login = session['username'])

@app.route("/newvote", methods=["GET"]) def newvote1(): list = []

conn = sqlite3.connect("213.db") cursor = conn.cursor()

sql = "SELECT count(id_group) FROM groups;"

cursor.execute(sql) gr_kol = cursor.fetchone() print("kol_groups=", gr_kol[0]) if (gr_kol[0] == 0):

lenl = 0

print("len=", lenl) else:

for i in range(int(gr_kol[0])):

sql2 = "SELECT * FROM groups;" cursor.execute(sql2) table = cursor.fetchall() print("i=", i)

# print("table:", table[i][0])

list.append({'id_group': table[i][0], 'base_name': table[i][1], 'group_name': table[i][2]})

i = i + 1

print("list= ", list) # print(list[0]['group_name'])

lenl = len(list)

return render_template("newvote.html", mess1=list, len1=len1, username=session['username'])

@app.route("/newvote", methods=["POST"]) def newvote():

print("HOBbM ВОПРОСИК: ", request.form) questions.append(request.form) print("Question: ", questions) #form = {}

#form['name'] = request.form['name'] #print("FORM=", form['name'], form)

conn = sqlite3.connect("213.db")

cursor = conn.cursor()

sqid = "SELECT MAX(id) FROM vote;"

#print("id_kowvl")

cursor.execute(sqid)

id_kol = cursor.fetchone() print("id_l<ol=", id_kol[0]) if (str(id_kol[0]) == 'None'): id = 1 else:

id = id_kol[0] + 1 print("id=", id)

(pubkey, privkey) = rsa.newkeys(1024) D = privkey.e C = privkey.d N = privkey.n

print("D=", D) print("C=", C) print("N=", N)

# Вставляем данные в таблицу

sql = "INSERT INTO vote VALUES ('" + str(id) + "', '" + str(request.form['startTime']) + "','" + str(request.form['endTime']) + "','" + str(request.form['description']) + "','" + str(request.form['name']) + "','" + str(request.form['type']) + "' , '" + str(N) + "','" + str(c) + "','" + str(D) + "');"

#sqlq = "INSERT INTO users VALUES ('4','ejjj','mi');" cursor.execute(sql)

conn.commit()

print("kol-vo variantov=", request.form['numofvariants'])

ql = int(request.form['numofvariants'])

print(ql)

for q in range(ql): print(q)

sql_var = "INSERT INTO variants VALUES('" + str(id) + "', '" + str(q) + "','" + str(request.form['variant' + str(q+1)]) + "');" cursor.execute(sql_var) conn.commit()

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