User Tools

Site Tools


one-time-pad

This is an old revision of the document!


Jednokratna bilježnica (One-time pad)

One-time pad, odnosno jednokratna bilježnica, je tehnika enkripcije koja pruža savršenu povjerljivost ukoliko se koristi ispravno – sa istinski slučajnim ključevima koji se nikad ne koriste ponovno. Međutim, to u stvarnosti baš i nije tako lako logistički izvedivo, što je zašto danas vrlo rijetko koristimo ovaj neprobojni kriptosustav.

Jednokratna bilježnica radi tako da kombinira jasni tekst sa ključem pomoću bitwise XOR operacije. Svaki bit jasnog texta XORa se sa odgovarajućim bitom ključa da bi se dobio skriveni tekst. Takva operacija zahtjeva ključ duljine samog jasnog teksta, što je otkud proizlaze gotovo svi logistički problemi vezani za jednokratnu bilježnicu. Svi ostali problemi proizlaze iz činjenice da se ključ te duljine ne smije ponovno koristiti (many-time pad je kritični propust sigurnosti) ili iz činjenice da se nekako treba distribuirati svima koji ga trebaju bez da završi kod nekoga kome ne treba.

Osim logističkih nedostataka, jednokratna bilježnica može biti podložna predvidivoj izmjeni poruke (eng. malleable encryption) ukoliko je napadaču poznata kriptirana poruka.
 Predvidiva izmjena popruke kod jednokratne bilježnice Zbog svega navedenoga, jednokratna bilježnica je u modernim sustavima praktički nepostojeća, a zamijenile su ju 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 (Many-time pad)

Kao što je ranije spomenuto, višekratna bilježnica, 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 da je rezultat XORanja dvaju skrivenih tekstova jednak rezultatu XORanja dvaju jasnih tekstova. Ovakvom operacijom, kroz 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 doznaje. 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, ukoliko 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 dvaputa koristimo isti ključ:  Kjuč Kriptiramo slike XORanjem s ključem i dobivamo rezultate:  m1 xor k m2 xor k Netko nas prisluškuje i XORa slike dobivene kriptiranjem, nakon čega vidi sljedeće:  Send cash :) Zaključujemo da ovo iz vrlo očitih razloga 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/

one-time-pad.1695891528.txt.gz · Last modified: 2025/06/03 10:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki