Шифр Вернама

XOR-шифрование · Побитовая операция

Как работает шифр Вернама?

+

Шифр Вернама (одноразовый блокнот) — метод шифрования, теоретически невзламываемый при трёх условиях: ключ случаен, равен длине сообщения и используется единожды.

1 Выбор кодировки

Символы сообщения преобразуются в биты. Доступные кодировки: Код Бодо (5 бит/символ), ASCII 7/8 бит, UTF-8 (переменная длина). Таблица символов обновляется динамически.

2 Ввод сообщения

Текст конвертируется в битовую последовательность согласно выбранной кодировке. Неподдерживаемые символы подсвечиваются предупреждением.

3 Генерация ключа

Ключ генерируется случайно (0/1 с равной вероятностью). Опции длины: 64–2048 бит или «По длине сообщения» (идеальный одноразовый блокнот). Если ключ короче сообщения — он циклически повторяется (снижает стойкость).

4 Шифрование (XOR)

Каждый бит сообщения складывается с битом ключа по правилу исключающего ИЛИ (XOR): 0⊕0=0, 0⊕1=1, 1⊕0=1, 1⊕1=0. Режимы: пошаговый (визуализация побитовой операции) или мгновенный.

5 Передача

Алиса отправляет Бобу:

  • Ключ — по защищённому каналу (анимация: золотой пакет по кривой траектории)
  • Шифротекст — по открытому каналу (анимация: синий пакет по прямой)
Оба пакета отображаются в HEX-формате (биты группируются по 8, конвертируются в шестнадцатеричные символы). Прибытие синхронизировано.

6 Расшифровка

Боб применяет тот же ключ к шифротексту через XOR: шифротекст ⊕ ключ = исходное сообщение. Благодаря свойству обратимости XOR, операция идентична шифрованию.

7 Обратная кодировка

Расшифрованные биты конвертируются обратно в символы. Пользователь выбирает кодировку декодирования — система проверяет совпадение с исходным сообщением и показывает предпросмотр.

8 Результат

Финальное сравнение: исходное сообщение, ключ (HEX), шифротекст (HEX), расшифрованный текст. При успешном совпадении отображается подтверждение и статистика.

Легенда визуализации:
Сообщение / результат  |  Ключ  |  Шифротекст  |  XOR-операция

Важно: В реальной криптографии ключ должен быть истинно случайным, никогда не повторяться и передаваться по защищённому каналу. Данная демонстрация — образовательная модель.

Выберите кодировку

Кодировка определяет, как символы преобразуются в биты

Код Бодо5 бит
Исторический телеграфный код (ITA1/ITA2).
A = 11000, B = 10011
ASCII 77 бит
Стандартный ASCII (0-127).
A = 1000001, Space = 0100000
ASCII 88 бит
Расширенный ASCII (0-255).
A = 01000001, Ä = 11000100
UTF-88-32 бит
Unicode переменной длины.
A = 01000001, Ж = 1101000010010110
Выбранная кодировка
СимволКодБиты