0Pricing
Cryptology Academy · Урок

Математика шифрования и расшифрования RSA

Примените модульное возведение в степень для шифрования и расшифрования сообщения

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

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

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

Учебное шифрование RSA

Зашифруйте сообщение M (как целое число) открытым ключом (e, n): C = M^e mod n Пример: M=42, e=17, n=3233 C = 42^17 mod 3233 Python: C = pow(42, 17, 3233) = 2557

Учебное расшифрование RSA

Расшифруйте шифротекст C закрытым ключом (d, n): M = C^d mod n C=2557, d=2753, n=3233 M = 2557^2753 mod 3233 Python: M = pow(2557, 2753, 3233) = 42 ✓

Почему это работает: теорема Эйлера

C^d mod n = (M^e)^d mod n = M^(ed) mod n. Поскольку ed ≡ 1 (mod φ(n)), M^(ed) = M^(1+k×φ(n)) = M × (M^φ(n))^k ≡ M × 1^k = M.

Алгоритм возведения в квадрат и умножения

Наивное вычисление M^e потребовало бы e умножений. Возведение в квадрат и умножение сокращает их число до O(log e): pow(base, exp, mod) в Python выполняет это автоматически.

Ограничение размера сообщения

Учебный RSA требует, чтобы M < n. Для RSA-2048 размер M может составлять не более 256 байт. Этого достаточно для шифрования короткого ключа AES, но не для непосредственного шифрования больших файлов.

Почему учебный RSA небезопасен

Проблемы необработанного RSA: 1. Один и тот же M всегда даёт один и тот же C (детерминированность) 2. Малый M при малом e: C = M^e буквально (модульное сокращение не выполняется) 3. Мультипликативность: Enc(M1)×Enc(M2) = Enc(M1×M2) Схемы дополнения устраняют все эти проблемы.

Шифрование RSA в Python (OAEP)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes ciphertext = public_key.encrypt( b'Secret message', padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) )

Расшифрование RSA в Python

plaintext = private_key.decrypt( ciphertext, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(plaintext) # b'Secret message'

Гибридный шаблон RSA + AES

# Real-world pattern: aes_key = os.urandom(32) # Random 256-bit AES key encrypted_key = rsa_encrypt(aes_key, recipient_pub) # RSA ciphertext = aes_gcm_encrypt(aes_key, plaintext) # AES # Send: encrypted_key + ciphertext

Показатели производительности RSA

Шифрование RSA-2048 (открытым ключом): около 0,1 мс. Расшифрование RSA-2048 (закрытым ключом): около 1 мс. AES-256-GCM: около 100 МБ/с. Гибридное шифрование сочетает скорость обмена ключами RSA с пропускной способностью AES при обработке данных.

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

При использовании учебного RSA с e=3 и n=33 чему равно шифрование M=5?

Итоги

Математика шифрования и расшифрования RSA понятна. Далее мы увидим, как RSA защищает HTTPS, SSH и подпись кода в реальных системах.

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

Урок «Математика шифрования и расшифрования RSA» бесплатный?

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

Чему я научусь в уроке «Математика шифрования и расшифрования RSA»?

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

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

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

Сколько времени занимает урок «Математика шифрования и расшифрования RSA»?

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

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

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

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

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