Рейтинг:6

Нахождение больших коварных простых чисел

флаг jp

Назовите премьер $р$ коварный если $(p-1)/2$ это число Кармайкла. Их называют коварными, поскольку внешне они выглядят как безопасные простые числа, но таковыми не являются. В частности, Диффи-Хеллман, использующий такое простое число, может быть уязвим для Алгоритм Полига Хеллмана.

Коварные простые числа существуют. Небольшой пример $4931$. Более интересным примером является

$$1947475860046218323 = 2(973737930023109161) + 1 = 2(220361)(1542521)(2864681) + 1.$$

Конечно, такие простые числа должны появиться в литературе, но мои поиски ничего не дали, возможно, потому, что они называются как-то по-другому (я просто придумал «хитрость» для целей этого вопроса). Кто-нибудь знает ссылки на них?

Я заинтересован в создании больших примеров таких вещей. Основной известный мне инструмент для генерации примеров больших чисел Кармайкла (поиск $к$ для которого 6к+1, 12к+1, 18к+1$ все простые, то возьмите их произведение), кажется, не может привести таких примеров. Коварные простые числа, если предположить, что большие вообще существуют, несомненно, исчезающе редки, поэтому простой их поиск не является многообещающим подходом. На данном этапе у меня нет идей.

fgrieu avatar
флаг ng
Первые несколько из них: 1123, 4931, 303060803, 348705283, 1368212803, 1879894019, 12195557923. Эта последовательность [в настоящее время отсутствует в OEIS] (https://oeis.org/search?q=1123%2C4931).
John Coleman avatar
флаг jp
@fgrieu Интересно, что этого нет в OEIS. Есть, конечно, две тесно связанные последовательности: последовательность простых чисел этой формы и последовательность чисел Кармайкла, которые их порождают (псевдософи гермены?).
Рейтинг:5
флаг ru

Проблема с использованием выражения Черника $(6к+1)(12к+1)(18к+1)$ и его обобщение состоит в том, что число всегда сравнимо с 1 по модулю 3, так что удвоенное число плюс один делится на и, следовательно, не является простым. Однако не все потеряно, и методы Ло и Нибур «Новый алгоритм построения больших чисел Кармайкла». (который вдохновил знаменитого Алфорд, Гранвиль и Померанс «Существует бесконечно много чисел Кармайкла» результат) можно использовать для получения больших чисел Кармайкла, равных 2 по модулю 3 и имеющих много множителей (что делает их подходящими для вашего коварного приложения).

Беря пример с алгоритма C Лоха и Нибура (стр. 285), мы добавляем небольшие дополнительные условия:

  1. Выберите произведение простых степеней $\Lambda\leftarrow 2^{h_1}q_2^{h_2}\cdots q_r^{h_r}$ где $h_i$ все положительные и ни один из $q_i$ равно 3. (Конструкция работает лучше всего, если $q_i$ являются маленькими простыми числами, поэтому принимая $q_2=5$, $q_3=7$ и так далее - хороший выбор).
  2. Протестировать все $p(\alpha_1,\ldots,\alpha_r)\leftarrow 2^{\alpha_1}q_2^{\alpha_2}\cdots q_r^{\alpha_r}+1$ с $0\le \alpha_i\le h_i$ для первобытности. Сбор успешных значений в набор $\mathcal S$ (опуская $\лямбда+1$). Вы можете опустить простое число 3 в случае, если предполагаемое простое число, делящееся на 3, немного очевидно, или потому что это вероятный выбор в качестве основы для теста Ферма.
  3. Вычислить $\prod_{p\in\mathcal S}\pmod\Lambda$ и назовем этот остаток $s$.
  4. Тестовые подмножества $\mathcal T\подмножество\mathcal S$ чья мощность имеет разную четность с $\mathcal S$ пока не найдем такое подмножество, что $\prod_{p\in\mathcal T}p\equiv s\pmod\Lambda$
  5. Установлен $N=\prod_{p\in\mathcal S\обратная косая черта\mathcal T}p$. Это будет число Кармайкла, у него будет нечетное число простых множителей и оно будет конгруэнтно 2 по модулю 3.

Должно быть достаточно разнообразия в выборе $\mathcal Т$ чтобы получить число Кармайкла соответствующего размера. Затем вы можете умножить на два и добавить один. Так как полученное число равно $3\pmod\лямбда$, оно не будет делиться ни на одно простое делящее $\лямбда$ и имеет гораздо больше шансов стать премьер-министром (что приятно).

John Coleman avatar
флаг jp
Спасибо тебе за это. Моя мотивация — иметь интересный пример для вводного курса по криптографии, который я преподаю. Я упомянул классу, как PGP использует (до сих пор?) простой тест Ферма для нахождения больших простых чисел. Я заметил, что на самом деле это было достаточно разумно для случайно сгенерированных чисел, но не годилось для числа, предназначенного для его преодоления. Я хочу показать, что это также может быть проблематично для *прайма*, предназначенного для подрыва DH. Надеюсь, в эти выходные у меня будет время поэкспериментировать с этим.
John Coleman avatar
флаг jp
$p = 19248540273487192628727638093418570989399483505551360003$ — это 56-значное хитрое простое число, которое я смог сгенерировать, используя вашу идею. $(p-1)/2$ — число Кармайкла с 19 простыми делителями. Дискретные журналы для этого $p$ можно восстановить за доли секунды. Ваш алгоритм кажется весьма чувствительным к выбору начальных простых чисел и степеней. Как только они преодолеют определенный порог, я, похоже, не смогу найти кандидата $\mathcal T$.
John Coleman avatar
флаг jp
After letting my (non-optimized) code churn away for about an hour, I found `p = 535528299911273231318261682611857786128733492376235786223632658066997780843716220764905747558932241929032637097264301018240352003`, which is a 129-digit devious prime for which $(p-1)/2$ is a Carmichael number with 37 prime факторы.Статья Ло-Нейбура содержит ссылки на методы получения больших чисел Кармайкла с небольшим количеством множителей. Я мог бы посмотреть на них, чтобы попытаться сконструировать большие окольные простые числа, которые могли бы противостоять случайным попыткам разложить $p-1$ на множители.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.