Неопровержимая подпись

редактировать

Неоспоримая подпись - это схема цифровой подписи, которая позволяет подписавшему быть избирательным кому разрешено проверять подписи. Схема добавляет явный отказ от подписи, предотвращая последующий отказ подписывающей стороны проверить подпись путем бездействия; ситуация, которая обесценила бы подпись в глазах проверяющего. Он был изобретен Дэвидом Чаумом и Хансом ван Антверпеном в 1989 году.

Содержание
  • 1 Обзор
  • 2 Протокол с нулевым разглашением
    • 2.1 Подписание сообщения
    • 2.2 Подтверждение (т. Е. подтверждение) протокол
    • 2.3 Протокол отклонения
  • 3 См. также
  • 4 Ссылки
Обзор

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

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

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

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

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

Протокол с нулевым разглашением

Следующий протокол был предложен Дэвидом Чаумом.

. Выбрана группа G, в которой задача дискретного логарифмирования является трудноразрешимый, и все операции в схеме происходят в этой группе. Обычно это будет конечная циклическая группа порядка p, содержащаяся в Z/nZ, где p является большим простым числом ; эта группа оснащена групповой операцией целочисленного умножения по модулю n. Выбирается произвольный примитивный элемент (или генератор), g, группы G; вычисленные степени g затем объединяются, подчиняясь фиксированным аксиомам.

Алиса генерирует пару ключей, случайным образом выбирает закрытый ключ x, а затем выводит и публикует открытый ключ y = g.

Подписание сообщения

  1. Алиса подписывает сообщение m, вычисляя и публикуя подпись z = m.

Протокол подтверждения (т. Е. Признания)

Боб хочет проверить подпись, z, из m Алисой под ключом y.

  1. Боб выбирает два случайных числа: a и b и использует их, чтобы скрыть сообщение, посылая Алисе:
    c = mg.
  2. Алиса выбирает случайное число q и использует его, чтобы ослепить, c, а затем подписав это, используя свой закрытый ключ x, отправив Бобу:
    s1= cg и
    s2= s 1.
    Обратите внимание, что
    s1= (cg) = (mg) g = (m) (g) = zy.
  3. Боб показывает a и b.
  4. Алиса проверяет, что a и b являются правильными слепыми значениями, а затем, если да, показывает q. Выявление этих блайндов делает обмен нулевым.
  5. Боб проверяет s 1 = cg, доказывая, что q не было выбрано нечестно, и
    s2= zy,
    доказывая z - действительная подпись, выданная ключом Алисы. Обратите внимание, что
    zy = (m) (g).

Алиса может обмануть на шаге 2, пытаясь случайным образом угадать s 2.

Протокол отклонения

Алиса хочет убедить Боба, что z не является действительной подписью m под ключом g; т.е. z ≠ m. Алиса и Боб согласовали целое число k, которое определяет вычислительную нагрузку на Алису и вероятность того, что она преуспеет случайно.

  1. Боб выбирает случайные значения, s ∈ {0, 1,..., k} и a, и отправляет:
    v1= mg и
    v2= zy,
    , где возведение в степень с помощью a используется для скрытия отправленных значений. Обратите внимание, что
    v2= zy = (m) (g) = v 1.
  2. Алиса, используя свой закрытый ключ, вычисляет v 1, а затем частное,
    v1v2= (mg) (zg) = mz = (mz).
    Таким образом, v 1v2= 1, если только z ≠ m.
  3. Алиса затем проверяет v 1v2на равенство со значениями:
    (mz) для i ∈ {0, 1,…, k};
    которые вычисляются путем многократного умножения mz (а не возведения в степень для каждого i). Если проверка проходит успешно, Алиса предполагает, что релевантное i является s; в противном случае она предполагает случайное значение. Где z = m, (mz) = v 1v2= 1 для всех i, s не подлежит восстановлению.
  4. Алиса фиксируется на i: она выбирает случайное r и отправляет хэш (r, i) Бобу.
  5. Боб показывает a.
  6. Алиса подтверждает, что a является правильным слепым (т. Е. С его помощью можно сгенерировать v 1 и v 2), то, если это так, обнаруживает r. Выявление этих блайндов делает обмен нулевым знанием.
  7. Боб проверяет hash (r, i) = hash (r, s), доказывая, что Алиса знает s, следовательно, z ≠ m.

Если Алиса пытается обмануть шаг 3 путем случайного угадывания s, вероятность успеха равна 1 / (k + 1). Итак, если k = 1023 и протокол повторяется десять раз, ее шансы составляют от 1 до 2.

См. Также
Ссылки
Последняя правка сделана 2021-06-20 10:39:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте