Введение
В математике, сильное простое число — это простое число, обладающее определенными специальными свойствами. Определения сильных простых чисел различаются в криптографии и теории чисел.
Определение в криптографии
В криптографии простое число p называется "сильным", если выполняются следующие условия. p достаточно велико, чтобы быть полезным в криптографии; как правило, это означает, что p слишком велико для доступных вычислительных ресурсов, чтобы криптоаналитик мог разложить на множители произведения p с другими сильными простыми числами. У p − 1 есть большие простые делители. То есть, p = aq + 1 для некоторого целого числа a и большого простого q. У q − 1 также есть большие простые делители. То есть, q = aq + 1 для некоторого целого числа a и большого простого q. У p + 1 есть большие простые делители. То есть, p = aq − 1 для некоторого целого числа a и большого простого q. Возможно, что простое число является сильным простым как в криптографическом, так и в теоретическом смысле. В качестве иллюстрации, число 439351292910452432574786963588089477522344331 является сильным простым в теоретическом смысле, поскольку среднее арифметическое его двух ближайших простых чисел меньше на 62. Без использования компьютера это число было бы сильным простым в криптографическом смысле, потому что 439351292910452432574786963588089477522344330 имеет большой простой делитель 1747822896920092227343 (и, в свою очередь, число, на единицу меньшее, имеет большой простой делитель 1683837087591611009), 439351292910452432574786963588089477522344332 имеет большой простой делитель 864608136454559457049 (и, в свою очередь, число, на единицу меньшее, имеет большой простой делитель 105646155480762397). Даже при использовании алгоритмов, более сложных, чем перебор, эти числа было бы трудно разложить вручную. Для современной системы компьютерной алгебры эти числа могут быть разложены практически мгновенно. Криптографически сильное простое число должно быть значительно больше этого примера.
q − 1 has large prime factors. That is, q = aq + 1 for some integer a and large prime q.
p + 1 has large prime factors. That is, p = aq − 1 for some integer a and large prime q. It is possible for a prime to be a strong prime both in the cryptographic sense and the number theoretic sense. For the sake of illustration, 439351292910452432574786963588089477522344331 is a strong prime in the number theoretic sense because the arithmetic mean of its two neighboring primes is 62 less. Without the aid of a computer, this number would be a strong prime in the cryptographic sense because 439351292910452432574786963588089477522344330 has the large prime factor 1747822896920092227343 (and in turn the number one less than that has the large prime factor 1683837087591611009), 439351292910452432574786963588089477522344332 has the large prime factor 864608136454559457049 (and in turn the number one less than that has the large prime factor 105646155480762397). Even using algorithms more advanced than trial division, these numbers would be difficult to factor by hand. For a modern computer algebra system, these numbers can be factored almost instantaneously. A cryptographically strong prime has to be much larger than this example.
Криптовалютные системы, основанные на факторинге
Некоторые специалисты предлагают, чтобы в процессе генерации ключей в криптосистемах RSA модуль n выбирался как произведение двух сильных простых чисел. Это делает факторизацию n = pq с использованием алгоритма Полларда p − 1 вычислительно невозможной. Именно поэтому стандарт ANSI X9.31 требует использования сильных простых чисел при генерации ключей RSA для цифровых подписей. Однако сильные простые числа не обеспечивают защиту от факторизации модуля с использованием более современных алгоритмов, таких как факторизация эллиптических кривых Ленстры и алгоритм решета числового поля. Учитывая дополнительные затраты на генерацию сильных простых чисел, компания RSA Security в настоящее время не рекомендует их использование при генерации ключей. Подобный (и более технический) аргумент также приводят Ривест и Сильверман.
Криптосистемы на основе дискретных логарифмов
Стивен Поллиг и Мартин Хеллман в 1978 году показали, что если все множители p − 1 меньше log p, то задача вычисления дискретного логарифма по модулю p решается за полиномиальное время (классом P). Следовательно, для криптосистем, основанных на дискретном логарифме, таких как DSA, необходимо, чтобы p − 1 имел хотя бы один большой простой множитель.
Различные факты
Вычислительно большое безопасное простое число, вероятно, будет криптографически стойким простым числом. Важно отметить, что критерий определения сильного псевдопростого числа основан на сравнениях со степенями основания, а не на неравенстве к среднему арифметическому соседних псевдопростых чисел. Если простое число равно среднему значению своих соседних простых чисел, оно называется сбалансированным простым числом. Если оно меньше, то называется слабым простым числом (не следует путать со слабо простым числом).