Вопрос по криптографическим протоколам
Mar. 28th, 2012 05:34 pm![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Модельная ситуация.
Пусть есть, ну, скажем, газета, издаваемая в электронном виде по подписке. Есть множество зарегистрированных Подписчиков. Персональные данные подписчиков известны только Издателю, но, скажем, юзернеймы подписчиков публичны.
Издательство публикует статью и предоставляет право каждому Подписчику написать к статье публичный анонимный комментарий без цензуры, но только один. При этом ни администрация, ни подписчики, не должны знать, кто написал какой комментарий.
Нужно, чтобы каждый Подписчик мог проверить, что:
1. Каждый подписчик, действительно, написал не более 1 комментария.
2. Все анонимные комментарии принадлежат Подписчикам.
3. Никакие комментарии не были изъяты или подменены администрацией.
Условия 2, 3) можно и ослабить: каждый Подписчик, если что, может легко доказать, что именно его комментарий был изъят или подменён. Желательно, не деанонимизируясь.
Ещё очень желательное условие: чтобы Подписчику не требовалось при этом пользоваться личными ключами и/или генерировать одноразовые ключи.
Пусть есть, ну, скажем, газета, издаваемая в электронном виде по подписке. Есть множество зарегистрированных Подписчиков. Персональные данные подписчиков известны только Издателю, но, скажем, юзернеймы подписчиков публичны.
Издательство публикует статью и предоставляет право каждому Подписчику написать к статье публичный анонимный комментарий без цензуры, но только один. При этом ни администрация, ни подписчики, не должны знать, кто написал какой комментарий.
Нужно, чтобы каждый Подписчик мог проверить, что:
1. Каждый подписчик, действительно, написал не более 1 комментария.
2. Все анонимные комментарии принадлежат Подписчикам.
3. Никакие комментарии не были изъяты или подменены администрацией.
Условия 2, 3) можно и ослабить: каждый Подписчик, если что, может легко доказать, что именно его комментарий был изъят или подменён. Желательно, не деанонимизируясь.
Ещё очень желательное условие: чтобы Подписчику не требовалось при этом пользоваться личными ключами и/или генерировать одноразовые ключи.
no subject
Date: 2012-03-30 06:59 am (UTC)Упс, тут небольшая дырка: если коммент единственный, то можно вычислить, кто его оставил, и анонимность нарушается. Нужно разделить логины "подписчика" и "комментатора", но так, чтобы сохранить единственность обоих, чтобы второй был безличным, и чтобы из второго нельзя было вычислить первый.
Схема создания логина комментатора из логина подписчика аналогична первой, только работает в обратную сторону:
1) Подписчик хочет участвовать в комментировании, поэтому он жмёт на сайте Издателя кнопку "Хочу иметь возможность комментировать",
2) Издатель выдаёт ему одноразовый "токен на оформление статуса комментатора",
3) Подписчик идёт с этим токеном к Авторизатору и тот создаёт "логин комментатора". Токен уничтожается. Созданный логин используется для написания комментов согласно процедуре в предыдущем комменте.
Авторизатор не будет знать, кто к нему пришёл и не сможет сохранить личные даные Подписчика, т.к. токен обезличен. Но так как токен подписан Издателем, то можно верить, что это Подписчик, а не кто-то левый.
Издатель не будет знать, кто комментирует его статьи, потому что этого не знает Авторизатор, выдающий одноразовые же токены на комментирование. Но вся процедура гарантирует, что комментируют только подписчики, и что каждый из них сможет комментировать лишь однажды.