Eu li sobre a geração de 2 chaves (privadas e públicas) no host do cliente e a cópia da chave pública no host do servidor.
Pelo que entendi (corrija-me se estiver errado): o servidor criptografa os dados com a chave pública e os envia ao cliente, o cliente os descriptografa com a chave privada.
Mas se eu precisar criptografar dados no cliente para enviar ao servidor, como isso acontece?
A chave pública criptografa dados no cliente? Mas como o servidor pode descriptografá-lo, se ele possui apenas a chave pública?
Como a criptografia SSH funciona?
fonte
Aqui estão alguns exemplos práticos: Assuma que a Chave A foi mantida em segredo e, portanto, a chave privada e a Chave B foi publicada em um local acessível ao público e, portanto, é a chave pública.
Portanto, se você deseja enviar uma mensagem para todos e verificar se ela veio de você e foi inalterada durante a entrega, envie sua mensagem e inclua um hash da mensagem criptografada com a Chave A. Então, qualquer pessoa que A chave B pode descriptografar o hash, compará-lo com a mensagem recebida e verificar se a mensagem foi enviada por você (devido ao fato de que apenas uma pessoa com a chave A pode ter gerado a carga criptografada que descriptografou com êxito o hash e porque você é a única pessoa com a Chave A que só pode vir de você). Isso é chamado de assinatura .
Agora, digamos que alguém queira lhe enviar uma mensagem secreta, mas não queira revelar quem eles são. Eles podem criptografar sua mensagem com uma chave simétrica (como Zoredache mencionou que simétrico é muito mais barato de fazer), em seguida, pegar essa chave e criptografá-la com a Chave B e enviá-la para você. Como apenas a chave A pode descriptografar algo que foi criptografado com a chave B, nenhuma outra pessoa pode ver o que está na mensagem que foi enviada a você. É assim que a criptografia normal funciona e como o SSH troca dados.
fonte
Aqui está uma descrição relativamente acessível da matemática por trás de como a criptografia de chave pública-privada funciona.
Uma descrição ainda mais básica da BBC está aqui .
fonte
você escreve
Não sei muito sobre isso, mas acho que posso responder claramente.
Se A quiser enviar uma mensagem para B, A usará a chave pública de B. É assim que B é capaz de decifrá-lo.
Se A usasse sua própria chave pública para criptografar a mensagem, então B não seria capaz de descriptografá-la.
Isso é explicado aqui
http://www.comodo.com/resources/small-business/digital-certificates2.php
fonte