Kryptovaluuttoista ja lohkoketjuista osa 3. Jyväskylä Henri Heinonen

Samankaltaiset tiedostot
Tietoturva P 5 op

Lohkoketjuteknologian hyödyntäminen tiedon oikeellisuuden todistamisessa. Joel Kaartinen,

Kryptovaluuttoista ja lohkoketjuista osa 2. Jyväskylä Henri Heinonen

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

18. Abstraktit tietotyypit 18.1

Kryptovaluuttoista ja lohkoketjuista osa 1. Jyväskylä Henri Heinonen

Algoritmit 1. Luento 3 Ti Timo Männikkö

Kryptovaluuttoista ja lohkoketjuista osa 4. Jyväskylä Henri Heinonen

Pretty Good Privacy eli näin kryptaat sähköpostisi

A TIETORAKENTEET JA ALGORITMIT

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

SALAUSMENETELMÄT. Osa 2. Etätehtävät

Ohje digitaalisessa muodossa olevan aineiston siirtoon ja allekirjoittamiseen vaadittavien avainten muodostamisesta

Pino S on abstrakti tietotyyppi, jolla on ainakin perusmetodit:

Algoritmit 1. Luento 4 Ke Timo Männikkö

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin


Yhteydettömän kieliopin jäsennysongelma

Algoritmit 1. Demot Timo Männikkö

DNSSec. Turvallisen internetin puolesta

Salaustekniikat. Kirja sivut: ( )

Kaikki oppaassa mainitut ohjelmat löytyvät VALO-CD:ltä: Mozilla Thunderbird, GPG ja Engimail.

Java-kielen perusteita

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

Pinoautomaatit. Pois kontekstittomuudesta

A TIETORAKENTEET JA ALGORITMIT

Tietoturvatekniikka Ursula Holmström

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Salaustekniikat. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

11/20: Konepelti auki

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Tieto- ja tallennusrakenteet

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

7.4 Sormenjälkitekniikka

Kvanttiavainjakelu (Kvantnyckeldistribution, Quantum Key Distribution, QKD)

TIETORAKENTEET JA ALGORITMIT

Yritysturvallisuuden perusteet. 11. Luento Tietotekninen turvallisuus

Tietorakenteet ja algoritmit

Digitaalinen asuntokauppa

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Sähköinen allekirjoitus ja henkilön tunnistaminen matkapuhelimella. Terveydenhuollon ATK-päivät

Tietoliikenteen perusteet

Algoritmit 1. Demot Timo Männikkö

Varmennepalvelu Yleiskuvaus Kansallisen tulorekisterin perustamishanke

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Luento 11: Tiedonsiirron turvallisuus: kryptografiaa ja salausavaimia. Syksy 2014, Tiina Niklander

Kryptologia Esitelmä

ELEC-C7241 Tietokoneverkot Multimedia, tietoturva, jne.

2. Perustietorakenteet

Salakirjoitusmenetelmiä

Luvut, RSA ja graafit

Tietoturva-kurssit: kryptografian perusteet IPSec

Bitcoinin käyttö Haaga-Helia ammattikorkeakoulun opiskelijoiden keskuudessa. Aleksi Peltola

TIEA1000: LOHKOKETJUTEKNOLO GIAT JA SOVELLUTUKSET

Abstraktit tietotyypit. TIEA341 Funktio ohjelmointi 1 Syksy 2005

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

Ylioppilaskirjoitukset tutuksi. Tervetuloa!

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

7/20: Paketti kasassa ensimmäistä kertaa

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

8. Näppäimistöltä lukeminen 8.1

Salaustekniikat. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2015

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Osa4: Julkisen avaimen salaukset: RSA ja Elliptisten käyrien salaus. Tiivistefunktiot ja HMAC, Digitaalinen allekirjoitus RSA

Lohkoketjuteknologian hyödyntäminen terveysalalla

Tekstinkäsittelyn jatko KSAO Liiketalous 1

Loogiset konnektiivit

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Harjoitus 7: NCSS - Tilastollinen analyysi

Nimittäin, koska s k x a r mod (p 1), saadaan Fermat n pienen lauseen avulla

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

4.3. Matemaattinen induktio

HALLITUSPORTAALIN SÄHKÖINEN ALLEKIRJOITUS VAIHEITTAINEN PIKAOPAS TÄMÄ OPAS ON PÄIVITETTY VERKKOVERSIOLLE 4.5 JA IOS-SOVELLUSVERSIOLLE 4.

Tietorakenteet ja algoritmit

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

5. SALAUS. Salakirjoituksen historiaa

8. Näppäimistöltä lukeminen 8.1

FiSMA PÄTEVÄN ARVIOIJAN NIMIKKEEN HAKEMUSOHJE

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

S BAB ABA A aas bba B bbs c

811120P Diskreetit rakenteet

Ohjelmoinnin peruskurssien laaja oppimäärä

Helppo ottaa käyttöön, helppo käyttää Basware Virtual Printer

Algoritmit 1. Luento 1 Ti Timo Männikkö

1. Opettaja lisää osallistujat: Opettaja poimii opiskelijat/opettajat alueelle

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?

RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

LOHKOKETJUJEN HYÖDYNTÄMINEN

13. Loogiset operaatiot 13.1

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

Bitcoin ja tietoturva

Transkriptio:

Kryptovaluuttoista ja lohkoketjuista osa 3 Jyväskylä 24.4.2018 Henri Heinonen (henri.t.heinonen@jyu.fi)

Digitaalinen allekirjoittaminen Asymmetrisen avaimen kryptografiassa käytetään avainpareja, joiden välillä vallitsee matemaattinen yhteys. Toista avainta kutsutaan yksityiseksi avaimeksi ja toista julkiseksi avaimeksi. Yksityinen avain on suuri satunnaisluku. Julkinen avain luodaan yksityisestä avaimesta esimerkiksi ellipisen käyrän matematiikan avulla. Yksityinen avain pidetään itsellä salassa, julkinen avain yleensä annetaan muille ihmisille.

Digitaalinen allekirjoittaminen Yksityisellä avaimella kryptattu viesti voidaan dekryptata julkisella avaimella. Julkisella avaimella kryptattu viesti voidaan dekryptata yksityisellä avaimella.

Digitaalinen allekirjoittaminen Miten avaimilla voi allekirjoittaa? Yleensä kryptataan julkisella avaimella, jolloin viestin vastaanottaja voi dekryptata yksityisellä avaimellaan. Digitaalisten allekirjoitusten tapauksessa, kryptataan yksityisellä avaimella, jolloin kaikki voivat dekryptata julkisella avaimella. Viesti ei pysy salassa, mutta tällä tavalla todistetaan, keneltä viesti on peräisin. https://8gwifi.org/rsafunctions.jsp

Digitaalinen allekirjoittaminen Alicella on viesti Bobille Minä, Alice, maksan 1 bitcoinin Bobille. Alice kryptaa viestin SHA256-tiivisteen yksityisellä avaimellaan. Alice lähettää viestin, kryptauksen ja julkisen avaimensa kaikkien nähtäville. Jos viestin SHA256-tiiviste ja Alicen julkisella avaimella dekryptattu kryptaus ovat samat, viesti tuli Alicelta. Vastaavalla periaatteella Bitcoin-verkon solmut hyväksyvät transaktiot.

Script-kieli Bitcoinissa on oma Script-kieli, jolla voi tehdä yksinkertaisia älysopimuksia. Oikeastaan bitcoint ovat eräänlaisia älysopimuksia. Script-kieli on Forth-kielen kaltainen, pinopohjainen, ei Turingtäydellinen kieli, joka käyttää käänteistä puolalaista notaatiota. Esimerkkejä käänteisestä puolalaisesta notaatiosta, 3+4 on 34+ 5*3+4 on 534+*

Script-kieli Pinon ideana on LIFO (Last In First Out) eli kirjapinoon lisätään (push) yleensä uusi kirja päällimmäiseksi ja päällimmäinen poimitaan (pop) yleensä ensimmäisenä pois. 2+3=5 Bitcoinin Script-kielellä: Käänteinen puolalainen notaatio: 23+5= OP-koodit: OP_2 OP_3 OP_ADD OP_5 OP_EQUAL

Ohjeet ja data, jotka Alice antaa transaktion #1 pubkeyskriptissä. OP_DUP OP_HASH160 Pk Hash OP_EQUALVERIFY CHECKSIG

Data, jonka Bob antaa transaktion #2 allekirjoitus-skriptissä.

Bobin allekirjoitusskriptin allekirjoitus lisätään (push) tyhjään pinoon (stack). Koska se on pelkkää dataa, mitään ei tehdä sille. OP_DUP OP_HASH160 Pk Hash OP_EQUALVERIFY CHECKSIG

Julkinen avain lisätään allekirjoituksen päälle. OP_DUP OP_HASH160 Pk Hash OP_EQUALVERIFY CHECKSIG

Alicen pubkey-skriptin OP_DUP-operaatio suoritetaan. OP_DUP lisää pinoon kopion datasta, joka on tällä hetkellä pinon päällä eli tässä tapauksessa tekee kopion Bobin julkisesta avaimesta. OP_DUP OP_HASH160 Pk Hash OP_EQUALVERIFY CHECKSIG OP_DUP

OP_HASH160-operaatio tiivistää syötteen kahdesti: ensin SHA- 256:llä, sitten vielä RIPEMD-160:lla. Pinossa ylimpänä ollut Bobin julkinen avain on nyt tiivistemuodossa. OP_HASH160 Pk Hash OP_EQUALVERIFY CHECKSIG

Nyt Alicen pubkey-skripti lisää pinoon pubkey-tiivisteen, jonka Bob antoi. Tämän jälkeen pinossa pitäisi olla kaksi kappaletta Bobin pubkey-tiivisteitä ylimpänä. Pk Hash OP_EQUALVERIFY CHECKSIG Pk Hash

Nyt Alicen pubkey-skripti suorittaa OP_EQUALVERIFY-opraation, joka on sama kuin OP_EQUAL-operaatio ja OP_VERIFY-operaatio suoritettuina peräkkäin. OP_EQUAL vertaa pinon kahta ylimmäistä arvoa. Se poimii tutkitut arvot pois pinosta ja korvaa ne vertailun tuloksella 0 (epätotta) tai 1 (totta). OP_VERIFY tutkii pinon ylimmäisen arvon. Jos arvo on epätotta, suoritus loppuu ja transaktion validointi epäonnistuu. Muutoin poimitaan tosi-arvo pinosta. OP_EQUALVERIFY Pk Hash Pk Hash CHECKSIG

Lopuksi Alicen pubkey-skripti suorittaa OP_CHECKSIGoperaation, joka tutkii Bobin allekirjoituksen ja Bobin julkisen avaimen. Jos tämän vertailun arvo on totta, lisätään kyseinen totuusarvo pinoon. CHECKSIG

Jos arvo Epätotta ei ole pinossa pubkey-skriptin suorittamisen jälkeen, transaktio on kelvollinen. TRUE