Это не официальный сайт wikipedia.org 01.01.2023

NTRUSign — Википедия

NTRUSign, также известный как NTRU Signature Algorithm, является ключевым алгоритмом шифрования с открытым ключом цифровой подписи на основе схемы подписи GGH.

ИсторияПравить

Впервые алгоритм был представлен на сессии en:Asiacrypt 2001 года и опубликован в рецензируемой форме на конференции RSA 2003 года[1]. Издание 2003 года включало рекомендации параметров для уровня безопасности 80 бит. В следующей публикации 2005 года были пересмотрены рекомендации для уровня безопасности 80 бит, а также представлены параметры востребованных уровней безопасности 112, 128, 160, 192 и 256 бит и описаны алгоритмы для получения наборов параметров для любого желаемого уровня безопасности. NTRU Cryptosystems, Inc. подали заявку на патент на данный алгоритм.[когда?]

ОсобенностиПравить

NTRUSign включает в себя отображение сообщения для случайной точки в 2N-мерном пространстве, где N является одним из параметров NTRUSign, и решение проблемы нахождения ближайшего вектора в решётке, тесно связанной с решёткой NTRUEncrypt. Данная решётка обладает свойством: частный 2N-мерный базис для решётки можно описать с помощью 2-х векторов, каждый из которых состоит из N коэффициентов и базиса, который может быть определён отдельным N-размерным вектором. Это позволяет представлять открытые ключи в O ( N )   пространстве, а не O ( N 2 )  , как и в случае с другими схемами подписи на основе решёток. Операции занимают O ( N 2 )   времени, в отличие от O ( N 3 )   для криптографии на эллиптических кривых и RSA. Поэтому NTRUSign быстрее данных алгоритмов при низких уровнях безопасности и значительно быстрее при высоких уровнях безопасности.

NTRUSign находится в стадии рассмотрения по стандартизации рабочей группой IEEE P1363.

Описание алгоритмаПравить

Так же как и в NTRUEncrypt, в NTRUSign вычисления производятся в кольце R = Z q [ X ] / ( X N 1 )  , где умножение „  “ является циклической сверткой по модулю q  . Произведением двух полиномов f = [ f 0 , f 1 , , f N 1 ]   и g = [ g 0 , g 1 , , g N 1 ]   является f g = i + j k mod N f i g j mod q  .


За основу NTRUSign могут быть взяты стандартные или транспонированные решетки. Основное преимущество транспонированной решетки заключается в том, что коэффициенты многочлена принадлежат {-1,0,1}. Это увеличивает скорость умножения.

Генерация ключаПравить

  • Входные данные: целые N , q , d f , d g , B > 0  , строка t = s t a n d a r d   или t r a n s p o s e  .
  • Генерация B   закрытых решёточных базисов и один открытый решеточный базис
Установить i = B  . До тех пор, пока i > 0  :
  1. Произвольно выбрать f  , g   ∈ R  , взаимно простые с d f  , d g   соответственно.
  2. Найти малые F , G R   такие, что f G F g = q  .
  3. Если t = s t a n d a r d  , установить f i = f   и f i = F  .
Если t = t r a n s p o s e  , установить f i = f   и f i = g  .
Вычислить h i = f i 1 f i m o d q  . Установить i = i 1  .
  • Публичный ключ: входные параметры и h = h o = f 0 1 f 0 mod q  .
  • Закрытый ключ: { f i , f i , h i }   для i = 0... B  .

ПодписьПравить

Подпись требует хеш-функцию H : D R   на цифровом пространстве документа D  .

  • Входные данные: цифровой документ D D   и закрытый ключ { f i , f i , h i }   для i = 0... B  .
  • Установить r = 0  .
  • Установить s = 0   и i = B  . Представить r   как строку бит. Установить m o = H ( D | | r )  , где | |   обозначает конкатенацию. Установить m = m o  .
  1. { f i , f i , h i }   - i  -е основание
  2. Вычислить x = 1 q m i f i  
  3. Вычислить y = 1 q m i f i  
  4. s i = x f + y f  
  5. m i = s i ( h i h i 1 ) mod q  
  6. Подпись: s = s + s i  

Проверка подписиПравить

Верификация требует такую же хеш-функцию H  , «нормирующую связь» N R   и норму полинома | | . | |  . Норма | | t | |   полинома t   определяется как inf 0 k < q | | t + k q | | z  , где | | r | | z = i = 0 N 1 r i 2 1 N i = 0 N r i   (где последнее - евклидова норма).

  • Входные данные: Подписанные данные ( D , r , s )   и публичный ключ h  .
  • Представить r как строку бит. Установить m = H ( D | | r )  .
  • Вычислить b = | | ( s , s h m mod g ) ) | |  .
  • подпись считается верной, если b < N  .

ЗамечаниеПравить

  • Рекомендуемые параметры ( N , q , d f , d g , B , t , N ) = ( 251 , 128 , 73 , 71 , 1 , t r a n s p o s e , 310 )  

ПримечанияПравить

  1. Jeffrey Hoffstein, Nick Howgrave-Graham, Jill Pipher, Joseph H. Silverman, William Whyte. NTRUSign: Digital Signatures Using the NTRU Lattice. Архивировано 30 января 2013 года.

СсылкиПравить