Преглед на процедурата за анонимизация на системата за дистанционно електронно гласуване

В предишните публикации Спирахме на темата, че в разглежданата от нас система за дистанционно електронно гласуване за осигуряване на тайна на гласуването и анонимизиране на избирателите се използва криптографският алгоритъм "слепа електронна подпис". В тази статия ще го разгледаме по-подробно.

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

При подписването се случва следното: първо, електронният документ, чрез математически преобразования, се преобразува в последователност от знаци с определен размер - това се нарича хеш функция.

Получената символната последователност (хеш на документа) се криптира от изпращача на документа с помощта на неговия частен ключ и заедно с публичния ключ се изпраща на получателя. Получателят декриптира с помощта на публичния ключ символната последователност, прилага към документа точно същата хеш функция и сравнява резултата от преобразуването с резултата от декриптирането. Ако всичко съвпаде, то в документа не е било направено промяна след подписването му от изпращача.

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

Нека преминем към това какво представлява „сляпа подпись“ и как тя може да ни помогне при анонимизация.

Представете си, че в описания по-горе случай изпращачът е избирател, документът е бюлетина, а получателят - избирателната комисия, или както наричахме „компонент за отчитане и броене на гласове“. Като трета страна (валидатор) ще действа компонентът „Списък на избирателите“. В този случай процесът може да протича по следния начин.

Преглед на процедурата за анонимизация на системата за дистанционно електронно гласуване

Избирателят генерира на своето устройство чифт ключове - секретен и публичен. Тъй като тези ключове се създават на личното му устройство в браузъра, те са известни само на него.

С помощта на тези ключове той ще подпише бюлетината, за да контролира нейната цялост. Подписаната бюлетина и публичният ключ той изпраща на из electoralната комисия. За да бъде приета бюлетината от компонента „Разпределено съхранение и броене на гласове“, тя трябва да провери дали публичният ключ е подписан от валидатора.

Валидаторът (компонент „Списък на избирателите“) ще подпише публичния ключ само след като се увери, че избирателят присъства в списъка на избирателите.

За да се запази тайната на гласуването, публичният ключ на избирателя, създаден на неговото устройство, не трябва да бъде известен на никого. Получава се, че валидаторът трябва да подпише онова, което му е неизвестно. Задачата изглежда невъзможна, но тук на помощ идват криптографските алгоритми - в този случай алгоритъмът за „сляпа подпись“

Първо, публичният ключ трябва да бъде маскиран на устройството на избирателя. Маскировката е извършването на отделни математически операции на устройството на потребителя. Представете си, че сте измислили произволно число от 1 до 100, след това сте измислили второ произволно число от 1 до 10 и трето, от 10 до 50, първоначално измисленото число вдигате на степен на второто число и го делите без остатък на третото. Полученият резултат съобщавате на околните. На вас няма да ви е трудно да възстановите първоначалното число, тъй като знаете поредицата от действия и измислените числа. Но околните не могат да го направят.

Маскировката (ослеплението) на открития ключ се извършва съгласно специален криптографски алгоритъм. В резултат валидаторът подписва замаскирания открит ключ, като оригиналният ключ остава неизвестен за него. Особеността на алгоритъма е, че потребителят (избирателят), след като получи подписа на замаскирания ключ, може да извърши обратни преобразования и да получи валиден подпис и за оригиналния, незамаскиран ключ.

Описаният алгоритъм се използва широко в протоколите за тайно гласуване. В системата за дистанционно електронно гласуване в момента за сляпа подписка се използва алгоритъм RSA с дължина на ключа 4096 бита.

В общ вид процедурата за анонимизиране изглежда по следния начин.

  1. При създаване на гласуването се създава отделна ключова двойка „валидатор“, а откритият ключ се записва в блокчейна. За всяко гласуване се създава уникална ключова двойка.
  2. Потребителят се идентифицира в системата за идентификация (в случая, в ЕСИА) и предоставя разрешение за предаване на своите идентификационни данни от системата за идентификация в ПТК ДЕГ.
  3. Компонентът „Списък на избирателите“ на ПТК ДЕГ проверява наличието на потребителя в списъка на избирателите.
  4. На устройството на потребителя се създават неговите лични ключове – закрит и открит, известни само на него.
  5. На устройството на потребителя откритият ключ се маскира.
  6. Заедно с идентификационните данни и замаскирания открит ключ потребителят се обръща към компонента „Списък на избирателите“.
  7. Компонентът отново проверява наличието на потребителя в списъка и факта, че той не е получавал подпис преди това.
  8. Ако всички проверки са успешни, се извършва подписването на ключа.
  9. Фактът на подписването на ключа се записва в блокчейна.
  10. Потребителят на своето устройство сваля маската от открития ключ и получава закрит ключ, открит ключ и подпис на открития ключ, като всички ключове са известни само на него.
  11. След това потребителят преминава в анонимната зона – на отделен сайт edg2020.gov.ru, където не може да бъде идентифициран (например, преди да премине, той може да смени интернет доставчика, напълно променяйки IP адреса). VPN или да смени интернет провайдера, напълно променяйки IP адреса).
  12. Приемането на бюлетина ще зависи единствено от това дали подпистието на „валидатора“ ще премине проверката и дали такъв ключ не е бил използван преди.

По-долу ще представим описание на алгоритма от гледна точка на криптографията.
Параметри за подписване и обозначения:

Преглед на процедурата за анонимизация на системата за дистанционно електронно гласуване
Преглед на процедурата за анонимизация на системата за дистанционно електронно гласуване

M – в формат padding FDN за подписване.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster