Проект "Свободные голосования"

Электронная системы голосований через интернет
Текущее время: 28 апр 2024, 02:10

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
СообщениеДобавлено: 04 июл 2011, 07:31 
Не в сети

Зарегистрирован: 28 июн 2011, 20:07
Сообщения: 150
Я опишу минимальную схему, которая, с моей точки зрения, обеспечивает тайность голосования и невозможность его подделки, в том смысле, что каждый проголосовавший сможет проверить свой голос. В конце я приведу некоторые дополнения, которые не сказываются на тайности голосования и невозможности его подделки, но делают схему более удобной в применении.

Предположения: у человека есть логин (уникален в системе), секретный пароль (никогда не передается по телекоммуникационным сетям, знает его только пользователь, нужен для доступа к паре открытый-закрытый ключ), пара открытый-закрытый ключ (закрытый ключ используется для подписи, открытый ключ - для шифрования). Закрытый ключ известен только пользователю, открытый ключ - кому угодно. Открытые ключи передаются по каналам связи, закрытые ключи никогда не передаются по каналам связи. Пара открытый-закртый ключ выдается по паспорту, что обеспечивает однооднозначное (одно - 2 раза) соответствие между пользователями и парами ключей.

Голосование: вопрос, варианты ответов (конечное число, варианты определяются предварительно). Каждое голосование имеет Уникальный Серийный Номер Голосования (УСНГ). УСНГ передается по каналам связи. Варианты ответов и их числовые представления (ЧПВО) известны всем. Они передаются по каналам связи.

Процесс голосования:
1. Пользователь решает принять участие в голосовании.
2. Голосующий подписывает УСНГ своим закрытым ключом.
3. Голосующий выбирает вариант, за который он отдет свой голос.
4. Пользователь выбирает произвольное число, какое захочет, назовем его Секрет Пользователя в Голосовании (СПГ). СПГ НЕ передается по каналам связи в первозданном виде.

Составляем таблицу участвоваших в голосовании:
1. Логин Л (по нему мы можем выяснить все данные пользователя: ФИО, контакты, фото)
2. Подписанный закрытым ключом пользователя с логином Л Уникальный Серийный Номер Голосования (УСНГ)

Эта таблица защищиает результаты голосования от изъятий и вложений. Если в этой таблице есть запись, что пользователь принял участие в голосовании, то и в следующей таблице должна быть запись, соответствующая пользователю.

Составляем таблицу результатов голосования:
1. Уникальный Серийный Номер Голосования (УСНГ).
2. Числовое Представление Варианта Ответа (ЧПВО).
3. СПГ, подписанный закрытым ключом пользвателя.
4. Специальное Поле.

Столбцы 1,2 используются для подведения итогов голосования.

Столбец 3,4 - используется для проверки самим пользователем правильности стобцов 1,2.

СП - это зашифрованное поле, состоит из (УСНГ, ЧПВО, логин, СПГ). Этот набор шифруется открытым ключом, используемым для шифрования. Расшифровать его может только сам пользователь. Зашифрованное Специальное Поле передается по каналам связи.

Никакаие другие данные по голосованию не сохраняются.

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

Поиск своей записи в голосовании: перебераем все строки. Та строка, поле 3. которой расподписалось в СПГ с помощью открытого ключа, а поле 4. расшифровалось с помощью закрытого ключа, является строкой пользователя в голосовании. Ниже будет приведен способ делать это проще, не так затратно в смысле вычислений.

Обеспечение тайны голосования - есть.
Единственное поле, которые может выдать пользователя по его подписи - это 3. Но, если у вас есть доступ только к открытым ключам пользователей и вы не знаете Секрет Пользователя в Голосовании, то каким бы открытым ключем вы не расподписывали поле 3., вы будете получать ничего не значащее для вас число. Никто не может расшифровать поле 4., кроме самого пользователя, так как только пользователь знающий закрытый ключ может расшифровать это поле.

