Przegląd systemu zdalnego głosowania elektronicznego Centralnej Komisji Wyborczej Federacji Rosyjskiej

W dniu 31 sierpnia 2020 roku odbył się publiczny test systemu zdalnego elektronicznego głosowania (zwanego dalej DEG) wykorzystującego technologię blockchain, opracowanego na zlecenie Centralnej Komisji Wyborczej Federacji Rosyjskiej.

Aby zapoznać się z nowym elektronicznym systemem głosowania i zrozumieć, jaką rolę pełni w nim technologia blockchain oraz jakie inne komponenty są wykorzystywane, rozpoczynamy cykl publikacji poświęconych głównym rozwiązaniom technicznym zastosowanym w systemie. Sugerujemy zacząć od porządku – od wymagań stawianych systemowi i funkcjom uczestników procesu

wymagania systemowe

Podstawowe wymagania mające zastosowanie do każdego systemu głosowania są zasadniczo takie same w przypadku tradycyjnego głosowania osobistego i głosowania elektronicznego na odległość i są określone w ustawie federalnej z dnia 12.06.2002 czerwca 67 r. N 31.07.2020-FZ (ze zmianami z dnia XNUMX lipca XNUMX r.) „O podstawowych gwarancjach prawa wyborczego i prawa do udziału w referendum obywateli Federacji Rosyjskiej”.

  1. Głosowanie w wyborach i referendach jest tajne, z wyłączeniem możliwości jakiejkolwiek kontroli woli obywatela (art. 7).
  2. Możliwość głosowania powinna być zapewniona wyłącznie osobom, które mają czynne prawo do głosowania w tym głosowaniu.
  3. Jeden wyborca ​​– jeden głos, niedopuszczalne jest głosowanie „podwójne”.
  4. Proces głosowania musi być otwarty i przejrzysty dla wyborców i obserwatorów.
  5. Należy zapewnić integralność oddanego głosu.
  6. Obliczenie tymczasowych wyników głosowania przed zakończeniem głosowania nie powinno być możliwe.

Mamy więc trzech uczestników: wyborcę, komisję wyborczą i obserwatora, pomiędzy którymi ustala się kolejność interakcji. Można także wyróżnić czwartego uczestnika - organy dokonujące rejestracji obywateli na terytorium (przede wszystkim Ministerstwo Spraw Wewnętrznych, a także inne organy wykonawcze), ponieważ czynne prawo wyborcze jest powiązane z obywatelstwem i miejscem rejestracji.

Wszyscy ci uczestnicy współdziałają ze sobą.

Protokół interakcji

Przyjrzyjmy się procesowi głosowania w tradycyjnym lokalu wyborczym, z urną i papierowymi kartami do głosowania. W ogólnie uproszczonej formie wygląda to tak: wyborca ​​przychodzi do lokalu wyborczego i przedstawia dokument tożsamości (paszport). W lokalu wyborczym działa okręgowa komisja wyborcza, której członek sprawdza tożsamość wyborcy i jego obecność na sporządzonym wcześniej spisie wyborców. Jeżeli wyborca ​​się odnajdzie, członek komisji wręcza wyborcy kartę do głosowania, a wyborca ​​podpisuje odbiór karty do głosowania. Następnie wyborca ​​udaje się do urny wyborczej, wypełnia kartę do głosowania i wrzuca ją do urny. Aby wszystkie procedury były ściśle przestrzegane przez prawo, wszystko to jest monitorowane przez obserwatorów (przedstawicieli kandydatów, publiczne instytucje monitorujące). Po zakończeniu głosowania komisja wyborcza w obecności obserwatorów liczy głosy i ustala wyniki głosowania.

Właściwości niezbędne do głosowania w tradycyjnym systemie głosowania zapewniają środki organizacyjne i ustalona procedura interakcji uczestników: sprawdzanie paszportów wyborców, własnoręczne podpisywanie kart do głosowania, korzystanie z kabin wyborczych i zapieczętowanych urn wyborczych, tryb liczenia głosów itp. .

W przypadku systemu informacyjnego, który jest zdalnym elektronicznym systemem głosowania, taka kolejność interakcji nazywa się protokołem. Ponieważ wszystkie nasze interakcje stają się cyfrowe, protokół ten można uznać za algorytm wdrażany przez poszczególne elementy systemu oraz zestaw środków organizacyjnych i technicznych wykonywanych przez użytkowników.

Interakcja cyfrowa nakłada pewne wymagania na zaimplementowane algorytmy. Przyjrzyjmy się działaniom wykonywanym na tradycyjnej stronie pod kątem systemów informatycznych i temu, jak jest to zaimplementowane w rozważanym przez nas systemie DEG.

Powiedzmy od razu, że technologia blockchain nie jest „srebrną kulą”, która rozwiązuje wszystkie problemy. Aby stworzyć taki system, konieczne było opracowanie dużej liczby komponentów programowych i sprzętowych odpowiedzialnych za różne zadania i połączenie ich jednym procesem i protokołem. Ale jednocześnie wszystkie te komponenty wchodzą w interakcję z platformą blockchain.

Komponenty systemu

Z technicznego punktu widzenia system DEG jest kompleksem programowo-sprzętowym (zwanym dalej STC), który łączy zestaw komponentów w celu zapewnienia interakcji pomiędzy uczestnikami procesu wyborczego w jednolitym środowisku informacyjnym.

Schemat interakcji elementów i uczestników systemu DEG PTC przedstawiono na poniższym rysunku.

Przegląd systemu zdalnego głosowania elektronicznego Centralnej Komisji Wyborczej Federacji Rosyjskiej
Możliwe do kliknięcia

Zdalny proces głosowania

Teraz szczegółowo rozważymy proces zdalnego głosowania elektronicznego i jego realizację przez elementy kompleksu oprogramowania i sprzętu DEG.

Zgodnie z Procedurą głosowania elektronicznego na odległość, aby wyborca ​​mógł zostać wpisany na listę uczestników zdalnego głosowania elektronicznego, musi złożyć wniosek na portalu Służb Państwowych. Jednocześnie taki wniosek mogą złożyć tylko ci użytkownicy, którzy posiadają potwierdzone konto i pomyślnie zostali porównani z rejestrem wyborców, uczestnicy referendum w systemie Państwowego Zautomatyzowanego Systemu „Wybory”. Po otrzymaniu wniosku dane wyborcy są ponownie sprawdzane przez Centralną Komisję Wyborczą Rosji i przesyłane do Składnik listy wyborców PTC STOP. Procesowi pobierania towarzyszy zapisanie unikalnych identyfikatorów w blockchainie. Członkowie komisji wyborczej i obserwatorzy mają dostęp do wglądu w listę za pomocą specjalnego zautomatyzowanego stanowiska pracy zlokalizowanego na terenie komisji wyborczej.

Wyborca ​​udający się do lokalu wyborczego dokonuje jego uwierzytelnienia (porównania z danymi paszportowymi) i identyfikacji w spisie wyborców, a także sprawdza, czy wyborca ​​ten nie otrzymał wcześniej karty do głosowania. Co istotne, nie da się ustalić, czy wyborca ​​wrzucił do urny otrzymaną kartę do głosowania, czy też nie, a jedynie to, że karta do głosowania została już wcześniej wydana. W przypadku PTC DEG wizyta wyborcy oznacza żądanie użytkownika portalu DEG to serwis internetowy znajdujący się pod adresem vybory.gov.ru Serwis, podobnie jak tradycyjny lokal wyborczy, zawiera materiały informacyjne na temat trwających kampanii wyborczych, informacje o kandydatach i inne informacje. Do przeprowadzenia identyfikacji i uwierzytelnienia wykorzystywany jest ESIA Portalu Usług Państwowych. Zatem ogólny schemat identyfikacji zostaje zachowany zarówno podczas składania wniosków, jak i podczas głosowania.

Następnie rozpoczyna się procedura anonimizacji – wyborca ​​otrzymuje kartę do głosowania, która nie zawiera żadnych znaków identyfikacyjnych: nie posiada numeru, nie jest w żaden sposób powiązana z wyborcą, któremu została wydana. Ciekawostką jest rozważenie opcji, gdy lokal wyborczy jest wyposażony w elektroniczne zespoły do ​​głosowania – w tym przypadku anonimizacja odbywa się w następujący sposób: zamiast karty do głosowania w formie papierowej wyborca ​​proszony jest o wybranie ze stosu dowolnej karty z kodem kreskowym, na której podejdzie do urządzenia do głosowania. Na karcie nie ma żadnych informacji o głosującym, jedynie kod określający, jaką kartę do głosowania urządzenie powinno podać przy okazywaniu takiej karty. Przy całkowicie cyfrowej interakcji głównym zadaniem jest wdrożenie algorytmu anonimizacji w taki sposób, aby z jednej strony nie można było ustalić żadnych danych identyfikacyjnych użytkownika, a z drugiej strony, aby zapewnić możliwość głosowania tylko tym użytkownikom, którzy zostały wcześniej zidentyfikowane na liście. Aby rozwiązać ten problem, DEG PTK wykorzystuje algorytm kryptograficzny, znany w środowisku zawodowym jako „ślepy podpis elektroniczny”. Porozmawiamy o tym szczegółowo w kolejnych publikacjach, opublikujemy także kod źródłowy, można także zbierać dodatkowe informacje z publikacji w Internecie za pomocą słów kluczowych - „kryptograficzne protokoły tajnego głosowania” lub „ślepy podpis”

Następnie wyborca ​​wypełnia kartę do głosowania w miejscu, w którym nie widać dokonanego wyboru (kabina zamknięta) – jeśli w naszym systemie informatycznym wyborca ​​głosuje zdalnie, wówczas jedynym takim miejscem jest osobiste urządzenie użytkownika. W tym celu użytkownik zostaje najpierw przeniesiony do innej domeny − do strefy anonimowej. Przed przełączeniem możesz podnieść połączenie VPN i zmienić adres IP. To właśnie w tej domenie wyświetlana jest karta do głosowania i przetwarzany jest wybór użytkownika. Kod źródłowy działający na urządzeniu użytkownika jest początkowo otwarty – można go zobaczyć w przeglądarce.

Po dokonaniu wyboru karta do głosowania jest szyfrowana na urządzeniu użytkownika przy użyciu specjalnego schematu szyfrowania, następnie wysyłana i rejestrowana komponent „Rozproszone przechowywanie i liczenie głosów”, zbudowane na platformie blockchain.

Jedną z najważniejszych cech protokołu jest brak możliwości poznania wyników głosowania przed jego zakończeniem. W tradycyjnym lokalu wyborczym zapewnia to plombowanie urny i monitoring przez obserwatorów. W interakcjach cyfrowych najlepszym rozwiązaniem jest zaszyfrowanie wyboru wyborcy. Zastosowany algorytm szyfrowania uniemożliwia ujawnienie wyników przed zakończeniem głosowania. W tym celu stosuje się schemat z dwoma kluczami: jeden klucz (publiczny), znany wszystkim uczestnikom, służy do szyfrowania głosu. Nie można go odszyfrować tym samym kluczem; potrzebny jest drugi (prywatny) klucz. Klucz prywatny jest rozdzielany pomiędzy uczestników procesu wyborczego (członków komisji wyborczych, izby publicznej, operatorów serwerów zliczających itp.) w taki sposób, że każda pojedyncza część klucza jest bezużyteczna. Deszyfrowanie można rozpocząć dopiero po zebraniu klucza prywatnego. W rozpatrywanym systemie procedura wyodrębnienia klucza składa się z kilku etapów: wydzielenia części klucza w systemie, wydzielenia klucza poza systemem i wygenerowania wspólnego klucza publicznego. Szczegółowo pokażemy proces szyfrowania i pracy z kluczami kryptograficznymi w przyszłych publikacjach.

Po zebraniu i pobraniu klucza rozpoczyna się obliczanie wyników w celu ich dalszego zapisania w blockchainie i późniejszego ogłoszenia. Cechą rozważanego systemu jest zastosowanie technologii szyfrowania homomorficznego. Opiszemy szczegółowo ten algorytm w przyszłych publikacjach i porozmawiamy o tym, dlaczego technologia ta jest powszechnie wykorzystywana do tworzenia systemów głosowania. Zwróćmy teraz uwagę na jego główną cechę: zaszyfrowane karty do głosowania zapisane w systemie księgowym można łączyć bez deszyfrowania w taki sposób, że wynikiem odszyfrowania tak połączonego tekstu zaszyfrowanego będzie zsumowana wartość dla każdego wyboru na kartach do głosowania. Jednocześnie system oczywiście implementuje matematyczne dowody poprawności takiego wyliczenia, które również są rejestrowane w systemie księgowym i mogą być weryfikowane przez obserwatorów.

Poniżej przedstawiamy schemat głosowania.

Przegląd systemu zdalnego głosowania elektronicznego Centralnej Komisji Wyborczej Federacji Rosyjskiej
Możliwe do kliknięcia

Platforma Blockchain

Skoro już sprawdziliśmy główne cechy wdrożenia zdalnego elektronicznego systemu głosowania, odpowiedzmy sobie na pytanie, od którego zaczęliśmy – jaką rolę odgrywa w tym technologia blockchain i jakie problemy pozwala rozwiązać?

W wdrożonym systemie głosowania zdalnego technologia blockchain rozwiązuje pewien zakres problemów.

  • Podstawowym zadaniem jest zapewnienie integralności informacji w ramach głosowania, a przede wszystkim głosów.
  • Zapewnienie przejrzystości wykonania i niezmienności kodu programu realizowanego w formie inteligentnych kontraktów.
  • Zapewnienie ochrony i niezmienności danych wykorzystywanych w procesie głosowania: listy wyborców, kluczy służących do szyfrowania kart do głosowania na różnych etapach protokołu kryptograficznego i tak dalej.
  • Zapewnienie zdecentralizowanego przechowywania danych, w którym każdy uczestnik posiada absolutnie identyczną kopię, potwierdzoną właściwościami konsensusu w sieci.
  • Możliwość podglądu transakcji i śledzenia postępu głosowania, co jest w pełni odzwierciedlone w łańcuchu blokowym, od jego początku aż do zarejestrowania wyliczonych wyników.

Widzimy więc, że bez zastosowania tej technologii prawie niemożliwe jest osiągnięcie niezbędnych właściwości w systemie głosowania, a także zaufanie do niego.

Funkcjonalność wykorzystywanej platformy blockchain wzbogacana jest o wykorzystanie inteligentnych kontraktów. Inteligentne kontrakty sprawdzają każdą transakcję zaszyfrowanymi kartami do głosowania pod kątem autentyczności podpisów elektronicznych i „ślepych”, a także dokonują podstawowych kontroli poprawności wypełnienia zaszyfrowanej karty do głosowania.

Co więcej, w rozważanym systemie zdalnego głosowania elektronicznego komponent „Rozproszone przechowywanie i liczenie głosów” nie ogranicza się jedynie do węzłów blockchain. Dla każdego węzła można wdrożyć oddzielny serwer realizujący główne funkcje kryptograficzne protokołu głosowania - serwery zliczające.

Liczenie serwerów

Są to zdecentralizowane komponenty, które zapewniają procedurę rozproszonego generowania klucza szyfrowania karty do głosowania, a także deszyfrowania i obliczania wyników głosowania. Do ich zadań należy:

  • Zapewnienie rozproszonego generowania części klucza szyfrującego kartę do głosowania. Procedura generowania klucza zostanie omówiona w kolejnych artykułach;
  • Sprawdzenie poprawności zaszyfrowanej karty do głosowania (bez jej deszyfrowania);
  • Przetwarzanie kart do głosowania w formie zaszyfrowanej w celu wygenerowania ostatecznego tekstu zaszyfrowanego;
  • Rozproszone dekodowanie wyników końcowych.

Każdy etap wykonania protokołu kryptograficznego jest rejestrowany na platformie blockchain i może być sprawdzany pod kątem poprawności przez obserwatorów.

Aby nadać systemowi niezbędne właściwości na różnych etapach procesu głosowania, stosowane są następujące algorytmy kryptograficzne:

  • Podpis elektroniczny;
  • Podpisanie w ciemno klucza publicznego wyborcy;
  • Schemat szyfrowania krzywej eliptycznej ElGamal;
  • Dowody wiedzy zerowej;
  • Protokół Pedersen 91 DKG (generowanie klucza rozproszonego);
  • Protokół udostępniania klucza prywatnego wykorzystujący schemat Shamira.

Usługa kryptograficzna zostanie omówiona szerzej w kolejnych artykułach.

Wyniki

Podsumujmy niektóre pośrednie wyniki rozważań nad zdalnym elektronicznym systemem głosowania. Pokrótce opisaliśmy proces i główne komponenty go realizujące, a także zidentyfikowaliśmy sposoby osiągnięcia właściwości niezbędnych w każdym systemie głosowania:

  • Weryfikowalność wyborcy. System przyjmuje głosy wyłącznie od zweryfikowanych wyborców. Właściwość tę zapewnia identyfikacja i uwierzytelnianie wyborców, a także rejestrowanie listy wyborców i faktu udostępnienia karty do głosowania w blockchainie.
  • Anonimowość. System zapewnia tajność głosowania zapisaną w ustawodawstwie Federacji Rosyjskiej, a tożsamość wyborcy nie może zostać ustalona na podstawie zaszyfrowanej karty do głosowania. Realizowany z wykorzystaniem algorytmu „ślepego podpisu” oraz anonimowej strefy wypełniania i wysyłania karty do głosowania.
  • Tajność głosów. Organizatorzy i inni uczestnicy głosowania nie mogą poznać wyniku głosowania, dopóki nie zostanie ono zakończone, zliczone głosy i odszyfrowane ostateczne wyniki. Poufność osiąga się poprzez szyfrowanie kart do głosowania i uniemożliwianie ich odszyfrowania przed zakończeniem głosowania.
  • Niezmienność danych. Danych wyborcy nie można zmieniać ani usuwać. Niezmienne przechowywanie danych zapewnia platforma blockchain.
  • Sprawdzalność. Obserwator może sprawdzić, czy głosy zostały policzone prawidłowo.
  • Niezawodność. Architektura systemu opiera się na zasadach decentralizacji, zapewniając brak pojedynczego „punktu awarii”.

Źródło: www.habr.com

Dodaj komentarz