{"id":1059,"date":"2022-01-26T12:07:29","date_gmt":"2022-01-26T09:07:29","guid":{"rendered":"http:\/\/esanu.name\/vitalie\/?p=1059"},"modified":"2022-01-26T12:07:29","modified_gmt":"2022-01-26T09:07:29","slug":"votul-secret-dus-la-extrem","status":"publish","type":"post","link":"http:\/\/esanu.name\/vitalie\/?p=1059","title":{"rendered":"Votul secret dus la extrem"},"content":{"rendered":"<p>\t\t\t\t<span style=\"font-weight: 400;\">Google a publicat\u00a0 un articol \u0219tiin\u021bific unde demonstra c\u0103 \u00een acela\u0219i sistem informa\u021bional nu po\u021bi avea integral (concomitent): anonimitatea votului, confirmarea identit\u0103\u021bii \u0219i auditarea vot\u0103rii. Din cele trei po\u021bi alege doar dou\u0103. Dac\u0103 ai anonimitatea votului \u0219i secretul votului nu po\u021bi face audit, dac\u0103 ai audit \u0219i confirmarea identit\u0103\u021bii nu po\u021bi avea anonimitatea votului \u0219i dac\u0103 ai anonimitatea votului \u0219i audit \u2014 nu po\u021bi avea confirmarea identit\u0103\u021bii. Cuv\u00e2ntul cheie \u00een acel articol este <strong>ACELA\u0218I<\/strong>. Deci, ace\u0219ti trei piloni pot fi desp\u0103r\u021bi\u021bi \u00een 2 sisteme informatice care nu sunt legate \u00eentre ele, iar astfel putem asigura secretul votului.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00cen Estonia s-a mers pe acest principiu. Un sistem informatic confirm\u0103 identitatea, colecteaz\u0103 voturile criptate \u0219i apoi \u00eentr-un alt sistem informatic (voturile criptate sunt transferate pe un DVD) se decripteaz\u0103. Pentru decriptare ei folosesc un server <a href=\"https:\/\/en.wikipedia.org\/wiki\/Hardware_security_module\">HSM<\/a>, destul de scump, care genereaz\u0103 cheile de criptare \u0219i decriptare.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La VoteMeApp am hot\u0103r\u00e2t s\u0103 mergem un pic mai departe. S\u0103 folosim o solu\u021bie mult mai ieftin\u0103, care poate fi utilizat\u0103 u\u0219or de c\u0103tre comunit\u0103\u021bi\/organiza\u021bii mici. S\u0103 folosim un iPad, care este resetat dup\u0103 fiecare generare sau restabilire de chei.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Toat\u0103 magia cu secretul votului se reduce la \u00eemp\u0103r\u021birea procesului de votare \u00een c\u00e2teva sisteme informatice, unde niciunul dintre aceste sisteme nu posed\u0103 informa\u021bia complet\u0103.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"https:\/\/mpass.gov.md\">Mpass<\/a> asigur\u0103 autentificare. Acest sistem nu \u0219tie nimic despre votare.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"https:\/\/voteme.app\">VoteMeApp<\/a> asigur\u0103 autorizarea \u0219i restric\u021bionarea \u00een baza de INDP la votare \u0219i colecteaz\u0103 voturile criptate. Acest sistem are informa\u021bia cine voteaz\u0103 \u00eens\u0103 nu poate decripta voturile.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sistemul SecretVoting (pe care \u00eel voi explica mai jos) decripteaz\u0103 \u0219i calculeaz\u0103 rezultatele. Acest sistem nu prime\u0219te date despre votan\u021bi.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Secretul votului \u00een cazul dat se asigur\u0103 prin buna inten\u021bie \u0219i onestitatea celor care colecteaz\u0103 datele \u00eempreun\u0103 cu cei care sunt organizatori\/observatori\/candida\u021bi \u0219i care particip\u0103 la generarea \u0219i \u00eemp\u0103r\u021birea cheilor private. Teoretic, to\u021bi ace\u0219ti oameni ar putea fi corup\u021bi, \u00eens\u0103 practic e imposibil s\u0103 corupi vreo 10-20 de oameni doar pentru a vedea cine \u0219i ce a votat. \u00cen ceea ce prive\u0219te auditarea rezultatelor \u0219i demonstrarea c\u0103 voturile au fost calculate corect, acestea pot fi f\u0103cute f\u0103r\u0103 a dezv\u0103lui identitatea persoanelor.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dac\u0103 cineva are inten\u021bia de a divulga identit\u0103\u021bile votan\u021bilor &#8211; o face din<em> rea inten\u021bie<\/em>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mai jos, pentru curio\u0219i, urmeaz\u0103 o descriere a sistemului de generare a cheilor, \u00eemp\u0103r\u021birea buc\u0103\u021bilor de cheie, restabilirea buc\u0103\u021bilor de cheie, decriptarea voturilor \u0219i semnarea digital\u0103 a rezultatului.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La baza votului secret st\u0103 un algoritm de criptare destul de popular, care este folosit peste tot \u00een Internet, atunci c\u00e2nd deschide\u021bi un site, comunica\u021bi prin messenger sau semna\u021bi un document cu MSign. Este algoritmul <a href=\"https:\/\/ro.wikipedia.org\/wiki\/RSA\">RSA<\/a> de criptare\/decriptare cu chei publice\/private. Adic\u0103 acest algoritm genereaz\u0103 dou\u0103 chei (parole) legate \u00eentre ele matematic care au ni\u0219te propriet\u0103\u021bi speciale. Dac\u0103 criptezi cu cheia 1, po\u021bi decripta doar cu cheia 2, \u0219i invers, dac\u0103 criptezi cu cheia 2 po\u021bi decripta doar cu cheia 1. La generarea acestora, cheia 1 se nume\u0219te cheie public\u0103, pentru c\u0103 ea se \u00eemparte la to\u021bi care vor s\u0103 cripteze informa\u021bia \u0219i s\u0103 \u021bi-o transmit\u0103 \u021bie. Iar cheia 2 se consider\u0103 cheie privat\u0103, care trebuie p\u0103strat\u0103 dup\u0103 7 l\u0103c\u0103\u021bi. Doar cu acea cheie privat\u0103 pute\u021bi decripta informa\u021bia.<\/span><\/p>\n<figure id=\"attachment_1067\" aria-describedby=\"caption-attachment-1067\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1067 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-26-at-10.56.10-1024x545.png\" alt=\"\" width=\"625\" height=\"333\" \/><figcaption id=\"caption-attachment-1067\" class=\"wp-caption-text\">Diagrama un sistem informa\u021bional pentru votare secret\u0103.<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">C\u00e2t despre cele 7 l\u0103c\u0103\u021bi. Se ia un server \u0219i se pune \u00eentr-un safeu \u0219i se \u00eenchide cu o l\u0103cat\u0103, cheia se d\u0103 la unul din organizatori, apoi acel safeu se pune \u00een alt safeu \u0219i s\u0103 \u00eenchide cu o cheie care se d\u0103 la alt organizator \u0219i tot a\u0219a de 7 ori :D. Glumesc\u2026 sigur c\u0103 nimeni nu va investi astfel de resurse fizice c\u00e2nd este solu\u021bie matematic\u0103 mult mai bun\u0103.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Shamir%27s_Secret_Sharing\">Algoritmul Shamir<\/a>, \u00eemparte un num\u0103r\/secret\/cheie \u00een mai multe buc\u0103\u021bi. Dup\u0103 \u00eemp\u0103r\u021birea \u00een buc\u0103\u021bi, po\u021bi restabili \u00eenapoi cheia original\u0103 doar dac\u0103 se adun\u0103 iar\u0103\u0219i to\u021bi \u0219i arat\u0103 buc\u0103\u021bile lor. Algoritmul acesta are o proprietate interesant\u0103. Cheia poate fi \u00eemp\u0103r\u021bit\u0103 de exemplu la 20 de oameni \u00eens\u0103 poate fi restabilit\u0103 cu 19 minim. Astfel se evit\u0103 \u0219antajul din partea unui singur om care nu dore\u0219te s\u0103 \u00ee\u0219i deschid\u0103 partea lui de cheie.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Deci, cum se face aceast\u0103 procedur\u0103 \u00eentr-o form\u0103 transparent\u0103 \u0219i de \u00eencredere.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se adun\u0103 un comitet de organizare, de dorit ini\u021biatorul alegerilor, c\u00e2\u021biva observatori \u0219i candida\u021bii.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se ia un iPad \u0219i se reseteaz\u0103 pentru a evita orice suspectare de spionare.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se deschide de pe GitHub SecretVoting, o pagin\u0103 html care ajut\u0103 la crearea \u0219i \u00eemp\u0103r\u021birea cheilor. (GitHub e un serviciu de hostare a codului surs\u0103, un site unde majoritatea programatorilor \u00ee\u0219i \u021bin codurile surs\u0103. Un plus c\u0103 acest cod de la SecretVoting este public \u0219i oricine \u00eel poate inspecta \u0219i convinge c\u0103 totul e corect \u0219i transparent \u00een acest proces de \u00eemp\u0103r\u021bire a cheilor).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se \u00eenchide accesul la Internet pentru a evita orice scurgere de informa\u021bie.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se configureaz\u0103 num\u0103rul de participan\u021bi la \u00eemp\u0103r\u021birea cheilor \u0219i se seteaz\u0103 num\u0103rul minim de participan\u021bi pentru restabilirea cheilor. Recomandarea noastr\u0103 e s\u0103 fie \u201en-1\u201d minimum din \u201en\u201d maximum setat (de exemplu 7 din 8). Dar e o alegere care se face adhoc de echipa organizatoare.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se genereaz\u0103 cheia public\u0103 \u0219i se arat\u0103 tuturor (\u00een form\u0103 de QRCode) \u0219i oricine o poate fotografia \u0219i \u021bine o copie la el \u00een telefon. E important ca reprezentantul de la VoteMeApp s\u0103 o fotografieze pentru c\u0103 ea va merge la to\u021bi votan\u021bii \u0219i ei vor cripta voturile anume cu aceast\u0103 cheie.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se invit\u0103, unul c\u00e2te unul membrii comitetului de organizare. Fiecare fotografiaz\u0103 partea lui de cheie privat\u0103 f\u0103r\u0103 a vedea altele.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se reseteaza iPad-ul, pentru a distruge orice informa\u021bie care poten\u021bial ar putea compromite cheia privat\u0103.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Cheia public\u0103 se transmite serverului de votare, iar oamenii c\u00e2nd voteaz\u0103 o pot vedea \u0219i respectiv toate voturile se cripteaz\u0103 anume cu aceast\u0103 cheie.<\/span><\/p>\n<figure id=\"attachment_1061\" aria-describedby=\"caption-attachment-1061\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1061 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-25-at-15.43.51-1024x509.png\" alt=\"\" width=\"625\" height=\"311\" \/><figcaption id=\"caption-attachment-1061\" class=\"wp-caption-text\">Setarea num\u0103rului de participan\u021bi la \u00eemp\u0103r\u021birea cheii private.<\/figcaption><\/figure>\n<figure id=\"attachment_1062\" aria-describedby=\"caption-attachment-1062\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1062 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-25-at-15.44.07-1024x509.png\" alt=\"\" width=\"625\" height=\"311\" \/><figcaption id=\"caption-attachment-1062\" class=\"wp-caption-text\">Afi\u0219area cheii publice<\/figcaption><\/figure>\n<figure id=\"attachment_1063\" aria-describedby=\"caption-attachment-1063\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1063 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-25-at-15.44.20-1024x509.png\" alt=\"\" width=\"625\" height=\"311\" \/><figcaption id=\"caption-attachment-1063\" class=\"wp-caption-text\">Ecranul de interac\u021biune a primului membru pentru a lua \u00een privat o parte din cheia privat\u0103.<\/figcaption><\/figure>\n<figure id=\"attachment_1064\" aria-describedby=\"caption-attachment-1064\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1064 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-25-at-15.44.29-1024x507.png\" alt=\"\" width=\"625\" height=\"309\" \/><figcaption id=\"caption-attachment-1064\" class=\"wp-caption-text\">Afi\u0219area unei par\u021bi din cheia privat\u0103, doar at\u00e2t timp c\u00e2t se \u021bine ap\u0103sat butonul ro\u0219u.<\/figcaption><\/figure>\n<figure id=\"attachment_1065\" aria-describedby=\"caption-attachment-1065\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1065 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-25-at-15.44.50-1024x509.png\" alt=\"\" width=\"625\" height=\"311\" \/><figcaption id=\"caption-attachment-1065\" class=\"wp-caption-text\">Ecranul de finalizare \u0219i eliminare din memorie a cheilor generate.<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">Dup\u0103 ce se \u00eencheie votarea, un reprezentat de la VoteMeApp vine cu voturile criptate la organizatori, care pot folosi acela\u0219i iPad (sau oricare altul).<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se ia un iPad \u0219i se reseteaz\u0103.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se deschide de pe GitHub acela\u0219i SecretVoting.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pentru a minimiza interac\u021biunea prin Internet, transferul voturilor criptate se face cu un short link de o singur\u0103 folosin\u021b\u0103 (a doua oar\u0103 cererea nu va mai \u00eentoarce voturile criptate) spre VoteMeApp.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se deconecteaza iPad-ul de la Internet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se scaneaz\u0103 QR-codul cheii publice \u0219i se copie \u00een c\u0103su\u021ba cheii publice.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Apoi fiecare dintre membrii comitetului de organizare, \u00ee\u0219i prezint\u0103 pe r\u00e2nd partea lor de cheie privat\u0103, pentru a fi scanat\u0103 de la iPad. Astfel se va restabili cheia privat\u0103 complet\u0103.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se apas\u0103 butonul Start, se lanseaz\u0103 procedura de decriptare, calculare \u0219i afi\u0219are a rezultatelor.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Rezultatele se semneaz\u0103 digital cu cheia privat\u0103 complet\u0103. Rezultatele semnate digital se transfer\u0103 la serverul de votare, unde to\u021bi participan\u021bii la votare pot vedea rezultatele \u0219i s\u0103 le verifice cu semn\u0103tura digital\u0103.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Se reseteaz\u0103 iPad-ul pentru a elimina orice urm\u0103 de cheie privat\u0103 \u0219i voturi.<\/span><\/li>\n<\/ol>\n<figure id=\"attachment_1066\" aria-describedby=\"caption-attachment-1066\" style=\"width: 615px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1066 size-large\" src=\"http:\/\/esanu.name\/vitalie\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-25-at-15.45.08-1024x506.png\" alt=\"\" width=\"625\" height=\"309\" \/><figcaption id=\"caption-attachment-1066\" class=\"wp-caption-text\">Ecranul de restabilire a cheii private, publice \u0219i importarea voturilor criptate.<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">A\u0219a arat\u0103 votarea secret\u0103 online dus\u0103 p\u00e2n\u0103 la extrem.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google a publicat\u00a0 un articol \u0219tiin\u021bific unde demonstra c\u0103 \u00een acela\u0219i sistem informa\u021bional nu po\u021bi avea integral (concomitent): anonimitatea votului, confirmarea identit\u0103\u021bii \u0219i auditarea vot\u0103rii. Din cele trei po\u021bi alege doar dou\u0103. Dac\u0103 ai anonimitatea votului \u0219i secretul votului nu po\u021bi face audit, dac\u0103 ai audit \u0219i confirmarea identit\u0103\u021bii nu po\u021bi avea anonimitatea votului \u0219i &#8230; <a title=\"Votul secret dus la extrem\" class=\"read-more\" href=\"http:\/\/esanu.name\/vitalie\/?p=1059\" aria-label=\"More on Votul secret dus la extrem\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1059","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=\/wp\/v2\/posts\/1059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1059"}],"version-history":[{"count":0,"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=\/wp\/v2\/posts\/1059\/revisions"}],"wp:attachment":[{"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1059"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/esanu.name\/vitalie\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}