xor(0, 0) = 0 xor(0, 1) = 1 xor(1, 0) = 1 xor(1, 1) = 0
Обычно она определена для отдельных битов, но несложно построить процедуру, которая делает xor с цепочками битов одинаковой длины:
XOR("01010001101", "10110010110") = "11100011011"
Такая процедура является сверхбыстрым способом абсолютно невскрываемого шифрования. Единственный ее недостаток - ключ имеет ровно ту же длину, что и сообщение. При этом ключ должен быть цепочкой абсолютно случайных битов. Для наглядности обозначим операнды и результат операции с цепочками более понятными названиями:
XOR(ТЕКСТ, КЛЮЧ) = СООБЩЕНИЕ
Получив СООБЩЕНИЕ мы делаем следующее и получаем исходный ТЕКСТ
XOR(КЛЮЧ, СООБЩЕНИЕ) = ТЕКСТ
Вообще говоря, если мы располагаем каким-то двумя битовыми цепочками из этой триады, всегда можем восстановить третью даже например при помощи такой бессмысленной операции:
XOR(СООБЩЕНИЕ, ТЕКСТ) = КЛЮЧ
Cмысл битовых цепочек может быть каким угодно, можно например взять два осмысленных текста и сделать из них бессмысленный микс:
XOR ("- вы не знакомы с ma tante? - говорила Анна Павловна приезжавшим гостям", "- Сегодня урок проведу я, - сказал Городецкий. - Анна Тихоновна заболела.") = = "/c xnsdfИ9ы23p94n;'sdv-023v=,k 24o8y2gl;m3tщpo23ь00щ34-09i45t0-oesf][09цd"
Первый операнд - строка из романа известного борца с копирайтом Л.Н.Толстого, второй - из романа не менее известного борца за копирайт и тоже весьма упитанного С.В.Лукьяненко. Итак
XOR(ТОЛСТОЙ, ЛУКЬЯН) = БЕЛИБЕРДА
следовательно
XOR(БЕЛИБЕРДА, ЛУКЬЯН) = ТОЛСТОЙ
или так
XOR(ТОЛСТОЙ, БЕЛИБЕРДА) = ЛУКЬЯН
Ой ! Это уже не совсем белиберда, а как будто правонарушение. Но что именно является правонарушением: публикация белиберды, публикация Толстого, упоминание Толстого в связи с белибердой или XOR ? Вообще, кому принадлежат авторские права на белиберду: Толстому, Лукьяненко, мне, всем троим ?
Причем смешивая Толстого с другой белибердой, можем получить Джорджа Мартина, белиберда третьего сорта может дать Донцову и т.д. А ведь и вместо Толстого можно использовать какую-нибудь бессмыслицу. Получается, в целях борьбы за права авторов придется вообще запретить публикацию белиберды в Интернете ?! Ведь любая из них может быть использована в противоправных целях.