Почему в криптографии важны простые числа?

Одна вещь, которая всегда поражает меня как некриптограф: почему так важно использовать Prime numbers? Что делает их настолько особенными в криптографии?

Есть ли у кого-то простое короткое объяснение? (Я знаю, что есть много праймеров, и что прикладная криптография - это Библия, но, как сказано: я не пытаюсь реализовать свой собственный криптографический алгоритм, а материал, который я нашел, просто заставил мой мозг взорваться - нет 10 страниц математических формул пожалуйста:))

Спасибо за все ответы. Я принял тот, который дал мне самую понятную концепцию.

Ответ 1

Самое общее и общее объяснение: криптография - это теория чисел, и все целые числа (кроме 0 и 1) состоят из простых чисел, поэтому вы много разбираетесь в простых числах в теории чисел.

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

Ответ 2

Простой? Да.

Если вы умножаете два больших простых числа, вы получаете огромное непустое число с двумя (большими) основными факторами.

Факторинг этого числа является нетривиальной операцией, и этот факт является источником множества криптографических алгоритмов. Подробнее см. односторонние функции.

Приложение: Еще немного объяснений. Произведение двух простых чисел можно использовать в качестве открытого ключа, в то время как простые числа являются частным ключом. Любая операция, выполняемая с данными, которые могут быть отменены только с помощью одного из двух факторов, будет ненулевой для дешифрования.

Ответ 3

Вот очень простой и общий пример.

алгоритм шифрования RSA, который обычно используется на сайтах защищенной торговли, основан на том, что легко взять два ( очень больших) простых чисел и умножить их, в то время как очень трудно сделать обратное - значение: взять очень большое число, учитывая, что у него есть только два простых фактора, и найти их.

Ответ 4

Потому что никто не знает быстрого алгоритма, чтобы разделить целое на его простые факторы. Тем не менее, очень легко проверить, умножилось ли множество простых факторов на некоторое целое число.

Ответ 5

Есть несколько хороших ресурсов для наращивания криптографии. Здесь один:

С этой страницы:

В наиболее часто используемом общедоступном ключе криптографическая система, изобретенная Рон Ривест, Ади Шамир и Лен Адлеман в 1977, как общественные, так и частные ключи производятся из пары больших простых чисел в соответствии с относительно простой математический формула. Теоретически это может быть можно получить закрытый ключ от открытого ключа путем формулу назад. Но только произведение больших простых чисел общественных и факторинговых размер в простые числа настолько тверд, что даже самых мощных суперкомпьютеров в мир не может обыграть открытый ключ.

Книга Брюса Шнайера Прикладная криптография - это еще одна. Я очень рекомендую эту книгу; это весело читать.

Ответ 6

Это не столько важные числа, сколько важные, а алгоритмы, которые работают с простыми. В частности, нахождение факторов числа (любого числа).

Как вы знаете, любое число имеет как минимум два фактора. Правые числа имеют уникальное свойство, поскольку они имеют ровно два фактора: 1 и сами.

Причина факторинга настолько важна, что математики и ученые-компьютерщики не знают, как вычислить число, просто не пытаясь использовать все возможные комбинации. То есть сначала попробуйте делить на 2, затем на 3, затем на 4 и т.д. Если вы попытаетесь определить простое число - особенно очень большое - вам придется (по существу) попробовать все возможные числа между 2 и этим большим простым числом. Даже на самых быстрых компьютерах потребуются годы (даже столетия), чтобы определить типы простых чисел, используемых в криптографии.

Это факт, что мы не знаем, как эффективно распределять большое количество, что дает криптографическим алгоритмам их силу. Если кто-то однажды выяснит, как это сделать, все криптографические алгоритмы, которые мы в настоящее время используем, устареют. Это остается открытой областью исследований.

Ответ 7

Чтобы быть более конкретным относительно того, как RSA использует свойства простых чисел, алгоритм RSA критически зависит от теоремы Эйлера, в котором говорится, что для относительно простых чисел "a" и "N", a ^ e сравнимо с 1 modulo N, где e - Функция толеранта Эйлера от N.

Где в это входят штрихи? Чтобы вычислить функцию толеров Эйлера N эффективно, нужно знать простую факторизацию N. В случае алгоритма RSA, где N = pq для некоторых простых чисел "p" и "q", тогда e = (p - 1) (q - 1) = N - p - q + 1. Но, не зная p и q, вычисление e очень сложно.

