algorytm RSA jest asymetrycznym algorytmem kryptograficznym. Asymetryczny oznacza, że działa na dwóch różnych kluczach, tj. klucz publiczny i klucz prywatny. Jak sama nazwa wskazuje, klucz publiczny jest nadawany każdemu, a klucz prywatny jest przechowywany w tajemnicy.

przykład kryptografii asymetrycznej:

  1. klient (na przykład przeglądarka) wysyła swój klucz publiczny do serwera i żąda pewnych danych.
  2. serwer szyfruje dane za pomocą klucza publicznego klienta i wysyła zaszyfrowane dane.
  3. Klient otrzymuje te dane i odszyfrowuje je.,

ponieważ jest to asymetryczne, nikt inny poza przeglądarką nie może odszyfrować danych, nawet jeśli osoba trzecia ma publiczny klucz przeglądarki.

pomysł! Idea RSA opiera się na tym, że trudno jest faktoryzować dużą liczbę całkowitą. Klucz publiczny składa się z dwóch liczb, gdzie jedna liczba jest mnożeniem dwóch dużych liczb pierwszych. Klucz prywatny również pochodzi z tych samych dwóch liczb pierwszych. Więc jeśli ktoś może faktoryzować dużą liczbę, klucz prywatny jest zagrożony., Dlatego siła szyfrowania całkowicie zależy od rozmiaru klucza i jeśli podwoimy lub potroimy rozmiar klucza, siła szyfrowania wzrasta wykładniczo. Klucze RSA mogą mieć zazwyczaj długość 1024 lub 2048 bitów, ale eksperci uważają, że klucze 1024 bitowe mogą zostać złamane w najbliższej przyszłości. Ale do tej pory wydaje się to nieosiągalne zadanie.

poznajmy mechanizm stojący za algorytmem RSA :

    >> Generowanie klucza publicznego :

  • wybierz dwa pierwsze nie. Załóżmy, że P = 53 I Q = 59.,Teraz pierwsza część klucza publicznego: n=P * Q = 3127.
  • nasz klucz publiczny składa się z n i e
  • >>Generowanie klucza prywatnego :

    
    
  • musimy obliczyć Φ(n) :takie, że Φ(N) = (P-1)(Q-1) więc φ(n) = 3016
  • teraz Oblicz klucz prywatny, D : D = (K*φ(n) + 1) / E dla pewnej liczby całkowitej KFOR K = 2, wartość D wynosi 2011.,
  • teraz jesteśmy gotowi z naszym – kluczem publicznym ( n = 3127 i e = 3) i kluczem prywatnym(d = 2011)

    teraz będziemy szyfrować „HI” :

    
    
  • Konwersja liter na cyfry : H = 8 i i = 9
  • w ten sposób zaszyfrowane dane c = 89e mod N. 1394
  • teraz odszyfrowujemy 1394 :

  • deszyfrowane dane = cd Mod N. w ten sposób nasze zaszyfrowane dane wychodzą na 89
  • 8 = H I i = 9 czyli „cześć”.,

    poniżej znajduje się implementacja C algorytmu RSA dla małych wartości:

    
    

    
    

    Wyjście:

    Message data = 12.000000Encrypted data = 3.000000Original Message Sent = 12.000000

    Ten artykuł autor: Mohit Gupta_omg 🙂. Jeśli lubisz GeeksforGeeks i chciałbyś przyczynić się do tego, możesz również napisać artykuł za pomocą contribute.geeksforgeeks.org lub wyślij artykuł do [email protected]. Zobacz swój artykuł pojawiający się na stronie głównej GeeksforGeeks i pomóż innym Geekom.