Чета постоянно представители или почитатели на партии с твърд пенсионерски електорат, или партии, разчитащи на по-малко грамотни граждани, истерично да отричат електронното гласуване защото нямало да бъде сигурно.

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

Няма принципна причина, която да прави дистанционното гласуване несигурно, различна от избраните процедури за провеждането му. Но това няма отношение към дискусията по референдума – да има или да няма електронно гласуване. Това са техническите детайли, които трябва да се обсъждат открито и активно, ако референдумът е положителен и предизвика публична дискусия, която да доведе до промяна на законодателството, и да се разреши да има електронно гласуване.

За мен технологичните дискусии на този етап са преждевременни. Те са еквивалентни на дискусиите – дайте да нямаме гласуване въобще, защото може да се подправя. По добре ли ще ни е с един неподправен цар или диктатура на Партията? 🙂 Няма съществена разлика в тезите. И вероятно поради това царските движения и почитатели на диктатурата на партиите, са основните противници на електронното гласуване.

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

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

В този смисъл нека за момент да не говорим за технология. Нека говорим за процедури-процедура.

Също така нямам за цел да кажа, че дадена процедура за дистанционно гласуване гарантира абсолютна сигурност. Аз искам само да отбележа, че във всеки един момент, тя е винаги по-добра и по-сигурна отколкото моментната процедура за присъствено гласуване.

Изискванията към гласуването, без значение дали е присъствено или дистанционно, са да бъде лично, тайно, и гарантирано (тоест да не може да се подмени вота).

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

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

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

Тайната на вота се гарантира от безименни бюлетини и от гласуване в (макар и) обществена стая, такава в която трети страни твърдят, че е сигурно, че няма никой друг (но няма абсолютна гаранция).

Сигурността на вота трябва да се гарантира от това, че няма как друга бюлетина да е влязла в урната, освен такава от гласуващи. Бюлетината не може пък да се подмени, защото е пазена зорко, от хора, които се предполага, че са врагове и ще се дебнат един друг (изборната комисия е съставена от представители на различни партии).

Ние добре знаем обаче, че над 1 на 10000 лични карти са фалшифицирани. Знаем и за мъртвите души – хора, които имат право да гласуват и са в списъците за гласоподаватели, но са починали, и се използват, за да се позволи да има останали свободни бюлетини, добавяни в последният момент в урните, без това да създава подозрения при централното преброяване, тъй като броят на бюлетините е под или около очакваната бройка.

Само сега, за тези избори, са премахнати над 500 000 мъртви души (заради правилото за уседналост). Това не са всички мъртви души, но бройката ни дава чудесен индикатор колко неточни са всъщност изборните списъци. На по-предни избори бяха премахнати други 700 000. Но постоянната урбанизация (при местните избори има изискване за уседналост), емиграция, динамика на смъртността, създават естествен процес на проява на мъртви души, тъй като списъците по места, физически няма как да са идеално актуални (макар централно да има как).

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

Знаем и какво ли още не… На някои места местни картели от представители в ИК си добавят бюлетини в последния момент и дори да са преброени много над подписалите се, че са гласували се броят всички и участват в преброяването. Защото няма как да се разбере, кои са истински и кои не са. Общо, грешките (невалидни, дублирани бюлетини, мъртви души) плават между 5 и 15% на изборите и обикновено нямат съществено значение по отношение на цялостния изборен резултат. Но имат съществено значение при преразпределението на локалните мандати и при местните избори, където често един мандат (заради фрагментацията) или кмет се избират с по малко от 5000 гласа. Тези грешки, както и ниската избирателна активност имат значение и за партиите, които влизат в парламента или получават субсидия. За пример: на предните парламентарни избори само 50 000 гласа по-голяма изборна активност (под 1% от всички имащи право на глас) деляха дали АБВ и АТАКА ще влязат в парламента или не. Даже нямаше значение за кого са гласували тези хора, тъй като става въпрос за фрагментацията от разпределението на мандати. Само заради ниска избирателна активност те влязоха. Дали това е една от причините и двете партии да са твърди противници на всякакви методики за повишаване на изборната активност (от реклами, през задължително гласуване, до против електронното гласуване, всъщност АБВ официално е за електронно гласуване, но негови представители се изказват публично против) не знам.

