Czy można użyć klucza publicznego do odszyfrowania wiadomości zaszyfrowanej odpowiednim kluczem prywatnym?

21

Z tego, co widziałem na temat użycia pary kluczy publicznego i prywatnego, klucz publiczny służy do szyfrowania wiadomości, a klucz prywatny służy do odszyfrowywania zaszyfrowanej wiadomości.

Jeśli wiadomość jest szyfrowana kluczem prywatnym, czy można ją odszyfrować za pomocą odpowiedniego klucza publicznego?

Jeśli tak, czy możesz podać kilka przykładów zastosowania tego przypadku?

Dzięki.

Tim
źródło
Dlaczego miałbyś go w ogóle szyfrować, gdyby klucz deszyfrujący był publiczny?
Bergi,
5
@Bergi Podpis cyfrowy?
user11153
6
@Bergi: Długa odpowiedź: szyfrując wiadomość kluczem prywatnym w sposób, który można odszyfrować za pomocą klucza publicznego, możesz wysłać wiadomość, którą każdy może odczytać, ale może być tylko napisany przez Ciebie. Szyfrując najpierw kluczem prywatnym, a następnie kluczem prywatnym odbiorcy, tworzysz wiadomość, która może zostać odszyfrowana tylko przez zamierzonego odbiorcę i może być napisana tylko przez ciebie.
gnasher729,
2
@ gnasher729 Myślę, że miałeś na myśli najpierw szyfrowanie kluczem prywatnym, a następnie kluczem publicznym odbiorcy . Nie powinieneś mieć cudzego klucza prywatnego
kiamlaluno

Odpowiedzi:

49

P: Jeśli pedałujesz na rybie do tyłu, to czy ona cofa się?
Odp .: ???

Ryba to nie rower. Podobnie nie można użyć klucza prywatnego do zaszyfrowania wiadomości ani klucza publicznego do odszyfrowania wiadomości. Nie mają odpowiedniego sprzętu.

Z RSA , który jest popularnym kryptosystemem z kluczem publicznym, ale nie jedynym, klucz prywatny i klucz publiczny mają te same właściwości matematyczne, więc można je stosować zamiennie w algorytmach. (Nie mają one jednak tych samych właściwości bezpieczeństwa - klucz publiczny jest zazwyczaj łatwo odgadnąć na podstawie klucza prywatnego.) Możesz wziąć algorytm szyfrowania RSA i podać mu klucz prywatny lub algorytm deszyfrowania RSA i podać go jako publiczny klucz. Jednak wyniki nie są znaczące zgodnie ze standardowymi algorytmami.

Ta symetria między kluczami publicznymi a kluczami prywatnymi nie obejmuje większości innych kryptosystemów z kluczami publicznymi. Zasadniczo klucz publiczny nie jest odpowiednim typem obiektu matematycznego do użycia w algorytmie deszyfrowania, a klucz prywatny nie jest odpowiednim typem obiektu matematycznego do zastosowania w algorytmie szyfrowania.

To powiedziawszy, kryptosystemy klucza publicznego oparte są na koncepcji funkcji zapadni . Funkcja jednokierunkowa jest funkcją łatwą do obliczenia, ale której odwrotność jest trudna do obliczenia. Funkcja zapadni jest jak funkcja jednokierunkowa, ale istnieje „magiczna” wartość, która sprawia, że ​​odwrotność jest łatwa do obliczenia.

Jeśli masz funkcję zapadni, możesz jej użyć do stworzenia algorytmu szyfrowania klucza publicznego: idąc naprzód (w łatwym kierunku), funkcja szyfruje; cofając się (w twardym kierunku), funkcja odszyfrowuje. Magiczną wartością wymaganą do odszyfrowania jest klucz prywatny.

Jeśli masz funkcję zapadni, możesz jej również użyć do stworzenia algorytmu podpisu cyfrowego : cofanie się (w twardym kierunku), funkcja podpisuje się ; idąc naprzód (w łatwym kierunku), funkcja weryfikuje podpis. Po raz kolejny magiczną wartością wymaganą do podpisania jest klucz prywatny.

