Se eu tenho uma mensagem codificada e sua original, é possível inferir a chave privada?
Não. Esse é o ponto das chaves assimétricas (públicas e privadas), pois você pode facilmente codificar uma mensagem com a chave pública (é para isso que serve) que você tem a mensagem de- e criptografada. Mas descriptografar a mensagem criptografada só é possível com a chave privada. A chave privada não pode ser regenerada.
Como não foi mencionado: isso é conhecido como ataque de texto sem formatação e seria uma vulnerabilidade muito ruim para uma cifra. De fato, na criptografia de chave pública, esse ataque é equivalente a um ataque de texto simples escolhido , já que qualquer um pode criptografar qualquer mensagem!
Não têm sido de fato alguns ataques conhecidos /-texto plano escolhido contra RSA (a cifra de chave pública-o mais frequentemente usado por PGP para criptografar a chave simétrica) , mas eles geralmente envolvem ataques de canal lateral contra implementações pobres , ou exigir um número insano de textos cifrados , ou apenas funcionam contra determinadas chaves raras .
No entanto, em geral, a resposta para sua pergunta é "não" - é isso que torna a cifra segura.
Não, isso seria muito ruim. A criptografia PGP usa uma combinação serial de hash, compactação de dados, criptografia de chave simétrica e finalmente criptografia de chave pública. O hash utiliza funções de mão única . Uma função unidirecional é uma função fácil de calcular, mas difícil de inverter. A criptografia de chave pública faz uso de algoritmos assimétricos.
Os algoritmos usados para criptografia de chave pública são baseados em relacionamentos matemáticos (os mais notáveis são os fatores de fatoração inteira e logaritmo discreto) que, presumivelmente, não têm solução eficiente. Embora seja computacionalmente fácil para o destinatário pretendido gerar as chaves pública e privada, descriptografar a mensagem usando a chave privada e fácil para o remetente criptografar a mensagem usando a chave pública, é extremamente difícil (ou efetivamente impossível) para qualquer pessoa para derivar a chave privada, com base apenas no seu conhecimento da chave pública.
Apenas ter a mensagem original não é suficiente para inferir a chave privada.
Existem duas respostas para isso.
É teoricamente possível? Sim. Você pode gerar uma chave falsa, tentar a criptografia, ver se ela corresponde. Caso contrário, tente outra chave falsa, criptografar, veja se a saída corresponde. Isso é comumente chamado de ataque de força bruta
Na prática, isso não pode ser feito. Leva uma quantidade diferente de zero de tempo e poder de computação para tentar isso. A criptografia PGP usaria normalmente uma chave de tamanho decente, talvez 512, 1024, 2048 ou até mais bits. O espaço das chaves (o número de chaves que você poderia ter) é tão grande que você levaria uma eternidade para encontrar essa combinação.
Meu palpite é que você estava perguntando se realmente poderia fazer isso, não a teoria. E então a resposta é não. O mundo não tem poder de computação suficiente para isso. Se você perguntasse no site security.stackexchange.com, alguém mais familiarizado com os algoritmos e a matemática poderia dizer quanto tempo isso levaria (possivelmente até o sol metastatizar e ferver nosso planeta). Minha resposta curta é "não está na sua vida"
Provavelmente, isso pode ajudar, mas não deve levar você muito longe. O formulário de segurança é provavelmente um lugar melhor para isso, mas:
Você deve ter várias etapas para a criptografia, no mínimo, mesmo um decente deve ter uma semente, um hash e um sal.
Por exemplo, você pode ter um sal para fazer com que todas as senhas tenham 64 bits e depois executá-las no hash. Se fosse apenas um hash, seria muito fácil decifrar.
Esta é uma versão muito simples ... mas não é assim tão fácil.