Подпись Нюберг — Руэппеля

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Подпись Нюберга — Руэппеля»)
Перейти к навигации Перейти к поиску

Подпись Нюберг — Руэппеля (англ. Nyberg-Rueppel Signature Scheme) — схема электронной подписи с использованием открытого ключа, основанная на задаче дискретного логарифмирования в конечном поле. Алгоритм не может использоваться для шифрования (в отличие от RSA и схемы Эль-Гамаля). Подпись создается секретно, но может быть публично проверена. Это значит, что только один субъект может создать подпись сообщения, но любой может проверить её корректность. Схема была предложена Кайсой Нюберг  (англ.) и Райнером Руэппелем в 1993 году на первой конференции ACM (англ. 1st ACM conference on Computer and communications security)[1] как модификация DSA[2][3].

История[править | править код]

В 1993 году Кайса Нюберг и Райнер Руэппель представили новую схему подписи, основанную на тех же принципах, что и DSA. Основное отличие заключается в том, что новая схема обеспечивает восстановление сообщений. Но в отличие от RSA, преобразования подписи и восстановления не коммутируют. Следовательно, новая схема не может быть использована для шифрования. Преимуществами восстановления сообщений являются: приложения без хэш-функции, меньшая пропускная способность для подписей небольших сообщений, прямое использование в других схемах, таких как системы открытого ключа на основе идентификации или протоколы согласования ключей[4].

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

Использование алгоритма[править | править код]

Схема подписи с восстановлением сообщения подразумевает собой процедуру, когда сообщение восстанавливается после проверки подписи. Иными словами, пусть имеются два пользователя, Алиса и Боб, и незащищенный канал связи между ними. Пользователь Алиса подписывает открытое сообщение секретным ключом, а полученную подпись пересылает пользователю Бобу, который в свою очередь с помощью открытого ключа проверяет подлинность подписи и восстанавливает сообщение. При положительном результате проверки, Боб убеждается в целостности сообщения, в его оригинальности (то есть в том, что сообщение было послано именно пользователем Алисой), а также лишается возможности утверждать, что Алиса не посылала это сообщение. Важно, что только Алиса способна подписать своё сообщение, потому что только она знает свой секретный ключ, и то, что её подпись может быть проверена любым пользователем, так как для этого нужен лишь открытый ключ[5].

Параметры схемы цифровой подписи[править | править код]

Для построения системы цифровой подписи и генерации ключей необходимо[2][6][7]:

  1. Выбрать открытую функцию избыточности , которая преобразует фактическое сообщение в данные, которые затем подписываются. Это похоже на хеш-функцию в схемах подписи с приложением, но в отличие от них, функция избыточности должны быть легко обратима.
  2. Выбрать большое простое число .
  3. Выбрать большое простое число , такое, что делится на .
  4. Сгенерировать случайное число и вычислить . Если , то искать другое случайное , пока будет не равным , что обеспечит выполнение условия

Открытый и секретный ключи[править | править код]

  1. Секретный ключ представляет собой число
  2. Открытый ключ вычисляется по формуле

Открытыми параметрами являются . Закрытый параметр — . Ключевая пара [2][6][7].

Вычисление ключей[править | править код]

Каждый пользователь создает свой открытый ключ и ему соответствующий секретный ключ. Каждый пользователь должен выполнить следующее:[8]

  1. Выбрать простые числа и , для которых делит .
  2. Выбрать генератора для циклической подгруппы порядка в группе.

Для этого пользователь должен выполнить следующее:

  1. Выбрать элемент , и найти .
  2. Если , то перейти к шагу 1 с другим .

Продолжить действия в соответствии с шагами:

  1. Выбрать произвольное число ,
  2. Вычислить
  3. Открытый ключ адресата есть (Р, Q, G, Y). Секретный ключ пользователя есть число H.

Вычисление подписи[править | править код]

Пользуясь своим секретным ключом, пользователь Алиса подписывает бинарное сообщение m. Пользователь Алиса должна выполнить следующее:[8]

  1. Вычислить .
  2. Выбрать случайное секретное целое , и вычислить
  3. Вычислить .
  4. Вычислить .
  5. Подпись А под есть пара (, ).

Проверка подписи и вычисление сообщения[править | править код]

