De wiskunde achter de Bitcoin



Vergelijkbare documenten
Elliptische krommen en digitale handtekeningen in Bitcoin

De cryptografie achter Bitcoin

Public Key Cryptography. Wieb Bosma

Cover Page. The handle holds various files of this Leiden University dissertation.

Elliptische krommen en hun topologische aspecten

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden

Hoofdstuk 1. Inleiding. Lichamen

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

slides10.pdf December 5,

Cryptografie: de wetenschap van geheimen

We beginnen met de eigenschappen van de gehele getallen.

Steunpunt TU/e-Fontys

Toepassingen van de Wiskunde in de Digitale Wereld

Rationale punten op elliptische krommen

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Cryptografie met behulp van elliptische krommen

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

Vergelijkingen van cirkels en lijnen

Bitcoin EEN D I G I TA LE MUNTEENHEID ALS A LT E R NAT IEF VO O R BESTA A NDE MUNTEN

niet: achterop een ansichtkaart schrijven postbode (en wie al niet meer) leest mee

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

RSA. F.A. Grootjen. 8 maart 2002

Tweede Toets Security 9 november 2016, , Educ-α.

Opgeloste en onopgeloste mysteries in de getaltheorie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Getaltheorie I. c = c 1 = 1 c (1)

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

Cryptografische beveiliging op het Internet

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Groepen, ringen en velden

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002

Code signing. Door: Tom Tervoort

Diophantische vergelijkingen

Rationale Punten op Elliptische Krommen

Zoek- en sorteeralgoritmen en hashing

Geldwisselprobleem van Frobenius

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Getaltheorie groep 3: Primitieve wortels

Enkele valkuilen om te vermijden

Lineaire Algebra voor ST

1 Complexe getallen in de vorm a + bi

Cover Page. The handle holds various files of this Leiden University dissertation

Datacommunicatie Cryptografie en netwerkbeveiliging

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Projectieve Vlakken en Codes

EXAMEN LINEAIRE ALGEBRA EN MEETKUNDE I

Moduliruimten van krommen en hun cohomologie

De Chinese reststelling

Zwakke sleutels voor RSA

Bijzondere kettingbreuken

Het karakteristieke polynoom

Oplossingen van vergelijkingen in rationale getallen

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde

Discrete Wiskunde 2WC15, Lente Jan Draisma

Matrices en Grafen (wi1110ee)

boek Getallen 2009, errata (8 oktober 2011)

Stelsels Vergelijkingen

Tweede Deeltoets Security 3 juli 2015, , Educatorium-Γ.

Getallen, 2e druk, extra opgaven

Over de construeerbaarheid van gehele hoeken

Tweede Toets Security Woensdag 8 november 2017, , Educ-α.

Lineaire Algebra voor ST

Vector-en matrixvergelijkingen. Figuur: Vectoren, optellen

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

Datastructuren en algoritmen voor CKI

ARITHMETIC GEOMETRY, BAS EDIXHOVEN MOTIVES: COMPUTATIONAL ASPECTS. Overzicht van de presentatie: 1. Context en relevantie van het onderzoek;

7.1 Het aantal inverteerbare restklassen

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.

Netwerken. Beveiliging Cryptografie

Schoolagenda 5e jaar, 8 wekelijkse lestijden

De wiskunde en toepassing. van de cryptologie

FACTORISATIE EN CRYPTOGRAFIE

II.3 Equivalentierelaties en quotiënten

1 Rekenen in eindige precisie

Lineaire algebra I (wiskundigen)

Snel en exact rekenen in getaltheorie en computeralgebra door middel van benaderingen

1 Kettingbreuken van rationale getallen

Concept. Inleiding. Advies. Agendapunt: 04 Bijlagen: - College Standaardisatie

Inleiding tot de Problem Solving - deel 1: Combinatoriek en getaltheorie

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

informatica. cryptografie. overzicht. hoe & wat methodes belang & toepassingen moderne cryptografie

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014

Getaltheorie II. ax + by = c, a, b, c Z (1)

E.T.G. Schlebusch. Het Hasse-principe. Bachelorscriptie, 20 juni Scriptiebegeleider: dr. R.M. van Luijk

Een korte beschrijving van de inhoud

Conflictmeetkunde, dominante termen, GGD s en = 1.

Digitale geldtransacties. Stefanie Romme Wiskunde, Bachelor Begeleider: Wieb Bosma

