Jednokratna bilježnica

Jednokratna bilježnica (eng. one-time pad) tehnika je enkripcije koja pruža savršenu povjerljivost ako se koristi ispravno – s istinski slučajnim ključevima koji se nikad ne koriste ponovno. Međutim, to u stvarnosti nije uvijek logistički izvedivo, stoga danas vrlo rijetko koristimo ovaj kriptosustav.

Jednokratna bilježnica kombinira jasni tekst s ključem s pomoću bitovne XOR operacije. Svaki bit jasnog texta XOR-a se s odgovarajućim bitom ključa da bi se dobio skriveni tekst. Takva operacija zahtjeva ključ duljine samog jasnog teksta, što je velik logistički problem. Također, ključ se nikad ne smije ponovno koristiti te ga treba distribuirati svima koji ga trebaju.

Osim logističkih nedostataka, jednokratna bilježnica može biti podložna predvidivoj izmjeni poruke (eng. malleable encryption) ako je napadaču poznata kriptirana poruka.
 Predvidiva izmjena poruke kod jednokratne bilježnice Zbog svega navedenog, jednokratna bilježnica u modernim sustavima praktički ne postoji, već se kao alternativa koriste simetrična i asimetrična enkripcija.

PRIMJER - Enkripcija

Jasni tekst: Hello world
BIN (jasni): 01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100 00001010
duljina (jasni) 12x8 = 96 bitova

ključ (RNG) = 11111001 01111001 00101101 01000101 10000010 11111111 00101000 10001110 00001110 00110010 00110000 01110000

01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100 00001010 XOR
11111001 01111001 00101101 01000101 10000010 11111111 00101000 10001110 00001110 00110010 00110000 01110000 =
10110001 00011100 01000001 00101001 11101101 11011111 01011111 11100001 01111100 01011110 01010100 01111010

BIN (skriveni): 10110001 00011100 01000001 00101001 11101101 11011111 01011111 11100001 01111100 01011110 01010100 01111010
Skriveni tekst: ±FSA)íß_á|^Tz

Višekratna bilježnica (eng. many-time pad), odnosno višekratno korištenje istog ključa kod jednokratne bilježnice, smatra se kritičnim propustom sigurnosti sustava. Ali zašto?

Matematički i logički znamo da vrijedi:

c1 ⊕ c2 = m1 ⊕ m2 

odnosno, rezultat XOR-anja dvaju šifriranih tekstova istim ključem jednak je rezultatu XOR-anja originalnih dvaju tekstova. Ovom operacijom, koristeći šifrate, dobivamo parcijalne informacije o obje originalne poruke. Što više enkriptiranih poruka koje koriste isti ključ napadač posjeduje, to više informacija o porukama jasnog teksta može doznati. Ovakav napad, koji postupno otkriva sloj po sloj informacija, poznat je pod nazivom “crib dragging”. Uz to, možemo koristiti i frekvencijsku analizu za brže popunjavanje nepoznatih informacija u tekstu ako nam je jezik jasne poruke poznat.

PRIMJER - Grafički prikaz nesigurnosti ponovne uporabe ključa jednokratne bilježnice (višekratna bilježnica)
Recimo da želimo kriptirati i poslati dvije slike (s1 i s2):  Slika 1 (Send cash) i slika 2 (smiley) Pri tome dva puta koristimo isti ključ (k):  Ključ Kriptiramo slike XOR operacijom s ključem i dobivamo šifrate slika:  m1 xor k m2 xor k Netko nas prisluškuje i XOR-a šifrirane slike, nakon čega vidi sljedeće:  Send cash :)

Isti ključ koji je korišten dva puta poništava se pri XOR operaciji nad šifratima te ostaje samo XOR poslanih slika:

 (s1 ⊕ k) ⊕ (s2 ⊕ k) = s1 ​⊕ s2 ​⊕ (k ⊕ k) = s1 ⊕ s2 ⊕ 0 = s1 ⊕ s2 

Uzrok tomu su tri svojstva XOR operacije:

1. XOR operacija je i komutativna i asocijativna.

2. XOR nad dva ista operanda daje 0.

 X ⊕ X = 0 

3. XOR operanda s nulom kao rezultat daje isti operand.

 X ⊕ 0 = X 

Ovo demonstrira ranjivost ponovne uporabe istog ključa u jednokratnoj bilježnici.

Izvori

[1] Christof Paar, Jan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009.
[2] https://platforma.hacknite.hr/challenges
[3] Kriptografija i kriptoanaliza, predavanja, FER
[4] https://cryptosmith.com/2008/05/31/stream-reuse/