Пн. Июн 1st, 2026

1. Основные понятия

Шифрование — преобразование данных для защиты от несанкционированного доступа.

Ключ — секретная информация, используемая для шифрования/расшифрования.

Типы шифров:

ТипКлючиСкоростьБезопасность
СимметричныеОдин общий ключВысокаяСредняя
АсимметричныеПара ключей (публичный/приватный)НизкаяВысокая

2. Шифры простой замены

Принцип: Замена каждого символа на другой по фиксированному правилу.

Шифр Цезаря:

Сдвиг букв на фиксированное число позиций

Формулы:

$$ C = (P + K) \mod 26 $$

$$ P = (C — K) \mod 26 $$

Где \( P \) — код исходной буквы (A=0, B=1, …, Z=25), \( C \) — код зашифрованной буквы, \( K \) — ключ.

Пример (K=3): Исходный: A B C → Зашифрованный: D E F

Шифр Виженера:

Использует ключ-слово. Каждая буква ключа определяет сдвиг для соответствующей буквы текста.

Пример:

  • Текст: HELLO
  • Ключ: KEY (K=10, E=4, Y=24)
  • Шифрование:
    • H(7) + K(10) = 17 → R
    • E(4) + E(4) = 8 → I
    • L(11) + Y(24) = 35 mod 26 = 9 → J
    • L(11) + K(10) = 21 → V
    • O(14) + E(4) = 18 → S
  • Результат: RIJVS

3. Симметричные шифры

Принцип: Один ключ для шифрования и расшифрования.

Примеры: AES, DES, ГОСТ 28147-89

Схема работы:

graph LR
A[Открытый текст] -->|Ключ| B[Шифрование]
B --> C[Шифртекст]
C -->|Тот же ключ| D[Расшифрование]
D --> E[Открытый текст]

Плюсы и минусы:

  • Плюсы: Высокая скорость, простая реализация
  • Минусы: Сложность передачи ключа, уязвимость при компрометации

4. Асимметричные шифры

Принцип: Использует пару ключей: публичный (шифрует) и приватный (расшифровывает).

Примеры: RSA, ECC, ElGamal

Схема работы:

graph LR
A[Открытый текст] -->|Публичный ключ| B[Шифрование]
B --> C[Шифртекст]
C -->|Приватный ключ| D[Расшифрование]
D --> E[Открытый текст]

Плюсы и минусы:

  • Плюсы: Безопасная передача данных, цифровые подписи
  • Минусы: Медленная скорость, сложные вычисления

5. Алгоритм RSA

Этапы работы:

  1. Генерация ключей:
    • Выбрать два простых числа \( p \) и \( q \)
    • Вычислить модуль \( n = p \times q \)
    • Вычислить \( \phi(n) = (p-1)(q-1) \)
    • Выбрать \( e \) (где \( 1 < e < \phi(n) \)), причём \( e \) и \( \phi(n) \) взаимно просты
    • Найти \( d \): \( d \times e \equiv 1 \mod \phi(n) \)
    • Публичный ключ: \( (e, n) \), Приватный ключ: \( (d, n) \)
  2. Шифрование: \( C = M^e \mod n \)
  3. Расшифрование: \( M = C^d \mod n \)

Пример (упрощённый):

  • \( p = 3 \), \( q = 11 \) → \( n = 33 \), \( \phi(n) = 20 \)
  • \( e = 3 \) (3 и 20 взаимно просты)
  • \( d = 7 \) (т.к. \( 3 \times 7 = 21 \equiv 1 \mod 20 \))
  • Шифруем \( M = 4 \): \( C = 4^3 \mod 33 = 64 \mod 33 = 31 \)
  • Расшифруем: \( M = 31^7 \mod 33 = 4 \)