XOR-portti

XOR-portti (Malline:K-en, sanoista exclusive or, joskus käytetään suomalaista nimitystä poissulkeva tai, ehdoton tai tai eri) on looginen portti, joka vastaa eksklusiivinen disjunktio -operaatiota. Operaatiosta käytetään logiikassa joskus symbolia tai . Sen merkitys on ”toinen ja vain toinen on tosi”, ts. propositiologiikan kaavana:
ja totuustauluna:
| p0 | p1 | p0 xor p1 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Normaalista looginen vertailusta OR:sta, se eroaa vain yllä olevan taulukon viimeisestä kohdasta. Tavallinen OR (tai) on tosi myös silloin, kun molemmat ovat tosi.
Xor ja salaus
Tietotekniikassa xor on yleisesti käytetty bittioperaatio. C-kielen kaltaisissa kielissä ja Javassa operaatio merkitään ^. Pascal:ssa kuten esimerkiksi Delphi, FreePascal ja Lazarus käytetään varattua sanaa xor [1]. Xoria käytetään salauksessa symmetrisenä salausmenetelmänä. Salaus perustuu avaimen ja lähdetekstin xor-operaatioon: salakielinen teksti saadaan tekemällä XOR operaatio avaimen kanssa ja se puretaan samalla tavalla: salakielinen teksti XOR avain. Jos avain on vähintään yhtä pitkä kuin viesti, salaus on teoriassa mahdoton murtaa. Tällaiseen menetelmään perustuvaan salausta kutsutaan kertakäyttö- (one-time pad) tai Vernamin menetelmäksi. Sen huono puoli on avaimen kertakäyttöisyys. Avaimien pituuden ja kertakäyttöisyyden vuoksi Vernamin menetelmää ei yleensä sovelleta käytäntöön sellaisenaan.