a h atizs ak probl ema alkalmaz asa a kriptogr a...

35
E ¨ otv ¨ os Lor ´ and Tudom ´ anyegyetem Term ´ eszettudom ´ anyi Kar A h´ atizs´ ak probl´ ema alkalmaz´ asa a kriptogr´ afi´ aban BSc szakdolgozat Horv´ ath ´ Akos Matematika BSc Matematikai elemz˝ oszakir´any emavezet˝ o: Luk´acs Andr´ as Sz´ am´ ıt´ og´ eptudom´anyiTansz´ ek Budapest 2016

Upload: others

Post on 27-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Eotvos Lorand Tudomanyegyetem

Termeszettudomanyi Kar

A hatizsak problemaalkalmazasa a kriptografiaban

BSc szakdolgozat

Horvath AkosMatematika BSc

Matematikai elemzo szakirany

Temavezeto: Lukacs Andras

Szamıtogeptudomanyi Tanszek

Budapest

2016

Page 2: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok
Page 3: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Tartalomjegyzek

1. Bevezetes 2

2. A hatizsak problema es megoldasa 4

2.1. Pelda a dinamikus programozassal valo megoldasra . . . . . . 5

3. 0-1 hatizsak problema 8

3.1. NP-teljesseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4. Merkle-Hellman hatizsak titkosıtas 12

4.1. Modularis hatizsak problema . . . . . . . . . . . . . . . . . . . 12

4.2. Kodolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.3. Dekodolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.4. Pelda a Merkle-Hellman titkosıtasra . . . . . . . . . . . . . . . 16

4.5. Biztonsag, feltorhetoseg . . . . . . . . . . . . . . . . . . . . . 19

4.5.1. Racsredukcio . . . . . . . . . . . . . . . . . . . . . . . 19

4.5.2. Valos szamok diofantikus becslese . . . . . . . . . . . . 22

4.6. Feltores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.6.1. Szokatlanul jo szimultan diofantikus becsles . . . . . . 23

4.6.2. Alacsony surusegu hatizsak problemak . . . . . . . . . 25

5. Chor-Rivest hatizsak titkosıtas 29

5.1. Biztonsag, feltorhetoseg . . . . . . . . . . . . . . . . . . . . . 30

Hivatkozasok 31

1

Page 4: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

1. Bevezetes

A hatizsak problema eseten adott egy sulykapacitas, ami az adott hatizsakot

jellemzi, valamint kulonbozo elemek sokasaga, sajat sulyokkal es ertekekkel.

A feladat az, hogy a kapacitason belul maradva valasszuk ki az elemek olyan

reszhalmazat, hogy minel nagyobb legyen az ertekeik osszege. Emiatt ne-

vezzuk hatizsak problemanak, hiszen olyan ez, mint amikor nyaralas elott

merlegelunk, mit pakoljunk be a korlatos teherbırasu taskankba, mi az, ami

fontos.

Meg kell hatarozni tehat, hogy mely elemeket rakjuk be a hatizsakba, es

melyeket ne. Ez a feladat altalanos esetben bizonyıtottan NP-nehez, viszont

leteznek olyan feltetelek, amelyek mellett polinomialis idoben megoldhato. E

ket tulajdonsag miatt Ralph Merkle es Martin Hellman [1] szamara lehetseges

alternatıvanak tunt nyılt kulcsu titkosıtasra az RSA algoritmus helyett. Nem

sokkal az RSA kifejlesztese utan, 1978-ban mutattak be a hatizsak problema

alapu titkosıtasi algoritmusukat. Az RSA-hoz hasonloan nyilvanos kulcson

alapszik, de Merkle es Hellman alapotlete egyszerubb. Hat evvel kesobb,

1984-ben Adi Shamir [2] mutatta meg, hogy a titkosıtas nehany esetben

polinomialis idoben feltorheto, emiatt ma nem ezt hasznaljuk adataink tit-

kosıtasara.

A tovabbiakban a hatizsak problema kriptigrafiai szerepet targyaljuk. Be-

mutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok fakto-

rizaciojara ırt racsredukcios eljarast hogyan hasznalhatjuk a Merkle-Hellman

titkosıtas feltoresere. Tovabba bemutatjuk a Chor-Rivest titkosıtast, amire

szinte egyedulallo modon nem alkalmazhato hatekonyan a racsredukcio.

A dolgozat elso reszeben szo lesz a hatizsak problemarol, es egy pelda meg-

oldasan keresztul bemutatasra kerul a dinamikus programozas.

2

Page 5: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

A masodik reszben a hatizsak problema legfontosabb specialis esetevel, a 0-1

hatizsak problemaval foglalkozunk, valamint megmutatjuk rola, hogy NP-

teljes.

A harmadik reszben a Merkle-Hellman titkosıtast mutatjuk be, aminek az

alapja a maradekosztalyokon ertelmezett 0-1 hatizsak problema, itt beszelunk

a kodolasrol es a dekodolasrol, tovabba alkalmazzuk a titkosıtast egy pelda-

ban. Ezutan megnezzuk, hogyan lehet feltorni ezt a titkosıtast, amihez

targyaljuk a Lovasz-fele racsredukciot, es nehany szamelmeleti fogalmat.

Vegul a negyedik resz a Chor-Rivest titkosıtas, amely azon ritka, hatizsak

alapu titkosıtasok egyike, amelyeket meg nem sikerult feltorni.

3

Page 6: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

2. A hatizsak problema es megoldasa

Lassuk tehat, hogyan is nez ki a hatizsak problema.

2.1. Definıcio. Legyenek a sulyok s1, s2, . . . , sn, az ertekek e1, e2, . . . , en,

a sulykapacitas C, pozitıv szamok. A hatizsak problema megoldasa, az-

az a kimeneti adat azon elemek halmaza lesz, amelyeket a hatizsakba rak-

va maximalis lesz az ertekosszeg, es a sulyosszeguk nem nagyobb, mint a

sulykapacitas.

A feladat megoldasara dinamikus programozast fogunk hasznalni, mivel ez a

legszemleletesebb.

2.2. Definıcio. Minden c < C-re definialjuk ugy az m[c] erteket, hogy az a

