0Pricing
Cryptology Academy · Урок

Учебный RSA и причины его небезопасности

Продемонстрируйте податливость, атаки с малой экспонентой и уязвимости при e=3

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

Введение

RSA из учебника (простое модульное возведение в степень) имеет несколько критических уязвимостей. На этом уроке мы рассмотрим каждую атаку и поймём, почему дополнение не является необязательным.

Атака на детерминированность

RSA из учебника детерминирована: Enc(M) всегда выдаёт один и тот же C. Злоумышленник может зашифровать предполагаемые сообщения и сравнить их с целевым шифротекстом. Это нарушает конфиденциальность, если множество возможных сообщений невелико.

Модифицируемость

RSA допускает мультипликативную модификацию: Enc(M1) × Enc(M2) = Enc(M1×M2) mod n. Злоумышленник может умножить шифротекст на Enc(2) = 2^e, заставив открытый текст увеличиться вдвое, не зная ключа.

Атака на короткое сообщение (e=3)

Если e=3 и M < n^(1/3): C = M^3 mod n = M^3 (без сведения по модулю). Извлечение кубического корня из C напрямую даёт M. Всегда используйте RSA с дополнением и проверяйте, что M достаточно велико.

Атака Копперсмита

Копперсмит показал: если e=3 и злоумышленнику известна большая часть M (например, M = YYYY-MM-DD...[неизвестная часть]), факторизация многочлена позволяет восстановить неизвестные биты. Короткие дополненные открытые тексты уязвимы.

Широковещательная атака Хастада

Если одно и то же M отправляется 3 получателям, каждый с e=3, то с помощью CRT значения C1,C2,C3 определяют M^3 по модулю (n1×n2×n3). Извлечение кубического корня напрямую даёт M. Никогда не шифруйте один и тот же открытый текст с e=3 для нескольких получателей.

Атака Франклина—Райтера на связанные сообщения

Если два сообщения M1 и M2 линейно связаны (M2 = aM1+b) и оба зашифрованы одним ключом, эту связь можно использовать для восстановления M1 и M2. Дополнение случайными байтами предотвращает такую атаку.

Атака с общим модулем

Если два сервера используют один и тот же n, но разные e1,e2 с GCD(e1,e2)=1, и оба шифруют одно и то же M, то M можно восстановить с помощью расширенного алгоритма Евклида. Никогда не используйте общие модули для разных сущностей.

Атака по времени на расшифрование RSA

Время расшифрования RSA зависит от битов закрытого ключа: алгоритм возведения в квадрат и умножения выполняет разные действия для разных битов. Временная атака Кочера 1996 года измеряла время расшифрования, чтобы восстановить закрытые ключи. Решение: ослепление.

Защита RSA с помощью ослепления

Перед расшифрованием: C' = C × r^e mod n (умножение на случайный множитель ослепления r^e). Вычислите M' = C'^d mod n. M = M' × r^(-1) mod n. Теперь время зависит от r, а не от M — злоумышленник видит только зашумленные измерения.

Основное решение: рандомизированное дополнение

У всех атак на RSA из учебника есть общее решение: рандомизированное дополнение. PKCS#1 v1.5 добавила случайность. OAEP добавила доказуемую безопасность. При правильном дополнении ни одна из перечисленных атак не работает.

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

Какое свойство RSA из учебника позволяет злоумышленнику проверить, содержит ли шифротекст определённое сообщение?

Итоги

RSA из учебника опасно небезопасна. Далее мы изучим дополнение PKCS#1 v1.5 — его устройство и применение, а также атаку Блайхенбахера, которая показала его уязвимость.

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

Урок «Учебный RSA и причины его небезопасности» бесплатный?

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

Чему я научусь в уроке «Учебный RSA и причины его небезопасности»?

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

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

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

Сколько времени занимает урок «Учебный RSA и причины его небезопасности»?

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

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

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

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

  1. Учебный RSA и причины его небезопасности
  2. Дополнение PKCS#1 v1.5 и атака Блайхенбахера
  3. OAEP: оптимальное асимметричное дополнение шифрования
  4. RSA-PSS для цифровых подписей
← Назад к Cryptology Academy