39
ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције RSA алгоритам

Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

ЗАШТИТА ПОДАТАКА

Шифровање јавним кључем и

хеш функције

RSA алгоритам

Page 2: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Преглед

• Биће објашњено:

– RSA алгоритам

• алгоритам

• прорачунски аспекти

• ефикасност коришћењем јавног кључа

• генерисање кључа

• сигурност

• проблем факторизације

• временски напади

• PRNG

Page 3: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA алгоритам

• смишљен 1977. године на MIT-у од стране Rivest, Shamir & Adleman (отуда назив)

• најпознатији и највише коришћен алгоритам шифровања помоћу јавног кључа

• RSA алгоритам је блок алгоритам за шифровање у коме су оригинални подаци и шифровани подаци цели бројеви између 0 и n-1 за неко n.

• Типична величина за n је 1024 бита, или 309 децималних цифара. Односно n је мање од 21024.

• Размотрићемо RSA алгоритам, почевши од објашњења алгоритма, а затим и неких прорачунских и криптоаналитичких аспеката.

Page 4: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA алгоритам (2)

• Алгоритам користи израз са експонентима

• Оригинална порука се шифрује у блоковима, таквим да сваки блок има бинарну вредност мању од неког броја n.

• Односно, величина блока мора бити мања или једнака log2(n) + 1.

• Практично, величина блока је i бита, где је

2i < n <= 2i+1

• Шифровање и дешифровање су следећег облика, за неку оригиналну поруку M и одговарајућу шифровану поруку C:

C = Me mod n

M = Cd mod n = (Me)d mod n = Med mod n

Page 5: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA алгоритам (3)

• И пошиљалац и прималац поруке морају да знају вредност n.

• Пошиљалац мора да зна вредност e, и само прималац зна вредност d.

• Дакле, ово је алгоритам за шифровање са јавним кључем PU = {e, n} и приватним кључем PR = {d, n}.

• Да би овај алгоритам задовољио услове шифровања са јавним кључем, морају бити испуњени следећи услови:1. Могуће је наћи вредности за e, d, n такве да је

Med mod n = M за свако M < n.

2. Релативно је једноставно израчунати Me mod n и Cd mod n за све вредности M < n.

3. Незамисливо је да се може одредити d ако су познати e и n.

Page 6: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA алгоритам (4)

• Med mod n = M, ће важити уколико су e и d мултипликативно инверзни по модулу ф(n), где јеф(n) Ојлерова фи функција.

• за просте p и q важи: ф(pq) = (p-1)(q-1)

• Релација између e и d може се изразити као:

ed mod ф(n) = 1

• Ово је еквивалентно са:

ed ≡ 1 mod ф(n)

d ≡ e-1 mod ф(n)

• Односно e и d су мултипликативно инверзни по mod ф(n). Ово је тачно само ако су d и e узајамно прости у односу на ф(n), тј. gcd(ф(n),d) = 1

Page 7: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA алгоритам (5)

• Сада можемо да искажемо RSA алгоритам. Састоји се од следећег:– p,q, два проста броја (тајни, бирају се)

– n = pq (јавно, срачунато)

– e, тако да је gcd(ф(n),e) = 1;1 < e < ф(n) (јавно, бира се)

– d ≡ e-1(mod ф(n)) (тајни, срачунат)

• Приватни кључ се састоји од {d, n}, а јавни кључ се састоји од {e, n}.

• Ако претпоставимо да је корисник A објавио свој јавни кључ и да корисник B жели да пошаље поруку M кориснику A. Тада B срачунава C = Me mod n и шаље C. По пријему шифрованог текста, корисник A дешифрује израчунавајући M = Cd mod n.

Page 8: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA прављење кључа

Page 9: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA употреба

Page 10: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA пример

1. Избор простих: p=17 и q=11

2. Рачунање n = pq =17×11=187

3. Рачунање ф(n)=(p–1)(q-1)=16×10=160

4. Избор e : gcd(e,160)=1; бирамо e=7

5. Одређујемо d: de≡1 mod 160 и d < 160

Вредност је d=23 како је 23×7=161=

10×160+1

6. Објављује се јавни кључ PU={7,187}

7. Чува се приватни кључ PR={23,187}

Page 11: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA пример (2)

Page 12: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA пример (3)

Page 13: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Прорачунски аспекти -

експонентизација• може се користити квадрат и множење алгоритам

• брз и ефикасан алгоритам за експонентизацију

• концепт се заснива на узастопном степеновању базе на квадрат и множењу оних који су потребни да се израчуна резултат

• пример:

887 mod 187 = [(884 mod 187) x (882 mod 187) xx (881 mod 187)] mod 187

881 mod 187 = 88

882 mod 187 = 7744 mod 187 = 77

884 mod 187 = 772 mod 187 = 5929 mod 187 = 132

887 mod 187 = (88 x 77 x 132) mod 187 = 894,432 mod 187 = 11

Page 14: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Прорачунски аспекти -

експонентизација (2)

Page 15: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Ефикасност коришћењем јавног

кључа• Да би се убрзало коришћење RSA алгоритма са

јавним кључем обично се користи специфични избор вредности e.

• Најчешћи избор је 65537 (216 +1)

• Друга два популарна избора су 3 и 17.

• Сваки од ових избора има само два бита која су јединице тако да је број мултипликација које су неопходне за експонентизацију минималан.

• Међутим, у случају избора малих кључева, као што су 3 и 17, алгоритам остаје рањив за једноставне нападе, па се зато најчешће бира 65537, али се мора водити рачуна да су p и q конгруентни са 1 (mod 65537), како би било испуњено gcd(ф(n),e) = 1.

Page 16: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA генерисање кључа

• корисници RSA морају:– изабрати два случајна проста броја - p, q

– изабрати или e или d и израчунати други

• прости p,q не смеју бити лако изведени изn=pq

– значи да морају бити довољно велики

– типично се користе тестови засновани на вероватноћи, примењени на бројеве жељене величине (нпр. Miller-Rabin алгоритам)

– потребно ln(N)/2 покушаја; нпр. за проналажење простог броја реда величине 2200 било би потребно ln(2200)/2 = 70 покушаја

Page 17: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA генерисање кључа (2)

• Ако бирамо e онда мора бити испуњено gcd(ф(n),e) = 1, а d рачунамо као d ≡ e-1(mod ф(n))

• Процедура подразумева да се генерише серија случајних бројева, који се тестирају док се не нађе неки који је узајамно прост са ф(n) (може се користити Еуклидов алгоритам)

• Проширени Еуклидов алгоритам омогућава да се истовремено пронађе и мултипликативно инверзна вредност

• Вероватноћа да су два насумична броја узајамно проста је 0,6

Page 18: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

RSA сигурност

• пет могућих напада на RSA су:– претрага свих кључева (незамисливо узевши у

обзир величину бројева)

– математички напади (засновани на тежини израчунавања Ф(N), рачунањем фактора N тј. p и q)

– временски напади (засновани на времену трајања дешифровања)

– напади на хардвер (изазивање грешака у раду процесора који генерише дигиталне потписе)

– напади на изабрану шифру (засновани на структури алгоритма)

Page 19: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Математички напади -

проблем факторизације• математички напади се јављају у три

облика:– нађу се фактори N=pq, пронађе се ф(N) и

затим d

– налажење ф(N) директно, без одређивањаp и q и затим се нађе d

– проналажење d директно

• верује се да су сви еквивалентни факторизацији

Page 20: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Математички напади -

проблем факторизације (2)Број цифара Број бита Година достизања

100 332 1991.

110 365 1992.

120 398 1993.

129 428 1994.

130 431 1996.

140 465 1999.

155 512 1999.

160 530 2003.

174 576 2003.

193 640 2005.

200 663 2005.

232 768 2009.

Page 21: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Математички напади -

проблем факторизације (3)• Савети:

– Након факторизације 768-битног n 2009. године претпоставка да ће у наредном периоду исто бити могуће и са 1024-битним вредностима, дакле повећати вредност за n

– p и q би требало да се по величини разликују за свега пар цифара, за 1024-битни кључ, оба би требала да буду реда величине између 1075 и 10100

– (p – 1) и (q – 1) би требало да садрже велики прост фактор

– gcd(p – 1, q – 1) би требало да буде мало

Page 22: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Временски напади

• развијени су средином 90-их година

• користе варијације у трајању извршавања операција– нпр. множење малог са великим бројем

• претпоставља се величина операнда на основу потрошеног времена

• Код RSA варијације потрошеног времена се јављају приликом експонентизације

• против мере– користити константно време експонентизације (лошије

перформансе)

– додавати случајна закашњења (мора их бити много)

