Протоколи таємного голосування — протоколи обміну даними для реалізації безпечного таємного електронного голосування через інтернет за допомогою комп'ютерів, телефонів або інших спеціальних обчислювальних машин. Цей напрямок криптографії все ще розвивається, але вже застосовується на практиці.
Багато країн світу, вже впроваджують електронні голосування на муніципальному рівні і вище. Для впевненості у правильності, надійності та конфіденційності таких виборів і використовують протоколи з доведеною захищеністю, які спираються на перевірені криптографічні системи, наприклад асиметричного шифрування й електронного підпису. Крім того, їм потрібна готова матеріальна та юридична база. Злиття всіх цих чинників утворює безпосередній інструмент електронної демократії.
Огляд
Передумови створення У зв'язку з бурхливим розвитком комп'ютерних мереж виникає природне «оцифрування» різних областей життя, наприклад, виникнення електронних валют. Аналогічним чином з'явилося цифрове голосування, основний інструмент електронної демократії. Довгий час механічні засоби служили в голосуваннях заміною звичайним бюлетеням або відповідали тільки за автоматичний підрахунок паперових бюлетенів. Основну роботу по перевірці голосуючих і обліку голосів проводили інші люди. При такій системі відсутня потреба у таких протоколах. Однак, в останні роки, завдяки розвитку інтернету, голосування стають повністю автоматизованими. У віддаленого голосування багато плюсів. Передбачається, що вони зручніше для кінцевих користувачів, адже люди можуть голосувати не виходячи з дому, від цього підвищується активність виборців. Підтримка електронного голосування обходиться дешевше: замість постійної друку бюлетенів досить одноразово розробити систему. Крім того, з припущення, що ніхто не може втручатися в програму на пристрої для голосування, випливає, що електронне голосування менш схильне до корупції, впливу адміністративного тиску і людського фактора.
Однак, при цьому виникає ряд специфічних проблем, що перешкоджають чесності виборів. Наприклад, при електронних виборах в Нідерландах та Франції виникли сумніви в істинності результатів, отриманих за допомогою машин. Дистанційно набагато складніше авторизувати виборця або впевнитися, що на хід голосування ніхто не вплинув. З іншого боку, інтернет надає більше можливостей для перевірки рядовими виборцями, чи правильно врахований їх голос. В даний час електронні голосування повністю легальні або частково застосовні в багатьох країнах світу. Через те що до них залучається все більше людей, посилюється необхідність у більш безпечних та ефективних методах їх проведення, для чого і були створені спеціальні криптографічні протоколи.
Досліди регламентації та реалізації Ключовим елементом регламентації електронного голосування є закріплення його можливості в конституції держави. Такі статті мають конституції США, Швейцарії, Естонії, Великої Британії та деяких інших країн. Є група країн, до якої входять, наприклад, Фінляндія, Німеччина і Росія, які мають досвід в проведенні таких виборів, але ще не ввели їх повну регламентацію в законодавство. Зрозуміло, це не єдина бюрократична перешкода. Також потрібні специфікації на техніку, з допомогою якої голосування проводиться, способи перевірки чесності результатів, протоколи у разі зриву голосування, і створення самої технічної бази. На основі цих параметрів можна обчислити індекс готовності країни до запровадження цифрового голосування (і конкретного його протоколу).
Першою країною, яка реалізувала легальні загальнонаціональні вибори через інтернет, стала Естонія, за нею пішли Нідерланди та Швейцарія.
Поточний стан справ У всякому разі, ні в одному законодавстві не закріплений сам протокол голосування. Так зроблено з багатьох причин, починаючи від решти недовіри до електронних методів голосування, закінчуючи більш легким переходом з поточного способу проведення на більш ефективний. Прогрес техніки дозволив задуматися про голосування через інтернет тільки близько 20 років тому, саме тому даний розділ криптографії все ще розвивається. У нього немає загальновизнаних книг, і жоден протокол ще не отримав переважну підтримку фахівців. Проблема ускладнюється тим, що організації, які мають досвід впровадження цих систем, воліють не публікувати докладні звіти, що описують систему, і проблеми, що виникли при її введенні.
Зараз для простих опитувань або голосувань всередині малих груп застосовується тривіальний алгоритм. У випадку, коли агент підраховує голоси, не має особливої причини вести махінації, цей протокол є оптимальним варіантом. На виборах державного рівня найбільш поширені модифікації протоколу Фудзіоки — Окамото — Охта. Саме він показав найкращі результати на експериментальних виборах і створив позитивний міжнародний прецедент надійного проведення виборів через інтернет. Для нього і деяких його модифікацій існують доступні для використання приватними особами програми і електронні засоби голосування. Крім того багато науковий статей, що описують нові протоколи таємного голосування, беруть за основу саме його. Можливо, завдяки розвитку техніки і зниження ціни на високопродуктивні системи в найближчому майбутньому з'являться прецеденти використання протоколу Хе — Су. Хоча він вже має свої модифікації, на практиці цей протокол був застосований тільки в студентських експериментальних виборах. Те ж саме можна сказати і про протокол ANDOS. Хоча автори багатьох статей стверджують, що його можна ефективно реалізувати, були тільки прецеденти використання на місцевих виборах. Інші протоколи представлені як перехідні від простих до складних або можливі модифікації для досягнення додаткових цілей.
Вимоги до систем таємного голосування Обов'язкові:
ніхто, крім голосуючого, не повинен знати його вибір; тільки легітимні учасники можуть проголосувати, і притому тільки один раз; рішення голосуючого не може бути таємно або явно ким-небудь змінено (крім, можливо, ним самим).
Бажані:
кожен легітимний учасник може переконатися, що його голос зарахований; кожен легітимний учасник може передумати і змінити свій вибір протягом певного періоду часу; система повинна бути захищена від продажу голосів виборцямиПредполагается, что это бессмысленно, если нельзя удостовериться, как проголосовал продавец: он мог согласиться на сделку, а проголосовать за кого угодно. Это условие плохо совместимо, но не обязательно противоречит возможности проверки, правильно ли зачтён голос. Также возможность изменить голос в течение некоторого времени нейтрализует угрозу подкупа избирателей.; у випадку, якщо голос зараховано неправильно, кожен легітимний учасник може повідомити про це системи, не розкриваючи своєї анонімностіАнонимность не исключает главного требования, что только избиратель знает свой голос (и, соответственно, только он сам может указать, что тот был неправильно зачтён). Существуют схемы, когда избиратели контролируют друг друга, при этом не зная, за голосами кого они наблюдают.; неможливо відстежити, звідки дистанційно проголосував виборець; автентифікація оператора; можна дізнатися, хто брав участь в голосуванні, а хто ні; підтримання системи не повинно вимагати багато ресурсів; система повинна бути відмовостійка у разі технічних несправностей (втрата електроживлення), ненавмисних (втрата виборцем ключа) і злочинних (навмисне видавання себе за іншого виборця, DoS/DDoS) атак.
Справа ускладнюється не тільки тим, що учасники голосування і агентство, що його проводить мають підстави не довіряти один одному, але й тим, що сам процес голосування потрібно захищати від втручання ззовні. Якщо провести аналогію з виборами президента, то виборці повинні захиститися від вкидань бюлетенів з боку виборчого комітету, ЦВК зобов'язаний забезпечити неможливість продажу голосів громадянами, і всі разом повинні не допустити втручання агентів інших країн.
Деякі вимоги суперечать одина одній. Наприклад, можливість перевірки, як проголосував той або інший виборець (навіть їм самим) надає можливість для продажу голосів, а додаткові рівні захисту знижують відмовостійкість і економічність. Зазвичай передбачається, що захист від шахрайства з боку агентства, що займається виборами, пріоритетніший, ніж запобігання продажу голосів. По-перше, вона завдає значно більше шкоди, а по-друге, навіть якщо протокол гарантує неможливість довести сторонній особі, за кого віддано голос, виборець може знайти обхідні шляхи. Наприклад, просто проголосувати прямо перед скупником. Тим не менш, захист від втручання з боку пріоритетніший, ніж все інше.
Простий протокол таємного цифрового голосування Простий алгоритм електронного голосування по суті являє собою листування з електронними підписами між виборчим комітетом та безліччю виборців. Нехай тут і далі: А — агентство, що проводить електронне голосування (англ. Agency), E — виборець, легітимний учасник голосування (англ. Elector), B — цифровий бюлетень. B може містити число, ім'я кандидата, розгорнутий текст або які-небудь інші дані, що повідомляють про вибір E, які верифікують його або необхідні для посилення безпеки протоколу. Хід голосування виглядає так:
Алгоритм
Крок 1. А викладає списки можливих виборців. Крок 2. Користувачі, в числі яких і E, повідомляють про бажання брати участь у голосуванні. Крок 3. А викладає легітимні списки виборців.
Кроки 1-3 обов'язкові. Основна мета — визначення та оголошення числа активних учасників n. Хоча деякі з них можуть не брати участь, а деякі і зовсім не існувати («мертві душі», зловмисно внесені A), можливість маніпулювання голосуванням у A помітно знижена. Надалі ці кроки будуть вважатися за один крок «затвердити списки».
Крок 4. А створює відкритий і закритий ключ викладає в загальний доступ . Хто завгодно може зашифрувати повідомлення за допомогою , але розшифрувати його зможе тільки А. Крок 5. E створює власні публічний і приватний ключі ЕЦП , потім публікує відкритий ключ. Хто завгодно може перевірити документ E, але підписати його - тільки сам виборець. Цей крок пропускається, якщо A вже знає електронні підписи виборців (наприклад, вони були згенеровані при реєстрації в системі). формує повідомлення B, де тим або іншим способом висловлює свою волю підписує повідомлення особистим закритим ключем шифрує повідомлення відкритим ключем відправляє шифроване повідомлення A Крок 6. A збирає повідомлення розшифровує їх за допомогою лежачого у відкритому доступі підраховує їх і публікує результати
Особливості, переваги та недоліки Цей протокол надзвичайно простий, тим не менш, його достатньо, щоб захиститися від зовнішнього втручання, підробки голосів і дискредитації легітимних виборців. Однак голосуючим доводиться абсолютно довіряти A, адже його робота ніким не контролюється. З одного боку, E може надати зловмиснику-покупцеві голосів доказ, як він проголосував, а з іншого — не може перевірити, що A правильно врахував або навіть отримав його бюлетень. Тому тривіальний метод можна застосовувати тільки в спільнотах, де всі довіряють один одному і агентству, що відповідає за підрахунок голосів.
Протокол двох агентств Він же протокол Нурмі — Салома — Сантіна. Основна ідея полягає в тому, щоб замінити одне виборче агентство двома, щоб вони контролювали один одного. Нехай тут і далі V — реєстратор (validator), в обов'язки якого входить підготовка списків, а також допуск або недопуск учасника до голосування. Послідовність дій виглядає так:
Алгоритм
Крок 1. V створює набір розпізнавальних міток відправляє по захищеному каналу по одній мітці кожному хто голосує відправляє A весь набір міток без інформації про те, яка мітка кому належить Крок 2. E генерує , (для цифрового підпису) и (для того, щоб ні A, ні сторонній зловмисник не міг до потрібного часу дізнатися вміст бюлетеня) публікуеться формує повідомлення B з обраним рішенням підписує його прикладає до нього отриманий шифрує за допомогою знову прикладає до шифротексту відправляє шифротекст на розгляд до A Крок 3. A