Пользуясь открытым ключом пользователя Алиса, адресат Боб может проверить подпись (e, s) пользователя Алиса и извлечь из подписи сообщение от Алисы. Пользователь Боб должен выполнить следующее:[8]

  1. Получить открытый ключ (Р, Q, G, Y) пользователя Алиса.
  2. Проверить, что . Если нет, то отклонить подпись.
  3. Проверить, что . Если нет, то отклонить подпись.
  4. Вычислить и .
  5. Проверить, что . Если нет, то отклонить подпись.
  6. Вычислить .

Схема алгоритма[править | править код]

Схема подписи Нюберга — Руэппеля
Схема подписи Нюберга — Руэппеля

Пример[править | править код]

Подпись сообщения[9]
  1. Выберем параметры схемы:
  2. Ключевая пара пусть выглядит как .
  3. Чтобы подписать сообщение , вычисляем временный ключ и .
  4. Пусть , тогда и

, .

Итого, пара чисел , то есть  — это подпись.

Проверка подписи и восстановление сообщения[9]
  1. Вычисляем . Следует заметить, что значение совпадает со значением .
  2. Вычисляем .
  3. Теперь нужно проверить, что представляется в виде для некоторого целого числа , и убедившись в этом, делаем заключение в корректности подписи.
  4. Восстанавливаем сообщение как решение уравнения .

Достоинства и недостатки[править | править код]

Схема подписи на тех же принципах, что и DSA, главное отличие заключается в том, что в схеме реализовано восстановление сообщения из подписи. В отличие от RSA, подпись и восстановление не коммутируют, следовательно, алгоритм не может быть использован для шифрования. Преимущества восстановления сообщения заключаются в том, что применение схемы осуществляется без использования хеш-функций, более короткая подпись на коротких сообщениях, возможность прямого применения в схемах на основе идентификационной системы с открытым ключом, где пользователь после регистрации в центре ключей может аутентифицировать себя любому другому пользователю без дальнейшего обращения в центр ключей, или в протоколах согласования ключа, которые устанавливают общий ключ между двумя сторонами на основе взаимной аутентификации[2][10][11].

Модифицированная подпись Нюберга-Руэппеля[править | править код]

Модификация сигнатуры Нюберга-Руэппеля позволяет избежать трудностей проектирования функции избыточности за счет отказа от свойства восстановления сообщений. Её производительность немного хуже, чем у Elgamal, который аналогично не обеспечивает восстановление сообщений, но более эффективен, чем двойные подписи Нюберга-Руэппеля, которые доказуемо безопасны в той же модели. Хотя двойная подпись Нюберга-Руэппеля действительно обеспечивает восстановление сообщений, для этого по-прежнему требуется передача четырёх значений подписи, в то время как для модифицированной версии подписи требуется только три значения (включая сообщение). Поскольку смысл восстановления сообщений заключается в экономии полосы пропускания, эта схема достигает цели с помощью других средств[12].

Модифицированная подпись Нюберга-Руэппеля заменяет функцию избыточности дискретным возведением в степень. Более явно, пусть  — другой генератор той же группы порядка , такой, что дискретные логарифмы по отношению как к , так и к y неизвестны. Пространство сообщений − это целочисленный интервал , то есть равный в случае известного порядка или в случае неизвестного порядка. Если (, ) является подписью в сообщении , модифицированное уравнение проверки выглядит следующим образом:

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

Безопасность[править | править код]

В своей простой форме подпись Нюберга-Руэппеля уязвима для атак экзистенциальной подделки. А именно, можно произвольно выбрать и , и эти значения подписывают уникальное сообщение, которое получается путем применения алгоритма восстановления к (, ). Хотя это сообщение не может быть выбрано злоумышленником заранее, это все равно означает, что схема подписи небезопасна.

Типичным решением проблемы такого типа является использование функции резервирования. Пусть  — эффективно вычислимая взаимно однозначная функция от {} до , которая является разреженной, то есть набор изображений R соответствует небольшой доле всех значений в диапазоне. При заданном в изображении существует эффективный алгоритм вычисления [13].