– пре експонентизације помножити шифру са случајном вредношћу

Page 23: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Напади на хардвер

• Напад на процесор који генерише дигиталне потписе засноване на RSA алгоритму

• Изазива грешке у генерисаном потпису смањивањем напајања процесора

• Анализом потписа са грешком долази се до приватног кључа

• За кључ величине 1024 бита потребно је око 100 сати са комерцијално доступним процесором

• Није озбиљна претња, јер захтева физички приступ уређају

Page 24: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Напади на изабрану шифру

• RSA алгоритам је рањив на напад на изабрану шифру

• Ово је напад у коме противник бира одређени број шифрованих порука, а затим добија одговарајуће оригиналне поруке дешифроване приватним кључем примаоца

• Напад користи особину да је E(PU, M1) * E(PU, M2) = E(PU, M1*M2)

Page 25: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Напади на изабрану шифру

(2)• Ако имамо C = Me mod n

• Израчунати X = (C*2e)mod n

• За X као шифровану поруку добити оригиналну поруку Y = Xd mod n

• X = (C mod n)*(2e)mod n =

= (Me mod n)*(2e)mod n =

= (2M)e mod n

• Дакле Y = (2M) mod n, одакле добијамо M

• Да би описани проблем био превазиђен оригинална порука се насумично допуњава пре шифровања

Page 26: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Задатак 1

• RSA (Rivest, Shamir & Adleman)

algoritam. Koristeći pravila RSA algoritma

formirati javni i privatni ključ, ali tako da n

bude najmanje trocifren broj. Zatim

iskoristiti dobijene ključeve najpre za

šifrovanje vrednosti 55, a zatim za

dešifrovanje vrednosti dobijene

prethodnim šifrovanjem. Za izračunavanja

prilikom šifrovanja i dešifrovanja koristiti

algoritam eksponentizacije.

Page 27: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење

• n=187, p=11, q=17

• ф(n)=(p–1)(q-1)=16×10=160

1. Избор e : gcd(e,160)=1; бирамо

e=7

2. Одређујемо d: de=1 mod 160 и d <

160 Вредност је d=23 како је

23×7=161= 10×160+1

3. Објављује се јавни кључ PU={7,187}

4. Чува се приватни кључ PR={23,187}

Page 28: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M=55

• C = Me mod n = 557mod 187 = 132

I 2 1 0

bi 1 1 1

c

d

Page 29: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M=55

• C = Me mod n = 557mod 187 = 132

I 2 1 0

bi 1 1 1

c 1

d 55

Page 30: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M=55

• C = Me mod n = 557mod 187 = 132

I 2 1 0

bi 1 1 1

c 1 3

d 55 132

Page 31: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M=55

• C = Me mod n = 557mod 187 = 132

I 2 1 0

bi 1 1 1

c 1 3 7

d 55 132 132

Page 32: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M = Cd mod n = 13223 mod 187 = 55

i

bi 1 0 1 1 1

c

d

Page 33: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M = Cd mod n = 13223 mod 187 = 55

i

bi 1 0 1 1 1

c 1

d 132

Page 34: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M = Cd mod n = 13223 mod 187 = 55

i

bi 1 0 1 1 1

c 1 2

d 132 33

Page 35: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M = Cd mod n = 13223 mod 187 = 55

i

bi 1 0 1 1 1

c 1 2 5

d 132 33 132

Page 36: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M = Cd mod n = 13223 mod 187 = 55

i

bi 1 0 1 1 1

c 1 2 5 11

d 132 33 132 55

Page 37: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење• M = Cd mod n = 13223 mod 187 = 55

i

bi 1 0 1 1 1

c 1 2 5 11 23

d 132 33 132 55 55

Page 38: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Задатак 2

• U sistemu koji koristi šifrovanje pomoću

javnog ključa, korišćenjem RSA algoritma,

presreli ste šifrovanu poruku C = 10,

poslatu korisniku, čiji je javni ključ e = 11 i

n = 77. Koja je vrednost originalne poruke

M? U čemu je propust, koji je omogućio

pronalaženje M?

Page 39: Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад на процесор који генерише дигиталне потписе

Решење

• n=77, p=7, q=11

• ф(n)=(p–1)(q-1)=6×10=60

• e=11

• de=1 mod 60 и d < 60

• d=11

• C=10, M = Cd mod n = 1011 mod 77

• M = 54