Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Diskreetti matematiikka salausmenetelmien matematiikkaa

Samankaltaiset esitykset


Esitys aiheesta: "Diskreetti matematiikka salausmenetelmien matematiikkaa"— Esityksen transkriptio:

1 Diskreetti matematiikka salausmenetelmien matematiikkaa
Jouko Teeriaho syksy 2006 21 kalvoa

2 Sisältö Diffie - Hellman avaimesta sopiminen RSA - salausalgoritmi
Ryhmä ja Abelin ryhmä Fermat’n ja Eulerin lauseet Laskutoimitukset joukossa Zn (moduloaritmetiikka) Eulerin Phi funktio Nopea potenssilasku Diffie - Hellman avaimesta sopiminen RSA - salausalgoritmi

3 Ryhmäaksioomat G1: a*b on ryhmän G alkio kaikilla a,b G
Olkoon G joukko, jossa on määritelty laskutoimitus * . Tällöin joukkoa G sanotaan ryhmäksi , mikäli seuraavat aksioomat toteutuvat: G1: a*b on ryhmän G alkio kaikilla a,b G G2: (a*b)*c = a*(b*c) kaikilla a,b,c  G G3: On olemassa e  G, jolle e*a=a*e=a kaikille a  G (ykkösalkio) G4: Jokaisella a  G on olemassa käänteisalkio a’, jolle a*a’ = a’ *a = e Lisäksi jos on voimassa G5: a*b = b*a kaikilla a,b  G, niin G:tä sanotaan Abelin ryhmäksi norjalaisen matemaatikko Abelin mukaan.

4 Esimerkkejä Onko kokonaislukujen joukko Z ryhmä ? yhteenlaskun suhteen
kertolaskun suhteen Onko reaalilukujen joukko R ryhmä kertolaskun suhteen? Onko niiden 2x2 neliömatriisien joukko, joiden determinantti ≠ 0 matriisikertolaskun suhteen a) ryhmä b) Abelin ryhmä ? c) Mikä on neutraalialkio ?

5 Äärelliset ryhmät Jos ryhmän alkioita on äärellinen määrä, puhutaan äärellisestä ryhmästä. Jos kerrotaan äärellisen ryhmän kaikki alkiot tietyllä ryhmän alkiolla, saadaan aina samat alkiot uudessa järjestyksessä eli tuloksena on ryhmän alkioiden permutaatio. Tämä todistamiseksi riittää osoittaa, että saadussa joukossa ei voi olla samaa alkiota kahta kertaa: Todistus: Olkoot a ja b ryhmän G eri alkioita ja c ryhmän G alkio Tehdään vastaoletus, että ca = cb. Koska c:llä on ryhmän alkiona käänteisalkio c’ (G4), kertomalla yhtälö puolittain c’:lla saadaan c’ca = c’cb  ea = e b  a = b. Tuloksena on siis ristiriita, joten ca ≠ cb.

6 Täydennä seuraava 4 alkion Abelin ryhmän {a,b,c,e} kertotaulu
e on neutraalialkio Tarkista: * Jokainen rivi ja sarake on alkioiden permutaatio. Joka rivillä esiintyy e Kertotaulu on peilikuva diagonaalinsa suhteen (kommutatiivisuus ab = ba) e a b c Totea ominaisuus: a*a*a*a = a4 = e b*b*b*b = b4 = e c*c*c*c = c4 = e

7 Ryhmän ominaisuus Lause:
Jos G on Abelin ryhmä, jossa on n alkiota, niin Kaikille sen alkioille a on voimassa an = 1 (1) Todistus: ryhmän alkioiden tulo g1*g2*…gn = x on jokin sen alkioista Jos jokainen alkio kerrotaan a:lla , on saatu joukko ryhmän permutaatio, joten edelleen tulo on x: x = (a*g1)*(a*g2)*…*(a*gn) = an(g1*g2*….*gn) = an x Siis x = an x | kerrotaan x:n käänteisalkiolla ja saadaan an = 1

8 Lukujoukko Zn = {0,1,2,…,n-1} Kaikki kokonaisluvut voidaan kuvata joksikin tämän joukon alkioksi käyttäen kuvauksena jakojäännöstä mod 11. Esim. Luku 24 vastaa jakojäännös 2, lukua 100 vastaa jakojäännös 1, lukua -4 vastaa jakojäännös 11-4 = 7. Esim. Z11 1 10 2 9 3 8 7 4 Renkaassa Zn voidaan määritellä summa, erotus, kertolasku ja potenssilasku käyttäen jakojäännöksiä. 5 6

9 Peruslaskutoimitukset
Summa mod 11 = 13 mod 11 = 2 Erotus 2 – 5 mod 11 = -3 mod 11 = = 8 Tulo 5*8 mod 11 = 40 mod 11 = 7 Potenssi 34 mod 11 = 81 mod 11 = 4 Voiko jakolaskua määritellä ? Esim. 3 / 5 mod 11 ? Nyt 3/5 tarkoittaa 3*5-1 , missä 5-1 on luvun 5 käänteisluku. Tämähän voidaan laskea, mikäli luvulla 5 on käänteisluku renkaassa Z11. Nyt tarvitaan joukon Z11 kertotaulua selvittämään onko käänteislukua olemassa.

10 Lukujoukon Z11 kertotaulu
Joka rivillä esiintyy luku 1, joten kaikilla luvuilla on käänteisluku. Joukko Z11* tarkoittaa kertolaskuryhmää, jossa on kaikki muuta Z11:n alkiot paitsi luku 0. Z11*= { 1, 2, … , 10}. Luvun 5 käänteisluku on 9 Siten 3/5 mod 11 = 3*9 mod 11 = 27 mod 11 = 5 Jakolasku voidaan siis hyvin määritellä joukossa Z11* = {1,2,…,10}. Huom! Potenssi a10 = 1 (mod 11) kaikille alkioille a (ks. kalvo 7)

11 Generoiva alkio eli primitiivialkio
Seuraavassa ryhmän Z11* alkioiden potenssitaulu: Ryhmää G sanotaan sykliseksi ryhmäksi, mikäli on olemassa sellainen alkio g, jonka potenssit g1,…,gn-1 käyvät läpi kaikki ryhmän alkiot. Alkiota g sanotaan tällöin ryhmän G generoivaksi alkioksi tai primitiivialkioksi. Voidaan merkitä G = <g> Joukon Z11* generoivia alkioita on 2,6,7, ja 8

12 Lukujoukon Z10 kertotaulu
Tässä vain luvuilla 1,3,7 ja 9 on käänteisluku mod 10. Merkitään Z10* = {1,3,7,9}. Tämä osajoukko on ryhmä kertolaskun suhteen. Sen koko on 4 ja siinä on alkiot, joilla ei ole yhteisiä tekijöitä luvun 10 kanssa. Eulerin Phi- funktio (n) antaa niiden alkioiden x lukumäärän väliltä 1 – (n-1), joille, GCD(x,n) = 1. (10) = 4 Huom! Potenssi a4 = 1 (mod 10) kaikille a  Z10*

13 Eulerin Phi – funktion ominaisuuksia
(n) antaa kertolaskuryhmän Zn*:n alkioiden lukumäärän (p) = p – 1 , kun p on alkuluku (p*q) = (p –1)(q-1) , kun p ja q ovat alkulukuja Todistus: Luvuista 1,2, … , pq-1 tiputetaan pois kaikki ne, joilla on yhteisiä tekijöitä pq:n kanssa, eli p,2p,…, (q-1)p sekä q,2q,…, (p-1)q . Lukumääräisesti jäljelle jää siten pq (q-1) – (p-1) eli pq – p – q + 1 eli (p-1)(q-1) m.o.t

14 Fermat’n ja Eulerin lauseet
Molemmat seuraavat lauseesta (1) kalvolla 7 a p-1 = 1 mod p , jos p on alkuluku ja a  { 1, 2, …, p-1) Fermat: a (n) = 1 mod n , kaikille a  Zn* Euler: Fermat’n lausetta voidaan käyttää negatiivisena alkulukutestinä. Luku n ei ole alkuluku, mikäli jollekin kantaluvulle a an-1≠ 1 mod n

15 Sovelluksia kryptografiaan
1. Diffie- Hellman avaimesta sopiminen. Esim. pankkiliikenteen salauksessa käytetään symmetristä lohkosalausta, jossa salausavain on 128 bittinen kokonaisluku ( 38 numeroa 10-järjestelmässä). Avaimesta sovitaan kunkin istunnon aluksi esim. seuraavasti: Järjestelmässä on sovittu kertolaskuryhmästä Zp* ja generoivasta alkiosta g Alice: Alice generoi suuren satunnaisluvun a Bank Pankki generoi suuren satunnaisluvun b ya= g a mod p Alice: Bank: yb =g b mod p Alice laskee avaimen: Pankki laskee avaimen K = yba mod p K = yab mod p Molemmat saavat saman tuloksen K = gab mod p