Невозможность подделки голосования - есть.
1. Просто поменять поле 2. ЧПВО. Тогда пользователь находит свою запись, видит, что она поменялась. Заявляет, что запись подделана. Пользователь расшифровывает СП - только он знает закрытый ключ, СПГ расподписывается, пользователь раскрывает закрытый ключ. Проверка: Факт, что пользователь смог расшифровать 4. доказывает, что это его запись, СПГ из 3. совпадает с СПГ из 4., ЧПВО из 2. НЕ совпадает с ЧПВО из 4, закрытый ключ соответсвует открытому ключу. Так как пара ключей раскрыта, она переиздается для пользователя.
2. Попытка изменить поле 2. и поле 4. - меняем выбор пользователя и меняем соответственно поле 4. Это возможно сделать, так как поле 4. шифруется открытым ключем пользователя, который всем известен. НО: Из-за невозможности выяснить, кому принадлежит конкретная запись, становится невозможно выбрать логин, который записывается в поле 4.. Даже если с логином угадали, то туда надо вписать СПГ такой же, как и в поле 3. Но подписать произвольный СПГ может только сам пользователь.

Ниже описана модификация для быстрого поиска записи пользователя голосования:

Выдаем пользоватлю Уникальный Одноразовый Идентификатор Пользователя в Голосовании (УОИПГ). Добавляем УОИПГ в таблицу результатов голосования и в Специальное Поле. Теперь пользователь может искать свою запись по УОИПГ.

Невозможно выдать один и тот же Уникальный Одноразовый Идентификатор Пользователя в Голосовании нескольким пользователям, так как иначе будет несколько записей в базе данных с одинаковыми УОИПГ, что легко проверяется, либо одна запись, Специальное Поле которой сможет расшифровать только один из пользователей.

Описанная выше схема работает при следующих условиях:
1. Никто не запоминает соответсвия УОИПГ <--> логин
2. УОИПГ могут получить только пользователи, прошедшие аутентификацию, то есть не существует УОИПГ, которые бы не соответствовали реальному пользователю системы.

Эта схема была создана по результатам обсуждения http://xn----7sbabbvhzqeqhjj5a7a4euhk.xn--p1ai/forum/viewtopic.php?f=5&t=32


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 10:31 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
ameten писал(а):
Составляем таблицу результатов голосования:
1. Уникальный Серийный Номер Голосования (УСНГ).
2. Числовое Представление Варианта Ответа (ЧПВО).
3. СПГ, подписанный закрытым ключом пользвателя.
4. Специальное Поле.


Сочетание пунктов 2 и 3 сразу открывает информацию о пользователе и о том как он голосовал.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 20:31 
Не в сети

Зарегистрирован: 28 июн 2011, 20:07
Сообщения: 150
Андрей писал(а):
ameten писал(а):
Составляем таблицу результатов голосования:
1. Уникальный Серийный Номер Голосования (УСНГ).
2. Числовое Представление Варианта Ответа (ЧПВО).
3. СПГ, подписанный закрытым ключом пользвателя.
4. Специальное Поле.


Сочетание пунктов 2 и 3 сразу открывает информацию о пользователе и о том как он голосовал.


Андрей, наверное, я неясно объяснил. Поясню.

Числовое Представление Варианта Ответа - много пользователей могли так проголосовать.

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

Если какие-то данные подписанны ЭЦП, то проверить, что они подписанны конкретным пользователем можно в двух случаях:
1. Если после применения открытого ключа к подписанным данным получается смысловой тект, который можно прочитать.
2. Когда рядом с подписанными данными лежат данные открытые. Тогла подпись проверяется сравнением неподписанных данных с теми, которые получаются в результате расподписывания.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 20:35 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
Подписывание чего-либо через ЭЦП и не предоставление при этом оригинальных данных - нонсенс.

И, кстати, очень большая просьба! Прекратите использовать аббревиатуры! Ваши тексты крайне трудно читать из-за этого.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 20:39 
Не в сети

Зарегистрирован: 28 июн 2011, 20:07
Сообщения: 150
Андрей писал(а):
Подписывание чего-либо через ЭЦП и не предоставление при этом оригинальных данных - нонсенс.


Есть ли у вас более конструктивные возражения?

Андрей писал(а):
И, кстати, очень большая просьба! Прекратите использовать аббревиатуры! Ваши тексты крайне трудно читать из-за этого.


Принял к сведению. Буду писать полностью.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 20:51 
Не в сети

Зарегистрирован: 28 июн 2011, 20:07
Сообщения: 150
Если из-за аббревиатур происходит недопонимание, то вот текст только с общепринятыми аббревиатурами.

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

