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 neprobojni 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:

m1 ⊕ m2 = c1 ⊕ c2 

odnosno, rezultat XOR-anja dvaju skrivenih tekstova jednak je rezultatu XOR-anja dvaju jasnih tekstova. Ovakvom operacijom koristeći skrivene tekstove dobivamo parcijalnu informaciju o objema jasnim porukama. Što više skrivenih poruka koje koriste isti ključ napadač posjeduje, to više informacija o porukama jasnog teksta može doznati. Ovakav napad koji otkriva sloj po sloj informacije 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 višekratne bilježnice
Recimo da želimo kriptirati i poslati dvije slike:  Slika 1 (Send cash) i slika 2 (smiley) Pri tome dva puta koristimo isti ključ:  Ključ Kriptiramo slike XOR-anjem s ključem i dobivamo rezultate:  m1 xor k m2 xor k Netko nas prisluškuje i XOR-a slike dobivene kriptiranjem, nakon čega vidi sljedeće:  Send cash :) Zaključujemo da ovo nije nimalo sigurno.

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/