Криптографические протоколы для электронного голосования

https://research.kudelskisecurity.com/2018/11/05/e-voting-crypto-protocols/
  • Перевод


Демократия – это не голосование, это подсчёт голосов.
Том Стоппард


Для исследователей криптографии электронное голосование в первую очередь связано не с машиной для голосования и не с онлайн-голосованием – это просто поле для математических исследований. Исследование электронного голосования занимается созданием протоколов, ключевых математических компонентов, защищённых и проверяемых систем голосования, или таких систем, в которых независимые аудиторы и избиратели могут безопасно проверить правильность подсчёта голосов. Эти системы представляют собой не простые теоретические работы, но уже реальные технологии, использовавшиеся для реальных выборов: в городе Такома-Парк штата Мэриленд избиратели доверились системе Scantegrity II, основанной на бумажных бюллетенях с невидимыми чернилами, а сами криптографы использовали системы для онлайн-голосования Helios для избрания руководства.

Электронное голосование – тема сверхсложная, поэтому в данной статье я ограничусь ключевыми понятиями: что означает безопасная проверка голоса, как можно подсчитать голоса, не обращаясь к каждому по отдельности, и что не даёт избирателям жульничать. Я не буду давать вам полное описание всего протокола электронного голосования со всеми его нюансами, но желающие могут самостоятельно поискать работы на эту тему, коих достаточно много.

Безопасное подтверждение


Чего следует ожидать от системы безопасного голосования?

Первое, и самое очевидное: нужно проверить, что бюллетени подсчитаны правильно, то есть, чтобы каждый мог подтвердить, что итоговый подсчёт выполнен в соответствии с количеством бюллетеней, заполненных избирателями. Проверка не должна выдавать никакой дополнительной информации, кроме итоговых чисел. В частности, у проверяющего не должно быть возможности догадаться, кто как голосовал. Это эквивалентно классическому подсчёту бумажных бюллетеней вручную.

Во-вторых, нужно, чтобы любой избиратель мог удостовериться, что его голос подсчитали, и подсчитали правильно. Это нужно уметь сделать без раскрытия его голоса, а в более общем случае, избиратель не должен иметь возможности доказать, за кого он голосовал. Это делается для исключения принуждений, и для того, чтобы дать возможность избирателям свободно выбирать кандидата, не боясь последствий своего выбора.

Наконец, система голосования должна быть защищённой против подлогов: избиратель не должен иметь возможности голосовать более одного раза, и не должно быть возможности изменять или копировать бюллетень. Кроме того, иметь возможность голосовать должны только зарегистрированные избиратели.

Итак, подытожим: нам нужна публичная проверяемость, уверенность избирателей, сопротивляемость принуждению и целостность избирания. Эти принципы были выдвинуты в основополагающем исследовании за авторством Чаума, Неффа и других, вышедшем в начале 2000-х.

Основные принципы


