diff --git a/slides/rsa/dhke.png b/slides/rsa/dhke.png index b39d55d..67b875d 100644 Binary files a/slides/rsa/dhke.png and b/slides/rsa/dhke.png differ diff --git a/slides/rsa/dhke.xcf b/slides/rsa/dhke.xcf index 34e34d3..79d9f1b 100644 Binary files a/slides/rsa/dhke.xcf and b/slides/rsa/dhke.xcf differ diff --git a/slides/rsa/rsa.md b/slides/rsa/rsa.md index 3bf8a70..70f58e9 100644 --- a/slides/rsa/rsa.md +++ b/slides/rsa/rsa.md @@ -12,42 +12,42 @@ colortheme: # Uvod - Simetricna kriptografija - - Isti kljuc za sifrovanje i desifrovanje\pause + - Isti kljuc za sifrovanje i desifrovanje - $10101 \oplus 11001 = 01100$\pause + $10101 \oplus 11001 = 01100$ - $(m \oplus k) \oplus k =m \oplus (k \oplus k)= m \oplus 0= m$\pause - - Problem bezbedne razmene kljuceva\pause + $(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\pause + - Razliciti kljucevi za sifrovanje i desifrovanje - $f(m,k1)=c$\pause + $f(m,k1)=c$ - $f(c,k2)=m$\pause - - Kljuc za sifrovanje je javno dostupan, (svi znaju $k1$)\pause - - Sifrovanje privatnim kljucem korisceno kao digitalni potpis\pause + $f(c,k2)=m$ + - Kljuc za sifrovanje je javno dostupan, (svi znaju $k1$) + - Sifrovanje privatnim kljucem korisceno kao digitalni potpis - $f(m,k2)=c$\pause + $f(m,k2)=c$ $f(c,k1)=m$ # RSA - RSA - - 1977\. Ron Rivest, Adi Shamir, Leonard Adleman\pause - - 1976\. Diffie–Hellman razmena kljuceva\pause + - 1977\. Ron Rivest, Adi Shamir, Leonard Adleman + - 1976\. Diffie–Hellman razmena kljuceva -$g^a \equiv A \mod p$\pause +$g^a \equiv A \mod p$ -$g^b \equiv B \mod p$\pause +$g^b \equiv B \mod p$ -$A^b \equiv (g^a)^b$\pause$\equiv (g^b)^a$\pause$\equiv B^a$\pause$\mod p$ +$A^b \equiv (g^a)^b$$\equiv (g^b)^a$$\equiv B^a$$\mod p$ # RSA
-![Diffie–Hellman](dhke.png) +![Diffie–Hellman](slides/rsa/dhke.png)
# RSA @@ -57,19 +57,19 @@ Ako je $p$ prost broj, za svako $a$ vazi: $a^{p-1} \equiv 1 \mod p$ -\pause + ## Posledica Ako su $p$ i $q$ prosti brojevi, za svako $a$ vazi: -$a^{(p-1)(q-1)}$\pause$\equiv ({a^{p-1}})^{q-1}$\pause$\equiv 1 \mod q$\pause +$a^{(p-1)(q-1)}$$\equiv ({a^{p-1}})^{q-1}$$\equiv 1 \mod q$ -$a^{(p-1)(q-1)}$\pause$\equiv ({a^{q-1}})^{p-1}$\pause$\equiv 1 \mod p$\pause +$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$.\pause +$(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$. @@ -78,78 +78,78 @@ $p$ i $q$ su prosti, pa mora da je deljivo i sa $p \cdot q$. # RSA ## Primecujemo -$a^{(p-1)(q-1)} \equiv 1 \mod pq$\pause +$a^{(p-1)(q-1)} \equiv 1 \mod pq$ Takodje: -$a^{x(p-1)(q-1)}$\pause$\equiv ({a^x})^{(p-1)(q-1)}$\pause$\equiv 1 \mod pq$\pause +$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 +$a^{x(p-1)(q-1)+1} \equiv a \mod pq$ ## Trazimo $e$ i $d$ tako da: -$({a^e})^d \equiv a^{ed} \equiv a^{x(p-1)(q-1)+1} \mod pq$\pause +$({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)$ \pause +$ed \equiv 1 \mod (p-1)(q-1)$ -$d$ je modularni inverz od $e$ pod modulom $(p-1)(q-1)$\pause +$d$ je modularni inverz od $e$ pod modulom $(p-1)(q-1)$ -Mozemo koristiti `Produzeni Euklidov algoritam`.\pause +Mozemo koristiti `Produzeni Euklidov algoritam`. -U buduce cemo oznacavati $n=pq$, a $\varphi(n)=(p-1)(q-1)$\pause +U buduce cemo oznacavati $n=pq$, a $\varphi(n)=(p-1)(q-1)$ -$a^{\varphi(n)} \equiv 1 \mod n$\pause +$a^{\varphi(n)} \equiv 1 \mod n$ -$a^{ed} \equiv a^{x\varphi(n)+1}$\pause$\equiv a \mod n$ +$a^{ed} \equiv a^{x\varphi(n)+1}$$\equiv a \mod n$ # RSA -- Problem faktorisanja $n=pq$\pause -- $\varphi(n)=(p-1)(q-1)$ nije poznato bez $p$ i $q$\pause -- $d$ kao modularni inverz od $e$ nije poznat bez $\varphi(n)$\pause -- $d$ mozemo da cuvamo tajnim cak i ako objavimo $e$ i $n$ javno\pause +- Problem faktorisanja $n=pq$ +- $\varphi(n)=(p-1)(q-1)$ nije poznato bez $p$ i $q$ +- $d$ kao modularni inverz od $e$ nije poznat bez $\varphi(n)$ +- $d$ mozemo da cuvamo tajnim cak i ako objavimo $e$ i $n$ javno # RSA - Generisanje kljuceva - - Nadjimo velike proste brojeve $p$ i $q$\pause + - Nadjimo velike proste brojeve $p$ i $q$ - Testovi prostosti brojeva (Fermaov test)\pause - - Generisemo $n=pq$\pause - - Nadjimo $e$ koji je uzajamno prost sa $(p-1)(q-1)$\pause - - Nadjimo $d$ koriscenjem Produzenog Euklidovog algoritma\pause - - Zaboravimo $p$ i $q$, jer nam vise ne trebaju\pause + 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 + - Zaboravimo $p$ i $q$, jer nam vise ne trebaju - Javni kljuc se sastoji od brojeva $e$ i $n$ $m^e \equiv C \mod n$ -\pause + - Privatni kljuc se sastoji od brojeva $d$ i $n$ $C^d \equiv m \mod n$ -\pause + - Digitalni potpis se postize sifrovanjem sa privatim kljucem - $m^d \equiv S \mod n$\pause + $m^d \equiv S \mod n$ - Provera digitalnog potpisa: $S^e \equiv m \mod n$ @@ -173,67 +173,67 @@ def modinv(a, m): # Napadi na RSA - Napadi na RSA - - Pogadjanje poruke, potrebno dopunjavanje poruke random podacima (padding)\pause - - Premali eksponent $e$, korenovanje sifrovanog teksta za male poruke (veliko $e$)\pause - - Koriscenje istog eksponenta za vise kljuceva, napad koriscenjem Kineske teoreme o ostatku (random izabrano $e$)\pause + - Pogadjanje poruke, potrebno dopunjavanje poruke random podacima (padding) + - Premali eksponent $e$, korenovanje sifrovanog teksta za male poruke (veliko $e$) + - 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\pause -- Generisanje kljuca: `gpg --gen-key`\pause -- Lista javnih kljuceva: `gpg --list-keys`\pause -- Export privatnih kljuceva: `gpg --export-secret-keys --output backup.gpg`\pause -- Upload kljuceva: `gpg --send-key [KEYID]`\pause -- Sifrovanje poruke: `gpg -e file.txt`\pause -- Desifrovanje: `gpg -d file.txt`\pause -- Potpisivanje poruke ili fajla: `gpg -s file.exe`\pause -- Potpisivanje kljuca: `gpg --sign-key [KEYID]`\pause -- ASCII output: `gpg --armor -se file.txt`\pause +- 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]`\pause -- Potpisivanje komita: `git commit -S`\pause +- Podesavanje kljuca: `git config --global user.signingkey [KEYID]` +- Potpisivanje komita: `git commit -S`
-![Github signed commits](github-verified.png) +![Github signed commits](slides/rsa/github-verified.png)
# Primena ## SSH -- Generisanje kljuca: `ssh-keygen [-f filename]`\pause -- Dodavanje kljuca na remote masinu: `ssh-copy-id [-i filename] user@hostname`\pause +- 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)\pause +- 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
-![How Tor works](tor.png) +![How Tor works](slides/rsa/tor.png)
# Onion hidden services
-![How hidden services works](tor-onion-services.png) +![How hidden services works](slides/rsa/tor-onion-services.png)
# The Onion Router - Napadi na Tor - - Tor ne stiti od vremenske korelacije (pristup sa obe strane veze)\pause - - Slabosti u aplikacijama koje koriste Tor\pause - - Pogresno konfigurisane aplikacije\pause + - Tor ne stiti od vremenske korelacije (pristup sa obe strane veze) + - Slabosti u aplikacijama koje koriste Tor + - Pogresno konfigurisane aplikacije - DNS Leak # Hvala