0Pricing
Cryptology Academy · Урок

Пошаговая генерация ключей RSA

Сгенерируйте p, q, n, e и d и разберитесь в роли каждого параметра

«Пошаговая генерация ключей RSA» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

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

Шаг 1: выберите два больших простых числа

Выберите большие случайные простые числа p и q. В рабочей системе: p,q ≥ 2^1023 (для RSA-2048). Для демонстрации: p=61, q=53.

Шаг 2: вычислите модуль

n = p × q = 61 × 53 = 3233. Модуль n — открытый компонент. В RSA-2048 используется n ≈ 2^2048. Разложение n на множители вычислительно невыполнимо для больших значений.

Шаг 3: вычислите функцию Эйлера

φ(n) = (p-1)(q-1) = 60 × 52 = 3120. После создания ключа это значение сохраняется в секрете — вместе с разложением на множители оно позволяет вычислить закрытый ключ.

Шаг 4: выберите открытый показатель степени e

Выберите e так, чтобы 1 < e < φ(n) и GCD(e, φ(n)) = 1. Стандартный выбор: e = 65537 (0x10001). Это простое число с малым весом Хэмминга (для быстрого шифрования), широко поддерживаемое в реализации.

Шаг 5: вычислите закрытый показатель степени d

d = e^(-1) mod φ(n): найдите d так, чтобы e×d ≡ 1 (mod 3120). Для e=17, φ=3120: d=2753 (проверка: 17×2753 = 46801 = 15×3120 + 1 ✓). Python: d = pow(e, -1, phi_n)

Пара ключей

Открытый ключ: (e=17, n=3233) — им можно делиться Закрытый ключ: (d=2753, n=3233) — секретный Свободно распространяйте (e, n). Защищайте d как собственную жизнь. После создания ключа никогда не раскрывайте p, q или φ(n).

Размеры ключей на практике

RSA-1024: устарел с 2010 года. RSA-2048: минимально рекомендуемый вариант. RSA-4096: высокий уровень безопасности, но в 4 раза медленнее. В большинстве сертификатов TLS используется RSA-2048 или ECDSA-256 (эквивалентный уровень безопасности при значительно большей скорости).

Оптимизация CRT

Китайская теорема об остатках (CRT) примерно в 4 раза ускоряет расшифрование RSA. Храните закрытый ключ как (p, q, dp, dq, qInv), а не только как d. Выполняйте вычисления отдельно по модулю p и q, а затем объединяйте результаты.

Создание ключей в Python

from cryptography.hazmat.primitives.asymmetric import rsa private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048 ) public_key = private_key.public_key()

Сериализация ключей

from cryptography.hazmat.primitives import serialization pem = private_key.private_bytes( serialization.Encoding.PEM, serialization.PrivateFormat.PKCS8, serialization.BestAvailableEncryption(b'passphrase') )

Быстрая проверка

При создании ключей RSA с p=7 и q=11 чему равно правильное значение n?

Итоги

Теперь вы умеете создавать ключи RSA с нуля. Далее мы применим эти ключи для шифрования и расшифрования сообщений с помощью модульного возведения в степень.

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

Урок «Пошаговая генерация ключей RSA» бесплатный?

Да — полный текст урока «Пошаговая генерация ключей RSA» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Пошаговая генерация ключей RSA»?

Сгенерируйте p, q, n, e и d и разберитесь в роли каждого параметра Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Пошаговая генерация ключей RSA»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы криптографии с открытым ключом
  2. Пошаговая генерация ключей RSA
  3. Математика шифрования и расшифрования RSA
  4. Практические применения RSA и размеры ключей
← Назад к Cryptology Academy