GHR

GHR

GHR (буквенная аббревиатура от фамилий Gennaro, Halevi и Rabin) — схема цифровой подписи с открытым ключом.

Содержание

История.

В Праге в 1999 году на международной конференции по теории и применению криптографических методов (International Conference on the Theory and Application of Cryptographic Techniques) была представлена статья Росарио Дженнаро, Шай Халеви и Таль Рабин «Secure Hash-and-Sign Signatures Without the Random Oracle», в которой они описали схему цифровой подписи с доказуемой точностью (позже названную GHR-схемой подписи). Доказательство её стойкости, которое основывается на сильных предположениях RSA можно получить, не привлекая модель случайного оракула.

(Задача RSA) Пусть дан модуль алгоритма RSA n = р*q , экспонента Е взаимно простая с φ(N) и случайное целое число С (C<n). Требуется найти целое число m (m<n), для которого выполняется следующее равенство. m^E=С mod n

Сильное предположение RSA состоит в трудноразрешимости следующей задачи:

(Слабая задача RSA) Пусть дан модуль n = р*q алгоритма RSA и случайное целое число C (C<n). Требуется найти целое число е > 1 и целое число m (m<n), для которых выполняется следующее равенство. m^ e=С mod n

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

Описание алгоритма.

Введение. GHR схема напоминает стандартный алгоритм RSA подписи, но с некоторым изменением. Отличие состоит в том, что в алгоритме RSA сообщение представленное двоичным числом возводиться в некоторую заранее выбранную степень по модулю n. В GHR-схеме ищется решение уравнения ∑^H(M)=S mod n (∑-искомая неизвестная, S-заранее выбранное число, H(M)-значение хеш-функции от сообщения).

Пояснение.

RSA подпись

M — сообщение

e — открытая экспонента (общественная экспонента, фиксированное значение)

d — секретная экспонента (d*e mod φ(n) =1 φ(n) — функция Эйлера)

n — модуль RSA (n=p*q)

Пара (e, n) — открытый ключ

Пара (d, n) — секретный ключ

Алгоритм подписи.

Формирование подписи σ = M^d mod n

Передача пары (M, σ)

Проверка подписи.

Прием пары (M, σ)

Проверка равенства M = σ^e mod n

GHR подпись

M — сообщение

экспонента H(M) (H — некоторая хеш-функция)

n — модуль RSA (n=p*q)

S — база (фиксированное значение)

Набор (S, H, n) — открытый ключ

Набор (S, p, q) — секретный ключ

Формирование подписи.

Σ^H(M) = S mod n (∑ — подпись на сообщение M). На данном этапе происходит вычисление ∑, что является вычислительно сложной задачей если n=p*q (p, q большие простые числа) и p, q не известны.

Передача пары (M, ∑)

Проверка подписи.

Прием пары (M, ∑)

Проверка равенства Σ^H(M) = S mod n


Построение алгоритма GHR подписи.

1) Формирование открытого ключа.

Открытым ключом является целое число n = p*q (n — модуль RSA), случайное целое S (S < n) и хеш-функция H.

Открытый ключ (n, S, H).

Секретный ключ (p, q, S).

2) Формирование подписи.

Чтобы подписать сообщение M открытым ключом (n, S), подписывающееся лицо сперва применяет хеш-функцию для вычисления значения e=H(M), а зетем использует полученное значение как экспоненту, то есть находит корень степени е из S по модулю n. Подпись на сообщение M представляет собой целое число ∑, такое что

∑^H(M)=S mod n.

3) Проверка подписи.

Для проверки подписи число ∑ возводится в степень H(M) и проверяется равенство ∑^H(M)=S mod n

Пояснение правила нахождения корня по модулю заданного числа.

a^b=s mod n

для того чтобы найти корень степени b из s по модулю n. Необходимо найти число r, такое что r*b = 1 mod φ(n), причём для существования числа r необходимо чтобы НОД(b,φ(n))=1.

a=s^r mod n


Требования и предположения.

В данной схеме p и q — простые либо квазипростые числа одинаковой длины, обладающие следующим дополнительным свойством: (p-1)/2, (q-1)/2 — простые числа. В частности такой выбор означает, что (p-1), (q-1) не имеют общих простых делителей отличных от 2, и что найти нечетное целое число не являющееся взаимно простым с φ(n) так же сложно, как и разложить n на простые множители. Это условие гарантирует, что нахождение корня степени е из S, при e=H(M), всегда возможно если наложить на хеш-функцию H соответствующее ограничение. Вывод хеш-функции H должен быть в виде нечетных целых чисел. Такую функцию легко построить, достаточно к значениям обычной хеш-функции, представленным в двоичном виде, приписывать дополнительный бит равный 1.

H*=H|1

Либо устанавливать младший бит хеш-функции H равным 1.

Комментарии.

1) Отметим что с подавляющей вероятностью экспонента e=H(M) будет взаимно проста с φ(n). Так как найти нечетное число не являющееся взаимно простым с φ(n) сложная задача.

2) Длина вывода хэш-функции имеет значение для эффективности системы. Если мы зададим выход хэш-функции как двоичное число длиной равной длине числа n в двоичной записи, то процесс генерации подписи будет занимать примерно в два раза больше времени чем в процессе стандартной RSA подписи (так как для подписи сначала необходимо вычислить e^(−1) mod (n), а затем возвести базу S в степень e^(-1)). Проверка подписи примерно равна времени полного возведения в степень по модулю n. Сокращение времени работы GHR-схемы может быть достигнута путем сокращения длины вывода для H. Однако для обеспечения необходимой безопасности вывод H должен быть достаточно длинным. В своей работе 1999 года Дженнаро, Халеви и Рабин опубликовали экспериментальные результаты свидетельствующие о том, что для получения эквивалентной безопасности 1024-разрядной RSA-схемы, размер вывода хеш-функции должен быть около 512 бит. Для такого значения вывода хеш-функции, процесс вычисления подписи будет примерно в 1,5 раза медленнее, чем для стандартной 1024-разрядной подписи RSA. Однако в своей работе «Security Analysis of the Gennaro-Halevi-Rabin Signature Scheme» (EUROCRYPT2000) Jean-Sebastien Coron и David Naccache показали, что существуют атаки требующие увеличить длину вывода хеш-функции до 1024 бит для обеспечения безопасности соответствующей 1024-разрядной RSA-схеме.


Возможные атаки.

Предположим, что активный противник намерен подписать сообщение M1, причем ему удалось найти такое сообщение М2, что H(M2) = Z*H(M1)

Допустим теперь, что этот нападающий использует алгоритм GHR c уже сформированным открытым ключом (n, S, H) для подписания сообщения М2. В результате нападающий получает подпись ∑2 на свое сообщение M2. (∑2^H(M2)=S mod n) В этой ситуации у нападающего появляется возможность подделать подпись на сообщение Ml, вычисляя

∑1=∑2^Z mod n

поскольку

∑1^H(M1) mod n = S mod n =∑2^H(M2) mod n = ∑2^(Z*H(M1)) mod n = (∑2^Z)^H(M1) mod n

Откуда получаем необходимое равенство

∑1=∑2^Z mod n

Решить данную проблему можно если наложить на хеш-функциб специальное ограничение — её результатом должны быть только простые числа. Это исключит возможность нахождения сообщения M2 такого, что H(M2) = Z*H(M1). Хэш-функции, значения которых - простые числа, могут быть спроектированы, однако на настоящее время они довольно слабо изучены .

Еще один вариант взлома это найти сообщение M2 такое, что H(M2) = H(M1)

В этом случае подпись на сообщение M1 очевидно равна подписи на сообщение M2.

Такой вариант исключают современные требования на криптографическую стойкость хеш-функций. Задача нахождения значения M2 такого, что H(M2) = H(M1), является вычислительно невозможной задачей.


Литература.

1) «Secure Hash-and-Sign Signatures Without the Random Oracle» Rosario Gennaro, Shai Halevi, Tal Rabin. Advances in Cryptology — EUROCRYPT 1999. http://www.springerlink.com/content/bryhef8g51vwbl10/fulltext.pdf

2) «Security Analysis of the Gennaro-Halevi-Rabin Signature Scheme» Jean-Sebastien Coron and David Naccache. Advances in Cryptology — EUROCRYPT2000. http://www.springerlink.com/content/wgm9b431d0fnfjah/fulltext.pdf

3) Мир программирования «Криптография» Н. Смарт. Техносфера, 2005. 439—443 стр. ISBN 5-94836-043-1.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "GHR" в других словарях:

  • GHR — may stand for: * Goover Howthe Ratings, a system, which involves an interview process. * Growth hormone receptor, a protein. * Guard Hussar Regiment, a regiment in the Royal Danish Army. * Gustav Heinrich Ralph von Koenigswald, a German… …   Wikipedia

  • GHR — Somatotropin Rezeptor Größe 620 Aminosäuren Struktur Membranrezeptor (Isoformen GHRfl, GHRtr, GHRd3) Isoformen …   Deutsch Wikipedia

  • GHR — I GHR,   Abkürzung für galvanische Hautreaktion. psychogalvanische Reaktion. II GHR,   Abkürzung für galvanische …   Universal-Lexikon

  • GHR — Growth Hormone Releaser (Medical » Physiology) …   Abbreviations dictionary

  • GHR — granulomatous hypersensitivity reaction; growth hormone receptor …   Medical dictionary

  • ghr — ISO 639 3 Code of Language ISO 639 2/B Code : ISO 639 2/T Code : ISO 639 1 Code : Scope : Individual Language Type : Living Language Name : Ghera …   Names of Languages ISO 639-3

  • GHR — abbr. Growth Hormone Receptor …   Dictionary of abbreviations

  • GHR — • granulomatous hypersensitivity reaction; • growth hormone receptor …   Dictionary of medical acronyms & abbreviations

  • GHR — abbr guaranteed homes ratings …   Marketing dictionary in english

  • (ghrē- :) ghrō- : ghrǝ- —     (ghrē :) ghrō : ghrǝ     English meaning: to grow, be green     Deutsche Übersetzung: “wachsen, grũnen”     Note: only Germanic (and slavisch?)     Material: Goth. gras n. “grass, herb”, O.Ice. O.S. gras, O.E. græs, gærs ds., O.H.G. gras,… …   Proto-Indo-European etymological dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»