RSA

0

Witam!
Mam maly problemik. Na zakonczenie semestru dostalam do napisania program - dokladnie chodzi o szyfrowanie RSA. Niestety dopiero ucze sie programowac i nie mam najmniejszego pojecia jak zaczac i w ogole jak to ma wygladac.
Czy ktos moze mi pomoc.

Pozdrawiam

0

algorytm moge ci wytlumaczyc, ale nie napisze ci tego.

0

Bardzo bym prosiła.
Zdaje sobie sprawe, ze nie moge od nikogo oczekiwac ze poda mi to na talerzu i tylko sobie przepisze. Tym bardziej, ze to nie zapowiada sie na krotki program :-/

Pozdrawiam i prosze o odpowiedz

0

najprosciej mozna to przedstawic jako:
wybiera sie duze liczby pierwsze p i q, oraz liczbe n.
oblicza sie f(n)=(p-1)(q-1).
Kolejnym krokiem jest wybor liczby e (bedacej kluczem prywatnym sluzacym do odkodowania wiadomosci) z zakresu max(p,q);n-1
max(p,q) - jest to wybor wiekszej z liczb p lub q.
Dodatkowo liczba e powinna byc wzglednie pierwsza z f(n), czyli
NWD(e,f(n))=1. NWD - funkcja obliczajaca najwiekszy wspolny dzielnik, np. metoda Euklidesa.
Metoda Euklidesa polega na ponizszych obliczeniach. Przykladowo aby nalezc NWD dla liczb 20 i 6 obliczenia:
20-6=4
6-4=2
4-2=2
2-2=0

Czyli NWD(20,6)=2. Stad wniosek ze nie sa to liczby wzglednie pierwsze.
Po wyznaczeniu klucza e nalezy wygenerowac klucz publiczny d (bedzie nim dokonywane szyfrowanie danych). Obliczenia przeprowadza siew sposob nastepujacy:
d=inv(e,f(n))
Szyfrowanie polega na:
C=M^e mod n
deszyfrowanie :
M=C^d mod n

C- szyfrotekst
M - tekst jawny

Sila algorytmu polega na dlugich kluczach, oraz na problemie uzyskania e majac tylko e (problem faktoryzacji f(n)).


Praktycznie to wszystko, oczywiscie w skrocie, pomylki nie powinno wystapic, ale jak cos to prosze poprawic bo pisalem z glowy.

0

OK.
Dziekuje bardzo.
Musze sobie to przemyslec... i poukladac..

Pozdrawiam

0

No to dość trudne jak na poczojątkującego programiste, ale dobrze jest mieć chęci tak jak Ty.. Ile masz lat jeśłi można spytać??

0

jest to prostsze niz sie wydaje. Oczywiscie jezeli skorzystamy z predefiniowanych typow danych (bez uzywania duzych liczb). Calosc polega na kilku dzialaniach, a funkcje takie jak max() to chyba nie problem zrobic - nawet na kilkui linijkac kodu (w sumie to jeden if).

0

Jak chcesz mam to gdzies napisane w javie (o ile Ci to odpowiada). Jak cos napisz: [email protected]

0

Witam,
No muszę przyznać, że nie jest to takie trudne jak mi się na początku wydawało - chociaż i tak się z tym męczę :-/ . Bardzo pomógł Anubis za co jeszcze raz dzięki.
Pozdrawiam [cya]

1 użytkowników online, w tym zalogowanych: 0, gości: 1