Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад...

Post on 28-Jul-2020

13 views 0 download

Transcript of Cryptography and Network Security 3/e RSA.pdf · Напади на хардвер • Напад...

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

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

хеш функције

RSA алгоритам

Преглед

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

– RSA алгоритам

• алгоритам

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

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

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

• сигурност

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

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

• PRNG

RSA алгоритам

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

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

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

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

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

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

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.

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

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.

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

RSA употреба

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}

RSA пример (2)

RSA пример (3)

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

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

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

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

• пример:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RSA сигурност

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

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

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

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

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

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

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

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

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

затим d

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

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

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

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

проблем факторизације (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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

Задатак 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.

Решење

• 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}

Решење• M=55

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

I 2 1 0

bi 1 1 1

c

d

Решење• M=55

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

I 2 1 0

bi 1 1 1

c 1

d 55

Решење• M=55

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

I 2 1 0

bi 1 1 1

c 1 3

d 55 132

Решење• 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

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

i

bi 1 0 1 1 1

c

d

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

i

bi 1 0 1 1 1

c 1

d 132

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

i

bi 1 0 1 1 1

c 1 2

d 132 33

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

i

bi 1 0 1 1 1

c 1 2 5

d 132 33 132

Решење• 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

Решење• 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

Задатак 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?

Решење

• 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