Большинство классических протоколов электронного голосования работают следующим образом:
  1. Избиратель получает токен в виде бюллетеня, который изменяет соответственно своему выбору. Разные избиратели получают разные бюллетени.
  2. Избиратель шифрует бюллетень (используя особый тип шифрования, позволяющий работать магии электронного голосования, и отправляет его так, чтобы организаторы голосования получили зашифрованный бюллетень.
  3. Организаторы публикуют зашифрованные бюллетени на доске объявлений, «публичном широковещательном канале с памятью», на жаргоне криптографов – говоря проще, на чём-то вроде Pastebin.
  4. Организаторы комбинируют зашифрованные бюллетени для подсчёта зашированного итога. Затем они расшифровывают его (но не сами бюллетени!) и публикуют результаты.
  5. Получив результат и зашифрованные голоса, любой может проверить его корректность.


Безопасный подсчёт: гомоморфное шифрование


На 4-м шаге организаторы комбинируют криптограммы для создания новой криптограммы, шифрующей сумму отдельных голосов. Для этого схемы электронного голосования используют схему шифрования Enc(), в которой можно подсчитать Enc(v1 + v2), имея на руках только Enc(v1) и Enc(v2), и не зная ключа шифрования. Такие схемы шифрования называются гомоморфными.

К примеру, если сильно упростить, избиратели США производят следующие действия 8 ноября:
  1. Получают от организаторов бюллетень «Клинтон» и бюллетень «Трамп» (для простоты рассмотрим всего двух кандидатов).
  2. Пишут на одном бюллетене Enc(1), а на другом – Enc(0), используя в качестве ключа публичный ключ, выданный организаторами.


Зашифрованные бюллетени затем публикуются на доске объявлений вместе с ID избирателя. Все знаю, кто проголосовал, но невозможно понять, за кого именно, поскольку каждые Enc(0) и Enc(1) уникальны, а мы используем сильное и рандомизированное шифрование. Если бы шифрование было детерминистское, избирателя можно было бы заставить раскрыть его голос, вычислив Enc(0) заново и сравнив его со значением на доске.

Наконец, организаторы комбинируют все бюллетени за «Клинтон» и получают результат Enc(количество голосов за Клинтон), а потом то же делают с бюллетенями за «Трампа» и получают Enc(количество голосов за Трампа). Затем они берут ключ расшифровки и расшифровывают два этих значения, объявляя победителя.

А как найти гомоморфную схему шифрования? Довольно легко – такие схемы, как RSA и ElGamal, гомоморфны в своих базовых вариантах, поскольку удовлетворяют уравнению

Enc(v1) × Enc(v2) = Enc(v1 × v2)

Но это не совсем то, что нам надо – это мультипликативный гомоморфизм, а нам нужен аддитивный. Существуют трюки, превращающие схемы RSA и ElGamal в аддитивно гомоморфные, но вместо этого я покажу менее известную схему, которая сразу же аддитивно гомоморфна: криптосистема Пэйе, шифрующая сообщение v1 до

Enc(v1) = g v1 r1 n mod n2

Где n = pq и g – фиксированы, а r1 – случайное целое число из ]1; n2 [. Следовательно, мы имеем:

Enc(v1) × Enc(v2) = (g v1 r1 n) × (g v2 r2 n) mod n2 = g v1+v2 (r1r2) n mod n2 = Enc(v1 + v2)

То есть, схему Пэйе можно использовать для подсчёта зашифрованных голосов.

Предотвращаем мошенничество: доказательство с нулевым разглашением


Чтобы сжульничать, избиратель может захотеть написать в бюллетене Enc(10000) вместо Enc(1), чтобы добавить кандидату голосов. В случае недобрых намерений можно написать Enc(очень_большое_число), чтобы это привело к переполнению целого и к отказу всей системы. Как же гарантировать допустимость голоса (0 или 1) без дешифровки?

Решением будет не интерактивное нулевое разглашение (НИНР) [non-interactive zero-knowledge, NIZK]. Доказательство НИНР – весьма сложный и чрезвычайно мощный криптографический объект: в нашем случае он позволит избирателю доказать, что их криптограмма содержит 0 или 1, но при этом не показывая само зашифрованное сообщение. В общем случае НИНР-доказательства позволяют доказывающему убедить проверяющего в истинности утверждения, отправляя ему только набор данных без каких-то других видов взаимодействия.

Возможно, простейшая система с нулевым разглашением, это схема Шнорра: допустим, вы знаете решение задачи дискретного логарифма (сложная задача, стоящая за DSA и шифрованием на эллиптических кривых), и хотите доказать, что знаете её решение, не разглашая само решение. То есть, вам известен такой х, что gx = y mod p, а проверяющий знает только g, y и p. Чтобы убедить проверяющего, вы играете в следующую игру:
  1. Выбираете случайное число r и отправляете проверяющему значение gr (обязательство).
  2. Получаете от проверяющего случайное число с (вызов).
  3. Отправляете проверяющему s = r + cx.
  4. Проверяющий вычисляет gs = gr + cx и проверяет, что оно равно gr × yc = gr × (gx) c.


В этом интерактивном протоколе доказывающий не раскрывает значения х, поскольку отправляет только случайные числа. Однако лишь доказывающий, который знает х, сможет отправить s, проходящее последнюю проверку.

Для превращения такого интерактивного протокола в неинтерактивный (такой, который можно отправить одним набором данных), строятся НИНР-доказательства. Мы самостоятельно играем в эту игру и симулируем проверяющего так, чтобы реальный проверяющий убедился в том, что мы не можем придумать НИНР-доказательство, не зная доказанного утверждения.

Заключение



Ключевые идеи, рассмотренные в статье:
  • Основная проблема безопасной системы электронного голосования – публичная проверяемость. Это достигается публикацией зашифрованных бюллетеней на публично доступном форуме. Организаторы голосования также должны описать механизм, проводящий само подтверждение.
  • Правильность голосования подтверждается путём проведения авторизации каждого избирателя с уникальным ID и давая избирателям доступ, который позволяет им проверить, что их бюллетень 1) засчитан и 2) не изменён.
  • Избирателей нельзя наказать за голоса за «неправильных» кандидатов благодаря сопротивлению принуждению, которое, в частности, достигается за счёт непредсказуемого и вероятностного шифрования.
  • Приватность бюллетеней гарантируется тем, что зашифрованные голоса не расшифровываются, а расшифровывается только итог, созданный при помощи гомоморфного шифрования.
  • Жульничество не проходит, если мы заставляем избирателей публиковать криптографическое доказательство допустимости их бюллетеня при помощи НИНР.


Концепции и технологии, описанные здесь, могут казаться глубокими и сложными, но на самом деле это только верхушка айсберга. Вы не сможете создать безопасно работающую систему электронного голосования, просто следуя описанию. К примеру, я опустил такие детали, как способ проверки избирателями своих бюллетеней на практике, причину использования сервером НИНР, и прочее. Суть в том, что любой безопасный протокол электронного голосования – штука очень сложная и полная нюансов, и реальная реализация добавляет дополнительных сложностей из-за человеческих и организационных факторов.

Чтобы больше узнать про криптографию, связанную с темой электронного голосования, можете изучить эти, качественные материалы:
Поделиться публикацией