Funkcje zapadni zwykle występują w rodzinach; dane niezbędne do określenia jednego konkretnego elementu rodziny to klucz publiczny.

Mimo że szyfrowanie klucza publicznego i podpisy cyfrowe oparte są na tych samych pojęciach, nie są one ściśle identyczne. Na przykład funkcja zapadni RSA polega na trudności cofnięcia mnożenia, chyba że znasz już jeden z czynników. Istnieją dwie popularne rodziny schematów szyfrowania klucza publicznego oparte na RSA , znane jako PKCS # 1 v1.5 i OAEP. Istnieją również dwie popularne rodziny schematów podpisów cyfrowych opartych na RSA, znane jako PKCS # 1 v1.5 i PSS. Dwa „PKCS # 1 v1.5” mają podobne konstrukcje, ale nie są identyczne. Ta odpowiedź Thomasa Pornina i ta Maarten Bodewes zawierają szczegółowe informacje na temat różnicy między podpisem / weryfikacją a deszyfrowaniem / szyfrowaniem w przypadku RSA.

Strzeż się, że niektóre świeckie prezentacje kryptografii z kluczem publicznym podszywają się pod cyfrowy podpis i weryfikację jako deszyfrowanie i szyfrowanie, z powodów historycznych: RSA zostało spopularyzowane jako pierwsze, a podstawowa obsługa RSA jest symetryczna. (Podstawowa operacja RSA, znana jako „podręcznik RSA”, jest jednym z kroków algorytmu podpisu / weryfikacji / szyfrowania / deszyfrowania RSA, ale sama w sobie nie stanowi algorytmu podpisu, weryfikacji, szyfrowania lub deszyfrowania.) są symetryczne z widoku 10000 stóp, ale nie są symetryczne po wejściu w szczegóły.

Zobacz także Zmniejszenie liczby podpisów do szyfrowania? , co wyjaśnia, że ​​możesz zbudować schemat szyfrowania na podstawie schematu podpisu, ale tylko pod pewnymi warunkami.

Gilles „SO- przestań być zły”
źródło
2
+1 za jasne wyjaśnienie nieporozumienia, o którym nawet nie wiedziałem, że kliknąłem to pytanie.
Ixrec
1
Dzięki. „klucz publiczny nie jest odpowiednim typem obiektu matematycznego do użycia w algorytmie odszyfrowywania, a klucz prywatny nie jest odpowiednim typem obiektu matematycznego do zastosowania w algorytmie szyfrowania”. Czy masz na myśli, że nadal mogą być używane do tych celów, ale nie są dobrymi opcjami lub nie mogą być? Jakie właściwości matematyczne, które decydują o tym, że nie są one „właściwym” typem, oprócz właściwości bezpieczeństwa (np. Asymetria w twardości odgadywania jednego klucza od drugiego)?
Tim
2
Odciąłbym dwa pierwsze akapity, ale w przeciwnym razie jest to bardzo wnikliwa odpowiedź. Przybyłem tutaj z laikowskiego wyjaśnienia szyfrowania / deszyfrowania i podpisu / weryfikacji oraz tego, w jaki sposób klucza prywatnego można użyć do „szyfrowania”, a twoja odpowiedź wyjaśniła dokładnie, co się zastanawiałem.
Kyle Chadha
Czy ten artykuł jest nieprawidłowy: globalsign.com/en/blog/how-do-digital-signatures-work ? Wspomina, że ​​klucz publiczny jest używany do odszyfrowywania, a klucz prywatny służy do szyfrowania
Kenneth Worden
@KennethWorden Jest to w większości poprawne, ale niektóre szczegóły są błędne. W sekcji „Stosowanie podpisu” „skrót jest zaszyfrowany” powinien oznaczać „skrót jest podpisany ”, i to samo stanowi podpis cyfrowy. A w sekcji „Weryfikacja podpisu” nie ma czegoś takiego jak „odszyfrowany skrót”: w przypadku większości schematów podpisu nie można odzyskać skrótu z podpisu, zamiast tego występuje inna operacja matematyczna (zwana weryfikacją) który przyjmuje hash i podpis jako dane wejściowe i wyjściowe „ok” lub „bad”.
Gilles „SO- przestań być zły”
6

Gdy schemat PKE wykorzystuje permutację zapadni jako czarną skrzynkę , „szyfrowanie” kluczem prywatnym, a następnie „deszyfrowanie” kluczem publicznym, spowoduje wyświetlenie oryginalnej wiadomości. W przypadku innych schematów PKE niekoniecznie ma to sens. (Na przykład próba „szyfrowania” za pomocą klucza prywatnego może być błędem typu ).

[Zaszyfrowanie wiadomości „kluczem prywatnym”, a następnie odszyfrowanie „odpowiednim kluczem publicznym”] jest stosowane, gdy ludzie myślą, że sprawa dotyczy podpisów cyfrowych i nie zostanie poprawiona na czas. Zobacz tę odpowiedź i to pytanie .

Społeczność
źródło
4
Nie. Utrzymujesz mity, że podręcznik RSA jest jedynym kryptosystemem klucza publicznego i że podpis jest tym samym, co deszyfrowanie.
Gilles „SO- przestań być zły”
To pierwsze jest doskonałym punktem, który naprawię. Czy druga część twojego komentarza wynika z tego, że moje długie zdanie nie jest wystarczająco jasne?
4
Nie rozumiem, co masz na myśli, mówiąc „kiedy ludzie myślą, że to podpis cyfrowy”. Wygląda na to, że mówisz, że ludzie błędnie uważają, że podpisy cyfrowe różnią się od szyfrowania kluczem publicznym. Pochodzę od ciebie, jestem pewien, że nie o to ci chodziło, ale twoja odpowiedź jest bardzo myląca, nawet po dodaniu pierwszego akapitu.
Gilles „SO- przestań być zły”
2

Tak, wiadomość, która została zaszyfrowana przy użyciu klucza prywatnego, można odszyfrować przy użyciu klucza publicznego.

W rzeczywistości jest to realizowane w celu weryfikacji autentyczności danych. W podpisie cyfrowym osoba szyfruje skrót danych za pomocą swojego klucza prywatnego. Każdy może to samo odszyfrować za pomocą dostępnego klucza publicznego danej osoby i zweryfikować autentyczność danych.

Kevin Amipara
źródło
2
Możesz to zrobić z kryptosystemem RSA, ale nie ze wszystkimi kryptosystemami klucza publicznego. Na przykład system kryptograficzny El-Gamal różni się od schematu sygnatur El-Gamal. Zobacz także odpowiedź Gillesa
Dyskretna jaszczurka
Prawda, że. Próbowałem udzielić bezpośredniej odpowiedzi niezależnie od poszczególnych algorytmów @Discretelizard
Kevin Amipara
Dziękujemy za udzielenie prostej odpowiedzi.
jrahhali
0

Pomyśl o kluczu publicznym w szyfrowaniu asymetrycznym jak o zamku zamiast o kluczu. Czy haker, który ma zamek i zamknięte pudełko z tym zamkiem, odblokuje zamknięte pudełko? Oczywiście, że nie, a do odblokowania tego pudełka potrzebny jest klucz blokady. Który nigdy nie został wysłany publicznie i ma go tylko nadawca.

Jednak odpowiedź brzmi : tak : D haker może deszyfrować wiadomość przy użyciu tylko klucza publicznego (blokada i blokada). Ale dziś jest to niezwykle trudne dla każdego komputera. Ponieważ cofnięcie zaszyfrowanej wiadomości przy użyciu tego klucza publicznego jest bardzo trudną operacją matematyczną, szczególnie gdy ten klucz ma wielkość 2048 bitów. Siła operacji matematycznej zależy od twardości pierwszej faktoryzacji dużej liczby.

Oto dobry film wyjaśniający działanie algorytmu RSA https://www.youtube.com/watch?v=wXB-V_Keiu8

Mahmoud Zalt
źródło
0

Pytanie jest ważne w odniesieniu do eMRTD, w którym klucz publiczny AA służy do odszyfrowania wewnętrznej odpowiedzi uwierzytelnienia zaszyfrowanej kluczem prywatnym eMRTD. Jest częścią standardu ICAO 9303.

MJR2022
źródło