Pangkalahatang-ideya ng pamamaraan ng anonymization para sa malayuang electronic voting system

Π’ mga nakaraang publikasyon Napagpasyahan namin ang katotohanan na sa malayong elektronikong sistema ng pagboto na aming isinasaalang-alang, isang cryptographic na "blind electronic signature" na algorithm ang ginagamit upang matiyak ang lihim ng pagboto at gawing anonymize ang botante. Sa artikulong ito ay titingnan natin ito nang mas detalyado.

Una, buksan natin ang kilala at pamilyar na electronic signature algorithm, na malawakang ginagamit sa mga sistema ng impormasyon para sa iba't ibang layunin. Ang electronic signature ay batay sa cryptographic asymmetric encryption algorithm. Ang asymmetric encryption ay encryption gamit ang 2 key: isa sa mga ito ay ginagamit para sa encryption, ang isa para sa decryption. Ang mga ito ay tinatawag na bukas (pampubliko) at pribadong susi. Ang pampublikong susi ay alam ng iba, at ang pribadong susi ay kilala lamang ng may-ari ng elektronikong pirma at naka-imbak sa isang lugar na hindi naa-access ng iba.

Kapag pumirma, ang mga sumusunod ay nangyayari: una, ang elektronikong dokumento, gamit ang mga pagbabagong matematikal, ay nabawasan sa isang pagkakasunud-sunod ng mga character ng isang tiyak na laki - ito ay tinatawag na hash function.

Ang resultang pagkakasunud-sunod ng character (isang hash mula sa dokumento) ay na-encrypt ng nagpadala ng dokumento gamit ang isang pribadong key at, kasama ang pampublikong key, ay ipinadala sa tatanggap. Idini-decrypt ng tatanggap ang pagkakasunud-sunod ng character gamit ang pampublikong key, inilalapat ang eksaktong parehong hash function sa dokumento, at inihahambing ang resulta ng conversion sa resulta ng pag-decryption. Kung tumugma ang lahat, walang ginawang pagbabago sa dokumento pagkatapos itong pirmahan ng nagpadala.

Ang mga inilarawang aksyon ay nagbibigay-daan sa iyo na i-verify na ang dokumento ay hindi nabago, ngunit hindi ka pinapayagang i-verify na ang nagpadala ay kung sino talaga ang sinasabi niyang siya. Samakatuwid, kailangan namin ng third party na pinagkakatiwalaan ng nagpadala at ng tatanggap. Upang gawin ito, bago ipadala ang dokumento, nakikipag-ugnayan ang nagpadala sa isang third party at hihilingin sa kanya na lagdaan ang kanyang pampublikong susi gamit ang kanyang electronic na lagda. Ipinapadala na ngayon ng nagpadala sa tatanggap ang dokumento, ang kanyang pampublikong susi, at isang third party na lagda ng kanyang susi. Bine-verify ng tatanggap ang lagda ng ikatlong partido sa pampublikong susi at pinagkakatiwalaan ang nagreresultang lagda ng dokumento.

Ngayon ay lumipat tayo sa kung ano ang "bulag na lagda" at kung paano ito makatutulong sa atin sa pag-anonymize.

Isipin natin na sa halimbawang inilarawan sa itaas, ang nagpadala ay ang botante, ang dokumento ay ang balota, at ang tatanggap ay ang komisyon sa halalan, o gaya ng sinabi natin na "ang bahagi ng pagbibilang ng boto." Magkakaroon tayo ng bahaging "Listahan ng Botante" bilang isang ikatlong partido (validator). Sa kasong ito, ang proseso ay maaaring mangyari tulad ng sumusunod.

Pangkalahatang-ideya ng pamamaraan ng anonymization para sa malayuang electronic voting system

Bumubuo ang botante ng isang pares ng mga susi sa kanyang device – pribado at pampubliko. Dahil ang mga key na ito ay ginawa sa kanyang personal na device sa browser, siya lang ang nakakaalam ng mga ito.

Gamit ang mga susing ito, pipirmahan niya ang balota para kontrolin ang integridad nito. Ipinadala niya ang pinirmahang balota at susi ng publiko sa komisyon ng halalan. Para matanggap ang isang balota ng bahagi ng Imbakan at Pagbibilang ng Ibinahagi na Boto, dapat nitong patunayan na ang pampublikong susi ay nilagdaan ng validator.

Pipirmahan lamang ng validator (bahagi ng Listahan ng Botante) ang pampublikong susi pagkatapos ma-verify na ang botante ay nasa listahan ng mga botante.

