🎓 Мои уроки
← Все уроки: Криптография и теория чисел 📄 PDF

Урок 6. Идея RSA

Криптография

Диффи–Хеллман позволяет договориться о секрете. А RSA идёт дальше: он даёт каждому два ключа — один открытый, чтобы тебе писали, и один закрытый, чтобы читать мог только ты. Именно на RSA (и его родственниках) держатся банки, мессенджеры и электронные подписи. Сегодня ты соберёшь работающий RSA из маленьких чисел своими руками.

🎯 Что ты узнаешь

📖 Разбираемся в теме

Односторонняя дверь

Перемножить два простых числа проще простого: . А теперь наоборот — тебе дали число 33 и просят найти множители. Для 33 легко. Но если дать произведение двух 200-значных простых, то разложить его обратно не сможет ни один суперкомпьютер за время жизни Вселенной.

📌 Запомни: RSA стоит на асимметрии: умножать простые легко, а раскладывать произведение (факторизовать) — трудно. Это «односторонняя дверь»: пройти в одну сторону просто, обратно — почти нельзя.

Открытый и закрытый ключ

У каждого человека есть пара ключей:

Это как почтовый ящик: щель для писем видна всем (открытый ключ, любой бросит письмо), а ключ от дверцы — только у тебя (закрытый ключ).

Как строят ключи

  1. Берут два простых и , считают .
  2. Считают (это «функция Эйлера» от n; для нас — просто число).
  3. Выбирают открытую экспоненту , взаимно простую с .
  4. Находят закрытую экспоненту — обратный к по модулю (из урока 4!): .

Шифрование и дешифрование

Сообщение — это число (меньше ). Тогда:

Магия в том, что возведение сначала в степень , а потом в степень возвращает исходное число — потому что и подобраны как взаимно обратные по модулю .

Собираем настоящий пример

Возьмём совсем маленькие простые:

Итак: открытый ключ , закрытый ключ .

Зашифруем число :

, значит .

Расшифруем :

Считаем по шагам (с остатками): , а , значит . Тогда , и , то есть .

Получили обратно 2 — исходное сообщение! ✅ RSA работает.

💡 Проверим шифр ещё на паре чисел (открытый ключ (33,7), закрытый d=3):

  • : , обратно . ✅
  • : , обратно . ✅

Зачем это в интернете

Когда ты заходишь на сайт банка, он присылает тебе свой открытый ключ. Твой браузер шифрует им секрет — и расшифровать его сможет только банк своим закрытым ключом. Никто по дороге, даже провайдер, прочитать не может. Так работает защищённое соединение (https), в котором RSA и его родня играют главную роль.

🤔 А знаешь ли ты? Буквы RSA — это фамилии трёх учёных: Ривест, Шамир и Адлеман, опубликовавших схему в 1977 году. Позже выяснилось, что похожую идею несколькими годами раньше придумал британский математик Клиффорд Кокс, но его работа была засекречена разведкой и вышла на свет лишь в 1997-м.

⚠️ Наш пример с ломается мгновенно: любой сразу увидит, что , и вычислит . Безопасность появляется только при огромных и . Маленькие числа мы взяли, чтобы всё можно было посчитать на бумаге.

✍️ Разбор примера

Задача: с открытым ключом и закрытым зашифруй число и расшифруй результат обратно.

Шифрование: .

Значит .

Дешифрование: .

Получили 4 — исходное число. ✅

📝 Задачи

Во всех задачах, где не сказано иное, используй ключи из урока: , , .

  1. Чему равны и , если , ? Покажи вычисление.
  2. Проверь, что и действительно взаимно обратны по модулю (то есть ).
  3. Зашифруй число открытым ключом .
  4. Расшифруй результат из задачи 3 закрытым ключом и убедись, что получил обратно 8.
  5. Зашифруй число . (Тут будет забавный результат — приглядись к нему.)
  6. Возьми другие простые: , . Найди и .
  7. Почему сообщение обязательно должно быть меньше ?
  8. Со звёздочкой. Объясни своими словами, что именно делает RSA безопасным: почему, зная открытый ключ , злоумышленник всё равно не может найти ?