16 RSA – salaus Jokaisella henkilöllä on kaksi julkista avainta:
Rivest – Shamir – Adlemann Käytössä mm. suom. HST –kortissa. Jokaisella henkilöllä on kaksi julkista avainta: n = p*q (kahden alkuluvun tulo) e = edellistä pienempi kok. luku, jolle GCD(e,(n)) oltava 1 Viesti, joka on koodattu suuriksi kokonaisluvuiksi m salataan potenssiin korotuksella: c = me mod n , missä c on viestin m salakirjoitus Koska Eulerin lauseen mukaan m(n) = 1 mod n, niin käyttämällä eksponenttia d, jolle ed = 1 mod (n) eli d = e:n käänteisluku mod (p-1)(q-1) salaus voidaan purkaa. m = cd mod n dekryptausalgoritmi Salainen dekryptausavain d = e-1 mod (p-1)(q-1)

17 Miksi RSA on turvallinen
Jokaisen käyttäjän julkiset avaimet n ja e ovat kaikkien tiedossa. Sen sijaan dekryptausavaimen d laskemiseksi on tiedettävä, mitkä ovat luvun n alkulukutekijät p ja q. Käytännössä luku n on 1024 – bittinen kokonaisluku ja sen tekijöiden p ja q löytäminen on mahdotonta nykytietämyksellä (se vie satoja vuosia). Käyttäjä siis laskettuaan dekryptausavaimen d pitää sen salassa ja hävittää tiedot luvun n tekijöistä p ja q. Esim. suomalaisessa HST – kortissa (sähköinen henkilökortti) on piinsirulle talletettuna dekryptausavain d. Koritn omistajan julkiset avaimet n ja e on tallennettuna väestörekisterikeskuksen ylläpitämälle avainpalvelimelle, josta jokainen tarvitseva voi ne tietoliikenneohjelmistojensa välityksellä noutaa.

18 Mitä algoritmeja salausmenetelmät (esim. RSA) tarvitsevat?
Käänteisluvun laskeminen moduloaritmetiikassa Nopea potenssiin korotus, jossa tietokoneessa ei tule ylivuotoa

19 Nopea potenssiin korotus (powermod)
Idea: järjestetään eksponentiksi parillinen luku ja puolitetaan se samanaikaisesti kun kantaluku neliöidään. 59 mod 11 = 5*58 mod 11 = 5*254 mod 11 = 5*34 mod 11 = 5*92 mod 11 = 5*81 mod 11 = 5*4 mod 11 = 20 mod 11 = 9 25 mod 11 => 3 81 mod 11 = 4 Mathematica

20 Käänteisalkion laskeminen mod n
Tapa1: Laajennettu GCD Tapa2: Potenssiin korotus *) Laske 6-1 mod 11 11 = 1*6 + 5 6 = 1* <- GCD = 1 5 = 5*1 + 0 Koska Eulerin mukaan, 6(11) = 1 mod 11 6*6 (11)-1 = 1 mod 11 Siten käänteisluku on 6 (11)-1 = = 69 mod 11 = 2 Taaksepäin: 1 = 6 – 5 = 6 – (11 – 6) ts. 1 = 2*6 – 11 Nyt luvun 6 kerroin 2 on kysytty käänteisluku, koska 2*6 = 1 mod 11 Kaava a-1 mod n = a (11)-1 mod n on sovellettavissa vain, mikäli (n) osataan laskea (edellyttää luvun n tekijöiden tuntemista) *)

21 Tehtäviä Määritä seuraavien lukujen käänteisluvut mod 15 (mikäli ne ovat olemassa) a) 7 b) 5 2. Montako alkiota on kertolaskuryhmässä Z21* ? (listaa alkiot) Päättele ilman laskinta arvo potenssille mod 21 Suorita powermod algoritmilla (välivaiheet näkyviin) lasku 411 mod 13 5. Pekka ja Eija sopivat yhteisestä istuntoavaimesta Diffie – Hellman menetelmällä. Laskut suoritetaan joukossa Z13 , generoiva alkio on 6. Pekka valitsee salaiseksi eksponentikseen a luvun 3 ja Eija valitsee luvun b = 11. Mikä on Eijan ja Pekan istuntoavain K Viesti on koodattu kokonaisluvuiksi, joista ensimmäinen on m = 14. Liisan julkinen avainpari (n, e) = (91, 17). Miten Pekka salaa viestin m = 14 lähettäessään sen Liisalle. Mikä on Liisan dekryptausavain d?. Näytä, miten Liisa avaa salakirjoituksen.


Lataa ppt "Diskreetti matematiikka salausmenetelmien matematiikkaa"

Samankaltaiset esitykset


Iklan oleh Google