POTENSSIINKOROTUSALGORITMIT JA NIIDEN VERTAILU RSA:SSA
|
|
- Eero Saarinen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 POTENSSIINKOROTUSALGORITMIT JA NIIDEN VERTAILU RSA:SSA Mirka Räzm Pro gradu -tutkielma Kesäkuu 2012 MATEMATIIKAN JA TILASTOTIETEEN LAITOS TURUN YLIOPISTO
2 TURUN YLIOPISTO Matematiikan ja tilastotieteen laitos RÄZM, MIRKA: Potenssiinkorotusalgoritmit ja niiden vertailu RSA:ssa Pro gradu -tutkielma, 44 s. Matematiikka Kesäkuu 2012 Tässä tutkielmassa tutustutaan potenssiinkorotusalgoritmeihin ja vertaillaan niitä RSA:ssa. Kun viestejä salataan RSA menetelmää käyttäen, suoritetaan paljon potenssiin korotuksia x e (mod n). Potensiin korotuksessa käytettävät luvut ovat suuria, joten tietokoneen muistia tarvitaan paljon. Tämän vuoksi tarvitaan menetelmiä, joilla potenssiin korotukset voidaan suorittaa vaiheittain. Ensin tutkielmassa esitetään RSA:n toiminta periaate. Pääpaino tutkielmassa on potenssiinkorotusalgoritmeissa. Potenssiinkorotusmenetelmät on esitetty algoritmeina ja jokaisen algoritmin yhteydessä on esimerkkejä niiden toiminnasta. Algoritmit on jaettu kolmeen ryhmään. Ensimmäisenä on esitelty yleisiä potenssiinkorotusalgoritmeja, jotka sopivat useimpiin tilanteisiin. Kun eksponentti pysyy vakiona, kuten RSA:ssa, potenssiin korotus yhteenlaskuketjumenetelmällä on hyvä valinta. Tämä nopeuttaa laskentaa verrattuna yleisiin potenssiinkorotusalgoritmeihin. Viimeiseksi on esitettynä potenssiinkorotusalgoritmeja tilanteisiin, joissa kanta pysyy vakiona. Nämä eivät nopeuta laskentaa RSA:ssa, mutta ne otettu mukaan työhön, koska potenssiin korotuksen pystyy näilläkin algoritmeilla suorittamaan ja algoritmit ovat tehokkaita silloin, kun suoritetaan toistuvia potenssiin korotuksia kannan pysyessä vakiona. Tutkielman lopussa on esimerkki, joka vertailee algoritmien tehokkuutta, kun salataan sama viesti kullakin menetelmällä. Lopuksi on vielä pohdittu algoritmien tehokkuutta salattaessa viestiä RSA menetelmällä todellisen suuruisilla luvuilla. Asiasanat: kryptografia, potenssiin korotus, RSA, algoritmi.
3 Sisältö 1 Johdanto 1 2 RSA 3 3 Potenssiin korotus Menetelmiä yleiseen potenssiin korottamiseen Perusbinäärinen ja 2 k -kantainen potenssiin korottaminen Potenssiin korotus ikkunamenetelmällä Potenssiinkorotusalgoritmien vertailua Montgomeryn potenssiin korotus Potenssiin korotus, kun eksponentti pysyy vakiona Yhteenlaskuketjut Potenssiin korotus, kun kanta pysyy vakiona Ikkunointimenetelmä Euklidinen menetelmä Kampamenetelmä Potenssiinkorotusalgoritmit RSA:ssa Binäärinen oikealta vasemmalle etenevä potenssiin korotus Binäärinen vasemmalta oikealle etenevä potenssiin korotus k -kantainen vasemmalta oikealle etenevä potenssiin korotus Muokattu 2 k -kantainen vasemmalta oikealle etenevä potenssiin korotus Potenssiin korotus ikkunamenetelmällä Montgomeryn potenssiin korotus Potenssiin korotus yhteenlaskuketjumenetelmällä Potenssiin korotus ikkunointimenetelmällä Potenssiin korotus euklidisella menetelmällä Potenssiin korotus kampamenetelmällä Yhteenveto Arvio laskutoimistusten määrästä todellisen suuruisilla luvuilla 42
4 Kirjallisuutta 45
5 1 Johdanto RSA kryptosysteemiä käytettäessä suoritetaan paljon potenssiin korotuksia x e (mod n), jossa luvut e ja n ovat suuria. Nykytekniikalla lukujen täytyy olla suuria, koska muuten ulkopuolinen voisi murtaa viestin liian helposti. Tietokoneen muisti ei riitä käsittelemään potenssiin korotusta, jossa ensin lasketaan x e ja sitten lasketaan modulo n. Tarvitaan menetelmiä, joilla potenssiin korotus voidaan suorittaa vaiheittain. Yksinkertaisin menetelmä olisi suorittaa (e 1) kertolaskua, jossa jokaisen kertolaskun jälkeen tulosta lasketaan modulo n. Käytännössä luku e on niin suuri, että tähän kuluu liian paljon aikaa. Tarvitaan menetelmiä, jotka mahdollistavat potenssiin korotuksen lyhyemmässä ajassa ja vähemmällä työllä. Työn toinen luku esittelee RSA protokollaa. Tässä esitetään lyhyesti kuinka avaimet luodaan ja kuinka viestien salaaminen ja purkaminen käytännössä toimii. RSA menetelmää voidaan käyttää myös digitaalisessa allekirjoituksessa ja tämä periaate esitetään myös. Luku kaksi pohjautuu lähteisiin [1], [3], [4], [5] ja [6]. Pääpaino tässä työssä on esitellä potenssiinkorotusalgoritmeja, jotka vähentävät ja nopeuttavat laskentaa. Kolmas luku, jossa nämä algoritmit esitellään, pohjautuu kirjaan Handbook of Applied Cryptography [2]. Algoritmien yhteydessä on esimerkkejä, joiden tarkoitus on selventää algoritmin toimintaa. Näissä esimerkeissä luvut eivät ole kovin suuria, suurimmaksi osaksi siitä syystä, että laskuvaiheet paperille kirjoitettuna tarvitsevat paljon tilaa. Ensin luvussa esitetään yleisiä potenssiinkorotusalgoritmeja. Algoritmit toimivat hyvin tilanteissa, joissa yleisesti tarvitaan potenssiin korotusta. Potenssiin korotus käyttäen yhteenlaskuketjumenetelmää on suunnattu tilanteeseen, jossa eksponentti e pysyy vakiona, kuten RSA:ssa. Viimeiset algoritmit ovat käteviä tilanteissa, joissa kantaluku x pysyy samana. RSA ei ole tälläinen protokolla, mutta nämä algoritmit on otettu työhön mukaan, koska näilläkin potenssiin korotus pystytään suorittamaan. Näiden algoritmien työläs esilaskenta hidastaa tehokasta RSA:n käyttöä. Algoritmien esittelyjen jälkeen on pohdittu niiden laskennallista tehokkuutta. Työssä oletetaan, että kertolasku ja neliöiminen vaativat suunnilleen 1
6 yhtä paljon työtä ja näiden laskutoimitusten määrän laskeminen antaa viitteitä algoritmin tehokkuudesta. Viimeisessä, neljännessä, luvussa on kokoava esimerkki kaikista esitetyistä algoritmeista. Tässä luodaan RSA avaimet ja salataan sama viesti kaikilla esitellyillä algoritmeilla. Nämäkään lukuarvot eivät ole todellisuuteen verrattaessa riittävän suuria, mutta ovat hieman suuremmat, kuin kolmannen luvun esimerkeissä. Luvun lopussa on yhteenveto kuinka paljon työtä tarvittiin viestin salaamiseen kullakin menetelmällä. Tämä on vain suuntaa antava taulukko, joka pätee vain näihin lukuarvoihin. Parhain käytettävä menetelmä on aina valittava käyttötarkoituksen mukaan. Esimerkiksi viimeiset kolme algorimia ovat erittäin nopeita ja tehokkaita, mutta algoritmi ei ole käytännöllinen RSA menetelmässä. Esilaskenta näissä on hyvin työläs ja vie pohjan RSA menetelmää käytettäessä, koska kertaalleen esilaskettuja lukuja ei voi uudelleenkäyttää. Neljänneksi viimeisin algoritmi, potenssiin korotus yhteenlaskuketjumenetelmällä, on kätevä RSA protokollassa, kunhan löytää eksponentille e hyvän yhteenlaskuketjun. RSA:ssa eksponentti e pysyy samana, joten yhteenlaskuketjua ei joka kerta tarvitse muodostaa uudelleen, vaan voi hyödyntää samaa ketjua. Lopuksi on pohdittu algorimien tehokkuutta todellisen suuruisilla luvuilla. Esitetyt luvut ovat karkeita arvioita pohjautuen yleiseen tilanteeseen, jossa oletetaan, että luvuissa e ja x kummassakin on 1000 bittiä. 2
7 2 RSA RSA on yksi tunnetuimmista julkisen avaimen kryptosysteemeistä. Julkisen avaimen kryptosysteemissä on sekä julkinen avain että salainen avain ja salaista avainta ei pitäisi pystyä selvittämään julkisen avaimen avulla. RSA sopii viestien salaamiseen sekä digitaaliseen allekirjoittamiseen. Olkoon n = pq, jossa p ja q ovat suuria satunnaisia alkulukuja. RSA:n julkinen avain on pari (n, e), jossa syt(e, φ(n)) = 1. Tässä φ(n) = (p 1)(q 1). Salainen avain on pari (n, d), jossa d on e:n käänteisluku modulo φ(n), siis ed = 1 (mod φ(n)). Kryptausfunktio on ja dekryptausfunktio on E(x) = E n,e (x) = x e (mod n) D(x) = D n,d (x) = x d (mod n). Eulerin lauseen mukaan x φ(n) = 1 (mod n) ja siten D(E(x)) = x ed = x 1+kφ(n) = x x kφ(n) = x (mod n). RSA allekirjoitus toimii vastaavalla periaatteella. Allekirjoittaja allekirjoittaa viestin m omilla salaisilla RSA avaimillaan (n, d): s = m d (mod n). Allekirjoitus varmistetaan allekirjoittajan julkisilla RSA avaimilla (n, e) vertaamalla onko allekirjoitettu viesti sama kuin alkuperäinen: m = s e (mod n). Seuraavan esimerkin avulla selvennetään, miten viestien salaaminen ja purku yllä esitetyllä RSA kryptosysteemillä toimii. Esimerkki 1. Liisa ja Pekka haluavat käyttää RSA menetelmää salaamaan viestinsä. Pekka valitsee alkuluvut p = 11 ja q = 17. Hän laskee n = pq = = 187 ja φ(n) = = 160. Sitten Pekka valitsee luvun e = 7 ja 3
8 varmistaa, että syt(e, φ(n)) = 1 ja laskee d = e 1 (mod φ(n)) = 23. Pekan julkinen avain on (n, e) = (187, 7), jonka hän julkaisee kaikille. Salaisen avaimen (n, d) = (187, 23) hän pitää itsellään. Pekka ei tarvitse enää lukuja p ja q, mutta hänen on pidettävä huoli, ettei kukaan saa niitä selville. Liisa haluaa lähettää Pekalle viestin x = 6. Hän käyttää Pekan julkista avainta ja laskee E(x) = x e (mod n) = 6 7 = 184 (mod 187). Liisa lähettää Pekalle salatun viestin y = 184. Pekka käyttää salaista avaintaan avatakseen viestin x = D(y) = = = 6 (mod 187). Vastaavalla tavalla kuka tahansa voi tehdä itselleen RSA avaimet ja julkaista julkisen avaimensa. Kaikki saavat nähdä julkiset avaimet ja voivat lähettää niiden julkaisijalle salattuja viestejä. Alkuluvut yllä olevassa esimerkissä ovat aivan liian pieniä. Kuka tahansa voi löytää luvun n = 187 alkutekijät ja siten pystyy laskemaan salatun avaimen julkisen avaimen avulla. Jotta saataisiin parempi turvallisuus, lukujen täytyy olla paljon suurempia. Yleisimmät salausmenetelmät perustuvat suuren luvun, joka on kahden alkuluvun tulo, tekijöihin jaon vaikeuteen. Myös RSA on tällainen salausmenetelmä. Jos luku on liian pieni, tekijöiden löytäminen on helppoa. Jos luku on riittävän iso, niin laskennallisesti kestää hyvin kauan löytää luvun alkutekijät. Tekniikka kehittyy koko ajan ja aina suurempia lukuja voidaan jakaa tekijöihin. Suuremmat alkuluvut lisäävät turvallisuutta, mutta hidastavat ja vaikeuttavat viestien salaamista. Esimerkiksi vuonna 1991 RSA Data Security antoi joukon haasteita, joiden tarkoitus oli selvittää tekijöihin jaon vaikeutta. Listassa oli 41 lukua, jotka olivat kahden suunnilleen samanpituisen alkuluvun tuloja. Vuoteen 1999 mennessä luvuista viisi ensimmäistä oli onnistuttu selvittämään. Nämä luvut olivat suuruudeltaan sadasta numerosta 140 numeroon, eli bittiä pitkiä. Samana vuonna oli myös onnistuttu jakamaan tekijöihin avaimen pituutena suosittu 512 bittiä (155 numeroa) pitkä luku. Vuonna 2009 onnistuttiin jakamaan 768 bittiä (232 numeroa) pitkä luku tekijöihin. Laskettaessa potenssiin korotusta x e (mod n) ensin ei lasketa x e ja sitten suoriteta jakolaskua saadaksemme jakojäännöksen. Tarvittava tila luvun x e laskemiseksi on valtava. Oletetaan, että luvuissa x ja e on kummassakin 256 4
9 bittiä. Silloin tarvitaan log 2 (x e ) = e log 2 x = bittiä luvun x e tallentamiseksi, joka vie liikaa muistia. Potenssiin korotus täytyy jakaa pienempiin osiin ja jokaisessa laskun välivaiheessa täytyy laskea tuloksen modulo n, jotta luvut pysyvät käsiteltävissä olevissa suuruuksissa. 5
10 3 Potenssiin korotus Potenssiin korotuksessa x e kanta x on äärellisen joukon G alkio ja eksponentti e on positiivinen kokonaisluku. Potenssiin korotusta x e merkitään tässä työssä x e (mod n). Potenssiin korotuksessa on tärkeää, että on olemassa tehokas tapa kertoa kaksi lukua modulo n. Laskettaessa potenssiin korotusta x e (mod n) olisi yksinkertaisinta suorittaa e 1 kertolaskua. Kryptografisissa sovelluksissa luvun n suuruus ylittää luvun ja voi ylittää luvun Usein e valitaan niin suureksi, että ei ole järkevää laskea e 1 kertolaskua. On olemassa kaksi tapaa vähentää aikaa laskettaessa potenssiin korotusta x e. Toinen on lukujen kertolaskuun käytettävän ajan vähentäminen ja toinen on vähentää kertolaskujen määrää potenssiin korotuksessa x e. Parhaimmassa tapauksessa on olemassa tapa, joka sisältää molemmat. 3.1 Menetelmiä yleiseen potenssiin korottamiseen Edellä esitetty tapa laskea potenssiin korottaminen suorittamalla e 1 kertolaskua ei ole käytännöllinen, mutta sitä voidaan muokata. Jos esimerkiksi pitäisi laskea x 15 (mod n), niin yllä olevaa tapaa käyttämällä saadaan x 2 = x x (mod n) x 3 = x 2 x (mod n) x 4 = x 3 x (mod n) x 15 = x 14 x (mod n). Edellä ollutta laskua voidaan huomattavasti yksinkertaistaa. Kaikkia x:n potensseja ei tarvitse laskea saavuttaaksemme x 15 (mod n): x 2 = x x (mod n) x 3 = x 2 x (mod n) x 6 = x 3 x 3 (mod n) x 7 = x 6 x (mod n) x 14 = x 7 x 7 (mod n) x 15 = x 14 x (mod n). Tällä menetelmällä tarvittiin vain kuusi kertolaskua neljäntoista sijaan. 6
11 Samalla tavalla voidaan laskea x e millä tahansa e:n arvolla. Menetelmää kutsutaan kerro ja neliöi -menetelmäksi. Tämä luku esittelee yleiskäyttöisiä potenssiinkorotusalgoritmeja, joita voidaan sanoa toistetuiksi kerro ja neliöi -algoritmeiksi Perusbinäärinen ja 2 k -kantainen potenssiin korottaminen Alla olevassa algoritmissa (3.1) potenssiin korotuksen x e (mod n) laskemiseksi käytetään apumuuttujia A ja S. Kohdassa 1 muuttujaan A talletetaan luku 1 ja muuttujaan S talletetaan x. Kohdassa 2 muuttujaan A talletetaan A S (mod n) vain, jos luku e on pariton. Tämän jälkeen luku e saa uuden arvon, joka on e jaettuna kahdella ja pyöristettynä alaspäin lähimpään kokonaislukuun. Niin kauan kuin e on erisuuri kuin nolla, muuttujaan S talletetaan S S (mod n) ja kierros aloitetaan alusta. Kohtaa 2 jatketaan niin kauan kunnes e = 0. Tämän jälkeen palautetaan muuttuja A, jossa on laskun x e (mod n) tulos. Algoritmi 3.1. Binäärinen oikealta vasemmalle etenevä potenssiin korotus SYÖTE: x, n ja kokonaisluku e 1. TULOSTE: x e (mod n). 1. A 1, S x. 2. Niin kauan kuin e 0, niin 2.1 Jos e on pariton, niin A A S (mod n). 2.2 e e/ Jos e 0 niin S S S (mod n). 3. Palauta (A). Esimerkki 2. Taulukossa 1 näkyy lukujen A, e ja S saamat arvot algoritmin jokaisella kierroksella, kun yllä olevalla algoritmilla lasketaan x 283. Ensimmäisessä sarakkeesa on muuttujien saamat arvot algoritmin ensimmäisessä kohdassa. Algoritmin kohtaa 2 käydään läpi niin kauan, kunnes e = 0. Lopuissa sarakkeissa on muuttujien saamat arvot näillä algoritmin toisen kohdan kierroksilla. 7
12 A 1 x x 3 x 3 x 11 x 27 x 27 x 27 x 27 x 283 e S x x 2 x 4 x 8 x 16 x 32 x 64 x 128 x 256 Taulukko 1 Kun e = 0, algoritmin kolmas kohta palauttaa potenssiin korotuksen tuloksen A = x 283. Esimerkki 3. Käytetään binääristä oikealta vasemmalle etenevää menetelmää RSA:ssa. Käytetään esimerkissä 1 olevia arvoja n = 187, e = 7 ja d = 23. Kryptataan viesti x = 123. Alla olevassa taulukossa 2 on näkyvillä algoritmin laskuvaiheet laskussa y = (mod 187). A e S Taulukko 2 Algoritmi palauttaa viimeiseksi muuttujaan A talletetun luvun. Salattu viesti on y = 183 (mod 187). Käytetään samaa algoritmia salatun viestin selvittämiseksi. Taulukossa 3 on esillä algoritmin laskuvaiheet, kun lasketaan y d = (mod n). A d S Taulukko 3 Tästä saimme alkuperäisen viestin 123. Olkoon luvun e binääriesityksen pituus t + 1 bittiä ja olkoon wt(e) ykkösten lukumäärä binääriesityksessä. Algoritmi 3.1 suorittaa t neliöintiä ja 8
13 wt(e) 1 kertolaskua. Jos e valitaan satunnaisesti väliltä 0 e < n, niin voidaan odottaa noin log 2 n neliöintiä ja 1 2 ( log 2 n + 1) kertolaskua. Laskua 1 x ei lasketa kertolaskuksi, eikä laskua 1 1 lasketa neliöinniksi. Jos neliöinti on suunnilleen yhtä arvokas kuin kertolasku, niin odotettu määrä työtä on noin 3 2 log 2 n kertolaskua. Algoritmissa 3.2 tarvitsemme eksponentin e binääriesityksen e = (e t e t 1 e 1 e 0 ) 2 ja käsittelemme sen merkitsevimmästä bitistä e t vähiten merkitsevään bittiin e 0. Muuttujaan A kerääntyy potenssiin korotuksen tulos. Muuttujaan A asetetaan aluksi luku 1. Seuraavaksi eksponentti käsitellään bitistä e t bittiin e 0. Joka kierroksella muuttujan A arvo neliöidään ja muuttuja kerrotaan luvulla x mikäli bitti e i on yksi. Algoritmi 3.2. Binäärinen vasemmalta oikealle etenevä potenssiin korotus SYÖTE: x, n ja positiivinen kokonaisluku e = (e t e t 1 e 1 e 0 ) 2. TULOSTE: x e (mod n). 1. A Kun i käy luvusta t nollaan, niin 2.1 A A A (mod n). 2.2 Jos e i = 1, niin A A x (mod n). 3. Palauta (A). Esimerkki 4. Taulukossa 4 on esitettynä yllä olevan algoritmin laskutoimitusten laskuvaiheet, kun lasketaan x 283. Koska 283 = ( ) 2, niin t = 8. i e i A x x 2 x 4 x 8 x 17 x 35 x 70 x 141 x 283 Taulukko 4 9
14 Algoritmi palauttaa muuttujaan A tallennetun potenssiin korotuksen tuloksen x 283. Esimerkki 5. Olkoon jälleen e = 7, d = 23, n = 187 ja x = 123, kuten esimerkissä 3. Salataan viesti x = 123 käyttäen yllä olevaa algoritmia. Nyt e = 7 = (111) 2 ja t = 2. Taulukossa 5 on esitettynä algoritmin suorittamat laskuvaiheet. i e i A Taulukko 5 Potenssiin korotuksesta saatiin y = 183, niin kuin kuuluukin. Dekryptataan viesti y = 183. Nyt avain d = 23 = (10111) 2 ja t = 4. Taulukossa 6 on suoritetut laskuvaiheet. i e i A Taulukko 6 Algoritmi palauttaa alkuperäisen viestin x = 123. Olkoon luvun e binääriesityksen bittien lukumäärä t + 1 ja wt(e) ykkösten lukumäärä binääriesityksessä. Algoritmi 3.2 suorittaa t + 1 neliöintiä ja wt(e) 1 kertolaskua. Kertolaskujen ja neliöintien määrä on sama kuin algoritmissa 3.1, mutta tässä algoritmissa kerrotaan aina määrätyllä luvulla x. Jos luvulla x on erityinen rakenne, niin kertolasku voi olla huomattavasti helpompaa kuin kahden satunnaisen luvun kertominen. Algoritmia 3.3 voidaan sanoa potenssiin korotuksen ikkunamenetelmäksi. Tämä on yleistys algoritmista 3.2 ja se käsittelee eksponentista useamman kuin yhden bitin kerrallaan. 10
15 Algoritmi k -kantainen vasemmalta oikealle etenevä potenssiin korotus SYÖTE: x, n ja e = (e t e t 1 e 1 e 0 ) b, missä b = 2 k jollain k 1. TULOSTE: x e (mod n). 1. Esilaskenta. 1.1 x Kun i käy 1:stä lukuun (2 k 1), laske 2. A 1. x i x i 1 x (mod n) (Siis x i = x i ). 3. Kun i käy t:stä nollaan, niin 3.1 A A 2k (mod n). 3.2 A A x ei (mod n). 4. Palauta (A). Algoritmi 3.3 saa syötteenä luvut x, n ja e sekä luvun k. Luku e esitetään 2 k -kantaisena. Esilaskennassa lasketaan x i = x i (mod n) kaikilla i:n arvoilla yhdestä lukuun (2 k 1) saakka ja x 0 = 1. Muuttujaan A talletetaan aluksi luku 1. Kun i käy luvusta t nollaan, muuttujaan A talletetaan joka kierroksella ensin A 2k (mod n) ja tämän jälkeen A x ei (mod n). Lopulta muuttujaan A on saatu potenssiin korotuksen tulos. Esimerkki 6. Lasketaan x e, kun e = 250. Valitaan k = 2, joten e = (3322) 4. Kohta 1 Esilaskenta (i käy yhdestä lukuun (2 2 1) = 3): x 0 = 1 x 1 = x 0 x = x x 2 = x 1 x = x 2 x 3 = x 2 x = x 3. Kohdassa 2 muuttujaan A talletetaan luku 1. Kohdassa 3 i käy kolmesta nollaan: i = 3 A = 1 22 = 1 A = 1 x 3 = x 3 i = 2 A = (x 3 ) 4 = x 12 A = x 12 x 3 = x 15 11
16 i = 1 A = (x 15 ) 4 = x 60 A = x 60 x 2 = x 62 i = 0 A = (x 62 ) 4 = x 248 A = x 248 x 2 = x 250. Nyt A = x 250, jonka algoritmi palauttaa laskutoimituksen tuloksena. Lasketaan sama laskutoimitus, mutta valitaan nyt k = 3 ja siten e = (372) Esilaskenta ((2 3 1) = 7): x 0 = 1, x 1 = x, x 2 = x 2, x 3 = x 3, x 4 = x 4, x 5 = x 5, x 6 = x 6, x 7 = x A = i käy luvusta 2 nollaan: i = 2 A = 1 8 = 1 A = 1 x 3 = x 3 i = 1 A = (x 3 ) 8 = x 24 A = x 24 x 7 = x 24 x 7 = x 31 i = 0 A = (x 31 ) 8 = x 248 A = x 248 x 2 = x 248 x 2 = x Palauta A = x 250. Luvun k ollessa suurempi esilaskennan määrä kasvaa, mutta kohdan 3 laskukierroksia tarvitaan vähemmän. Esimerkki 7. Lasketaan x käyttäen algoritmia 3.3 ja olkoon k = 3. Tähän esimerkkiin tullaan viittaamaan algoritmin 3.5 esimerkkien yhteydessä. Nyt e = (26745) 2 3. Esilaskennasta saadaan x 0 = 1, x 1 = x, x 2 = x 2, x 3 = x 3, x 4 = x 4, x 5 = x 5, x 6 = x 6 ja x 7 = x 7. Taulukossa 7 on esitetty kohdassa 3 suoritettavat laskuvaiheet. Kohdassa 3.1 muuttujaan A talletettaan A 23 = A 8 ja kohdassa 3.2 muuttujaan A talletetaan A x ei. Algoritmi palauttaa potenssiin korotuksen tuloksen A = x
17 i x 2 3 x 16 x 16 x 6 = x 22 2 x 176 x 176 x 7 = x x 1464 x 1464 x 4 = x x x x 5 = x Taulukko 7 Seuraavassa algoritmissa algoritmia 3.3 muokataan hieman, jotta saadaan vähennettyä esilaskennan määrää. Algoritmissa 3.4 käytetään seuraavaa merkintätapaa: jos e i 0, kun 0 i t, niin merkitään e i = 2 h i u i, jossa u i on pariton. Jos e i = 0, niin olkoon h i = 0 ja u i = 0. Esimerkiksi olkoon e = 250 = (3322) 4. Edellä esitetystä merkintätavasta saadaan e 3 = e 2 = 3 = 2 0 3, joten h 3 = h 2 = 0, u 3 = u 2 = 3 ja e 1 = e 0 = 2 = 2 1 1, joten h 1 = h 0 = 1 ja u 1 = u 0 = 1. Algoritmi saa syötteenä luvut x, n, e ja k. Luku e esitetään 2 k -kantaisena lukuna. Esilaskennassa lasketaan aina luvut x 0, x 1 ja x 2. Kun luku i käy yhdestä lukuun (2 k 1 1), niin lasketaan vielä luvut x 2i+1 = x 2i 1 x 2 (mod n). Käytännössä laskemme vain joka toisen x:n potenssin luvusta x 3 = x 3 lähtien. Esilaskennan jälkeen muuttujaan A talletetaan luku 1. Kun luku i käy luvusta t nollaan, talletetaan joka kierroksella muuttujaan A = (A 2k hi x ui ) 2h i (mod n). Algoritmi 3.4. Muokattu 2 k -kantainen vasemmalta oikealle etenevä potenssiin korotus SYÖTE: x, n ja e = (e t e t 1 e 1 e 0 ) b, missä b = 2 k jollain k 1. TULOSTE: x e (mod n). 1. Esilaskenta. 1.1 x 0 1, x 1 x, x 2 x 2 (mod n). 13
18 1.2 Kun i käy 1:stä lukuun (2 k 1 1), niin x 2i+1 x 2i 1 x 2 (mod n). 2. A Kun i saa arvot t:stä nollaan, niin A (A 2k hi x ui ) 2h i 4. Palauta (A). (mod n). Esimerkki 8. Lasketaan yllä esitettyä algoritmia käyttäen x e, jossa e = 250, kuten esimerkissä 6. Valitaan k = 2, jolloin saadaan e = (3322) Esilaskenta. 1.1 x 0 = 1, x 1 = x ja x 2 = x 2 (mod n). 1.2 i = 1 : x 3 = x 1 x 2 = x 3 (mod n). 2. A = Kuten ennen algoritmia 3.4 esitettiin, niin merkintätavasta e i = 2 h i u i saadaan e 3 = e 2 = 3 = 2 0 3, joten h 3 = h 2 = 0, u 3 = u 2 = 3 ja e 1 = e 0 = 2 = 2 1 1, joten h 1 = h 0 = 1 ja u 1 = u 0 = 1. Nyt i käy luvusta 3 lukuun 0: i = 3 : A = (A 22 h3 x u3 ) 2h 3 = (1 x 3 ) 20 = x 3 i = 2 : A = ((x 3 ) 22 x 3 ) 20 = x 12 x 3 = x 15 i = 1 : A = ((x 15 ) 21 x) 2 = x 62 i = 0 : A = ((x 62 ) 21 x) 2 = x 250. Algoritmi palauttaa potenssiin korotuksen tuloksen A = e 250. Valitaan nyt k = 3 ja saadaan e = (372) 2 3. Lasketaan sama lasku tällä uudella k:n arvolla. 1. Esilaskenta. 1.1 x 0 = 1, x 1 = x ja x 2 = x 2 (mod n). 1.2 i käy yhdestä lukuun ( ) = 3. i = 1 : x 3 = x 1 x 2 = x 3 i = 2 : x 5 = x 3 x 2 = x 5 14
19 i = 3 : x 7 = x 5 x 2 = x 7 2. A = Merkintätavasta e i = 2 h i u i saadaan e 2 = 3 = 2 0 3, e 1 = 7 = ja e 0 = 2 = 2 1 1, joten h 2 = 0, u 2 = 3, h 1 = 0, u 1 = 7, h 0 = 1 ja u 1 = 1. Nyt i käy luvusta 2 nollaan: i = 2 : A = (1 23 x 3 ) 20 = x 3 i = 1 : A = ((x 3 ) 23 x 7 ) 20 = x 31 i = 0 : A = ((x 31 ) 22 x) 2 = x 250. Luvun k ollessa suurempi esilaskennan määrä kasvaa, mutta kohdassa 3 suoritettavien laskutoimitusten määrä vähenee Potenssiin korotus ikkunamenetelmällä Kuten edellinen algoritmi, niin myös seuraava algoritmi vähentää tarvittavan esilaskennan määrää verrattuna algoritmiin 3.3. Lisäksi tämä algoritmi vähentää suoritettavien kertolaskujen määrää. Luvun k sanotaan olevan ikkunan koko. Algoritmi saa syötteenä luvut x, n, ikkunan koon k ja luvun e binäärisessä muodossa. Esilaskennassa lasketaan luvut x 1 = x ja x 2 = x 2 (mod n) sekä x 2i+1 = x 2i 1 x 2 (mod n), kun i käy läpi luvut yhdestä lukuun (2 k 1 1). Eli esilaskettavat luvut tässäkin ovat x 3 = x 3, x 5 = x 5,..., x 2 k 1 = x 2k 1. Muuttujaan A talletetaan luku 1 ja i = t. Kohtaa 3 kierretään niin kauan kuin i 0. Joka kierroksella tehdään seuraavaa: jos e i = 0, niin silloin neliöidään muuttujan A arvo ja vähennetään i:n arvoa yhdellä. Muuten, siis jos e i = 1, etsitään pisin korkeintaan k pituinen bittijono e i e i 1 e l, jossa viimeinen bitti on 1. Lasketaan A = A 2i l+1 x (ei e i 1 e l ) 2 (mod n). Luku x (ei e i 1 e l ) 2 on jokin esilasketuista luvuista. Tämän jälkeen luku i = l 1. Lopulta suoritettujen kierrosten jälkeen muuttujaan A on tallentunut potenssiin korotuksen x e (mod n) tulos. Algoritmi 3.5. Potenssiin korotus ikkunamenetelmällä SYÖTE: x, n ja e = (e t e t 1 e 1 e 0 ) 2, jossa e t = 1 ja kokonaisluku k 1. 15
20 TULOSTE: x e (mod n). 1. Esilaskenta. 1.1 x 1 x, x 2 x 2 (mod n). 1.2 Kun i käy luvusta 1 lukuun (2 k 1 1), niin 2. A 1, i t. x 2i+1 x 2i 1 x 2 (mod n). 3. Niin kauan kuin i 0, niin 3.1 Jos e i = 0, niin A A 2 (mod n), i i Muuten (e i 0) etsi pisin sellainen bittijono e i e i 1 e l, 4. Palauta (A). että i l + 1 k ja e l = 1. A A 2i l+1 x (ei e i 1 e l ) 2 (mod n), i l 1. Esimerkki 9. Lasketaan algoritmia 3.5 käyttäen potenssiin korotus x 11749, jossa e = = ( ) 2 ja k = 3. Esilaskennasta saadaan 1.1: x 1 = x ja x 2 = x 2 (mod n). 1.2: i = 1 : x 3 = x 1 x 2 = x 3 (mod n) i = 2 : x 5 = x 3 x 2 = x 5 (mod n) i = 3 : x 7 = x 5 x 2 = x 7 (mod n). Nyt A = 1 ja i = t = 13. Taulukossa 8 on esitetty kohdan 3 laskuvaiheet. Neljäs kohta palauttaa muuttujaan A talletetun potenssiin korotuksen tuloksen x (mod n). Tällä menetelmällä tarvitaan kolme kertolaskua silloin, kun i saa arvot 10, 7 ja 2. Algoritmilla 3.3 tarvittavien kertolaskujen määrä oli neljä, kun käytettiin samoja arvoja luvuille k ja e. Tämä esitettiin esimerkissä 7. 16
21 i Pisin bittijono A x (x 5 ) 23 x 5 = x (x 45 ) 23 x 7 = x (x 367 ) 2 = x (x 734 ) 2 = x (x 1468 ) 23 x 5 = x Taulukko Potenssiinkorotusalgoritmien vertailua Olkoon luvun e pituus t + 1. Olkoon luvusta e muodostettujen k bitin pituisten sanojen lukumäärä l + 1 (l = (t + 1)/k 1 = t/k ). Taulukossa 9 on yhteenveto tarvittavista kertolaskuista ja neliöinneistä algoritmeissa 3.1, 3.2, 3.3 ja 3.4. Algoritmin 3.5 kertolaskujen ja neliöintien lukumäärän selvittäminen on paljon vaikeampaa, vaikka tämä algoritmi on näistä suositeltavin. Esilaskenta Kertolasku huonoin keskiverto Algoritmi neliöinti kertolasku neliöinti tilanne tilanne t t t/ t t t/ k 3 lk l 1 l(2 k 1)/2 k k 1 1 lk + h l l 1 l(2 k 1)/2 k Taulukko 9 Algoritmissa 3.3 tarvitaan lk neliöintiä. Huomataan, että lk = t/k k = t s, missä s on pienin mahdollinen t (mod k). Tästä seuraa, että t (k 1) lk t, joten algoritmi 3.3 voi parhaimmillaan säästää k 1 neliöintiä verrattuna algoritmeihin 3.1 ja 3.2. Algoritmissa 3.3 luvun k optimaalinen arvo on riippuvainen luvusta t. 17
22 Algoritmissa 3.4 tarvitaan lk + h l neliöintiä, jossa 0 h l s, missä s on pienin mahdollinen t (mod k). Koska t (k 1) lk lk + h l lk + s = t tai t (k 1) lk + h l t, niin tarvittavilla neliöinneillä on samat rajat kuin algoritmilla Montgomeryn potenssiin korotus Alla olevaa algoritmia 3.6 eli Montgomeryn kertolaskua tarvitaan Montgomeryn potenssiin korotuksessa ja tämän vuoksi se on otettu mukaan tähän työhön. Algoritmi saa syötteenä luvut n, x ja y b-kantaisina. Luku b saadaan syötteenä annetusta luvusta R = b l. Syötteenä annetaan myös luku n = n 1 (mod b). Muuttujaan A talletetaan aluksi luku 0. Muuttujaan A talletettavat luvut ovat myös b-kantaisessa muodossa, A = (a l a l 1 a 1 a 0 ) b. Algoritmin toisessa kohdassa i käy nollasta lukuun (l 1). Jokaisella kierroksella lasketaan u i = (a 0 + x i y 0 )n (mod b) ja muuttujaan A talletetaan arvo (A + x i y + u i n)/b. Kolmannessa kohdassa varmistetaan, että A < n. Jos A n, niin suoritetaan vielä yksi laskutoimitus A = A n. Nyt muuttujaan A on talletettuna Montgomeryn kertolaskun xyr 1 (mod n) tulos. Algoritmi 3.6. Montgomeryn kertolasku SYÖTE: kokonaisluvut n = (n l 1 n 1 n 0 ) b, x = (x l 1 x 1 x 0 ) b, y = (y l 1 y 1 y 0 ) b, joissa 0 x, y < n, R = b l, jossa syt(n, b) = 1 ja n = n 1 (mod b). TULOSTE: xyr 1 (mod n). 1. A 0. (Huom. A = (a l a l 1 a 1 a 0 ) b.) 2. Kun i käy nollasta lukuun (l 1), niin 2.1 u i (a 0 + x i y 0 )n (mod b). 2.2 A (A + x i y + u i n)/b. 3. Jos A n, niin A A n. 4. Palauta (A). 18
23 Esimerkki 10. Alla on esitetty algoritmin 3.6 laskuvaiheet, kun käytetään syötteen arvoja n = 72639, R = 10 5, x = 5792 ja y = Tässä l = 5, b = 10 ja n = n 1 (mod 10) = 1. A = 0 i = 0 : u 0 = ( ) = 8 (mod 10) A = ( )/10 = i = 1 : u 1 = ( ) = 8 (mod 10) A = ( )/10 = i = 2 : u 2 = ( ) = 6 (mod 10) A = ( )/10 = i = 3 : u 3 = ( ) = 4 (mod 10) A = ( )/10 = i = 4 : u 4 = ( ) = 5 (mod 10) A = ( )/10 = Algoritmi palauttaa Montgomeryn kertolaskun tuloksen xyr 1 (mod n) = Yllä olevaa algoritmia 3.6 ja algoritmia 3.2 yhdistämällä saadaan algoritmi 3.7 Montgomeryn potenssiin korotus. Syötteen n määritelmä vaatii, että syt(n, R) = 1. Algoritmissa 3.7 tarvitaan algoritmin 3.6 Montgomeryn kertolaskua. Algoritmi 3.7 käyttää merkintää Mont(u, v). Tällöin lasketaan kertolasku käyttäen algoritmia 3.6, jossa Mont(u, v) = uvr 1 (mod n) ja 0 u, v < n. Algoritmi 3.7 saa syötteenä luvun n b-kantaisena, luvun e binäärisenä, luvut R = b l, n ja kokonaisluvun x. Ensimmäisessä kohdassa lasketaan x = Mont(x, R 2 (mod n)) käyttäen Montgomeryn kertolaskua ja muuttujaan A talletetaan R (mod n). Toisessa kohdassa i saa arvot luvusta t nollaan. Jokaisella kierroksella muuttujaan A ensin talletetaan Mont(A, A) käyttäen jälleen Montgomeryn kertolaskua. Jos e i = 1, niin muuttuja A saa vielä uuden arvon Montgomeryn kertolaskusta Mont(A, x). Kun toisen kohdan kierrokset on käyty läpi, muuttuja A saa vielä kerran uuden arvon A = Mont(A, 1). Nyt muuttujassa A on potenssiin korotuksen tulos, jonka algoritmi palauttaa. 19
24 Algoritmi 3.7. Montgomeryn potenssiin korotus SYÖTE: n = (n l 1 n 0 ) b, R = b l, n = n 1 (mod b), e = (e t e 0 ) 2, jossa e t = 1 ja kokonaisluku x, 1 x < n. TULOSTE: x e (mod n). 1. x Mont(x, R 2 (mod n)), A R (mod n). (R (mod n) ja R 2 (mod n) voidaan antaa syötteinäkin.) 2. Kun i käy t:stä nollaan, niin 2.1 A Mont(A, A). 2.2 Jos e i = 1, niin A Mont(A, x). 3. A Mont(A, 1). 4. Palauta (A). Esimerkki 11. Tutustutaan Montgomeryn potenssiinkorotusalgoritmiin laskemalla (mod 851). Olkoon R = b l = Algoritmi saa syötteenä luvut n = 851, n = 9, e = (111) 2 ja x = 123. Luku n = 9, koska nn = 1 (mod b). Algoritmin ensimmäisessä kohdassa muuttujaan A talletetaan R (mod n) = 149 ja lasketaan x käyttäen Montgomeryn kertolaskua. Alla on esitetty Montgomeryn kertolaskun laskuvaiheet, kun x = Mont(x, R 2 (mod n)) = Mont(123, 75). A = 0 i = 0 : u 0 = ( ) 9 = 5 (mod 10) A = ( )/10 = 448 i = 1 : u 1 = ( ) 9 = 2 (mod 10) A = ( )/10 = 230 i = 2 : u 2 = ( ) 9 = 5 (mod 10) A = ( )/10 = 456 Tästä saadaan x = 456 ja yllä saatiin A = 149. Algoritmin toisessa vaiheessa muuttuja i käy luvusta t = 2 nollaan. Montgomeryn kertolaskut on laskettu yllä olevalla tavalla ja tässä on annettuna 20
25 vain niistä saadut tulokset. i = 2 i = 1 i = A = Mont(149, 149) = e 2 = 1 A = Mont(149, 456) = A = Mont(456, 456) = e 1 = 1 A = Mont(773, 456) = A = Mont(618, 618) = e 0 = 1 A = Mont(787, 456) = 638 Algoritmin kolmannessa vaiheessa lasketaan vielä yksi Montgomeryn kertolasku: A = Mont(638, 1) = 564, joka on potenssiin korotuksen tulos. 3.2 Potenssiin korotus, kun eksponentti pysyy vakiona RSA menetelmässä useiden eri lukujen eksponentti on sama. Tässä luvussa käsitellään algoritmia, joka kehittää edellisen luvun kerro ja neliöi - algoritmeja vähentämällä tarvittavien kertolaskujen määrää, kun eksponentti pysyy vakiona Yhteenlaskuketjut Yhteenlaskuketjujen tarkoitus on minimoida kertolaskujen määrää potenssiin korotuksessa. Määritelmä 3.8. Positiivisen kokonaisluvun e yhteenlaskuketju V on positiivisten kokonaislukujen jono u 0, u 1,..., u s. Yhteenlaskuketjuun liittyy myös jono w 1,..., w s pareja w i = (i 1, i 2 ), 0 i 1, i 2 < i. Yhteenlaskuketjuilla on seuraavat ominaisuudet (i) u 0 = 1 ja u s = e ja (ii) u i = u i1 + u i2 kaikilla u i, 1 i s. 21
26 Yhteenlaskuketjun pituus on s. Esimerkki 12. Luvun 31 yhteenlaskuketju on V = (1, 2, 3, 6, 12, 24, 30, 31) ja ketjuun liittyvä jono pareja on (0, 0), (0, 1), (2, 2), (3, 3), (4, 4), (2, 5), (0, 6), koska 1, 1+1 = 2, 1+2 = 3, 3+3 = 6, 6+6 = 12, = 24, 6+24 = 30, 30+1 = 31. Tämän yhteenlaskuketjun pituus on 7. Algoritmi 3.9 saa syötteenä luvut x ja n sekä luvun e yhteenlaskuketjun V ja siihen liittyvän jonon pareja w i. Ensin muuttujaan x 0 talletetaan luku x. Tämän jälkeen i käy yhdestä lukuun s tallentaen joka kierroksella uuteen muuttujaan x i tulon x i1 x i2 (mod n). Luvut i 1 ja i 2 saadaan kullakin kierroksella yhteenlaskuketjuun liittyvästä jonosta w i. Algoritmi palauttaa viimeisen muuttujan x s, jossa on potenssiin korotuksen x e (mod n) tulos. Algoritmi 3.9. Potenssiin korotus yhteenlaskumenetelmällä SYÖTE: x, n, positiivisen kokonaisluvun e yhteenlaskuketju V = (u 0, u 1,..., u s ) ja siihen liittyvä jono w 1,..., w s, jossa w i = (i 1, i 2 ). TULOSTE: x e (mod n). 1. x 0 x. 2. Kun i käy yhdestä lukuun s, niin x i x i1 x i2 (mod n). 3. Palauta x s. Esimerkki 13. Lasketaan (mod 91) käyttäen algoritmia 3.9. Tässä x = 17 ja e = 11. Luvun 11 yhteenlaskuketju on (1, 2, 3, 6, 9, 11) ja siihen liittyvä jono pareja on (0, 0), (0, 1), (2, 2), (2, 3), (1, 4). Taulukossa 10 on algoritmin laskuvaiheet luvuilla x ja x = 17. Kun positiiviselle kokonaisluvulle e on annettu yhteenlaskuketju V, niin algoritmilla 3.9 laskettaessa laskun x e, x < n, x 1 laskemiseen tarvitaan tasan s kertolaskua. 22
27 i w i (0, 0) (0, 1) (2, 2) (2, 3) (1, 4) x i x x 0 x 0 = x 2 x 0 x 1 = x 3 x 2 x 2 = x 6 x 2 x 3 = x 9 x 1 x 4 = x 11 x i Taulukko 10 Jos eksponentti e on annettu binäärisessä muodossa, on suhteellisen helppoa muodostaa yhteenlaskuketju. Tosin tällä tavoin muodostettu yhteenlaskuketju ei yleensä ole lyhyin mahdollinen. Olkoon l lyhyin mahdollinen pituus positiivisen kokonaisluvun e yhteenlaskuketjulle. Silloin l (log 2 e + log 2 wt(e) 2, 13), jossa wt(e) on ykkösten lukumäärä luvun e binääriesityksessä. Yläraja ( log 2 e +wt(e) 1) on saatu muodostamalla luvun e yhteenlaskuketju luvun binäärisestä muodosta. 3.3 Potenssiin korotus, kun kanta pysyy vakiona Seuraavat algoritmit esittävät potenssiinkorotusmenetelmiä tilanteisiin, joissa kanta x pysyy samana ja eksponentti e vaihtuu. Kun kanta pysyy vakiona, niin esilaskenta voidaan suorittaa vain kerran useampaa potenssiin korotusta varten. Nämä menetelmät ovat käytännöllisempiä esimerkisi Diffie-Hellman -avaimenvaihtoprotokollassa kuin RSA:ssa. Jokaisessa tämän luvun algoritmissa kuvattu joukko {b 0, b 1,..., b t } on sellainen joukko kokonaislukuja, että eksponentti e voidaan kirjoittaa muodossa e = t i=0 e ib i, missä 0 e i < h ja h on positiivinen kokonaisluku. Esimerkiksi, jos e on jokin (t+1)-numeroinen b-kantainen kokonaisluku, jossa b 2, niin b i = b i ja h = b ovat mahdollisia valintoja. Algoritmit 3.10 ja 3.11 vaativat potenssien x b 0, x b 1,..., x bt laskemista etukäteen. Näiden laskemiseen käytetään esimerkiksi jotain luvussa 3.1 esitetyistä algoritmeista. Algoritmin 3.13 esilaskenta on monimutkaisempi ja on esitetty algoritmissa
28 3.3.1 Ikkunointimenetelmä Algoritmin 3.10 syötteenä ovat esilasketut potenssit x i = x b i, 0 i t ja positiiviset kokonaisluvut h ja e = t i=0 e ib i, missä 0 e i < h, 0 i t. Algoritmin perustana on havainto, että x e = t i=0 xe i i = h 1 j=1 ( e i =j x i) j. Algoritmi Potenssiin korotus ikkunointimenetelmällä SYÖTE: {x b 0, x b 1,..., x b t }, e = t i=0 e ib i, h ja n. TULOSTE: x e (mod n). 1. A 1, B Kun j käy luvusta (h 1) yhteen, niin 2.1 Kaikilla i, joilla e i = j, niin B B x b i (mod n). 2.2 A A B (mod n). 3. Palauta (A). Esimerkki 14. Esilasketaan alkiot x 1, x 4, x 16, x 64, x 256. Olkoon e = 862 = (31132) 4, kun lasketaan laskua x e. Tässä t = 4, h = 4 ja b i = 4 i, kun 0 i 4. Taulukossa 11 on algoritmin 3.10 muutujien A ja B arvot algoritmin toisen vaiheen jokaisen iteraation jälkeen. j B 1 x 4 x 256 = x 260 x 260 x = x 261 x 261 x 16 x 64 = x 341 A 1 x 260 x 260 x 261 = x 521 x 521 x 341 = x 862 Taulukko 11 Ensimmäisellä kierroksella, kun j = 3, kohdassa 2.1 i:n arvoilla 1 ja 4 saadaan e i = 3. Täten B = x 4 x 256. Kun j = 2, niin luvussa e = (31132) 4 vain e 0 = 2, joten tällöin B = x 260 x. Viimeisellä kierroksella muuttuja B kerrotaan luvuilla x 16 ja x 64. Jokaisella kierroksella muuttuja A kerrotaan saadulla B:n arvolla ja näin potenssiin korotuksen tulos kerääntyy muuttujaan A. 24
29 Oletetaan, että t + h 2. Ainoastaan ne kertolaskut, joissa tulon molemmat tekijät ovat erisuuria kuin 1, otetaan huomioon. Kohta 2.2 suoritetaan h 1 kertaa, mutta ainakin ensimmäisessä kertolaskussa toinen tulon tekijöistä on 1. Koska B on aluksi 1, niin kohdassa 2.1 suoritetaan korkeintaan t kertolaskua. Täten algoritmissa 3.10 laskun x e suorittamiseen tarvitaan korkeintaan t + h 2 kertolaskua. Muistia algorimissa tarvitaan esilaskettujen alkioiden x i tallentamiseen, joita on t + 1 kappaletta Euklidinen menetelmä Olkoon {v 0, v 1,..., v t } joukko kokonaislukuja, jossa t 2. Määritellään M olemaan sellainen kokonaisluku välillä [0, t], että v M v i kaikilla 0 i t. Määritellään N olemaan sellainen kokonaisluku välillä [0, t], että M N ja v N v i kaikilla 0 i t ja i M. Algoritmi Potenssiin korotus euklidisella menetelmällä SYÖTE: {x b 0, x b 1,..., x b t }, n ja e = t i=0 e ib i. TULOSTE: x e (mod n). 1. Kun i käy nollasta lukuun t, niin x i x b i, v i e i. 2. Määritä joukolle {v 0, v 1,..., v t } kokonaisluvut M ja N. 3. Niin kauan kuin v N 0, niin 3.1 q v M /v N, x N (x M ) q x N (mod n), v M v M (mod v N ). 3.2 Määritä joukolle {v 0, v 1,..., v t } kokonaisluvut M ja N. 4. Palauta (x v M M ) (mod n). Esimerkki 15. Lasketaan x e käyttäen yllä olevaa algoritmia. Olkoon e = 862, kuten edellisessä esimerkissä. Valitaan b 0 = 1, b 1 = 16, b 2 = 256. Tästä saadaan e = (3, 5, 14) 16. Esilasketaan x 1, x 16 ja x 256. Taulukossa 12 on esitetty algoritmilla 3.11 saadut tulokset jokaisen kierroksen jälkeen. Ensimmäisellä rivillä on arvot, jotka on saatu algoritmin kohdista 1 ja 2. Lukujen v i arvot on saatu luvusta e = (3, 5, 14) 16 ja luvut x i ovat esilasketut syötteenä annetut luvut x b i. Joukon {v 0, v 1, v 2 } luvuille määritellään luvut M 25
30 v 0 v 1 v 2 M N q x 0 x 1 x x x 16 x x x 18 x x 19 x 18 x x 19 x 18 x x 19 x 843 x x 19 x 862 x 275 Taulukko 12 ja N. Tässä M = 0, koska v 0 = 14 ja täten on suurin luvuista v i. Koska M N, niin N = 1. Algoritmin kolmatta kohtaa käydään läpi niin kauan kuin v N 0. Toisella rivillä on ensin määritelty algoritmin kolmannen kohdan mukaan q = v M /v N = 14/5 = 2. Tämän arvon avulla on laskettu uusi x N = x 1 = (x M ) q x N = (x 0 ) 2 x 1 = x 2 x 16 = x 18 ja v M = v M (mod v N ) = 14 = 4 (mod 5). Tämän jälkeen määritellään uudet M ja N, jotka ovat nyt M = 1 ja N = 0. Kun on tarkastettu, että v N = v 0 = 4 0, niin voidaan siirtyä seuraavalle kierrokselle ja käydä kohta 3 uudelleen läpi. Vastaavalla tavalla käydään seuraavat rivit, kunnes viimeiseltä riviltä huomataan, että v N = v 0 = 0. Kierrosta ei enää jatketa, vaan siirrytään algoritmin neljänteen kohtaan ja palautetaan potenssiin korotuksen tulos x v M M = x v 1 1 = x Kampamenetelmä Algoritmi 3.13 laskee x e (mod n), jossa e = (e t e t 1 e 1 e 0 ) 2 ja t 1. Valitaan sellainen kokonaisluku h, että 1 h t+1, ja lasketaan a = (t+1)/h. Valitaan sellainen kokonaisluku v, että 1 v a, ja lasketaan b = a/v. Selvästi ah t + 1. Olkoon X = R h 1 R h 2 R 0 luvusta e muodostettu bittijono, johon on tarvittaessa lisätty vasemmalle puolelle nollia, jotta bittijonon X pituus on ah ja jokaisen R i bittijonon pituus on a. Muodostetaan h a taulukko EA (exponent array), jossa taulukon rivillä i on bittijono R i, kun 0 i h 1. Esimerkki 16. Muodostetaan taulukko EA luvusta e = = 26
31 ( ) 2. Valitaan h = 5 ja lasketaan a = (t + 1)/h = 14/5 = 3. Muodostetaan X = R h 1 R h 2 R 0 luvusta e, lisäämällä yksi nolla binääriesityksen vasemmalle puolelle, jotta pituudeksi saadaan ah = 15. Saadaan X = R 4 R 3 R 2 R 1 R 0 = Alla olevassa taulukossa 13 on saaduista arvoista muodostettu taulukko EA, jossa rivillä i on R i Taulukko 13 Algoritmissa 3.13 tarvitaan lukua I j,k. Kun on valittu sellainen kokonaisluku v, että 1 v a, ja siitä on saatu b = a/v, niin 0 k b ja 0 j < v. Olkoon I j,k sellainen kokonaisluku, jonka binääriesitys on taulukon EA sarake (jb + k). Taulukossa EA sarake 0 on oikealla ja sarakkeen vähiten merkitsevät bitit ovat ylimmäisinä. Algoritmissa 3.13 tarvittavan esilaskennan suorittaa algoritmi Algoritmi 3.12 saa syötteenä luvun x ja edellä määritellyt parametrit h, v, a ja b. Tulosteena saadaan taulukko, jossa on esilaskettu tietyt tarvittavat potenssiin korotukset. Algoritmin alla olevassa esimerkissä on algoritmin toimintaa esitetty tarkemmin. Algoritmi Esilaskenta algoritmille 3.13 SYÖTE: x, n ja yllä määritellyt parametrit h, v, a ja b. TULOSTE: {G[j][i] : 1 i < 2 h, 0 j < v}. 27
32 1. Kun i käy nollasta lukuun (h 1), niin x i x 2ia (mod n). 2. Kun i käy yhdestä lukuun (2 h 1), missä i = (i h 1 i 0 ) 2, niin 2.1 G[0][i] h 1 j=0 xi j j (mod n). 2.2 Kun j käy yhdestä lukuun (v 1), niin G[j][i] (G[0][i]) 2jb (mod n). 3. Palauta({G[j][i] : 1 i < 2 h, 0 j < v}). Esimerkki 17. Olkoon syötteenä annettu x ja olkoon t = 9. Valitaan h = 3, josta saadaan a = 4. Valitaan vielä v = 2, josta saadaan b = 2. Algoritmin ensimmäisessä kohdassa i käy nollasta lukuun (h 1) = 2 ja laskee x i = x 2ia. Saadaan x 0 = x, x 1 = x 16 ja x 2 = x 256. Alla olevassa taulukossa on algoritmin toisen kohdan tulokset, kun i käy yhdestä lukuun (2 h 1) = 7. Ensimmäisellä rivillä on kohdan 2.1 tulokset. Kohdasta 2.2 tulee tässä esimerkissä vain yksi rivi, koska (v 1) = 1. Tämä rivi on taulukon toinen rivi. Luvun v ollessa suurempi, taulukkoon tulisi useampi rivi. Ensimmäisellä kierroksella, kun i = 1 = (001) 2, niin G[0][1] = 2 j=0 xi j j = x 1 0 x 0 1 x 0 2 = x 0 = x. Seuraavaksi on laskettu kohta G[1][1] = (G[0][1]) 2jb = (x 0 ) 22 = x 4 0 = x 4. Vastaavalla tavalla on laskettu algoritmin kohdan 2 loput kierrokset. Algoritmi palauttaa taulukossa 14 olevat arvot. i G[0][i] x x 16 x 17 x 256 x 257 x 272 x 273 G[1][i] x 4 x 64 x 68 x 1024 x 1028 x 1088 x 1092 Taulukko 14 Algoritmi Potenssiin korotus kampamenetelmällä SYÖTE: x, e, n ja algoritmissa 3.12 saadut v ja b sekä laskettu {G[j][i] : 1 i < 2 h, 0 j < v}. 28
33 TULOSTE: x e (mod n). 1. A Kun k käy luvusta (b 1) nollaan, niin 2.1 A A A (mod n). 2.2 Kun j käy luvusta (v 1) nollaan, niin 3. Palauta (A). A G[j][I j,k ] A (mod n). Esimerkki 18. Lasketaan x 729 (mod n) käyttäen algoritmia Eksponentti e = 729 = ( ) 2, joten t = 9. Valitaan h = 3, josta saadaan a = 4 ja valitaan v = 2, josta saadaan b = 2. Saadut luvut ovat samat kuin edellisessä esimerkissä, joten voimme käyttää esimerkissä 17 saatua taulukkoa esilaskennan tuloksena: i G[0][i] x x 16 x 17 x 256 x 257 x 272 x 273 G[1][i] x 4 x 64 x 68 x 1024 x 1028 x 1088 x 1092 Algoritmia varten tarvitsemme vielä taulukon EA, joka on muodostettu luvusta e. Taulukko 15 on taulukko EA Taulukko 15 Yllä annetuilla arvoilla pystymme suorittamaan algoritmin Ensin muuttujaan A talletetaan luku 1. Taulukossa 16 on esitettynä algoritmin kohdassa 2 muuttujaan A tallettuvat tulokset. Muistetaan, että I j,k on kokonaisluku, jonka binääriesitys on taulukossa EA sarake (jb + k) = (j 2 + k). Nyt algoritmi palauttaa muuttujan A = x 729, joka on potenssiin korotuksen tulos. 29
34 k j A G[1][I 1,1 ] 1 = G[1][3] = x 68 0 G[0][4] x 68 = x 256 x 68 = x x 324 x 324 = x G[1][2] x 648 = x G[0][3] x 712 = x 729 Taulukko 16 Algoritmi 3.13 vaatii korkeintaan yhden kertolaskun jokaista taulukon EA saraketta kohti. Oikeanpuoleisin sarake kerrotaan muuttujan A alkuarvolla 1. Algoritmissa myös neliöidään muuttuja A jokaisella luvulla k, kun 0 k b 1, paitsi silloin kun k = b 1. Tällöin muuttujaan A on tallennettu arvo 1. Kun kertolaskujen määrästä vähennetään 1, niin epätriviaaleja kertolaskuja tarvitaan korkeintaan a + b 2. Algoritmi tarvitsee tallennustilaa v(2 h 1):lle esilasketulle alkiolle. Jos neliöinti on merkittävästi helpompaa verrattuna alkioiden kertomiseen, niin jonkin verran tilaa voidaan säästää tallentamalla vain 2 h 1 alkiota (esimerkiksi ne, jotka on laskettu algoritmin 3.12 vaiheessa 2.1). Lukujen h ja v valinta voidaan tehdä perustuen tarvittavaan muistitilaan tai käytettävissä olevaan aikaan. 30
35 4 Potenssiinkorotusalgoritmit RSA:ssa Luodaan RSA salasanat ja salataan viesti x = käyttäen vuorollaan jokaista edellisessä luvussa esitettyä potenssiinkorotusalgoritmia. Tästä näkee, kuinka paljon työtä saman potenssiin korotuksen laskeminen kullakin algoritmilla vaatii. Tässä ei enää selitetä algoritmien toimintatapaa, vaan lähinnä laskutoimitukset ovat esillä. Valitaan alkuluvut p ja q suhteellisen suuriksi, mutta sellaisiksi, joita vielä pystytään käsittelemään hyvin tässä työssä. Todellisuudessa lukujen on oltava vieläkin paljon suurempia. Olkoon p = 863 ja q = 587. Näistä saadaan n = Valitaan luku e = 4381 ja tarkastetaan, että syt(e, φ(n)) = 1. Määritellään myös salainen avain d = siten, että ed = 1 (mod φ(n)). Muistetaan, että φ(n) = (p 1)(q 1). Lasketaan potenssiin korotus (mod ) käyttäen edellisessä luvussa esitettyjä menetelmiä. 4.1 Binäärinen oikealta vasemmalle etenevä potenssiin korotus Algoritmi 3.1 saa syötteenä luvut x = , n = ja e = Algoritmin ensimmäisessä kohdassa muuttujat A, S ja e saavat arvot A = 1, S = ja e = Taulukossa 17 on esitettynä algoritmin toisessa kohdassa muuttujien A, S ja e saamat arvot. Algoritmi palauttaa muuttujan A = , joka on potenssiin korotuksen (mod ) tulos. 4.2 Binäärinen vasemmalta oikealle etenevä potenssiin korotus Algoritmi 3.2 saa syötteenä luvut x = ja n = sekä eksponentin binäärisessä muodossa e = ( ) 2. Nyt muuttujia on vain yksi, johon kertyy potenssiin korotuksen tulos. Taulukossa 18 on algoritmin suorittamien laskujen tulokset. 31
36 A = A S e = e/2 S = S S Taulukko 17 i A = A A e i A = A x 12 1 e 12 = e 11 = e 10 = e 9 = e 8 = e 7 = e 6 = e 5 = e 4 = e 3 = e 2 = e 1 = e 0 = Taulukko 18 32
37 Algoritmi palauttaa muuttujan A = , joka on potenssiin korotuksen (mod ) tulos k -kantainen vasemmalta oikealle etenevä potenssiin korotus Algoritmin 3.3 syötteenä ovat luvut x = ja n = Valitaan k = 2, josta saadaan b = 2 2 = 4. Eksponentti e = ( ) 4. Alla on algoritmin suorittamat laskut. 1. Esilaskenta x 0 = 1 x 1 = x 0 x = x 2 = x 1 x = x 3 = x 2 x = A = 1 3. i A = A 4 A = A x ei Algoritmi palauttaa muuttujan A = , joka on potenssiin korotuksen (mod ) tulos. 4.4 Muokattu 2 k -kantainen vasemmalta oikealle etenevä potenssiin korotus Algoritmi 3.4 saa syötteenä luvut x = ja n = Valitaan k = 2, josta saadaan b = 2 2 = 4. Eksponentti e = ( ) 4. Al- 33
38 goritmia varten tarvitaan luvut h i ja u i, jotka saadaan määritelmästä e i = 2 h i u i. Nyt e 6 = e 4 = e 2 = e 0 = 1, joten h 6 = h 4 = h 2 = h 0 = 0 ja u 6 = u 4 = u 2 = u 0 = 1. Luvut e 5 = e 3 = 0, joten h 5 = h 3 = 0, u 5 = u 3 = 0 ja luku e 1 = 3, joten h 1 = 0 ja u 1 = 3. Algoritmin muuttuja A = (A 2k hi x ui ) 2h i = A 4 x ui, koska k = 2 ja h i = 0 kaikilla i. Alla on esitettynä algoritmissa suoritetut laskut. 1. Esilaskenta x 0 = 1 x 1 = x 2 = x 3 = x 1 x 2 = A = 1 3. i u i A = A 4 x ui = = = = = = Algoritmi palauttaa muuttujan A = , joka on potenssiin korotuksen (mod ) tulos. 4.5 Potenssiin korotus ikkunamenetelmällä Algoritmi 3.5 saa syötteenä luvut e = ( ) 2, x = ja n = Valitaan ikkunan koko k = Esilaskenta x 1 = x 2 = x 2 =
39 x 3 = x 1 x 2 = x 5 = x 3 x 2 = x 7 = x 5 x 2 = A = 1 ja i = i Pisin bittijono A x 1 = = = = x 1 = = = = x 7 = = x 1 = Algoritmi palauttaa muuttujan A = , joka on potenssiin korotuksen (mod ) tulos. 4.6 Montgomeryn potenssiin korotus Algoritmi 3.7 saa syötteenä luvut n = , R = 10 6, e = ( ) 2, x = ja n = 9. Ensin ratkaistaan x = Mont(x, R 2 (mod n)) = Mont(280565, ) käyttäen Montgomeryn kertolaskua. A = 0 i = 0 : u 0 = ( ) 9 = 5 (mod 10) A = ( )/10 = i = 1 : u 1 = ( ) 9 = 0 (mod 10) A = ( )/10 = i = 2 : u 2 = ( ) 9 = 6 (mod 10) A = ( )/10 =
40 i = 3 : u 3 = ( ) 9 = 9 (mod 10) A = ( )/10 = i = 4 : u 4 = ( ) 9 = 7 (mod 10) A = ( )/10 = i = 5 : u 5 = ( ) 9 = 0 (mod 10) A = ( )/10 = x = ja A = R(mod n) = Taulukossa 19 on jälleen esitettynä vain Mongomeryn kertolaskujen tulokset. Kukin lasku vaatii työtä suunnilleen saman verran, kuin yllä olevan x:n ratkaisu. i A = Mont(A, A) e i A = Mont(A, x) Taulukko Mont(A, 1) = Algoritmi palauttaa muuttujan A = , joka on potenssiin korotuksen (mod ) tulos. 36
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 8 1 Derivaatta Tarkastellaan funktion f keskimääräistä muutosta tietyllä välillä ( 0, ). Funktio f muuttuu tällä välillä määrän. Kun tämä määrä jaetaan välin pituudella,
Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.
Epäyhtälö Kahden lausekkeen A ja B välisiä järjestysrelaatioita A < B, A B, A > B ja A B nimitetään epäyhtälöiksi. Esimerkiksi 2 < 6, 9 10, 5 > a + + 2 ja ( + 1) 2 2 + 2 ovat epäyhtälöitä. Epäyhtälössä
Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta
Simo K. Kivelä, 15.4.2003 Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Aksioomat Luonnolliset luvut voidaan määritellä Peanon aksioomien avulla. Tarkastelun kohteena on
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 10 1 Sarjakehitelmiä Palautetaan mieliin, että potenssisarja on sarja joka on muotoa a n (x x 0 ) n = a 0 + a 1 (x x 0 ) + a 2 (x x 0 ) 2 + a 3 (x x 0 ) 3 +. n=0 Kyseinen
Luento 6. June 1, 2015. Luento 6
June 1, 2015 Normaalimuodon pelissä on luontevaa ajatella, että pelaajat tekevät valintansa samanaikaisesti. Ekstensiivisen muodon peleissä pelin jonottaisella rakenteella on keskeinen merkitys. Aluksi
Nimittäin, koska s k x a r mod (p 1), saadaan Fermat n pienen lauseen avulla
6. Digitaalinen allekirjoitus Digitaalinen allekirjoitus palvelee samaa tarkoitusta kuin perinteinen käsin kirjotettu allekirjoitus, t.s. Liisa allekirjoittaessaan Pentille lähettämän viestin, hän antaa
Esimerkkejä derivoinnin ketjusäännöstä
Esimerkkejä derivoinnin ketjusäännöstä (5.9.008 versio 1.0) Esimerkki 1 Määritä funktion f(x) = (x 5) derivaattafunktio. Funktio voidaan tulkita yhdistettynä funktiona, jonka ulko- ja sisäfunktiot ovat
Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015
Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015 1. Onko olemassa yhtenäistä verkkoa, jossa (a) jokaisen kärjen aste on 6, (b) jokaisen kärjen aste on 5, ja paperille piirrettynä sivut eivät
monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.
.. Käänteisunktio.. Käänteisunktio Mikäli unktio : A B on bijektio, niin joukkojen A ja B alkioiden välillä vallitsee kääntäen yksikäsitteinen vastaavuus eli A vastaa täsmälleen yksi y B, joten myös se
Aluksi. 2.1. Kahden muuttujan lineaarinen epäyhtälö
Aluksi Matemaattisena käsitteenä lineaarinen optimointi sisältää juuri sen saman asian kuin mikä sen nimestä tulee mieleen. Lineaarisen optimoinnin avulla haetaan ihannearvoa eli optimia, joka on määritelty
Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo.
13 Luvun potenssi Kertolasku, jonka kaikki tekijät ovat samoja, voidaan merkitä lyhyemmin potenssin avulla. Potenssimerkinnässä eksponentti ilmaisee, kuinka monta kertaa kantaluku esiintyy tulossa. Potenssin
Eksponenttifunktion Laplace muunnos Lasketaan hetkellä nolla alkavan eksponenttifunktion Laplace muunnos eli sijoitetaan muunnoskaavaan
Laplace muunnos Hieman yksinkertaistaen voisi sanoa, että Laplace muunnos muuttaa derivaatan kertolaskuksi ja integroinnin jakolaskuksi. Tältä kannalta katsottuna Laplace muunnoksen hyödyllisyyden ymmärtää;
String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1
String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen
RSA-salausmenetelmä LuK-tutkielma Tapani Sipola Op. nro Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2017
RSA-salausmenetelmä LuK-tutkielma Tapani Sipola Op. nro. 1976269 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2017 Sisältö Johdanto 2 1 Salausmenetelmien yleisiä periaatteita 3 2 Määritelmiä ja
30 + x. 15 + 0,5x = 2,5 + x 0,5x = 12,5 x = 25. 27,5a + 27,5b = 1,00 55 = 55. 2,5a + (30 2,5)b (27,5a + 27,5b) = 45 55.
RATKAISUT, Insinöörimatematiikan koe 1.5.201 1. Kahdessa astiassa on bensiinin ja etanolin seosta. Ensimmäisessä astiassa on 10 litraa seosta, jonka tilavuudesta 5 % on etanolia. Toisessa astiassa on 20
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta Integrointi Integrointi on erivoinnin käänteistoimitus: jos funktion F(x) erivaatta on f (x), niin funktion f (x) integraali on F(x). Täten, koska esimerkiksi funktion
Salakirjoitusmenetelmiä
Salakirjoitusmenetelmiä LUKUTEORIA JA LOGIIKKA, MAA 11 Salakirjoitusten historia on tuhansia vuosia pitkä. On ollut tarve lähettää viestejä, joiden sisältö ei asianomaisen mielestä saanut tulla ulkopuolisten
Tekijät: Hellevi Kupila, Katja Leinonen, Tuomo Talala, Hanna Tuhkanen, Pekka Vaaraniemi
2. OSA: GEOMETRIA Tekijät: Hellevi Kupila, Katja Leinonen, Tuomo Talala, Hanna Tuhkanen, Pekka Vaaraniemi Alkupala Montako tasokuviota voit muodostaa viidestä neliöstä siten, että jokaisen neliön vähintään
MS-A0004 - Matriisilaskenta Laskuharjoitus 3
MS-A0004 - Matriisilaskenta Laskuharjoitus 3 atkaisut Tehtävä Merkitään matriisin rivejä, 2 ja 3. Gaussin eliminoinnilla saadaan 3 5 4 7 3 5 4 7 3 2 4 2+ 0 3 0 6 6 8 4 3+2 2 0 3 0 6 3 5 4 7 0 3 0 6 3+
Lukuteorian kertausta
Lukuteorian kertausta Jakoalgoritmi Jos a, b Z ja b 0, niin on olemassa sellaiset yksikäsitteiset kokonaisluvut q ja r, että a = qb+r, missä 0 r < b. Esimerkki 1: Jos a = 60 ja b = 11, niin 60 = 5 11 +
Esimerkki 8. Ratkaise lineaarinen yhtälöryhmä. 3x + 5y = 22 3x + 4y = 4 4x 8y = 32. 3 5 22 r 1 + r 3. 0 13 26 4 8 32 r 3 4r 1. LM1, Kesä 2014 47/68
Esimerkki 8 Ratkaise lineaarinen yhtälöryhmä 3x + 5y = 22 3x + 4y = 4 4x 8y = 32. 3 5 22 r 1 + r 3 3 4 4 4 8 32 1 3 10 0 13 26 4 8 32 r 3 4r 1 1 3 10 3 4 4 r 2 3r 1 4 8 32 1 3 10 0 13 26 r 2 /13 0 4 8
Induktio kaavan pituuden suhteen
Induktio kaavan pituuden suhteen Lauselogiikan objektikieli määritellään kurssilla Logiikka 1B seuraavasti: 1. Lausemuuttujat p 1, p 2, p 3,... ovat kaavoja. 2. Jos A on kaava, niin A on kaava. 3. Jos
2.7 Neliöjuuriyhtälö ja -epäyhtälö
2.7 Neliöjuuriyhtälö ja -epäyhtälö Neliöjuuren määritelmä palautettiin mieleen jo luvun 2.2 alussa. Neliöjuurella on mm. seuraavat ominaisuudet. ab = a b, a 0, b 0 a a b =, a 0, b > 0 b a2 = a a > b, a
Tekijä Pitkä Matematiikka 11 ratkaisut luku 2
Tekijä Pitkä matematiikka 11 0..017 170 a) Koska 8 = 4 7, luku 8 on jaollinen luvulla 4. b) Koska 104 = 4 6, luku 104 on jaollinen luvulla 4. c) Koska 4 0 = 80 < 8 ja 4 1 = 84 > 8, luku 8 ei ole jaollinen
TILASTOLLINEN LAADUNVALVONTA
1 Aki Taanila TILASTOLLINEN LAADUNVALVONTA 31.10.2008 2 TILASTOLLINEN LAADUNVALVONTA Tasalaatuisuus on hyvä tavoite, jota ei yleensä voida täydellisesti saavuttaa: asiakaspalvelun laatu vaihtelee, vaikka
Matematiikan tukikurssi 3.4.
Matematiikan tukikurssi 3.4. Neliömuodot, Hessen matriisi, deiniittisyys, konveksisuus siinä tämän dokumentin aiheet. Neliömuodot ovat unktioita, jotka ovat muotoa T ( x) = x Ax, missä x = (x 1,, x n )
RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita
Simo K. Kivelä, 25.1.2005 RSA-salakirjoitus Ron Rivest, Adi Shamir ja Leonard Adleman esittivät vuonna 1978 salakirjoitusmenettelyn, jossa tietylle henkilölle osoitetut viestit voidaan salakirjoittaa hänen
Lisää segmenttipuusta
Luku 24 Lisää segmenttipuusta Segmenttipuu on monipuolinen tietorakenne, joka mahdollistaa monenlaisten kyselyiden toteuttamisen tehokkaasti. Tähän mennessä olemme käyttäneet kuitenkin segmenttipuuta melko
Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.
OHJE OPISKELIJALLE MOODLEN KÄYTTÖÖN 1/5 2011/2012 MOODLE KOULUTUKSESSA Työterveyslaitoksella käytetään Moodle -verkko-oppimisalustaa. Potilassiirtojen Ergonomia - koulutus on monimuotokoulutusta, johon
2.2 Täydellinen yhtälö. Ratkaisukaava
. Täydellinen yhtälö. Ratkaisukaava Tulon nollasäännöstä näkee silloin tällöin omituisia sovellutuksia. Jotkut näet ajattelevat, että on olemassa myöskin tulon -sääntö tai tulon "mikä-tahansa"- sääntö.
Lukion. Calculus. Polynomifunktiot. Paavo Jäppinen Alpo Kupiainen Matti Räsänen Otava PIKATESTIN JA KERTAUSKOKEIDEN TEHTÄVÄT RATKAISUINEEN
Calculus Lukion MAA Polynomifunktiot Paavo Jäppinen Alpo Kupiainen Matti Räsänen Otava PIKATESTIN JA KERTAUSKOKEIDEN TEHTÄVÄT RATKAISUINEEN Polynomifunktiot (MAA) Pikatesti ja kertauskokeet Tehtävien ratkaisut
Koostanut Juulia Lahdenperä ja Rami Luisto. Salakirjoituksia
Salakirjoituksia Avainsanat: salakirjoitus, suoraan numeroiksi, Atblash, Caesar-salakirjoitus, ruudukkosalakirjoitus, julkisen avaimen salakirjoitus, RSA-salakirjoitus Luokkataso: 3.-5. luokka, 6.-9. luokka,
MAA10 HARJOITUSTEHTÄVIÄ
MAA0 Määritä se funktion f: f() = + integraalifunktio, jolle F() = Määritä se funktion f : f() = integraalifunktio, jonka kuvaaja sivuaa suoraa y = d Integroi: a) d b) c) d d) Määritä ( + + 8 + a) d 5
1.7 Gradientti ja suunnatut derivaatat
1.7 Gradientti ja suunnatut derivaatat Funktion ensimmäiset osittaisderivaatat voidaan yhdistää yhdeksi vektorifunktioksi seuraavasti: Missä tahansa pisteessä (x, y), jossa funktiolla f(x, y) on ensimmäiset
MS-A0402 Diskreetin matematiikan perusteet
MS-A0402 Diskreetin matematiikan perusteet Osa 4: Modulaariaritmetiikka Riikka Kangaslampi 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Modulaariaritmetiikka Jakoyhtälö Määritelmä 1 Luku
Algoritmit 2. Luento 8 Ke 13.4.2016. Timo Männikkö
Algoritmit 2 Luento 8 Ke 13.4.2016 Timo Männikkö Luento 8 Rekursioyhtälöt Master-lause Lähin pistepari Ahne menetelmä Lyhin virittävä puu Kruskalin menetelmä Primin menetelmä Merkkitiedon tiivistäminen
2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)
Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee
Ratkaisuehdotukset Kesäyliopisto 2014. 1. Kuvassa on esitetty erään ravintolan lounasbuffetin kysyntäfunktio.
Harjoitukset 2 Taloustieteen perusteet Ratkaisuehdotukset Kesäyliopisto 2014 1. Kuvassa on esitetty erään ravintolan lounasbuffetin kysyntäfunktio. a) Mikä on kysynnän hintajousto 12 :n ja 6 :n välillä?
RSA Julkisen avaimen salakirjoitusmenetelmä
RSA Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL Alkuluvut Alkuluvuilla tarkoitetaan lukua 1 suurempia kokonaislukuja, jotka eivät ole tasan jaollisia
Sähköpostiohjeet. Tehokas ja huoleton sähköposti
Sähköpostiohjeet 1 Uuden PST tiedoston luominen sähköposteille... 3 Tärkeää!... 3 Tiedoston luominen... 3 Kansioiden luominen datatiedostoon... 5 Pikatoimintojen luominen... 8 Odottaa vastausta allekirjoitus...
Moodle HOPS-työskentelyn tukena
Moodle HOPS-työskentelyn tukena Ohjeita alueen tilaamiseen Tilatessasi Moodle-aluetta HOPS-ryhmällesi, voit tilata täysin tyhjän alueen, jonne rakennat itse kaikki tarvittavat työkalut ja materiaalit.
(x 0 ) = lim. Derivoimissääntöjä. Oletetaan, että funktiot f ja g ovat derivoituvia ja c R on vakio. 1. Dc = 0 (vakiofunktion derivaatta) 2.
Derivaatta kuvaa funktion hetkellistä kasvunopeutta. Geometrisesti tulkittuna funktion derivaatta kohdassa x 0 on funktion kuvaajalle kohtaan x 0 piirretyn tangentin kulmakerroin. Funktio f on derivoituva
Matematiikan mestariluokka, syksy 2009 7
Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty
5. Laskutoimitukset eri lukujärjestelmissä
5. Laskutoimitukset eri lukujärjestelmissä Lukujen esitykset eri lukujärjestelmissä Muunnokset lukujärjestelmien välillä Laskutoimitukset eri lukujärjestelmissä. 5.1. Muunnokset lukujärjestelmien välillä
Kolmogorov-kompleksiteetti
Kolmogorov-kompleksiteetti Laskennan teorian opintopiiri Sebastian Björkqvist 3. helmikuuta 2014 Tiivistelmä Työssä esitetään määritelmät merkkijonon lyhimmälle kuvaukselle sekä Kolmogorov-kompleksiteetille
Kenguru 2006 sivu 1 Benjamin 6. ja 7. luokka ratkaisut
Kenguru 2006 sivu 1 3:n pisteen tehtävät 1. 3 2006 = 2005 + 2007 +?. Valitse sopiva luku?-merkin paikalle. A) 2005 B) 2006 C) 2007 D) 2008 E) 2009 2. Viereisiin kortteihin on kirjoitettu kuusi lukua. Mikä
Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)
Lukuteoria Lukuteoria on eräs vanhimmista matematiikan aloista. On sanottu, että siinä missä matematiikka on tieteiden kuningatar, on lukuteoria matematiikan kuningatar. Perehdymme seuraavassa luonnollisten
Kuntosaliharjoittelun kesto tunteina Kokonaishyöty Rajahyöty 0 0 5 1 5 10 2 15 8 3 23 6 4 29 4 5 33 -
Harjoitukset 1 Taloustieteen perusteet Ratkaisuehdotukset Kesäyliopisto 2014 1. Oheisessa taulukossa on esitettynä kuluttajan saama hyöty kuntosaliharjoittelun kestosta riippuen. a) Laske taulukon tyhjään
Diofantoksen yhtälön ratkaisut
Diofantoksen yhtälön ratkaisut Matias Mäkelä Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2017 Sisältö Johdanto 2 1 Suurin yhteinen tekijä 2 2 Eukleideen algoritmi 4 3 Diofantoksen yhtälön
3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi
3. Kongruenssit 3.1 Jakojäännös ja kongruenssi Tässä kappaleessa esitellään kokonaislukujen modulaarinen aritmetiikka (ns. kellotauluaritmetiikka), jossa luvut tyypillisesti korvataan niillä jakojäännöksillä,
Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on
Derivaatta Erilaisia lähestymistapoja: geometrinen (käyrän tangentti sekanttien raja-asentona) fysikaalinen (ajasta riippuvan funktion hetkellinen muutosnopeus) 1 / 13 Derivaatan määritelmä Määritelmä
MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ 18.3.2015 HYVÄN VASTAUKSEN PIIRTEITÄ
MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ 8..5 HYVÄN VASTAUKSEN PIIRTEITÄ Alla oleva vastausten piirteiden, sisältöjen ja pisteitysten luonnehdinta ei sido ylioppilastutkintolautakunnan arvostelua. Lopullisessa
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria 6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,...
Diskreetit rakenteet
Diskreetit rakenteet 811120P 5 op 7. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 Mikä on verkko? verkko (eli graafi) koostuu solmuista ja väleistä, jotka yhdistävät solmuja
Algoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava
11.4. Rakenteellista käsittelyä tilavuusrenderöintialgoritmeissa
11.4. Rakenteellista käsittelyä tilavuusrenderöintialgoritmeissa Tilavuusdatan katseluprosessi on käsitteellisesti yksinkertaista. Se pitää sisällään tilavuuden kierron katselusuuntaan ja sitten säteen
d Z + 17 Viimeksi muutettu
5. Diffien ja Hellmanin avaintenvaihto Miten on mahdollista välittää salatun viestin avaamiseen tarkoitettu avain Internetin kaltaisen avoimen liikennöintiväylän kautta? Kuka tahansahan voi (ainakin periaatteessa)
ESTON LASKENTA VERKOSSA
J. Virtamo 38.3141 Teleliikenneteoria / Esto verkossa 1 ESTON LASKENTA VERKOSSA Erlangin funktion E(C, a) avulla voidaan laskea esto yhdessä linkissä, jonka kapasiteetti on C (johtoa) ja johon tarjotun
Sähköstaattisen potentiaalin laskeminen
Sähköstaattisen potentiaalin laskeminen Potentiaalienegia on tuttu mekaniikan kussilta eikä se ole vieas akielämässäkään. Sen sijaan potentiaalin käsite koetaan usein vaikeaksi. On hyvä muistaa, että staattisissa
Neljän alkion kunta, solitaire-peli ja
Neljän alkion kunta, solitaire-peli ja taikaneliöt Kalle Ranto ja Petri Rosendahl Matematiikan laitos, Turun yliopisto Nykyisissä tietoliikennesovelluksissa käytetään paljon tekniikoita, jotka perustuvat
Kenguru 2012 Junior sivu 1 / 8 (lukion 1. vuosi)
Kenguru 2012 Junior sivu 1 / 8 Nimi Ryhmä Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Väärästä vastauksesta
Asukastoimikuntien lausuntojen yhteenveto käyttöarvon mukaisesta vuokrien tasauksesta
Asukastoimikuntien lausuntojen yhteenveto käyttöarvon mukaisesta vuokrien tasauksesta VAV Asunnot Oy uudistaa ARA-kiinteistöjensä vuokranmääritystä. Uudessa mallissa pääomakulujen lisäksi tasattaisiin
LUKUTEORIA johdantoa
LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon
Käyttöjärjestelmät: Virtuaalimuisti
Käyttöjärjestelmät: Virtuaalimuisti Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Muistinhallinta
2017 = = = = = = 26 1
JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 2, MALLIRATKAISUT Tehtävä 1. Sovella Eukleiden algoritmia ja (i) etsi s.y.t(2017, 753) (ii) etsi kaikki kokonaislukuratkaisut yhtälölle 405x + 141y = 12. Ratkaisu
on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään
5. Primitiivinen alkio 5.1. Täydennystä lukuteoriaan. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan kääntyvien alkioiden muodostama osajoukko Z n := {x Z n x on kääntyvä}
Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?
Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa? 2012-2013 Lasse Lensu 2 Ongelma 2: Miten tietoa voidaan (uudelleen)koodata tehokkaasti? 2012-2013 Lasse Lensu
ALKULUKUJA JA MELKEIN ALKULUKUJA
ALKULUKUJA JA MELKEIN ALKULUKUJA MINNA TUONONEN Versio: 12. heinäkuuta 2011. 1 2 MINNA TUONONEN Sisältö 1. Johdanto 3 2. Tutkielmassa tarvittavia määritelmiä ja apulauseita 4 3. Mersennen alkuluvut ja
SEITSEMÄS VAALIKAUSI (2009 2014) SYYSKUU 2009 PARLAMENTTIEN VÄLISISTÄ SUHTEISTA VASTAAVIEN VALTUUSKUNTIEN JÄRJESTÄYTYMISKOKOUKSET 1
SEITSEMÄS VAALIKAUSI (2009 2014) SYYSKUU 2009 PARLAMENTTIEN VÄLISISTÄ SUHTEISTA VASTAAVIEN VALTUUSKUNTIEN JÄRJESTÄYTYMISKOKOUKSET 1 ooo JÄRJESTÄYTYMISKOKOUKSISSA SOVELLETTAVA MENETTELY Työjärjestyksen
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut
Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa
Hakijan ohje Opetushallitus kevät 2013 Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa Tässä ohjeessa on kuvattu miten hakulomake täytetään ja lähetetään yliopistohaku.fi-palvelussa. Näytön
(d) 29 4 (mod 7) (e) ( ) 49 (mod 10) (f) (mod 9)
1. Pätevätkö seuraavat kongruenssiyhtälöt? (a) 40 13 (mod 9) (b) 211 12 (mod 2) (c) 126 46 (mod 3) Ratkaisu. (a) Kyllä, sillä 40 = 4 9+4 ja 13 = 9+4. (b) Ei, sillä 211 on pariton ja 12 parillinen. (c)
Marjan makuisia koruja rautalangasta ja helmistä -Portfolio
Marjan makuisia koruja rautalangasta ja helmistä -Portfolio Saara Lohi 2007 Suunnittelu ja tavoitteet Suunnittelun lähtökohtana oli kuva pihlajanmarjoista pajumatolla. Tavoitteena on suunnitella ja toteuttaa
Johdatus yliopistomatematiikkaan, 2. viikko (2 op)
Johdatus yliopistomatematiikkaan, 2. viikko (2 op) Jukka Kemppainen Mathematics Division Yhtälöt ja epäyhtälöt Jokainen osaa ratkaista ensimmäisen asteen yhtälön ax + by + c = 0. Millä parametrien a, b
Käyttövaltuushallintaa kehitetään (SAP IDM -projekti), hyödyt virastoille
Käyttövaltuushallintaa kehitetään (SAP IDM -projekti), hyödyt virastoille Kieku-info virastoille 9.6.2015 OPH:n monitoimitila, Helsinki Lari Nikoskelainen, ERP hankepäällikkö Esittäjän nimi 9.6.2015 kehitysprojekti
SIS. Vinkkejä Ampèren lain käyttöön laskettaessa magneettikenttiä:
Magneettikentät 2 SISÄLTÖ: Ampèren laki Menetelmän valinta Vektoripotentiaali Ampèren laki Ampèren lain avulla voidaan laskea maneettikenttiä tietyissä symmetrisissä tapauksissa, kuten Gaussin lailla laskettiin
3. Useamman kuin kahden muuttujan yhteyden kuvaus
3. Useamman kuin kahden muuttujan yhteyden kuvaus 25 a) Kolmisuuntaiset ristiintaulukot Ristiintaulukoinnin ei tarvitse mitenkään välttämättä pysähtyä aiemmin esitettyyn kaksisuuntaiseen taulukkoon; melko
Johdatus L A TEXiin. 6. Omat komennot ja lauseympäristöt Markus Harju. Matemaattiset tieteet
Johdatus L A TEXiin 6. Omat komennot ja lauseympäristöt Markus Harju Matemaattiset tieteet Omat komennot I a L A TEXin valmiiden komentojen lisäksi kirjoittaja voi itse määritellä omia komentojaan. Tämä
Luvuilla laskeminen. Esim. 1 Laske 6 21 7
Luvuilla laskeminen TI-84 Plus käyttää laskujen suorittamiseen ns. yhtälönkäsittelyjärjestelmää (EOS TM, Equation Operating System), jonka avulla lausekkeiden syöttö tapahtuu matemaattisessa kirjoitusjärjestyksessä.
Huom! (5 4 ) Luetaan viisi potenssiin neljä tai viisi neljänteen. 7.1 Potenssin määritelmä
61 7.1 Potenssin määritelmä Potenssi on lyhennetty merkintä tulolle, jossa kantaluku kerrotaan itsellään niin monta kertaa kuin eksponentti ilmaisee. - luvun toinen potenssi on nimeltään luvun neliö o
5. Julkisen avaimen salaus
Osa3: Matematiikkaa julkisen avaimen salausten taustalla 5. Julkisen avaimen salaus Public key cryptography 5. 1 Julkisen avaimen salausmenetelmät - Diffien ja Hellmannin periaate v. 1977 - RSA:n perusteet
TW- EAV510: WDS- TOIMINTO KAHDEN TW- EAV510 LAITTEEN VÄLILLÄ
TWEAV510: WDSTOIMINTO KAHDEN TWEAV510 LAITTEEN VÄLILLÄ Alla kaksi vaihtoehtoista ohjetta WDSverkon luomiseksi Ohje 1: WDSyhteys käyttää WPAsalausta. Tässä ohjeessa WDSyhteys toimii vain, kun tukiasema
ARVIOINTIPERIAATTEET
PSYKOLOGIAN YHTEISVALINNAN VALINTAKOE 2012 ARVIOINTIPERIAATTEET Copyright Helsingin yliopisto, käyttäytymistieteiden laitos, Materiaalin luvaton kopiointi kielletty. TEHTÄVÄ 1. (max. 34.5 pistettä) 1 a.i)
Luentorunko ja harjoitustehtävät. SALAUSMENETELMÄT (801346A) 4 op, 2 ov
Luentorunko ja harjoitustehtävät SALAUSMENETELMÄT (801346A) 4 op, 2 ov Keijo Väänänen I JOHDANTO Salakirjoitukset kurssilla tarkastelemme menetelmiä, jotka mahdollistavat tiedon siirtämisen tai tallentamisen
360 asteen kuvan tekeminen
360 asteen kuvan tekeminen 1. Kuvaus kopterilla Kuvaa kopterilla samasta paikasta kuvia joka suuntaan. Kuvissa pitää olla peittoa, eli jokaisessa kuvassa näkyy hieman viereisen kuvan aluetta Kuvaus kannattaa
Taloustieteen perusteet 31A00110 2016 Mallivastaukset 3, viikko 4
Taloustieteen perusteet 31A00110 2016 Mallivastaukset 3, viikko 4 1. Tarkastellaan pulloja valmistavaa yritystä, jonka päiväkohtainen tuotantofunktio on esitetty alla olevassa taulukossa. L on työntekijöiden
LUKUTEORIA A. Harjoitustehtäviä, kevät 2013. (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että
LUKUTEORIA A Harjoitustehtäviä, kevät 2013 1. Olkoot a, b, c Z, p P ja k, n Z +. (a) Osoita, että jos niin Osoita, että jos niin (c) Osoita, että jos niin (d) Osoita, että (e) Osoita, että a bc ja a c,
Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö
Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
Lupapiste-palvelua koskeva Yritystilisopimus
Lupapiste-palvelua koskeva Yritystilisopimus Solita Oy Alvar Aallon katu 5, 00100 Helsinki Åkerludinkatu 11, 33100 Tampere Kiviharjunlenkki 1 C, 90220 Oulu 1060155-5 10.02.2016 2 (5) 1. SOPIMUSOSAPUOLET
Algoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017
MAY1 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 12.4.2016 Julkaiseminen sallittu vain koulun suljetussa verkossa.
KERTAUS Lukujono KERTAUSTEHTÄVIÄ K1. Ratkaisussa annetaan esimerkit mahdollisista säännöistä. a) Jatketaan lukujonoa: 2, 4, 6, 8, 10, 12, 14, 16, Rekursiivinen sääntö on, että lukujonon ensimmäinen jäsen
Ilmoittautuminen kansalliseen, SM-, AM- tai avoimeen kilpailuun
Ilmoittautuminen kansalliseen, SM-, AM- tai avoimeen kilpailuun 1. Kirjaudu IRMAan suunnistajana. 2. Valitse kilpailukalenterista se kilpailu, johon haluat ilmoittautua ja paina Ilmoittaudu. Vain niihin
Valmistelut: Aseta kartiot numerojärjestykseen pienimmästä suurimpaan (alkeisopiskelu) tai sekalaiseen järjestykseen (pidemmälle edenneet oppilaat).
Laske kymmeneen Tavoite: Oppilaat osaavat laskea yhdestä kymmeneen ja kymmenestä yhteen. Osallistujamäärä: Vähintään 10 oppilasta kartioita, joissa on numerot yhdestä kymmeneen. (Käytä 0-numeroidun kartion
II- luento. Etiikan määritelmiä. Eettisen ajattelu ja käytänteet. 1 Etiikka on oikean ja väärän tutkimusta
II- luento Eettisen ajattelu ja käytänteet Etiikan määritelmiä 1 Etiikka on oikean ja väärän tutkimusta 2. Etiikka ei ole samaa kuin moraali, se on moraalin tutkimusta 3. Etiikka ei ole tutkimusta siitä,
2 j =
1. Modulaariaritmetiikkaa Yksinkertaisissa salausjärjestelmissä käytettävä matematiikka on paljolti lukuteoriaan pohjautuvaa suurten lukujen modulaariaritmetiikkaa (lasketaan kokonaisluvuilla modulo n).
Algoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018
Funktion raja-arvo 1/6 Sisältö ESITIEDOT: reaalifunktiot
Funktion raja-arvo 1/6 Sisältö Esimerkki funktion raja-arvosta Lauseke f() = 1 cos määrittelee reaauuttujan reaaliarvoisen funktion f, jonka lähtöjoukko muodostuu nollasta eroavista reaaliluvuista. Periaatteessa
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
Numeeriset menetelmät
Numeeriset menetelmät Luento 1 Ti 6.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 1 Ti 6.9.2011 p. 1/28 p. 1/28 Numeriikan termejä Simulointi: Reaalimaailman ilmiöiden jäljitteleminen (yleensä)