Matematikken bag kryptering og signering NemID RSA Foredrag i UNF
Disposition 1 PKI - Public Key Infrastructure Symmetrisk kryptografi Asymmetrisk kryptografi 2 Regning med rester Indbyrdes primiske tal Modulo - regning med rester Euler-Fermats sætning 3 Kryptering og signering ved hjælp af et offentligt nøgle kryptosystem RSA 4 Elliptiske kurver - ElGamal PKI
Oversigt 1 PKI - Public Key Infrastructure Symmetrisk kryptografi Asymmetrisk kryptografi 2 Regning med rester Indbyrdes primiske tal Modulo - regning med rester Euler-Fermats sætning 3 Kryptering og signering ved hjælp af et offentligt nøgle kryptosystem RSA 4 Elliptiske kurver - ElGamal PKI
Public Key Infrastructure (PKI) Public Key Infrastructure (PKI) er en teknologi, der gør det muligt for to parter at identificere sig entydigt over for hinanden. Begge parter skal have sikkerhed for: at den anden part er entydigt identificeret at meddelelsen kommer fra den, der påstår at have sendt den at meddelelsen ikke er blevet ændret eller læst undervejs NemID er baseret på PKI.
Symmetrisk kryptografi - Cæsar Kryptografiske teknikker er anvendt siden det antikke Ægypten og af Julius Cæsars regime (Julius Cæser omkom ved et attentat 15. marts 44 f. Kr.) Cæsars navn er endda knyttet til en krypteringsmetode, hvor man blot forskyder alfabetets bogstaver 3 pladser henholdsvis frem (ved kryptering) og tilbage (ved dekryptering) Der er symmetri mellem krypterings- og dekrypteringsmetode
Symmetrisk kryptografi - styrke og svaghed Oprindelig kendte man blot symmetrisk kryptografi, hvor de to partnere, der skulle kommunikere, delte en fælles hemmelig krypteringsnøgle, der blev anvendt ved både kryptering og dekryptering. Symmetriske krypteringssystemer anvendes stadig i stor udstrækning, de er hurtige; men lider af en stor praktisk svaghed, nemlig kravet til sikker udveksling af den fælles hemmelige nøgle.
Asymmetrisk kryptografi Det var et gennembrud, at man indså, at man kan lave hemmelig kommunikation, selvom transmissionen overvåges omhyggeligt, og selvom der ikke forinden var udvekslet en fælles hemmelig nøgle Denne ved første tanke helt umulige opgave løses ved asymmetrisk kryptografi et begreb, der opbygges omkring ikke blot en nøgle; men et nøglepar
Nøglepar Kunsten er, at lave et nøglepar. Den ene nøgle er offentlig (public key) og udveksles i fuld offentlighed Den anden nøgle er privat (private key), og den skal ikke udveksles De to nøgler i parret har asymmetriske funktioner: Låses der med en nøgle, kan den anden nøgle (og kun den) låse op og vise versa Det skal være umuligt/vanskeligt at konstruere den ene nøgle ud fra den anden
Hemmelig kommunikation i PKI Hemmelig kommunikation foretages ved, at afsender låser dokumentet med den offentlige nøgle i modtagerens nøglepar. Modtageren kan nu låse dokumentet op ved at anvende sin modsvarende private (hemmelige) nøgle i sit nøglepar. Han og kun han kan låse dokumentet op, for blot modtageren besidder den hemmelige nøgle i nøgleparret, der matcher den offentlige nøgle.
Digital underskift i PKI - signering Digital underskrift - signering af et dokument laves, ved at afsender låser dokumentet med sin private (hemmelige) nøgle Enhver kan nu låse dokumentet op med afsenders offentlige nøgle og derved overbevise sig om, at afsender besidder den tilsvarende hemmelige nøgle og dermed er den, han udgiver sig for Forudsætter, at nøgleparret er udstedt af en troværdig autoritet
PKI historie Offentlig-nøgle-kryptering (PKI) blev opfundet i 1969 af Ellis, Williamson og Cocks, der arbejdede ved British Government Communications Headquarters. Deres opfindelser blev imidlertid hemmeligholdt af den britiske regering indtil 1997 I mellemtiden blev offentlig-nøgle-kryptering (PKI) genopfundet af Adleman samt Diffie, Rivest og Shamir, der i 1978 skabte offentlig-nøgle-kryptosystemet RSA
PKI - RSA Kunsten ved at lave et offentlig-nøgle-kryptosystem er altså at give en metode til at konstruere nøglepar, således at kendskab til den offentlige nøgle ikke gør det muligt at bestemme den tilhørende private (hemmelige) nøgle. RSA-kryptosystemet er en sådan metode, hvor sikkerheden hviler på den erfaring, at det er umuligt effektivt at faktorisere et helt tal i et produkt af primtal.
Oversigt 1 PKI - Public Key Infrastructure Symmetrisk kryptografi Asymmetrisk kryptografi 2 Regning med rester Indbyrdes primiske tal Modulo - regning med rester Euler-Fermats sætning 3 Kryptering og signering ved hjælp af et offentligt nøgle kryptosystem RSA 4 Elliptiske kurver - ElGamal PKI
Indbyrdes primiske hele tal Definition To hele tal m, n kaldes indbyrdes primiske, hvis de ingen fælles divisorer har, når vi ser bort fra 1 og -1. Med φ(m) betegner vi antallet af positive hele tal mindre end m, der er indbyrdes primiske med m (Euler s φ-funktion). Opgave Vis, at φ(12) = 4 Lad p, q være forskellige primtal. Vis at φ(p) = p 1, φ(pq) = (p 1)(q 1).
Euler s φ-funktion er tidskrævende at beregne I opgaven har vi set, at det et let at bestemme φ(n), hvis vi kender faktoriseringen af n i 2 primfaktorer. Kendes faktorisering af n ikke, er det imidlertid MEGET tidskrævende af bestemme φ(n). Har n for eksempel 100 cifre vil det, at forsøge sig frem med et tal 1, 2, 3,..., n ad gangen tage 10 100 10 12 sekunder 10 61 år på en maskine, der i 1 sekund kan foretage 10 12 (en million million) undersøgelser af om et tal er primisk med n. (Universets alder anslås til 15 10 12 år). Det er det store tidsforbrug, der fordres til bestemmelse af φ(n), der er sikkerheden i RSA-kryptosystemet, som vi vender tilbage til senere.
Modulo - regning med rester Gauss indførte en notation, som letter omgangen med heltalsdivision med rest. Definition Givet hele tal a, b og m > 0. Vi siger, at a er kongruent med b modulo m og skriver a b mod m hvis a og b har samme rest ved division med m, altså hvis m går op i forskellen a b. Når m fremgår af sammenhængen, skriver vi blot a b. Eks. 19 7 mod 12, 1 1 mod 2 og 3 2 1 mod 5.
Regneregler Lemma Lad m > 0 være givet. Hvis a 1 b 1 og a 2 b 2, så er a 1 + a 2 b 1 + b 2, a 1 a 2 b 1 b 2
Euler-Fermat Sætning Antag at k, m er indbyrdes primiske. Så er k φ(m) 1 mod m.
Opgave Eftervis, at k φ(12) 1 mod 12. for alle k, der er primiske med 12.
Oversigt 1 PKI - Public Key Infrastructure Symmetrisk kryptografi Asymmetrisk kryptografi 2 Regning med rester Indbyrdes primiske tal Modulo - regning med rester Euler-Fermats sætning 3 Kryptering og signering ved hjælp af et offentligt nøgle kryptosystem RSA 4 Elliptiske kurver - ElGamal PKI
Kryptering og signering - nøglepar En person A, der ønsker at lave et kryptosystem med henblik på modtagelse gør følgende: vælger 2 store primtal p, q og beregner n = pq beregner φ(n), hvilket er let for A; men tidskrævende for andre, der blot kender n og ikke p, q vælger et e > 0 primisk med φ(n) beregner positivt f (og negativt g), så 1 = ef + φ(n)g (Euklids algoritme) offentligør n, e - det er den offentlige nøgle Krypteringssystemet har n, e er som offentlig nøgle og φ(n) og f som hemmelig nøgle.
Kryptering En vilkårlig person B ønsker at sende tallet k > 0 til personen A. B indkoder tallet k ved brug af den offentlige nøgle n, e - nemlig ved at beregne og sende: h k e mod n
Dekryptering Personen A modtager h og beregner ved hjælp af sin hemmelige viden om φ(n) og f h f (k e ) f k ef k 1 φ(n)g k (k φ(n) ) g k mod n ifølge sætningen Euler-Fermat.
Opgave Lad p = 89 og q = 97. Bestem n og φ(n). Lad e=71. Bestem f > 0 og g så 1 = ef + φ(n)g Indkod k = 3 ved at beregne h = 3 e og dekrypter ved at beregne (3 e ) f.
RSA praksis og NemID Effektiv konstruktion af mange par af store primtal er central for en praktisk udrulning af RSA-kryptosystemet i stor skala. Firmaet Cryptomathic har eksempelvis et produkt Cardink, http://www.cryptomathic.dk/products/emv/cardink, hvorom de skriver: 1 CardInk is very scalable and is currently running in a live production environment generating data for 180 000 cards per hour 2 CardInk is used by more than 100 customers across the globe to issue +200 million EMV cards annually. Our customers include prominent issuers and service providers such as Arab National Bank, First Data, Credit Agricole. Bag NemID anvendes RSA-nøglepar med mindst 1024 bits, altså med over 300 decimale cifre. Dit nøglepar ligger på en central server, som du kommunikerer med via dit NemID kort.
Oversigt 1 PKI - Public Key Infrastructure Symmetrisk kryptografi Asymmetrisk kryptografi 2 Regning med rester Indbyrdes primiske tal Modulo - regning med rester Euler-Fermats sætning 3 Kryptering og signering ved hjælp af et offentligt nøgle kryptosystem RSA 4 Elliptiske kurver - ElGamal PKI
Elliptiske kurver Elliptiske kurver er en speciel klasse af kurver E, hvor det er muligt at addere punkter (meget lig, hvordan vi adderer tal): P, Q E P + Q E og dermed addere et punkt med sig et helt antal gange n: P E np = n { }} { P + + P E
ElGamal 1 Hemmelig nøgle: et tal s 2 Offentlig nøgle: et punkt P E og punktet B = sp E. 3 Sikkerhed beror på, at man ikke kan bestemme s (den hemmelige nøgle) udfra kendskab til P og B (den offentlige nøgle)
ElGamal 1 Vil sende beskeden M E 2 Vælger et tilfældigt tal k og krypterer ved hjælp af den offentlige nøgle P, B som sendes. M 1 = kp, M 2 = M + kb 3 Modtageren beregner ved hjælp af den hemmelige nøgle s: {}}{ M 2 sm 1 = (M + kb) s(kp) = M + kb k( sp ) = M og har dermed dekrypteret. B
Elliptiske kurver og digitale frimærker
Information : Tal og mængder, Aarhus Universitetsforlag, 2012 Adr.:, Ny Munkegade, 8000 Aarhus, DENMARK e-mail: matjph@imf.au.dk Phone: (+45) 2899 2449 homepage: http://home.imf.au.dk/matjph/ homepage: http://pure.au.dk/portal/da/matjph@imf.au.dk