maximalis ertekosszeg legyen, amit c kapacitas mellett bele tudunk tenni a

zsakunkba, es ekkor a feladat megoldasa m[C] lesz.

m[c]-re legyen tehat:

• m[0] = 0, mivel nulla kapacitasu hatizsakba nem tudunk semmit pa-

kolni

• m[c] = maxci≤c

(ei +m[c− ci]), az adott ertek, es egy, mar korabban meg-

oldott, kisebb kapacitasu hatizsakban rejlo elemek ertekosszege

Az m[c] bevezetesevel rekurzıvan kapjuk meg a hatizsak problema meg-

oldasat, c-vel a 0 es C kozotti termeszetes szamokat novekvo sorrendben

bejarva. Az

m[c] = maxci≤c

(ei +m[c− ci])

formula mukodese:

Minden i-re az aktualis ci sulyu es ei erteku elemet beletesszuk a hatizsakba,

hogyha az m[c− ci] sulykapacitasu (mar megoldott) hatizsak, plusz ei erteke

4

Page 7: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

maximalis. Ez garantalja, hogy nem lehet tobb suly a zsakban, mint a kapa-

citas (hiszen az i. elem sulya ci).

2.1. Pelda a dinamikus programozassal valo megoldasra

A bemeneti adatok a kovetkezoek lesznek:

A kapacitas pedig legyen C = 6. Kezdetnek toltsuk fel ıgy a kovetkezo tablazatot:

a nulladik sor es oszlop legyen csupa nulla, a sorok jelentsek, hogy hanyadik elemig

nezzuk az osszes elemet, az oszlopok pedig, hogy mekkora kapacitasra szorıtjuk meg

a feladatot.

A feltoltes soronkent tortenik, balrol jobbra, az elobb definialt m[c]-t felhasznalva.

Mivel a 2. sorban mar a 2. elemet is felhasznalhatjuk, ezert c = 2 kapacitas eseten

az elso ket elem mindegyiket bele tudjuk rakni a zsakba.

5

Page 8: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Ha a 4. elemet is hasznalhatjuk, akkor c = 4 kapacitasnal az optimalis megoldas az,

ha az 1., 2. 3. elem benne van a zsakban. Am c = 5 eseten kivesszuk az 1.-t, es

berakjuk helyette a 4. elemet.

Kitoltjuk az utolso sort is.

Megkaptuk a vegeredmenyt, 12 az ertekek osszege, ami a 6 kapacitasu hatizsakba

belefer. A tablazatbol vissza is tudjuk keresni, hogy mely elemeket hasznaltuk fel:

6

Page 9: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

ha egy sorban valtozas van az ertekekben a felette levo sorhoz kepest, akkor az adott

sorhoz tartozo elemet felhasznaltuk. Alulrol felfele vizsgalva a tablazatot ıgy meg-

kaphatjuk, mely elemek vannak a hatizsakban. Az 5. sorban van valtozas a 4.-hez

kepest, ıgy az 5. elem benne van. Az o sulya 3 volt, nezzuk meg, hogy a 6 − 3

kapacitasu taskaban mi van (a 4. sorban). Ugyanugy 5 az erteke, mint a 3. sorban,

ezert ugrunk is oda. A 2. sorban megint kevesebb a hatizsak erteke c = 3 mellett, ıgy

a 3. elem is benne van a zsakban. 2 volt az erteke, nezzuk a 3− 2 kapacitasu zsakot

a 2. sorban. Ez 2, nagyobb, mint az 1. sorban levo, es 1 volt a sulya. 1 − 1 = 0,

elerkeztunk a 0. oszlophoz, vegeztunk. A zsakunkban tehat a 2., 3., 5. elemek vannak

benne. Ellenorzeskent ezek erteke 2 + 3 + 7 = 12, sulyuk 1 + 2 + 3 = 6

7

Page 10: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

3. 0-1 hatizsak problema

Az alapfeladatot tehat mar meg tudjuk oldani. De mennyi ido alatt? A

hatizsak problema alapvetoen NP-teljes [3], nem varhato ra polinomialis

idoben megoldas, a megoldasi ido pszeudopolinomialis (exponencialisan fugg

attol, hogy hany biten tudjuk eltarolni a bemeneti adatokat).

3.1. Definıcio. A 0-1 hatizsak problemat a kovetkezokeppen definialjuk:

adottak pozitıv egeszek, s1, s2, . . . , sn, es c. Keressuk meg x1, x2 . . . , xn ∈{0, 1} pozitıv egeszeket, hogy

n∑i=1

xisi = c. Itt az si-k a sulyok, es a c a cel.

Tehat nem maradhat ”kitoltetlen” hely a zsakban. Dolgozhatunk vektorokkal

is az egyszerubb jeloles erdekeben, ıgy s = (s1, s2, . . . , sn) ∈ Nn, c ∈ N mellett

keressuk x = (x1, x2 . . . , xn) ∈ {0, 1}n megoldast, amire c = x ∗ a, ahol ∗ a

vektorok skalaris szorzasat jeloli.

A kovetkezo fogalmat vezetjuk be a kesobbiekhez.

3.2. Definıcio. Egy szamsorozat szupernovekvo, ha minden elem szigoruan

nagyobb, mint az ot megelozoek osszege.

Nezzunk egy 0-1 hatizsak problemat szupernovekvo sulyokkal. Ezt na-

gyon egyszeru es gyors megoldani, az xi-k egyertelmuen meghatarozhatoak

xn-tol haladva x1-ig.

xi = 1 ⇐⇒ c−n∑

j=i+1

xjsj ≥ si,

hiszen xi-t elhagyva a tole kisebb indexu elemek sulya osszesen nincs annyi,

mint az ove, ıgy azokkal nem lehetne elerni a celt.

8

Page 11: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

3.1. NP-teljesseg

A hatizsak problemara sokan kerestek polinomialis ideju megoldast, de nem

talaltak. Am a megoldasa polinomialis idoben leellenorizheto: ha meg-

oldaskent adottak az xi-k, akkor an∑i=1

xisi osszegrol el tudjuk donteni, hogy

