Przeczytałem o generowaniu 2 kluczy (prywatnym i publicznym) na hoście klienta i kopiowaniu klucza publicznego na hosta serwera.
W moim rozumieniu (popraw mnie, jeśli się mylę): Serwer szyfruje dane za pomocą klucza publicznego i wysyła je do klienta, klient deszyfruje je za pomocą klucza prywatnego.
Ale jeśli muszę zaszyfrować dane na kliencie w celu wysłania na serwer, jak to się dzieje?
Klucz publiczny szyfruje dane na kliencie? Ale w jaki sposób serwer może go odszyfrować, jeśli ma tylko klucz publiczny?
Jak działa szyfrowanie SSH?
źródło
Oto kilka praktycznych przykładów: Załóżmy, że klucz A był trzymany w tajemnicy i dlatego jest kluczem prywatnym, a klucz B został opublikowany w publicznie dostępnym miejscu, a zatem klucz publiczny.
Jeśli więc chcesz wysłać wiadomość do wszystkich i chcesz, aby zweryfikowała, że pochodzi ona od Ciebie i nie została zmieniona podczas jej dostarczania, wyślij wiadomość i dołącz do niej skrót zaszyfrowany kluczem A. Wtedy każdy, kto ma klucz B, który może odszyfrować skrót, porównać go z otrzymaną wiadomością i zweryfikować, czy wiadomość pochodzi od Ciebie (ze względu na fakt, że tylko osoba z kluczem A mogła wygenerować zaszyfrowany ładunek, który pomyślnie odszyfrował skrót, oraz ponieważ są jedynymi osobami posiadającymi klucz A, który może pochodzić tylko od Ciebie). To się nazywa podpisywanie .
Teraz powiedzmy, że ktoś chce wysłać ci tajną wiadomość, ale nie chce ujawnić, kim jest. Mogą zaszyfrować wiadomość za pomocą klucza symetrycznego (ponieważ Zoredache wspomniał, że symetryczny jest znacznie tańszy), a następnie weź ten klucz i zaszyfruj go za pomocą klucza B i wyślij go do Ciebie. Ponieważ tylko klucz A może odszyfrować coś, co zostało zaszyfrowane kluczem B, żadna inna osoba nie może zobaczyć, co jest w wiadomości, która została do Ciebie wysłana. Tak działa normalne szyfrowanie i wymiana danych przez SSH.
źródło
Oto stosunkowo przystępny opis matematyki kryjącej się za szyfrowaniem klucza prywatnego i publicznego.
Jeszcze bardziej podstawowy opis z BBC znajduje się tutaj .
źródło
ty piszesz
Nie wiem zbyt wiele na ten temat, ale myślę, że mogę odpowiedzieć na to dość jasno.
Jeśli A chce wysłać wiadomość do B, A używa klucza publicznego B. W ten sposób B jest w stanie go odszyfrować.
Jeśli A użyłby własnego klucza publicznego do zaszyfrowania wiadomości, to rzeczywiście B nie byłby w stanie go odszyfrować.
To jest wyjaśnione tutaj
http://www.comodo.com/resources/small-business/digital-certificates2.php
źródło