Affine - et krypteringssystem



Relaterede dokumenter
KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

Fortroligt dokument. Matematisk projekt

Kryptologi og RSA. Jonas Lindstrøm Jensen

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb.

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard

Projekt 7.9 Euklids algoritme, primtal og primiske tal

Matematikken bag kryptering og signering RSA

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

Matematikken bag kryptering og signering RSA

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Køreplan Matematik 1 - FORÅR 2005

Af Marc Skov Madsen PhD-studerende Aarhus Universitet

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

De 4 regnearter. (aritmetik) Navn: Klasse: Matematik Opgave Kompendium. Opgaver: 42 Ekstra: 5 Point:

Eulers sætning Matematikken bag kryptering og signering v.hj.a. RSA Et offentlig nøgle krypteringssytem

Introduktion til Kryptologi

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Opgave 1 Regning med rest

Euklids algoritme og kædebrøker

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)

Moderne kryptografi. Olav Geil Institut for Matematiske Fag Aalborg Universitet. Elektronik og IT-Gruppen 24. april 2008

Fejlkorligerende køder Fejlkorrigerende koder

APPENDIX A INTRODUKTION TIL DERIVE

Kryptologi af. Kenneth Hansen

Grundlæggende Matematik

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Integer Factorization

Michel Mandix (2014) INDHOLDSFORTEGNELSE:... 2

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal.

Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde.

3 Algebra. Faglige mål. Variable og brøker. Den distributive lov. Potenser og rødder

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

Grundlæggende Matematik

TRIX. Træningshæfte 2 FACITLISTE. Side 1. Side 2 Side 3. FACIT, side 1-3 Trix, Træningshæfte 2 Alinea. Byg og tegn

S TUDIER ETNINGSP ROJEKT

How to do in rows and columns 8

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen

Oprids over grundforløbet i matematik

Unityskolen Årsplan for Matematik Team 2 (3.-4. klasse)

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

fortsætte høj retning mellem mindre over større

Perspektiverende Datalogi 2014 Uge 39 Kryptologi

4. Snittets kædebrøksfremstilling og dets konvergenter

Formler & algebra - Fase 2 Omskriv & beregn med variable

Fejlkorligerende køder Fejlkorrigerende koder

Matematik B Klasse 1.4 Hjemmeopaver

Hvad er KRYPTERING? Metoder Der findes to forskellige krypteringsmetoder: Symmetrisk og asymmetrisk (offentlig-nøgle) kryptering.

Camp om Kryptering. Datasikkerhed, RSA kryptering og faktorisering. Rasmus Lauritsen. August 27,

De rigtige reelle tal

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe.

En uægte brøk er en brøk der stadig kan forkortes ned til et blandet tal og som er større end Eksempel: Uægte brøk: 12

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

Brug af Word til matematik

Matematik i Word. En manual til elever og andet godtfolk. Indhold med hurtig-links. Kom godt i gang med Word Matematik. At regne i Word Matematik

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER

ÅRSPLAN MATEMATIK 5.KLASSE

Regning. Mike Vandal Auerbach ( 7) 4x 2 y 2xy 5. 2x + 4 = 3. (x + 3)(2x 1) = 0. (a + b)(a b) a 2 + b 2 2ab.

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, august 2013, Kirsten Rosenkilde.

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel by bernitt-matematik.dk

Mattip om. Division 1. Tilhørende kopier: Division 1, 2 og 3. Du skal lære om: De vigtigste begreber. Dividend og divisor.

ALMINDELIGT ANVENDTE FUNKTIONER

Mini AT-forløb om kommunalvalg: Mandatfordeling og Retfærdighed 1.x og 1.y 2009 ved Ringsted Gymnasium MANDATFORDELING

Note om endelige legemer

Spilstrategier. 1 Vindermængde og tabermængde

RSA-KRYPTERING. Studieretningsprojekt. Blerim Cazimi. Frederiksberg Tekniske Gymnasium. Matematik A. Vejleder: Jonas Kromann Olden

Elementær Matematik. Tal og Algebra

Forord 3 Strukturen i denne bog 6

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler.

Projekt 0.6 RSA kryptering

3. Om skalamønstrene og den indfoldede orden

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Fredag 12. januar David Pisinger

Kapitel 2 Tal og variable

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

Kryptografi Anvendt Matematik

Grundlæggende matematiske begreber del 2 Algebraiske udtryk Ligninger Løsning af ligninger med én variabel

Leg med Brikker & Brokker. Et system til undervisning i brøkregning

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014

1.semester: IT-færdigheder

SÅDAN BRUGER DU REGNEARK INTRODUKTION

Indhold. Kontrol af resultater, skrivemåder osv.

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

Årsplan for Matematik Lillemellem Skoleåret 2017/2018. Emne Materialer Evaluering

Decimaltal, brøker og procent Negative tal Potens, rødder og pi Reelle og irrationale tal

Uge Emne Formål Faglige mål Evaluering

Indhold. Indledning 7 Læsevejledning 9

Matematik. Grundforløbet. Mike Auerbach (2) Q 1. y 2. y 1 (1) x 1 x 2

FAGLIG REGNING Pharmakon, farmakonomuddannelsen september 2007

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

Vejledning til Excel 2010

En forståelsesramme for de reelle tal med kompositioner.

Mujtaba og Farid Integralregning

Mat C HF basisforløb-intro side 1. Kapitel 1. Fortegnsregler og udregningsrækkefølger

Kompendium i faget. Matematik. Tømrerafdelingen. 2. Hovedforløb. Y = ax 2 + bx + c. (x,y) Svendborg Erhvervsskole Tømrerafdelingen Niels Mark Aagaard

Omskrivningsregler. Frank Nasser. 10. december 2011

MAteMAtIk FoR LæReRStUDeReNDe. tal, algebra og funktioner klasse

MM05 - Kogt ned. kokken. Jacob Aae Mikkelsen. 23. januar 2007

Transkript:

Affine - et krypteringssystem Matematik, når det er bedst

Det Affine Krypteringssystem (Affine Cipher) Det Affine Krypteringssystem er en symmetrisk monoalfabetisk substitutionskode, der er baseret på en matematisk udregning. Symmetrisk betyder i denne sammenhæng, at det er den samme kodenøgle/kodeord, der bruges ved såvel enkryptering (klartekst til kryptotekst) som dekryptering (kryptotekst til klartekst). Monoalfabetisk betyder, at kodesystemet benytter ét kodealfabet (fx alle E er bliver til K er osv.). Substitution betyder udskiftning. Bogstaverne i klarteksten erstattes med andre symboler (bogstaver, tal eller lignende) i kryptoteksten. Matematikken i Affine modulær aritmetik. Krypteringsalgoritmen benytter sig af modulær aritmetik, - også kaldet for ur-aritmetik. I den modulære aritmetik betragtes en gruppe tal opstillet i en rundkreds (som tallene på en urskive) På figuren her til højre er vist en ur-skive beregnet til aritmetik modulo 6 (forkortet: mod 6). Addition Hvis vi ønsker at beregne 4 + 5 (mod 6) benyttes følgende fremgangsmåde: Vi starter på 4 og flytter derefter 5 pladser rundt på ur-skiven i urets normale omløbsretning (højre om), derved ender vi på 3. 3 er altså resultatet af 4 + 5 (mod 6), hvilket skrives: Subtraktion 4 + 5 = 3 (mod 6) Hvis vi ønsker at beregne 5-3 (mod 6) benyttes følgende fremgangsmåde: Vi starter på 5 og flytter derefter 3 pladser rundt på ur-skiven modsat urets normale omløbsretning (venstre om), derved ender vi på 2. regnestykket kan skrives således: 5-3 = 2 (mod 6) Fortsættes næste side 2