jo-e, vagy sem. Az NP-beliseg definıcioja miatt tehat a hatizsak problema

NP-beli, tovabba bebizonyıtjuk, hogy NP-teljes is. A bizonyıtast az NP-teljes

3-Sat problemara [4] visszavezetve adjuk meg.

1. Tetel. A 0-1 hatizsak problema NP-teljes [5]

Bizonyıtas. A 3-Sat problemat alakıtjuk at a 0-1 hatizsak problemara.

Tegyuk fel, hogy van n db xi valtozonk es m db klozunk.

Minden xi-re hozzunk letre ti es fi vektorokat n+m hosszusaggal.

A ti es fi vektorok i. helyen 1.

n+ 1 ≤ j ≤ n+m-re legyen ti j. eleme 1, ha xi benne van a cj−n. klozban.

n+ 1 ≤ j ≤ n+m-re legyen fi j. eleme 1, ha xi benne van a cj−n. klozban.

Minden egyeb helyen alljon 0.

Pelda:

(x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3)

9

Page 12: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Most minden cj-re keszıtsuk el az xi es yi n+m hosszu vektorokat:

xi es yi n+ j. eleme legyen 1, minden mas 0.

Vegul legyen s egy n+m hosszu osszegvektor:

1 ≤ j ≤ n-re si = 1.

n+ 1 ≤ j ≤ n+m-re si = 3.

Ha a formula megoldas, a hatizsak megoldhato:

Ha xi igaz, vegyuk a ti-t, ha hamis, akkor fi-t.

Ha cj-ben legalabb ket igaz van, akkor vegyuk xj-t, ha csak 1, akkor yi-t.

Pelda:

(x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3)

Ennek a feladatnak a megoldasa az, ha minden valtozo igaz.

10

Page 13: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Ha a hatizsak problemanak van megoldasa, akkor a belole kapott formula

kielegıto:

• Az xi legyen igaz, ha ti benne van a hatizsakban, es xi legyen hamis,

ha fi benne van a hatizsakban.

• Minden valtozo, vagy a tagadasa van benne a hatizsakban, de semmi

esetre sem mindketto, kulonben s-ben az elso n hely valamelyiken nem

1, hanem 2 allna.

• Ha nem lenne benne a zsakban az egyik valtozo, es a tagadasa sem,

akkor viszont n es m kozott s erteke kisebb lenne, mint 3.

• A megfeleltetes konzisztens es minden kloz ki van elegıtve [6].

11

Page 14: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

4. Merkle-Hellman hatizsak titkosıtas

A kriptografia targya a rejtjelezes es a kodolas. Adatok kodolasan a nyılt

szoveg egy masik szovegge valo atalakıtasat ertjuk, ami egy titkosıto eljarassal

tortenik. Ha a szoveget szamkent tekintjuk, vagy a kodolas elott szamma

alakıtjuk (peldaul minden karakterhez az ASCII kodjat rendeljuk), akkor a

titkosıto algoritmusunk egy matematikai fuggveny. Ha ez a fuggveny in-

jektıv, akkor az uzenetet az algoritmus ismereteben vissza tudjuk fejteni,

ekkor a titkosıtott szovegbol megkapjuk az eredeti szoveget. Ez a dekodolas.

A legtobb titkosıto fuggvenyhez kulcsot hasznalunk, ennek ismerete nelkul

hiaba ismeri valaki az algoritmust, nem tudja dekodolni az eredeti uzenetet.

Ilyen esetekben probalkoznak a titkosıtas feltoresevel. Feltores sokfelekeppen

lehetseges, de mi csak a matematikai reszevel fogunk foglalkozni.

Ha a specialis esetu, gyorsan megoldhato hatizsak problemat sikerulne vala-

hogy atalakıtanunk ugy, hogy egy nehez, lassan megoldhato problemat kap-

junk, akkor az talan alkalmazhato lenne titkosıtasra, mint az RSA. Ralph

Merkle es Martin Hellman az eredeti feladatot maradekosztalyokra oldottak

meg. Ez ugyebar megteheto, es minden feladatot at lehet ıgy alakıtani, a

kerdes csupan az, hogy mikor tudjuk ezt egyertelmuen visszafejteni, es mi-

lyen nehez masoknak visszafejteni, vagyis feltorheto-e a titkosıtas. Lassuk

tehat, hogyan is nez ki az 1978-ban bemutatott Merkle-Hellman Knapsack

Cryptosystem [1].

4.1. Modularis hatizsak problema

2. Tetel. [7] Legyenek w = (w1, w2, . . . , wn) ∈ Nn szupernovekvo sorozat

tagjai a hatizsak problema sulyai, Q es R egeszeket pedig ugy valasszuk meg,

hogy Q >n∑i=1

wi es lnko(Q,R) = 1, tehat R relatıv prım legyen Q-val. Ha

12

Page 15: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

ezek megvannak, akkor elkeszıtjuk a b = (b1, b2, . . . , bn) ∈ Nn transzformalt

sulyokat a kovetkezokeppen:

bi = wi ∗R mod Q.

4.2. Kodolas

A nyilvanos kulcsunk a b lesz, a privat kulcsok pedig a w, a Q, es az R.

A titkosıtando n-bites binaris uzenet az x = (x1, x2, . . . , xn) ∈ {0, 1}n. Ez

tehat egy n hosszu szamsorozat, amelynek minden tagja 0 vagy 1. Kepezzuk

ebbol a c szamot ıgy:

c =n∑i=1

xibi,

avagy roviden c = x ∗ b.Ez a c szam a rejtjelezett adat. Titkosıtottuk az x binaris uzenetet, de hogyan

lehet c-bol visszakapni az x-et? Ismerjuk ugyan a c-t es a b-t, de az xi-ket

visszafejteni NP-nehez, hiszen ez egy altalanos 0-1 hatizsak problema. Itt

hasznaljuk fel a privat kulcsot.

4.3. Dekodolas

A privat kulcs ismerete mellett nem kell megoldanunk a nehez, bi sulyos 0-1

hatizsak problemat, hanem visszavezethetjuk a szupernovekvo wi sulyokkal

rendelkezo 0-1 hatizsak problemara, ami egyszeruen megoldhato.

A legfontosabb lepes, hogy keressunk egy olyan S egeszt, hogy S∗R = 1 mod

Q, vagyis S az R Q-ra nezett modularis inverze. Mivel R-t ugy valasztottuk,

hogy relatıv prım legyen Q-val, ezert S-t egyszeruen kiszamoljuk kiterjesztett

Euklideszi algoritmussal. Eloszor a c szamot transzformaljuk:

13

Page 16: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

c′ ≡ c ∗ S mod Q,

amibol:

c′ ≡ c ∗ S ≡

n∑i=1

xibi ∗ S mod Q.

Mivel S ∗R = 1 mod Q es bi = wi ∗R mod Q :

bi ∗ S ≡ wi ∗R ∗ S ≡ wi mod Q.

Ezekbol

c′ ≡

n∑i=1

xiwi mod Q.

A Q megvalasztasabol, miszerint Q >n∑i=1

wi, es mivel xi ∈ {0, 1} kovetkezik,

hogy:

Q >n∑i=1

xiwi.

Abbol, hogy an∑i=1

xiwi a [0, Q − 1] intervallumba esik bele, az kovetkezik,

hogy nem kongruencia all fent, hanem egyenloseg. Tehat:

c′=

n∑i=1

xiwi.

14

Page 17: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Ez a 0-1 hatizsak problema viszont nagyon egyszeruen megoldhato a kovet-

kezokeppen, hiszen a wi-k szupernovekvo sulyok.

• Vegyuk w legnagyobb elemet, wj-t.

• Ha wj > c′, akkor xj = 0, ha viszont wj ≤ c

′, akkor xj = 1.

• Vonjuk ki c′-bol a wj-t.

• Ismeteljuk ezeket a lepeseket, ameddig c′> 0.

Igy polinomialis ido alatt megkapjuk a keresett x = (x1, x2, . . . , xn) ∈ {0, 1}n

binaris uzenetet.

A Merkle-Hellman algoritmus egy aszimmetrikus kulcsu titkosıtasi eljaras,

vagyis ket kulcs kell az uzenethez, a nyilvanos es a privat kulcs. Elobbivel

titkosıtjuk az uzenetet, mıg az utobbival visszafejtjuk. Ez egy eleg nagy

kulonbseg az RSA-val szemben, es pontosan emiatt sajnos nem is lehet

hasznalni peldaul digitalis alaırashoz. Mint lathattuk, ket hatizsak problemat

tartalmaz az algoritmus, a nyilvanos kulcshoz tartozo nehez, NP-teljes felada-

tot, es a privat kulcshoz tartozo feladatot, amit Q es R segıtsegevel tudunk

konnyu, szupernovekvo sulyu feladatta alakıtani. Ugyanıgy visszafele a Q es

R segıtsegevel tudunk a konnyu feladatbol nehezet csinalni. Az algoritmusbol

latszik, hogy egy uzenethez nem tartozhat ket kod, a Q megvalasztasa pe-

dig biztosıtja, hogy nem tartozhat ket kulonbozo uzenethez ugyanaz a kod.

R-nek azert kell relatıv prımnek lennie Q-hoz, hogy letezzen S, ami elenged-

hetetlen a visszafejteshez.

15

Page 18: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

4.4. Pelda a Merkle-Hellman titkosıtasra

Nezzunk egy peldat a titkosıtasi es a visszafejtesi eljarasra. Ehhez eloszor kell egy w

szupernovekvo szamsorozat. Legyen ez:

w = ( 1, 3, 5, 12, 24, 51, 123, 301 )

Ezeknek az osszege 520. A Q ennel nagyobb kell, hogy legyen, ıgy valasszuk mondjuk

Q = 599-nek.

R ehhez kepest relatıv prım, peldaul

R = 476.

Ezzel meg is van a privat kulcsunk, szamoljuk hat ki a nyilvanos kulcsot, ami

bi = wi ∗R mod Q.

1 ∗ 476 mod 599 = 476

3 ∗ 476 mod 599 = 230

5 ∗ 476 mod 599 = 583

12 ∗ 476 mod 599 = 321

24 ∗ 476 mod 599 = 43

51 ∗ 476 mod 599 = 316

123 ∗ 476 mod 599 = 445

301 ∗ 476 mod 599 = 115

b = ( 476, 230, 583, 321, 43, 316, 445, 115 )

Most mar rendelkezunk a nyilvanos kulccsal is. Tegyuk fel, hogy titkosıtani akarjuk a

”Szia!” uzenetet. ASCII kodok a karakterekhez, es atırasuk binaris szamrendszerbe:

”S” → 8310 = 10100112

”z” → 12210 = 11110102

”i” → 10510 = 11010012

”a” → 9710 = 11000012

”!” → 3310 = 1000012

16

Page 19: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Dolgozzunk 8-bites karakterabrazolo rendszerben az egyszeruseg kedveert. Abrazoljuk

8 biten a fenti adatokat:

”S” → 010100112

”z” → 011110102

”i” → 011010012

”a” → 011000012

”!” → 001000012

A titkosıtando binaris uzenet tehat

x = 01010011 01111010 01101001 01100001 00100001

Mi itt nem omlesztettuk az uzenetet, hanem 8-as csoportokban szokozokkel elvalasztva

ırtuk egymas melle. A szamıtogepen ez viszont osszefuggo 40 karakter, amit a

szamıtogep el tud valasztani, hiszen tudja, hogy 8 bites karakterekkel dolgozunk.

Szamoljuk most ki a c erteket.

x1 = 01010011, c1 = x1 ∗ b = 1111 (= 230 + 321 + 445 + 115)

x2 = 01111010, c2 = x2 ∗ b = 1622 (= 230 + 583 + 321 + 43 + 445)

x3 = 01101001, c3 = x3 ∗ b = 971 (= 230 + 583 + 43 + 115)

x4 = 01100001, c4 = x4 ∗ b = 928 (= 230 + 583 + 115)

x5 = 00100001, c5 = x5 ∗ b = 698 (= 583 + 115)

Ezt elkuldhetjuk a cımzettnek (ismeri a privat kulcsot), akinek vissza kell fejtenie az

