Page 1 of 2
Hjelp ved bruk av Euklids algoritme?
Posted: 18/02-2007 21:53
by luringen
Hei. Jeg prøver å gå gjennom et enkelt eksempel av RSA systemet, men sitter litt fast. Jeg skal altså regne ut verdien av d, som dere ser i eksempelet under, men vet ikke helt hvordan det går til, vidre her. I boken jeg har lest litt i står det at man finner denne verdien ved Eklids algoritme, men vet ikke helt hvordan den går eller fungerer.
Her er stykket.
[tex]5 \cdot d=1(mod(11-1)\cdot (9-1))[/tex]
[tex]5\cdot d=1(mod80)[/tex]
Det beste hadde vært om jeg kunne fått et svar med en enkel forklaring ved siden av, men det er ikke et must. En rask utregning duger også...
Si ifra hvis dere trenger å vite noe mer.. Takk for svar, er relativit viktig.
mvh luringen
Posted: 18/02-2007 22:02
by daofeishi
Siden [tex]5d \equiv 1 \pmod{80}[/tex] kan omskrives til [tex]5d + 80k= 1[/tex] og [tex]\gcd(5, 80) = 5[/tex], har ikke denne kongruensen en løsning. (5 er ikke faktor av 1.)
Posted: 18/02-2007 22:16
by luringen
Ok, jeg skjønte ikke helt.
Men kan du forklare hvorfor eksempelet i boken fungerer, og hvordan det fungerer?
[tex]7\cdot d=1(mod160)[/tex]
[tex]d=23[/tex]
Posted: 18/02-2007 22:34
by daofeishi
Hvordan du vil gripe fatt en slik oppgave avhenger av hvor god kjenskap du har til modulær aritmetikk.
En lineær kongruens [tex]ax \equiv b \ \pmod{m}[/tex] har kun løsninger dersom [tex]\gcd(a, m)[/tex] er en faktor av b. gcd(a,b) er største felles faktor til a og b. Dersom gcd(a, m) | b, har kongruensen gcd(a, m) ulike løsninger modulo m. Løsningene kan du isåfall finne ved å dele vekk felles faktor i kongruensen [tex]\frac{a}{\gcd(a, m)}x \equiv \frac{b}{\gcd(a, m)} \ \pmod{\frac{m}{\gcd(a,m)}} \ \Rightarrow cx \equiv d \ \pmod n \\ x \equiv c^{-1}d \ \pmod n[/tex]
Over til problemet ditt:
[tex]7d \equiv 1 \ \pmod {160}[/tex]
gcd(7, 160) = 1, så denne har en unik løsning modulo 160.
Du kan nå bruke "prøv og feil," eller mer sofistikerte metoder (eulers phi-funksjon) til å finne inversen til 7 modulo 160. Vi observerer at 7*23=161 = 1 (mod 160)
[tex]23\cdot7d \equiv 23\cdot 1 \ \pmod{160} \\ d \equiv 23 \pmod {160}[/tex]
gjorde dette problemet noe klarere? Hvis du heller vil løse denne som en diofantisk likning, går det også an. Spør igjen hvis det er uforståelig.
Posted: 18/02-2007 22:39
by luringen
Må nok si at dette er ganske så uforståelig. Matematikken der er egentlig langt over mitt nivå, har aldri lært om det, men har behov for løse et slikt stykke i forhold til en oppgave jeg skriver.
Jeg skal bare gå gjennom RSA-systemet med så enkelt eksempel så mulig, med lave tall. Forstår alt, helt til det kommer til det å finne denne d-verdien, men dere sier altså at det ikke går med dette stykket? Da får jeg finne nye verdier...
Posted: 18/02-2007 22:45
by luringen
Jeg så også i oppgaven min at det sto e og[tex](p-1)\cdot (q-1)[/tex] må ikke ha felles faktor. Det går vel dårlig her når e=5, og [tex](p-1)\cdot (q-1)=80[/tex]. Må prøve med nye tall da..
Og hva er forskjell når man bruker [symbol:identisk] (identisk med) og = (lik med) ?
Edit: Og hva betyr/er gcd?
begynner forresten å skjønne det

Posted: 18/02-2007 22:50
by daofeishi
Ok, da får vi ta det fra de begynnende definisjonene. Jeg regner med du har fått med deg at [tex]a \equiv b \pmod m[/tex] betyr at a - b er delelig på m, eller, ekvivalent: a = b + km, for et heltall k.
Hvis du ikke har lært modulær aritmetikk, kan du løse en kongruens [tex]ax = b \ \pmod m[/tex] som en
diofantisk likning, altså en likning der variablene er heltall.
[tex]ax \equiv b \ \pmod m[/tex] kan skrives om til:
ax = b + my, eller ax - my = b, der x og y er heltallige variable
Vi ønsker nå å finne x (og y) som tilfredsstiller dette. Fra teorien om diofantiske likninger, har likningen ax - my = b kun løsninger dersom største felles faktor av a og m, skrevet gcd(a, m), er en faktor av b.
Dersom gcd (a, m) deler b, kan vi bruke den euklidiske algoritmen til å løse problemet. Den bygger på det faktum at dersom a = um + v, er gcd(a, m) = gcd(m, v). Se om du forstår hvordan algoritmen fungerer
her. Hvis ikke, spør igjen.
Posted: 18/02-2007 22:58
by daofeishi
En litt enklere forklaring av algoritmen er muligens
http://www.cut-the-knot.org/blue/Euclid.shtml
Posted: 18/02-2007 23:03
by luringen
Takk for all hjelp. Jeg har nå kommet til et stykke som lyder slik:
[tex]8\cdot d=1(mod(19-1)\cdot (13-1))[/tex]
[tex]8\cdot d=1(mod18)\cdot (12)[/tex]
[tex]8\cdot d=1(mod216)[/tex]
Hvis du kunne regnet ut resten der, så hadde jeg vært svært taknemelig. Forståelsen kommer litt etter litt nå

Posted: 18/02-2007 23:09
by daofeishi
Vel, vi har et problem her: gcd(8, 216) = 8, og 8 er ikke en faktor av 1. Kongruensen har ingen løsning.
gcd er altså største faktor som to tall har felles. gcd(3, 6) = 3, fordi det er største faktor de deler, gcd(27, 90) = 9, siden det er største faktor de deler.
Posted: 18/02-2007 23:21
by luringen
8 er vel en faktor i 216?
Posted: 18/02-2007 23:24
by daofeishi
Det er nettopp det som er problemet. Vi ønsker i dette tilfellet at 8 IKKE skal være faktor i 216. Som skrevet ovenfor, dersom [tex]ax \equiv b \ \pmod m[/tex] skal ha en løsning, må største felles faktor til a og m være en faktor av b. [tex]8x \equiv 1 \ \pmod{216}[/tex] har bare en løsning dersom gcd(8, 216) = 8 er faktor av 1.
Posted: 18/02-2007 23:27
by luringen
Ohh
Ok, nå har jeg endret det slik:
[tex]11\cdot d=1(mod(19-1)\cdot (13-1))[/tex]
[tex]11\cdot d=1(mod(18)\cdot (12))[/tex]
[tex]11\cdot d=1(mod216)[/tex]
Jeg begynner å bli litt surrete

Er takknemlig for at du er litt tålmodig.
Posted: 18/02-2007 23:44
by luringen
[tex]11\cdot 275=3025=1(mod216)[/tex]
[tex]275\cdot11d=275\cdot 1(mod216)[/tex]
[tex]d=275(mod216)[/tex]
[tex]d=59[/tex]
Regnet jeg ut, men det ser ut som det er ganske feil... :S
Posted: 19/02-2007 00:03
by daofeishi
Neida, det stemmer helt det der!
