Szyfr XOR – rodzaj szyfru symetrycznego wykorzystującego operację alternatywy rozłącznej (XOR, ) do szyfrowania danych. Należy do najprostszych szyfrów strumieniowych i stanowi podstawę wielu bardziej zaawansowanych algorytmów kryptograficznych.

Dla wiadomości , klucza oraz szyfrogramu szyfrowanie definiuje się wzorem: ,

natomiast odszyfrowanie: .

Wynika to z własności operacji XOR: , , .

Jeżeli klucz jest losowy i ma długość wiadomości, szyfr XOR staje się jednorazowym szyfrem Vernama, który jest teoretycznie niemożliwy do złamania.

Przykład Napis „Hello world!”:

01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100 00100001

Klucz „WIKI” (powtarzany):

01010111 01001001 01001011 01001001 01010111 01001001 01001011 01001001 01010111 01001001 01001011 01001001

Szyfrogram (XOR):

00011111 00101100 00100111 00100101 00111000 01101001 00111100 00100110 00100101 00100101 00101111 01101000

Ponowne wykonanie operacji XOR tym samym kluczem („WIKI”) przywraca wiadomość pierwotną „Hello world!”.

Implementacja Przykład implementacji w języku Python: