Uues me peatusime selle juures, et meie uuritavas kaug-elektroonilise hääletamise süsteemis, tagades hääletamise saladuse ja valija anonüümsuse, kasutatakse krüptograafilist algoritmi „pime elektrooniline allkiri“. Selles artiklis vaatleme seda lähemalt.
Esialgu pöördume tuntud ja tuttava elektroonilise allkirja algoritmi poole, mida rakendatakse laialdaselt erinevatel eesmärkidel info süsteemides. Elektroonilise allkirja aluseks on asümmeetrilise krüptograafia algoritmid. Asümmeetriline krüptograafia on krüptograafia, kus kasutatakse kahte võtit: üks neist kasutatakse krüpteerimiseks ja teine dekrüpteerimiseks. Neid nimetatakse avalikuks (public) ja salajaseks (private) veebiks. Avalik võti on tuttav teistele, samas kui salajane hoitakse ainult elektroonilise allkirja omaniku valduses ja on teistele kättesaamatu.
Allkirjastamisel toimub järgnev: kõigepealt muudetakse elektrooniline dokument matemaatiliste transformatsioonide abil kindla suurusega sümbolite järjestikuseks - seda nimetatakse räsi funktsiooniks.
Saadud sümbolite järjestikune (dokumendi räsi) on dokumentide saatja poolt krüpteeritud salajase võti abil ning saadetakse koos avaliku võtmega saajale. Saaja dekrüpteerib saadud sümbolite järjestiku avaliku võtmega, rakendab dokumendile täpselt sama räsi funktsiooni ja võrdleb transformatsiooni tulemust dekrüpteerimise tulemustega. Kui kõik sobib, siis dokumendis ei olnud muudatusi pärast saatja allkirjastamist.
Käesolevad toimingud võimaldavad veenduda, et dokumenti ei ole muudetud, kuid ei võimalda veenduda, et saatja on tõeliselt see, kelleks ta end peab. Seetõttu vajame kolmandat osapoolt, kelle usaldavad nii saatja kui ka saaja. Selleks pöördub saatja dokumendi saatmise eel kolmanda poole poole ja palub tal allkirjastada oma avaliku võtme elektroonilise allkirjaga. Nüüd saadab saatja saajale dokumendi, oma avaliku võtme ja kolmanda poole allkirja oma võtme kohta. Saaja kontrollib kolmanda poole allkirja avalikku võtme suhtes ja usaldab saadud dokumendi allkirja.
Nüüd liigume edasi sellele, mis on "pime allkiri" ja kuidas see võib meid aidata anonüümsuse tagamisel.
Kujutame ette, et eelnevalt kirjeldatud näites on saatja - valija, dokument - hääletussedel ning saaja - valimiskomisjon, või nagu me ütlesime, "häälte arvestamise ja lugemise komponent". Kolmandaks osapooleks (valida) on meil "Valijate loend". Sel juhul võib protsess areneda järgmiselt.

Valija genereerib oma seadmes võtmepaari - privaatse ja avaliku. Kuna need võtmed genereeritakse tema isiklikus seadmes brauseris, on need teada ainult temale.
Nende võtmete abil kirjutab ta hääletussedele alla, et kontrollida selle terviklikkust. Allakirjutatud hääletussedel ja avalik võti saadetakse valimiskomisjonile. Et hääletussedel oleks aktsepteeritud "Jaotatud ladustamise ja häältelugemise" komponendi poolt, peab see kontrollima, et avalik võti on allkirjastatud valideerija poolt.
Valideerija ("Valijate loend" komponent) allkirjastab avaliku võti ainult pärast seda, kui on veendunud, et valija on olemas valijate loendis.
Hääletamise saladuse säilitamise ülesande lahendamiseks ei tohi valija seadmest genereeritud avalik võti olla kellelegi teada. Seega peab valideerija allkirjastama midagi, mida ta ei tunne. See ülesanne näib olevat võimatu, kuid siinkohal tulevad appi krüptograafilised algoritmid - sel juhul "pime allkirjastamise" algoritm.
Esmalt peab valija seadmes avalik võti olema maskeeritud. Maskeerimine on eraldi matemaatiliste toimingute tegemine kasutaja seadmes. Kujutage ette, et olete mõelnud mingile juhuslikule numbrile vahemikus 1 kuni 100, seejärel mõelnud teise juhusliku numbri vahemikus 1 kuni 10 ja kolmanda numbri vahemikus 10 kuni 50, algselt mõeldud number astendatakse teise numbri astmesse ja jagatakse kolmandaga jagamise ülejäägita. Saadud tulemus öeldakse ümbritsevatele. Teie ei leia selle algse numbri taastamine olema keeruline, kuna te teate toimingute järjekorda ja oma mõeldud numbreid. Kuid ümbritsejad ei suuda seda teha.
Ava key concealment (blind signature) is performed according to a special cryptographic algorithm. As a result, the validator signs the masked public key, while the original key remains unknown to it. The unique aspect of the algorithm is that the user (voter), upon receiving the signature for the masked key, can reverse the transformations to obtain a valid signature for the original, unmasked key.
The described algorithm is widely used in secret voting protocols. In the remote electronic voting system, the RSA algorithm with a key length of 4096 bits is currently used for blind signatures.
In general, the anonymization procedure is outlined as follows.
- When creating a vote, a separate key pair for the 'validator' is generated, with the public key recorded in the blockchain. A unique key pair is created for each voting event.
- The user is identified in the identity verification system (in this case, in the ESIA) and grants permission for the transfer of their identification data from the identity system to the electronic voting system (PTK DEG).
- The 'Voter List' component of the PTK DEG checks the user's presence in the voter list.
- On the user's device, personal keys are generated – a private key and a public key, known only to them.
- On the user's device, the public key is masked.
- Along with the identification data and masked public key, the user approaches the 'Voter List' component.
- The component checks again for the user's presence in the list and whether they have received a signature before.
- If all checks are successful, the key is signed.
- The fact of the key being signed is recorded in the blockchain.
- The user unmasks the public key on their device and retrieves the private key, the public key, and the signature on the public key, with all keys being known only to them.
- After this, the user is transferred to the anonymous zone – to a separate website edg2020.gov.ru, where they cannot be identified (for example, before the transition, they can change or switch their Internet provider, fully changing their IP address). VPN The receipt of the ballot will depend solely on whether the 'validator' signature passes the verification and whether such a key has been used previously.
- The receipt of the ballot will depend solely on whether the 'validator' signature passes the verification and whether such a key has been used previously.
Edasi anname algoritmi kirjelduse krüptograafia seisukohalt.
Allkiri parameetrid ja märkused:


M – allkirja jaoks padding FDN formaadis.
Allikas: habr.com
