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

Урок 4. Модульная арифметика

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

Ты уже сталкивался с ней в уроке 1, когда буквы «заворачивались» через конец алфавита. Это и есть арифметика остатков — способ считать «по кругу». Именно на ней стоит вся современная криптография, так что этот урок — фундамент для RSA и Диффи–Хеллмана.

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

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

Арифметика часов

Посмотри на циферблат часов. Если сейчас 10 часов и пройдёт 5 часов — будет не 15, а 3 часа. Мы посчитали , а потом «завернулись»: . Часы работают по модулю 12.

📌 Запомни: — это остаток от деления на . Например, , потому что . Число называют модулем.

Говорят, что два числа сравнимы по модулю m, если у них одинаковый остаток. Пишут: (читается «17 сравнимо с 2 по модулю 5»).

Сложение и умножение по модулю

Главное удобство: остаток можно брать в любой момент — хоть в конце, хоть по ходу дела, результат один и тот же.

Пример по модулю 7:

💡 Чтобы не иметь дела с большими числами, бери остаток пораньше. Например, : считаем , тогда . Не пришлось вычислять 216!

Обратный элемент

В обычной арифметике «обратное к 3» — это , потому что . По модулю дробей нет, но идея та же: обратный к a по модулю m — это такое число , что

Найдём обратный к 3 по модулю 7. Перебираем :

Значит, обратный к 3 по модулю 7 — это 5. Записывают .

⚠️ Обратный существует не всегда! Он есть тогда и только тогда, когда и взаимно просты (их наибольший общий делитель равен 1). Например, у 2 нет обратного по модулю 4, потому что : сколько ни умножай 2 на что-нибудь, по модулю 4 единицу не получишь.

Обратный элемент — ключевая деталь RSA: именно так закрытый ключ «отменяет» действие открытого.

Быстрое возведение в степень

В криптографии постоянно приходится считать что-то вроде . Умножать 7 само на себя 13 раз долго, а числа получаются гигантские. Есть трюк — возведение в степень через квадраты.

Идея: чтобы получить , разложим показатель по степеням двойки: . Значит

А степени получаются последовательным возведением в квадрат — каждый раз беря остаток, чтобы числа не разрастались.

Посчитаем :

Теперь . Считаем по шагам:

Итог: . ✅

🤔 А знаешь ли ты? Чтобы возвести число в степень с 1000-значным показателем (как в реальном RSA), наивный способ потребовал бы больше умножений, чем атомов во Вселенной. А метод квадратов справляется примерно за пару тысяч умножений — компьютер делает это мгновенно.

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

Задача: найди обратный к 5 по модулю 11.

Ищем , при котором :

Ответ: . Проверка: . ✅

📝 Задачи

  1. Вычисли: .
  2. Вычисли: .
  3. Который час покажут часы (модуль 12), если сейчас 9, и пройдёт 20 часов?
  4. Найди обратный к 4 по модулю 9.
  5. Объясни, почему у числа 6 нет обратного по модулю 9.
  6. Вычисли методом квадратов (или как удобнее).
  7. Вычисли . (Подсказка: посмотри, чему равно , — это сильно упростит дело.)
  8. Со звёздочкой. Докажи, что если , то и .