Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan +...

25
Kriptografija

Transcript of Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan +...

Page 1: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Kriptografija

Page 2: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Osnovni kriptografski pojmovi

kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka

pisanje tajnih poruka

jasni tekst – tekst pisan na jeziku sudionika komunikacije

kriptirani tekst (kriptogram) – tekst dobiven „skrivanjem” jasnog teksta

kriptiranje (enkripcija) – pretvaranje jasnog u kriptirani tekst

ključ kriptiranja – pravilo prema kojem se odvija kriptiranje

dekriptiranje – postupak pretvaranja kriptiranog teksta u jasni tekst

kriptoanaliza – pokušaj dobivanja jasnog teksta iz kriptiranog teksta bez poznavanja ključa kriptiranja

kriptologija – bavi se kriptografijom i kriptoanalizom

Page 3: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Osnovni kriptografski pojmovi

pošiljatelj

kriptirani tekst (kriptogram)

kriptiranje (enkripcija)

otvoreni (jasni) tekst

primatelj

"neprijatelj"

kripto

anali

za

jasni tekst ?

de

krip

tira

nje

jasni tekst

klju

č

ključ

Page 4: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Primjena kriptografije

Internet dućani

Internet bankarstvo

zaštita video i audio sadržaja

medicina

financije

Page 5: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Cezarovo kriptiranje

svaki znak se kriptira na način da se pomakne tri znaka unaprijed

Slovo A B C D E F G H I J K L M

Kriptirano slovo D E F G H I J K L M N O P

Slovo N O P Q R S T U V W X Y Z

Kriptirano slovo Q R S T U V W X Y Z A B C

KRIPTIRANJE JE BAS ZABAVNO → NULSWLUDQMH MH EDV CDEDYQR

Page 6: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Cezarovo kriptiranje - implementacija

def cezar(s):

k = ''

for t in s:

n = ord(t) - 65

n += 3

n %= 26

n += 65

k += chr(n)

return k

Page 7: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Afino kriptiranje

kriptiranje se provodi funkcijom: f(c) = (a * c + b ) %

26

c – redni broj znaka koji kriptiramo (redni brojevi

započinju od 0: A – 0, B – 1,…)

a i b prirodni brojevi

Redni broj 0 1 2 3 4 5 6 7 8 9 10 11 12

Slovo A B C D E F G H I J K L M

Redni broj 13 14 15 16 17 18 19 20 21 22 23 24 25

Slovo N O P Q R S T U V W X Y Z

Page 8: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Afino kriptiranje - primjer

Zadana je afina funkcija f(c) = (7 * c + 5) %

26 te pripadni kriptirani tekst: XUJGIZVUFOJQF. Koji

je pripadni otvoreni tekst?

redni broj slova X je 23

23 = (7 * c + 5) % 26

c = ?

Općenito c = (d * f(c) + e) % 26

d = ?

e = ?

Page 9: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Modularna aritmetika

+n – modularno zbrajanje – a +n b = (a + b) % n

*n – modularno množenje – a *n b = (a * b) % n

4 +7 5 = 2

9 +15 12 = 6

7 *9 3 = 3

5 *6 5 = 1

Page 10: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Modularna aritmetika

aditivni inverz broja a – broj x za koji vrijedi a +n x = 0

multiplikativni inverz broja a – broj x za koji vrijedi a *n x = 1

Koji je aditivni inverz broja 5 ako je n = 9?

5 +9 x = 0

vidi se da je x = n – 5, dakle x = 4

Koji je multiplikativni inverz broja 5 ako je n = 9?

5 *9 x = 1

metodom pokušaja odredi se da je x = 2

Page 11: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Afino kriptiranje - primjer

Zadana je afina funkcija f(c) = (7 * c + 5) %

26 te pripadni kriptirani tekst: XUJGIZVUFOJQF. Koji

je pripadni otvoreni tekst?

f(c) = 7 *26 c +26 5

f(c) +26 x = 7 *26 c

x je aditivni inverz broja 5: 5 +26 x = 0, x = 21

f(c) *26 d + 21 *26 d = c

d je multiplikativni inverz broja 7: 7 *26 15 = 1

c = 15 *26 f(c) +26 3

Page 12: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Afino kriptiranje - primjer

Zadana je afina funkcija f(c) = (7 * c + 5) %

26 te pripadni kriptirani tekst: XUJGIZVUFOJQF. Koji

je pripadni otvoreni tekst?

c = 15 *26 f(c) +26 3

15 *26 ‘X’ +26 3 = ‘K’

15 *26 ‘U’ +26 3 = ‘R’

Page 13: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vrste kriptiranja

cezarovo i afino kriptiranje su primjeri

monoalfabetksog kriptiranja sa simetričnim ključem

monoalfabetsko – neko slovo se uvijek kriptira istim

slovom – suprotno je polialfabetsko

simetrični ključ – ključ za kriptiranje jednak je ključu

za dekriptiranje ili se ključ za dekriptiranje lako

dobije iz ključa za kriptiranje – suprotno je

asimetrični ključ

Page 14: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vigenèreovo kriptiranje

ključ kriptiranja je tekst

ključ se višestruko napiše ispod jasnog teksta te se

svako slovo jasnog teksta kriptira odgovarajućim

slovom ključa

Page 15: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vigenèreovo kriptiranje - primjer

Zadan je jasni tekst KRIPTIRANJE te otvoreni tekst

CEZAR. Koji je pripadni kriptirani tekst ako je poznato

da se tekst kriptira Vigenereovim kriptiranjem.

K R I P T I R A N J E

C E Z A R C E Z A R C

Page 16: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vigenèreovo kriptiranje - tablica A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A

C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Page 17: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vigenèreovo kriptiranje - primjer

zapis tablice?

k(a, b) = a +26 b

k(‘K’, ‘C’) = ‘K’ +26 ‘C’ = ‘M’

K R I P T I R A N J E

C E Z A R C E Z A R C

M

Page 18: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vigenèreovo kriptiranje - primjer

zapis tablice?

k(a, b) = a +26 b

k(‘K’, ‘C’) = ‘K’ +26 ‘C’ = ‘M’

K R I P T I R A N J E

C E Z A R C E Z A R C

M V H P K K V Z N A G

Page 19: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Vigenèreovo kriptiranje - implementacija

def vigenere(o, k):

k = k * (len(o) // len(k) + 1)

s = ''

for i in range(len(o)):

s += chr((ord(o[i]) - 65 + ord(k[i]) - 65) % 26 + 65)

return s

Page 20: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Transpozicijsko kriptiranje

slova jasnog teksta permutiraju se prema zadanom

ključu

jednostavna varijanta DES-a

DES

moderni kriptografski sustav

tekst se razbije na blokove

svaki blok se zapiše u binarnom obliku

permutiraju se bitovi zapisa bloka

Page 21: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Transpozicijsko kriptiranje - ilustracija TEKST KOJI POSILJATELJ ZELI POSLATI PRIMATELJU ZVAT CEMO JASNI TEKST

T E K S T K

O J I P O S

I L J A T E

L J Z E L I

P O S L A T

I P R I M A

T E L J U Z

V A T C E M

O J A S N I

T E K S T X

2 4 6 1 3 5

S T T E K K

P O O J S I

A I T L E J

E L L J I Z

L P A O T S

I I M P A R

J T U E Z L

C V E A M T

S O N J I A

S T T E X K

SPAELIJCSSTOILPITVOTTOTLAMUENTEJLJOPEAJEKSEITAZMITKIJZSRLTAK

Page 22: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

Transpozicijsko kriptiranje - implementacija def transpozicijsko(tekst, k):

s = len(k)

r = len(tekst) // s + int(len(tekst) % s != 0)

while len(tekst) < r * s:

tekst += 'X'

mat = [''] * r

matr = [''] * r

for i in range(r):

mat[i] = [''] * s

matr[i] = [''] * s

for i in range(len(tekst)):

x, y = i // s, i % s

mat[x][y] = tekst[i]

for j in range(s):

for i in range(r):

matr[i][k[j] - 1] = mat[i][j]

ktekst = ''

for j in range(s):

for i in range(r):

ktekst += matr[i][j]

return ktekst

Page 23: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

RSA

asimetrični ključ

javni ključ

tajni ključ

Jasni tekst

javni ključ

Kriptirani tekst

Jasni tekst

tajni ključ

Page 24: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

RSA - parametri

Page 25: Kriptografija - IPAQ PETAOsnovni kriptografski pojmovi kriptografija (grč. kryptos = tajan + grapheins = pisati) bavi se pisanjem "tajnih" poruka pisanje tajnih poruka jasni tekst

RSA - ilustracija

p = 7

q = 19

n = 133 (p * q)

f = 108 ((p – 1) * (q – 1))

e = 5 (m(e, f) = 1)

d = 65 (d * e % f = 1)

m = 6

c = 62 (c = me % n)

m = 6 (m = cd % n)