Предположения: у человека есть Логин (уникален в системе), секретный пароль (никогда не передается по телекоммуникационным сетям, знает его только пользователь, нужен для доступа к паре открытый-закрытый ключ), пара открытый-закрытый ключ (закрытый ключ используется для подписи, открытый ключ - для шифрования). Закрытый ключ известен только пользователю, открытый ключ - кому угодно. Открытые ключи передаются по каналам связи, закрытые ключи никогда не передаются по каналам связи. Пара открытый-закртый ключ выдается по паспорту, что обеспечивает однооднозначное (одно - 2 раза) соответствие между пользователями и парами ключей.

Голосование: вопрос, варианты ответов (конечное число, варианты определяются предварительно). Каждое голосование имеет Уникальный Серийный Номер Голосования. Уникальный Серийный Номер Голосования передается по каналам связи. Варианты ответов и их числовые представления известны всем. Они передаются по каналам связи.

Процесс голосования:
1. Пользователь решает принять участие в голосовании.
2. Голосующий подписывает Уникальный Серийный Номер Голосования своим закрытым ключом.
3. Голосующий выбирает вариант, за который он отдет свой голос.
4. Пользователь выбирает произвольное число, какое захочет, назовем его Секрет Пользователя в Голосовании. Секрет Пользователя в Голосовании НЕ передается по каналам связи в первозданном виде.

Составляем таблицу участвоваших в голосовании:
1. Логин (по нему мы можем выяснить все данные пользователя: ФИО, контакты, фото).
2. Подписанный закрытым ключом пользователя Уникальный Серийный Номер Голосования.

Эта таблица защищиает результаты голосования от изъятий и вложений. Если в этой таблице есть запись, что пользователь принял участие в голосовании, то и в следующей таблице должна быть запись, соответствующая пользователю.

Составляем таблицу результатов голосования:
1. Уникальный Серийный Номер Голосования.
2. Числовое Представление Варианта Ответа.
3. Секрет Пользователя в Голосовании, подписанный закрытым ключом пользвателя. Сам Секрет Пользователя в Голосовании в это поле не вносится.
4. Специальное Поле.

Столбцы 1,2 используются для подведения итогов голосования.

Столбец 3,4 - используется для проверки самим пользователем правильности стобцов 1,2.

Специальное Поле - это зашифрованное поле, состоит из (Уникальный Серийный Номер Голосования, Числовое Представление Варианта Ответа, Логин, Секрет Пользователя в Голосовании). Этот набор шифруется открытым ключом, используемым для шифрования. Расшифровать его может только сам пользователь. Зашифрованное Специальное Поле передается по каналам связи.

Никакаие другие данные по голосованию не сохраняются.

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

Поиск своей записи в голосовании: перебираем все строки. Та строка, поле 3. которой расподписалось в Секрет Пользователя в Голосовании с помощью открытого ключа, а поле 4. расшифровалось с помощью закрытого ключа, является строкой пользователя в голосовании. Ниже будет приведен способ делать это проще, не так затратно в смысле вычислений.

Обеспечение тайны голосования - есть.
Единственное поле, которые может выдать пользователя по его подписи - это 3. Но, если у вас есть доступ только к открытым ключам пользователей и вы не знаете Секрет Пользователя в Голосовании, то каким бы открытым ключем вы не расподписывали поле 3., вы будете получать ничего не значащее для вас число. Никто не может расшифровать поле 4., кроме самого пользователя, так как только пользователь, знающий закрытый ключ, может расшифровать это поле.

Невозможность подделки голосования - есть.
1. Просто поменять поле 2. Числовое Представление Варианта Ответа. Тогда пользователь находит свою запись, видит, что она поменялась. Заявляет, что запись подделана. Пользователь расшифровывает Специальное Поле - только он знает закрытый ключ, Секрет Пользователя в Голосовании расподписывается, пользователь раскрывает закрытый ключ. Проверка: Факт, что пользователь смог расшифровать 4. доказывает, что это его запись, Секрет Пользователя в Голосовании из 3. совпадает с Секрет Пользователя в Голосовании из 4., Числовое Представление Варианта Ответа из 2. НЕ совпадает с Числовым Представлением Варианта Ответа из 4, закрытый ключ соответсвует открытому ключу. Так как пара ключей раскрыта, она переиздается для пользователя.
2. Попытка изменить поле 2. и поле 4. - меняем выбор пользователя и меняем соответственно поле 4. Это возможно сделать, так как поле 4. шифруется открытым ключем пользователя, который всем известен. НО: Из-за невозможности выяснить, кому принадлежит конкретная запись, становится невозможно выбрать логин, который записывается в поле 4.. Даже если с логином угадали, то туда надо вписать Секрет Пользователя в Голосовании такой же, как и в поле 3. Но подписать произвольный Секрет Пользователя в Голосовании может только сам пользователь.

