nevena laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja...

32
UNIVERZITET CRNE GORE Prirodno-matematički fakultet Podgorica Nevena Laković Dijeljenje tajne Specijalistički rad Podgorica, 2015.

Upload: others

Post on 17-Jan-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

UNIVERZITET CRNE GORE

Prirodno-matematički fakultet Podgorica

Nevena Laković

Dijeljenje tajne

Specijalistički rad

Podgorica, 2015.

Page 2: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

UNIVERZITET CRNE GORE

Prirodno-matematički fakultet Podgorica

Dijeljenje tajne

Specijalistički rad

Kriptografija Nevena Laković

Mentor: Vladimir Božović Matematika i računarske nauke

Podgorica, septembar 2015.

Page 3: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Apstrakt

U ovom radu ćemo prikazati protokole između dvije ili više osoba, u kojem be-

zbjednosni ciljevi različitih strana mogu biti u konfliktu. Fokusiraćemo se na proto-

kole dijeljenja tajne koji omogućavaju da se tajni podatak dijeli na više djelova, pri

čemu dobijeni djelovi ne govore ništa o cjelini. Cilj ove podjele da se omogući rekon-

strukcija početnog tajnog podatka koristeći unaprijed zadati broj validnih djelova,

odnosno nekog kvalifikovanog podskupa originalnog skupa djelova. Ovaj koncept je

vrlo značajan kriptografski alat sa brojnim primjenama u praksi. Jednu, konkretnu i

vrlo značajnu primjenu ćemo predstaviti u ovom radu.

3

Page 4: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Abstract

In this work we will show the protocols between two or more persons, in which

security goals of different sides could be in conflict. We focus on the secret sharing

protocols that enable dividing secret information into several parts, with the property

that the resulting parts are not saying anything about the whole. The aim of this

division is to enable the reconstruction of initial secret information using pre-defined

number of valid parts or a qualified subset of the original set of parts. This concept

is very important cryptographic tool with numerous applications in practice. One

specific and very important application will be presented here.

4

Page 5: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Sadržaj

5

Page 6: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 1

Uvod

Razvoj elektronskih komunikacija doveo je do toga da se razmjena informacija

povjerljive sadržine odvija svakodnevno. Bilo da je u pitanju razmjena elektronske

pošte između poslovnih partnera ili pak korišćenja elektronskog bankarstva ili nekog

drugog vida razmjene povjerljivih informacija, bitno je da ne dođe do neovlašćenog

pristupa podacima koji se šalju. Da bi se prenos ovakvih informacija učinio sigurni-

jim, one se modifikuju na takav način da osoba kojoj one nisu namjenjene ne može da

ih protumači u slučaju da dođe u njen posjed. U cilju zaštite podatka od neželjenog

uništenja, potrebno je da napravimo njegove kopije na što više lokacija. Međutim,

proporcionalno sa povećanjem broja lokacija, povećava se rizik od neovlašcenog pri-

stupa i ovakav koncept je suprotan konceptu sigurnosti u kome broj kopija treba

da bude što manji. Šeme dijeljenja tajne prevazilaze ovaj problem, tako što se na

razlićitim lokacijama ne ostavlja kompletan podatak, već njegovi djelovi.

1

Page 7: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 2

Uvod u kriptografiju

Kriptografija je naučna disciplina koja se bavi proučavanjem metoda za slanje po-

ruka u određenom obliku u kome su čitljive samo onom kome su i namijenjene. Sama

riječ kriptografija je grčkog porijekla i u doslovnom prevodu znači "tajno pisanje".

Osnovni zadatak kriptografije je da omogući dvijema osobama da komuniciraju preko

nesigurnog komunikacionog kanala na takav način da treća osoba, koja može nadzi-

rati komunikacioni kanal, ne može razumjeti samu poruku. Poruku koju treba poslati

obično nazivamo otvoreni tekst. Proces maskiranja poruke, koji ima svrhu sakrivanja

njenog originalnog sadržaja, zove se enkripcija ili šifrovanje. Rezulat ovog procesa se

naziva kriptovani tekst ili kriptogram. Inverznim procesom se od enkripcije, koji se

naziva dekripcija ili dešifrovanje, dobija se početni - otvoreni tekst. [?]

otvoreni tekst kriptovani tekst otvoreni tekst- -enkripcija dekripcija

Označimo sa P otvoreni tekst a sa C kriptovani tekst. Pod tekstom možemo pod-

razumijevati proizvoljan tekstualni fajl, niz bitova, digitalizovanu sliku... U opštem

slučaju se poruka prvo prevodi u neki cio broj ili niz brojeva čime bi se omogućila

manipulacija pomoću aritmetike računara (šifrovanje i dešifrovanje obično obavlja ra-

čunar). Bez gubljenja opštosti ćemo nadalje pod porukom podrazumijevati cio broj.

Šifrovanje i dešifrovanje možemo opisati funkcijama E i D za koje važi da je

2

Page 8: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

C = E(P ), P = D(C), D(E(P )) = P.

Kriptografski algoritam možemo posmatrati kao funkciju koja se koristi za šifrovanje

odnosno dešifrovanje. Pošiljalac i primalac moraju da se dogovore oko procedure ši-

frovanja odnosno dešifrovanja. Kriptografski algoritmi koriste ključ, koji obezbjeđuje

informacije za jednostavno šifrovanje od strane pošiljaoca i lako dešifrovanje na strani

primaoca. Disciplina koja se bavi razbijanjem kriptovanog teksta naziva se kripto-

analiza. Oblast matematike koja obuhvata i kriptografiju i kriptpanalizu naziva se

kriptologija.

Prethodno definisane funkcije enkripcije i dekripcije, E i D, možemo definisati u za-

visnosti od parametra k, odnosno ključa. Skup K kojem pripada parametar, odnosno

kluč k, zovemo domen ključa. Stoga, govorimo o funkcijama enkripcije i dekripcije

koje zavise od ključa k i pišemo Ek odnosno Dk. U opštem slučaju ključevi za šifro-

vanje i dešifrovanje ne moraju biti jednaki. U tom slučaju imamo

C = Ek1(P ) i P = Dk2(C).

2.1 Podijela kriptografskih algoritama

Prema vrsti ključa možemo da razlikujemo:

• Simetrične algoritme - algoritmi kod kojih se ključ za dešifrovanje može izračunati

na osnovu ključa za šifrovanje i obrnuto. U velikom broju slučajeva su ovi ključevi

zapravo identični. Ovi algoritmi nazivaju se jos i algoritmima sa tajnim ključem.

Simetrični algoritmi se mogu dalje podijeliti na: lančane šifre i blokovske šifre. Lan-

čane šifre obrađuju bit po bit otvorenog teksta dok blokovske rade nad otvorenim

tekstom podijeljenim na grupe bitova.

3

Page 9: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

• Asimetrične algoritme - algoritmi sa takozvanim javnim ključem. Ključ za šifro-

vanje je javan i različit je od ključa za dešifrovanje. Naravno ključ za dešifrovanje,

kod ovog tipa algoritama, ne može se (u bilo kom razumnom vremenu) izračunati na

osnovu javnog ključa.

2.2 Kriptoanalitički napadi

Osnovni cilj kriptografije je očuvanje tajnosti sadržaja poruke od nekog ko ”prislu-

škuje” kanal veze - napadača. Sa druge strane vidjeli smo da je kriptoanaliza nauka

određivanja otvorenog teksta na osnovu poruke (bez samog poznavanja ključa). Po-

stoji nekoliko tipova kriptoanalitičkih napada. Osnovna podjela je izvršena prema

količini inforomacija koju sam napadač poznaje (u svim varijantama se predpostavlja

da napadač poznaje algoritam za šifrovanje):

1. Napad na osnovu kriptovanog teksta

Napad na osnovu kriptovanog teksta predstavlja najopštiji i najteži napad. Kriptoa-

nalitičar ima na raspolaganju određeni broj kriptograma: C1, C2, . . . , Cn dobijenih od

nepoznatih poruka P1, P2, . . . , Pn. Cilj je dešifrovati ove poruke i naći algoritam za

dešifrovanje novih poruka, odnosno naći ključ k koji je korišćen prilikom šifrovanja.

2. Napad na osnovu parova (otvoren tekst, kriptovan tekst)

U ovom slučaju kriptoanalitičar poseduje određeni broj poruka i njihovih kriptograma:

(P1, C1), (P2, C2), . . . , (Pn, Cn). Kao i u prethodnom slučaju, potrebno je naći ključ

kojim je vršeno šifrovanje.

3. Napad na osnovu izabranog otvorenog teksta

Ova klasa napada je zahtjevnija od prethodne dva. Naime, podrazumijavamo da krip-

toanalitičar ima pristup mašini za enkripciju određen broj puta. Očigledno, ukoliko

postoje uslovi za ovakav napad, onda kriptoanalitičar lakše dolazi do informacija o

4

Page 10: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

samom ključu.

Sigurnost algoritma se mjeri preko broja operacija koje treba izvršiti prilikom njego-

vog razbijanja. Za neki algoritam kažemo da je bezuslovno siguran ukoliko je nemo-

guće rekonstruisati otvoreni tekst bez obzira na količinu infromacija koju poseduje.

Nama su, naravno, od interesa oni algoritmi koji su praktično sigurni, čije je raz-

bijanje praktično neizvodljivo u odnosu na sadašnje računarske kapacitete i poznate

algoritme razbijanja.

5

Page 11: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 3

Šema dijeljenja tajne

Tajno dijeljenje su svaki ponaosob izumjeli Adi Šamir i Džordž Blejkli 1979. go-

dine. U problemu dijeljenja tajne, tajnu ćemo označiti sa s i podijelićemo je na n

dijelova. Dijelove tajne ćemo označiti sa Di, i = 1, . . . , n i to su ključevi. Spajanjem

dovoljnog broja ključeva dobijamo tajnu s. Broj ključeva koji je potreban da bi se

tajna rekonstruisala zove se prag. Dio podatka, označen kao ključ u šemi dijeljenja

tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi

otkrila nešto o samoj tajni s ili o nekom drugom ključu.

Zadatak dijeljenja tajnog podatka na n djelova D1, D2, . . . , Dn treba da zadovolji slje-

deće:

• Sastavljanjem bilo kojih k, k ≤ n, ili više Di djelova rekonstruiše se početni podatak

S.

• Sastavljanjem bilo kojih k − 1 ili manje Di djelova nije moguće otkriti početni po-

datak S.

Ovako definisan problem naziva se dijeljenje tajne sa pragom k-od-n . Ako je k = n,

onda su potrebni svi djelovi da bi se tajna rekonstruisala, pa je prag jednak broju

ključeva. Šemu dijeljenja tajne odlikuje visok stepen sigurnosti i otpornost na krađu

6

Page 12: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

podataka, jer i sa k− 1 ključeva ne smije se saznati tajna. Visok stepen pouzdanosti

ogleda se u tome što i sa uništavanjem n− k ključeva možemo generisati tajnu. [?]

3.1 Pristupne strukture

Primjer 1. Tajnu s, s ∈ N ,treba da podijelimo između četiri osobe A,B,C i D , tako

da spajanje dva ključa {A,B} , {B,C} ili {C,D} omogućava rekonstruisanje tajne, a

osobe {A,D} spajanjem svojih ključeva ne mogu rekonstruisati tajnu.

Nasumično biramo ključeve {D1 , D′1 , D2, D′2 , D3 , D′3 } ∈ N tako da važi uslov:

Di + D′i = s , i=1,2,3.

Ključ D1 daćemo osobi A, ključeve D′1 i D2 osobi B, D′2 i D3 osobi C i ključ D′3 osobi

D. Ovakva podjela ključeva zadovoljava traženi uslov.

Familije skupova koji rekonstruišu tajnu, kao i proširenja tih skupova sa ostalim

ključevima nazivaju se kvalifikovane familije. Ovakva struktura Γ koja ima pristup

(eng. access structure), sastavljena je od podskupova skupa {1, . . . , n}. Tada su

ključevi Di podijeljeni po prioritetima i ovo se radi kad postoji potreba za dijeljenjem

ključeva osobama na različitim hijerarhijskim nivoima ili potreba dijeljenja podataka

na nepouzdanim lokacijama. U primjeru 1 imamo tri kvalifikovana skupa {A,B} ,

{B,C} i {C,D}, ali i skupovi kao što su {A,B,C},{B,C,D} i {A,B,C,D} su takođe

kvalifikovane familije.

Definicija 1. Monotona struktura na skupu P je kolekcija Γ ako važi:

• P ∈ Γ

• Ako je A ∈ Γ i B skup takav da važi: A ⊂ B ⊂ P , tada je i B ∈ Γ .

U gornjem prijmeru pristupna struktura je monotona i to je svojstvo koje važi za

sve pristupne strukture kod dijeljenja tajni. Za monotonu strukturu važi da skupovi

7

Page 13: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

iz Γ dolaze u lancima A ⊂ B ⊂ C ⊂ P . Skup koji čini početak lanca ćemo zvati

minimalni kvalifikovani skup i njega ćemo na pristupnoj strukturi Γ označavati sa

m(Γ). Sada možemo dati neformalnu definiciju, šta znači šema dijeljenja tajni.

Definicija 2. Šema dijeljenja tajni za monotonu pristupnu strukturu Γ nad skupom

P i prostorom tajni S je par algoritama koji se zovu dijeljenje i rekonstrukcija sa

sledećim svojstvima:

• Za tajnu s ∈ S, algoritam Dijeljenje (S,Γ) određuje vrijednost sA za svaki skup

A ∈ P . Vrijednost sA se naziva udio tajne s za dati skup A.

• Ulazni podatak za algoritam Rekonstrukcija je sO, za neki skup O ∈ P. Ovaj

algoritam vraća tajnu s ako je O ∈ Γ, a u suprotnom se ne vraća ništa.

Šema dijeljenja tajne se smatra sigurnom ako napadač ne može da sazna osnovne

informacije o tajni bez pristupa kvalifikovanom skupu. Takve šeme ćemo zvati be-

zbjedne šeme.

Primjer 2. Imamo skup P={A, B, C, D} sa pristupnom strukturom

Γ={{A,B}, {A,C} ,{A,D}, {B,C },{B,D},{C,D} ,{A,B,C} ,{A,B,D}, {B,C,D},{A,B,C,D}}

Minimalni kvalifikovani skup je {{A,B}, {A,C} ,{A,D}, {B,C },{B,D},{C,D}}

Primjetimo da bilo koja dva člana iz skupa P mogu rekonstruisati tajnu i takvu šemu

zovemo pristupna struktura sa pragom 2-od-4. Pristupne strukture možemo posma-

trati preko Bulovih funkcija. Razmotrimo skup m(Γ) minimalnog kvalifikovanog skupa

i definišimo formulu: ∨O∈m(Γ)

(∧O∈O

O

)

Naš prvi primjer možemo zapisati u obliku:

( A ∧ B) ∨ (B ∧ C) ∨ (C ∧ D).

Ovo je primjer formule koja je zadana u disjunktivnoj normalnoj formi [?]

8

Page 14: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

3.2 Princip dijeljenja tajni

Upoznaćemo dvije metode za izgradnju šeme dijeljenja tajne za proizvoljnu mo-

notonu pristupnu strukturu. Pretpostavljaćemo da je prostor tajni S skup bitova

dužine i i uzećemo da s ∈ S označava tajnu koju želimo da podijelimo.

3.2.1 Ito-Nišizeki-Saito dijeljenje tajne

Ova šema dijeljenja tajni koristi DNF Bulove formule koje smo predstavili u pret-

hodnom dijelu. Svako ∨ se konvertuje u spajanje operacija, a svako ∧ u ⊕ operaciju.

Algoritam je sljedeći: Za svaki minimalni kvalifikovani skup O ∈ m(Γ) gene-

risaćemo dijeljenja si ∈ S, pri čemu je 1 ≤ i ≤ l slučajno, gdje je l =| O | i važi

s1 ⊕ . . .⊕ sl = s. Osoba A dobija udio si ako ima poziciju i u skupu O .

Primjer 3. Imamo formulu

(P ∧G) ∨ (V ∧ S ∧G).

Generišimo dijeljenja pet elemenata si ∈ S tako da

s = s1 ⊕ s2

= s3 ⊕ s4 ⊕ s5.

Četiri dijeljenja su definisana na sledeći način:

sP = s1

sV = s3

sS = s4

sG = s2 || s5 .

Primjetimo da osoba G posjeduje dva puta više podataka u odnosu na ostale, tako

da ova šema nije efikasna. Idealno bi bilo kad bi svaka osoba posjedovala n-ti dio

9

Page 15: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

informacije kako bi se rekonstruisala tajna od n bita.

3.2.2 Replikacija dijeljenja tajni

U ovoj šemi prvo ćemo da napravimo skupmaksimalnih nekvalifikovanih sku-

pova. To su skupovi svih osoba, takvi da, ako dodamo jednu novu osobu dobijamo

kvalifikovani skup. Ove skupove ćemo obilježiti sa A1, . . . , At dok su Bi = P\Ai

njihovi teorijski komplementi. Potom, podijelimo s na t dijelova, tako da svaki do

djelova pripadne skupu Bi. Dakle, imamo

s = s1 ⊕ . . .⊕ st.

Osobi je data tajna si ako je ona iz skupa Bi.

Primjer 4. Neka su dati maksimalni nekvalifikovani skupovi

A1 = {P, V, S} , A2 = {V,G} i A3 = {S,G}

Njihovi komplementi su skupovi

B1 = {G} , B2 = {P, S} i B3 = {P, V }.

Generišimo tri dijeljenja s1, s2 i s1, tako da važi s = s1 ⊕ s2 ⊕ s3 a zatim definišimo

dijeljenja kao:

sP = s2 || s3,

sV = s3,

sS = s2,

sG = s1.

Dakle, samo kvalifikovani skupovi mogu rekonstruisati tajnu.

Primjer 5. Za prag 2-od-4 pristupne strukture imamo sljedeće nekvalifikovane sku-

pove:

10

Page 16: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

A1 = {A}, A2 = {B}, A3 = {C} i A4 = {D}.

Pri formiranju komplemenata dobijamo:

B1 = {B,C,D} , B2 = {A,C,D} , B3 = {A,B,D} i B4 = {A,B,C}.

Formiramo dijeljenje na četiri osobe tako da: s = s1 ⊕ s2 ⊕ s3 ⊕ s4 i

sA = s2 || s3 || s4,

sB = s1 || s3 || s4,

sC = s1 || s2 || s4,

sD = s1 || s2 || s3.

Iako prethodne dvije konstrukcije osiguravaju mehanizam za izgradnju šeme dije-

ljenja tajne za bilo koju monotonu pristupnu strukturu, one nisu dovoljno efikasne.

Posebno su loše zbog praga pristupne strukture, pogotovo ako se broj osoba u skupu

povećava. U nastavku je prikazan efikasan mehanizam za prag dijeljenja tajni, koji

se zove Šamirovo dijeljenje tajne.

11

Page 17: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 4

Rid Solomonovi kodovi

Korekcija grešaka na kodovima je mehanizam za prenos podataka od neke tačke

A do tačke B, takav da se određene greške koje se javljaju tokom prenosa (šum,

zlonamjerna promjena podataka...) mogu ispraviti. Prvi problem na koji nailazimo

je detekcija greške i u tom slučaju nas samo zanima da li je došlo do promjene u

podacima ili ne. U kriptografiji, za svaku grešku "krivimo"napadača, tako da često

pribjegavamo složenim mehanizmima za rješavanje problema.

Drugi problem je ispravljanje grešaka. Jasno, nije moguće se ispraviti sve greške,

ali je moguće ispraviti određen broj koji ne prelazi neki gornji limit. Za ovo poglavlje

ćemo podrazumijavti da je čitalac upoznat sa elementarnim konceptima iz Teorije

kodiranja. Jedan tip popularnih kodnih sistema, a na koje ćemo obratiti više pažnje,

su Rid-Solomonovi kodovi.

Razmotrimo skup polinoma, stepena manjeg ili jednakog t, nad konačnim poljem Fq

P = {f0 + f1X + · · ·+ ftXt : fi ∈ Fq}.

Ideja je da se svaka riječ dužine t zapravo odgovara jednom polinomu iz naznačenog

skupa. Veličina skupa mogućih riječi dužine t je qt+1. Svaku od datih riječi kodiramo

tako što polinom evaluiramo nad određenom skupu tačaka iz nekog skupa X. Dakle,

12

Page 18: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Rid-Solomonov kod je zapravo skup

C = {f(x1), . . . , f(xn) : f ∈ P , xi ∈ X}.

Iz nekih praktičnih razloga koji će biti jasni kasnije, podrazumijavamo da 0 6∈ X.

Sljedeći primjer pokazuje kako se vrši kodiranje podatka.

Primjer 6. Pretpostavimo da Rid-Solomonov kod ima parametre q=101, n=7, t = 2

i X = {1, 2, 3, 4, 5, 6, 7}. Pretpostavimo da želimo da kodiramo riječ (10, 57, 68). Kao

što smo već ukazali, ova riječ se može predstaviti u obliku polinoma

f = 20 + 57X + 68X2.

Datu riječ kodiramo kao f(i) (mod q) za i = 1, . . . , 7 i dobijamo

c = (44, 2, 96, 86, 83, 14).

Dakle, originalna riječ (10, 57, 68) se kodira kao c = (44, 2, 96, 86, 83, 14).

4.1 Dekodiranje Rid-Solomonovih kodova

U procesu dekodiranja kod Rid-Solomonovih kodova, prvo ćemo se baviti jedno-

stavnijim slučajevima i pretpostaviti da do greške pri prenosu podataka nije došlo.

Na osnovu date kodne riječi c = (c1, . . . , cn), tražimo odgovarajući polnom f , odnosno

koeficijente fj, tako da važi:

f =t∑

j=0

fjXj.

13

Page 19: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Polinom stepena t je jednoznačno određen sa t + 1 tačkom. Dok je t < n možemo

vratiti f , kad nema grešaka, tako što generišemo n linearnih jednačina putem:

ci = f(xi), xi ∈ X.

Imamo sistem linearnih jednačina:

c1 = f0 + f1x1 + · · ·+ ftxt1

...

cn = f0 + f1x1 + · · ·+ ftxtn

Rješavanjem ovog sistema jednačina u polju Fq možemo dobiti polinom f , a samim

tim i podatak, odnosno originalnu riječ. Polinom f možemo dobiti i korišćenjem

Lagranžove interpolacije. Pretpostavimo da smo prvo izračunali polinome

δi(X) =∏

xj∈X,j 6=i

X − xjxi − xj

, 1 ≤ i ≤ n

Pri čemu za svako i važe svojstva:

• δi(xi) = 1.

• δi(xj) = 0, i 6= j.

• deg δi(X) = n− 1.

Konačno, Lagranžovom interpolacijom dobijamo polinom

f(X) =n∑

i=1

ci · δi(X).

Prethodne osobine polinoma δi(X) nasleđuje i polinom f(X):

• f(xi) = ci, za svako i.

• deg f(X) ≤ n− 1.

Dakle, Lagranžova interpolacija nalazi jedinstven polinom koji sadrži n datih tačaka.

14

Page 20: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

4.2 Detekcija greške

Vidjeli smo da pomoću Lagranžove interpolacije na kodnoj riječi možemo rekon-

struisati polinom stepena t kada nema grešaka. Međutim, kada greške postoje u

primljenoj kodnoj riječi manja je vjerovatnoća da se dobije važeći polinom. U tom

slučaju, služimo se algoritmom koji otkriva i ispravlja greške.

Koristićemo primjer 6, s tim što ćemo pretpostaviti da smo greškom prilikom prenosa

dobili riječ

c = (44, 2, 25, 23, 86, 83, 14).

Drugim riječima to je jednako poslatoj kodnoj riječi osim što je na trećoj poziciji 96

zamjenjen sa 25. U postupku Lagranžove interpolacije, po modulu q = 101, dobijamo

δ1(X) = 70X6 + 29X5 + 46X4 + 4X3 + 43X2 + 4X + 7

δ2(X) = 85X6 + 12X5 + 23X4 + 96X3 + 59X2 + 49X + 80

δ3(X) = 40X6 + 10X5 + 83X4 + 23X3 + 48X2 + 64X + 35

δ4(X) = 14X6 + 68X5 + 33X4 + 63X3 + 78X2 + 82X + 66

δ5(X) = 40X6 + 90X5 + 99X4 + 67X3 + 11X2 + 76X + 21

δ6(X) = 85X6 + 49X5 + 91X4 + 91X3 + 9X2 + 86X + 94

δ7(X) = 70X6 + 45X5 + 29X4 + 60X3 + 55X2 + 43X + 1,

odnosno:

f(X) = 44·δ1(X)+· · ·+14·δ7(X) = 60+58X+94X2+84X3+66X2+66X4+98X5+89X6.

Kako je polinom stepena šest, a ne stepena t = 2, prijemnik zna da postoji najmanje

jedna greška u kodnoj riječi koju je dobio. Zasad, nije jasno gdje je greška niti kako

je ispraviti.

15

Page 21: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

4.3 Berlekamp-Velč algoritam

Sada ćemo predstaviti efikasnu metodu za ispravljanje grešaka u klasi Rid-Solomonovih

kodova, koja se naziva Berlekamp-Velč algoritam. Ideja je da se interpolira polinom

u dvije promjenlive kroz date tačke. Pretpostavimo da nam je data kodna riječ sa s

nedostajućih vrijednosti, a da je broj grešaka ograničen sa:

e < t <n− s

3

To znači da je zapravo dato n − s vrijednosti yi = f(xi). Dakle, znamo da među

parovima (xi, yi) ima najviše e pogrešnih, odnosno onih koji ne pripadaju traženom

polinomu f(X). Kao što smo najavili, prvo konstruišemo polinom sa dvije promjen-

ljive:

Q(X, Y ) = f0(X)− f1(X) · Y,

gdje je f0 polinom stepena najviše 2 · t a f1 stepena t. Pretpostavimo da važi uslov

f1(0) = 1 i neka su koeficijenti polinoma fi, i = 1, 2 neke promjenljive koje želimo

da odredimo. Na osnovu stepena ova dva polinoma i dodatnog uslova f1(0) = 1,

primjećujemo da je broj promjenljivih dat sa:

v = (2 · t+ 1) + (t+ 1)− 1 = 3 · t+ 1.

Želimo da polinom Q(X, Y ) interpoliramo našim tačkama (xi, yi). Zamjenom vrijed-

nosti xi i yi dobijamo linearnu jednačinu sa nepoznatim koeficijenatima polinoma fi.

Budući da imamo n−s tačaka, broj linearnih jednačina je n−s. Nakon što odredimo

f0 i f1 računamo

f =f0

f1

.

16

Page 22: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Da bi potvrdili ovo, posmatrajmo polinom sa jednom promjenljivom

P (X) = Q(X, f(X)),

gdje je f(X) polinom koji želimo da odredimo. Imamo degP (X) ≤ 2t. Polinom

P (X) ima najmanje n− s− e nula, odnosno validnih parova. Broj nula je najmanje

n− s− e > n− e− t > 3t− t = 2t, e < t <n− s

3.

Dakle, polinom P (X) ima više nula nego što je njegov stepen, pa to mora biti nula

polinom, odnosno

f0 − f1 · f = 0, gdje jef1 6= 0.

Vratimo se na prethodni primjer. Neka nam je proslije]ena netačna kodna riječ

c = (44, 2, 25, 23, 86, 83, 14).

Znamo da je osnovni kod vezan za polinome stepena t = 2 , pa pošto je 2 = t <

n−s3

= 73tačno, onda znamo da možemo ispraviti grešku. Koristeći pomenuti metod

želimo da odredimo polinom Q(X, Y ) forme

Q(X, Y ) = f0,0 + f1,0X + f2,0X2 + f3,0X

3 + f4,0X4 − (1 + f1,1X + f2,1X

2)Y

17

Page 23: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

koji prolazi kroz sedam datih tačaka. Dakle, imamo šest promjenljivih koje želimo da

odredimo i sedam jednačina. Ove jednačine čine linearni sistem po modulu q = 101,

1 1 12 13 14 −44 · 1 −44 · 12

1 2 22 23 24 −2 · 2 −2 · 22

1 3 32 33 34 −25 · 3 −25 · 32

1 4 42 43 44 −23 · 4 −23 · 42

1 5 52 53 54 −86 · 5 −86 · 52

1 6 62 63 64 −83 · 6 −83 · 62

1 7 72 73 74 −14 · 7 −14 · 72

·

f0,0

f1,0

f2,0

f3,0

f4,0

f1,1

f2,1

=

44

2

25

23

86

83

14

Rješavajući sistem dobijamo:

1 1 1 1 1 57 57

1 2 4 8 16 97 93

1 3 9 27 81 26 78

1 4 16 64 54 9 36

1 5 25 24 19 75 72

1 6 36 14 84 7 42

1 7 49 40 78 3 21

·

f0,0

f1,0

f2,0

f3,0

f4,0

f1,1

f2,1

=

44

2

25

23

86

83

14

(mod101).

pa je:

(f0,0, f1,0, f2,0, f3,0, f4,0, f1,1, f2,1) = (20, 84, 49, 11, 0, 67, 0).

Dobijamo dva polinoma

f0(X) = 20 + 84X + 49X2 + 11X3

f1(X) = 1 + 67X.

18

Page 24: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Na kraju, nalazimo:

f(X) =f0(X)

f1(X)= 20 + 57X + 68X2

što je polinom sa kojim smo počeli na početku ove oblasti. Dakle, ispravili smo grešku

u prenešenoj kodnoj riječi c. [?]

19

Page 25: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 5

Šamirovo dijeljenje tajni

Šamirov algoritam je algoritam dijeljenja tajne sa pragom (t + 1)-od-n. Pretpo-

stavićemo da postoji autoritet koji želi da podijeli tajnu s ∈ Fq. On generiše tajni

polinom f(X)

f(X) = s+ f1X + · · ·+ ftXt,

stepena t pri čemu je f(0) = s, tako što na slučajan način bira fi ∈ Fp, za i = 1, . . . , t.

Potom, izvršava evaluaciju ovog polinoma na primjer, na skupu X = {1, 2, . . . , n},

i dobija si = f(i). Primjetimo da je vektor

(s1, . . . , sn)

kodna riječ Rid-Solomonovog koda. Sada, svakom od n članova algoritma za dijeljenje

tajne opredeljuje uređeni par (i, si), za i = 1, . . . , n. Dakle, ukoliko bilo kojih t + 1

članova zajedno prilože svoje opredijeljenje podatke, tada se originalni polinom može

povratiti preko Lagranžove interpolacije pa otuda i tajna s. Zapravo, rekonstrukcija

tajne se može efikasnije izvesti korišćenjem jednačine

s = f(0) =n∑

i=1

siδi(0).

20

Page 26: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Sada, ako za skup Y ⊂ X definišemo vektor rY kao rY = (rxi,Y , . . . , rxi,Y )xi∈Y dobi-

jamo javnu rekombinaciju vektora, gdje važi

rxi,Y =∏

xj∈Y,xj 6=xi

−xixi − xj

.

Ako iz podskupa Y ⊂ X dobijemo dio tajni natrag, gdje je |Y | > t, možemo rekon-

struisati tajnu s jednostavnim sumiranjem:

s =∑xi∈Y

rxi,Y · si.

Takođe, ako od skupa članova Y dobijemo neke moguće vrijednosti dijeljenja, tada

možemo povratiti originalnu tajnu preko Berlekamp-Velč algoritma za dekodiranje

Rid-Solomonovog koda uz prisustvo grešaka. Pretpostavimo da je broj grešaka ogra-

ničen sa e, gdje je

e < t <|Y |3.

Interesantno svojstvo Šamirovog dijeljenja tajni je da ga je moguće potpuno sprovesti

bez centralnog autoriteta u slučaju t = n−1. Pretpostavimo da imamo n članova koji

žele da podijele tajnu, odnosno neki tajni podatak, pri čemu ih ne zanima unaprijed

ta tajna. Bitno im je da je podijele koristeći n-od-n šemu dijelejnja tajne. Da bi ovo

uradili, svaki učesnik ponaosob generiše slučajni cijeli broj si kao svoj dio. To, samo

po sebi, definiše polinom stepena n − 1, koji se može rekonstruisati isključivo onda

kad svi članovi budu prilože svoje tajne podatke.

21

Page 27: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 6

Primjena

U ovom poglavlju je prezentovana primjena šeme dijeljenja tajne, u realnom okru-

ženju. Pretpostavimo da neka firma osnuje agenciju za izdavanje RSA sertifikata

svojim zaposlenima da bi im se omogućilo da pristupe raznim korporativnim uslu-

gama. RSA privatni ključ je vrlo osjetljiv, jer ako je privatni ključ ugrožen, onda bi

cijela kompanija korporativne infrastrukture mogla biti ugrožena. Pretpostavimo da

je javni ključ (N, e) a privatni ključ je d. Da bi kompanija ublažila rizik ona dijeli

privatni ključ na tri dijela i staviti ih u tri različite dionice na tri različita kontinenta.

Na primjer, jedan će biti u Aziji, jedan u Americi i jedan u Evropi.

Čim kompanija definiše RSA ključ, generiše tri cijela broja d1, d2, d3 , takva da:

d = d1 + d2 + d3 (mod φ(N)).

Kompanija potom uklanja sve informacije o kluču d, a pothranjuje d1 na sigurni

računar u Aziji, d2 na sigurni računar u Americi i d3 u Evropi. Pretpostavimo da

sada zaposleni žele da dobiju digitalni sertifikat. Ovo je u suštini RSA potpis na

string m. Zaposleni šalju string m na tri kompjutera, koji odgovaraju sa

si = mdi , i = 1, 2, 3.

22

Page 28: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Važeći RSA potpis se dobija množenjem tri dijela:

s = s1 · s2 · s3 = md1+d2+d3 = md.

Dakle, ova šema riješava problem stavljanja originalnog potpisa ključa na samo jednu

lokaciju. Međutim, ono što je loše je to što radnik mora da bude na vezi za tri servera

kako bi dobio svoj sertifikat. To je, u realnim uslovima, često nemoguće, a i može se

postaviti pitanje efikasnosti. Bilo bi bolje kad bi to sveli na dva, kako bi se kompanija

mogla nositi sa prekidima u radu servera i ostalim tehničkim problemima. Ono što

želimo je 2-od-3, pa moramo primjeniti algoritam Šamirovog dijeljenja tajne.

Problem je, između ostalog, što broj φ(N) mora ostati tajan, a imenioci u Lagran-

žovoj interpolacionoj formuli ne moraju biti uzajamno prosti sa Φ(N). Predloženo je

mnogo riješenja za ovaj problem RSA praga, ali najjednostavnije i najelegantnije je

dao Soup, što ovdje i predstavljamo.

Pretpostavimo da želimo t-od-n dijeljenje RSA tajnog ključa d, gdje je e prost

broj i e > n. Prilagodimo Šamirovu šemu na sledeći način: prvo biramo polinom

stepena t− 1, odaberemo fi po modulu φ(N) na slučajan način i dobijamo:

f(X) = d+ f1X + ...+ ft−1Xt−1.

Zatim, svakom serveru dajemo di = f(i). Smatramo da je broj osoba n fiksan. Neka

je ∆ = n!.

Sada pretpostavimo da korisnik želi da dobije potpis poruke m, odnosno želi da

izračunamd (mod N). Korisnik šaljem na svaki server, na kojima se računaju djelovi

potpisa

si = m2∆di (mod N).

23

Page 29: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Ovi dijelovi potpisa se šalju nazad korisniku. Sada pretpostavimo da korisnik dobija

dijelove iz skupa Y = {i1, . . . , it} ⊂ {1, . . . , n}, veličine veće ili jednake od t. Uzmimo

u obzir "rekombinacioni" Lagranžov vektor definisan sa

rij ,Y =∏

ik∈Y,ij 6=ik

−ikij − ik

.

Sada, želimo da izračunamo dobijeni rezultat moduo φ(N), ali je to nemoguće.

Međutim, napominjemo da imenilac iz gore navedenog izraza dijeli ∆, pa imamo

∆ · rij ,Y ∈ Z. Stoga, korisnik može da izračuna

s′ =∏ij∈Y

s2·∆·rij ,Yij

(mod N).

Dobijamo:

s′ = (m4·∆2

)∑

ij∈Y rij ,Y ·dij = m4·∆2·d (mod N).

Poslednja jednakost je tačna na osnovu Lagranžove interpolacije po modulu φ(N).

Iz ovog parcijalnog potpisa moramo rekonstruisati originalni potpis. Da bismo to

uradili, koristićemo činjenicu da smo pretpostavili da je e > n i da je e prost broj.

To znači da je e uzajamno prost sa 4 ·∆2, pa preko proširenog Euklidovog algoritma

možemo da izračunamo cijele brojeve u i v tako da važi

u · e+ v · 4 ·∆2 = 1.

Odavde se potpis izračunava kao:

s = mu · siv(mod N).

Ovo je važeći RSA potpis za ovaj javni-privatni ključ jer:

se = (mu · s′v)e

24

Page 30: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

= me·u ·m4·e·v·∆2·d

= mu·e+4·v·∆2

= m.

25

Page 31: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Glava 7

Zaključak

Protokoli za dijeljenje tajni služe za distribuciju tajnog podatka nekoj grupi uče-

snika, tako da svako dobija po jedan njegov dio. Osnovno svojstvo ovih protokola je

da dobijeni djelovi ne govore ništa o cjelini. Tačnije, tajni podatak može biti rekon-

struisan samo kada posjedujemo dovoljan, odnosno kvalifikovan broj validnih djelova.

Ukoliko imamo manje od predviđenog, definisanog "praga", nije moguće rekonstrui-

sati originalni tajni podatak.

Šeme dijeljenja tajne su idealno sredstvo za čuvanje informacija velikog stepena

važnosti. Svaki od djelova mora biti čuvan strogo poverljivo, jer bi njihovo otkrivanje

moglo ugroziti sigurnost i početnog, tajnog podatka. Protokoli za tajno dijeljenje

dozvoljavaju da se unaprijed odredi nivo povjerljivosti i pouzdanosti, što im daje

visok stepen upotrebne fleksibilnosti.

26

Page 32: Nevena Laković · tajne mora biti generisan na takav način da ne smije sadržati informaciju koja bi ... 4.1 Dekodiranje Rid-Solomonovih kodova UprocesudekodiranjakodRid-Solomonovihkodova,

Bibliografija

[1] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,

Introduction to Algorithms, The MIT Press, 2001.

[2] Nigel Smart, Cryptography: An Introduction, McGraw-Hill Education, 2003.

[3] Mladen Vuković, Matematička logika 1, PMF-Matematički odjel- Sveučilište u

Zagrebu, 2007.

[4] Dragoje Božović, Vizuelno-kriptografski algoritmi dijeljenja tajne, Specijsli-

stički rad, PMF Podgorica, 2014.

27