← До місії 2.3
РОЗДІЛ 02 · СУЧАСНІ ШИФРИ · МІСІЯ 2.3

Вернам і секрет одного використання

Як працює XOR і чому ключ не можна повторювати?

Буч допомагає волонтерам передавати повідомлення. Хтось пропонує двічі використати той самий секретний ключ. Чи безпечно це?

🎯 Розслідуйте, як XOR перетворює байти та чому повторення ключа розкриває зв’язок між повідомленнями.

Кіт Буч досліджує таблицю шифру Віженера

01. XOR — виключне АБО

XOR (⊕) порівнює біти: однакові дають 0, різні — 1. Наприклад, 01000001 ⊕ 00101010 = 01101011.

ABA ⊕ B
000
011
101
110

Мінілабораторія «Перемкни біти»

Натискайте біти повідомлення й ключа.

Повідомлення P

Ключ K

Ключ генерується криптографічним генератором браузера за наявності Web Crypto.

02. Чому XOR можна обернути?

(P ⊕ K) ⊕ K = P. Застосування того самого ключа вдруге відновлює початковий байт. Це властивість операції, а не гарантія безпечності будь-якого XOR-шифру.

03. Вернам і одноразовий блокнот

Гілберт Вернам працював над шифруванням телеграфних повідомлень. У бітовому одноразовому блокноті (OTP) кожен біт повідомлення поєднується з відповідним бітом секретного ключа: Cᵢ = Pᵢ ⊕ Kᵢ.

Ідеальна секретність можлива лише якщо ключ справді випадковий, не коротший за повідомлення, зберігається в таємниці та ніколи не використовується повторно.

OTP забезпечує секретність за цих умов, але сам по собі не засвідчує автора й не захищає від непомітної зміни повідомлення.

04. Небезпека повторення ключа

Якщо C₁ = P₁ ⊕ K і C₂ = P₂ ⊕ K, то C₁ ⊕ C₂ = P₁ ⊕ P₂. Ключ зникає з рівняння!

A (41 HEX) ⊕ 2A = 6B
B (42 HEX) ⊕ 2A = 68
6B ⊕ 68 = 03 = 41 ⊕ 42

Якщо перше повідомлення відоме, друге можна відновити без ключа. Для українського тексту спершу кодуємо символи в UTF-8, а потім працюємо з байтами.

05. Практичні розслідування

01 · Бітова майстерня Буча

Зашифруйте байт, побачте HEX і поверніть початкові дані.

Відкрити практику

06. Мініпроєкт «Одноразовий ключ Буча»

Створіть два короткі повідомлення однакової довжини. Для кожного використайте новий незалежний випадковий ключ відповідної довжини, зашифруйте, розшифруйте й порівняйте з небезпечним повторенням ключа. Поясніть висновок.

Перевірити знання у вебботі →