A “criptografia de chave pública” ou criptografia assimétrica é o método criptográfico que faz uso de duas chaves diferentes: uma chave pública para criptografar e uma chave privada para descriptografar a mensagem. Este modelo contrapõe-se ao modelo da criptografia simétrica, em que a mesma chave é utilizada para criptografar e descriptografar a mensagem.
Em um sistema de criptografia assimétrica, a chave pública é divulgada abertamente para todos que queiram enviar uma mensagem a seu dono ou verificar a autenticidade de uma mensagem por ele enviada. A chave privada, por sua vez, é mantida em segredo e qualquer pessoa com acesso a ela será capaz de decodificar a mensagem criptografica ou atestar sua autenticidade por meio de uma assinatura digital.
A segurança de um sistema criptográfico assimétrico está na diferença entre o caminho de ida e o caminho de volta da operação matemática em que a criptografia está fundamentada. Quanto maior essa diferença, mais eficiente o algoritmo. Diffie-Hellman, um dos primeiros algoritmos a fazer uso de assimetria em criptografia, baseia-se na dificuldade de se reverter operações logarítmicas e é normalmente utilizado para acordo de uma chave privada.
A RSA, cujo nome remete às iniciais de seus inventores – Rivest, Shamir e Adleman -, explora a dificuldade de se fatorar um número em flores primos, comparado à facilidade de multiplicar dois primos para gerar um produto. Atualmente, a Criptografia de Curvas Elípticas – CCE – é considerada a mais eficiente, até de ser a mais utilizada para aplicações de Blockchain.
É importante ressaltar que uma chave criptográfica possui a propriedade de descriptografar a mensagem codificada pela chave pública correspondente. Tanto a chave pública quanto a chave privada podem ser usadas na criptografia de uma mensagem, dependendo da finalidade. De modo geral, a criptografia com chave pública provê confidencialidade, enquanto a criptografia com a chave privada provê autenticidade. Podemos então comparar a chave privada a uma assinatura digital ou a sua senha do banco.
Assinatura Digital
A assinatura digital é uma aplicação criptográfica que aplica ao meio digital os princípios de uma assinatura convencional. Existem duas propriedades essenciais em uma assinatura convencional:
– Autenticidade: qualquer pessoa pode saber quem fez a assinatura, mas apenas o autor deve saber fazê-la.
– Endosso: a assinatura deve estar vinculada ao documento que se pretende endossar e a nenhum outro.
O que se espera com essas duas propriedades é que uma assinatura não possa ser forjada e não possa ser usada em um documento para o qual ela não foi feita. Quando se trata de assinatura digital esperamos o cumprimento dessas mesmas condições e a criptografia assimétrica pode ser usada para prover essas duas características ao processo.
Logo, as propriedades de autenticidade e endosso podem ser alcançadas aplicando a criptografia de maneira inversa à descrita no início dessa aula: a mensagem é criptografia (assinada) com a chave privada e descriptografada (verificada) com a chave pública.
Neste modelo, o objetivo é autenticidade e não confidencialidade da mensagem. A informação estará visível para qualquer pessoa que possuir a chave pública, e qualquer pessoa em posse desta chave poderá verificar que a mensagem emitida pelo proprietário da respectiva chave privada.
Na tecnologia do Blockchain, não há necessidade nem interesse em prover confidencialidade para as informações. Pelo contrário, a essência do Blockchain é ser uma cadeia de registros públicos. Por outro lado, a autenticidade é essencial para o funcionamento do Blockchain. É fundamental que cada registro no bloco seja feito apenas por pessoas autorizadas. Por esse motivo, a criptografia no Blockchain é normalmente aplicada como assinatura e não como encriptação de mensagem.