Kriptografija lako

XOR operacija i primena u CTF zadacima

1️⃣ Šta je XOR?

XOR (Exclusive OR, ekskluzivno ILI) je bitovska (bitwise) logička operacija koja poredi dva bita:

  • rezultat je 1 ako su bitovi različiti
  • rezultat je 0 ako su bitovi isti

Tablica istinitosti

A B A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

Primer XOR operacije po bitovima

      0101
  ⊕  0011
      ----
      0110

Objašnjenje po bitovima:

  • 0 ⊕ 0 = 0
  • 1 ⊕ 0 = 1
  • 0 ⊕ 1 = 1
  • 1 ⊕ 1 = 0

Rezultat je 0110.


💡 Ključno svojstvo XOR-a (simetričnost)

XOR ima veoma važno svojstvo koje se stalno koristi u kriptografiji i CTF zadacima:

original ⊕ ključ = šifra
šifra   ⊕ ključ = original

Drugim rečima:

  • isti ključ se koristi i za šifrovanje i za dešifrovanje
  • XOR operacija je reverzibilna

Zbog toga je XOR idealan za jednostavne kriptografske zadatke.


2️⃣ Zašto se XOR često koristi u CTF zadacima

XOR je izuzetno popularan u CTF-ovima zbog sledećih razloga:

  • ✔ jednostavan je za razumevanje i implementaciju
  • ✔ veoma brz (radi na nivou bitova)
  • ✔ često se koristi za skrivanje stringova, flagova ili fajlova
  • ✔ može se koristiti sa:

  • jednim bajtom kao ključem

  • ponavljajućim ključem (repeating-key XOR)
  • ✔ odličan je za početničke i srednje teške kripto zadatke

Mnogi zadaci u CTF-u se svode na pitanje:

„Čime je ovo XOR-ovano i kako da vratim original?“


3️⃣ Praktičan primer XOR šifrovanja

Ulazni podaci

  • Tekst: ZASTAVA
  • Ključ: 0x20

Korak 1: Pretvaranje karaktera u heksadecimalne vrednosti

Karakter ASCII (hex)
Z 0x5a
A 0x41
S 0x53
T 0x54
A 0x41
V 0x56
A 0x41

Korak 2: XOR sa ključem 0x20

Operacija Rezultat Karakter
0x5a ⊕ 0x20 0x7a z
0x41 ⊕ 0x20 0x61 a
0x53 ⊕ 0x20 0x73 s
0x54 ⊕ 0x20 0x74 t
0x41 ⊕ 0x20 0x61 a
0x56 ⊕ 0x20 0x76 v
0x41 ⊕ 0x20 0x61 a

Rezultat

zastava

Vidimo da je originalni tekst ZASTAVA XOR-ovan u zastava.


4️⃣ Mini CTF zadatak 🧩

Zadatak

Dat je string koji je XOR-ovan jednim bajtom ključa.

  • Ključ: 0x1C
  • Šifrovani podaci (heksadecimalno):
4f 59 5f 67 6e 7d 66 69 71 79 71 43 44 53 4e 3d 61

Tvoj cilj

Dešifruj podatke i otkrij originalni tekst.

Hint

Koristi formulu:

dešifrovano = šifra ⊕ ključ

Probaj da XOR-uješ svaki bajt sa 0x1C i pretvoriš rezultat u ASCII karakter.


📝 Provera Znanja

Unesite svoj odgovor ispod da biste proverili da li ste razumeli lekciju: