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

7.2. Протокол голосования с двумя центральными комиссиями.

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

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

N1,…,Nn – уникальные регистрационные номера участников;

I1,…,In – уникальные случайные идентификационные номера участников;

K11,….,K1n – открытые ключи участников;

K21,….,K2n – секретные ключи участников;

T1 – центральное управление регистрации;

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

K1T – открытый ключ T2, K2T – секретный ключ T2;

Е – алгоритм шифрования, D – алгоритм расшифрования.

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

  1. AjT1 (j=1,…,n): запрос на выдачу регистрационного номера;

  2. T1 Aj (j=1,…,n): Mj=EK1j(Nj), (Т1 сохраняет все Nj);

  3. T1T2: EK1T (N1,…,Nn);

  4. Aj (j=1,…,n): расшифровывает Mj, генерирует Ij и создает сообщение Bj=(Ij, Nj, o1,…,on), где o1,…,on - результат голосования участника;

  5. AjT2 (j=1,…,n): Сj=EK1T(Bj);

  6. T2: расшифровывает Cj и проверяет регистрационные номера по списку, полученному от T1 на этапе 3. Если регистрационный номер есть в списке T2, вычеркивает его (чтобы избежать повторного голосования), добавляет идентификационный номер к списку тех, кто проголосовал за определенного кандидата, и прибавляет единичку к соотвествующему итоговому числу.

  7. После того, как все бюллетени будут получены, T2 публикует результаты вместе со списками, содержащими идентификационные номера и соотвествующие бюллетени.

Избиратели могут проверить, учтен ли их голос. Этот протокол беззащитен против сговора ЦУР и ЦИК.

Задание к лабораторной работе №7: «Электронные выборы».

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

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

Для вариантов 1 и 2 маскировка сообщений происходит аналогичным образом, как в протоколе честной раздачи карт на основе шифра Шамира. Использовать слепую подпись Шаума.

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

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

Во всех вариантах использовать алгоритм шифрования с открытым ключом, реализованный ранее. Сообщения участников состоят из вариантов ответа «да»/«нет», которые соответствуют двум различным числам, ответ участника выбирается случайным образом. Использовать класс больших чисел, разработанный ранее.

Раздел 8. Управление ключами.

8.1. Протоколы с использованием симметричного шифрования.

Для всех них введем общие параметры:

А, B – абоненты.

T – центр доверия.

EA, EB – шифрование мастер ключами A и B соответственно.

K – секретный сеансовый ключ.

I – порядковый номер секретного сеансового ключа.

L – время жизни секретного сеансового ключа.

TA, TB - метки времени, созданные A и B.

RA, RB – случайные числа, выбранные A и B соответственно.

Конкатенацию чисел X и Y будем обозначать как X, Y. Необязательные параметры обозначим «звездочкой»: X*.

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

Протокол Yahalom.

A→B: A, RA;

B→T: B, EB(A, RA, RB);

T→A: EA(B, K, RA, RB), EB(A, K);

A→B: EB(A,K), G=EK(RB).

В: проверяет, что DK(G)=RB, если проверка прошла успешно, B принимает ключ K.

Протокол Нидхема-Шредера.

AT: A, B, RA;

T→A: EA(RA, B, K, EB(K,A));

A→B: EB(K, A);

B→A: EK(RB);

AB:EK(RB-1).

Протокол Отвея-Рииса.

A→B: I, A, B, EA(RA, I, A, B);

B→T: I, A, B, EA(RA, I, A, B), EB(RB, I, A, B);

T→B: I, EA(K, RA), EB(K, RB);

BA: I, EA(K, RA).