Комментарии 29

    +1
    тут автор немного накосячил он видать начитался, но не не всё понял ( я имею в виду изначального автора)
    как минимум в ElGamal Enc(0) = 0, а Dec(Enc(1)*Enc(1))=1
    а Enc(0)*Enc(1) = 0
    поэтому для елгамаля и для RSA такой способ не работает.
    Есть другой, он и описан в приведенной статье.
    Разработать же для Пайе весь стек необходимый для голосования достаточно нетривиальная задача.
      +1
      Ещё нужна защита при оцифровке ввода:
      image
      Важно, чтобы и руки были закрыты. Но лицо — открыто для идентификации. Труба от лица должна быть прозрачной и быть под наблюдением камеры с независимого устройства — смартфона. Т.к. при электронном удалённом голосовании нужно обеспечить аутентификацию голосующего.

      Впрочем, и первое устройство может быть смартфоном не под управлением брендовых ОС (т.к. все они прослушиваются, логируются вендором), а устройство защиты может быть чем-то вроде кувшина с рукавами.
        0
        а в более общем случае, избиратель не должен иметь возможности доказать, за кого он голосовал.

        а значит организатор голосования может заменить голос избирателя на нужный ему.
        И даже если вот тут
        нужно, чтобы любой избиратель мог удостовериться, что его голос подсчитали, и подсчитали правильно.

        он и сможет удостоверится, что его голос подсчитали не правильно, его можно будет спокойно слать лесом и итоге будет не подсчет голосов, а голосование для показухи и никакой демократии.
        Демократия – это не голосование, это подсчёт голосов.

        математика не заменит юриспруденцию.
          0
          а значит организатор голосования может заменить голос избирателя на нужный ему.

          Вовсе нет. Это значит, что избиратель не сможет продать свой голос (типа как сейчас фоткают бюллетени).
            0

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

            0
            Во-вторых, нужно, чтобы любой избиратель мог удостовериться, что его голос подсчитали, и подсчитали правильно.

            Всё верно, это называется верифицируемость.

            Это нужно уметь сделать без раскрытия его голоса, а в более общем случае, избиратель не должен иметь возможности доказать, за кого он голосовал.

            А вот здесь уже подлог — тайное голосование по определению неверифицируемо. Я повторяю: по определению. Тайного голосование — это значит, что нельзя сопоставить результаты голосования и голосующих, это и есть корень неверифицируемости.

            Поэтому единственный способ провести верифицируемое голосование — это сделать его ОТКРЫТЫМ.

            Это делается для исключения принуждений, и для того, чтобы дать возможность избирателям свободно выбирать кандидата, не боясь последствий своего выбора.

            Ложь. Байка про «принуждения» внедряется в сознание обывателя для педалирования тайного, а значит, неверифицируемого голосования! А это, в свою очередь, делается для безнаказанных фальсификаций результатов голосования!

            Запомните: тайное голосование — это тайный лохотрон.
              +1

              В данном случае не лохотрон. С точки зрения математики все верифицируется. Эта схема не защищает от мертвых душ. В остальном отлично работает. Вернее не эта схема конечно. Эта не работает, а та откуда все это взяли и неправильно оптсали.

                +1
                > С точки зрения математики все верифицируется.

                Ничего не верифицируется.

                1. Я много раз слышал, что анонимную верифицируемость можно «закопать» в криптографию, но рабочего инструмента (программы) мне никто не предоставил.

                2. Если мы говорим про тайное (анонимное) голосование, это значит, мы говорим, что голосующий никак не связан с результатами. Для меня это и есть корень неверифицируемости — раз сопоставить голосующих и результаты выборов нельзя, то нельзя и доказать отсутствие «вбросов», «мёртвых душ», умышленно-математических ошибок, закладок в ПО и другого рода фальсификации.

                3. Если зомбированные граждане не понимают, что тайные выборы — это лохотрон, и боятся участвовать в открытых голосованиях, то пусть сидят тихонько дома — на общественных выборах анонимусам делать нечего. Здоровые граждане хотят открытую политику.

                4. При открытом голосовании публикуется таблица, кто за кого голосовал. Только открытое голосование верифицируемо. Всех лиц, которые появятся в таблице открытого голосования можно рано или поздно проверить на их реальность (например, активисты в своих районах могут пройти по квартирам, а соседи увидят «мёртвых душ», которых им приписали), а вот в тайном голосовании такой проверки сделать нельзя.

                5. Репрессий при открытом голосовании опасаться не стоит потому что, если они возникнут, сразу станут известны общественности и поднимется бунт. К тому же всех в стране (142 млн официально) репрессиями не подавишь и не напугаешь. А вот чего на самом деле надо опасаться, то это фальсифируемого тайного голосования, которое делается элементарно: заменяешь бюллютени, переписываешь протоколы или ещё проще — объявляешь по телику «нужные» результаты.

                6. При открытом голосовании по крайней мере будет видно, что людей заставляют. Станет очевидно, что система держится на страхе и насилии — но люди сами выбирают рабство. При тайном же голосовании люди ходят на псевдовыборы, тем самым легитимизируют негодяев и создают иллюзию своей сопричастности, но это только иллюзия — при тайном голосовании граждане ничего не решают.

                7. Ну и последнее, мне непонятно: КОМУ НУЖНЫ ТАЙНЫЕ ГОЛОСОВАНИЯ?! Кому нужна анонимность в политической жизни?? Почему так усиленно пропихивают эту вонючую анонимность?! Почему боятся открытого голосования?? Вот мне например анонимность нахрен не нужна — я хочу видеть кто за кого как проголосовал. И это не потому что я весь такой открытый, а потому что открытость — это единственный способ избежать фальсификаций. Единственный 100% способ.

                P.S. Если кому-то действительно интересно, как должна выглядеть демократия здорового человека (которая включает децентрализованные системы голосования, сбора записей, подсчета голосов, принятия решений), то читайте мою статью "Демократия как технология".
                  0
                  >Ничего не верифицируется.
                  Еще как верифицируется. Я сам этим матаппаратом пользовался.

                  >нельзя и доказать отсутствие «вбросов», «мёртвых душ»
                  Вбросы можно, а «мертвые души» действительно нельзя.
                  С умышленными ошибками и закладками бороться сложно, но есть механизмы типа opensource.

                  все остальное мне просто не очень интересно, я смотрю только со стороны математики.

                  Хотя некоторые моменты, если и не оспорил, то привёл бы контрдоводы, например, уже сейчас используется админ ресурс, когда сгоняют на массовки кучу народу. В такой ситуации, когда, допустим, твоя работа зависит от того, как ты проголосуешь, а работы нет, ты ещё как будешь голосовать как скажут.
                  Это есть и в России и в Украине да и думаю такое будет везде.
                  Да и влияние стыда, когда ты не хочешь конфликтовать с окружением, но имеешь иное мнение тоже не стоит сбрасывать со счетов.
                  Эта статья социальных аспектов не учитывает. в ней решается чисто математическая проблема «Тайного голосования». Математика всегда ценна сама по себе без привязок к реальной жизни. предлагаю так эту статью и рассматривать.
                    0
                    > Вбросы можно, а «мертвые души» действительно нельзя.

                    Если мы не можем доказать, содержат результаты голосования мертвые души или не содержат, то всё — система неверифицируема.

                    Я так сразу и сказал: тайное голосование неверифицируемо.
                      0
                      1. мертвые души вполне могут быть и при открытом голосовании. этот момент вообще ничего не решает.
                      кроме того, в масштабах страны организовать открытое голосование практически невозможно. хоть в электронном хоть в каком виде. можно не предпринимать дополнительных мер для сокрытия, но даже просто регистрация голосов в электронном виде достаточно сильно закрывает открытость, из-за небольшого числа людей способных убедиться в итогах голосования. Лучше уж чтобы оно было закрытым, чтобы хотя-бы правила игры были для всех одинаковы. (Это кстати тоже плюс к тем доводам, что дискредитируют открытое голосование)

                      2. голосование верифицировано. это регистрация неверифицируема. также вполне возможна ситуация, когда есть способы выполнить верифицировать регистрацию другими способами. например, в группах, где процент голосующих достаточно высок, а подделать количество экономически нецелесообразно, тк все друг друга знают по переписке, например, а аватара содержать может быть слишком дорого.
                        –1
                        1. мертвые души вполне могут быть и при открытом голосовании. этот момент вообще ничего не решает.

                        Ложь.

                        Только при открытом голосовании мертвые души можно выявить. При тайном голосовании выявить мертвые души по определению невозможно.

                        кроме того, в масштабах страны организовать открытое голосование практически невозможно.

                        Снова ложь.

                        Открытое голосование можно организовать при любом масштабе — для всей страны в таблице будет не 100 записей, а 100 млн записей. Это не проблема при современных объемах дисков.

                        К тому же не обязательно хранить все 100 млн записей на 1 узле.
                        Можно хранить записи децентрализованно — например, на сервере районного (или областного) центра. Тогда в области будет всего 3-20 млн записей — любой домашний винчестер легко справится с такой таблицей.

                        Также открытое голосование можно организовать в p2p-сети.

                        Более того, тайное эл. голосование никаким образом не минимизирует объём базы данных — с учетом хитрой криптографии база будет даже больше, чем при открытом голосовании, а верифициремость при этом будет нулевой.

                        но даже просто регистрация голосов в электронном виде достаточно сильно закрывает открытость, из-за небольшого числа людей способных убедиться в итогах голосования. Лучше уж чтобы оно было закрытым, чтобы хотя-бы правила игры были для всех одинаковы. (Это кстати тоже плюс к тем доводам, что дискредитируют открытое голосование)

                        Какой-то бессвязный поток сознания. Вывожу на чистую воду:

                        1) регистрация в эл. виде никак не «закрывает открытость». Наоборот, только регистрация обеспечивает эл. голосование, хоть открытое, хоть тайное — а по-другому никак.
                        Более того, никакой регистрации может и не быть, если с выдачей ИНН гражданин будет автоматически получать кабинет на сайте голосования (например на ГосУслугах) — так и должно быть в идеале: юноше/девушке исполнилось 18 лет, и он/она автоматически получают в паспортом столе бумажку с ИНН и паролем.
                        2) закрытость никак не делает «правила для всех одинаковыми», а открытость не накладывает никаких ограничений на «одинаковость».
                        3) открытость никак не дискредитирует голосование.
                        наоборот, голосование дискредитирует только закрытость — если голосование закрытое, значит оно неверифицируемо, а значит, это тайный лохотрон.

                        2. голосование верифицировано. это регистрация неверифицируема. также вполне возможна ситуация, когда есть способы выполнить верифицировать регистрацию другими способами. например, в группах, где процент голосующих достаточно высок, а подделать количество экономически нецелесообразно, тк все друг друга знают по переписке, например, а аватара содержать может быть слишком дорого.

                        Снова бессвязный противоречивый поток сознания. И снова вывожу на чистую воду:

                        1) только открытое голосование верифицируемо.
                        тайное голосование неверифицируемо по определению.
                        2) регистрация тоже верифицируема, но только если результаты открыты.
                        если результаты закрыты, а лица скрыты, то и регистрация принадлежит куклам.
                        3) регистрацию можно сломать или подделать, но в случае открытого голосования — это выяснится, а в случае закрытого (тайного) — нет.
                        4) в больших группах или в малых тайное голосование всегда даёт возможность для махинаций, а вот открытое голосование всегда такую возможность предельно затрудняет, и хоть экономически, хоть технически открытое голосование уже не преодолеешь, так как таблица голосов общедоступна.
                          0
                          «Ложь»

                          Снова бессвязный противоречивый поток сознания. Вывожу на чистую воду:

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

                          2) закрытость никак не делает «правила для всех одинаковыми», а открытость не накладывает никаких ограничений на «одинаковость».

                          Накладывает. чтобы проверить голос в масштабах страны нужно выполнить очень нетривиальные действия. те нужно быть технически подкованным, и даже, имея доступ к логам голосования, нужно иметь навык, чтобы проверить итоги голосования, убедиться что ваш голос попал в лог, иначе закладки помешают вам убедиться в правильности своего голоса. при этом люди технически подкованные смогут узнать кто и как проголосовал, а те кто не подкован не смогут. в этом неравенство.

                          1) только открытое голосование верифицируемо.
                          тайное голосование неверифицируемо по определению.

                          это лозунг
                          2) регистрация тоже верифицируема, но только если результаты открыты.
                          если результаты закрыты, а лица скрыты, то и регистрация принадлежит куклам.

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

                          3) регистрацию можно сломать или подделать, но в случае открытого голосования — это выяснится, а в случае закрытого (тайного) — нет.

                          Все действия применимые к открытому голосованию применимы для проверок и здесь. ровно по тому же протоколу можно выявить подделку в описываемом голосовании. например: количество проголосовавших доступно, каждый может проверить свой голос, можно даже заставить приходить на участок и голосовать при свидетелях, просто это все не защищает на 100% от вбросов. я уверен почти на 100% если вы сделаете описание того, как выполнить проверку регистрации я смогу адаптировать к тайному голосованию описанному здесь, с тем же уровнем достоверности.

                          4) в больших группах или в малых тайное голосование всегда даёт возможность для махинаций, а вот открытое голосование всегда такую возможность предельно затрудняет, и хоть экономически, хоть технически открытое голосование уже не преодолеешь, так как таблица голосов общедоступна.

                          здесь таблица тоже общедоступна, нельзя только расшифровать голоса.

                          Недостаток открытого голосования в том, «за» голосуют 99.9% иначе могут и осмеять или воздействовать физически. Возможно про 99.9 немного утрированно, но тайна уменьшает этот риск.Я уже приводил этот довод. вы на такие доводы не отвечаете.
                          вот даже взять нашу дискуссию, вы же явно и очень агрессивно навязываете своё мнение. Вот если голосовать открыто за ваше предложение, то вы кому-то навяжете своё мнение, и с вами согласятся, побоявшись конфликта.
                            0
                            я вам только указываю на изъяны в ваших выводах.

                            В моих доводах нет изъянов (я в голосованиях собаку съел), поэтому вы на них и не можете указать. А вот я в ваших «доводах» (логически бессвязных и как раз больше похожих на пропагандистские) я нахожу изъяны на каждом шагу.

                            Вы же даже не пытались разобраться с этой статьей. Сразу заговорили лозунгами.

                            Я давно уже разобрался с темой тайного и открытого голосования.
                            И говорю с вами фактами и логически обосновано.

                            Накладывает. чтобы проверить голос в масштабах страны нужно выполнить очень нетривиальные действия. те нужно быть технически подкованным, и даже, имея доступ к логам голосования, нужно иметь навык, чтобы проверить итоги голосования, убедиться что ваш голос попал в лог, иначе закладки помешают вам убедиться в правильности своего голоса. при этом люди технически подкованные смогут узнать кто и как проголосовал, а те кто не подкован не смогут. в этом неравенство.

                            Вы описали проблемы своего тайного-крипто-голосования: в нём действительно нельзя проверить результаты на правдивость. Я заостряю внимание: не «технически трудно проверить», а нельзя. Нельзя по определению тайного голосования.

                            А вот открытый голос проверить элементарно — звонишь/идешь/пишешь Иванову И.И. и спрашиваешь: «Правда ли ты голосовал так-то и так-то, как это указано в открытой таблице голосования?»

                            это лозунг

                            Лозунги у вас в голове. У меня факты, повторяю:
                            тайное голосование неверифицируемо по определению.

                            Раз нельзя сопоставить голосующих и результаты голосование (а это определение тайного голосования), то нельзя гарантировать отсутствие мертвых душ, закладок в ПО и железе, умышленных математических ослаблений крипто-алгоритма и подмены/удаления записей в центральной базе данных.

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

                            Я то прекрасно знаю, что такое «зарыть голос в криптографию».
                            Проблема в том, что криптография не даёт верификации, кроме одного единственного (своего) голоса и то при условии отсутствии закладок в ПО, железе и крипто-библиотеках.

                            Но даже если криптобиблиотеки без ослаблений, софт и железо без закладок, то быть уверенным в 1 голосе, и не быть уверенным в остальных 139 999 999 голосах — это добровольная лоботомия, слепота, заведомое участие в тайном лохотроне и его преступное оправдание.

                            Более того, открытое голосование не запрещает использовать криптографию, например, для создания сети доверия и подтверждения ключей друг друга, а также для создания подписей любых записей — в том числе записей голосования и делегирования.

                            Все действия применимые к открытому голосованию применимы для проверок и здесь.

                            Неправда. При тайном голосовании нет общей таблицы голосов, доступной каждому для проверки.

                            ровно по тому же протоколу можно выявить подделку в описываемом голосовании.

                            Нельзя. И дело вовсе не в протоколах, а в самом принципе тайного и открытого голосования.

                            например: количество проголосовавших доступно, каждый может проверить свой голос,

                            Свой голос можно проверить только если есть гарантия в надежности криптографии. А эту гарантию вы мне дать не сможете.

                            Кроме того, мне нужна проверка не 1 голоса, а 140 млн голосов. Разницу чувствуете?

                            можно даже заставить приходить на участок и голосовать при свидетелях, просто это все не защищает на 100% от вбросов.

                            В тайном голосовании естественно не защищает. Да и это тупость — ходить голосовать 1 раз в 5 лет. В 21 веке система голосования должна работать 24 часа в сутки, 365 дней в году.

                            я уверен почти на 100% если вы сделаете описание того, как выполнить проверку регистрации я смогу адаптировать к тайному голосованию описанному здесь, с тем же уровнем достоверности.

                            Что значит «проверка регистрации»?
                            Проверить, принадлежит ли ключ Иванова самому Иванову?
                            Для этого есть сеть доверия, выше я привел ссылку на описание, что это такое. Нужно объяснять, чем отличается распределенная сеть доверия от централизованного Удостоверяющего центра (который, кстати, очень любят втюхивать хозяева и рабы Системы)?

                            здесь таблица тоже общедоступна, нельзя только расшифровать голоса.

                            А толку-то мне от этой крипто-мешанины, если я по ней ничего не могу проверить, кроме как вроде своего голоса? Зачем мне проверять 1 голос из 140 млн? Я на наивного дурачка похож? Мне нужно проверить все 140 млн голосов, если вы ещё не поняли.

                            Недостаток открытого голосования в том, «за» голосуют 99.9% иначе могут и осмеять или воздействовать физически.

                            Вот как раз эти бабушкины сказки и любят распространять пропагандоны Системы, чтобы оправдать тайный лохотрон и воротить свои грязные дела.

                            Есть практика? Есть доказательства, что люди при открытом голосовании будут бояться?

                            Ещё скажите мне, как можно запугать 140 млн человек?

                            Далее, как можно запугать 140 млн человек, тем более тем, кто проиграл выборы и больше нелегитимен?

                            А если он выиграл выборы, то зачем ему запугивать избирателей?

                            Возможно про 99.9 немного утрированно, но тайна уменьшает этот риск.Я уже приводил этот довод. вы на такие доводы не отвечаете.

                            Я уже десять раз всё объяснил. Ещё раз: как можно запугать 140 млн человек, если ты проиграл выборы? А если ты выиграл выборы, то зачем пугать избирателей?

                            вот даже взять нашу дискуссию, вы же явно и очень агрессивно навязываете своё мнение. Вот если голосовать открыто за ваше предложение, то вы кому-то навяжете своё мнение, и с вами согласятся, побоявшись конфликта.

                            Я не навязываю своего мнения, я его высказываю. А попутно развенчиваю ваши пропагандисткие штампы, клише, попытки исказить мои слова, передернуть факты и спрятаться в логически бессвязные высказывания.

                            Давайте проведем открытое голосование по нашей дискуссии и посмотрим, какой тип голосования выберут люди: тайное или открытое.
                              0
                              А вот открытый голос проверить элементарно — звонишь/идешь/пишешь Иванову И.И. и спрашиваешь: «Правда ли ты голосовал так-то и так-то, как это указано в открытой таблице голосования?»

                              Я могу в закрытом голосовании проверить точно также. позвонить иванову, проверь, пожалуйста, свой голос в открытой таблице, в которой зашифрованы результаты.

                              на остальное, возможно, потом отвечу. это ключевой момент спора.
                                0
                                Не сможете — в тайной таблице нет ни фамилий, ни адресов.

                                По определению тайного голосования вы просто не имеете права знать, кто все эти люди.

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

                                В открытой таблице вы можете наглядно видеть сомнительных персон и работать целенаправленно по ним, чтобы вскрыть фальсификации.

                                В тайной таблице, даже если прилагается список фамилий, вы будете тыкаться как слепой котенок.

                                Ну а если список фамилий не прилагать (как вы предлагаете), то это будет однозначно — тайный лохотрон с тайной чудо-машинкой от Хозяев скотного двора.
                                  –1
                                  можно и не прикладывать список. можно связаться с человеком через систему обмена сообщениями, которая может идти вместе с голосованием и получить контакт с пользователем. а уже дальше узнать адрес и спросить.
                                  Вообще даже в открытом голосовании было бы неправильно прикладывать адрес, паспортные данные и т.п. ещё скажите номер кредитной карты.
                                  В нашем мире разбазаривая эту информацию можно попасть на мошеннические действия.

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


                                  но я не очень понимаю как вы увидите сомнительных персон?
                                  вы увидите что они не за того (в смысле не за того кого бы проверяющему хотелось) проголосовали их всех проверять? но это как то нечестно. это будет выглядеть, что вы хотите своих не подставить. да и упростит проверку только в <количество вариантов в голосовании> раз.

                                  Ну а если список фамилий не прилагать (как вы предлагаете)

                                  см выше, как вариант. да и я ничего не предлагал в плане идентификации пользователя. В текущей системе это остаётся за кадром. те можно и так и эдак. Тайное голосование никак не регламентирует использование персональных данных. Оно регламентирует способ подачи голоса.
                                  Сейчас использование персональных данных регламентируют другие нормы. в Европе это GDPR, например. Так просто личные данные не опубликуешь.
                                  Вообще Идентификация пользователя это отдельная тема. она здесь не раскрыта совсем, но есть способы как эту проблему решить. например статистический. когда ключ будет использоваться не только для голосования. не думаю что имеет смысл её обсуждать здесь. Все же изначально статья только про тайное голосование.
                                    –1
                                    Ну что ж, подведем итоги дискуссии:

                                    1) тайное голосование неверифицируемо
                                    2) в тайное голосование можно безнаказанно прятать мертвые души, закладки ПО и железа, ослабление криптоалгоритмов, и этим самым массово и без палева подделывать результаты
                                    3) открытое голосование же — верифицируемо
                                    4) открытое голосование не угрожает голосующим
                                    5) открытое голосование легко и дешево реализовать
                                    6) но при этом на каждом шагу идёт визг, что только тайное голосование имеет право на существование
                                    7) для прикрытия тайного голосования повсюду водятся законы о «защите персональных данных»
                                    8) при этом Система борется с децентрализованными системами и всячески пытается удержать контроль над персональными данными, перепиской и информацией на своих серверах
                                    9) вырастили целую армию адептов тайного голосования
                                    10) эти адепты пишут статьи и предлагаю свои чудо-машинки
                                    11) чудо-машинки для тайного голосования позволят массово дурачить избирателя, а заодно:
                                    12) рубить гешефт на тендерах по «автоматизации голосования» — этож сколько бюджетных денег сыновья смогут положить в карман на откатах при массовой поставке сертифицированных лицензированных чудо-машинок.

                                    В википедии есть статья «тайное голосование», но нет статьи «открытое голосование».

                                    Предыдущие 100 лет быдло ходило и бросало в урны анонимные бумажки, чтобы создать себе иллюзию сопричастности.

                                    Следующие 100 лет быдло будет ходить к криптографическим чудо-машинкам с таким же неверифицируемым тайным лохотроном.

                                    А что, очень удобно, понимаю.
                                      0
                                      что-то как то вы странно итоги подвели. с итогами обычно согласны оба. я не согласен.
                                      по пункту 1 я показал, что это не так в предыдущем посте.
                                      пункт 2 это местами домыслы местами этими недостатками обладает и открытое голосование.
                                      3-5 пропущу, тк в принципе странно с этим не согласиться
                                      по п 6 вообще в этой дискуссии никто не говорил, что только иногда нужно открытое иногда тайное. это зависит от рисков от которых хотелось бы защититься. риски открытого я перечислил. у тайного они естесвенно тоже есть.
                                      7. эти законы вводять не для прикрытия голосования.
                                      8. система не далеко не всегда борется с децентрализованными системами. я точно знаю, что система ими как раз интересуется и заинтересовано в создании тайного, но распределенного верифицируемого голосования.
                                      как раз предлагаемая система не просто так всплывает сейчас. она очень хорошо ложиться на современные распределенные вычислительные системы.
                                      9. я не адепт тайного голосования. просто ваши суждения слишком наивны.
                                      10. я эту статью не писал. наоборот я её критиковал, тк в ней полно математических ошибок.
                                      11. это возможно но и машинки для открытого голосования позволяют это делать
                                      12. на открытых голосованиях можно также рубить бабки. софт все равно нужен. и далеко не на протокол голосования потратят в первую

                                      Вы зря спорите. Нет ничего страшного в том, чтобы признавать свои ошибки. Вы слишком догматично зашли в дискуссию, не пытаясь разобраться. С такой позицией очень тяжело и больно быть неправым. я считаю, что ошибки нужно признавать легко и просто.
                                        –1
                                        Это вы спорите, а я только привёл свои неоспоримые доводы.

                                        Если я и соглашусь когда-либо на тайное голосование, то только при следующих условиях:
                                        1) сервер с результатами будет находиться у меня
                                        2) чудо-машинки буду делать и продавать я
                                        3) крипто-алгоритмы буду определять я
                                        4) крипто-библиотеки буду писать я
                                        5) главу ЦентрИзберКома назначаю я
                                        6) инет-трафик через DPI контролирую я

                                        Вот когда эти условия будут соблюдены, тогда я и смогу быть уверенным, что тайное голосование происходит в моих интересах (но тогда вы не сможете быть в этом уверены :D )
                                          –2
                                          image
                                            0
                                            А где говориться что тайное голосование гарантирует? Само по себе оно не гарантирует ничего. Оно только может защитить от таких агрессивных выпадов как от вас. Не потому ли вы за него так топите, ведь тогда преимущество получите вы и другие агрессивные навязыватели мнений?
                          0
                          Вообще говоря, можно ввести обязательное голосование как в Австралии, Люксембурге, Сингапуре. Тогда число проголосовавших будет известно и его можно будет сопоставить с числом совершеннолетних граждан. Если расхождения незначительны — значит число мертвых душ незначительно. Контроль за исполнение обязательности голосования можно возложить на других голосующих.
                        +1
                        У открытости голосования есть проблема: самоцензура. Люди склонны к конформизму и будут стыдиться проголосовать за «немодного» в их среде кандидата. Родственники, работодатель, друзья будут лишать избирателя права голоса. Поскольку большинство избирателей так или иначе зависимы от других людей, голосование перестанет отражать предпочтения голосующих.
                    0
                    Электронное голосование должно давать возможность менять свой голос в любой момент времени и избирать почти кого угодно (кого можно по конституции). Нужна криптовласть (в блокчейне) — которою можно делегировать, переделегировать и отзывать.
                      0

                      В данной схеме это возможно. Это решаетсяв другом месте.

                      0

                      Не совсем понятно почему столько усилий концентрируется именно на голосовании. Это всего лишь один этап в целой цепочке событий. То что в результате голосования выбирается какой то представитель это вовсе не означает, что этот представитель будет проводить в жизнь чаяния тех кто его избрал.
                      С другой стороны путь прямого голосования, за каждый вопрос каждым гражданином это чересчур утопичная идея. И у нас целый институт людей создан чья работа именно голосовать за тех кто его избрал (это конечно в идеале).
                      Лично я, если уж фантазировать, вижу систему несколько другой. Я бы основывался именно на идее делегирования права голоса. Если это реализовать в электронном виде и дать возможность менять того кому ты делегируешь право своего голоса в любой момент получается система очень близкая к идеи демократии. Следующим шагом было бы дать возможность делегировать право своего голоса вообще любому гражданину. Таким образом допустим вся семья делегирует права своих голосов допустим дедушке, дедушка свой и те голоса которые ему делегировали передавал бы дальше. Таким образом выстраивалось бы дерево где в конце некоторое кол-во людей концентрировали бы на себе множество голосов. Вполне аналог современных политиков, но при учете всего, что я говорил выше таким политиком мог бы стать любой человек без необходимости создавать партии и идти на поклон гос-ву для её регистрации. И мне видится, что такая группа людей с большим кол-вом голосов уже бы могла целенаправленно заниматься тем, чем сейчас занимаются депутаты в думе — голосовали бы за законы на постоянной основе.
                      Конечно всё, что я говорил это в высшей степени утопия зато очень близкая к идеи прямой демократии.

                        0
                        Криптовласть концентрируется у людей, они разыгрывают должности на аукционах и раздают остатки власти людям со своей команды что-бы те разыграли должности заместителей. Когда кто-то теряет власть, она транзитивно изымается у одного из заместителей, тот теряет должность и эта должность переразыгрывается на новом аукционе, куда уже может пройти оппозиция. Так команда может терять власть постепенно.
                        0
                        это мультипликативный гомоморфизм, а нам нужен аддитивный
                        логарифмирование — наше всё
                        P.S. Простите, не удержался

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое