Идеальная решётка — определённая математическая структура, которая используется для уменьшения числа параметров, необходимых для описания решёток (представляющих собой свободные коммутативные группы конечного ранга). Данный вид решёток часто встречается во многих областях математики, в частности, в разделе теории чисел. Таким образом идеальные решётки более эффективны в применении, чем другие решётки, применяющихся в криптографии. Идеальные решётки используются в криптографических системах с открытым ключом NTRUEncrypt и NTRUSign для построения эффективных криптографических примитивов. Также идеальные решётки составляют фундаментальную основу квантовой криптографии, которая защищает от атак, связанных с квантовыми компьютерами.
 Схемы RSA и ECC, основанные либо на сложности факторизации, либо на сложности проблемы дискретного логарифма, являются самыми популярными асимметричными криптосистемами, которые для шифрования информации и её последующего расшифровывания используют различные ключи. Несмотря на преобладание схем RSA и ECC, они, как известно, подвержены атакам с использованием квантовых компьютеров. Кроме того, RSA и ECC довольно неэффективны на очень небольших и ограниченных устройствах, таких как 8-битные микроконтроллеры AVR, использующиеся по сей день в различных областях, таких как робототехника, энергетика, спутниковые системы связи и многие другие. Возможной альтернативой упомянутых схем являются асимметричные криптосистемы, основанные на жёстких задачах в идеальных решётках. Специальная алгебраическая структура идеальных решёток позволяет значительно уменьшить размеры ключа и шифротекста, обеспечивая при этом эффективную арифметику с использованием теоретико-числового преобразования. Таким образом благодаря использованию идеальных решёток повышается степень защиты зашифрованной информации.
 Теория решёток может быть описана с помощью линейной алгебры. Решётка обычно рассматривается как любая равномерно распределённая сетка точек в n-мерном реальном линейном пространстве 
  
    
      
        
          R
          
            n
          
        
      
    
    {\displaystyle R^{n}}
  
 со всеми координатами, являющимися целыми числами. Это множество образует группу при сложении по координатам и является дискретным, что означает, что для каждой точки в множестве есть открытый шар вокруг неё, который не содержит никакой другой точки множества, таким образом решёткой называется множество всех целочисленных линейных комбинаций заданного набора линейно независимых точек в 
  
    
      
        
          Z
          
            n
          
        
      
    
    {\displaystyle Z^{n}}
  
. Решётки — являются группами, а идеальные решётки идеалами.
 В частности, идеальные решётки соответствуют кольцам вида 
  
    
      
        
          Z
        
        [
        x
        ]
        
          /
        
        ⟨
        f
        ⟩
      
    
    {\displaystyle \mathbb {Z} [x]/\langle f\rangle }
  
 для некоторого неприводимого многочлена 
  
    
      
        f
      
    
    {\displaystyle f}
  
 степени 
  
    
      
        n
      
    
    {\displaystyle n}
  
. Основная операция в идеальной решёточной криптографии — полиномиальное умножение.
 Идеальная решётка — это целочисленная решётка 
  
    
      
        
          
            L
          
        
        (
        I
        )
        ⊆
        
          
            Z
          
          
            n
          
        
      
    
    {\displaystyle {\mathcal {L}}(I)\subseteq \mathbb {Z} ^{n}}
  
 такая, что для некоторого заданного базиса 
  
    
      
        B
        ∈
        
          
            Z
          
          
            (
            n
            ,
            n
            )
          
        
      
    
    {\displaystyle B\in \mathbb {Z} ^{(n,n)}}
  
 такого, что 
  
    
      
        B
        =
      
    
    {\displaystyle B=}
  
 
  
    
      
        {
        (
        g
         
        
          mod
          
             
          
        
         
        f
        )
        :
        g
        ∈
        
          Z
        
        [
        x
        ]
        }
      
    
    {\displaystyle \lbrace (g\ {\bmod {\ }}\ f):g\in \mathbb {Z} [x]\rbrace }
  
 и для некоторого приведённого многочлена 
  
    
      
        f
      
    
    {\displaystyle f}
  
 степени 
  
    
      
        n
      
    
    {\displaystyle n}
  
 существует идеал 
  
    
      
        I
        ⊆
        
          Z
        
        [
        x
        ]
        
          /
        
        ⟨
        f
        ⟩
      
    
    {\displaystyle I\subseteq \mathbb {Z} [x]/\langle f\rangle }
  

 Ограничения, накладываемые на 
  
    
      
        f
      
    
    {\displaystyle f}
  
:
 Если 
  
    
      
        f
      
    
    {\displaystyle f}
  
 является нормированным неприводимым целочисленным многочленом степени 
  
    
      
        n
      
    
    {\displaystyle n}
  
, то любой идеал есть изоморфная решётка полного ранга в 
  
    
      
        
          
            Z
          
          
            n
          
        
      
    
    {\displaystyle \mathbb {Z} ^{n}}
  
,то есть базис состоит из 
  
    
      
        n
      
    
    {\displaystyle n}
  
 линейно независимых векторов, координаты которых и являются коэффициентам многочлена 
  
    
      
        f
      
    
    {\displaystyle f}
  
 степени 
  
    
      
        n
      
    
    {\displaystyle n}
  

 Пусть задан базис 
  
    
      
        B
        ∈
        
          
            Z
          
          
            (
            n
            ,
            n
            )
          
        
      
    
    {\displaystyle B\in \mathbb {Z} ^{(n,n)}}
  
 Условие: если 
  
    
      
        B
      
    
    {\displaystyle B}
  
 охватывает идеальную решётку относительно параметра 
  
    
      
        q
      
    
    {\displaystyle q}
  
, тогда правда, иначе ложь
 Дополнение: матрица 
  
    
      
        M
      
    
    {\displaystyle M}
  
 принимает вид 
 Используя данный алгоритм, можно убедиться в том, что немногие решётки являются идеальными решётками.
Рассмотрим пример:
Пусть 
  
    
      
        n
        =
        2
      
    
    {\displaystyle n=2}
  
 и 
  
    
      
        k
        ∈
        
          Z
        
        ∖
        {
        0
        ,
        ±
        1
        }
      
    
    {\displaystyle k\in \mathbb {Z} \setminus \lbrace 0,\pm 1\rbrace }
  
, тогда
 является идеальной, в отличие от
 
  
    
      
        
          B
          
            2
          
        
      
    
    {\displaystyle B_{2}}
  
 с 
  
    
      
        k
        =
        2
      
    
    {\displaystyle k=2}
  
 пример, придуманным Любашевским В. и Миссиансио Д.
 Для использования данного алгоритма, матрица 
  
    
      
        B
      
    
    {\displaystyle B}
  
 обязана являться эрмитовой нормальной формой, таким образом первый шаг алгоритма обязателен к выполнению. Детерминант равен
  
    
      
        d
        =
        2
      
    
    {\displaystyle d=2}
  
, а присоединённая матрица
 и наконец, произведение матриц 
  
    
      
        P
        =
        A
        M
        B
        
          mod
          
            d
          
        
      
    
    {\displaystyle P=AMB{\bmod {d}}}
  
 есть
 На этом этапе алгоритм останавливается, потому что все столбцы 
  
    
      
        P
      
    
    {\displaystyle P}
  
 кроме последнего, должны быть равны нулю, если 
  
    
      
        B
      
    
    {\displaystyle B}
  
 является идеальной решёткой.
 Устойчивая к коллизиям хеш-функция — это функция заданная отображением 
  
    
      
        
          h
          
            k
          
        
      
    
    {\displaystyle h_{k}}
  

  
    
      
        :
        D
        →
        R
      
    
    {\displaystyle :D\rightarrow R}
  
 так, что мощность множества (области некоторого числового пространства) 
  
    
      
        D
      
    
    {\displaystyle D}
  
 больше мощности множества 
  
    
      
        R
      
    
    {\displaystyle R}
  
, 
  
    
      
        
          |
        
        R
        
          |
        
      
    
    {\displaystyle |R|}
  

  
    
      
        ≪
      
    
    {\displaystyle \ll }
  

  
    
      
        
          |
        
        D
        
          |
        
      
    
    {\displaystyle |D|}
  
, тем самым затрудняя нахождение коллизии, то есть пару 
  
    
      
        
          x
          
            1
          
        
        ,
        
          x
          
            2
          
        
        ∈
        D
        ,
        h
        (
        
          x
          
            1
          
        
        )
        =
        h
        (
        
          x
          
            2
          
        
        )
      
    
    {\displaystyle x_{1},x_{2}\in D,h(x_{1})=h(x_{2})}
  
. Таким образом, по случайно выбранному 
  
    
      
        k
      
    
    {\displaystyle k}
  
 ни один злоумышленник не сможет эффективно (за разумное время) найти коллизии в 
  
    
      
        
          h
          
            k
          
        
      
    
    {\displaystyle h_{k}}
  
, даже несмотря на тот факт, что коллизии присутствуют.
Основное использование идеальных решёток в криптографии связано с тем, что достаточно эффективные и практичные коллизионные хэш-функции могут быть построены на основе твёрдости нахождения приближённого кратчайшего вектора в таких решётках. Группы учёных, изучающие идеальные криптографические решётки, исследовали коллизионные устойчивые хэш-функции, построенные на основе идеальных решёток, а именно Пейкрет К. и Розен С.. Эти результаты проложили путь для других эффективных криптографических конструкций, включая схемы идентификации и подписи.
 Лобашевский В. и Миссиансио Д. предложили конструкции эффективных и устойчивых к коллизиям хэш-функций, которые могут быть доказаны на основе наихудшей жёсткости задачи о кратчайшем векторе для идеальных решёток. Тем самым были определены рассматриваемые семейства хэш-функции для элементов:
 
  
    
      
        h
        (
        b
        )
        =
        
          ∑
          
            i
            =
            1
          
          
            m
          
        
        
          α
          
            i
          
        
        ⋅
        
          b
          
            i
          
        
      
    
    {\displaystyle h(b)=\sum _{i=1}^{m}\alpha _{i}\centerdot b_{i}}
  
, где 
  
    
      
        m
      
    
    {\displaystyle m}
  
 есть выборка случайных элементов из 
  
    
      
        
          a
          
            1
          
        
        ,
        …
        ,
        
          a
          
            m
          
        
        ∈
        R
        =
        
          
            Z
          
          
            p
          
        
        [
        x
        ]
        
          /
        
        ⟨
        f
        ⟩
      
    
    {\displaystyle a_{1},\dots ,a_{m}\in R=\mathbb {Z} _{p}[x]/\langle f\rangle }
  
, 
  
    
      
        b
        =
        (
        
          b
          
            1
          
        
        ,
        .
        .
        .
        ,
        
          b
          
            m
          
        
        )
        ∈
        
          D
          
            m
          
        
      
    
    {\displaystyle b=(b_{1},...,b_{m})\in D^{m}}
  
 .
 В данном случае размер ключа, то есть хэш-функции определяется как 
  
    
      
        O
        (
        m
        n
        log
        ⁡
        p
        )
        =
        O
        (
        n
        log
        ⁡
        n
        )
      
    
    {\displaystyle O(mn\log p)=O(n\log n)}
  
, используя алгоритм быстрого преобразования Фурье, для подходящего 
  
    
      
        f
      
    
    {\displaystyle f}
  
, операция 
  
    
      
        
          α
          
            i
          
        
        ⋅
        
          b
          
            i
          
        
      
    
    {\displaystyle \alpha _{i}\centerdot b_{i}}
  
 может быть выполнена за время 
  
    
      
        O
        (
        n
        log
        ⁡
        n
        log
        ⁡
        log
        ⁡
        n
        )
      
    
    {\displaystyle O(n\log n\log \log n)}
  
. Поскольку 
  
    
      
        m
      
    
    {\displaystyle m}
  
 есть константой, то для хеширования требуется конечное время 
  
    
      
        O
        (
        n
        log
        ⁡
        n
        log
        ⁡
        log
        ⁡
        n
        )
      
    
    {\displaystyle O(n\log n\log \log n)}
  
.
  
    
      
    
    {\displaystyle }
  

 Схемы цифровых подписей относятся к числу наиболее важных криптографических примитивов. Они могут быть получены с помощью односторонних функций, основанных на наихудшей жёсткости решёточных задач, однако являются непрактичными. С момента использования проблемы обучения с ошибками в криптографическом контексте был разработан ряд новых схем цифровой подписи, основанных на обучении с ошибками и кольцевом обучении с ошибками.
 Прямое построение цифровых подписей основано на сложности аппроксимации кратчайшего вектора в идеальных решётках. Схема Любашёвского В. и Миссиансио Д., основанная на идеальных решётках, имеет гарантии безопасности даже в худшем случае и является наиболее асимптотически эффективной конструкцией, известной на сегодняшний день, также позволяющей генерировать сигнатуры и проверять алгоритмы, работающие за почти линейное время.
 Одна из главных открытых проблем, которые были подняты в описанных выше работах, заключается в создании одноразовой подписи с аналогичной эффективностью, но основанной на более слабом допущении твёрдости. Например, было бы здорово обеспечить однократную подпись с защитой, основанную на сложности аппроксимации задачи кротчайшего вектора (SVP) (в идеальных решётках) с точностью до 
  
    
      
        
          
            
              O
              ~
            
          
        
        (
        n
        )
      
    
    {\displaystyle {\tilde {O}}(n)}
  
.
 Построение таких цифровых подписей основано на стандартном преобразовании одноразовых подписей (то есть подписей, которые позволяют надёжно подписывать одно сообщение) в общие схемы подписи вместе с новой конструкцией одноразовой подписи на основе решётки, безопасность которой, в конечном счёте, основана на наихудшей жёсткости аппроксимации кратчайшего вектора во всех решётках, соответствующий идеалам в кольце 
  
    
      
        
          Z
        
        [
        x
        ]
        
          /
        
        ⟨
        f
        ⟩
      
    
    {\displaystyle \mathbb {Z} [x]/\langle f\rangle }
  
 для любого неприводимого многочлена 
  
    
      
        f
      
    
    {\displaystyle f}
  
.
 Хэш-функция достаточно эффективна и может быть вычислена асимптотически за 
  
    
      
        
          
            
              O
              ~
            
          
        
        (
        m
        )
      
    
    {\displaystyle {\tilde {O}}(m)}
  
 время с использованием быстрого преобразования Фурье по комплексным числам. Однако на практике это несёт значительные накладные расходы. Набор криптографических хеш-функций с доказанной стойкостью SWIFFT, определённый Миссиансио Д. и Регевом, по сути, высоко оптимизированный вариант хэш-функции, описанной выше с использованием быстрого преобразования Фурье в 
  
    
      
        
          
            Z
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {Z} _{q}}
  
. Вектор f определён в 
  
    
      
        (
        1
        ,
        0
        ,
        …
        ,
        0
        )
        ∈
        
          
            Z
          
          
            n
          
        
      
    
    {\displaystyle (1,0,\dots ,0)\in \mathbb {Z} ^{n}}
  
 для 
  
    
      
        n
      
    
    {\displaystyle n}
  
 равного степени 2, так что соответствующий полином 
  
    
      
        
          x
          
            n
          
        
        +
        1
      
    
    {\displaystyle x^{n}+1}
  
 является неприводимым многочленом. Обнаружение коллизий функций SWIFFT равносильно нахождению коллизиций в базовой функции идеальной решётки
  
    
      
        
          f
          
            A
          
        
      
    
    {\displaystyle f_{A}}
  
. Заявленное свойство коллизий SWIFFT поддерживается при наихудшем случае в задачах на идеальных решётках.
 Алгоритм хэш-функции SWIFFT :