IMO-selectietoets III zaterdag 3 juni 2017

Lineaire afbeeldingen

Zomercursus Wiskunde. Module 4 Limieten en asymptoten van rationale functies (versie 22 augustus 2011)

Schooljaar: Leerkracht: M. Smet Leervak: Wiskunde Leerplan: D/2002/0279/048

De wortel uit min één. Jaap Top

Opgeloste en onopgeloste mysteries in de getaltheorie

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

Het benaderen van irrationale getallen door rationale. Vakantiecursus Wiskunde 2012

Transcriptie:

De wiskunde achter de Bitcoin Bas Edixhoven Universiteit Leiden NWD, Noordwijkerhout, 2015/01/31 Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 1 / 23

Een paar woorden over Bitcoin Bitcoin is een digitale munt, gebaseerd op openbronprogramma s, functionerend zonder centrale autoriteit. Alle details van hoe het werkt zijn openbaar (protocol, software). Onderwerp van deze presentatie: de wiskundige ingrediënten in Bitcoin. Dat zijn er twee: de SHA-256 hash functie. Elliptische Kromme Digitale Handtekening Algoritme (ECDSA), De hash-functie wordt veelvuldig in het Bitcoin protocol gebruikt, het is een korte vingerafdruk (uittreksel) van een bestand van willekeurige lengte. Met een handtekening bewijs je eigenaar te zijn van de Bitcoins die je uitgeeft. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 2 / 23

Referenties https://en.bitcoin.it/wiki/main_page http://en.wikipedia.org/wiki/hash_function http://en.wikipedia.org/wiki/cryptographic_hash_ function http://en.wikipedia.org/wiki/sha-2 http://en.wikipedia.org/wiki/elliptic_curve_ cryptography http://en.wikipedia.org/wiki/elliptic_curve_dsa Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 3 / 23

Globale werking van Bitcoin Alle transacties in Bitcoins worden opgeslagen in één bestand, het kasboek (ledger, block chain). Dit kasboek wordt in een peer to peer netwerk opgeslagen en bijgewerkt. Het bijwerken kost zoveel rekentijd dat er gemiddeld één keer per 10 minuten een blok bijkomt. Degene die een blok toevoegt krijgt een beloning (in Bitcoins, mining ). Gewone gebruikers hoeven alleen een app op hun smartphone te zetten om transacties uit te voeren. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 4 / 23

Enige aspecten van Bitcoin Wiskunde: SHA-256, ECDSA. Informatica: peer to peer netwerk, programmacode. Cryptologie: studie van mogelijke zwakten van het protocol. Gebruik: er zijn apps voor op de smartphone om transacties te doen. Belasting: wat vindt de belastingdienst ervan? In deze presentatie: alleen het wiskundig aspect. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 5 / 23

Cryptografische hash-functies Het zijn functies H : N {0, 1,..., 2 n 1}, n is de lengte van H. De lengte van SHA-256 is 256. Denk aan natuurlijke getallen als bit-strings (tweetallig stelsel) van willekeurige lengte. Een cryptografische hash-functie H is snel uit te rekenen en moet praktisch injectief en praktisch niet inverteerbaar zijn. Dat betekent: gegeven y in {0, 1,..., 2 n 1} is het praktisch ondoenlijk een x in N te vinden met H(x) = y, gegeven x in N is het praktisch ondoenlijk een x x in N te vinden met H(x ) = H(x), het is praktisch ondoenlijk een x en x x te vinden met H(x ) = H(x). SHA-256 is een voorbeeld: niet één collision bekend! (2 128 > 10 38.) Toepassing: integriteit van electronische bestanden. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 6 / 23

Hoe werkt SHA-256? Details: http://en.wikipedia.org/wiki/sha-2 De input-string wordt aangevuld, waarna de lengte een veelvoud van 512 is. De aangevulde input wordt in stukken van 512 = 16 32 bits gehakt. Één voor één worden de stukken verwerkt (rotate, shift, xor) tot 64 stukken van 32 bits, en weer samen met het resultaat van de voorgaande stukken samengeperst (rotate, xor, + modulo 2 32 ) tot 256 bits. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 7 / 23

Elliptische kromme digitale handtekening algoritme Terug naar René Descartes (1630). Een vlakke kromme van graad 1 De lijn gegeven door de vergelijking y = x + 1. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 8 / 23

Een vlakke kromme van graad 2 De cirkel gegeven door de vergelijking x 2 + y 2 = 1. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 9 / 23

Algebraïsche parametrisatie van de cirkel Lijnen door ( 1, 0): Tweede snijpunt: y = a (x + 1). ( ) 1 a 2 1 + a 2, 2a 1 + a 2 R cirkel, a ( ) 1 a 2 1 + a 2, 2a 1 + a 2. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 10 / 23

Elliptische krommen zijn van graad 3 Vergelijking: y 2 = (x + 1)(x 2 + 0.05). E(R) is de verzameling oplossingen (x, y) in R 2. Lijnen snijden E(R) in 1 of 3 punten... als we met multipliciteiten tellen en een punt op oneindig toevoegen. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 11 / 23

Dit is projectieve meetkunde. Parallelle lijnen snijden op de horizon. E(R) heeft één punt O op de horizon. E(R) heeft géén algebraïsche parametrisering. Maar E(R) (inclusief O) heeft een binaire operatie: E(R) E(R) E(R), (P, Q) P + Q. (Maker van het plaatje: Jean Brette.) Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 12 / 23

Groepsstructuur Deze binaire operatie maakt van E(R) een commutatieve groep. Voor alle P en Q in E(R): Q + P = P + Q. Voor alle P in E(R): P + O = P. Voor alle P is er een Q zodat: P + Q = O. Voor alle P, Q en R in E(R): P + (Q + R) = (P + Q) + R. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 13 / 23

De groepsoperatie is algebraïsch De coördinaten van P + Q zijn te krijgen uit die van P en Q d.m.v. de operaties +,,, / en de coëfficienten van de vergelijking van E. Dus we kunnen R vervangen door ieder getalsysteem met deze operaties, die aan de gebruikelijke eigenschappen voldoen: lichamen. Voorbeelden: Q (rationale getallen), C (complexe getallen), maar ook eindige lichamen. Het lichaam F 2 = {0, 1}, met rekenen met resten na deling door 2: 1 + 1 = 0, want oneven plus oneven is even. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 14 / 23

De lichamen F p Laat p een priemgetal zijn. Dan noteren we F p = {0,..., p 1}. We definiëren optelling en vermenigvuldiging op F p door dezelfde operatie in Z te doen, en vervolgens de rest te nemen na deling door p. F p F p Z F p (a, b) a + b (a + b) mod p (a, b) a b (a b) mod p. Voorbeeld: in F 13 hebben we 10 + 7 = 17 mod 13 = 4, en ook 10 7 = 70 mod 13 = 5. Deze optelling en vermenigvuldiging hebben de gebruikelijke eigenschappen, en omdat p een priemgetal is, kunnen we ook delen door elke a 0 in F p. In F 13 hebben we 1/2 = 7 (want 2 7 = 14 = 1 + 13), 1/3 = 9 (want 3 9 = 27 = 1 + 2 13), etc. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 15 / 23

Elliptische krommen over F p Voor p priem en E een elliptische kromme y 2 = x 3 + ax + b met a en b in F p is E(F p ) een eindige commutatieve groep, waarvan het aantal elementen #E(F p ) efficiënt is uit te rekenen (René Schoof, 1983). Voorbeeld: de elliptische kromme y 2 = x 3 + 7 over F 61 : E(F 61 ) = {O} Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 16 / 23

Bitcoins elliptische kromme Bitcoin gebruikt p = 2 256 2 32 2 9 2 8 2 7 2 6 2 4 1, a = 0 en b = 7. p =11579208923731619542357098500868790785 3269984665640564039457584007908834671663. Dit is secp256k1 van de Standards for Efficient Cryptography Group, een internationaal consortium opgericht in 1998 om commerciële standaarden voor efficiënte ECC te ontwikkelen. n := #E(F p ) =11579208923731619542357098500868790785 2837564279074904382605163141518161494337. Dit aantal n is ook een priemgetal, en dat is belangrijk. We hebben dus ook het eindige lichaam F n. In secp256k1 is ook een G O in E(F p ) gespecificeerd. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 17 / 23

