Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ниссенбаум_Поляков_КПЛП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
622.59 Кб
Скачать

6.2. Схема Шаума с банкнотами различного достоинства.

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

В этой схеме отсутствует «копилка», а значит, используется только один модуль n.

Банк может выдавать банкноты различного достоинства. А именно, пусть m, как и выше, соответствует максимальному достоинству банкноты и g\m. Тогда банк может выдать банкноту, достоинство которой соответствует числу g. Заметим, что в таком случае банк может выдавать банкноты любого номинала, не превышающего максимальный.

Если d соответствует сумме платежа, где d\g, то c=g/d  соответствует «сдаче». Причем в силу того, что c\m, «сдача» тоже является полноценной банкнотой и может использоваться в дальнейших платежах.

Транзакция снятия со счета выполняется так же, как в предыдущей схеме.

В транзакции платежа покупатель вычисляет v=f(N1) mod n и посылает продавцу, а тот банку, значения (N, f(N)1/d mod n), c, vsc mod n.

Банк возвращает покупателю через продавца значение v1/csf(f(N)1/с)mod n.

Благодаря тому, что v=f(N1), «сдача» становится такой же электронной банкнотой, как и сумма, снятая со счета. Номер банкноты, выданной в качестве сдачи, будет N1, а сама сданная банкнота будет иметь вид (N1, f(N1)1/c mod n)

Множитель f(f(N)1/c) в значении, возвращаемом банком, необходим для того, чтобы покупатель мог вычислить f(N1)1/c=v1/с только тогда, когда он знает значение f(N)1/c.

Транзакция депозита в данной схеме ничем не отличается (с криптографической точки зрения) от транзакции платежа.

Задания к лабораторной работе №6: «Электронная монета».

Вариант 1. Реализовать схему Шаума с монетами одинакового достоинства и сдачей. В протоколе 3 стороны - продавец, покупатель и банк. Размер ключей 128 бит (64-битовые простые числа). В схеме должны быть протоколы для трех транзакций: снятие со счета, депозит, платеж.

Вариант 2. Реализовать схему Шаума с монетами различного достоинства и сдачей. В протоколе 3 стороны - продавец, покупатель и банк. Размер ключей 128 бит (64-битовые простые числа). В схеме должны быть протоколы для трех транзакций: снятие со счета, депозит, платеж.

Во всех вариантах сначала происходит аутентификация сторон.

Раздел 7. Электронные выборы.

Идеальный протокол для проведения электронных выборов должен обладать, по меньшей мере, следующими свойствами:

  1. голосовать могут только те, кто имеет на это право;

  2. каждый может голосовать не более одного раза;

  3. нельзя узнать, за кого проголосовал конкретный избиратель;

  4. нельзя проголосовать вместо другого;

  5. нельзя тайно изменить чей-то голос;

  6. можно проверить, что ваш голос учтен при подведении итогов.

Кроме того может потребоваться следующее свойство:

  1. каждый знает кто голосовал, а кто нет.

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

7.1. Протокол голосования со слепыми подписями.

Параметры протокола:

A1,…,An – участники;

T – центральная избирательная комиссия;

p, q – большие простые числа, известные только Т;

n=pq – модуль RSA, открытый параметр.

Для каждого участника Ai определяются секретные ключи С1i, C2i, …, Cki и F1i, F2i, …, Fki  Z*n, где Сij выбираются случайным образом, а Fij вычисляются как Fij=Cij-1 (mod n);

Пара (e,d): e=d-1 (mod (n)) – ключи T, причем e – секретный, а d – открытый ключ.

Протокол голосования состоит в выполнении следующих шагов:

  1. Ai: формирует k наборов сообщений вида:

B1=(M11, M21, …, Ms1),

B2=(M12, M22, …, Ms2),

…,

Bk=(M1k, M2k, …, Msk).

Каждый набор содержит все возможные варианты ответов на опрос в произвольном порядке. Например, если в бюллетене 2 вопроса, предполагающие ответ 1 («да») или 0 («нет»), то два различных набора могут выглядеть так: B1=(11, 10, 01, 00), B2=(10, 00, 11, 01). Порядок сообщений в наборах должен быть произвольным, чтобы по местоположению сообщения в наборе нельзя было догадаться о его содержимом.

  1. Ai: накладывает на каждый набор свой отдельный затемняющий множитель:

L1=(H11=C1d M11 (mod n), …, Hs1=C1d Ms1 (mod n)),

L2=(H12=C2d M12 (mod n), …, Hs2=C2d Ms2 (mod n)),

…,

Lk=(H1k=Ckd M1k(mod n), …, Hs1=Ckd Msk (mod n));

  1. AiT: L1, L2, …, Lk;

  2. TAi: j{1, …, k} – номер сообщения, который T хочет подписать;

  3. AiT: F1, …, Fj-1, Fj+1, …,Fk – раскрывает маскирующие множители, кроме j-го;

  4. T: снимает маскирующие множители со всех сообщений, кроме j-го и проверяет правильность оформления этих сообщений;

  5. TAi: Rj=(Qij=Hije (mod n),….,Qsj=Hsje (mod n));

  6. Ai: снимает с Rj маскирующий множитель:

(Sij=FjQ1j (mod n),…, Ssj=FjQsj (mod n));

  1. Ai: выбирает из S1j,…,Ssj ту подпись Slj, которая соответствует нужному варианту голосования Mlj;

  2. AiT: (Mlj, Slj) – сообщение в открытом виде с подписью;

  3. T: проверяет, что SljdMlj (mod n), если верно то учитывает голос.

Данный протокол обладает всеми свойствами идеального протокола, кроме свойства 3.