Всички тези и други дефекти са породени от това, че няма въведен механизъм за двустранна валидация. Ние знаем за тях от години, коментират се на всички избори, и постоянно променяме изборния кодекс така, че да атакуваме един или друг проблем, до момента не особено ефективно.

Системата за сигурност на присъственото гласуване разчита прекомерно много на заплахи (глоби), политически присъствени изборни комисии (които ще се следят едни други поради естествената политическа конкуренция), и изборни наблюдатели за защита. Но с годините постепенно се съкращава количеството хора и партии, имащи право да присъстват в изборна комисия, до парламентарно представени или до коалиционно партниращи си субекти, и така започват да се толерират естествени картелни съглашения, които отслабват значително присъствения контрол. Отделно от това, независимите изборни наблюдатели се съкращават (сложна процедура за регистрация и изискване да трябва да идват от политически партии предимно), а самите сътрудници или наблюдатели от своя страна злоупотребяват като гласоподаватели (предимно с дублиране на гласовете – пример ББЦ, БСП и ДПС на предни избори, те когато гласуват могат да заобикалят правилото за уседналост, което автоматично допуска злоупотреби с дублиране на гласовете, двойно гласуване, и други).

Нека да си представим обаче, следната хипотетична ситуация:

Че имаме разделение между компонентите – лична оторизация, придобиване на право да гласуваш (бюлетина), асоциирането на бюлетина с вот (гласуване) и преброяване на гласовете. Всеки един от тези елементи се оторизира и проверява в отделна и независима организация, а нещо друго (например математиката?) ни гарантира съседна двустранна асоциация, но не и такава, която прескача съсед. Тогава много изкривявания (но не всички) на текущия модел биха били преодолени автоматично.

Обяснявам малко по детайлно – всичко това си го имаме и сега, но нека си представим, че то е напълно отделено в отделни организации и процесите се случват независимо. Мога да определя следните отделни и независими компоненти:

  1. Оторизация на едно място, че ти си си ти (еквивалент на издаване на личната карта) и получаване на съответния идентификатор за това (сега това е личната карта издадена от МВР, но може да бъде и електронен подпис или друго, от една организация) ;
  2. Оторизация, че имаш право да получиш бюлетина, с която да гласуваш (сега това го прави изборната комисия, проверяваща те в изборния списък и гарантираща, че ти си ти, чрез сертификата издаден от организация 1. В електронния вариант можеш да получиш генериран математически случаен електронен сертификат, проверяем математически (може да е hash функция) и подписан със сертификата на тази втора организация, така че да е непроменим)
  3. Асоцииране на вот с бюлетина (сега го правиш пред изборната комисия, която подпечатва бюлетината ти, за да гарантира пред трети страни, че е валидна. В електронния вариант може да е трета организация, например сайт, в който ти подписваш електронно избора си с получения от 2 сертификат)
  4. Преброяване на бюлетините (прави го ЦИК, с подизпълнител ИО). В електронния вариант това е преброяване и двойно валидиране на валидността на електронната бюлетина, от четвърта организация.

Нека си представим предната система реализирана така (отново, технологията е примерна, не е важна, важни са процедурата и принципът) –

  1. Отиваш и си издаваш електронен подпис, който валидира, че ти си си ти. Той съдържа уникален твой сертификат валидиран от издателя на сертификата (всъщност днес това го правят всички клонове на банки срещу 15 лева), който има това право (еквивалент на МВР). Електронният подпис е само пример. Може да бъде електронната ти идентификационна карта (личната ти карта, която ще можеш да получиш от 2017-та година нататък), може да е One-Time-Password система от друга форма. Няма голямо значение. Технологията не е важна, на този етап ;
  2. Отиваш и получаваш електронна бюлетина срещу електронния си подпис, тя представлява да речем hash функционално число, подписано от твоя сертификат (но без идентификационна информация) или от алтернативен по-анонимен алгоритъм, като да речем модифициран DH (или уникален случаен частен ключ, и двете могат да дойдат пак през електронния ти подпис). Получената информация пък е подписана със сертификат от организацията, издаваща електронните бюлетин (тук можем да правим вариации, може да имаш уникален публичен и частен ключ, генерирани случайно и дадени за теб например);
  3. Отиваш на сайта за гласуване, там с получения частен ключ подписваш бюлетината и я пращаш обратно на сайта за гласуване, който я подписва със своя си сертификат (сертификатите играят роля на печатите при ИК) и предава веднага или по късно на организацията за преброяване (или пък я предава веднага на междинна организация, но тя я предава на организацията за преброяване след приключване на изборният ден);
  4. Организацията за преброяване получава всички сертификати. Тя има публичните ключове на (1), 2 и 3 (но не и частните). Като резултат тя може да чете информацията (но никой друг не може да чете освен своята си част) и да направи преброяване и пълна валидация. Отделно от 2 е получила списъка с генерираните хешове, има как да ги валидира математически (че са истински) и приема само тези сертификати, които съдържат коректен хеш.

Какъв е резултатът от това разделение на отделни независими и несвързани организации:

Имаме невъзможност за генериране на фалшификати: подписванията при 2 и 3 стават локално при гласуващия. През Мрежата пътуват, а сайтовете получават само подписани сертификати), за да има фалшификат трябва някой да е компрометирал едновременно 1, 2 и 3. Това може да стане само при личния компютър на гласуващия, но дори той да е компрометиран, пак не може да стане лесно – опитайте се да подмените съдържанието на подписваната информация от електронния подпис в ръцете ви на собствения ви компютър. Ако успеете, ми се обадете.

Дори да приемем това за възможно при компютъра на гласуващия, то ще бъде невъзможно да бъде направено масово (няма как в ограничен период от време да повлияеш и да проконтролираш милиони компютри и милиони сертификати), което го прави по-добре стоящо от сегашния модел (ЦИК публикува на всяко гласуване статистика показваща близо поне 100 000 невалидни или дублирани бюлетини, и то по доста консервативния механизъм на оценка, който имат). Също така, подмяната изисква интерактивно действие в момента, в който потребителят се оторизира. Ще ми бъде изключително интересно да чуя как може да стане при един масов електронен вот, в реално време, в рамките на изборния ден. Дори да имаме 1-2 случая на подмяна, те ще са много малко за да повлияят на резултата, и отделно точно електронното гласуване може да допусне механизъм как да се откриват и поправят.

Имаме и гаранция за тайна на вота. Защото само 1 знае дали имаш право да гласуваш и кой си ти. Само 2 издава бюлетина срещу информацията от 1 (но не е задължително да знае кой си, стига да знае, че имаш валиден сертификат, чиято валидация може да се подсигури анонимно), но не знае дали и за кой си гласувал. Само 3 може да знае (това е опционално, 3 може да не разполага със собствения си публичен ключ и да не може да знае), електронната бюлетина с кой вот е асоциирана, но не знае кой е гласувал. Само 4 може да преброи и да валидира бюлетините, пак без да знае кой е гласувал.

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

Тъй като подписите стават локално там където ги извършва гласуващият, то хипотетичният хакер, който е компрометирал по отделно 2 или 3 или 4 не може да генерира фалшиви подписи. Нито може да подпише (няма частните ключове или сертификатите при клиента от предната организация), нито да създаде валиден сертификат (защото той изисква участие от край до край). Теоретично е възможно да създаде масови фалшиви подписи ако хакне 1, но пък красотата на всичко това е, че фалшификатът лесно може да се установи (от ГРАО, в реално време или постфактум при проверката при 4) и всички гласове генерирани по този начин да се извадят от вота (да се инвалидират хешовете от 2 или сертификатите от 1 и ще се получи инвалидация при преброяването при 4). И това е възможно включително пост фактум, отново при запазване на пълна анонимност за гласуващият.

Дублирането е премахнато заради валидацията по активен хеш в организация 4. Но за дублирането ще кажа още нещо по-късно. Всеки електронно гласувал ще има само един единствен валиден вот.

Как гарантираме личното гласуване? Това в хипотезата ми го прави електронният подпис, но той може да бъде валидиран (при 2) ако трябва от видео или снимка при обаждане, и ще получи същата форма на валидация, каквато има и при изборната комисия: да те видят, че си приличаш.

Ами подслушването? Дори да гледаме логове и IP адреси, можем да правим догадки, че някой е гласувал, но не със сигурност кой е той точно, и определено не и за кого е гласувал. Ако криптираната информация е с еднаква дължина, дори статистически механизми не биха могли да помогнат да се различи от подслушване, кой или колко за кого са гласували. Този отговор може да даде само организация номер 4.

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

Как ще гарантираме, че подписите не се дават на други хора? Гаранция, че не си си дал подписа (паспорта) на някой друг е същата, каквато е и при нормалното гласуване. Никаква. Но отново, много е трудно и малко вероятно това да стане масово, и може да се валидира с видео обаждане (или заснемане при получаване на правото за гласуване).

Звучи сложно? На пръв поглед технологията изглежда сложна, с много стъпки. Сигурно ще е трудно за потребителите да я следват? Всъщност не. Идеята с разделението и многото подписвания не е нова и не е случайна. Всъщност тя се изпълнява от ИК и сега, в присъственото гласуване (личната ти карта е сертификат/електронен подпис издаден от МВР, бюлетина с воден знак е сертификат от издателя на бюлетините, проверката по ИК и лична карта и подписа в избирателният списък е еквивалента на получаването на право за гласуване в моята стъпка 2, гласуването в стаичката и последващият печат върху бюлетината са еквивалент на стъпка 3, валидацията на печатите, водният знак върху бюлетините и съдържанието от ЦИК и ИО са еквивалент на стъпка 4. Тази технология с 3-ен подпис е класическата технология използвана от технологията за оторизация KERBEROS на MIT, която до сега не е разбивана, а всъщност е изключително масово употребявана (Active Directory оторизацията в Windows е базирана на нея). Използва се и от свръх популярната OAUTH2 система за оторизация. За потребителя изглежда, че попълва данните си само на едно място, но отзад има двойна (или дори тройна) оторизация, и нито една организация не разполага с цялата и пълната информация за личните данни на участника. По важното е, че потребителите дори не разбират как става, и не се налага да се логват на 3 сайта едновременно. Но това не премахва гаранциите за сигурността.

Компрометирани браузъри, операционни системи, троянски коне не компрометират автоматично например електронния подпис (всъщност всички хакове, за които знаем не компрометират системата по същество, а само дебнат ситуация в която потребителят подписва в реално време и се опитват да изземат сесията. Дори да заподозрем 1-2 такива случая, това е невъзможно да се изпълни масово в изборния ден по начин по който да се повлияе на изборният резултат).

За дублиранията – тъй като имаме вторична анонимна проверка (при 4), потребителят може да гласува безброй пъти анонимно (издавайки си безброй бюлетини), и да му се брои само последния вот. Това не само не е недостатък, но може да е и предимство. Дори да бъде принуден от някой „да се гласува правилно“ пред него, по късно потребителят може да гласува пак, и да инвалидира предното си гласуване. Така насилственият вот може да стане много по труден (но не и продаденият, но той не може да бъде преборен с технология – това е лично решение), тъй като хората ще имат алтернатива. Особено в малките населени места локалното влияние (в изборната секция със заплаха от кмета, както често се случва), може да стане много трудно, тъй като хората могат да отидат и пак да си гласуват валидно, но другаде.

Тъй като само потребителят може да е в състояние да прочете информацията от подписите си, то системата може да бъде направена така, че потребителят да може да провери как е гласувал (ако се предостави такава услуга от 4) и да открие фалшификации, хакове, или да инвалидира гласа си. Нещо повече, никой няма да бъде в състояние да му попречи да го направи, или да разбере, че това се е случило, без да има абсолютно цялата информация от 1,2,3 и 4 (а пък ако дори само един се оплаче, лесно ще се открие проблемът и ще се хване виновникът. При добре работеща полиция, много бързо и точно ще се излавят хората, опитващи да правят компрометиране на системата.

Обърнете внимание, технологиите не са толкова важни (ползвам публични-частни ключове, защото са добра и позната илюстрация), а процедурата и разделението са важни. Ние следваме същата процедура и сега, но нямаме разделение, просто всичко е концентрирано на едно място и не се проверява вторично. Така там където е концентрацията (ИК) може да се правят фалшификации, а поради липсата на вторична проверка, не могат да се изолират и хванат. Също така в присъственото гласуване днес използваме значително по-лесни за фалшификация идентификатори (номера на кочани, водни знаци), отколкото в една електронна система.

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

До момента няма нито един случай на наистина хакната система за електронно гласуване или за електронно банкиране. Нямаме познат случай, при който да е хакнат електронен подпис (но знаем за хиляди подправени паспорти). Нямаме случай, в който да е хакнат алгоритъм за оторизация.

Имаме случаи на откраднати (физически) електронни подписи (но както и при личния паспорт, те могат да се инвалидират и за разлика от личния паспорт инвалидацията може да е мигновена). Имаме случаи на откраднати статични сертификати. Имаме случаи на пробити банкови системи по друг начин (достъп до софтуера, управляващ трансферите на парите). Имаме класически Denial of Service атаки, които блокират или забавят скоростта на работа на системите. Но те не нарушават анонимността или оторизационната система на потребителите, а са плод на грешен дизайн в други части от софтуера. Така че не могат да се ползват като доказателство за несигурност. Сигурността за личността и решенията на крайните потребители си се запазва. Но некадърността на системите си е друг проблем.

В предложената от мен схема нито една организация и дори нито една произволна комбинация от две организации, не може да генерира фалшива система за оторизация, фалшива бюлетина, фалшива асоциация с вот, които да минат на проверка при номер 4. Всички те само ги записват, подписванията прави само потребителят локално.

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

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

Фишинг атаки (сайтове за фалшиво гласуване) няма да сработят, тъй като не разполагат със сертификатите от публичните ключове, както за да вземат гласа на потребителя, така и за да го пратят валидно към 3 или 4.

Единствената атака, която остава е DoS атака, към електронните места за гласуване, така че да бъдат блокирани и потребителите да не могат да гласуват и да се изнервят. Но DoS атаките се решават лесно, с добре дистрибутирани и мащабирани системи. Дори и без атака, системата може да бъде крайно бавна, защото е проектирана лошо (и тук мога да дам пример с Търговския регистър или сайта за електронно преброяване на предните избори). Но това не е причина да няма електронно гласуване, това може да е причина да притиснем държавните организации да бъдат много по сериозни в разработката на софтуера си.

Послепис:

За незапознатите, ще кажа няколко думи за основни алгоритми в криптографията, които могат да се ползват (и всъщност се ползват във всички системи с електронни подписи, онлайн оторизация и електронно банкиране):

Challenge алгоритъм – Представете си че имате две страни които си комуникират през несигурна среда. Страна А иска да валидира, че страна Б е тази, за която се представя. Страна А знае, че страна Б ще се валидира с информация, която страна А знае (да кажем парола).

Когато Б иска да се представи, той моли А да му даде едно случайно число. А му изпраща случайно число. Б използва случайното число, за да криптира (или hash-не) информацията си, и я подава на А. А знае числото, знае алгоритъма за криптиране (hash), и извършва действието на Б локално, след което сравнява резултата с това, което е получил от Б. Ако има съвпадение, значи Б е този, за когото се представя.

Ако някой подслушва мрежата, той знае че Б се опитва да се оторизира пред А. Но не знае паролата на Б, тя никога не минава некриптирана. Отделно не може да използва информацията, получена от Б за да се представи за Б някъде другаде, понеже друго случайно число ще бъде използвано в онази оторизация.

В резултат – имаме активна оторизация, която не може да се декриптира, и не може да се използва другаде или тук по друго време.

Асиметрични алгоритми за криптиране – Това са алгоритми с публични частни ключове. Идеята е проста – имаме математически алгоритми, които ни гарантират, с изключително високо ниво на сигурност, че имаме два ключа, наричани условно публичен и частен. С частния ключ можем да криптираме информация, която може да се декриптира само с публичният ключ. Частният не може да я декриптира. А по частния ключ не можем да създадем публичен и обратно. Така ако вземем частен ключ и криптираме с него някакъв текст, то знаем, че той е криптиран и подписан от този, за който се представя отсрещната страна, ако можем да му го декриптираме с публичния ключ. Без да имаме публичния ключ, не можем да декриптираме, без да е криптиран с реципрочният частен ключ, не можем да декриптираме с публичния. Този алгоритъм е хитър, защото можете да раздадете на приятелите си вашия публичен ключ, и само те ще могат да четат криптираната информация, която им пращате. Но никой друг, освен вас, няма да може да им пише и изпраща информация.

Електронен Сертификат – Двоен (или повече) подпис с публични и частни ключове. Пример – представете си, че вие си създадете своя двойка публичен и частен ключ. Частният си е винаги у вас. Но искате публичният да е достъпен за група хора или всички. Отивате в полицията (или Certificate Authority) и те проверяват, че вие сте вие. След което криптират с техния си частен ключ информация – текст, която казва – да, това е лицето Пешо Пешев, и неговият публичен ключ е този и този (записан вътре). Полученото нещо се нарича сертификат, и можете да го публикувате публично (или да го изпращате, с криптираната от вашия частен ключ поща).

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

Дифи-Хелман алгоритъм – друга форма на асиметрично криптиране, при което участниците дори си разменят публично индикатори за ключовете, от които може да се регенерира публичният (или друг) ключ, но подслушващият не може да го направи.

Еднократна парола – частна форма на challenge алгоритъма, при която криптираната информация, която се обменя за валидация (паролата) се допълва от компонент, който е зависим от времето (или последователността на събитието), примерно времето е добавено към паролата. Така дори някой да подслуша и да се опита да кракне с речник паролата, няма да може, понеже само след да речем минута информацията е чисто нова, и старата е инвалидирана.

Електронен подпис – Това е комбинация от електронен сертификат и еднократна парола. През мрежата се транспортира сертификационна информация, модифицирана и криптирана с форма на еднократна парола. Може да бъде реализиран и по-опростено (например чиповете на кредитните карти са с много по-опростена форма на оторизация), но и по-сложно. Но това е избор на имплементацията, а не е проблем на технологията. Технологията може да бъде удивително сигурна, дори и всички публични ключове и информация, да бъдат свободно достъпни в мрежата.

Безспорно е, че нещо може да бъде реализирано несигурно. Но също така е безспорно, че може да бъде реализирано и сигурно. Това обаче не е въпрос на дискусията дали да има или да няма електронно гласуване. Това е дискусия, след като решим да има електронно гласуване, как точно да бъде направено то. Да казваш, по добре да няма, защото може да бъде направено лошо, е същото, като да отказваш да летиш със самолети, защото от време на време падат. Да, няма да паднеш със самолет, но не значи, че ще живееш вечно, или че самолет няма да ти падне на главата. Значи само, че ще си винаги по бавен от тези, които пътуват със самолет.

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

Редактирана версия от блога на Делян Делчев. Публикува се със съгласието на автора.

This post is also available in: English