RSA – szyfrowanie i atak

RSA – szyfrowanie i atak

Program: szyfrujący podaną przez użytkownika wiadomość, szyfrem RSA.

Który wymaga podania dwóch liczb pierwszych w celu utworzenia wymaganych kluczy.
(ze względu na ogromne liczby przy deszyfrowaniu, zamieszczona została tylko dokumentacja obliczeń)

Kompilator: Microsoft Excel

Galeria:

Program w akcji.

Dokumentacja:

Udokumentowanie obliczeń z przykładu powyżej:

Przykładowy atak RSA:

Kod programu:

Sub f_eulera()

    P = Cells(2, 4)
    Q = Cells(3, 4)
    N = P * Q
    Pomocnicza = (P - 1) * (Q - 1)
    
    For i = 2 To (N - 1)
    If (i Mod 2 = 1) Then
        a = i
        b = Pomocnicza
        Do While b > 0
            c = a Mod b
            a = b
            b = c
        Loop
        NWD = a
    End If
        If (a = 1) Then Exit For
    Next i
    
    E = i
    Cells(4, 4) = N
    Cells(5, 4) = E
    
    j = 0
    x = 0
    Do While x <> 1
        j = j + 1
        x = (j * E) Mod Pomocnicza
    Loop
    
    Cells(7, 4) = j
    Cells(10, 3) = j
    Cells(11, 3) = N
    Cells(11, 4) = E
    
    Wiadomosc = Cells(2, 8)
    Cells(3, 8) = (Wiadomosc ^ E) Mod N
    Zaszyfrowana = Cells(3, 8)
        
End Sub

Słowniczek pojęć:

Jest to niesymetryczny algorytm szyfrujący, którego zasadniczą cechą są dwa klucze: publiczny do kodowania informacji oraz prywatny do jej odczytywania. Klucz publiczny (można go udostępniać wszystkim zainteresowanym) umożliwia jedynie zaszyfrowanie danych i w żaden sposób nie ułatwia ich odczytania, nie musi więc być chroniony. Dzięki temu firmy dokonujące transakcji poprzez sieć Internet mogą zapewnić swoim klientom poufność i bezpieczeństwo. Drugi klucz (prywatny, przechowywany pod nadzorem) służy do odczytywania informacji zakodowanych przy pomocy pierwszego klucza. Klucz ten nie jest udostępniany publicznie. System RSA umożliwia bezpieczne przesyłanie danych w środowisku, w którym może dochodzić do różnych nadużyć. Bezpieczeństwo oparte jest na trudności rozkładu dużych liczb na czynniki pierwsze.