Факторизация больших чисел онлайн: RSA-калькулятор

Сохранить
Нажмите Ctrl+D для сохранения

Факторизация больших чисел

Введите составное число (BigInt) для раскладки на простые множители

Пожалуйста, введите корректное число (используйте только цифры).
Используется функция: xi = (xi-12 + 1) mod N
Поиск: НОД(|x - y|, N) > 1
Поиск решения уравнения:
N = x2 - y2 = (x - y) × (x + y)

Для запуска алгоритма поиска множителей нажмите кнопку ниже.

Идет анализ данных... Это может занять до 3 секунд.

Отчет о факторизации

Простые множители:
Затрачено времени: 0 мс
Оценка криптостойкости RSA:
Оценка...

Как пользоваться калькулятором факторизации?

Представьте, что вы хотите повесить на сундук с секретами очень надежный электронный замок. В криптографии (конкретно в алгоритме RSA) роль такого замка играет одно огромное число. А ключ к этому замку — это два числа поменьше (простые множители), которые нужно умножить друг на друга, чтобы получить замок.

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

Зачем нужен этот инструмент?

Обычный калькулятор в телефоне или на компьютере просто сойдет с ума, если вы попросите его разобрать число длиной в 20-30 цифр. Он выдаст непонятную ошибку или напишет что-то вроде 1.5e+20, обрезав точные данные. Наш скрипт создан специально для работы со сверхбольшими величинами (тип данных BigInt).

С его помощью вы можете:

  • Проверить задачи по высшей математике или информатике.
  • Узнать, насколько надежно случайно придуманное огромное число.
  • На практике посмотреть, как работают знаменитые математические методы (Полларда и Ферма).

Какой алгоритм выбрать?

Если вы не уверены, что нажать, просто выберите Классический перебор. Но если число очень сложное, лучше использовать математические хитрости:

  • Алгоритм Полларда — работает как сыщик. Он отлично находит небольшие делители, спрятанные внутри гигантского числа.
  • Метод Ферма — идеально подойдет, если два зашифрованных числа (множителя) очень близки друг к другу по значению.

Важное замечание: Чтобы ваш браузер или телефон не завис от перегрузки, мы установили ограничение времени работы алгоритма в 3 секунды. Если за это время скрипт не смог взломать число — значит, оно действительно имеет высокую криптографическую защиту!

Факторизация больших чисел — это поиск простых делителей, из которых состоит составное число. В алгоритме RSA перемножение двух простых чисел создает публичный ключ. Чтобы «взломать» шифр и восстановить приватный ключ, нужно разложить публичный модуль обратно на два исходных множителя.

Зачем взламывать гигантские числа?

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

Представьте, что вы умножили два простых числа и получили публичный «замок». Любой человек может использовать этот замок, чтобы запереть для вас сообщение. Но чтобы его открыть, нужно знать те самые два изначальных числа — это и есть ваш секретный ключ (принцип криптографии RSA).

Обычный процессор компьютера ломает зубы о длинные цифровые ряды. Калькулятор в смартфоне при вводе 20-значного числа просто обрежет его до вида 2.5e+19. Точность теряется, и найти делители становится технически невозможно. Наш инструмент использует специальный формат работы с памятью (BigInt), который переваривает сверхбольшие величины без потерь.

Реальный пример: перехват ключа RSA

Представьте, что вы участвуете в турнире по кибербезопасности. Вы перехватили открытый модуль ключа сервера: 3337. Вам нужно срочно узнать, из каких двух секретных множителей (p и q) он состоит, чтобы подделать цифровую подпись.

  1. Классический перебор начнет делить 3337 на 2, 3, 5, 7 и так далее, пока не дойдет до ответа.
  2. В случае с числом 3337 алгоритм моментально выдаст результат: 47 × 71.
  3. Имея на руках 47 и 71, хакер (или специалист по безопасности) генерирует закрытый ключ и получает полный доступ к зашифрованным данным.

Конечно, реальные банковские ключи состоят не из 4 цифр, а из 600 и более. На их факторизацию у лучших суперкомпьютеров мира ушли бы миллионы лет.

Какой метод математического взлома выбрать

Если число сравнительно небольшое (до 15-20 знаков), справится обычный перебор. Для более серьезных криптографических задач математики придумали элегантные обходные пути.

Алгоритм Как работает Когда применять
Классический перебор Механически делит число на все возможные простые числа по возрастанию. Для учебных задач и коротких чисел. Самый надежный, но самый медленный метод.
Rho-алгоритм Полларда Использует псевдослучайные последовательности и поиск наибольшего общего делителя (НОД). Отлично работает, если внутри 30-значного числа спрятан небольшой множитель.
Метод Ферма Ищет решение через разность квадратов (превращает задачу в геометрию). Идеален, если тот, кто создавал шифр, сглупил и взял два простых числа, которые слишком близки друг к другу по значению.

Оценка криптостойкости

  • Два крупных делителя: Идеальный сценарий для защиты данных. Истинная мощь RSA.
  • Один из делителей слишком мал: Фатальная ошибка при генерации ключа. Скрипт Полларда вскроет такое число за миллисекунды.
  • Больше двух делителей: Структура ключа нарушена, использовать такое число для шифрования категорически нельзя.
  • Таймаут (остановка скрипта): Если алгоритм сдался через 3 секунды, поздравляем — вы сгенерировали по-настоящему криптостойкое число, которое не по зубам браузерным скриптам.
Максим Алипатов
Максим Алипатов
Разработчик и проектировщик
Сохранить
Нажмите Ctrl+D для сохранения
Архитектор веб-инструментов с многолетним опытом. Проектирую точные интерактивные калькуляторы для платформы calcman.ru. Моя цель — делать сложные вычисления простыми и моментальными: будь то расчеты для строительства и инженерии, бизнес-модели, финансы, IT или повседневные задачи в сфере здоровья и авто. От профи до любителя — точный ответ в один клик.