Diskreetti matematiikka salausmenetelmien matematiikkaa

Slides:



Advertisements
Samankaltaiset esitykset
Yleistä Läsnäolovelvollisuus Poissaolojen selvitys Käyttäytyminen
Advertisements

RSA-Salaus -SSH -PGP -IPSEC.
Funktiot ja yhtälöt MA 01 Läsnäolovelvollisuus 100 %
Salakirjoitusmenetelmät
Murtolukujen kertolasku
MAA0 LUKUALUEET Luonnolliset luvut N = 0,1,2,3,…
jonosalaimet lohkosalaimet julkisen avaimen salaus
Tietoturvallisuus osa 7
Siniaaltotuotanto Tomas Södergård Vaasan Yliopisto.
Modulaatio ja koodausTimo Mynttinen1 Avainten vaihto ja eheys •Avainta pitää vaihtaa aika ajoin. •Avainten vaihto ei ole helppoa, ja mitä useampia osapuolia.
Sisältö: Johdanto kryptografiaan Salakirjoitus
Langattomien laitteiden matematiikka 1
Tietoturvallisuus osa8
AS Automaation signaalinkäsittelymenetelmät
Valitse seuraaviin vaihtoehtotehtäviin oikea vastaus…
Tehtävä Tee ohjelma, joka kysyy käyttäjältä kaksi kokonaislukua (0-50, kysytään lukuja niin kauan kunnes käyttäjä antaa luvut sallitulta alueelta). Ohjelma.
Key agreement protocols
KERTAUSTA PERUSASTEEN MATEMATIIKASTA Piia junes
Rajoitetut jonot 1. Alhaalta rajoitettu jono
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
3. Funktioista 3.1. Kuvaus ja funktio
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
1.2. Tuloperiaate ja permutaatiot
Salausmenetelmät, osa 2 Jouko Teeriaho
m0 M7 Maksimitermi Minimitermi Boole A = A A · 0 = 0 SOP De Morgan POS
Epäsymmetrinen salaus
1.a) f(x) = 2x(x2 – 3) = 0 2x = tai x2 – 3 = 0 x = tai x2 = 3
Tietoturvan perusteet - Syksy 2005 SSH salattu yhteys & autentikointi Tekijät: Antti Huhtala & Asko Ikävalko (TP02S)
Aritmeettinen jono jono, jossa seuraava termi saadaan edellisestä lisäämällä sama luku a, a + d, a+2d, a +3d,… Aritmeettisessa jonossa kahden peräkkäisen.
Aritmeettinen jono jono, jossa seuraava termi saadaan edellisestä lisäämällä sama luku a, a + d, a+2d, a +3d,… Aritmeettisessa jonossa kahden peräkkäisen.
Salausmenetelmien kertausta
1. Joukko-oppi Merkinnät
1. Usean muuttujan funktiot
© 2010 IBM Corporation1 Objektien käyttöoikeudet  Kaikilla sisällönhallinnan objekteilla on käyttöoikeudet. Käyttöoikeudet on jaoteltuina Lukuoikeuksiin,
Talousmatematiikan perusteet ORMS1030
3.2 Kompleksisuus Vain pieni osa kaikista tehtävistä on laskettavissa tai edes osittainkaan laskettavissa. Laskettavien osalta saattaa olla tarpeellista.
3.1. DERIVAATAN MÄÄRITELMÄ
PARAABELI (2. ASTEEN FUNKTION KUVAAJIA)
1.4. Integroimismenetelmiä
5. Lineaarinen optimointi
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Annuiteetti- eli tasaerälaina
Kymmenkantainen logaritmi
Diffie-Hellman Antti Junttila. Mitä tarkoittaa? Kaksi osapuolta voivat sopia yhteisestä salaisuudesta turvattoman tietoliikenneyhteyden ylitse. Tämän.
Visual Basic -ohjelmointi
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 2 - Jirka Poropudas Optimointiopin seminaari - Kevät 2005 / 1 Bayes-verkoista s
Visual Basic -ohjelmointi
Kolme tapaa sopia symmetrisestä avaimesta
Samankantaisten potenssien kerto- ja jakolasku
Funktio.
5. Fourier’n sarjat T
Neperin luku e ja funktio y = ex
POTENSSIT eksponentti kantaluku a n = a ·a · · · ·a n kpl E.1. E = 3 · 3 · 3 · 3 = 81 Huom. Miljoona = 10 6 Miljardi = 10 9 Biljoona = Triljoona.
Janne Korhonen. Henkilöhistoria Syntyi 1815 alaluokan perheeseen Isä kannusti opiskeluun Toimi myöhemmin opettajana Lopulta päätyi perustamaan oman koulun.
MAB3 prosenttilasku.
Kiikuista jatkoa.
Hajakoodaus Talletetaan alkiot avain-indeksoituun taulukkoon Hajakoodausfunktio Menetelmä avain-indeksin laskemiseen avaimesta Törmäyksen selvitysstrategia.
Luvun jakaminen tekijöihin Luvun tekijät ovat ne luvut, joilla luku on jaollinen. Esim. luettele luvun 12 tekijät. 1, 2, 3, 4, 6, 12. Alkuluku on luku,
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
TIETOTURVA INTERNETISSÄ. MITÄ ON TIETOTURVA? Tietoturvalla pyritään suojaamaan yritykselle tärkeitä tietoja ulkopuolisilta. Tietoturvalle on asetettu.
Matematiikkaa 3b © Varga–Neményi ry 2017
Matematiikkaa 3a, Kertausjakso Lukuja © Varga–Neményi ry 2016
Jonna Kyllönen mylept14B
Syventävä matematiikka 2. kurssi
Salakirjoitusmenetelmät

Kuutio 8 4. Potenssi ja polynomi
Tietoturvan perusteet - Syksy 2005 SSH salattu yhteys & autentikointi
Itseisarvo ja vastaluku
Talousmatematiikan perusteet ORMS1030
Esityksen transkriptio:

Diskreetti matematiikka salausmenetelmien matematiikkaa Jouko Teeriaho syksy 2006 21 kalvoa

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

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.

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 ?

Ää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.

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

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

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

Peruslaskutoimitukset Summa 7 + 6 mod 11 = 13 mod 11 = 2 Erotus 2 – 5 mod 11 = -3 mod 11 = 11- 3 = 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.

Lukujoukon Z11 kertotaulu Joka rivillä esiintyy luku 1, joten kaikilla luvuilla 1- 10 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)

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

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*

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 - 1 - (q-1) – (p-1) eli pq – p – q + 1 eli (p-1)(q-1) m.o.t

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: 1601-1665 a (n) = 1 mod n , kaikille a  Zn* Euler: 1707-1783 Fermat’n lausetta voidaan käyttää negatiivisena alkulukutestinä. Luku n ei ole alkuluku, mikäli jollekin kantaluvulle a an-1≠ 1 mod n

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

RSA – salaus Jokaisella henkilöllä on kaksi julkista avainta: Rivest – Shamir – Adlemann 1978. 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)

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.

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

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

Käänteisalkion laskeminen mod n Tapa1: Laajennettu GCD Tapa2: Potenssiin korotus *) Laske 6-1 mod 11 11 = 1*6 + 5 6 = 1*5 + 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 = 610-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) *)

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 912 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.