Upang malutas ang problema sa pagpapanatili ng lihim ng pagboto, ang pampublikong susi ng botante na ginawa sa kanyang aparato ay hindi dapat malaman ng sinuman. Lumalabas na ang validator ay dapat pumirma ng isang bagay na hindi niya alam. Ang gawain ay tila imposible, ngunit narito ang mga cryptographic algorithm ay sumagip - sa kasong ito, ang "bulag na lagda" na algorithm

Una, dapat nakamaskara ang pampublikong susi sa device ng botante. Ang masking ay ang pagganap ng mga indibidwal na mathematical operations sa device ng user. Isipin na naisip mo ang isang random na numero mula 1 hanggang 100, pagkatapos ay nag-isip ng pangalawang random na numero mula 1 hanggang 10 at isang pangatlo, mula 10 hanggang 50, itinaas ang unang naisip na numero sa kapangyarihan ng pangalawang numero, at hinati ito nang walang isang natitira sa ikatlo. Ang resulta ay iniulat sa iba. Hindi magiging mahirap para sa iyo na ibalik ang orihinal na numero, dahil alam mo ang pagkakasunud-sunod ng mga aksyon at ang mga numerong nasa isip mo. Ngunit hindi ito magagawa ng mga nakapaligid sa iyo.

Ang pag-mask (pagbulag) ng pampublikong susi ay isinasagawa ayon sa isang espesyal na cryptographic algorithm. Bilang resulta, pinirmahan ng validator ang isang nakamaskara na pampublikong susi nang hindi nalalaman ang orihinal na susi. Ngunit ang kakaiba ng algorithm ay ang user (botante), na nakatanggap ng pirma para sa isang nakamaskara na susi, ay maaaring gumawa ng mga reverse transformation at makakuha ng isang lagda na wasto para sa orihinal, hindi nakatatak na susi.

Ang inilarawang algorithm ay malawakang ginagamit sa mga protocol ng lihim na pagboto. Kasalukuyang ginagamit ng remote electronic voting system ang RSA algorithm na may key na haba na 4096 bits para sa mga blind signature.

Sa pangkalahatan, ang pamamaraan ng anonymization ay ang mga sumusunod.

  1. Kapag ang isang boto ay ginawa, ang isang hiwalay na "validator" na pares ng key ay nilikha, at ang pampublikong susi ay naitala sa blockchain. Ang isang natatanging pares ng key ay nilikha para sa bawat boto.
  2. Ang user ay kinilala sa sistema ng pagkakakilanlan (sa kasong ito, sa ESIA), at nagbibigay ng pahintulot na ilipat ang kanyang data ng pagkakakilanlan mula sa sistema ng pagkakakilanlan patungo sa DEG PTC.
  3. Ang bahagi ng "Listahan ng Botante" ng DEG PTC ay tumitingin sa presensya ng gumagamit sa listahan ng mga botante.
  4. Sa device ng user, nilikha ang kanyang mga personal na susi - pribado at pampubliko, sa kanya lang alam.
  5. Nakamaskara ang pampublikong key sa device ng user
  6. Kasama ang data ng pagkakakilanlan at isang nakamaskara na pampublikong key, ina-access ng user ang bahagi ng "Listahan ng Botante".
  7. Sinusuri muli ng component ang presensya ng user sa listahan at ang katotohanang hindi pa siya nakatanggap ng pirma dati
  8. Kung matagumpay ang lahat ng mga tseke, nilagdaan ang susi
  9. Ang katotohanan ng pagpirma sa susi ay naitala sa blockchain
  10. Ang user sa kanyang device ay nag-aalis ng mask mula sa pampublikong susi at tumatanggap ng pribadong susi, isang pampublikong susi at isang pirma sa pampublikong susi, at ang lahat ng mga susi ay siya lamang ang nakakaalam.
  11. Pagkatapos nito, ang gumagamit ay inilipat sa isang hindi kilalang zone - sa isang hiwalay na website na edg2020.gov.ru, kung saan imposibleng makilala siya (halimbawa, bago ang paglipat ay maaari niyang ikonekta ang isang VPN o baguhin ang kanyang Internet provider, ganap na baguhin ang IP address)
  12. Ang pagtanggap sa balota ay nakasalalay lamang sa kung ang pirma ng "validator" ay napatunayan at kung ang naturang susi ay hindi pa nagamit dati.

Susunod, nagbibigay kami ng isang paglalarawan ng algorithm mula sa punto ng view ng cryptography.
Mga pagpipilian sa lagda at pagtatalaga:

Pangkalahatang-ideya ng pamamaraan ng anonymization para sa malayuang electronic voting system
Pangkalahatang-ideya ng pamamaraan ng anonymization para sa malayuang electronic voting system

M – sa FDN padding format para sa lagda.

Pinagmulan: www.habr.com

Magdagdag ng komento