sign ( crypt ( m ) ) = crypt ( sign ( m ) )Пусть m — это ваш бюллетень.Вы его шифруете своим публичным ключом — это crypt (m).Избирком подписывает, получается sign ( crypt ( m ) )Это левая часть равенства. Она равна правой части в силу коммутативности.
Равенство не верно. Не равно в общем случае. Вы же не определили функции crypt ( m ) и sign ( m ). Например, если crypt ( m ) = x, а sign ( m ) = y, x >< y, то sign ( crypt ( m ) ) = sign ( x ) = a и crypt ( sign ( m ) ) = crypt ( y ) = b. Думаю, что не будете спорить о том, что x не равно y. А вот для утверждения того, что a = b нужны весьма веские причины. Если crypt ( . ) и sign ( . ) – стандартные функции зашифрования и формирования ЭЦП, то это точно не так. Не вводите в заблуждение читателей. Более того, если бы это было так, то существовал бы простой метод экзистенциальной фальсификации ЭЦП. Как это его такой до сих пор не обнаружили? Вот возьмите в качестве функции crypt ( . ) стандарт AES, а в качестве sign ( . ) российский стандарт цифровой подписи EC-RDSA. И Вы хотите сказать, что a будет равно b ?
Я уже выше написал, что способ «ослепления» по Чому (D. Chaum) давно и хорошо известен. Для RSA-подписи он подробно описан в главе «Финансовая криптография» в книжке Чмора А.Л. «Современная прикладная криптография», Гелиос-АРВ, 2001, 256с. Там в точности поясняются все преобразования и показано, почему это работает.
Так поэтому этот ключ называется публичным – правда, это не совсем верная терминология, правильнее называть его общедоступным. Такой термин точно отражает сущность. В общем этот ключ всем известен. Помещается в общедоступные справочники в виде сертификата, который выпускает доверенный удостоверяющий центp (УЦ) в составе PKI. Доступны по протоколу OCSP. Эта технология известна очень давно, ещё со времён первой работы Лорена Конфелдера, где-то году в 78-м, если не ошибаюсь. Вскоре после основополагающей статьи Диффи-Хеллмана «Новые направления в криптографии». Так что никаких проблем. Достаёшь сертификат общедоступного ключа при помощи OCSP, смотришь на статус и если все в порядке (ключи не скомпрометированы – сертификат не помещен в список аннулированных сертификатов, срок действия сертификата не вышел и т.д.), то берёшь общедоступный ключ из этого сертификата и проверяешь на нём ЭЦП тех данных, которые заверены на парном секретном ключе, в подлинности и целостных которых хочешь удостовериться. Конечно ЭЦП сертификата тоже при этом проверяется. Если ЭЦП сертификата не валидна, то общедоступный ключ из сертификата выбрасывается в мусорную корзину. Ликбез здесь https://habr.com/ru/company/encry/blog/461761/ подкат «Что такое цифровые подписи и сертификаты ?».
Как проверить, что имеет право голосовать: гражданин, имеет соответствующую прописку (голосование-то территориальное), не имеет вообще или имеет погашенную судимость, старше 18 лет и т.д. Кроме этого просто провести транзакцию не получится. Надо ведь как-то указать кандидата, за которого отдаёшь свой голос. Не понятно как отслеживать многократные голосования. Много различных проблем, которые остались за бортом. При внимательном рассмотрении выясняется, что такие задачки наскоком не решаются.
Что Вы понимаете под коммутативностью? Если то, что зашифрованная ЭЦП равна шифртексту, заверенному ЭЦП, то в общем случае это не верно. Даже при условии фиксированной пары ключей. Тем более, когда на шифртекст не накладывается никаких ограничений. Просто шифртекст может быть банально длиннее (имеется в виду разрядность в битах), чем ЭЦП, которая имеет фиксированную разрядность, например 512 бит ЕС-DSA. Для Хабр вообще характерны весьма спорные заявления, мягко выражаясь. Но главное, что при этом все друг-другом довольны. Ну и что, что умнее не становятся? Зато прикольно!
Нет. Невозможно. Метод «ослепления» хорошо известен и восходит к ранним работам Чома (D. Chaum). Прочитать про это можно в главе «Финансовая криптография» в книжке Чмора А.Л. «Современная прикладная криптография», Гелиос-АРВ, 2001, 256 стр. Там описан RSA-подобный подход.
Как понять, что «свой», а значит имеет право голосовать, но при условии доказанной анонимности, написано здесь https://habr.com/ru/post/564596/ Необходимо отметить, что кроме опубликованного на Хабр протокола (ссылка на публикацию выше), также разработан другой протокол, который позволяет сформировать общий секретный ключ только в том случае, если проверяющий примет доказательство, т.е. когда доказывающий гарантированно «свой». Никаких дополнительных данных, кроме тех, которыми стороны обменялись на этапе идентификации, передавать не нужно.
Приблизительно схема голосования на основе нашего протокола выглядит следующим образом.
Для подтверждения своих избирательных прав претендент обязан предъявить удостоверение личности, например паспорт, сканирование которого осуществляется специализированным терминалом-инфоматом. После оптического распознавания символов выполняется автоматическая проверка и выносится решение о допуске к голосованию. Если заключение положительное, то инфомат формирует персональные общедоступный и секретный ключи. Последний передаётся потенциальному избирателю, например в виде пластиковой карты с QR-кодом. Карта может выпускаться незамедлительно при контакте с инфоматом или вручаться лично с предварительным уведомлением о готовности, например так, как это происходит с социальными и банковскими картами. Кроме секретного ключа, карта содержит: уникальный идентификатор избирателя, который также заносится в целевое поле сертификата персонального общедоступного ключа, ссылку на ресурс, предназначенный для хранения этого сертификата. Отметим, что такой сертификат не содержит персональных данных (анонимный сертификат), но удостоверяет, что владелец персонального общедоступного ключа является зарегистрированным избирателем. На основании идентификаторов формируется групповой общедоступный ключ, который в частности может быть привязан к конкретному субъекту административно-территориального деления. В этом случае идентификатор избирателя должен включать код субъекта. Для этого ключа также выпускается сертификат. Персональные данные всех зарегистрированных избирателей, за исключением идентификаторов, заносятся в базу данных. Повторная регистрация невозможна, так как каждый запрос на регистрацию инициирует сверку с этой базой данных и если избиратель уже зарегистрирован, то запрос отклоняется. В момент голосования избиратель активизирует специализированное приложение на персональном компьютере или смартфоне. Предъявляет свою карту с QR-кодом для распознавания и таким образом вводит персональный секретный ключ, идентификатор, ссылку на ресурс, где храниться сертификат персонального общедоступного ключа, иную вспомогательную информацию. Приложение избирателя удалённо взаимодействует с сопряжённым приложением избирательной комиссии. Запускается интерактивный протокол, при помощи которого приложение избирателя формирует и передаёт доказательство, а приложение избирательной комиссии осуществляет его проверку посредством персонального и группового общедоступных ключей при условии валидности ЭЦП соответствующих сертификатов. По факту доказательства устанавливается защищённый туннель, который используется для передачи информации о конкретном выборе избирателя. Если голос учтён, то идентификатор заносится в базу данных проголосовавших. Для исключения повторного голосования сверка с этой базой обязательна для каждого голоса. Все идентификаторы из базы данных проголосовавших размещаются в открытом доступе. Каждый избиратель может найти свой идентификатор в опубликованном списке и тем самым удостовериться, что его голос был учтён при голосовании. ЭЦП избирательной комиссии предоставляет гарантию целостности, подлинности и актуальности списка. Невозможно установить однозначное соответствие между идентификаторами и персональными данными избирателей, а защищённый туннель передачи данных обеспечивает тайность голосования.
В нашей публикации всё написано по-существу. Если есть какие-то внятные соображения, то изложите их. Если нет, то чего зря клаву мять. А про публикацию в рецензируемом периодическом издании мы и без вас понимаем. А то прямо как Капитан-очевидность…
Это правильное замечание. Статья со всеми доказательствами уже готова и мы собираемся её опубликовать. Сделать это ранее не могли по очевидным причинам – нам нужна была патентная заявка. Что касается свойств WI и WH, то в нашей публикации на Хабр есть ссылка на основную статью по этой тематике.
Уточнение, чтобы окончательно прояснить. Очевидно, что кто угодно может организовать свою собственную вечеринку, со свои списком приглашённых, уникальным набором персональных секретных ключей и групповым общедоступным ключом. Но вот «влезть» в чужую вечеринку просто так не получится. Отчасти это связано с тем обстоятельством, что на групповой общедоступный ключ выдаётся сертификат, в котором указано, кто является устроителем вечеринки. Сертификат очевидно содержит ЭЦП удостоверяющего центра (УЦ). Если злонамеренные участники солидарными усилиями (сговор) попытаются модифицировать существующий групповой общедоступный ключ, например с целью несанкционированного включения каких-то других участников, что в принципе возможно, то для достижения цели им потребуется подделать ЭЦП сертификата этого ключа. А для этого нужно либо знать секретный ключ УЦ, либо отыскать решение DLP/ECDLP. Иначе в ходе проверки сертификата такой фальсифицированный групповой общедоступный ключ будет определён как не валидный и отвергнут. Одним словом, сертификат – это не просто фитюлька, дань моде, как некоторые полагают, а существенная составляющая протокола.
В это не верю. Надо проверять. Тем более, что никакого разумного объяснения Вы не предлагаете. Здесь нужны аналитические оценки. Например, в случае SHA256 для последовательности из n бит на входе вычислительная трудоёмкость формирования выходного значения оценивается как O(n^2) двоичных операций. Если Вы понимаете, что означает O-большое или «символ Бахмана». Такая же оценка нужна и для вашего генератора. Тогда можно будет как-то сравнивать вычислительную трудоёмкость. Конкретные цифры не имеют особого смысла, так как привязаны к той или иной платформе, другим вещам, которые могут сильно варьироваться. Вообще-то пониманию этих вещей учат студентов в рамках университетского курса computer science.
Издана 20 лет назад, а написана ещё раньше. Многие разделы до сих пор актуальны. Раздел про квантовую криптографию, например. Интересно, 20 лет назад сколько вам годков-то было?
Всё верно. Поэтому сразу же отбрасывал такое "решение" в корзину. Вы высказали интерес к моим соображениям по поводу "альтернативных" реализаций ("Мне интересно"). И я честно привел, сразу оговорившись, что нигде не утверждал, что знаю "как лучше", а писал: "...тут же приходит на ум...". При этом не утверждал категорически, что не существуют кейсы (о которых сам не знаю), где ваш протокол был бы хорош и не мог бы заменён на иные существующие.
Вот зачем писать всякие необдуманные вещи и потом так нудно оправдываться? Не понимаю…
Ну хорошо. Как поступать, согласно вашему протоколу, если ключ одного из участников (x_i, P_i) будет скомпрометирован
Ничего фатального не произойдёт. Раскрытие персонального секретного ключа i-го участника не приводит к раскрытию ключей всех остальных. Но если такое вдруг случится, то для корректной работы протокола надо будет выбрать новую бету, вычислить новые персональные секретные ключи участников, сформировать новый общедоступный ключ и затем выполнить рассылку персональных секретных ключей. Более того, если все участники объединят свои усилия и сами раскроют свои секретные ключи, то они не смогут вычислить собственный групповой общедоступный ключ по той причине, что не знаю секретную бету. Для раскрытия беты надо найти решение DLP в G_3. Про это всё подробно написано в патентной заявке. Так что читайте. Там есть ответы на все вопросы.
Равенство не верно. Не равно в общем случае. Вы же не определили функции crypt ( m ) и sign ( m ). Например, если crypt ( m ) = x, а sign ( m ) = y, x >< y, то sign ( crypt ( m ) ) = sign ( x ) = a и crypt ( sign ( m ) ) = crypt ( y ) = b. Думаю, что не будете спорить о том, что x не равно y. А вот для утверждения того, что a = b нужны весьма веские причины. Если crypt ( . ) и sign ( . ) – стандартные функции зашифрования и формирования ЭЦП, то это точно не так. Не вводите в заблуждение читателей. Более того, если бы это было так, то существовал бы простой метод экзистенциальной фальсификации ЭЦП. Как это его такой до сих пор не обнаружили? Вот возьмите в качестве функции crypt ( . ) стандарт AES, а в качестве sign ( . ) российский стандарт цифровой подписи EC-RDSA. И Вы хотите сказать, что a будет равно b ?
Так поэтому этот ключ называется публичным – правда, это не совсем верная терминология, правильнее называть его общедоступным. Такой термин точно отражает сущность. В общем этот ключ всем известен. Помещается в общедоступные справочники в виде сертификата, который выпускает доверенный удостоверяющий центp (УЦ) в составе PKI. Доступны по протоколу OCSP. Эта технология известна очень давно, ещё со времён первой работы Лорена Конфелдера, где-то году в 78-м, если не ошибаюсь. Вскоре после основополагающей статьи Диффи-Хеллмана «Новые направления в криптографии». Так что никаких проблем. Достаёшь сертификат общедоступного ключа при помощи OCSP, смотришь на статус и если все в порядке (ключи не скомпрометированы – сертификат не помещен в список аннулированных сертификатов, срок действия сертификата не вышел и т.д.), то берёшь общедоступный ключ из этого сертификата и проверяешь на нём ЭЦП тех данных, которые заверены на парном секретном ключе, в подлинности и целостных которых хочешь удостовериться. Конечно ЭЦП сертификата тоже при этом проверяется. Если ЭЦП сертификата не валидна, то общедоступный ключ из сертификата выбрасывается в мусорную корзину. Ликбез здесь https://habr.com/ru/company/encry/blog/461761/ подкат «Что такое цифровые подписи и сертификаты ?».
Как проверить, что имеет право голосовать: гражданин, имеет соответствующую прописку (голосование-то территориальное), не имеет вообще или имеет погашенную судимость, старше 18 лет и т.д. Кроме этого просто провести транзакцию не получится. Надо ведь как-то указать кандидата, за которого отдаёшь свой голос. Не понятно как отслеживать многократные голосования. Много различных проблем, которые остались за бортом. При внимательном рассмотрении выясняется, что такие задачки наскоком не решаются.
Что Вы понимаете под коммутативностью? Если то, что зашифрованная ЭЦП равна шифртексту, заверенному ЭЦП, то в общем случае это не верно. Даже при условии фиксированной пары ключей. Тем более, когда на шифртекст не накладывается никаких ограничений. Просто шифртекст может быть банально длиннее (имеется в виду разрядность в битах), чем ЭЦП, которая имеет фиксированную разрядность, например 512 бит ЕС-DSA. Для Хабр вообще характерны весьма спорные заявления, мягко выражаясь. Но главное, что при этом все друг-другом довольны. Ну и что, что умнее не становятся? Зато прикольно!
Нет. Невозможно. Метод «ослепления» хорошо известен и восходит к ранним работам Чома (D. Chaum). Прочитать про это можно в главе «Финансовая криптография» в книжке Чмора А.Л. «Современная прикладная криптография», Гелиос-АРВ, 2001, 256 стр. Там описан RSA-подобный подход.
Как понять, что «свой», а значит имеет право голосовать, но при условии доказанной анонимности, написано здесь https://habr.com/ru/post/564596/ Необходимо отметить, что кроме опубликованного на Хабр протокола (ссылка на публикацию выше), также разработан другой протокол, который позволяет сформировать общий секретный ключ только в том случае, если проверяющий примет доказательство, т.е. когда доказывающий гарантированно «свой». Никаких дополнительных данных, кроме тех, которыми стороны обменялись на этапе идентификации, передавать не нужно.
Приблизительно схема голосования на основе нашего протокола выглядит следующим образом.
Для подтверждения своих избирательных прав претендент обязан предъявить удостоверение личности, например паспорт, сканирование которого осуществляется специализированным терминалом-инфоматом. После оптического распознавания символов выполняется автоматическая проверка и выносится решение о допуске к голосованию. Если заключение положительное, то инфомат формирует персональные общедоступный и секретный ключи. Последний передаётся потенциальному избирателю, например в виде пластиковой карты с QR-кодом. Карта может выпускаться незамедлительно при контакте с инфоматом или вручаться лично с предварительным уведомлением о готовности, например так, как это происходит с социальными и банковскими картами. Кроме секретного ключа, карта содержит: уникальный идентификатор избирателя, который также заносится в целевое поле сертификата персонального общедоступного ключа, ссылку на ресурс, предназначенный для хранения этого сертификата. Отметим, что такой сертификат не содержит персональных данных (анонимный сертификат), но удостоверяет, что владелец персонального общедоступного ключа является зарегистрированным избирателем. На основании идентификаторов формируется групповой общедоступный ключ, который в частности может быть привязан к конкретному субъекту административно-территориального деления. В этом случае идентификатор избирателя должен включать код субъекта. Для этого ключа также выпускается сертификат. Персональные данные всех зарегистрированных избирателей, за исключением идентификаторов, заносятся в базу данных. Повторная регистрация невозможна, так как каждый запрос на регистрацию инициирует сверку с этой базой данных и если избиратель уже зарегистрирован, то запрос отклоняется. В момент голосования избиратель активизирует специализированное приложение на персональном компьютере или смартфоне. Предъявляет свою карту с QR-кодом для распознавания и таким образом вводит персональный секретный ключ, идентификатор, ссылку на ресурс, где храниться сертификат персонального общедоступного ключа, иную вспомогательную информацию. Приложение избирателя удалённо взаимодействует с сопряжённым приложением избирательной комиссии. Запускается интерактивный протокол, при помощи которого приложение избирателя формирует и передаёт доказательство, а приложение избирательной комиссии осуществляет его проверку посредством персонального и группового общедоступных ключей при условии валидности ЭЦП соответствующих сертификатов. По факту доказательства устанавливается защищённый туннель, который используется для передачи информации о конкретном выборе избирателя. Если голос учтён, то идентификатор заносится в базу данных проголосовавших. Для исключения повторного голосования сверка с этой базой обязательна для каждого голоса. Все идентификаторы из базы данных проголосовавших размещаются в открытом доступе. Каждый избиратель может найти свой идентификатор в опубликованном списке и тем самым удостовериться, что его голос был учтён при голосовании. ЭЦП избирательной комиссии предоставляет гарантию целостности, подлинности и актуальности списка. Невозможно установить однозначное соответствие между идентификаторами и персональными данными избирателей, а защищённый туннель передачи данных обеспечивает тайность голосования.
Понятно. Соображений нет.
Вам что надо? Я всё уже объяснил.
В нашей публикации всё написано по-существу. Если есть какие-то внятные соображения, то изложите их. Если нет, то чего зря клаву мять. А про публикацию в рецензируемом периодическом издании мы и без вас понимаем. А то прямо как Капитан-очевидность…
Читайте комментарии https://habr.com/ru/post/564596/comments/#comment_23271972
https://habr.com/ru/post/564596/comments/#comment_23290388
Для начала можете посмотреть Written opinion of international searching authority (separate sheet) https://mega.nz/file/sa5HESAS#X7UGNu6fKWofByYA9IVckSDwvH3XWQqv34e7wWqyXfw
Я не утверждаю, что это полноценная экспертиза, но лучше, чем ничего. У других и этого нет.
Это правильное замечание. Статья со всеми доказательствами уже готова и мы собираемся её опубликовать. Сделать это ранее не могли по очевидным причинам – нам нужна была патентная заявка. Что касается свойств WI и WH, то в нашей публикации на Хабр есть ссылка на основную статью по этой тематике.
Уточнение, чтобы окончательно прояснить. Очевидно, что кто угодно может организовать свою собственную вечеринку, со свои списком приглашённых, уникальным набором персональных секретных ключей и групповым общедоступным ключом. Но вот «влезть» в чужую вечеринку просто так не получится. Отчасти это связано с тем обстоятельством, что на групповой общедоступный ключ выдаётся сертификат, в котором указано, кто является устроителем вечеринки. Сертификат очевидно содержит ЭЦП удостоверяющего центра (УЦ). Если злонамеренные участники солидарными усилиями (сговор) попытаются модифицировать существующий групповой общедоступный ключ, например с целью несанкционированного включения каких-то других участников, что в принципе возможно, то для достижения цели им потребуется подделать ЭЦП сертификата этого ключа. А для этого нужно либо знать секретный ключ УЦ, либо отыскать решение DLP/ECDLP. Иначе в ходе проверки сертификата такой фальсифицированный групповой общедоступный ключ будет определён как не валидный и отвергнут. Одним словом, сертификат – это не просто фитюлька, дань моде, как некоторые полагают, а существенная составляющая протокола.
Прямо можно подумать, что это оправдывает запись вида
, где
– стандартная криптографическая хеш-функция.
Сразу предупреждаю, всякие риторические приёмы со мной не проканают.
В это не верю. Надо проверять. Тем более, что никакого разумного объяснения Вы не предлагаете. Здесь нужны аналитические оценки. Например, в случае SHA256 для последовательности из n бит на входе вычислительная трудоёмкость формирования выходного значения оценивается как O(n^2) двоичных операций. Если Вы понимаете, что означает O-большое или «символ Бахмана». Такая же оценка нужна и для вашего генератора. Тогда можно будет как-то сравнивать вычислительную трудоёмкость. Конкретные цифры не имеют особого смысла, так как привязаны к той или иной платформе, другим вещам, которые могут сильно варьироваться. Вообще-то пониманию этих вещей учат студентов в рамках университетского курса computer science.
Например, здесь можно взять https://es1lib.org/book/3154417/2f0618?id=3154417&secret=2f0618
Издана 20 лет назад, а написана ещё раньше. Многие разделы до сих пор актуальны. Раздел про квантовую криптографию, например. Интересно, 20 лет назад сколько вам годков-то было?
Признание ошибок – путь к постижению истины.
Вот зачем писать всякие необдуманные вещи и потом так нудно оправдываться? Не понимаю…
Ничего фатального не произойдёт. Раскрытие персонального секретного ключа i-го участника не приводит к раскрытию ключей всех остальных. Но если такое вдруг случится, то для корректной работы протокола надо будет выбрать новую бету, вычислить новые персональные секретные ключи участников, сформировать новый общедоступный ключ и затем выполнить рассылку персональных секретных ключей. Более того, если все участники объединят свои усилия и сами раскроют свои секретные ключи, то они не смогут вычислить собственный групповой общедоступный ключ по той причине, что не знаю секретную бету. Для раскрытия беты надо найти решение DLP в G_3. Про это всё подробно написано в патентной заявке. Так что читайте. Там есть ответы на все вопросы.
Который существенно усложняет анализ кода и является источником множества ошибок.