uzenetet. Ehhez ki kell szamolnia S-t, R modularis inverzet.

Ez S = 112. Ebbol

c′

1 = c1 ∗ S mod Q = 1111 ∗ 112 mod 599 = 439

c′

2 = c2 ∗ S mod Q = 1622 ∗ 112 mod 599 = 167

c′

3 = c3 ∗ S mod Q = 971 ∗ 112 mod 599 = 333

c′

4 = c4 ∗ S mod Q = 928 ∗ 112 mod 599 = 309

c′

5 = c5 ∗ S mod Q = 698 ∗ 112 mod 599 = 306

17

Page 20: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Vegyuk w legnagyobb elemet, ami kisebb, mint a c′

1.

439− 301 = 138→ w8 = 1

138− 123 = 15→ w7 = 1

15− 12 = 3→ w4 = 1

3− 3 = 0→ w2 = 1

w1, w3, w5, w6 = 0, amibol a visszanyert uzenet 01010011. Ez 10-es szamrendszerben

83, 83 pedig az ”S” karakter ASCII kodja.

Csinaljuk meg ugyanezt a tobbivel is.

167− 123 = 44→ w7 = 1

44− 24 = 20→ w5 = 1

20− 12 = 8→ w4 = 1

8− 5 = 3→ w3 = 1

3− 3 = 0→ w2 = 1

Ez 01111010, ami a ”z” kodja.

333− 301 = 32→ w8 = 1

32− 24 = 8→ w5 = 1

8− 5 = 3→ w3 = 1

3− 3 = 0→ w2 = 1

Ez 01101001, ami az ”i” kodja.

309− 301 = 8→ w8 = 1

8− 5 = 3→ w3 = 1

3− 3 = 0→ w2 = 1

Ez 01100001, ami az ”a” kodja.

306− 301 = 5→ w8 = 1

5− 5 = 0→ w3 = 1

Ez 00100001, ami a ”!” kodja.

Igy egyszeruen megkaptuk az eredeti uzenetet.

18

Page 21: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

4.5. Biztonsag, feltorhetoseg

A hatizsak probleman alapulo titkosıtas feltoresehez, vagyis a privat kulcs

ismerete nelkul az uzenet visszafejtesehez szukseges targyalni nehany tulaj-

donsagot es algoritmust. Kezdjuk a Lenstra-Lenstra-Lovasz-fele racsredukcios

algoritmussal.

4.1. Definıcio. A v1, v2, . . . , vn tobbdimenzios vektorok altal meghatarozott

racs az olyan a1v1 + a2v2 + . . .+ anvn alaku vektorok halmaza, ahol minden

ai egesz szam.

Ilyen racsban megkeresni a legrovidebb nemnulla vektort nem egyszeru 4

dimenzio feletti terekben. A feladat bonyolultsaga nem ismert, am az a sejtes,

hogy nem varhato polinomialis ideju algoritmus a megoldasra. Lovaszek arra

jottek ra, hogy sok alkalmazasban nem kell a legrovidebb vektort megtalalni,

az is jo, ha egy hosszabb vektort talalunk, ami meg mindig eleg rovid. Erre

meg is adtak gyors, polinom ideju algoritmust. Az LLL-algoritmus, vagyis

maga a racsredukcio, olyan bi vektorokat ad vissza, amelyek szinten a vi

vektorok altal kifeszıtett racsot feszıtik ki a terben, viszont a bi-k rovidek, es

kozel merolegesek egymasra.

4.5.1. Racsredukcio

Az algoritmust 1982-ben talalta ki Lovasz Laszlo, mikor Arjen Lenstra es

Hendrik Lenstra polinomok faktorizaciojara keresett megoldast. Vegul az

eljarast publikaltak harman, de a polinomok faktorizaciojarol ebben nem

esik szo. Szamos mas teruleten bizonyult hasznosnak a felfedezesuk, de leg-

inkabb a kriptografiaban [8, 9, 10]. Az algoritmus bemutatasa elott celszeru

a kovetkezo teteleket felelevenıteni.

19

Page 22: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

3. Tetel. Skalarszorzatos terben a v∗ nemnulla vektor alterebe a

projv∗(v) =< v∗, v >

< v, v >v

lekepezes merolegesen vetıt.

4. Tetel. Gram–Schmidt-eljaras:

A Gram–Schmidt-eljaras egy skalarszorzatos ter veges, linearisan fuggetlen

vi vektorait atalakıtja olyan paronkent meroleges v∗i vektorokka, amelyek

ugyanazt az alteret feszıtik ki. Ez az eljaras megadja az alter egy ortonormalt

bazisat, am az LLL-algoritmushoz nem fontos ortonormalt bazis, eleg, hogyha

ortogonalt, ezert csak ezzel foglalkozunk.

Maga az eljaras a kovetkezokeppen nez ki:

v∗1 := v1

v∗2 := v2 − projv∗1 (v2)

v∗3 := v3 − projv∗1 (v3)− projv∗2 (v3)...

v∗k := vk −k−1∑j=1

projv∗j (vk)

5. Tetel. LLL-algoritmus:

Adott

v = (v1, v2, . . . , vn)

vektorrendszer, melybol a Gram–Schmidt-eljarassal letrehozzuk a vi-k altal

kifeszıtett alter ortogonalis bazisat. Legyen ez

v∗ = (v∗1, v∗2, . . . , v

∗n),

es kiszamoljuk a Gram-Schmidt egyutthatokat

µi,j =< vi, v

∗i >

< v∗i , v∗i >

20

Page 23: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

minden 1 ≤ j ≤ i ≤ n-re.

A v bazis akkor LLL-redukalt, ha letezik olyan δ ∈ (0.25, 1], amire:

• |µi,j| ≤ 0.5 minden 1 ≤ j ≤ i ≤ n-re. Ez a tulajdonsag garantalja a

vektorok rovidseget.

• δ||v∗k−1||2 ≤ ||v∗k||2 + µ2k,k−1||v∗k−1||2 minden 1 ≤ k ≤ n-re. Ez a Lovasz-

feltetel.

A δ ertekebol kiderul, mennyire jol redukalt a bazis. Minel nagyobb ez az

