Протоколи таємного голосуванняПротоколи таємного голосування — протоколи обміну даними для реалізації безпечного таємного електронного голосування через інтернет за допомогою комп'ютерів, телефонів або інших спеціальних обчислювальних машин[1]. Цей напрямок криптографії все ще розвивається, але вже застосовується на практиці. Багато країн світу[2][3], вже впроваджують електронні голосування на муніципальному рівні і вище. Для впевненості у правильності, надійності та конфіденційності таких виборів і використовують протоколи з доведеною захищеністю, які спираються на перевірені криптографічні системи, наприклад асиметричного шифрування й електронного підпису. Крім того, їм потрібна готова матеріальна та юридична база. Злиття всіх цих чинників утворює безпосередній інструмент електронної демократії. ОглядПередумови створенняУ зв'язку з бурхливим розвитком комп'ютерних мереж виникає природне «оцифрування» різних областей життя, наприклад, виникнення електронних валют. Аналогічним чином з'явилося цифрове голосування, основний інструмент електронної демократії. Довгий час механічні засоби служили в голосуваннях заміною звичайним бюлетеням або відповідали тільки за автоматичний підрахунок паперових бюлетенів. Основну роботу по перевірці голосуючих і обліку голосів проводили інші люди. При такій системі відсутня потреба у таких протоколах. Однак, в останні роки, завдяки розвитку інтернету, голосування стають повністю автоматизованими. У віддаленого голосування багато плюсів. Передбачається, що вони зручніше для кінцевих користувачів, адже люди можуть голосувати не виходячи з дому, від цього підвищується активність виборців. Підтримка електронного голосування обходиться дешевше: замість постійної друку бюлетенів досить одноразово розробити систему[4][5]. Крім того, з припущення, що ніхто не може втручатися в програму на пристрої для голосування, випливає, що електронне голосування менш схильне до корупції, впливу адміністративного тиску і людського фактора[6][7]. Однак, при цьому виникає ряд специфічних проблем, що перешкоджають чесності виборів. Наприклад, при електронних виборах в Нідерландах та Франції виникли сумніви в істинності результатів, отриманих за допомогою машин[3]. Дистанційно набагато складніше авторизувати виборця або впевнитися, що на хід голосування ніхто не вплинув. З іншого боку, інтернет надає більше можливостей для перевірки рядовими виборцями, чи правильно врахований їх голос. В даний час електронні голосування повністю легальні або частково застосовні в багатьох країнах світу[8]. Через те що до них залучається все більше людей, посилюється необхідність у більш безпечних та ефективних методах їх проведення, для чого і були створені спеціальні криптографічні протоколи. Досліди регламентації та реалізаціїКлючовим елементом регламентації електронного голосування є закріплення його можливості в конституції держави. Такі статті мають конституції США, Швейцарії, Естонії, Великої Британії та деяких інших країн[9]. Є група країн, до якої входять, наприклад, Фінляндія, Німеччина і Росія[10], які мають досвід в проведенні таких виборів, але ще не ввели їх повну регламентацію в законодавство. Зрозуміло, це не єдина бюрократична перешкода. Також потрібні специфікації на техніку, з допомогою якої голосування проводиться, способи перевірки чесності результатів, протоколи у разі зриву голосування, і створення самої технічної бази. На основі цих параметрів можна обчислити індекс готовності країни до запровадження цифрового голосування (і конкретного його протоколу)[11]. Першою країною, яка реалізувала легальні загальнонаціональні вибори через інтернет, стала Естонія[12], за нею пішли Нідерланди та Швейцарія. Поточний стан справУ всякому разі, ні в одному законодавстві не закріплений сам протокол голосування. Так зроблено з багатьох причин, починаючи від решти недовіри до електронних методів голосування, закінчуючи більш легким переходом з поточного способу проведення на більш ефективний. Прогрес техніки дозволив задуматися про голосування через інтернет тільки близько 20 років тому[коли?], саме тому даний розділ криптографії все ще розвивається. У нього немає загальновизнаних книг, і жоден протокол ще не отримав переважну підтримку фахівців. Проблема ускладнюється тим, що організації, які мають досвід впровадження цих систем, воліють не публікувати докладні звіти, що описують систему, і проблеми, що виникли при її введенні. Зараз для простих опитувань або голосувань всередині малих груп застосовується тривіальний алгоритм. У випадку, коли агент підраховує голоси, не має особливої причини вести махінації, цей протокол є оптимальним варіантом. На виборах державного рівня найбільш поширені модифікації протоколу Фудзіоки — Окамото — Охта. Саме він показав найкращі результати на експериментальних виборах і створив позитивний міжнародний прецедент надійного проведення виборів через інтернет. Для нього і деяких його модифікацій існують доступні для використання приватними особами програми і електронні засоби голосування[13]. Крім того багато науковий статей, що описують нові протоколи таємного голосування, беруть за основу саме його. Можливо, завдяки розвитку техніки і зниження ціни на високопродуктивні системи в найближчому майбутньому з'являться прецеденти використання протоколу Хе — Су[14]. Хоча він вже має свої модифікації, на практиці цей протокол був застосований тільки в студентських експериментальних виборах[15]. Те ж саме можна сказати і про протокол ANDOS. Хоча автори багатьох статей стверджують, що його можна ефективно реалізувати, були тільки прецеденти використання на місцевих виборах[16]. Інші протоколи представлені як перехідні від простих до складних або можливі модифікації для досягнення додаткових цілей. Вимоги до систем таємного голосування
Бажані:
Справа ускладнюється не тільки тим, що учасники голосування і агентство, що його проводить мають підстави не довіряти один одному, але й тим, що сам процес голосування потрібно захищати від втручання ззовні. Якщо провести аналогію з виборами президента, то виборці повинні захиститися від вкидань бюлетенів з боку виборчого комітету, ЦВК зобов'язаний забезпечити неможливість продажу голосів громадянами, і всі разом повинні не допустити втручання агентів інших країн. Деякі вимоги суперечать одина одній. Наприклад, можливість перевірки, як проголосував той або інший виборець (навіть їм самим) надає можливість для продажу голосів, а додаткові рівні захисту знижують відмовостійкість і економічність. Зазвичай передбачається, що захист від шахрайства з боку агентства, що займається виборами, пріоритетніший, ніж запобігання продажу голосів. По-перше, вона завдає значно більше шкоди, а по-друге, навіть якщо протокол гарантує неможливість довести сторонній особі, за кого віддано голос, виборець може знайти обхідні шляхи. Наприклад, просто проголосувати прямо перед скупником. Тим не менш, захист від втручання з боку пріоритетніший, ніж все інше[21]. Простий протокол таємного цифрового голосуванняПростий алгоритм електронного голосування по суті являє собою листування з електронними підписами між виборчим комітетом та безліччю виборців. Нехай тут і далі: А — агентство, що проводить електронне голосування (англ. Agency), E — виборець, легітимний учасник голосування (англ. Elector), B — цифровий бюлетень. B може містити число, ім'я кандидата, розгорнутий текст або які-небудь інші дані, що повідомляють про вибір E, які верифікують його або необхідні для посилення безпеки протоколу. Хід голосування виглядає так: Алгоритм
Кроки 1-3 обов'язкові. Основна мета — визначення та оголошення числа активних учасників n. Хоча деякі з них можуть не брати участь, а деякі і зовсім не існувати («мертві душі», зловмисно внесені A), можливість маніпулювання голосуванням у A помітно знижена. Надалі ці кроки будуть вважатися за один крок «затвердити списки».
Особливості, переваги та недолікиЦей протокол надзвичайно простий, тим не менш, його достатньо, щоб захиститися від зовнішнього втручання, підробки голосів і дискредитації легітимних виборців. Однак голосуючим доводиться абсолютно довіряти A, адже його робота ніким не контролюється. З одного боку, E може надати зловмиснику-покупцеві голосів доказ, як він проголосував, а з іншого — не може перевірити, що A правильно врахував або навіть отримав його бюлетень. Тому тривіальний метод можна застосовувати тільки в спільнотах, де всі довіряють один одному і агентству, що відповідає за підрахунок голосів. Протокол двох агентствВін же протокол Нурмі — Салома — Сантіна[22]. Основна ідея полягає в тому, щоб замінити одне виборче агентство двома, щоб вони контролювали один одного. Нехай тут і далі V — реєстратор (validator), в обов'язки якого входить підготовка списків, а також допуск або недопуск учасника до голосування. Послідовність дій виглядає так: Алгоритм
Особливості, переваги та недолікиЗавдяки викладанню в загальний доступ отриманого файлу на кроці 3, A не може згодом заперечувати отримання повідомлення від E. За допомогою пари шифр-бюлетень кожен виборець може перевірити, чи правильно був врахований його голос, що усуває проблему з браком контролю над A. Однак, такий підхід лише частково вирішує проблему необхідності абсолютної довіри до агентства. У разі, якщо A і V вдається зговориться, A може маніпулювати голосуванням. Якщо агентству відомо, хто ховається під яким розпізнавальним тегом, воно може спеціально не приймати повідомлення від деяких виборців. Крім того, є проблема «мертвих душ». Якщо V внесе до списку завідомо неіснуючих виборців, то A зможе фальсифікувати бюлетені від них[23]. У протоколах з двома агентами голосуючому не обов'язково авторизуватися і перед реєстратором і перед виборчим комітетом. Якщо виборець доведе свою особистість реєстратору, той може поставити підпис на бюлетень або ключ виборця. Саме він надалі буде грати роль допуску до голосування. Крім того, не обов'язково використовувати саме мітки для авторизування користувача. З цих причин, у подальших алгоритмах конкретний спосіб ідентифікації користувача буде опущений. Протокол Фудзіоки — Окамото — ОтиСхема Фудзіок — Окамото — Оти, розроблена в 1992 році, ґрунтується на протоколі двох агентств та криптографічному підпису наосліп[24]. Несильно ускладнюючи протокол, ця схема частково вирішує проблему змови двох агентств. Для роботи протоколу необхідний заздалегідь вибраний спосіб маскуючого шифрування, під яким виборець надсилає реєстратору бюлетень. Сліпе (маскуюче) шифрування — особливий вид шифрування, що дозволяє упевнитися в тому, що документ справжній і підписаний авторизованим користувачем, але не дає дізнатися, які дані в ньому містяться. Маскуюче шифрування має бути комутативним з електронним підписом, тобто . Алгоритм
Протокол SensusЛоррі Кранор і Рон Сітрон (Lorrie Faith Cranor, Ron K. Cytron) в 1996 запропонували модифікацію протоколу Фудзіока-Окамото-Охта під назвою Sensus[25]. Відмінність полягає в кроках 5-6. Після того, як A отримало зашифроване повідомлення від E, воно не тільки додає його в список, що публікується, а додатково надсилає підписаний бюлетень назад виборцю як квитанцію. Таким чином E не потрібно чекати, поки проголосують всі інші, і він може закінчити голосування за одну сесію. Це не тільки зручно для кінцевого користувача, але ще і надає додатковий доказ, що E брав участь у виборах. Крім того, в Sensus регламентовані додаткові допоміжні модулі, які спрощують і автоматизують хід голосування. Особливості, переваги та недолікиТепер навіть якщо агентствам вдасться змовитися, A не зможе впізнати виборців до того, як отримає ключ. Хоча воно все ще має можливість не приймати повідомлення, відпадає можливість ігнорувати повідомлення конкретно від «небажаних» виборців. Залишається лише проблема подачі голосів виборців, які не прийшли на вибори. Крім того, щоб дозволити виборцю переголосувати, в тому числі і через технічну помилку, необхідний додатковий модуль. На даний момент протокол Фудзіока-Окамото-Охта (а також його модифікації, включаючи і Sensus) є одним з найбільш перевірених протоколів дистанційного електронного голосування. Саме його варіація була застосована на електронних виборах в Естонії[12][26]. Інша модифікація протоколу Фудзіока-Окамото-Охта була використана для проведення виборів до органів самоврядування серед студентів Принстонського університету[27]. Модулі Sensus були написані під системою UNIX з використанням криптографічної бібліотеки RSAREF[28], так що будь-хто може ними скористатися. Протокол He-SuУ 1998 році Ци Хе і Чжунмінь Су (Qi He, Zhongmin Su) представили ще більш просунутий порівняно з Sensus протокол голосування[14]. Цей алгоритм задовольняє більшій частині вимог до безпечного протоколу цифрового голосування. Як і Sensus, He-Su використовує ідею сліпого підпису, але підписується не бюлетень виборця, а його ключ. Це дозволяє виборцям змінювати своє рішення до кінця голосування і ще більше звужує можливості реєстратора та виборчого агентства у випадку змови. Для цього протоколу потрібний заздалегідь обумовлений спосіб сліпучого шифрування і хеш-функція . Як і в протоколі Фудзіока-Окамото-Охта маскуюче шифрування має бути коммутативним з електронним підписом V: , а також Алгоритм
Особливості, переваги та недолікиСхема He-Su відповідає майже всім вимогам до протоколу таємного голосування. Залишається тільки підвищений стимул купівлі/продажу голосів. у A і V тепер немає можливості зшахраювати, так як тепер публікуються всі списки: можливих виборців, зареєстрованих і авторизованих ключів. Відповідно, не можна внести неіснуючих виборців, ні голосувати за існуючих, які не прийшли. При цьому під час складання цих списків ні виборче агентство ні реєстратор додаткової інформації не отримують[29]. У виборців є можливість змінити голос. Основний недолік протоколу He-Su — його порівняльна складність. Так як для підтримки протоколу необхідно велика кількість ресурсів, він вразливий перед DoS-атаками. Протокол на основі ANDOSЗа основу взято протокол ANDOS[30] (англ. All or Nothing Disclosure Of Secrets). Ідея полягає в тому, щоб посилити стійкість протоколу за рахунок заміни заздалегідь обраного шифрування секретним ключем на хешування користувальницькою функцією. Далі описано ядро алгоритму. В описі для стислості опущені заходи безпеки. У разі необхідності можна застосувати методи криптографії на відкритих ключах і електронного підпису. Передбачається, що для захисту від втручання кого-небудь ззовні виборці можуть і змішувати інформацію між собою, але тоді зловмисний виборець може вносити перешкоди до голосування, тому цей крок теж пропущено. Алгоритм
Спрощена версія кроків 2-4 може полягати в тому, що E посилає A безпосередньо пару . Проте, в цьому випадку буде неможливо E як перевірити зарахований голос правильно, так і переголосувати на більш пізній стадії. Так може вийти, так як якщо A публікує ідентифікатор у списку тих, хто дотримувався стратегії , то E буде точно знати, що його голос зарахований правильно, однак згодом хто-небудь зможе замаскуватися під володіє ідентифікатором і змінити голос на угодний йому. З іншого боку, якщо A публікує тільки кількість учасників, які дотримуються певної стратегії , то учасники не можуть нічого перевірити і A може публікувати будь-які результати виборів. Хеш-функції використовуються для того, щоб зловмисники не могли визначити кількість голосів з певною стратегією (ця інформація виявляється корисною), так як задача знаходження початкових значень обчислювально важка з урахуванням характерного часу проведення голосування.
Через деякий час можна почати процедуру зміни голосів (див. фінальний крок). Більш простий варіант (Крок 8) може бути використаний для проведення єдиного кола повторного голосування.
Порівняно з Кроком 8, Крок 8' має перевагу в тому, що учасники, відмінні від E, можуть лише спостерігати, що що-небудь зникло зі списку , але не будуть знати, що воно перемістилося в список . Особливості, переваги та недолікиУ протоколі ANDOS можлива ситуація, коли два голосуючих виберуть одне і те ж i, таким чином отримавши однаковий ідентифікатор . Можливі рішення цієї проблеми[30]:
Протокол ANDOS досить затратний, зате для нього не потрібен незалежний реєстратор V. Виборцям необхідно вибирати і пересилати не тільки ідентифікатори, але і хешуючі функції, що може бути складно або довго. А все ще може шахраювати, розподіляючи за своїм вибором голоси тих, хто заявив про свій намір взяти участь у голосуванні, але так і не зробив свій вибір, а E мають підвищений стимул купівлі/продажу голосів, так як можна переконатися в результаті угоди. Інші протоколиІснує безліч інших протоколів та криптографічних примітивів з різними специфічними властивостями[31]. Вони не так широко відомі і застосовуються, щоб впоратися з якими-небудь особливими обмеженнями середовища або досягти додаткових цілей. Наприклад, протокол двох агентств можна поширити на виборчих центрів, що представляють різні опозиційні, але зацікавлені в чесних виборах фракції. У цьому випадку розподіл голосів може бути підроблено лише якщо всі центри виявляться у змові, що не має сенсу за умовою. Такий алгоритм використовує якусь схему неінтерактивного публічного перевіряємого[32] розділення секрету (англ. NIVSS — Non-Interactive Verifiable Secret Sharing). В залежності від обраного способу поділу секрету (хто за кого проголосував) протокол може мати різну стійкість до різних атак і різну швидкість обробки даних. Хороший результат показує, наприклад, використання проблеми дискретного логарифмування для забезпечення приховування даних[33]. Головним недоліком системи є те, що хоча сфальсифікувати результати можуть тільки всі виборчі центри разом, зірвати хід виборів може будь-який з них поодинці. Вирішенням дилеми є ще одна модифікація алгоритму, коли розподіл голосів можуть відновити центрів. Але тоді і підробити результати зможуть центрів, що змовилися, а зірвати вибори — . Схема може бути покращена, щоб допускати кілька варіантів відповіді у бюлетені, а також поетапне або паралельне голосування. Додатковий плюс: за такої системи виборець не може довести, за кого він проголосував, що робить надзвичайно важкою купівлю/продаж голосів[34]. Для роботи даного протоколу необхідний примітив «дошка бюлетенів» — область даних, яку можуть читати всі повністю, а писати тільки кожен у свою частину. По суті це — загальна область пам'яті з доступом по мережі і деякими криптографічними обмеженнями. Якщо у виборах бере участь центрів голосувань і виборців , то кількість біт, необхідна для дошки бюлетенів — , де k — деяка змінна криптостійкості, пропорційна кількості біт ключа. Серед інших спеціальних криптографічних примітивів можна виділити «збирача» (англ. Pollster) — зручний інтерфейс між користувачем і системою. Ідея в тому, що виборець-людина може віддати бюлетень збирачеві, а той виконає за нього всю роботу по шифруванню та обміну даними з іншими сторонами. Виборець повинен повністю довіряти даному модулю. Це сильне умова, однак його досить просто реалізувати, адже складальник запущений на машині голосуючого. Примітки
|
Portal di Ensiklopedia Dunia