Fortsat fra forrige side Hvis vi i stedet ønsker at beregne 3-5 (mod 6) benyttes følgende fremgangsmåde: Vi starter på 3 og flytter derefter 5 pladser rundt på ur-skiven modsat urets normale omløbsretning (venstre om), derved ender vi på 4. Regnestykket kan skrives således: 3-5 = 4 (mod 6) Vi kunne også have valgt at foretage udregningen på almindelig vis først og derefter omsat det til modulo 6 ved at starte på 0 og tælle baglæns: Først den almindelige beregning: 3 5 = -2 Hvilket betyder, at vi skal starte på 0 og tælle 2 pladser baglæns (venstre om i negativ retning ) 3-5 = 4 (mod 6) Der er altså ingen negative tal i den modulære aritmetik. Multiplikation Hvis vi skal beregne 4 x 5, starter vi på 0 og tæller 4 frem 5 gange, hvor vi fortsætter derfra, hvor vi havnede derved ender vi i dette eksempel på 2, der således er resultatet af vores multiplikation: 4 x 5 = 2 (mod 6) Nu kan det være lidt besværlig at skulle tegne ur-skiver hver gang, man skal foretage en sådan beregning, - i stedet anvendes en heltalsdivisionsmetode, hvor det er divisionsresten, der er resultatet. Først foretages multiplikationen på normal vis, dernæst divideres med værdien for den modulo, vi arbejder med (i dette tilfælde 6) og divisionsresten er således resultatet. 4 x 5 = 20 20:6 = 3 rest 2 4 x 5 = 2 (mod 6) Der er ikke let at foretage division i den modulære aritmetik (søg info på Internettet). 3

Enkryptering i Affine. Den matematiske algoritme (formel), der benyttes ved enkryptering, ser således ud: C ( a P b) mod m P (Plaintext) er talværdien for det bogstav fra klarteksten, der skal enkrypteres (se bilag 1). C (Ciphertext) er talværdi for det tilsvarende bogstav i kryptotekst efter anvendelse af algoritmen (se bilag 1). a er en multiplikationsfaktor o a skal antage én af følgende værdier (hvis m = 26): 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 b er en konstant (heltal), der kan antage alle værdier i intervallet 0 < b < m. m er antallet af bogstaver i alfabetet. Betingelser: Bogstaverne tildeles en talværdi (se bilag 1). a og b skal være mindre end m. a og m skal være indbyrdes primiske (se bilag 2). Med hensyn til m, så anbefales det generelt, at man benytter det engelske alfabet, da det danske alfabet jo indeholder tre særlige bogstaver (æ, ø og å), hvilket vil give en nysgerrig kryptoanalytiker et tydeligt signal om, at sproget er dansk, hvilket kan være ham en stor hjælp i kampen mod koden (og det ønsker vi ikke), - i stedet kan de forbudte bogstaver erstattes med: ae(æ), oe(ø) og aa(å). Se eksempel på anvendelse på næste side 4

Eksempel på enkryptering (af et enkelt bogstav): Vi tænker os det eksempel, at afsender og modtager har aftalt, at a = 9, b = 17 og det engelske alfabet benyttes (m = 26). Vi ønsker at enkryptere (klartekst)bogstavet d (d har værdien 3): C C C C C ( a P b)mod m (9 P 17) mod 26 (9 3 17) mod 26 (44) mod 26 ( se 18 side 3) Værdien 18 svarer til (krypto)bogstavet s. Afsenderen kan nu sende (krypto)bogstavet s til modtageren. Det store spørgsmål er nu, om modtageren kan dekryptere den hemmelige besked??? Dekryptering i Affine Den matematiske algoritme (formel), der benyttes ved dekryptering, ser således ud: P ( 1 a ( C b)) mod m C er talværdien for det kryptobogstav, der skal dekrypteres P er talværdien for det tilsvarende klartekstbogstav a -1 er den multiplikative inverse af a b er den aftalte konstant m er antallet af bogstaver i alfabetet Vedrørende a -1 I den modulære aritmetik er den multiplikative inverse til a (benævnt a -1 ) lig med det tal y, hvor om der gælder følgende: a 1 y hvis ( y a)mod m y og m skal være indbyrdes primiske (se bilag 2). Den multiplikative inverse kaldes også den reciprokke værdi. 1 Fortsættes på næste side 5

Beregningen af z (eller a -1 ) Første betingelse er, at a og m (hvor m er antallet af bogstaver i det anvendte klartekstalfabet) er indbyrdes primiske (se bilag 2), - i vores tilfælde giver det nedenstående værdier for a. Beregningen af y (eller a -1 ) er noget mere langhåret end blot at trykke på knappen på din lommeregner(se bilag 3). Nedenstående tabel viser a og den tilsvarende a -1 (for m = 26): a 1 3 5 7 9 11 15 17 19 21 23 25 a -1 1 9-5 -11 3-7 7-3 11 5-9 -1 Eksempel på dekryptering i Affine Modtageren af (krypto)bogstavet s, der svarer til værdien 18, - jf. eksempel på forrige side, ønsker nu at dekryptere beskeden. Værdien for a -1 (for a = 9) kan aflæses i ovenstående skema til 3. P P P P ( a 1 ( C (3 (18 3 mod 26 3 b))mod m 17)mod 26 Værdien 3 svarer til (klartekst)bogstavet d. Modtageren har således dekrypteret kryptoteksten og kan således læse beskeden fra afsenderen. 6

Links Herunder er medtaget et link til en webside, hvor du kan prøve Affine krypteringssystemet uden, at du selv skal foretage en eneste beregning (nemmere kan det da ikke være, vel?). http://www.math.temple.edu/~renault/cryptology/affine.html Brug eventuelt websitet til at dekryptere følgende meddelelse: (a = 11, b = 4) EHHORWWJUVWFOKKWUEEUFEWJKUCGGERUKQVVWFJCLWRKERPJILWUGWLFJELOF OCRWVHJWKBWRUEREVIUW 7

Bilag 1 Tabel over bogstavernes talværdi. A 0 H 7 O 14 V 21 B 1 I 8 P 15 W 22 C 2 J 9 Q 16 X 23 D 3 K 10 R 17 Y 24 E 4 L 11 S 18 Z 25 F 5 M 12 T 19 G 6 N 13 U 20 8

Bilag 2 Indbyrdes primisk I talteorien siges to heltal a og b at være indbyrdes primiske, hvis deres største fælles divisor (SFD) er 1. Den største fælles divisor for to positive heltal er det største heltal, der går op i begge tal (giver 0 i divisionsrest). En hurtig metode til at bestemme om to tal er indbydes primiske er givet ved Euklids algoritme. Euklids algoritme (Euklid, græsk matematiker ca. 325-265 f. Kr.) Euklids Algoritme beregner den største fælles divisor af to positive heltal, a og b. Lad a,b Z (mængden af de hele tal) hvor b 0 da findes entydigt to tal q,r Z så: a er dividenden b er divisoren q er kvotienten r er divisionsresten a qb r og 0 Eksempler på anvendelse af Euklids algoritme til beregning af den største fælles divisor for to tal: r d SFD(128,12): a : b q rest r 128 : 12 10 rest 12 : 8 1 rest 4 8 : 4 2 rest 0 8 Største fælles divisor for 128 og 12 er altså 4. SFD(26,9): a : b 26 : 9 9 : 8 8 : 1 q rest r 2 rest 8 1 8 rest 1 rest 0 Største fælles divisor for 26 og 9 er altså 1, - dermed er de indbyrdes primiske. 9

Bilag 3 Beregning af den multiplikative inverse Der findes flere metoder til at beregne den multiplikative inverse til et tal indenfor den modulære aritmetik, - nogle er mere langhårede end andre. I dette dokument benyttes en tabel-metode, der formodentlig er den mest simple at udføre med papir og blyant. Den benytter en udvidet variant af Euklids algoritme, - herunder tilpasset benævnelserne i dette dokument: mx Når resultatet af ligningen giver 1, er x den multiplikative inverse til m modulo a Når resultatet af ligningen giver 1, er y den multiplikative inverse til a modulo m Vi ønsker fx at finde den multiplikative inverse til a = 7 (m = 26, da vi anvender det engelske alfabet), - dette giver os: ay 26x 7y Vi opstiller nu en tabel med tre kolonner, - indeholdende henholdsvis værdier for x, y og resultatet af ligningen (højre side af ovenstående ligning). For at komme i gang med beregningen af den multiplikative inverse udfyldes (og beregnes) de første to rækker i tabellen dom følger: Værdien for x i første række sættes til 1 og værdien for y til 0, - resultatet af ligningen bliver således 26 (m). 26x 7y (26 I anden række sættes værdien for x til 0 og værdien for y til 1, - i dette tilfælde giver resultatet af ligningen 7 (a). 26x 7y (26 1) 0) 1 1 (7 (7 0) 1) 26 7 Vi kan nu begynde vores beregning af den multiplikative inverse til a (den vi kalder for a -1 ). Når de indsatte værdier for x og y i ligningen giver resultatet 1, har vi fundet de multiplikative. 10

Beregning af den multiplikative inverse (fortsat) Først udfyldes højre kolonne med resultatet ved en modulo beregning mellem de to ovenstående værdier. For eksempel fremkommer 5 (lige under 7) som resultatet ved udregningen 26 mod 7 og så videre Dernæst beregnes de manglende værdier i tabellen: Et tal i tabellens venstre og midterste kolonne beregnes som det tal, der står to pladser over hvorfra man subtraherer tallet lige over multipliceret med kvotienten fra division mellem de to tal, der har givet den pågældende rækkes værdi i højre kolonne (forvirret?) Eksempel (beregning af -3): 0 ** (3 * 1 ) Tallet 3, som vi multiplicerer 1 * med, fremkommer som kvotienten ved division af 26 (m) med 7 (a): Og så videre 3 26:7 = 3 rest 5 Af skemaet ses nu (hvor højre kolonne har værdien 1) at den multiplikative inverse til a mod m er -11 (i y kolonnen). Det fremgår samtidig af skemaet, at den multiplikative inverse til m mod a er 3, men denne oplysning skal vi ikke bruge. Det var da ikke så slemt, - vel? 11

Bilag 4 Excel og modulær aritmetik Excel kan bruges til at foretage modulo beregninger. Den funktion, du skal anvende hedder REST(tal;divisor), - herunder er vist et hurtigt eksempel på syntaksen i funktionen. Feltet C5 indeholder selve funktionen REST og der er angivet en enkelt betingelse (=HVIS(B5>0; )). Denne betingelse medfører, at divisorfeltet (B5) skal indeholde et tal større end 0, før at udregningen foretages (hvis denne lille betingelse ikke medtages, vil Excel i feltet C5 returnere fejlkoden #DIVISION/0!). 12

Bilag 5 Generelt for de fleste krypto-systemer Normalt vil det være en god idé, hvis man ikke anvender mellemrum mellem ordene i klarteksten ved enkryptering, da mellemrummene tydeligt afslører de forskellige ords længde, - noget der vil hjælpe kryptoanalytikeren, der prøver at bryde koden. Man kan eventuelt erstatte mellemrummene med et bestemt bogstav (for eksempel X), eller fjerne mellemrummene helt. Nogle krypteringssystemer deler kryptoteksten op i blokke af et bestemt antal karakter (fx 5: HDUKH KDIYE HDSYT NBDGA ), hvilket er med til at sløre antallet af ord i beskeden, hvis antal karakter i beskeden ikke er delelig med antallet af karakter i blokkene, indsættes det manglende antal som dummy bogstaver i slutningen af klarteksten inden enkryptering. Der anvendes sædvanligvis ikke tegnsætning i beskederne og ofte skrives tal med bogstaver (21 enogtyve). Det anbefales generelt, at man benytter det engelske alfabet, da det danske alfabet jo indeholder tre særlige bogstaver (æ, ø og å), hvilket vil give en nysgerrig kryptoanalytiker et tydeligt fingerpeg om, at sproget i koden er dansk. At kende sproget, der er brugt i den krypterede besked, kan være en stor hjælp i kampen mod koden, - hvilket vi ikke er interesseret i. De forbudte bogstaver kan erstattes med: ae(æ), oe(ø) og aa(å). 13