Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... ·...

28
ЗАШТИТА ПОДАТАКА Симетрични алгоритми заштите коначна поља

Transcript of Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... ·...

Page 1: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

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

Симетрични алгоритми заштите

коначна поља

Page 2: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Преглед

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

– концепти група, прстенова и поља

– модуларна аритметика са целим бројевима

– Еуклидов GCD алгоритам

– коначна поља GF(p)

– полиноми

2/26

Page 3: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Дељење

• нека неки број који није нула b дели a

ако за неко m имамо a=mb (a,b,m цели

бројеви)

• тј. b се садржи у a без остатка

• записујемо b|a

• и кажемо да је b делилац за a

• нпр. 13|182, -5|30, 17|0

3/26

Page 4: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Дељење (2)

• следеће релације важе:

–ако a|1 онда је a=±1

–ако a|b и b|a онда je a=±b

–свако b≠0 дели 0

–ако a|b и b|c онда a|c

–ако b|g и b|h онда b|(mg+nh)

•ако b|g онда je g=bxg1

•ако b|h онда je h=bxh1

•тада je mg+nh = mbg1+nbh1 = b(mg1+nh1)4/26

Page 5: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Група

• је низ елемената А={a,b,c,…}

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

увек у истом низу елемената

– затвореност: ако су a и b из А, тада је и a*b из А

• поштује:

– закон асоцијативности: (a*b)*c = a*(b*c)

– има јединични елемент e: e*a = a*e = a

– има инверзни елемент a-1: a*a-1 = e

• ако има коначан број елемената то је коначна група

и број елемената представља ред групе, у супротном

је бесконачна група

• ако важи комутативност a*b = b*a

– тада је то Абелова група5/26

Page 6: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Циклична група

• експонент дефинишемо као вишеструку

примену операције

– пример: a3 = a*a*a

• и нека је јединични елемент: e=a0

• и нека је a-n = (a-1)n

• група је цикличка ако је сваки елемент

експонент неког фиксираног елемента

– нпр. b = ak за неко a и свако b из групе

• за a се каже да је генератор групе

• циклична група је увек Абелова и може бити

коначна или бесконачна6/26

Page 7: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Прстен

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

• Абелова група са операцијом сабирања

• за множење важе:– затвореност

– асоцијативност

– дистрибутивност над сабирањем: a(b+c) = ab + ac

• у суштини прстен је скуп над којим можемо да примењујемо сабирање, одузимање и множење без да напустимо скуп

• ако је мултипликативност комутативна, онда је токомутативни прстен

7/26

Page 8: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Поље

• низ елемената са две операције:

– Абелова група за сабирање

– Абелова група за множење (игноришући 0)

– прстен

• у суштини поље је скуп над којим

можемо да примењујемо сабирање,

одузимање, множење и дељење, а да

не напустимо скуп

8/26

Page 9: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Модуларна аритметика

• дефинише се оператор модула a mod

n као остатак дељења целобројне

вредности a са позитивном

целобројном вредношћу n

• користи се израз конгруенција за:

– (a mod n) = (b mod n)

– пише се a ≡ b (mod n)

– нпр. 100 ≡ 34 mod 11

9/26

Page 10: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Пример за модуло 7

...

-21 -20 -19 -18 -17 -16 -15

-14 -13 -12 -11 -10 -9 -8

-7 -6 -5 -4 -3 -2 -1

0 1 2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31 32 33 34

...

10/26

Page 11: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Особине конгруентности

• a ≡ b (mod n) ако n|(a-b)

• a ≡ b (mod n) implicira

b ≡ a (mod n)

• a ≡ b (mod n) i b ≡ c (mod n)

implicira a ≡ c (mod n)

11/26

Page 12: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Операције модуларне

аритметике

• користи се коначан број вредности, и

резултати се добијају увек у том скупу

вредности

• модуларна аритметика је када се сабирањем

и множењем и мод операцијом редуковањем

долази до решења

• редуковање је могуће у сваком тренутку, нпр

– (a+b) mod n = ((a mod n) + (b mod n)) mod n

– (12+9) mod 5 = 1

– ((12 mod 5)+(9 mod 5)) mod 5 = (2+4) mod 5 = 1

12/26

Page 13: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Модуларна аритметика

• може се радити са било којом групом целих бројева: Zn = {0, 1, … , n-

1}

• направи се комутативни прстен за

сабирање

• мора да постоји јединични елемент за

множење

13/26

Page 14: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Пример за модуло 8

сабирање+ 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7 0

2 2 3 4 5 6 7 0 1

3 3 4 5 6 7 0 1 2

4 4 5 6 7 0 1 2 3

5 5 6 7 0 1 2 3 4

6 6 7 0 1 2 3 4 5

7 7 0 1 2 3 4 5 6

14/26

Page 15: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Пример за модуло 8

множењеx 0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7

2 0 2 4 6 0 2 4 6

3 0 3 6 1 4 7 2 5

4 0 4 0 4 0 4 0 4

5 0 5 2 7 4 1 6 3

6 0 6 4 2 0 6 4 2

7 0 7 6 5 4 3 2 1

15/26

Page 16: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Највећи заједнички делилац

(GCD)

• GCD (a,b) за a и b је највећи могући

број који дели и a и b

– нпр GCD(100,75) = 25

• често имамо да не постоји заједнички

фактор (осим 1) и такви бројеви су

узајамно прости

– нпр GCD(7,22) = 1

– зато су 7 и 22 узајамно прости

16/26

Page 17: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Еуклидов GCD алгоритам

• ефикасан начин за проналажење GCD(a,b)

• користи се теорема да:

– GCD(a,b) = GCD(b, a mod b)

• Еуклидов алгоритам за рачунање GCD(a,b):

– A=a, B=b

– while B>0

• R = A mod B

• A = B, B = R

– return A

17/26

Page 18: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Пример GCD(2050,1128)

2050 = 1 x 1128 + 922 gcd(1128, 922)

1128 = 1 x 922 + 206 gcd(922, 206)

922 = 4 x 206 + 98 gcd(206, 98)

206 = 2 x 98 + 10 gcd(98, 10)

98 = 9 x 10 + 8 gcd(10, 8)

10 = 1 x 8 + 2 gcd(8, 2)

8 = 4 x 2 + 0 gcd(2, 0)

18/26

Page 19: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Поља Galois

• коначна поља играју кључну улогу у криптографији

• могуће је доказати да број елемената у коначном пољу мора бити степен простог броја pn

• Galois поља се обележавају као GF(pn)

• најчешће су у употреби:– GF(p)

– GF(2n)

19/26

Page 20: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Galois поља GF(p)

• GF(p) је низ целих бројева {0,1, … ,

p-1} са аритметичким операцијама по

модулу p

• могуће су операције сабирања,

одузимања, множења и дељења са резултатом у скупу GF(p)

20/26

Page 21: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Пример GF(7)+ 0 1 2 3 4 5 6

0 0 1 2 3 4 5 6

1 1 2 3 4 5 6 0

2 2 3 4 5 6 0 1

3 3 4 5 6 0 1 2

4 4 5 6 0 1 2 3

5 5 6 0 1 2 3 4

6 6 0 1 2 3 4 5

x 0 1 2 3 4 5 6

0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6

2 0 2 4 6 1 3 5

3 0 3 6 2 5 1 4

4 0 4 1 5 2 6 3

5 0 5 3 1 6 4 2

6 0 6 5 4 3 2 1

21/26

Page 22: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Полиноми

• могу се рачунати кроз суме

• постоје и алтернативе

– класична аритметика са полиномима

– аритметика са полиномима са коефицијентима по модулу

– модуларна аритметика са полиномима

22/26

Page 23: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Класична аритметика са

полиномима

• саберу се или одузму одговарајући

коефицијенти

• помноже се сваки са сваким

• нпр.

– ако су f(x) = x3 + x2 + 2 и g(x) = x2 – x + 1

f(x) + g(x) = x3 + 2x2 – x + 3

f(x) – g(x) = x3 + x + 1

f(x) * g(x) = x5 + 3x2 – 2x + 2

23/26

Page 24: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

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

коефицијентима по модулу

• када се израчунава вредност сваког

коефицијента, рачунање се ради по

неком модулу

• најинтеренсантније нам је mod 2

– сви коефицијенти су 0 или 1

– нпр. ако су f(x) = x3 + x2 и g(x) = x2 + x + 1

f(x) + g(x) = x3 + x + 1

f(x) x g(x) = x5 + x2

24/26

Page 25: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Модуларна аритметика са

полиномима

• сваки полином се може написати у

форми:

– f(x) = q(x) g(x) + r(x)

– r(x) се може тумачити као остатак

– r(x) = f(x) mod g(x)

• ако нема остатка кажемо g(x) дели f(x)

• ако g(x) нема друге делиоце осим себе

и 1 каже се да је несводљиви полином

25/26

Page 26: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

GCD алгоритам са полиномима

• може се наћи највећи заједнички делилац за полиноме

– c(x) = GCD(a(x), b(x)) ако је c(x) полином највећег степена који дели оба a(x) и b(x)

– Euclid-ов алгоритам се може прилагодити за полиноме:

– EUCLID[a(x), b(x)]

1. A(x) = a(x); B(x) = b(x)

2. if B(x) = 0 return A(x) = gcd[a(x), b(x)]

3. R(x) = A(x) mod B(x)

4. A(x) = B(x)

5. B(x) = R(x)

6. goto 2

26/26

Page 27: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Модуларна аритметика са

полиномима

• може се рачунати у пољу GF(2n)

– полиноми са коефицијентима mod 2

– чији степен је мањи од n

• чине коначно поље

• може се наћи инверзна вредност

27/26

Page 28: Cryptography and Network Security 3/erti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/2018/04... · 2018-03-22 · примењујемо сабирање, ... долази до ... 206

Пример GF(23)

28/26