ECDSA: Sleutelparen Laat p, E, en G als boven. Dan is de afbeelding F n E(F p ), d d G = G + + G (d termen) bijectief: voor iedere Q in E(F p ) is er precies één d in F n met d G = Q. Alice maakt een geheime sleutel door een random element d A in F n te kiezen. Haar publieke sleutel is dan het punt Q A := d A G in E(F p ). Dit kan snel worden uitgerekend: ongeveer 500 rekenstappen. Het snelst nu bekende algoritme om uit Q A weer d A te bepalen kost ongeveer 2 128 = n rekenstappen. Dat is al 30 jaar zo. Dit kost 1079028307080 jaar met een botnet van 10 9 computers van elk 10 GHz. Die aanval is gebaseerd op de birthday paradox. Het is een generiek algoritme: maakt geen gebruik van specifieke eigenschappen van elliptische krommen. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 18 / 23

Toepassing ECDSA in Bitcoin Als Bob een bedrag van x Bitcoin moet betalen aan Alice, dan maakt Bob deze x Bitcoin over naar het Bitcoinadres Q A door deze transactie naar het Bitcoin-netwerk te sturen. De transactie komt in het eerste nieuwe blok van het kasboek, zichtbaar voor Alice en Bob (en iedereen!). Als Alice deze x Bitcoins, of een deel daarvan, weer wil uitgeven heeft ze haar geheime sleutel d A nodig. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 19 / 23

ECDSA: ondertekenen Hoe ondertekent Alice een boodschap m: maak x Bitcoins over van het adres Q A naar een adres Q Z? Ze kiest een random k in F n, en berekent r en s in F n gedefinieerd door: r = f (x(k G)), waar f : F p F n, a a mod n, s = k 1 (h(m) + d A r), waar h(m) = H(H(m)) mod n, hierbij is H de hash-functie SHA-256. De handtekening is dan (r, s). Over veiligheid en betekenis van zo n handtekening straks meer. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 20 / 23

ECDSA: controle van de handtekening Voor willekeurige r, s, en k in F n {0} zijn equivalent: s = k 1 (h(m) + d A r), k = s 1 (h(m) + d A r), k G = s 1 (h(m) + d A r) G, k G = s 1 (h(m) G + r Q A ), en deze laatste gelijkheid impliceert: f (x(k G)) = f (x(s 1 (h(m) G + r Q A ))). De vraag is dus of voor het paar (r, s) van Alice r (gedefinieerd als f (x(k G))) en f (x(s 1 (h(m) G + r Q A ))) gelijk zijn. De input voor deze berekening bestaat uit publieke data. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 21 / 23

ECDSA: veiligheid Het best nu bekende algoritme om handtekeningen als boven (256 bit ECDSA) te vervalsen kost ongeveer 2 128 rekenstappen. Er is geen wiskundig bewijs dat er geen snellere aanvallen zijn. Cryptologen hebben praktische digitale handtekeningen ontwikkeld waarvan de veiligheid wel bewezen is (onder onbewezen standaard cryptografische aannames ), zelfs tegen quantumcomputers. Onder dat soort aannamen kunnen we dus vertrouwen hebben in: authenticiteit, Alice heeft ondertekend, of haar geheime sleutel is uitgelekt, integriteit, wat ze ondertekende is precies m, de boodschap is niet veranderd, onweerlegbaarheid, Alice kan haar handtekening niet ontkennen, tenzij ze haar geheime sleutel herroepen had vóór de tijd van ondertekening. Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 22 / 23

Praktijk, conclusies De gebruiker van Bitcoin heeft programma s (apps) die de nodige berekeningen doen. Omdat het openbronprogramma s zijn kunnen we de werking ervan controleren. De wiskunde in het Bitcoin protocol berust op eeuwenoude wiskundige concepten (modulo-rekenen, elliptische krommen, eindige lichamen) en stellingen op niveau van een masteropleiding in algebra, meetkunde en getaltheorie. Ook banken gebruiken ECDSA en SHA-256. Als nodig kunnen de parameters worden aangepast. Er zijn nu digitale handtekeningen waarvan veiligheid onder duidelijke aannamen is bewezen (wiskundige stellingen van cryptologen, op onderzoeksniveau). Expertise in Nederland. CWI (Cramer), RUN (Bosma, Verheul), TUe (Bernstein, Lange, Schoenmakers, de Weger), UL (Edixhoven, Lenstra, Stevenhagen). Bas Edixhoven (Universiteit Leiden) De wiskunde achter de Bitcoin NWD, 2015/01/31 23 / 23