ЛАБ-211BigIntобразовательнаяревизия 2026-05-09

Лаборатория теории чисел: RSA, простота, обратное по модулю

Интерактивная лаборатория для изучения базовых конструкций теории чисел и асимметричной криптографии. Тест Миллера–Рабина для проверки простоты, расширенный алгоритм Евклида для нахождения обратного, демо RSA-шифрования с маленькими числами. Все расчёты — в JavaScript BigInt без ограничений на размер.

⏱ ~10 сек · BigInt · 4 раздела · от Эйлера до Райвеста
Лаборатория · ЛАБ-211|образовательная
calcal.ru / laboratoriya-teorii-chisel-rsa-ecdsa
Загрузка лаборатории…
12
Свидетелей М-Р
BigInt
Любые числа
4
Раздела
1977
RSA

Зачем эта лаборатория

Криптография с открытым ключом — основа интернет-безопасности. HTTPS, цифровые подписи, шифрование, blockchain — всё базируется на трёх алгоритмах: RSA (1977), DSA/ECDSA (1990s), Diffie-Hellman (1976). Понимание их работы требует знания теории чисел: простоты, факторизации, модульной арифметики, обратных элементов. Эта лаборатория показывает базовые операции пошагово.

Тест Миллера–Рабина

Простые числа — фундамент RSA. Для генерации 2048-битного ключа нужно найти два простых числа по 1024 бита каждое. Перебор кандидатов с пробным делением заняли бы вечность; нужен быстрый вероятностный тест.

Тест Миллера–Рабина (1976, M.O. Rabin; ранее M.M. Miller, 1976) основан на следующем факте: если n простое и a, такое что 1 < a < n, то либо a^d ≡ 1 (mod n), либо a^(2^r·d) ≡ -1 (mod n) для некоторого 0 ≤ r < s, где n-1 = 2^s·d. Если для случайно выбранного a свойство нарушается — n точно составное. Если выполняется — n вероятно простое.

С 12 свидетелями (наша реализация) для чисел до 3.3 × 10²⁴ тест детерминирован.

Расширенный алгоритм Евклида

Классический алгоритм Евклида находит НОД(a, b). Расширенный — дополнительно находит коэффициенты x, y такие, что a·x + b·y = gcd(a, b). Это критически важно для криптографии: позволяет найти обратный элемент по модулю d = e⁻¹ mod φ — приватный ключ RSA.

Сложность — O(log min(a, b)) — экстремально быстро даже для огромных чисел.

RSA — пошагово

  1. Генерация ключей: выбираем простые p, q; вычисляем n = pq, φ = (p−1)(q−1).
  2. Публичная экспонента: e — целое, взаимно простое с φ. Стандарт — e = 65537 = 2¹⁶ + 1.
  3. Приватная экспонента: d = e⁻¹ mod φ через расширенный Евклид.
  4. Публичный ключ: (n, e). Можно публиковать в открытом виде.
  5. Приватный ключ: (n, d). Хранится в секрете.
  6. Шифрование: c = m^e mod n, где m — сообщение (число меньше n).
  7. Дешифрование: m = c^d mod n. Только владелец d может расшифровать.

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

ECDSA и эллиптические кривые

Эллиптические кривые — другой класс групп с операцией сложения, на которых задача дискретного логарифма (восстановления k из k·G, где G — генератор) считается вычислительно неразрешимой. ECDSA использует это для подписей: 256-битный ключ ECDSA даёт криптостойкость, эквивалентную 3072-битному RSA.

Реализовать ECDSA в браузере с нуля — сложная задача (требует константного времени, защиты от time-attack), поэтому в нашей лаборатории — только теоретическое описание. Для практической работы — Web Crypto API.

ИСТОЧНИКИ
  1. Introduction to Algorithms (CLRS), 4th ed.. Cormen, Leiserson, Rivest, Stein. MIT Press. 2022.
  2. The Art of Computer Programming, Vol. 2 — Seminumerical Algorithms. Donald E. Knuth. Addison-Wesley. 1997 (3rd ed.).
  3. Handbook of Applied Cryptography. Menezes, van Oorschot, Vanstone. CRC Press. 1996 (free online).
  4. NIST FIPS 186-5 — Digital Signature Standard. NIST. csrc.nist.gov. 2023.
  5. Original RSA paper (1978). Rivest, Shamir, Adleman. MIT. 1978.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Это вероятностный тест простоты, основанный на свойстве: для простого n и любого 1 < a < n выполняется a^(n-1) ≡ 1 (mod n). Если для большого числа a равенство нарушается — n точно составное. С k раундами разных свидетелей вероятность ложноположительного результата ≤ 4^(-k). Для k=12 (наш случай) — около 1 в 16 миллионов. Для чисел до 3.3×10²⁴ детерминирован при правильном выборе свидетелей. RSA использует именно его для генерации больших простых.
Алгоритм Райвеста–Шамира–Адлемана (1977): (1) Выбираются два больших простых p и q (обычно по 1024+ бит); (2) n = p·q (модуль), φ(n) = (p−1)(q−1); (3) Выбирается e — целое, взаимно простое с φ (обычно e = 65537); (4) Вычисляется d = e⁻¹ mod φ — это секретный ключ. Шифрование: c = m^e mod n. Дешифрование: m = c^d mod n. Безопасность основана на сложности факторизации n при больших p, q. В нашей лаборатории p, q маленькие — для понимания алгоритма, не для реальной криптографии.
Потому что задача факторизации становится тривиальной. Для n=64 бит — секунды на любом ноутбуке. Для n=512 бит — несколько часов на кластере. Для n=1024 бит — годы на суперкомпьютере. NIST с 2030 года рекомендует только 3072+ бит RSA. Для квантовой эры — ECDSA или постквантовые алгоритмы (Kyber, Dilithium). В нашей лаборатории p, q ~ 60 — сразу видно, как рассчитываются параметры, но это образовательный режим.
Это алгоритм нахождения НОД(a, b) ВМЕСТЕ с коэффициентами x, y такими, что a·x + b·y = gcd(a,b). Используется для нахождения обратного элемента по модулю: если gcd(a, m) = 1, то существует a⁻¹ mod m, и его можно вычислить из расширенного Евклида: a·x ≡ 1 (mod m), где x — наше обратное. Это критически важная операция для RSA (вычисление приватного ключа d = e⁻¹ mod φ) и ECDSA. Сложность — O(log min(a, b)).
НЕТ. Все вычисления происходят в браузере без защиты от тайминговых атак, без аппаратной случайности (true RNG), без константного времени. Это образовательный инструмент — для понимания, как работают алгоритмы. Для реальной криптографии используйте проверенные библиотеки: Web Crypto API (в браузере), node:crypto (Node.js), libsodium, OpenSSL. Самописная криптография — почти всегда уязвима.
ECDSA (Elliptic Curve Digital Signature Algorithm) использует сложность дискретного логарифмирования на эллиптических кривых. Преимущества над RSA: (1) меньшие ключи — 256 бит ECDSA ≈ 3072 бит RSA по криптостойкости; (2) быстрее подпись и проверка; (3) меньше потребление электроэнергии (важно для мобильных и IoT). Недостатки: (1) сложнее реализовать корректно (тайминговые атаки, утечка nonce); (2) против квантовых компьютеров ECDSA так же уязвим, как RSA. Применяется в Bitcoin (secp256k1), TLS-сертификатах (P-256, P-384), SSH (ed25519).
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.

СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

Лаборатория теории игр (Нэш-равновесие)

Дилемма заключённого, ястреб-голубь, орлянка, координация, битва полов. Поиск чистых и смешанных равновесий Нэша.

/laboratoriya-teorii-igr-nash-ravnovesie

Лаборатория комбинаторной оптимизации

0/1 Knapsack DP за O(n·W) и Travelling Salesman Problem (TSP) — Held–Karp DP + Nearest Neighbor heuristic с визуализацией маршрутов.

/laboratoriya-kombinatornoj-optimizatsii

Лаборатория квантовой механики (Шрёдингер 1D)

Численное решение стационарного уравнения Шрёдингера для 5 потенциалов: гармонический осциллятор, прямоугольная и двойная ямы, Морзе. Метод Numerov.

/laboratoriya-kvantovoj-mehaniki-shrodingera

Калькулятор тригонометрии

Вычисление sin, cos, tan, cot, sec, csc. Решение треугольников, радианы/градусы, тригонометрические уравнения.

/trigonometry-calculator

Калькулятор оптимизации: симплекс, рюкзак, генетика

Решение задач оптимизации: линейное программирование (симплекс-метод), задача о рюкзаке и генетические алгоритмы. Поиск минимума/максимума.

/optimization-calculator

Калькулятор дробей (смешанные и неправильные)

Конвертер дробей онлайн. Перевод смешанных чисел в неправильные дроби и наоборот с подробным решением.

/fraction-calculator

Калькулятор НОД и НОК

Быстрый расчет НОД и НОК для любых чисел. Разложение на простые множители (факторизация) онлайн.

/gcd-lcm-calculator

Калькулятор матриц

Вычисление определителя, обратной матрицы, ранга и собственных значений. Удобный интерфейс с решением.

/matrix-calculator

Калькулятор комбинаторики

Перестановки P(n), сочетания C(n,k), размещения A(n,k) и вариации с повторениями. Факториал, биномиальные коэффициенты.

/combinatorics-calculator

Калькулятор комплексных чисел

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

/complex-number-calculator

Калькулятор производных и интегралов

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

/derivative-integral-calculator

Калькулятор чисел Фибоначчи

Вычислите n-е число Фибоначчи, проверьте принадлежность числа ряду, найдите золотое сечение. Формула Бине.

/fibonacci-calculator

Калькулятор золотого сечения

Пропорции золотого сечения (phi = 1.618). Для дизайна, архитектуры, фотографии. Прямоугольник и спираль.

/golden-ratio-calculator

Калькулятор сумм рядов

Арифметическая и геометрическая прогрессии, степенные ряды, ряды Тейлора. N-й член, сходимость.

/series-sum-calculator

Калькулятор Монте-Карло симуляции: оценка рисков

Прогнозирование стоимости активов и оценка рисков методом Монте-Карло. Расчет распределения вероятностей, VaR и волатильности.

/monte-carlo-simulation