Модифицированная версия схемы подписи при заданном m вычисляет , а затем подписывает m' в соответствии с простой схемой Нюберга-Руэппеля. Чтобы восстановить подписанное сообщение, верификатор сначала восстанавливает в соответствии с механизмом восстановления простой подписи Нюберга-Руэппеля, а затем фактическое сообщение как . Безопасность модифицированной версии зависит от сложности выбора значений и таким образом, чтобы выходные данные алгоритма восстановления были в виде . На практике разработка функций резервирования, обеспечивающих надлежащую безопасность, является деликатной задачей.

Кольцевая подпись версии Нюберга-Руэппеля[править | править код]

Для подписи сообщения при наличии секретного ключа , и открытых ключах всех участников кольца — , подпись вычисляется следующим образом[14]:

  1. Вычислить как симметричный ключ : .
  2. Выбрать значение инициализации равномерно случайным образом из .
  3. Выбирать случайное () равномерно и независимо от и вычислить: .
  4. Решить следующее кольцевое уравнение для :
  5. Использовать секретный ключ , чтобы инвертировать на для получения ().
  6. Подпись в сообщении m определяется как -запись: .
  7. Проверить подпись .
  8. В сообщении подпись будет принята верификатором тогда и только тогда, когда .

См. также[править | править код]

Примечания[править | править код]

  1. ACM Conference on Computer and Communications Security (CCS). Дата обращения: 9 декабря 2014. Архивировано 10 февраля 2019 года.
  2. 1 2 3 4 Nyberg, K., Rueppel, R. A., 1993.
  3. Elgamal, 1985.
  4. Nyberg, K., Rueppel R. A. A new signature scheme based on the DSA giving message recovery // 1st ACM Conference on Computer and Communications Security. — 1993.
  5. Смарт, 2005, p. 261.
  6. 1 2 Nyberg, K., Rueppel, R. A., 1996.
  7. 1 2 Смарт, 2005, с. 278.
  8. 1 2 3 Авдошин С.М. Дискретная математика. Модулярная алгебра, криптография, кодирование. — 2017. — С. 213.
  9. 1 2 Смарт, 2005, с. 279.
  10. Смарт, 2005, с. 271.
  11. Бауер, 2007, с. 228.
  12. Ateniese G and Breno de Medeiros. A Provably Secure Nyberg-Rueppel Signature Variant with Applications. // IACR Cryptol. ePrint Arch.. — 2004. — С. 6.
  13. Ateniese, G and Breno de Medeiros. A Provably Secure Nyberg-Rueppel Signature Variant with Applications. // IACR Cryptol. ePrint Arch.. — 2004. — С. 4.
  14. Gao, Cz., Yao, Za., Li, L. A Ring Signature Scheme Based on the Nyberg-Rueppel Signature Scheme. // Applied Cryptography and Network Security. ACNS. — 2003.

Литература[править | править код]

  • Авдошин С. М. Дискретная математика. Модулярная алгебра, криптография, кодирование. — М.: ДМК Пресс, 2017. — 352 с.
  • Бауер Ф. Расшифрованные секреты. Методы и принципы криптологии. — Мир, 2007. — 550 с.
  • Смарт, Н. Криптография. — Техносфера, 2005. — 528 с.
  • Ateniese, G and Breno de Medeiros. «A Provably Secure Nyberg-Rueppel Signature Variant with Applications.» IACR Cryptol. ePrint Arch. 2004 (2004): 93.
  • Elgamal, T. A public key cryptosystem and a signature scheme based on discrete logarithms // Advances in Cryptology : книга. — 1985.
  • Gao, Cz., Yao, Za., Li, L. (2003). A Ring Signature Scheme Based on the Nyberg-Rueppel Signature Scheme. In: Zhou, J., Yung, M., Han, Y. (eds) Applied Cryptography and Network Security. ACNS 2003. Lecture Notes in Computer Science, vol 2846. Springer, Berlin, Heidelberg.
  • Nyberg, K., Rueppel, R. A. A new signature scheme based on the DSA giving message recovery // 1st ACM Conference on Computer and Communications Security, Fairfax, Virginia (Nov. 3–5, 1993). — 1993.
  • Nyberg, K., Rueppel, R. A. Message Recovery for Signature Schemes Based on the Discrete Logarithm Problem // Designs, Codes and Cryptography : журнал. — 1996. — № Volume 7, Issue 1-2. — С. 61—81.