Ниже описана модификация для быстрого поиска записи пользователя голосования:

Выдаем пользоватлю Уникальный Одноразовый Идентификатор Пользователя в Голосовании. Добавляем Уникальный Одноразовый Идентификатор Пользователя в Голосовании в таблицу результатов голосования и в Специальное Поле. Теперь пользователь может искать свою запись по Уникальный Одноразовый Идентификатор Пользователя в Голосовании.

Невозможно выдать один и тот же Уникальный Одноразовый Идентификатор Пользователя в Голосовании нескольким пользователям, так как иначе будет несколько записей в базе данных с одинаковыми Уникальный Одноразовый Идентификатор Пользователя в Голосовании, что легко проверяется, либо одна запись, Специальное Поле которой сможет расшифровать только один из пользователей.

Описанная выше схема работает при следующих условиях:
1. Никто не запоминает соответсвия Уникальный Одноразовый Идентификатор Пользователя в Голосовании <--> Логин
2. Уникальный Одноразовый Идентификатор Пользователя в Голосовании могут получить только пользователи, прошедшие аутентификацию, то есть не существует Уникальный Одноразовый Идентификатор Пользователя в Голосовании, которые бы не соответствовали реальному пользователю системы.

Эта схема была создана по результатам обсуждения http://xn----7sbabbvhzqeqhjj5a7a4euhk.xn--p1ai/forum/viewtopic.php?f=5&t=32


Последний раз редактировалось ameten 07 июл 2011, 23:27, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 21:01 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
В общем-то, такой вариант относительно корректен и, на самом деле, не отличается от моего.

Только остается принципиальный вопрос - к вам приходит толпа злонамеренных пользователей которые утверждают что голосовали иначе. Что вы делаете? Поднимаете ручки кверху и отменяете результаты голосования? Тогда у вас в системе не пройдет ни одного законченного голосования.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 21:38 
Не в сети

Зарегистрирован: 28 июн 2011, 20:07
Сообщения: 150
Андрей писал(а):
В общем-то, такой вариант относительно корректен и, на самом деле, не отличается от моего.


Отличается. Если я правильно понял ваш вариант, то информации, которая будет доступна внутри системы, является достаточной для раскрытия личности пользоватля. Пусть только системным администраторам системы, но он смогут узнать и личность пользователя, и его выбор. У меня же даже человек со всеми правами доступа к данным не может узнать одновременно выбор пользователя и его личность.

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

Поясние, что означает "относительно корректен"? Относительно чего?

Андрей писал(а):
Только остается принципиальный вопрос - к вам приходит толпа злонамеренных пользователей которые утверждают что голосовали иначе. Что вы делаете? Поднимаете ручки кверху и отменяете результаты голосования? Тогда у вас в системе не пройдет ни одного законченного голосования.


Пусть пользователь злонамеренный.