ertek, annal rovidebbek a bazisvektorok. Lovasz Laszlo eredetileg δ = 0.75-

tel dolgozott, de az algoritmus δ ∈ (0.25, 1) eseten polinomialis idoben fut

le. Nagyobb δ-ra redukaltabb vektorokat kapunk, am δ = 1-re mar nem

garantalt a polinomialis futasido.

Az algoritmus reszei a kovetkezok:

bemeneti adatok : v1, . . . , vn ∈ Zn

kimeneti adatok : v∗1, . . . , v∗n LLL-redukalt bazis

redukcios lepes:

1. ciklus i = 2-tol n-ig

2. ciklus j = i− 1-tol 1-ig

3. vi := vi − <vi,v∗i>

<v∗i ,v∗i>vj

csere lepes

1. ha ∃i, hogy δ||v∗i ||2 > ||µi+1,iv∗i + v∗i+1||2, akkor

2. csere vi, vi+1

3. kezdjuk elolrol az algoritmust

kimenet : v∗1, . . . , v∗n redukalt vektorok

21

Page 24: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Az LLL-algoritmus nem a legrovidebb vektorokat adja vissza, amelyek az

adott racsot feszıtik ki, hanem olyan rovid vektorokat, amikkel mar erdemes

dolgozni. Altalanossagban, ha δ = 3/4 akkor az LLL-redukalt bazis legrovi-

debb vektora 2(n−1)/2-rendu kozelıtes a legrovidebb vektor problemara [11].

4.5.2. Valos szamok diofantikus becslese

A kovetkezo szukseges eredmeny a valos szamok diofantikus becslese [12].

6. Tetel. Tetszoleges α1, . . . , αn irracionalis szamokhoz vegtelen sok olyan

r1isi,r2isi, . . . ,

rkisi

kozos nevezoju racionalis szam k-as (i = 1, 2, . . .) letezik, amelyre∣∣∣∣αj − rjisi

∣∣∣∣ < 1

s1+ 1

ki

j = 1, 2, . . . , k; i = 1, 2, . . .

4.6. Feltores

Ezek ismereteben megprobalhatjuk feltorni a Merkle-Hellman titkosıtast.

Mivel bi ≡ wiR mod Q, definialjuk a ki-kat ugy, hogy:

bi ∗ S − ki ∗Q = wi

∀i = 1, . . . , n-re. A masodik lepes eszrevenni, hogy a bi sulyokkal es c ka-

pacitassal adott hatizsak problema atalakıthato vegtelenul sok kulonbozo,

konnyu hatizsak problemava. Erre Eier es Lagger [13], tovabba Desmedt,

Vanderwalle es Govaerts [14] egymastol fuggetlenul jottek ra.

22

Page 25: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

1. Lemma. Letezik ε > 0, hogy haS′

Q′racionalis es

∣∣∣∣S ′Q′ − S

Q

∣∣∣∣ < ε,

akkor a w′= (w

′1, w

′2, . . . , w

′n) sulyok szupernovekvoek i = 1-tol n-ig, ahol

w′

i = bi ∗ S′ − ki ∗Q

′.

Alakıtsuk at az elobbi egyenleteket i = 1, . . . , n-ig

bi ∗ S − ki ∗Q = wi ⇐⇒S

Q− kibi

=wibiQ

vagyis mindenkibi

jo kozelıtesS

Q-ra. Tovabba, ha barmelyik ki ismert len-

ne, akkorkibi

-t hasznalhatnank S′es Q

′meghatarozasara a fenti lemmahoz.

Shamir [2] az alabbi egyenlotlenseggel allt elo:∣∣∣∣ bib1 − kik1

∣∣∣∣ ≤ Q

2n−i|b1k1|

amibol kovetkezik, hogy mindegyikkik1

jo becsles bib1-ra. Ez a szimultan

diofantikus becsles problemaja, hogy

(k2k1, . . . ,

knk1

)jo becsles legyen(

b2b1, . . . ,

bnb1

)-re.

4.6.1. Szokatlanul jo szimultan diofantikus becsles

4.2. Definıcio. Szokatlanul jo szimultan diofantikus becsles (UGSDA, Unu-

sually good simultaneous Diophantine approximation):

max2≤i≤n

{bib1k1 − ki

}≤ b

−1/ni .

23

Page 26: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Az esetek tobbsegeben nem letezik ilyen becsles barmelyik bi-re, innen

ered a nev. Nehany t ≤ n-re megprobalunk ilyen becslest talalni(b2b1, . . . ,

btb1

)-re,

ahonnan kifejezhetjuk k1-et, am eloszor vizsgaljuk meg a t-dimenzios teljes

rangu L racsot, melyet a bazismatrix sorai feszıtenek ki.

M =

b2 b3 . . . bt bb1/t1 c−b1

−b1. . .

−b1

L minden eleme a

h =(h1b2 − h2b1, . . . , h1bt − htb1, h1bb1/t1 c

)alakban van, ahol hi ∈ Z. Ha h a legkisebb vektor, amit az LLL-algoritmus

talalt, akkor

||h|| ≤ 2(t−1)

4 d(L)1t = 2

(t−1)4 b

(t−1)t

1 bb1t1 c

1t ≤ 2

(t−1)4 b

(t2−t−1)

t2

1 .

h elso t− 1 komponensere (i = 1, . . . , t− 1)∣∣∣∣ bib1h1 − hi∣∣∣∣ ≤ 2

(t−1)4 b

−(t+1)

t2

1 ≤ b−1

(t−1)

1 ,

amibol az utolso egyenlotlenseg akkor all fenn, ha t ≥ 2√log2b1. Vagyis

elegendoen nagy t-re az LLL-algoritmus talal olyan vektort, amely jol becsuli(b2b1, . . . ,

btb1

)-t. Mivel a jo becslesek nagyon ritkak, altalanossagban hi = ki

i = 1, . . . , n-re. Ezeket a ki-ket felhasznalva az S′

es Q′

relatıv prımek

24

Page 27: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

kiszamıhatoakkiai

becslesevel. A bi sulyu, c kapacitasu hatizsak problema