Более абстрактно многие криптографические протоколы используют различные функции trapdoor, функции, которые легко вычислить, но трудно инвертировать. Теория чисел - это богатый источник таких функций доступа (таких как умножение больших простых чисел), а простые числа являются абсолютно центральными для теории чисел.

Ответ 8

Еще один ресурс для вас. Безопасность сейчас! эпизод 30 (~ 30-минутный подкаст, ссылка на расшифровку) рассказывает о проблемах с криптографией и объясняет, почему важны простые числа.

Ответ 9

Я бы предложил книгу Математическое путешествие в коде. Книга имеет приятное ощущение до земли, что удивительно, поскольку речь идет о криптографии. Книга суммирует путешествие Сары Фланнерис от изучения головоломок как ребенка к созданию алгоритма Кэли-Пурсера (CP) в возрасте 16 лет. Это дает удивительно подробное объяснение односторонних функций, теории чисел и простых чисел и того, как они соотносятся с криптография.

Что делает эту книгу еще более конкретной для вашего вопроса, Сара пытается реализовать новый алгоритм открытого ключа, используя матрицу. Это было намного быстрее, чем использование простых чисел, но было обнаружено отверстие в петле, которое могло бы использовать его. Оказывается, ее алгоритм лучше использовался как частный механизм шифрования. Книга является отличным свидетельством использования простых чисел для шифрования, поскольку она выдержала испытание временем и проблемы очень умных людей.

Ответ 10

Я не математик или криптик, поэтому здесь внешнее наблюдение в условиях неспециалиста (без фантастических уравнений, извините).

Вся эта нить заполнена пояснениями о HOW простых числах в криптографии, трудно найти кого-либо в этом потоке, объясняя простым способом WHY простые числа... скорее всего, потому что каждый воспринимает это знание как должное.

Только просмотр проблемы извне может вызвать реакцию; но если они используют суммы двух простых чисел, почему бы не создать список всех возможных сумм, которые могут генерировать два простых числа?

На этом сайте есть список 455,042,511 простых чисел, где самые высокие простые числа 9 987 500 000 (10).

Наибольшее известное правое (начиная с февраля 2015 года) 2 до мощности 257,885,161 - 1, которое составляет 17,425,170 цифр.

Это означает, что нет смысла сохраняя список всех известных простых чисел и тем более всех их возможных сумм. Легче взять число и проверить, является ли оно простым.

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

Ответ 11

Криптографические алгоритмы обычно полагаются на свою безопасность при наличии "трудной проблемы". Большинство современных алгоритмов, по-видимому, используют факторинг очень больших чисел в качестве своей сложной проблемы - если вы умножаете два больших числа вместе, вычисление их факторов является "трудным" (т.е. Трудоемким). Если эти два числа являются простыми числами, тогда есть только один ответ, что делает его еще более сложным, а также гарантирует, что, когда вы найдете ответ, он правильный, а не какой-то другой ответ, который просто приводит к тому же результату.

Ответ 12

Я думаю, что важными в криптографии являются не простые числа, а проблема проблемы простого факторизации

Предположим, что у вас очень большое целое число, которое, как известно, является произведением двух простых чисел m и n, найти m и n не легко. Алгоритм, такой как RSA, зависит от этого факта.

Кстати, есть опубликованная статья об алгоритме, который может "решить" эту проблему простого разложения в приемлемое время с использованием квантового компьютера. Таким образом, новые алгоритмы криптографии не могут больше полагаться на эту "трудность" простой факторизации, когда квантовый компьютер приходит в город:)

Ответ 13

Поскольку алгоритмы факторизации значительно ускоряются с каждым найденным фактором. Создание как частных ключей prime гарантирует, что первый найденный фактор также будет последним. В идеале оба секретных ключа также будут почти равны по стоимости, поскольку имеет значение только сила более слабого ключа.

Ответ 14

Основные числа в основном используются в криптографии, поскольку он занимает значительное время при определении того, является ли данное число простым числом или нет. Для хакера, если какой-либо алгоритм занимает много времени, чтобы разбить код, он становится бесполезным для них.