Вопрос к Автору. Не очень знаком с этой темой, но появилась идея. В подобных системах как то используют физическую раскладку клавиатуры? Например, буква А и П стоят рядом и, значит, вероятность того, что в обычном слове вместо правильной буквы А я случайно напишу П выше чем Ъ просто потому, что А и П рядом, а А и Ъ далеко на клавиатуре. Используется эта информация как то?
Можно продолжить список. РОИ просто одинаковые «случайные» последовательсти будет генерировать для, скажем, двоих. Оба видят себя в списке, а голос учтен один. Оба будут думать что все хорошо. Один голос зачтут, а второй украден.
Допустим я не голосовал, а просто сгенерировал себе такую строку. А потом предоставил ее общественности и заявил «РОИ украла у меня голос, вот моя строка!» — как РОИ будет оправдываться? И как я докажу общественности что я действительно получил эту строку от РОИ? Приводить принтскрин что ли?
Выше уже писали, что голоса ПРОТИВ не учитываются, поэтому нет смысла их накидывать — хоть равномерно, хоть в конце. Набрала инициатива 100тыс и все, на рассмотрение. Кроме того, учесть виртуальных ПРОТИВ все равно невозможно — смотрите «минусы» в посте. Тут простых решений нет.
Вместо децентрализации и биткоинов проще и лучше использовать уже накопленный опыт электронных голосований. Например, в Эстонии активно применяется, даже на выборах президента. Кроме того, можно использовать технику под названием «homomorphic encryption» для организации голосований с возможностью проверки голосов, общей суммы, с такими свойствами как тайна голосования, и другими важными функциями. Криптография уже давно предложила разные решения на счет e-Voting.
Проблема только в том, что это уже будет другое РОИ, и в этом никто из них не заинтересован — мухлевать сложнее. Дальше говорить не о чем.
Первый вопрос: А если GUID из официальных логов РОИ пропадет или вообще не появится там, при этом юзеру придет емайл все как надо? Как пользователь будет доказывать что он проголосовал?
Второй вопрос. Допустим, пользователь выйдет на публику и скажет «воры! обокрали! вот мой e-mail распечатанный, вот мой GUID, а его не учли!» Вам не кажется что в таком случае все голосования юзера по другим инициативам станут тоже известны, ведь GUID один для него?
Пример можете привести? Выберите сценарий:
— Это инициатива: (а) моя, в которой я заинтересован, или (б) от РЖД, которую проталкивают кто то из РОИ?
— Вбросы назад будут какие — голоса ЗА или ПРОТИВ?
Немного ниже дан ответ, если коротко то: Да, я позже тоже увидел похожие предложения. Но даже если кто то сказал что надо использовать ЭЦП (и верно сказал), то остается вопрос КАК именно....(cut) я предложил свое детальное решение — как должен выглядеть проверочный вектор, и что в него должно быть включено. Мог конечно где то ошибиться, но пока я ошибки не вижу, нужен взгляд со стороны.
В принципе нет, не нарушает. Только вот, если один раз GUID человека скомпрометирован, то станут известны все его голоса за все инициативы. Например человек громко скажет «вот мой GUID, мой голос не учтен!», сам себя раскроет во всех других инициативах.
«подбрасывать фальшивые голоса (с несуществующими СНИЛСами) задним числом»
Ну, я с Вами отчасти согласен, но сильно такой необходимости подбрасывать назад я не вижу. Ну, во-первых сам счетчик будет гулять, если вы бросите назад на неделю (и это будет заметно), а если подбрасывать назад в пределах времени кэширования, то, опять же, нет нужны бросать назад на 5 минут, когда можно просто добавить в конец чейна. А вот объяснить Массуху такой чейн и как его реализовать — гораздо сложнее. Для таких людей на стол надо ложить самые простые схемы, чтобы уж совсем просто было понять.
Я исправил пост, и надеюсь на этот раз все окей. Извините, просто я не по-российским учебникам учился, и для меня ЭЦП — это немного странная аббревиатура. У нас тут RSA обозначает алгоритм, а ключи деляться на «RSA encryption key» и «RSA signing key» по типу применения. Поэтому такая чехарда с формулировками получилась. Надеюсь на понимание.
Теоретически блокчейн добавить просто — SHA256(от предыдущего sign), это 32 байта к 49 — не проблема. Практически немного сложнее из за возможной рассинхронизации. Только не могу понять что это дает, против какой возможной атаки, какой сценарий тут?
Об этом сказано в «минусах». Думаю, чтобы гарантировать отсутствие дополнительных голосов система должны быть на много сложнее, включая PKI независимый от РОИ, и ЭЦП для каждого пользователя. Это уже инфраструктура. Данное решение — то что можно сделать просто и прямо сейчас без дополнительных затрат.
«Так каким же черт подери ключом шифруют?» — В посте предельно четко указано каким ключем зашифровываем, а каким расшифровываем. А разошлись мы с Вами по части формулировок. Ценность и суть поста в другом — структура пары (V,S), то есть какая информация там должно быть, чтобы предотвратить возможные атаки. Если вы так категоричны, могу подправить формулировки заменив RSA на ЭЦП, и Encrypt/Decrypt на Sign/Verify. Так будет лучше?
А если одна запись «выпадет» или потеряется где то? Например, сам Масух проголосует а потом выдернет из БД? Вся последующая цепочка событий будет разорвана.
Отвечу сразу всем выше:
1. gbg. Это не умаляет сути понятий «секретный ключ» и «открытый ключ», а перегружать читателя тонкостями криптографии и определений думаю ни к чему. Важна суть.
2. ruikarikun. Да, я знаю что закрыли возможность отозвать голос. На сегодня достаточно 1 бита для типа голоса — да/нет. Ну а если завтра снова вернут возможность отзыва, то надо предусмотреть и такой вариант.
3. homm. Да, я позже тоже увидел похожие предложения. Но даже если кто то сказал что надо использовать ЭЦП (и верно сказал), то остается вопрос КАК именно. А поскольку у меня степень в области криптографии (извините за нескромность), то я предложил свое детальное решение — как должен выглядеть проверочный вектор, и что в него должно быть включено. Мог конечно где то ошибиться, но пока я ошибки не вижу, нужен взгляд со стороны.
Проблема только в том, что это уже будет другое РОИ, и в этом никто из них не заинтересован — мухлевать сложнее. Дальше говорить не о чем.
Второй вопрос. Допустим, пользователь выйдет на публику и скажет «воры! обокрали! вот мой e-mail распечатанный, вот мой GUID, а его не учли!» Вам не кажется что в таком случае все голосования юзера по другим инициативам станут тоже известны, ведь GUID один для него?
— Это инициатива: (а) моя, в которой я заинтересован, или (б) от РЖД, которую проталкивают кто то из РОИ?
— Вбросы назад будут какие — голоса ЗА или ПРОТИВ?
Да, я позже тоже увидел похожие предложения. Но даже если кто то сказал что надо использовать ЭЦП (и верно сказал), то остается вопрос КАК именно....(cut) я предложил свое детальное решение — как должен выглядеть проверочный вектор, и что в него должно быть включено. Мог конечно где то ошибиться, но пока я ошибки не вижу, нужен взгляд со стороны.
Ну, я с Вами отчасти согласен, но сильно такой необходимости подбрасывать назад я не вижу. Ну, во-первых сам счетчик будет гулять, если вы бросите назад на неделю (и это будет заметно), а если подбрасывать назад в пределах времени кэширования, то, опять же, нет нужны бросать назад на 5 минут, когда можно просто добавить в конец чейна. А вот объяснить Массуху такой чейн и как его реализовать — гораздо сложнее. Для таких людей на стол надо ложить самые простые схемы, чтобы уж совсем просто было понять.
1. gbg. Это не умаляет сути понятий «секретный ключ» и «открытый ключ», а перегружать читателя тонкостями криптографии и определений думаю ни к чему. Важна суть.
2. ruikarikun. Да, я знаю что закрыли возможность отозвать голос. На сегодня достаточно 1 бита для типа голоса — да/нет. Ну а если завтра снова вернут возможность отзыва, то надо предусмотреть и такой вариант.
3. homm. Да, я позже тоже увидел похожие предложения. Но даже если кто то сказал что надо использовать ЭЦП (и верно сказал), то остается вопрос КАК именно. А поскольку у меня степень в области криптографии (извините за нескромность), то я предложил свое детальное решение — как должен выглядеть проверочный вектор, и что в него должно быть включено. Мог конечно где то ошибиться, но пока я ошибки не вижу, нужен взгляд со стороны.