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: