4.8 KiB
title | author | theme | colortheme | ||||
---|---|---|---|---|---|---|---|
|
|
|
|
Uvod
-
Simetricna kriptografija Isti kljuc za sifrovanje i desifrovanje
10101 \oplus 11001 = 01100
(m \oplus k) \oplus k =m \oplus (k \oplus k)= m \oplus 0= m
- Problem bezbedne razmene kljuceva
- Problem autenticnosti
Uvod
- Asiemtricna kriptografija
-
Razliciti kljucevi za sifrovanje i desifrovanje
-
f(m,k1)=c
-
f(c,k2)=m
-
Kljuc za sifrovanje je javno dostupan, (svi znaju
k1
) -
Sifrovanje privatnim kljucem korisceno kao digitalni potpis
-
f(m,k2)=c
-
f(c,k1)=m
-
RSA
- RSA
-
1977. Ron Rivest, Adi Shamir, Leonard Adleman
-
1976. Diffie–Hellman razmena kljuceva
-
g^a \equiv A \mod p
-
g^b \equiv B \mod p
-
$A^b \equiv (g^a)^b$$\equiv (g^b)^a$$\equiv B^a$
\mod p
-
RSA
RSA
Mala Fermaova teorema
Ako je p
prost broj, za svako a
vazi:
a^{p-1} \equiv 1 \mod p
Posledica
Ako su p
i q
prosti brojevi, za svako a
vazi:
$a^{(p-1)(q-1)}$$\equiv ({a^{p-1}})^{q-1}$\equiv 1 \mod q
$a^{(p-1)(q-1)}$$\equiv ({a^{q-1}})^{p-1}$\equiv 1 \mod p
(a^{(p-1)(q-1)}-1)
je deljivo i sa p
i q
.
p
i q
su prosti, pa mora da je deljivo i sa p \cdot q
.
RSA
Posledica
a^{(p-1)(q-1)} \equiv 1 \mod pq
Takodje:
$a^{x(p-1)(q-1)}$$\equiv ({a^x})^{(p-1)(q-1)}$\equiv 1 \mod pq
a^{x(p-1)(q-1)+1} \equiv a \mod pq
\pause
Trazimo
e
i d
tako da:
({a^e})^d \equiv a^{ed} \equiv a^{x(p-1)(q-1)+1} \mod pq
Odnosno:
ed \equiv 1 \mod (p-1)(q-1)
d
je modularni inverz od e
pod modulom (p-1)(q-1)
Mozemo koristiti Produzeni Euklidov algoritam
.
U buduce cemo oznacavati n=pq
, a \varphi(n)=(p-1)(q-1)
a^{\varphi(n)} \equiv 1 \mod n
$a^{ed} \equiv a^{x\varphi(n)+1}$\equiv a \mod n
RSA
- Problem faktorisanja
n=pq
\varphi(n)=(p-1)(q-1)
nije poznato bezp
iq
d
kao modularni inverz ode
nije poznat bez\varphi(n)
d
mozemo da cuvamo tajnim cak i ako objavimoe
in
javno
RSA
- Generisanje kljuceva
-
Nadjimo velike proste brojeve
p
iq
Testovi prostosti brojeva (Fermaov test)
-
Generisemo
n=pq
-
Nadjimo
e
koji je uzajamno prost sa(p-1)(q-1)
-
Nadjimo
d
koriscenjem Produzenog Euklidovog algoritma -
Mozemo zaboraviti
p
iq
, jer nam vise ne trebaju
-
Sifrovanje i potpisivanje
-
Javni kljuc se sastoji od brojeva
e
in
m^e \equiv C \mod n
-
Privatni kljuc se sastoji od brojeva
d
in
C^d \equiv m \mod n
-
Digitalni potpis se postize sifrovanjem sa privatim kljucem
m^d \equiv S \mod n
-
Provera digitalnog potpisa:
S^e \equiv m \mod n
Prodruzeni Euklidov algoritam
def egcd(a, b):
if a == 0:
return (b, 0, 1)
g, y, x = egcd(b%a,a)
return (g, x - (b//a) * y, y)
def modinv(a, m):
g, x, y = egcd(a, m)
if g != 1:
raise Exception('No modular inverse')
return x%m
Napadi na RSA
- Napadi na RSA
- Pogadjanje poruke, potrebno dopunjavanje poruke random podacima (padding)
- Premali eksponent
e
, korenovanje sifrovanog teksta za male poruke (velikoe
) - Koriscenje istog eksponenta za vise kljuceva, napad koriscenjem Kineske teoreme o ostatku (random izabrano
e
) - Desifrovanje sumnjivog teksta,
(x^e \cdot C)^d \equiv (x^e)^d \cdot C^d \equiv x \cdot m \mod n
Primena
GNU Privacy Guard
- 1999. Werner Koch
- Generisanje kljuca:
gpg --gen-key
- Lista javnih kljuceva:
gpg --list-keys
- Export privatnih kljuceva:
gpg --export-secret-keys --output backup.gpg
- Upload kljuceva:
gpg --send-key [KEYID]
- Sifrovanje poruke:
gpg -e file.txt
- Desifrovanje:
gpg -d file.txt
- Potpisivanje poruke ili fajla:
gpg -s file.exe
- Potpisivanje kljuca:
gpg --sign-key [KEYID]
- ASCII output:
gpg --armor -se file.txt
- GPG password manager:
gpg --armor -c passwords.txt
Primena
Git
- Podesavanje kljuca:
git config --global user.signingkey [KEYID]
- Potpisivanje komita:
git commit -S
Primena
SSH
- Generisanje kljuca:
ssh-keygen [-f filename]
- Dodavanje kljuca na remote masinu:
ssh-copy-id [-i filename] user@hostname
~/.ssh/authorized_keys
The Onion Router
Tor
- 1990.-te United States Naval Research Laboratory (Paul Syverson,Michael G. Reed,David Goldschlag)
- 20.9.2002. prva verzija Tor-a (javni projekat, anonimnosti u masi)
The Onion Router
Onion hidden services
The Onion Router
- Napadi na Tor
- Tor ne stiti od vremenske korelacije (pristup sa obe strane veze)
- Slabosti u aplikacijama koje koriste Tor
- Pogresno konfigurisane aplikacije
- DNS Leak
Hvala
Hvala na paznji!