1. Первое, что такому пользователю надо доказать, - это факт его участия в голосовании. Это просто. Надо просто проверить записи в таблице участвовавших в голосовании. Там Логин пользователя и подписанный закрытым ключем пользоватля Уникальный Серийный Номер Голосования. У нас есть открытый ключ. Расподписываем - сравниваем результат с Уникальным Серийным Номером Голосования. Совпали - пользователь принимал участие в голосовании. Не совпали - пользователь не принимал участие в голосовании. Далее предполагаем, что пользователь принимал участие в голосовании.
2. Пользователь утверждает, что его голос изменили, но Специальное Поле и Секрет Пользователя в Голосовании, подписанный закрытым ключом пользвателя остались неизменными. Тогда Специальное Поле можно расшифровать его закрытым ключем. Пользователь раскрывает свой закрытый ключ. То, что это тот самый закрытый ключ, мы поверяем факт, что этот закрытый ключ является парным к открытому ключу, который у нас есть и про который известно, что он принадлежит пользователю. Расшифровываем Специальное Поле закрытым ключем, расподписываем Секрет Пользователя в Голосовании открытым ключом. Если поля не менялись, то Секрет Пользователя в Голосовании подписанный и Секрет Пользователя в Голосовании рашифрованный должны совпасть. Кроме того, в Специальном Поле есть еще и рашифрованыый Логин пользователя. Если окажется, что в Специальном Поле другое Числовое Представление Варианта Ответа, то прав пользователь. Его голос изменили. Если Числовые Представления Варианта Ответа совпали, то пользователь врет.
3. Пользователь утверждает, что его голос изменили, и Специальное Поле изменилось, но его можно расшифровать закрытым ключем пользователя. В этом случе пользователь еще может найти свою запись в таблице, так как после расшифровки он получит смысловой текст - Уникальный Серийный Номер Голосования, Числовое Представление Варианта Ответа, Логин, Секрет Пользователя в Голосовании. Пользователь раскрывает свой закрытый ключ. То, что это тот самый закрытый ключ, мы поверяем факт, что этот закрытый ключ является парным к открытому ключу, который у нас есть и про который известно, что он принадлежит пользователю. Расшифровываем Специальное Поле закрытым ключем, расподписываем Секрет Пользователя в Голосовании открытым ключом. Если Секрет Пользователя в Голосовании подписанный и Секрет Пользователя в Голосовании рашифрованный не совпали - то запись подделана (Код системы должен позволять пользвателю вписать только один Секрет Пользователя в Голосовании). Если Секрет Пользователя в Голосовании подписанный и Секрет Пользователя в Голосовании рашифрованный совпали, и там стоит Логин пользователя, то это значит, что либо пользователь зря поднял шум, либо кто-то очень удачлив, угадав Логин пользователя и его Секрет Пользователя в Голосовании. Мы берем вариант голосования, который был зашифрован.
4. Пользователь не может найти свою запись в таблице результатов голосования. Пользователь раскрывает свой закрытый ключ. То, что это тот самый закрытый ключ, мы поверяем факт, что этот закрытый ключ является парным к открытому ключу, который у нас есть и про который известно, что он принадлежит пользователю. Мы тоже не можем найте запись, которая соответвует пользвателю. У нас проблемы - начинаем расследование внутри системы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июл 2011, 23:15 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
ameten писал(а):
Андрей писал(а):
В общем-то, такой вариант относительно корректен и, на самом деле, не отличается от моего.


Отличается. Если я правильно понял ваш вариант, то информации, которая будет доступна внутри системы, является достаточной для раскрытия личности пользоватля. Пусть только системным администраторам системы, но он смогут узнать и личность пользователя, и его выбор. У меня же даже человек со всеми правами доступа к данным не может узнать одновременно выбор пользователя и его личность.

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


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

Что-же касается подробного описание - оно есть на форуме. Если не сможете найти - попробую найти сам и дам вам ссылку.

ameten писал(а):
Поясние, что означает "относительно корректен"? Относительно чего?


В том смысле что не более корректный и не менее корректный чем мой вариант.

ameten писал(а):
Андрей писал(а):
Только остается принципиальный вопрос - к вам приходит толпа злонамеренных пользователей которые утверждают что голосовали иначе. Что вы делаете? Поднимаете ручки кверху и отменяете результаты голосования? Тогда у вас в системе не пройдет ни одного законченного голосования.


Пусть пользователь злонамеренный.

