Jeśli mam zarówno zakodowaną wiadomość, jak i jej oryginalną wiadomość, czy można wnioskować o kluczu prywatnym?
Nie. To jest sens kluczy asymetrycznych (publicznych i prywatnych), ponieważ możesz łatwo zakodować wiadomość za pomocą klucza publicznego (po to jest przeznaczony), masz de- i zaszyfrowaną wiadomość. Ale odszyfrowanie zaszyfrowanej wiadomości jest możliwe tylko przy użyciu klucza prywatnego. Klucz prywatny nie może zostać zregenerowany.
Ponieważ nie zostało to wspomniane: jest to znane jako atak w postaci jawnego tekstu i byłaby bardzo złą podatnością na szyfr. W rzeczywistości w kryptografii z kluczem publicznym atak ten jest równoważny atakowi z wybranym tekstem jawnym , ponieważ każdy może zaszyfrować dowolną wiadomość!
Nie mają w rzeczywistości pewne ataki znane / wybrany tekstem jawnym przeciwko RSA (szyfru z kluczem publicznym najczęściej używanych przez PGP do szyfrowania symetrycznego klucza) , ale zazwyczaj dotyczą ataków side-channel wobec ubogich implementacje , lub wymagać numeru insane tekstów zaszyfrowanych lub działają tylko na niektórych rzadkich kluczach .
Jednak generalnie odpowiedź na twoje pytanie brzmi „nie” - to sprawia, że szyfr jest bezpieczny.
Nie, to byłoby bardzo złe. Szyfrowanie PGP wykorzystuje szeregową kombinację haszowania, kompresji danych, kryptografii z kluczem symetrycznym i wreszcie kryptografii z kluczem publicznym. Hashing korzysta z funkcji jednokierunkowych . Funkcja jednokierunkowa jest funkcją łatwą do obliczenia, ale trudną do odwrócenia. Kryptografia z kluczem publicznym wykorzystuje algorytmy asymetryczne.
Algorytmy stosowane w kryptografii klucza publicznego są oparte na relacjach matematycznych (najbardziej znaczącymi są faktoryzacja liczb całkowitych i problemy z dyskretnym logarytmem), które prawdopodobnie nie mają skutecznego rozwiązania. Mimo że obliczeniowo odbiorca jest w stanie wygenerować klucze publiczne i prywatne, odszyfrować wiadomość za pomocą klucza prywatnego, a nadawcy zaszyfrować wiadomość za pomocą klucza publicznego, jest to niezwykle trudne (lub w rzeczywistości niemożliwe) każdy, kto wyprowadzi klucz prywatny, na podstawie jego wiedzy na temat klucza publicznego.
Posiadanie oryginalnej wiadomości nie wystarczy, aby wywnioskować klucz prywatny.
Istnieją na to dwie odpowiedzi.
Czy to teoretycznie możliwe? Tak. Możesz wygenerować fałszywy klucz, wypróbować szyfrowanie, sprawdzić, czy pasuje. Jeśli nie, spróbuj użyć innego fałszywego klucza, zaszyfruj, sprawdź, czy dane wyjściowe są zgodne. Jest to powszechnie nazywane atakiem brutalnej siły
W praktyce nie da się tego zrobić. Wypróbowanie tego wymaga niezerowej ilości czasu i mocy obliczeniowej. Szyfrowanie PGP zwykle używa klucza o przyzwoitym rozmiarze, może 512, 1024, 2048 lub nawet więcej bitów. Przestrzeń klawiszy (liczba możliwych kluczy) jest tak duża, że znalezienie tej kombinacji zajęłoby ci wieczność.
Domyślam się, że pytałeś, czy naprawdę możesz to zrobić, a nie teorię. A więc odpowiedź brzmi nie. Świat nie ma na to wystarczającej mocy obliczeniowej. Gdybyś zapytał na security.stackexchange.com, ktoś lepiej zaznajomiony z algorytmami i matematyką mógłby ci powiedzieć, ile to zajmie (być może, dopóki słońce nie przerzuci naszej planety i nie zagotuje jej). Moja krótka odpowiedź brzmi „nie w twoim życiu”
Mało prawdopodobne, może to pomóc, ale nie powinno prowadzić cię zbyt daleko. Formularz bezpieczeństwa jest prawdopodobnie lepszym miejscem do tego, ale:
Powinieneś mieć wiele kroków do szyfrowania, przynajmniej przyzwoity powinien mieć ziarno, skrót i sól.
Na przykład możesz mieć sól, aby wszystkie hasła miały długość 64 bitów, a następnie przepuścić je przez skrót. Gdyby to był tylko skrót, bardzo łatwo byłoby go złamać.
To jest bardzo prosta wersja ... ale to nie jest takie proste.