null
оператор · №003
XOR
исключающее ИЛИ · истина, когда операнды различны
определениеa ⊕ b = 1, если a ≠ b · = 0, если a = b
таблица0⊕0=0 · 0⊕1=1 · 1⊕0=1 · 1⊕1=0
свойствакоммутативен · ассоциативен · a⊕a = 0 · a⊕0 = a
применениешифр Вернама · контрольные суммы · нейросети · квантовые вентили
трюкswap без третьей переменной: a⊕=b; b⊕=a; a⊕=b
связаноmod · криптография · комплексные числа

эссе · 360 слов · 3 мин

Оператор, который шифрует и раскрывает одним движением.

XOR симметричен: то, что зашифровал, он же и расшифрует. это делает его идеальным для криптографии.

Возьмите любое число a и ключ k. Вычислите c = a ⊕ k — зашифровано. Теперь c ⊕ k = a — расшифровано. Тот же оператор, тот же ключ. Это шифр Вернама — единственный известный шифр, теоретически абсолютно стойкий.

Клод Шэннон доказал это в 1949 году: если ключ случаен, длиннее сообщения и используется ровно один раз — шифр нераскрываем. Не «очень сложно раскрыть», а математически невозможно: при любой попытке расшифровки с другим ключом получается осмысленный текст той же длины, и нет способа отличить настоящий от подделки1.

Шифр Вернама нераскрываем — это не эмпирика, это теорема. — Шэннон, 1949

XOR устроен иначе, чем обычное сложение. Для арифметики: 1 + 1 = 2. Для XOR: 1 ⊕ 1 = 0. Переноса нет. Каждый бит независим от соседей. Это делает XOR молниеносным — один такт процессора, без сложных схем переноса. И именно поэтому XOR используется в чек-суммах, хешах, контроле чётности — везде, где нужна быстрая обратимая операция над битами.

Знаменитый трюк со свапом: поменять местами a и b без третьей переменной. `a ^= b; b ^= a; a ^= b;` — три строки, ноль дополнительной памяти2. В эпоху, когда каждый байт памяти был на вес золота, это имело значение. Сегодня — историческая красота.

В квантовых вычислениях XOR — это вентиль CNOT (controlled NOT), один из базовых квантовых вентилей. Без него не построить запутанность; без запутанности нет квантового алгоритма3. Простой логический оператор оказался фундаментом квантового компьютера.

В симметрии XOR есть особая красота: он сам себе обратный. f(f(x)) = x. Таких операторов мало.