Se eu tivesse que refazer sua pergunta de como eu a entendo, você está fazendo o seguinte:
Se a criptografia de chave pública garante que uma chave pública possa ser derivada de uma chave privada, mas uma chave privada não pode ser derivada de uma chave pública, você pode se perguntar: como uma chave pública pode descriptografar uma mensagem assinada com uma chave privada sem o remetente expondo a chave privada na mensagem assinada ao destinatário? (releia isso algumas vezes até que faça sentido)
Outras respostas já explicou como assimétricas meio de criptografia que você pode tanto :
- Criptografar com chave pública, descriptografar com chave privada correspondente (pseudocódigo abaixo)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Criptografar com chave privada, descriptografar com chave pública correspondente (pseudocódigo abaixo)
var msg = 'secret message';
var encryptedMessage = encrypt(priv_key, msg);
var decryptedMessage = decrypt(pub_key, encryptedMessage); // HOW DOES THIS WORK???
print(msg == decryptedMessage == 'secret message'); // True
Nós sabemos que tanto o exemplo # 1 e # 2 trabalho. O exemplo 1 faz sentido intuitivo, enquanto o exemplo 2 implora a pergunta original .
Acontece que a criptografia de curva elíptica (também chamada de "multiplicação de curva elíptica") é a resposta para a pergunta original. A criptografia de curva elíptica é a relação matemática que possibilita as seguintes condições:
- Uma chave pública pode ser matematicamente gerada a partir de uma chave privada
- Uma chave privada não pode ser matematicamente gerada a partir de uma chave pública (por exemplo, "função trapdoor")
- Uma chave privada pode ser verificada por uma chave pública
Para a maioria, as condições 1 e 2 fazem sentido, mas e a 3?
Você tem duas opções aqui:
- Você pode descer por uma toca de coelho e passar horas e horas aprendendo como a criptografia de curva elíptica funciona ( aqui é um ótimo ponto de partida ) ... OU ...
- Você pode aceitar as propriedades acima - assim como aceita as 3 leis do movimento de Newton sem precisar derivá- las.
Em conclusão, um par de chaves público / privado é criado usando criptografia de curva elíptica, que por natureza cria uma chave pública e privada que são matematicamente vinculadas em ambas as direções, mas não derivadas matematicamente em ambas as direções . É isso que possibilita o uso da chave pública de alguém para verificar se eles assinaram uma mensagem específica, sem que eles exponham sua chave privada para você.