Avatar billede walker Nybegynder
23. juni 2003 - 23:57 Der er 11 kommentarer og
2 løsninger

RSA krypterings algoritme

Hej
Jeg er lige ved at sætte mig lidt ind i RSA krypterings algoritmen, men der er en enkelt matematisk formel, jeg ikke fatter...
ok, for at finde en privat og en public nøgle skal man vis gøre følgende:

p & q skal være høje primtal.
n = p * q
f(n) = (p-1) * (q-1)
man vælger et 'e' som er : 0 < e < f(n) og sfd(e,f(n)) = 1^3
(sfd er største fælled devisor)

det er så her problemet opstår...
ed = 1 ( mod f(n) )

Den ligning fatter jeg ikke... hvordan tager man modulus af et tal og ganger det med 1 ?? modulus er vel resten af divisionen, og der bør vel være et tal at dividere med??

Aner ikke om nogen fatter hvad jeg skriver, for jeg gør knapt nok... lol

mvh
Walker
Avatar billede walker Nybegynder
24. juni 2003 - 00:00 #1
ps. Har lige en beregning med specifikke tal:
p = 5, q = 11
n = p * q => n = 55
f(n) = (p-1) * (q-1) => f(n) = 40
e vælges til 7... e = 7

nu skal jeg så find d....

ed = 1(mod f(n)) => 7d = 1 (mod f(n)) => d = 23
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hvordan hænger det sammen??
Avatar billede ellebaek Nybegynder
24. juni 2003 - 00:13 #2
jeg skrev projekt om denne algoritme sidste år....

d = e^-1 mod f(n)
Avatar billede ellebaek Nybegynder
24. juni 2003 - 00:18 #3
altså når du har:

de = 1 mod f(n) <=>
d = (1 mod f(n))/e

1/e = e^(-1)
altså:

d= e^(-1) mod f(n)
Avatar billede walker Nybegynder
24. juni 2003 - 10:13 #4
okay... jeg forstår ikke heeeelt endnu...
mener du at: e^-1 mod f(n), for det kan jeg ikke helt få til at passe... mit problem er modulus, som jo skal have 2 tal...

mener du at d = resten af divisionen e^-1 / f(n) ??
for med eks. ovenfor hvor e = 7, så er det: 7^-1 mod 40... 7^-1 giver 0,14xxxx, og o,14 mod 40 giver ikke 23, som påstået ovenfor...
Avatar billede ellebaek Nybegynder
24. juni 2003 - 20:17 #5
Ok....

Jeg læste lige lidt mere på det...

Du kan frit vælge d, så længe gcd(d,f(n)) = 1
Der er et eksempel på denne side der indeholder info om RSA...
http://www.cs.aue.auc.dk/~legind/ALG%20E2002/ALG-14/ALG-14%20RSA.pdf
Avatar billede ellebaek Nybegynder
24. juni 2003 - 20:18 #6
altså gcd(23,40) = 1
Avatar billede nielle Nybegynder
24. juni 2003 - 20:38 #7
Formlen:

e*d = 1 (mod f(n))

- er matematiker jargon og må ikke forveksles med programmerings-sprog (hvor "mod" jo netop kræver 2 tal).

Formlen betyder kort sagt at "hvis man dividere tallet e*d med tallet f(n) så vil man få resten 1".

I programmeringssprog tager "mod" som sagt 2 tal, dividere det ene med det andet, og giver så resten: 11 mod 3 giver f.eks. 2.

Hvis formlen skulle oversættes til programmeringssammenhæng, ville den derfor i stedet hedde:

e*d mod f(n) = 1

(eller e*d % f(n) = 1 hvis det er i C++)
Avatar billede walker Nybegynder
24. juni 2003 - 20:52 #8
Takker maaange gange :)
Avatar billede nielle Nybegynder
24. juni 2003 - 21:23 #9
Jeg må lige poientere at ellebaek's kommentar (00:18:07) er delvist vås:

"1 mod f(n)" er ikke et tal og derfor giver det slet ikke mening at dividere det med e som i "(1 mod f(n))/e". Hans resultat "d=e^(-1) mod f(n)" er derimod rigtigt nok.

Formlen "e*d = 1 (mod f(n))" skal læses "e*d er lig med 1, modulus f(n)" og ikke "e*d er lig med 1 modulus f(n)" (bemærk kommaet).
Avatar billede ellebaek Nybegynder
25. juni 2003 - 21:08 #10
Nielle....

Det var præcis det jeg skrev: 24/06-2003 20:17:52
Hvis du prøver at læse det, så er mit svar der det samme som det svar du...
Avatar billede nielle Nybegynder
25. juni 2003 - 21:28 #11
Øhe? Nej, du korrigere ingen steder at "1 mod f(n)" ikke er noget tal og at det derfor ikke giver mening at dividere det med e.
Avatar billede ellebaek Nybegynder
25. juni 2003 - 21:54 #12
Nej det gør jeg ikke, men jeg korrigere mit svar til gcd(d,f(n)), hvilket er det samme som du siger...!
Avatar billede nielle Nybegynder
25. juni 2003 - 22:11 #13
Det var skam også kun den ene del af din postning jeg kaldte noget vås. Du indrømmer selv at du ikke trak den tilbage, og det synes jeg så at jeg burde. På overfladen - for den uindviede - så det nemligt ganske tilforladeligt ud.

Hvad angår gcd(d,f(n)) så er jeg skam godt klar over dette, men for folk uden en matematisk baggrund så er det faktisk ikkelige til at se sammenhængen mellem gcd og modulus. Hvis du så nærlæser walker's oprindelige spørgsmål, så er mit svar 20:38:51 altså stadigt det der kommer tættest.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester