В теории чисел простое число p является простым числом Софи Жермен , если 2 p + 1 также является простым числом. Число 2 p + 1, связанное с простым числом Софи Жермен, называется безопасным простым числом . Например, 11 является простым числом Софи Жермен, а 2 × 11 + 1 = 23 является связанным с ним безопасным простым числом. Простые числа Софи Жермен и безопасные простые числа имеют применение в криптографии с открытым ключом и тестировании простоты . Было высказано предположение , что существует бесконечно много простых чисел Софи Жермен, но это остается недоказанным.
Простые числа Софи Жермен названы в честь французского математика Софи Жермен , которая использовала их в своих исследованиях Великой теоремы Ферма . [1] Одна из попыток Жермен доказать Великую теорему Ферма состояла в том, чтобы позволить p быть простым числом вида 8k + 7 и позволить n = p – 1. В этом случае неразрешимо. Однако доказательство Жермен осталось незавершенным. [2] [3] Благодаря своим попыткам решить Великую теорему Ферма, Жермен разработала результат, теперь известный как теорема Жермен, который гласит, что если p является нечетным простым числом и 2p + 1 также является простым числом, то p должно делить x , y или z. В противном случае, . Этот случай, когда p не делит x , y или z, называется первым случаем. Работа Софи Жермен была наибольшим прогрессом, достигнутым в Великой теореме Ферма в то время. [2] Более поздние работы Куммера и других всегда делили задачу на первый и второй случаи.
Первые несколько простых чисел Софи Жермен (менее 1000) — это
Следовательно, первые несколько безопасных простых чисел — это
В криптографии требуются гораздо большие простые числа Софи Жермен, такие как 1 846 389 521 368 + 11 600 .
Два проекта распределенных вычислений, PrimeGrid и Twin Prime Search , включают поиск больших простых чисел Софи Жермен. Некоторые из самых больших известных простых чисел Софи Жермен приведены в следующей таблице. [4]
Ценить | Количество цифр | Время открытия | Первооткрыватель |
---|---|---|---|
2618163402417 × 2 1290000 - 1 | 388342 | Февраль 2016 г. | Доктор Джеймс Скотт Браун в распределенном поиске PrimeGrid с использованием программ TwinGen и LLR [5] |
18543637900515 × 2 666667 - 1 | 200701 | Апрель 2012 г. | Филипп Блидунг в распределенном поиске PrimeGrid с использованием программ TwinGen и LLR [6] |
183027 × 2 265440 − 1 | 79911 | Март 2010 г. | Том Ву использует LLR [7] |
648621027630345 × 2 253824 − 1 и 620366307356565 × 2 253824 − 1 | 76424 | Ноябрь 2009 г. | Золтан Харай, Габор Фаркас, Тимеа Чайбок, Янош Каса и Антал Харай [8] [9] |
1068669447 × 2 211088 − 1 | 63553 | Май 2020 г. | Майкл Квок [10] |
99064503957 × 2 200008 − 1 | 60220 | Апрель 2016 г. | С. Урушихата [11] |
607095 × 2 176311 − 1 | 53081 | Сентябрь 2009 г. | Том Ву [12] |
48047305725 × 2 172403 − 1 | 51910 | Январь 2007 г. | Дэвид Андербакке использует TwinGen и LLR [13] |
137211941292195 × 2 171960 - 1 | 51780 | Май 2006 г. | Ярай и др. [14] |
2 декабря 2019 года Фабрис Будо, Пьеррик Годри, Аврора Гийевик, Надя Хенингер, Эммануэль Томе и Пол Циммерман объявили о вычислении дискретного логарифма по модулю 240-значного (795-битного) простого числа RSA-240 + 49204 (первого безопасного простого числа выше RSA-240) с использованием алгоритма решета числового поля ; см. Записи дискретного логарифма .
Не существует специального теста простоты для безопасных простых чисел, как для простых чисел Ферма и простых чисел Мерсенна . Однако критерий Поклингтона можно использовать для доказательства простоты 2 p + 1, как только доказана простота p .
Так же, как каждый член, кроме последнего, цепочки Каннингема первого рода является простым числом Софи Жермен, так и каждый член такой цепочки, кроме первого, является безопасным простым числом. Безопасные простые числа, заканчивающиеся на 7, то есть имеющие вид 10 n + 7, являются последними членами таких цепочек, когда они встречаются, поскольку 2(10 n + 7) + 1 = 20 n + 15 делится на 5.
Для безопасного простого числа каждый квадратичный невычет , за исключением -1 (если невычет [a] ), является примитивным корнем . Из этого следует, что для безопасного простого числа наименьший положительный примитивный корень является простым числом. [15]
За исключением 7, безопасное простое число q имеет вид 6 k − 1 или, что эквивалентно, q ≡ 5 ( mod 6) – как и p > 3. Аналогично, за исключением 5, безопасное простое число q имеет вид 4 k − 1 или, что эквивалентно, q ≡ 3 (mod 4) – тривиально верно, поскольку ( q − 1) / 2 должно оцениваться как нечетное натуральное число . Объединяя обе формы с помощью lcm (6, 4), мы определяем, что безопасное простое число q > 7 также должно иметь вид 12 k − 1 или, что эквивалентно, q ≡ 11 (mod 12).
Отсюда следует, что для любого безопасного простого числа q > 7:
Если p — простое число Софи Жермен, большее 3, то p должно быть сравнимо с 2 mod 3. В противном случае оно было бы сравнимо с 1 mod 3, а 2 p + 1 было бы сравнимо с 3 mod 3, что невозможно для простого числа. [16] Аналогичные ограничения справедливы и для больших простых модулей и являются основой для выбора «поправочного коэффициента» 2 C в оценке Харди–Литтлвуда плотности простых чисел Софи Жермен. [17]
Если простое число Софи Жермен p сравнимо с 3 (mod 4) ( OEIS : A002515 , простые числа Лукаса ), то соответствующее ему безопасное простое число 2 p + 1 ( сравнимое с 7 по модулю 8) будет делителем числа Мерсенна 2 p − 1. Исторически этот результат Леонарда Эйлера был первым известным критерием того, что число Мерсенна с простым индексом является составным . [18] Его можно использовать для генерации наибольших чисел Мерсенна (с простыми индексами), которые, как известно, являются составными . [19]
Предполагается , что существует бесконечно много простых чисел Софи Жермен, но это не доказано . [ 17] Несколько других известных гипотез в теории чисел обобщают эту гипотезу и гипотезу о простых числах-близнецах ; они включают гипотезу Диксона , гипотезу Шинцеля H и гипотезу Бейтмана–Хорна .
Эвристическая оценка количества простых чисел Софи Жермен, меньших n, составляет [ 17]
где
является константой Харди–Литтлвуда для простых чисел-близнецов . Для n = 10 4 эта оценка предсказывает 156 простых чисел Софи Жермен, что имеет 20%-ную ошибку по сравнению с точным значением 190. Для n = 10 7 оценка предсказывает 50822, что все еще на 10% отличается от точного значения 56032. Форма этой оценки принадлежит GH Hardy и JE Littlewood , которые применили похожую оценку к простым числам-близнецам . [20]
Последовательность ( p , 2p + 1, 2( 2p + 1) + 1, ...), в которой все числа являются простыми, называется цепочкой Каннингема первого рода. Каждый член такой последовательности , кроме последнего, является простым числом Софи Жермен, а каждый член, кроме первого, является безопасным простым числом. Расширяя гипотезу о том, что существует бесконечно много простых чисел Софи Жермен, также было высказано предположение о существовании произвольно длинных цепочек Каннингема [21] , хотя известно, что бесконечные цепочки невозможны. [22]
Простое число q является сильным простым числом, если q + 1 и q − 1 оба имеют некоторые большие (около 500 цифр) простые множители. Для безопасного простого числа q = 2 p + 1 число q − 1 естественным образом имеет большой простой множитель, а именно p , и поэтому безопасное простое число q соответствует части критериев сильного простого числа. Время выполнения некоторых методов факторизации числа с q в качестве простого множителя частично зависит от размера простых множителей q − 1 . Это верно, например, для метода p − 1 .
Безопасные простые числа также важны в криптографии из-за их использования в дискретных логарифмических методах, таких как обмен ключами Диффи–Хеллмана . Если 2 p + 1 является безопасным простым числом, мультипликативная группа целых чисел по модулю 2 p + 1 имеет подгруппу большого простого порядка . Обычно именно эта подгруппа простого порядка является желательной, и причина использования безопасных простых чисел заключается в том, чтобы модуль был как можно меньше относительно p .
Простое число p = 2 q + 1 называется безопасным простым числом , если q является простым числом. Таким образом, p = 2 q + 1 является безопасным простым числом тогда и только тогда, когда q является простым числом Софи Жермен, поэтому нахождение безопасных простых чисел и нахождение простых чисел Софи Жермен эквивалентны по вычислительной сложности. Понятие безопасного простого числа может быть усилено до сильного простого числа, для которого и p − 1, и p + 1 имеют большие простые множители. Безопасные и сильные простые числа были полезны в качестве множителей секретных ключей в криптосистеме RSA , поскольку они предотвращают взлом системы некоторыми алгоритмами факторизации , такими как алгоритм Полларда p − 1. Однако при современной технологии факторизации преимущество использования безопасных и сильных простых чисел, по-видимому, незначительно. [23]
Аналогичные проблемы существуют и в других криптосистемах, включая обмен ключами Диффи–Хеллмана и аналогичные системы, которые зависят от безопасности задачи дискретного логарифмирования, а не от целочисленной факторизации. [24] По этой причине протоколы генерации ключей для этих методов часто полагаются на эффективные алгоритмы генерации сильных простых чисел, которые, в свою очередь, полагаются на гипотезу о том, что эти простые числа имеют достаточно высокую плотность. [25]
В Sophie Germain Counter Mode было предложено использовать арифметику в конечном поле порядка, равного безопасному простому числу 2 128 + 12451, чтобы противостоять слабостям в Galois/Counter Mode с использованием двоичного конечного поля GF(2 128 ). Однако было показано, что SGCM уязвим ко многим из тех же криптографических атак, что и GCM. [26]
В первой версии теста AKS на простоту гипотеза о простых числах Софи Жермен используется для снижения сложности в худшем случае с O(log 12 n ) до O(log 6 n ) . Показано, что более поздняя версия статьи имеет временную сложность O(log 7.5 n ) , которую также можно снизить до O(log 6 n ) с помощью гипотезы. [27] Более поздние варианты AKS, как было доказано, имеют сложность O(log 6 n ) без каких-либо гипотез или использования простых чисел Софи Жермен.
Безопасные простые числа, подчиняющиеся определенным конгруэнтностям, могут использоваться для генерации псевдослучайных чисел , используемых в моделировании Монте-Карло .
Аналогично, простые числа Софи Жермен могут использоваться для генерации псевдослучайных чисел . Десятичное разложение 1/ q произведет поток из q − 1 псевдослучайных цифр, если q является безопасным простым числом Софи Жермен p , где p сравнимо с 3, 9 или 11 по модулю 20. [28] Таким образом, «подходящие» простые числа q — это 7, 23, 47, 59, 167, 179 и т. д. ( OEIS : A000353 ) (соответствующие p = 3, 11, 23, 29, 83, 89 и т. д.) ( OEIS : A000355 ). Результатом является поток длиной q − 1 цифр (включая ведущие нули). Так, например, использование q = 23 генерирует псевдослучайные цифры 0, 4, 3, 4, 7, 8, 2, 6, 0, 8, 6, 9, 5, 6, 5, 2, 1, 7, 3, 9, 1, 3. Обратите внимание, что эти цифры не подходят для криптографических целей, поскольку значение каждой из них может быть получено из ее предшественника в потоке цифр. [ необходима цитата ]
Простые числа Софи Жермен упоминаются в пьесе « Доказательство» [29] и в последующем фильме [30] .
сильная гипотеза о простых k -кортежах верна, то цепи Каннингема могут достигать любой длины.
[Жан Э.] Тейлор указал, что в примере простого числа Жермен, приведенном в предварительном тексте, отсутствовал термин «+ 1». «Когда я впервые пошел смотреть «Доказательство» и этот момент появился в пьесе, я был рад услышать, как четко произнесено «плюс один», — говорит Тейлор.
Доказательстве
есть несколько отступлений от реализма
, когда персонажи говорят так, чтобы это было выгодно зрителям, а не так, как математики на самом деле говорили бы между собой. Когда Хэл (Гарольд) вспоминает, что такое простое число Жермена, он говорит с Кэтрин так, как это было бы покровительственно по отношению к другому математику.