Комментарии 46
Врятли эту систему воплотят в жизнь. А как же сотни нефти, которые пилят на каждых выборах?
Эта система не решит, а только усугубит проблему голосования в армии, студентов, и прочих зависимых категорий граждан. Кроме того упростит покупку бюллетеней.
А может и наоборот. Так опаньки — и «извините, товарищ командир, но я уже дома проголосовал… Эх, знал бы, что команда будет..»
Будет так: «Всем проголосовать за партию N. Иначе… После выборов проверю за кого голосовали. Голосовать можно дома»
Нужно усложнять проверку за кого голосовали
Нужно усложнять проверку за кого голосовали
Так в том-то и дело, что в этой схеме нельзя проверить, за кого тот или иной человек проголосовал. Идентификатор бюллетеня знает только избиратель, а в общем списке на сайте найти тот или иной чужой идентификатор, который устроит начальство, не составит большого труда.
Вряд ли:
Шаг 1. Заинтересованный человек раздаёт своим подневольным заранее сгенерированные идентификаторы (как вариант — после волеизъявления собираются чеки с генерированными идентификаторами).
Шаг 2. После выборов смотрится: идентификатор присутствует и с «правильным» голосом => пряник, в противном случае => кнут. Наблюдатели при этом вообще ничего не знают.
Шаг 1. Заинтересованный человек раздаёт своим подневольным заранее сгенерированные идентификаторы (как вариант — после волеизъявления собираются чеки с генерированными идентификаторами).
Шаг 2. После выборов смотрится: идентификатор присутствует и с «правильным» голосом => пряник, в противном случае => кнут. Наблюдатели при этом вообще ничего не знают.
Если голосующий находится в окружении Абсолютного Зла, его проконтроллируют так или иначе — силой принудят голосовать в присутствие проверяльщика или хитростью подстроят возможность голосовать только на терминале, где сниффится ввод-вывод. Ну и терморектальные способы тоже никто не отменял.
Нужно возможность проверки ограничить каким-либо временным интервалом.
Или после оглашения результатов: «Все кто хочет, может проверить здесь»
Или после оглашения результатов: «Все кто хочет, может проверить здесь»
Что значит дома? Кто ж его отпустит. Да и «2 наряда вне очереди, и минус отпуск за непредусмотрительность».
В случае, если человек находится под давлением, у него могут заранее попросить сказать его уникальную идентифицирующую строчку чтобы потом проверить за кого он проголосовал. Я сам прикидывал возможности построения подобных онлайновых и оффлайновых схем голосования, но решения этой проблемы не вижу. ((
Я предполагал, что строчка генерируется на лету. Голосуешь — оно хеширует, например, координаты мышки + дату/время, получает строчку, а потом пожалуйте, «ваш голос принят, ваша строчка такая-то, не забудьте проверить нашу честность».
Ну значит потом попросят предъявить, для сверки. Можно, наверное, попросить у кого-нибудь «правильную», чтобы показать её, но кому надо так рисковать? Обычно давят серьёзными проблемами (например, отчислением)
Ну если так рассуждать, то от давления вообще лекарства нет, ну абсолютно никакого. При любой схеме, при любой системе можно сделать снизу: приставить пистолет к виску избирателя и заставить его проголосовать как угодно и можно сделать сверху: выйти и зачитать на голубом глазу «правильные» цифры несмотря на цифры системы. Все, что между, можно охватить.
как решение — для каждого пользователя будут генерится свои «псевдоссылки» для проверки на все партии в списке
И как же можно принудить снизу, если голосование тайное? По нынешней схеме, только с реально имеющими рычаги воздействия независимыми наблюдателями + контроль того, что избиратель входит без заполненных бюллетеней и выходит без них?
Генерировать 3 уникальных строки. Одна истинная для проверки. Две других — при попытке проверки… ну допустим делают невозможной проверку для всех трёх строк.
Для того, чтобы любой желающий мог пересчитать результаты выборов, надо делать не просто возможность по ссылке проверить голос, а давать возможность скачать полный архив голосов в виде таблицы идентификатор — кому отдан голос. В эту таблицу добавлять фиктивные идентификаторы недопустимо т.к. станет невозможной проверка правильности подсчета голосов.
Когда уже после голосования изменяются его результаты; когда на возражения наблюдателей, мол у нас есть протоколы и в них другие цифры, нужные люди не находят причин для разбирательств; когда президент страны говорит, что не считает многочисленные видео доказательством нарушений на выборах — ИМХО тут совсем не в подписях проблема.
Нет, все же не зря я написал топик в раздел «Криптография», а не «Электронное правительство». Важен сам механизм создания слепой подписи, голосования могут происходить в сетях по любому поводу, будь то хоть проект «демократия 2» (кстати, они не связаны требованиями к алгоритмам, могут для слепой подписи использовать тот же RSA, там кстати не нужно четыре маскирующих множителя, хватает вроде и одного), хоть работодатель хочет узнать мнение у своих сотрудников по поводу чего-нибудь там и подозревает, что некий сотрудник или сотрудники не захотят говорить искренне, если не уверены в своей анонимности. Ну и конечно передача информации, куда без нее? Применений же куча.
Достаточно хорошенько прижать Боба, и анонимности большой привет.
>>Таким образом, валидатор не знал нашего сообщения (откуда он знает, на сколько изначально сообщение умножили? На
>>два? А может на минус два?), но из его подписи нашего замаскированного сообщения мы восстановили истинную подпись для
>>нашего секретного сообщения.
Боб, как и Цезарь — не владеют полной информацией, следовательно не могут нарушить анонимность
>>два? А может на минус два?), но из его подписи нашего замаскированного сообщения мы восстановили истинную подпись для
>>нашего секретного сообщения.
Боб, как и Цезарь — не владеют полной информацией, следовательно не могут нарушить анонимность
>> А тот, кто считает наш бюллетень, не должен знать нашу личность
А ему и не нужно знать. Ничего. Кроме указанного «победителя». Вы же не собираетесь слепо доверять счетчику? А проверить его — возможности нет.
А ему и не нужно знать. Ничего. Кроме указанного «победителя». Вы же не собираетесь слепо доверять счетчику? А проверить его — возможности нет.
Очень интересная статья. Однако, вы забыли упомянуть, что проблему давления на избирателя ваша система все же не решает. Хотя таким образом большинство схем жульничества становятся бесполезными, а давить на всех — на это никаких денег не хватит.
Схему можно немного упростить.
1. Избиратель заходит на публичный сайт анон.госуслуги.вру и получает анонимный бюллетень. Это некая структура, имеющая ID и уникальный открытый ключ. Секретный ключ хранится на госуслугах. Но кому конкретно бюллетень выдан — неизвестно, и в-общем любой плохиш может получить хоть и тысячу этих бюллетеней.
2. Избиратель заполняет структуру и шифрует открытым ключом всё, кроме ID. Получается что-то вроде серийного номера. С этим номером он идёт — хочет, в УИК к тетеньке, хочет — к нотариусу, хочет — в свой банк, телефонную компанию и т.п. В-общем, в любое место, где могут однозначно удостоверить его личность и готовы принимать голоса.
3. УИК, банк или кто там еще лезет в базу избирателей и ставит там пометку, что Пупкин В.В. голосует у меня. Если такая пометка уже есть — УИК говорит, что вы мол уже проголосовали там-то и там-то, разбирайтесь что за ботва. Вот форма подачи жалобы. Если всё хорошо, то у избирателя принимают его номер, зашифрованную часть номера (не содержащую ID бюллетеня) подписывают ЭЦП УИК-а и кидают «в урну» — некое хранилище, отсортированное по random().
4. В 20:00 из урны вытаскиваются все номера в случайном порядке и пачкой отправляются в избирком. Там их расшифровывают и считают. От номеров откусывают первую часть, содержащую ID, и вместе с подписью УИКа и закрытым ключом выкладывают в сеть. Любой желающий может их расшифровать и проверить правильность подсчета голосов. Также вывешиваются списки проголосовавших на каждом УИКе, люди могут проверить факт, место и время своего голосования.
Способов махинаций таким образом два:
— голосование на уике за мертвых душ, однозначно проверяется потсфактум;
— принуждение к «правильному» голосованию подчиненных руководством.
Для того чтобы наказать мошенников, в обоих случаях нужны а) смелые, которые заявят о нарушении в суде и б) нормально функционирующая судебная система.
Пункт а) в наличии имеется, а без пункта б) любая система лишена смысла.
1. Избиратель заходит на публичный сайт анон.госуслуги.вру и получает анонимный бюллетень. Это некая структура, имеющая ID и уникальный открытый ключ. Секретный ключ хранится на госуслугах. Но кому конкретно бюллетень выдан — неизвестно, и в-общем любой плохиш может получить хоть и тысячу этих бюллетеней.
2. Избиратель заполняет структуру и шифрует открытым ключом всё, кроме ID. Получается что-то вроде серийного номера. С этим номером он идёт — хочет, в УИК к тетеньке, хочет — к нотариусу, хочет — в свой банк, телефонную компанию и т.п. В-общем, в любое место, где могут однозначно удостоверить его личность и готовы принимать голоса.
3. УИК, банк или кто там еще лезет в базу избирателей и ставит там пометку, что Пупкин В.В. голосует у меня. Если такая пометка уже есть — УИК говорит, что вы мол уже проголосовали там-то и там-то, разбирайтесь что за ботва. Вот форма подачи жалобы. Если всё хорошо, то у избирателя принимают его номер, зашифрованную часть номера (не содержащую ID бюллетеня) подписывают ЭЦП УИК-а и кидают «в урну» — некое хранилище, отсортированное по random().
4. В 20:00 из урны вытаскиваются все номера в случайном порядке и пачкой отправляются в избирком. Там их расшифровывают и считают. От номеров откусывают первую часть, содержащую ID, и вместе с подписью УИКа и закрытым ключом выкладывают в сеть. Любой желающий может их расшифровать и проверить правильность подсчета голосов. Также вывешиваются списки проголосовавших на каждом УИКе, люди могут проверить факт, место и время своего голосования.
Способов махинаций таким образом два:
— голосование на уике за мертвых душ, однозначно проверяется потсфактум;
— принуждение к «правильному» голосованию подчиненных руководством.
Для того чтобы наказать мошенников, в обоих случаях нужны а) смелые, которые заявят о нарушении в суде и б) нормально функционирующая судебная система.
Пункт а) в наличии имеется, а без пункта б) любая система лишена смысла.
Проблема на третьем шаге. Банк или кто-то там, кто идентифицирует избирателя, берет у него зашифрованную часть бюллетеня и записывает рядом с фамилией избирателя. Приходит дядя из госуслуг с пачкой закрытых ключей, расшифровывает и получает сопоставление: фамилия-голос. А разгадка проста: нельзя, чтобы у валидатора и счетчика через руки проходила одна и та же информация, в этом и весь смысл топика.
Никто не будет мучатся ни с какими проблемами :) Предположим что введена самая крутая супер-пупер система голосования. Обеспечивающая анонимность, прозрачность и прочие плюшки. После оглашения результатов (ЕдРос — 146%) Медведев скажет, что он считает, будто претензии по фальсификации выборов являются провокацией и на них не стоит обращать внимания.
вы такой жёлтый. Президент не сказал, что не верит в фальсфикации, а сказал, что некоторые ролики столь низкого качества, что разобраться что там на самом деле ему не представляется возможным: отличить постановочное шоу и реальные нарушения.
По-моему мнению там вообще качество большинства роликов хуже даже чем с 0.3 многовесельной камеры снято и доказательной базы не несут.
Не стоит перевирать слова и создавать панику.
По-моему мнению там вообще качество большинства роликов хуже даже чем с 0.3 многовесельной камеры снято и доказательной базы не несут.
Не стоит перевирать слова и создавать панику.
> Избиратель добавляет к хешу бюллетеня маскирующий множитель
> Избиратель извлекает из подписи маскирующий множитель и получает корректную подпись для своего оригинального хеша
Эти шаги распишите подробно пожалуйста. С примерами желательно.
> Избиратель извлекает из подписи маскирующий множитель и получает корректную подпись для своего оригинального хеша
Эти шаги распишите подробно пожалуйста. С примерами желательно.
Хех. В двух словах могу показать на основе алгоритма RSA:
Знаем, да, как подпись проходит? S(M) = M^d mod n, а проверка P(M) = M^e mod n, (d,n) — приватный ключ, (e,n) — публичный.
Берем число r, взаимно простое с n, вычисляем M' = M*r^e mod n, (r^e mod n как раз «маскирующий множитель»), валидатор подписывает, S(M') = M'^d mod n = (M*r^e mod n)^d mod n = (кручу-верчу, обмануть хочу или модульная арифметика) = (M^d*r^(e*d))mod n = (M^d*r^((e*d)mod n)) = (M^d*r)mod n, т.к. по правилам RSA e*d mod n = 1. Далее извлекаем: (M^d*r mod n)/r = M^d mod n, что нам и было нужно.
С ГОСТом посложнее задача, там целых четыре множителя, алгоритм и программа вверху есть.
Знаем, да, как подпись проходит? S(M) = M^d mod n, а проверка P(M) = M^e mod n, (d,n) — приватный ключ, (e,n) — публичный.
Берем число r, взаимно простое с n, вычисляем M' = M*r^e mod n, (r^e mod n как раз «маскирующий множитель»), валидатор подписывает, S(M') = M'^d mod n = (M*r^e mod n)^d mod n = (кручу-верчу, обмануть хочу или модульная арифметика) = (M^d*r^(e*d))mod n = (M^d*r^((e*d)mod n)) = (M^d*r)mod n, т.к. по правилам RSA e*d mod n = 1. Далее извлекаем: (M^d*r mod n)/r = M^d mod n, что нам и было нужно.
С ГОСТом посложнее задача, там целых четыре множителя, алгоритм и программа вверху есть.
thunderquack, браво, вот ведь реальный конструктив. В отличие от негодований телеx… ну, вы поняли;)
Насчет жесткого давления, есть идея, конструктивная или нет пока не знаю сам… Если пытаться решить проблему вышепоставленных лиц (старшины, работодателя, etc.), то, вам на суд, предлагаю попробовать использовать такую схему:
Ключ выдается не на (лицо), а на кортеж (лицо, партия). В качестве «голоса» отсылается кортеж+(число 0 или 1). 0 — липовое голосование, 1 — реальное. Засчитываются естественно реальные голоса, а в публичных списках «по партиям» видно только (лицо), скажем первая половина отосланного сообщения.
В таком случае почти все смогут проверить, не ушел ли их голос за другую партия, кроме подневольных, для которых это в любом случае минимальный «урон» — они увидят свой ключ в списке за другую партию, но шеф не будет знать реальный он или липовый.
Ключ выдается не на (лицо), а на кортеж (лицо, партия). В качестве «голоса» отсылается кортеж+(число 0 или 1). 0 — липовое голосование, 1 — реальное. Засчитываются естественно реальные голоса, а в публичных списках «по партиям» видно только (лицо), скажем первая половина отосланного сообщения.
В таком случае почти все смогут проверить, не ушел ли их голос за другую партия, кроме подневольных, для которых это в любом случае минимальный «урон» — они увидят свой ключ в списке за другую партию, но шеф не будет знать реальный он или липовый.
И главный минус:
Роль наблюдателей в такого рода выборах сводятся к двум местам: наблюдение за валидатором, чтобы он не раздавал подписи к замаскированным хешам, подписанными абы кем, и наблюдение за счетчиком, чтобы он не накручивался при получении бюллетеней, подписанных некорректно.Т.е. наблюдение практически абсолютно нереализуемо.
Возможно вы будете удивлены, но именно такой механизм тайных голосований используется в нашей распределенной системе голосований проекта «Свободные голосования». :) Конкретно он описан вот здесь — ru.gplvote.org/details.html#secvote
Отрадно что несколько человек пришли к одной идее. :)
Отрадно что несколько человек пришли к одной идее. :)
Насколько я понял из описания, тайна голосования обеспечивается маскированием хеша бюллетеня.
Было бы неплохо привести описание маскирования/демаскирования более подробно (криптостойкость, откуда математические выкладки и пр.).
Или данные преобразования соответсвуют какому-либо криптоалгоритму?
Было бы неплохо привести описание маскирования/демаскирования более подробно (криптостойкость, откуда математические выкладки и пр.).
Или данные преобразования соответсвуют какому-либо криптоалгоритму?
У вас же все перед глазами, берете формулы из презентации, вставляете друг в друга, берете стандарт и алгоритм проверки ЭЦП, вставляете это хозяйство туда, используете модульную арифметику, упрощаете, и наблюдаете, как маскирующие множители друг с другом сокращаются, а у вас получается корректная ЭЦП. По поводу криптоанализа ГОСТ 34.10-2001 можете посмотреть вот здесь.
Спасибо за полезную статью, буду на неё ссылаться.
Приглашаю к участию в разработке платформы на моей площадке.
Приглашаю к участию в разработке платформы на моей площадке.
Слепая подпись на основе ГОСТ 34.10-2001
Все это применимо и для ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Слепая подпись на основе ГОСТ 34.10-2001