Пусть - монический многочлен степени с коэффициентами в, и предположим, что это простое число Солинаса. Учитывая ряд с до бит, мы хотим , чтобы найти номер конгруэнтный для мод только с таким количеством бит, - то есть, с не более битами.
Сначала изобразите в базе :
Далее, генерировать матрицу с размерностью матрицы путем шаговый раза линейного регистра сдвига с обратными связями, определенных над многочленом : начиная с целочисленным регистра , сдвига вправо на одну позицию, инъекционные слева и добавления (покомпонентно) выходное значение раза в вектор на каждом шаге (подробнее см. [1]). Пусть будет целым числом в -м регистре на -м шаге и обратите внимание, что первая строка имеет значение . Тогда, если мы обозначим целочисленным вектором, заданным как:
,
легко проверить, что:
.
Таким образом представляет собой -битовое целое число, конгруэнтное .
Для разумного выбора (опять же, см. [1]) этот алгоритм включает только относительно небольшое количество сложений и вычитаний (и никаких делений!), Поэтому он может быть намного более эффективным, чем наивный алгоритм модульного сокращения ( ).
Четыре из рекомендуемых простых чисел в документе NIST «Рекомендуемые эллиптические кривые для использования федеральным правительством» являются простыми числами Солина:
^ Солинас, Джером А. (1999). Обобщенные числа Мерсенна (PDF) (Технический отчет). Центр прикладных криптографических исследований Университета Ватерлоо. CORR-99-39.
^ Солинас, Джером А. (2011). «Обобщенное прайм Мерсенна». В Тилборге, фургон Хенк Калифорния; Jajodia, Sushil (ред.). Энциклопедия криптографии и безопасности . Springer США. стр. 509 -510. DOI : 10.1007 / 978-1-4419-5906-5_32 . ISBN 978-1-4419-5905-8.
^ Патент США 5159632 , Ричард Э. Crandall, «Способ и устройство для обмена открытого ключа в криптографической системе», выданного 1992-10-27, назначен NeXT Computer, Inc.
vтеКлассы простых чисел
По формуле
Ферма ( 2 2 n + 1 )
Мерсенн ( 2 ч - 1 )
Двойной Мерсенн ( 2 2 p −1 - 1 )
Вагстафф (2 п + 1) / 3
Прот ( k · 2 n + 1 )
Факториал ( n ! ± 1 )
Первобытный ( p n # ± 1 )
Евклид ( p n # + 1 )
Пифагорейский ( 4 n + 1 )
Pierpont ( 2 м · 3 n + 1 )
Квартан ( x 4 + y 4 )
Солины ( 2 м ± 2 п ± 1 )
Каллен ( n · 2 n + 1 )
Вудалл ( n · 2 n - 1 )
Кубинский ( x 3 - y 3 ) / ( x - y )
Кэрол (2 н - 1) 2 - 2
Киния (2 п + 1) 2 - 2
Лейланд ( x y + y x )
Табит ( 3 · 2 n - 1 )
Уильямс ( ( b −1) · b n - 1 )
Миллс ( ⌊ A 3 n ⌋ )
По целочисленной последовательности
Фибоначчи
Лукас
Пелл
Ньюман – Шанкс – Уильямс
Перрин
Перегородки
Колокол
Моцкин
По собственности
Виферих ( пара )
Стена – Солнце – Солнце
Wolstenholme
Уилсон
Удачливый
Удачливый
Рамануджан
Пиллаи
Обычный
Сильный
Штерн
Суперсингулярный (эллиптическая кривая)
Суперсингулярный (теория самогона)
Хорошо
супер
Хиггс
Очень cototient
Базовый зависимый
Палиндромный
Эмирп
Repunit (10 п - 1) / 9
Взаимозаменяемый
Круговой
Усекаемый
Минимальный
Слабо
Первобытный
Полное повторение
Уникальный
Счастливый
Себя
Смарандаче – Веллин
Стробограмматический
Двугранный
Тетрадич
Узоры
Близнец ( p , p + 2 )
Цепочка двойных двойников ( n - 1, n + 1, 2 n - 1, 2 n + 1,… )
Триплет ( p , p + 2 или p + 4, p + 6 )
Четверной ( p , p + 2, p + 6, p + 8 )
k −Tuple
Кузен ( p , p + 4 )
Сексуальный ( p , p + 6 )
Чен
Софи Жермен / Сейф ( p , 2 p + 1 )
Каннингем ( p , 2 p ± 1, 4 p ± 3, 8 p ± 7, ... )
Арифметическая прогрессия ( p + a · n , n = 0, 1, 2, 3, ... )
Сбалансированный ( последовательные p - n , p , p + n )