ezutan atalakıthato szupernovekvo b′i sulyu es c

′kapacitasu konnyu hatizsak

problemava.

b′i = biS

′mod Q

′i = 1, . . . , n c

′= cS

′mod Q

′.

Elobbi egy gyors modja a titkosıtas feltoresenek, de csak keves esetben alkal-

mazhato.

4.6.2. Alacsony surusegu hatizsak problemak

4.3. Definıcio. Legyen B az elofordulo maximalis suly

B = max1≤i≤n

bi,

ekkor a hatizsak problema sulyainak surusege d:

d =n

log2B.

Lagarias es Odlyzko modszere: Ha a d suruseg eleg alacsony, akkor

probalkozhatunk egy masik fajta feltoressel. Lagarias es Odlyzko [15] meg-

mutattak, hogy az alacsony surusegu problemak feltorhetoek nagy n-re, fel-

teve, hogy ismerjuk a racs legrovidebb vektorat. Ajtai Miklos mutatta meg,

hogy a legrovidebb vektort megtalalni NP-nehez [16], de gyakorlatban jol

mukodik az LLL-algoritmussal redukalt vektorokkal is. Ezaltal nagyjabol

minden d < 0.6463 surusegu sulyokra mukodik a kovetkezo modszer.

25

Page 28: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Legyen L0 az alabbi matrix sorai altal kifeszıtett racs.

M0 =

1 Nb1

1 Nb2. . .

...

1 Nbn

NT

ahol N >

√n ∈ Z. Legyen x = (x1, x2 . . . , xn) ∈ {0, 1}n a bi sulyu es T celu

0-1 hatizsak problema megoldasa. A c0 = (x1, x2 . . . , xn,−1) ∈ Zn+1 vektor

generalja az x0 = c0M0 racsbeli vektort

x0 = c0M0 = (x1, . . . , xn, N(x1b1 + . . .+ xnbn − T )) = (x, 0),

amibol, hogyha megkapjuk x0-t, akkor megvan az x is. Tegyuk fel, hogy az

xi-k legalabb fele nemnulla. Ekkor

||x0||2 ≤n

2.

Tovabba nagy n-re annak az eselye, hogy van x0-nal kisebb vektor az L0

racsban

P (@xj, ||xj||2 < ||x0||2) ≤ n(2n√n/2 + 1)

2e0n

B,

ahol e0 = 1.5472. B = 2cn, e > e0 valasztassal a valoszınuseg 0-hoz tart n

novelesevel.

Ebbol kovetkezik, hogy majdnem minden hatizsak problema feltorheto nagy

n es

d =n

log2B=

1

e< 0.6463

eseten, ha ismerjuk a racs legrovidebb vektorat, vagy az LLL-algoritmus

kelloen jo kozelıtest ad erre.

26

Page 29: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Coster, LaMacchia, Odlyzko es Schnorr modszere: 1991-ben [17]

jobb korlatot adtak a d-re, egeszen d < 0.9408-ig terjesztettek ki a sajat

algoritmusukat, ami termeszetesen Lagarias es Odlyzko modszeren alapszik.

M0 helyett dolgozzunk az alabbi M1 matrixxal. Legyen L1 az M1 matrix

sorai altal kifeszıtett racs.

M1 =

1 Nb1

1 Nb2. . .

...

1 Nbn

1/2 1/2 . . . 1/2 NT

c1 = (x1, x2, . . . , xn,−1) ∈ Zn+1 generalja az x1 racsbeli vektort

x1 = c1M1 = (x1 − 1/2, x2 − 1/2, . . . , xn − 1/2, 0),

amelynek minden eleme 0, vagy ±1/2, hiszen ∀xi ∈ {0, 1}. Emiatt

||x1||2 =n

4,

vagyis x1 egy rovid L1-beli vektor. Ebben a tovabbfejlesztett esetben annak

a valoszınusege, hogy x1 a legrovidebb vektor

P (@xj, ||xj||2 < ||x1||2) ≤ n(4n√n+ 1)

2e1n

B,

ahol e1 = 1.0628. B = 2en, e > e1 valasztassal a valoszınuseg itt is 0-hoz tart

n novelese eseten. Emiatt nagy n-re es

d <1

c= 0.9408

maximalis surusegre majdnem minden hatizsak problema visszafejtheto, szin-

ten a racs legrovidebb vektoranak, vagy a racsredukcio soran kapott legrovi-

debb vektornak ismereteben [18].

27

Page 30: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Ezek tudataban nem hasznaljuk a Merkle-Hellman rendszert titkosıtasra,

hiszen nem szeretnenk, hogy kodolt uzeneteink eredeti tartalma keretlen ke-

zekbe keruljon. 1978 ota tobb probalkozas is volt hatizsak alapu, hasznalhato

titkosıtas megalkotasara, am a legtobbet racsredukcioval, a Lagarias-Odlyzko

modszerrel es annak variansaival fel lehet torni. Nehany rendszer viszont ed-

dig hatekonyan ellenallt a feltoresi kıserleteknek, ilyen peldaul a Chor-Rivest

knapsack cryptosystem [19], [20].

28

Page 31: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

5. Chor-Rivest hatizsak titkosıtas

Legyen GF (ph) veges test, hogy ph − 1-nek csak kozepesen nagy prımosztoi

legyenek, ıgy ph − 1 diszkret logaritmusai konnyen kiszamolhatoak GF (ph)-

ban. Chor es Rivest publikaciojaban p = 197 es h = 24 szerepel peldakent.

Ha f(x) h-adfoku irreducibilis fopolinom GF (p) folott, akkor GF (ph)-t felır-

hatjuk GF (p)[x]/f(x) alakban. Legyen t az a maradekosztalya x-nek mod

f(x), amire f(t) = 0 es t ∈ GF (ph). Legyen g a GF (ph) multiplikatıv

csoportjanak a generatora. α ∈ GF (p)-re legyen aα olyan egesz szam, melyre

gaα = t+ α,

es legyen π(x) injekcio {0, 1, . . . , p− 1}-bol GF (p)-be. Valasztunk egy d

egesz szamot, es definialjuk ci-t a kovetkezokeppen:

ci ≡ aπ(i) + d mod ph − 1 0 ≤ ci ≤ ph − 2

c0, c1, . . . , cp−1, p, es h a nyilvanos kulcs. A privat kulcs a t, g, π es a d. A

titkosıtashoz alakıtsuk at az uzenetet:

p−1∑i=0

mi = h.

A titkosıtott uzenet

s =

p−1∑i=0

mici

lesz.

Visszafejteshez szuksegunk van r-re

r ≡ s− hd mod ph − 1 0 ≤ r ≤ ph − 2

ezzel megkapjuk, hogy

gr =

p−1∏i=0

gmiaπ(i) .

29

Page 32: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

G-vel jeloljuk a gr polinomot, es g definıcioja szerint gaπ(i) atırhato x+ π(i)

alakba.

Ekkorp−1∏i=0

gmiaπ(i) =

p−1∏i=0

(x+ π(i))mi ,

es ıgy

G+ f(x) =

p−1∏i=0

(x+ π(i))mi ,

amely egyenloseg jobb oldalan a polinom foegyutthatoja 1 es foka pontosan

h. Az mi-k erteke 0 vagy 1, es innentol kiszamıthatoak a G + f(x) fakto-

rizaciojaval, amelyre van hatekony algoritmus [21].

5.1. Biztonsag, feltorhetoseg

A Chor-Rivest cryptosystem egyik erdekes tulajdonsaga, hogy a feltores bo-

nyolultsaga nem fugg egyik jol ismert szamıtasi problema latszolagos nehezse-

getol sem. Peldaul, ha valaki a jelenleginel hatekonyabb algoritmust mutatna

a diszkret logaritmus problemara, az pont, hogy javıtana a titkosıtast, gyor-

sabba teve a kodolast-dekodolast, de egyaltalan nem lenne konnyebb feltorni.

A publikacioban egyebkent tobbfele tamadast is targyalnak, viszont eddig

nem ismert kozuluk olyan, amely kepes lenne visszafejteni az uzenetet, ha a

p es a h parameterek jol vannak megvalasztva.

30

Page 33: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

Hivatkozasok

[1] Ralph C Merkle and Martin E Hellman. Hiding information and signa-

tures in trapdoor knapsacks. Information Theory, IEEE Transactions

on, 24(5):525–530, 1978.

[2] Adi Shamir. A polynomial time algorithm for breaking the basic Merkle-

Hellman cryptosystem. In Advances in Cryptology, pages 279–288.

Springer, 1983.

[3] Michael R Garey and David S Johnson. A guide to the theory of NP-

completeness. WH Freemann, New York, 1979.

[4] Stephen A Cook. The complexity of theorem-proving procedures. In

Proceedings of the third annual ACM symposium on Theory of comput-

ing, pages 151–158. ACM, 1971.

[5] Pierluigi Crescenzi, Emma Enstrom, and Viggo Kann. From theory to

practice: NP-completeness for every CS student. In Proceedings of the

18th ACM conference on Innovation and technology in computer science

education, pages 16–21. ACM, 2013.

[6] Pilu Crescenzi and Viggo Kann. The NP-completeness of

Subset Sum. http://cs.mcgill.ca/ lyepre/pdf/assignment2-

solutions/subsetSumNPCompleteness.pdf, 2011.

[7] M Jason Hinek. Lattice attacks in cryptography: A partial overview.

School of Computer Science, University of Waterloo, Canada, 2004.

[8] Oded Regev. Lattices in computer science. Lecture notes of a course

given in Tel Aviv University, 2004.

31

Page 34: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

[9] Nicolas Gama and Phong Q Nguyen. Predicting lattice reduction. In Ad-

vances in Cryptology–EUROCRYPT 2008, pages 31–51. Springer, 2008.

[10] Daniele Micciancio and Oded Regev. Lattice-based cryptography. In

Post-quantum cryptography, pages 147–191. Springer, 2009.

[11] Miklos Ajtai. Optimal lower bounds for the Korkine-Zolotareff para-

meters of a lattice and for Schnorr’s algorithm for the shortest vector

problem. Theory of Computing, 4(1):21–51, 2008.

[12] Freud Robert and Gyarmati Edit. Szamelmelet. Nemzeti Tankonyvki-

ado, 2006.

[13] Richard Eier and Dipl-Ing H Lagger. Trapdoors in knapsack kryptosys-

tems. In Cryptography, pages 316–322. Springer, 1982.

[14] Yvo G Desmedt, Joos P Vandewalle, and Rene JM Govaerts. A critical

analysis of the security of knapsack public-key algorithms. Information

Theory, IEEE Transactions on, 30(4):601–611, 1984.

[15] Jeffrey C Lagarias and Andrew M Odlyzko. Solving low-density subset

sum problems. Journal of the ACM (JACM), 32(1):229–246, 1985.

[16] Miklos Ajtai. The shortest vector problem in L2 is NP-hard for randomi-

zed reductions. In Proceedings of the thirtieth annual ACM symposium

on Theory of computing, pages 10–19. ACM, 1998.

[17] Matthijs J Coster, Brian A LaMacchia, Andrew M Odlyzko, and Claus P

Schnorr. An improved low-density subset sum algorithm. In Advances

in Cryptology—EUROCRYPT’91, pages 54–67. Springer, 1991.

32

Page 35: A h atizs ak probl ema alkalmaz asa a kriptogr a abanweb.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2016/horvath_akos.pdfmutatjuk az LLL-algoritmust, valamint, hogy az eredetileg polinomok

[18] Ernest F Brickell. Solving low density knapsacks. In Advances in Cryp-

tology, pages 25–37. Springer, 1984.

[19] Benny Chor and Ronald L Rivest. A knapsack-type public key cryp-

tosystem based on arithmetic in finite fields. Information Theory, IEEE

Transactions on, 34(5):901–909, 1988.

[20] Hendrik W Lenstra Jr. On the Chor—Rivest knapsack cryptosystem.

Journal of Cryptology, 3(3):149–155, 1991.

[21] Andrew M Odlyzko. The rise and fall of knapsack cryptosystems. Cryp-

tology and computational number theory, 42:75–88, 1990.

33