ГоловнаСтаттіКриптографія

Шифрування RSA: Математика Великих Простих Чисел

Множення двох величезних простих чисел є миттєвим. Розкладання їхнього добутку назад на частини поки що обчислювально недоступне — і ця розбіжність забезпечує безпеку інтернету.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Публичные ключи и ловушка факторизации

До RSA безопасная связь требовала предварительно согласованного секрета, который обменивался лично. Криптография с открытым ключом, опубликованная Ривестом, Шамиром и Адельманом в 1977 году, устраняет это: каждый публикует публичный ключ, которым любой может воспользоваться для шифрования сообщения, но только владелец соответствующего приватного ключа может его расшифровать. Шифрование одностороннее — легко применять, вычислительно невыполнимо обратить — благодаря ловушке факторизации целых чисел: умножение двух больших простых чисел происходит мгновенно, но разложение их произведения считается требующим экспоненциального времени в количестве цифр. Все арифметические операции выполняются по модулю n, «часы-арифметику», где важен только остаток, что создает конечную циклическую группу, в которой возведение в степень легко, но обратное (дискретный логарифм) считается сложным.

Квантування та проходження крізь стіни

Серце RSA – це теорема Ейлера: для будь-якого m, що ділиться на натуральне число з n, m^φ(n) ≡ 1 (mod n), де φ(n) – це довільна функція Ейлера — кількість цілих чисел до n, які діляться на натуральне число з n. Для n = p×q (двох різних простих чисел), φ(n) = (p−1)(q−1), і обчислення її вимагає знання простих множників – ключовий момент, який робить RSA безпечним. Генерація ключа: обрати два великих різних простих числа p, q (кожне приблизно 617 десяткових цифр для RSA з 2048 бітами); обчислити n = p×q і φ(n); вибрати публічний показник e, що є взаємно просте число з φ(n), зазвичай e = 65537; обчислити приватний показник d = e⁻¹ mod φ(n) за допомогою розширеного алгоритму Евкліда; опублікувати (n, e) і зберегти (n, d) конфіденційними, знищивши p, q та φ(n).

Шифрування та дешифрування: як це працює

Щоб зашифрувати повідомлення m < n за допомогою публічного ключа, обчислюється c = mᵉ mod n. Для розшифрування обчислюється m = cᵈ mod n — і оскільки ed ≡ 1 (mod φ(n)), теорема Ейлера гарантує, що m^(ed) ≡ m (mod n), тому оригінальне повідомлення повертається точно. Приклад: p=61, q=53, n=3233, φ(n)=3120, e=17, d=2753. Зашифрування m=65 дає c = 65¹⁷ mod 3233 = 2790, а розшифрування 2790²⁷⁵³ mod 3233 повертає 65.

n = p·q             φ(n) = (p−1)(q−1)         e·d ≡ 1 (mod φ(n))
Encrypt:  c = m^e mod n        Decrypt:  m = c^d mod n
2048-bit RSA GNFS factoring time: ~10^18 years on today's fastest hardware

Сучасна безпека та кванцева загроза

Найвідоміший класичний напад, Загальний метод ділення чисел (General Number Field Sieve), потребував би приблизно 10¹⁸ років для розрахунку факторування модуля 2048 біт на найшвидших комп’ютерах — RSA-2048 є сьогоднішнім стандартом сертифікатів TLS, з додатковим запасом у кілька десятиліть для RSA-4096. Кріптографія на основі еліптичних кривих досягає аналогічного рівня безпеки за допомогою значно коротших ключів (ECC-256 ≈ RSA-3072), тому TLS 1.3 віддає перевагу ECDHE для обміну ключами. Реальна довгострокова загроза — квантова: алгоритм Шора розкладає цілі числа за поліноміальним часом на достатньо потужному квантовому комп’етері, а оціночний час взлому RSA-2048 становить понад 4 000+ логічних кубітів проти сьогоднішніх приблизно 1 000 шумних фізичних кубітів. NIST стандартизував алгоритми постквантової криптографії на основі латентних структур — ML-KEM та ML-DSA — у 2024 році як страхування від майбутнього.

Frequently asked questions

Чому нападник не може обчислити приватний ключ з публічного ключа?

Приватний показник d є модульним оберненим до публічного показника e відносно φ(n) = (p−1)(q−1), і φ(n) можна обчислювати лише якщо відомі прості множники p та q числа n. Без розкладання n — яке, як вважається, потребує експоненційного часу зі зростанням кількості цифр — нападник не може відновити φ(n) і, відповідно, не може отримати d.

Наскільки безпечним є RSA-2048 проти класичних комп'ютерів?

Найбільш відомий класичний метод атаки – Загальний сітчастий перебір (General Number Field Sieve) — потребує приблизно ~10^18 років на найшвидшому комп’ютері у світі для розкладання модуля RSA 2048 біт — значно більше, ніж вік Всесвіту. RSA-2048 є поточним стандартом для обміну ключами TLS, а RSA-4096 забезпечує ще більший запас безпеки.

Чи руйнує квантове обчислення RSA?

Алгоритм Шора факторизує великі цілі числа за поліноміальним часом на достатньо потужному квантовому комп’ютері і, таким чином, руйнує RSA. Злом RSA-2048 оцінюється в приблизно 4 000+ логічних (мільярдів фізичних) кубітів; сьогоднішні квантові комп'ютери мають близько 1 000 шумних фізичних кубітів. NIST стандартизував алгоритми пост-квантових алгоритмів на основі латентності (ML-KEM, ML-DSA) у 2024 році як запобіжний захід проти цієї майбутньої загрози.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію the simulation

Що ви знайшли?

Додати кроки відтворення (опційно)