Jump to content

NTRUEncrypt

Криптосистема NTRUEncrypt с открытым ключом , также известная как алгоритм шифрования NTRU , представляет собой (ECC) NTRU решетчатую альтернативу RSA и криптографии на эллиптических кривых и основана на задаче о кратчайшем векторе в решетке (которая, как известно, не может быть взломана с помощью квантовые компьютеры ).

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

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

Родственным алгоритмом является NTRUSign алгоритм цифровой подписи .

В частности, операции NTRU основаны на объектах в кольце усеченного полинома. с умножением свертки и все многочлены в кольце имеют целые коэффициенты и степень не более N -1:

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

NTRU имеет три целочисленных параметра ( N , p , q ), где N — граница степени полинома, p называется малым модулем, а q называется большим модулем; предполагается, что N простое число , q всегда (намного) больше, чем p , а p и q простые взаимно . в открытом тексте Сообщения представляют собой полиномы по модулю p, но зашифрованные сообщения представляют собой полиномы по модулю q . Конкретно зашифрованный текст состоит из открытого текстового сообщения плюс случайно выбранного кратного открытого ключа, но сам открытый ключ можно рассматривать как кратное малому модулю p , что позволяет владельцу закрытого ключа извлекать открытый текст из зашифрованного текста. .

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

Криптосистема с открытым ключом NTRUEncrypt — относительно новая криптосистема.Первая версия системы, которая называлась просто NTRU, была разработана примерно в 1996 году тремя математиками ( Джеффри Хоффштейном , Джилл Пайфер и Джозефом Х. Сильверманом ). В 1996 году эти математики вместе с Дэниелом Лиманом основали компанию NTRU Cryptosystems, Inc. и получили патент [1] (теперь срок действия истек) в криптосистеме.

Последние десять лет люди работали над улучшением криптосистемы. С момента первой презентации криптосистемы в нее были внесены некоторые изменения, направленные на улучшение как производительности системы, так и ее безопасности. Большинство улучшений производительности были направлены на ускорение процесса. [ нужны дальнейшие объяснения ] До 2005 года можно найти литературу, описывающую ошибки дешифрования NTRUEncrypt. [ нужна ссылка ] Что касается безопасности, то начиная с первой версии NTRUEncrypt были введены новые параметры. [ нужна ссылка ] это кажется безопасным [ нужны разъяснения ] для всех в настоящее время [ указать ] известные атаки и разумное увеличение вычислительной мощности. [ нужны разъяснения ]

Теперь система полностью соответствует стандартам IEEE P1363 в соответствии со спецификациями решетчатой ​​криптографии с открытым ключом ( IEEE P1363.1 ).Из-за скорости криптосистемы с открытым ключом NTRUEncrypt (результаты сравнительного тестирования см. на http://bench.cr.yp.to ) и низкого использования памяти (см. ниже ). [ сомнительно обсудить ] , его можно использовать в таких приложениях, как мобильные устройства и смарт-карты .В апреле 2011 года NTRUEncrypt был принят в качестве стандарта X9.98 для использования в сфере финансовых услуг. [2]

Генерация открытого ключа [ править ]

Для отправки секретного сообщения от Алисы Бобу требуется создание открытого и закрытого ключей. Открытый ключ известен и Алисе, и Бобу, а закрытый ключ известен только Бобу. Чтобы сгенерировать пару ключей, необходимо использовать два полинома f и g степени не более и с коэффициентами в {-1,0,1}. Их можно рассматривать как представления классов вычетов многочленов по модулю в Р. ​Полином должно удовлетворять дополнительному требованию существования обратных значений по модулю q и модулю p (вычисленных с помощью алгоритма Евклида ), а это означает, что и должен держаться.Поэтому, когда выбранное f необратимо, Боб должен вернуться и попробовать другое f .

И f, и ) являются закрытым ключом Боба. Открытый ключ h генерируется путем вычисления количества

Пример :В этом примере параметры ( N , p , q ) будут иметь значения N = 11, p = 3 и q = 32, и, следовательно, полиномы f и g имеют степень не более 10. Параметры системы ( N , p , q ) известны всем. Полиномы выбираются случайным образом, поэтому предположим, что они представлены формулой

Используя алгоритм Евклида, обратное значение f по модулю p и по модулю q вычисляется соответственно.

При этом создается открытый ключ h (известный как Алисе, так и Бобу), вычисляющий произведение

Шифрование [ править ]

Алиса, желающая послать Бобу секретное сообщение, представляет свое сообщение в виде многочлена m с коэффициентами . В современных приложениях шифрования полином сообщения может быть переведен в двоичное или троичное представление.После создания полинома сообщения Алиса случайным образом выбирает полином r с небольшими коэффициентами (не ограничиваясь набором {-1,0,1}), который предназначен для скрытия сообщения.

С помощью открытого ключа Боба h зашифрованное сообщение e вычисляется :

Этот зашифрованный текст скрывает сообщения Алисы и может быть безопасно отправлен Бобу.

Пример :Предположим, что Алиса хочет отправить сообщение, которое можно записать в виде полинома.

и что случайно выбранное «ослепляющее значение» можно выразить как

Зашифрованный текст e , представляющий ее зашифрованное сообщение Бобу, будет выглядеть так:

Расшифровка [ править ]

Любой, кто знает r, мог бы вычислить сообщение m, вычислив e - rh ; поэтому r Алиса не должна раскрывать . Помимо общедоступной информации, Боб знает свой собственный закрытый ключ. Вот как он может получить m : Сначала он умножает зашифрованное сообщение e и часть своего секретного ключа f.

Переписав полиномы, это уравнение фактически представляет собой следующее вычисление:

Вместо того, чтобы выбирать коэффициенты a между 0 и q – 1, они выбираются в интервале [- q /2, q /2], чтобы предотвратить невозможность правильного восстановления исходного сообщения, поскольку Алиса выбирает координаты своего сообщения m в интервал [-p / 2, p /2]. Это означает, что все коэффициенты уже лежат в интервале [- q /2, q /2], поскольку все многочлены r , g , f и m и простое число p имеют коэффициенты, малые по сравнению с q . Это означает, что все коэффициенты остаются неизменными при уменьшении по модулю q и что исходное сообщение может быть восстановлено правильно.

Следующим шагом будет вычисление модулю по p :

потому что .

Зная , что Боб может использовать другую часть своего закрытого ключа восстановить сообщение Алисы путем умножения b и

потому что собственность требовалось для .

Пример : Зашифрованное сообщение e от Алисы Бобу умножается на полином f

где Боб использует интервал [- q /2, q /2] вместо интервала [0, q – 1] для коэффициентов полинома a, чтобы предотвратить неправильное восстановление исходного сообщения.

коэффициентов mod Уменьшение p приводит к

что равно .

На последнем этапе результат умножается на из закрытого ключа Боба, чтобы получить исходное сообщение m

Это действительно оригинальное сообщение, которое Алиса отправила Бобу!

Атаки [ править ]

С момента предложения NTRU было осуществлено несколько атак на криптосистему с открытым ключом NTRUEncrypt. Большинство атак направлены на полный взлом путем нахождения секретного ключа f вместо простого восстановления сообщения m .Если известно, что f имеет очень мало ненулевых коэффициентов, Ева может успешно провести атаку методом перебора , перепробовав все значения f . Когда Ева хочет узнать, является ли f ´ секретным ключом, она просто вычисляет . Если у него малые коэффициенты, это может быть секретный ключ f , и Ева может проверить, является ли секретным ключом, используя его для расшифровки сообщения, которое она зашифровала сама.Ева также могла бы попробовать значения g и проверить, имеет небольшие значения.

Можно провести атаку «встреча посередине» более мощную . Это может сократить время поиска на квадратный корень. Атака основана на свойстве, которое .

Ева хочет найти и такой, что и такие, что у них есть свойство

Если f имеет d единиц и N - d нулей, то Ева создает все возможные и в котором они оба имеют длину (например охватывает наименьшие коэффициенты f и самый высокий)с д /2 единицы. Затем она вычисляет для всех и упорядочивает их по ячейкам на основе первых k координат. После этого она все вычисляет и упорядочивает их по ячейкам не только на основе первых k координат, но и на основе того, что произойдет, если вы добавите 1 к первым k координатам. Затем вы проверяете корзины, в которых содержатся оба и и посмотреть, есть ли недвижимость держит.

Атака с уменьшением решетки — один из самых известных и наиболее практичных методов взлома NTRUEncrypt. В некотором смысле это можно сравнить с факторизацией модуля в RSA. Наиболее часто используемый алгоритм для атаки редукции решетки — алгоритм Ленстра-Ленстры-Ловаса .Поскольку открытый ключ h содержит как f, так и g, можно попытаться получить их из h . Однако найти секретный ключ слишком сложно, если параметры NTRUEncrypt выбраны достаточно безопасными. Атака сокращения решетки становится сложнее, если размерность решетки увеличивается, а кратчайший вектор становится длиннее.

Атака по выбранному зашифрованному тексту также является методом, который восстанавливает секретный ключ f и тем самым приводит к полному взлому. В этой атаке Ева пытается получить свое собственное сообщение из зашифрованного текста и тем самым пытается получить секретный ключ. В этой атаке Ева не взаимодействует с Бобом.

Как это работает :

Первая Ева создает зашифрованный текст такой, что и Когда Ева записывает шаги по расшифровке e (без фактического вычисления значений, поскольку она не знает f), она находит :

В котором такой, что

Пример :

Тогда К становится .

Уменьшение коэффициентов mod действительно уменьшает p коэффициенты . После умножения на , Ева находит:

Поскольку c было выбрано кратным p , m можно записать как

Это означает, что .

Теперь, если f и g имеют несколько коэффициентов, одинаковых при одних и тех же множителях, K имеет мало ненулевых коэффициентов и поэтому является малым. Пробуя разные значения K, злоумышленник может восстановить f .

Зашифровывая и дешифруя сообщение в соответствии с NTRUEncrypt, злоумышленник может проверить, является ли функция f правильным секретным ключом или нет.

Улучшения безопасности и производительности [ править ]

Используя последние предложенные параметры (см. ниже ), криптосистема с открытым ключом NTRUEncrypt защищена от большинства атак. Однако борьба между производительностью и безопасностью продолжается. Трудно повысить безопасность без снижения скорости, и наоборот.

Один из способов ускорить процесс без ущерба для эффективности алгоритма — внести некоторые изменения в секретный ключ f .Сначала построим f такой, что , в котором F — небольшой многочлен (т.е. коэффициенты {-1,0,1}). Построив f таким образом, f обратимо по модулю p . Фактически , что означает, что Бобу не нужно фактически вычислять обратное и что Бобу не нужно выполнять второй этап расшифровки. Таким образом, построение f таким способом экономит много времени, но не влияет на безопасность NTRUEncrypt, поскольку его легче найти. но f все еще трудно восстановить.В этом случае f имеет коэффициенты, отличные от -1, 0 или 1 из-за умножения на p . Но поскольку Боб умножает на p для генерации открытого ключа h , а затем уменьшает зашифрованный текст по модулю p , это не повлияет на метод шифрования.

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

Согласно данным NTRU NIST за 2020 год. [3] следующие параметры считаются безопасными:

Таблица 1: Параметры [ править ]

Н д п
128-битный запас безопасности (NTRU-HPS) 509 2048 3
192-битный запас безопасности (NTRU-HPS) 677 2048 3
256-битный запас безопасности (NTRU-HPS) 821 4096 3
256-битный запас безопасности (NTRU-HRSS) 701 8192 3

Ссылки [ править ]

  1. ^ «Патент США 6081597 – Метод и устройство криптосистемы с открытым ключом» – через Google Patents .
  2. ^ «NTRUEncrypt компании Security Innovation принят в качестве стандарта X9 для защиты данных» (пресс-релиз). 11 апреля 2011 г.
  3. ^ «NIST-PQ-Submission-NTRU-20201016.tar.gz» .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ba725481c45b0b14f3450ce3074057ef__1717855800
URL1:https://arc.ask3.ru/arc/aa/ba/ef/ba725481c45b0b14f3450ce3074057ef.html
Заголовок, (Title) документа по адресу, URL1:
NTRUEncrypt - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)