1. Первое, что такому пользователю надо доказать, - это факт его участия в голосовании. Это просто. Надо просто проверить записи в таблице участвовавших в голосовании. Там Логин пользователя и подписанный закрытым ключем пользоватля Уникальный Серийный Номер Голосования. У нас есть открытый ключ. Расподписываем - сравниваем результат с Уникальным Серийным Номером Голосования. Совпали - пользователь принимал участие в голосовании. Не совпали - пользователь не принимал участие в голосовании. Далее предполагаем, что пользователь принимал участие в голосовании.
2. Пользователь утверждает, что его голос изменили, но Специальное Поле и Секрет Пользователя в Голосовании, подписанный закрытым ключом пользвателя остались неизменными. Тогда Специальное Поле можно расшифровать его закрытым ключем. Пользователь раскрывает свой закрытый ключ. То, что это тот самый закрытый ключ, мы поверяем факт, что этот закрытый ключ является парным к открытому ключу, который у нас есть и про который известно, что он принадлежит пользователю. Расшифровываем Специальное Поле закрытым ключем, расподписываем Секрет Пользователя в Голосовании открытым ключом. Если поля не менялись, то Секрет Пользователя в Голосовании подписанный и Секрет Пользователя в Голосовании рашифрованный должны совпасть. Кроме того, в Специальном Поле есть еще и рашифрованыый Логин пользователя. Если окажется, что в Специальном Поле другое Числовое Представление Варианта Ответа, то прав пользователь. Его голос изменили. Если Числовые Представления Варианта Ответа совпали, то пользователь врет.


ameten, вы извините, но ваша терминология меня поражает. Термина "Расподписываем" не существует. Вы первый его ввели. Можно "подписать" какие-то данные. Можно "проверить подпись" имея ее и открытые данные, которые были подписаны. Можно что-то "зашифровать", можно что-то "расшифровать".

Крайне тяжело понять ваши мысли когда вы их описываете непоследовательно и в своих терминах, которые заранее не объясняете.

Только сейчас заметил фразу "Пользователь раскрывает свой закрытый ключ". Почитайте то что я написал вот в этой теме: http://облачная-демократия.рф/forum/viewtopic.php?f=6&t=29. Средства для использования ЭЦП проектируются так что даже сам пользователь не может "раскрыть свой закрытый ключь".

ameten, давайте вы, все-таки, сначала изучите тему ЭЦП, шифрования и расшифровки и потом изложите свою идею в общепринятой терминологии с общепринятыми способами работы с ЭЦП и шифрованием.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 июл 2011, 00:16 
Не в сети

Зарегистрирован: 28 июн 2011, 20:07
Сообщения: 150
Андрей писал(а):
ameten писал(а):
Андрей писал(а):
В общем-то, такой вариант относительно корректен и, на самом деле, не отличается от моего.


Отличается. Если я правильно понял ваш вариант, то информации, которая будет доступна внутри системы, является достаточной для раскрытия личности пользоватля. Пусть только системным администраторам системы, но он смогут узнать и личность пользователя, и его выбор. У меня же даже человек со всеми правами доступа к данным не может узнать одновременно выбор пользователя и его личность.

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


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


Еще ваша цитата по вашей схеме. Взята отсюда: http://xn----7sbabbvhzqeqhjj5a7a4euhk.xn--p1ai/forum/viewtopic.php?f=3&t=22&start=30.

Андрей писал(а):
Подписанные результат голосования не будет доступен публично. Он исключительно для внутреннего пользования и для случаев что-бы доказать пользователю что он проголосовал именно так, а не иначе.


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

Андрей писал(а):
Что-же касается подробного описание - оно есть на форуме. Если не сможете найти - попробую найти сам и дам вам ссылку.


Думаю, я нашел наиболее полное описание вашей схемы здесь: http://xn----7sbabbvhzqeqhjj5a7a4euhk.xn--p1ai/forum/viewtopic.php?f=3&t=22&start=30. Если нет, подскажите, где читать.

Андрей писал(а):
В том смысле что не более корректный и не менее корректный чем мой вариант.


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

Андрей писал(а):
ameten, вы извините, но ваша терминология меня поражает. Термина "Расподписываем" не существует. Вы первый его ввели. Можно "подписать" какие-то данные. Можно "проверить подпись" имея ее и открытые данные, которые были подписаны. Можно что-то "зашифровать", можно что-то "расшифровать".


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

Андрей писал(а):
Только сейчас заметил фразу "Пользователь раскрывает свой закрытый ключ". Почитайте то что я написал вот в этой теме: http://облачная-демократия.рф/forum/viewtopic.php?f=6&t=29. Средства для использования ЭЦП проектируются так что даже сам пользователь не может "раскрыть свой закрытый ключь".


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

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

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

Андрей писал(а):
ameten, давайте вы, все-таки, сначала изучите тему ЭЦП, шифрования и расшифровки и потом изложите свою идею в общепринятой терминологии с общепринятыми способами работы с ЭЦП и шифрованием.


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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB