Omówienie procedury anonimizacji dla zdalnego elektronicznego systemu głosowania

В poprzednie publikacje Zdecydowaliśmy się na to, że w rozważanym przez nas systemie zdalnego głosowania elektronicznego stosowany jest kryptograficzny algorytm „ślepego podpisu elektronicznego”, który zapewnia tajność głosowania i anonimizuje wyborcę. W tym artykule przyjrzymy się temu bardziej szczegółowo.

Najpierw przejdźmy do znanego i znanego algorytmu podpisu elektronicznego, który jest szeroko stosowany w systemach informatycznych do różnych celów. Podpis elektroniczny opiera się na kryptograficznych algorytmach szyfrowania asymetrycznego. Szyfrowanie asymetryczne to szyfrowanie przy użyciu 2 kluczy: jeden z nich służy do szyfrowania, drugi do deszyfrowania. Nazywa się je kluczem otwartym (publicznym) i prywatnym. Klucz publiczny jest znany innym osobom, natomiast klucz prywatny znany jest jedynie właścicielowi podpisu elektronicznego i przechowywany jest w miejscu niedostępnym dla innych.

Podczas podpisywania następuje: najpierw dokument elektroniczny za pomocą przekształceń matematycznych zostaje zredukowany do ciągu znaków o określonej wielkości – nazywa się to funkcją skrótu.

Powstały ciąg znaków (hash z dokumentu) jest szyfrowany przez nadawcę dokumentu za pomocą klucza prywatnego i wraz z kluczem publicznym wysyłany jest do odbiorcy. Odbiorca odszyfrowuje ciąg znaków za pomocą klucza publicznego, stosuje do dokumentu dokładnie tę samą funkcję skrótu i ​​porównuje wynik konwersji z wynikiem odszyfrowania. Jeśli wszystko się zgadza, oznacza to, że po podpisaniu przez nadawcę w dokumencie nie wprowadzono żadnych zmian.

Opisane działania pozwalają zweryfikować, czy dokument nie został zmieniony, ale nie pozwalają na sprawdzenie, czy nadawca jest rzeczywiście tym, za kogo się podaje. Dlatego potrzebujemy strony trzeciej, której ufa zarówno nadawca, jak i odbiorca. W tym celu nadawca przed wysłaniem dokumentu kontaktuje się z osobą trzecią i prosi ją o podpisanie swojego klucza publicznego swoim podpisem elektronicznym. Nadawca wysyła teraz do odbiorcy dokument, jego klucz publiczny i podpis osoby trzeciej swojego klucza. Odbiorca weryfikuje podpis osoby trzeciej na kluczu publicznym i ufa powstałemu podpisowi dokumentu.

Przejdźmy teraz do tego, czym jest „ślepy podpis” i jak może nam pomóc w anonimizacji.

Wyobraźmy sobie, że w opisanym powyżej przykładzie nadawcą jest wyborca, dokumentem karta do głosowania, a odbiorcą komisja wyborcza, czyli jak powiedzieliśmy „element liczenia głosów”. Będziemy mieć komponent „Lista wyborców” jako stronę trzecią (walidator). W takim przypadku proces może przebiegać w następujący sposób.

Omówienie procedury anonimizacji dla zdalnego elektronicznego systemu głosowania

Wyborca ​​generuje na swoim urządzeniu parę kluczy – prywatny i publiczny. Ponieważ klucze te tworzone są na jego osobistym urządzeniu w przeglądarce, są one znane tylko jemu.

Za pomocą tych kluczy podpisze kartę do głosowania, aby sprawdzić jej integralność. Podpisaną kartę do głosowania i klucz publiczny przesyła komisji wyborczej. Aby karta do głosowania została zaakceptowana przez moduł rozproszonego przechowywania i liczenia głosów, musi on zweryfikować, czy klucz publiczny jest podpisany przez weryfikatora.

Walidator (komponent Lista wyborców) podpisze klucz publiczny dopiero po sprawdzeniu, czy wyborca ​​znajduje się na liście wyborców.

Aby rozwiązać problem zachowania tajności głosowania, klucz publiczny wyborcy utworzony na jego urządzeniu nie powinien być nikomu znany. Okazuje się, że walidator musi podpisać coś, czego nie jest mu znane. Zadanie wydaje się niemożliwe, ale tutaj z pomocą przychodzą algorytmy kryptograficzne – w tym przypadku algorytm „ślepego podpisu”

Po pierwsze, klucz publiczny musi zostać zamaskowany na urządzeniu wyborcy. Maskowanie to wykonywanie poszczególnych operacji matematycznych na urządzeniu użytkownika. Wyobraź sobie, że pomyślałeś o losowej liczbie od 1 do 100, potem pomyślałeś o drugiej losowej liczbie od 1 do 10 i trzeciej od 10 do 50, podniosłeś początkowo pomyślaną liczbę do potęgi drugiej liczby i podzieliłeś ją bez reszta do trzeciej. O wyniku powiadomiono innych. Przywrócenie pierwotnego numeru nie będzie dla Ciebie trudne, ponieważ znasz kolejność działań i liczby, które masz na myśli. Ale osoby wokół ciebie nie będą w stanie tego zrobić.

Maskowanie (zaślepianie) klucza publicznego odbywa się według specjalnego algorytmu kryptograficznego. W efekcie walidator podpisuje zamaskowany klucz publiczny, nie znając klucza oryginalnego. Ale osobliwością algorytmu jest to, że użytkownik (wyborca), po otrzymaniu podpisu dla zamaskowanego klucza, może dokonać odwrotnych przekształceń i uzyskać podpis ważny dla oryginalnego, zdemaskowanego klucza.

Opisany algorytm jest szeroko stosowany w protokołach głosowania tajnego. Zdalny elektroniczny system głosowania wykorzystuje obecnie algorytm RSA z kluczem o długości 4096 bitów do składania podpisów „ślepych”.

Ogólnie procedura anonimizacji jest następująca.

  1. Po utworzeniu głosowania tworzona jest osobna para kluczy „walidatora”, a klucz publiczny jest rejestrowany w łańcuchu bloków. Dla każdego głosu tworzona jest unikalna para kluczy.
  2. Użytkownik jest identyfikowany w systemie identyfikacji (w tym przypadku w ESIA) i wyraża zgodę na przesłanie swoich danych identyfikacyjnych z systemu identyfikacji do DEG PTC.
  3. Komponent „Lista wyborców” DEG PTC sprawdza obecność użytkownika na liście wyborców.
  4. Na urządzeniu użytkownika tworzone są jego klucze osobiste – prywatny i publiczny, znane tylko jemu.
  5. Klucz publiczny jest maskowany na urządzeniu użytkownika
  6. Wraz z danymi identyfikacyjnymi i zamaskowanym kluczem publicznym użytkownik uzyskuje dostęp do komponentu „Lista wyborców”.
  7. Komponent ponownie sprawdza obecność użytkownika na liście oraz fakt, że nie otrzymał on wcześniej podpisu
  8. Jeżeli wszystkie kontrole przebiegły pomyślnie, klucz zostaje podpisany
  9. Fakt podpisania klucza jest rejestrowany w blockchainie
  10. Użytkownik na swoim urządzeniu zdejmuje maskę z klucza publicznego i otrzymuje klucz prywatny, klucz publiczny oraz podpis na kluczu publicznym, a wszystkie klucze są znane tylko jemu.
  11. Następnie użytkownik zostaje przeniesiony do strefy anonimowej - na osobną stronę internetową edg2020.gov.ru, gdzie nie można go zidentyfikować (na przykład przed przejściem może podłączyć VPN lub zmienić dostawcę Internetu, całkowicie zmieniając Adres IP)
  12. O przyjęciu karty do głosowania decydować będzie wyłącznie to, czy podpis „walidatora” zostanie zweryfikowany i czy taki klucz nie był wcześniej używany.

Następnie podajemy opis algorytmu z punktu widzenia kryptografii.
Opcje podpisu i oznaczenia:

Omówienie procedury anonimizacji dla zdalnego elektronicznego systemu głosowania
Omówienie procedury anonimizacji dla zdalnego elektronicznego systemu głosowania

M – w formacie dopełnienia FDN do podpisu.

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

Dodaj komentarz