# Criptografia de chave pública sem certificado

Criptografia de Chave Pública Sem Certificado (do inglês, CL-PKC - Certificateless Public Key Cryptography) é um tipo de criptografia de chave pública em que existe uma entidade confiável chamada Key Generation Center (KGC) que deve emitir uma chave parcial que será compartilhada com o usuário, e o usuário, por sua vez, deve gerar um par de chaves pública/privada. O modelo de criptografia de chave pública sem certificados foi apresentado originalmente por Al-Riyami e Paterson (2003). Criptografia de Chave Pública Sem Certificado (CL-PKC), assim como a Criptografia Baseada na Identidade, permite uma comunicação segura, sem necessidade de utilizar certificados digitais.

## Visão Macro

Em uma Criptografia de chave pública, a criptografia utilizada requer um par de chaves: uma chave pública (para criptografar ou para validar assinatura) e uma chave privada (para decifrar ou para assinar). A solução mais comum de uso de uma criptografia de chaves públicas é usando uma ICP(Infraestrutura de Chaves Públicas). Ainda assim, há criptografias de chave pública que dispensam a necessidade de ICP:
* Modelo Baseado na Identidade;
* Modelo Auto-certificado;
* Modelo sem certificado.

## História

Os autores Al-Riyami e Paterson buscavam uma forma de aliminar a custódia de chaves do modelo baseado em identidade, mais especificamente do protocolo de cifragem de Boneh e Franklin (2003). O CL-PKC procura então agregar melhorias a dois outros modelos, em relação ao PKC ele provê melhoria no sentido em que torna a estrutura mais simples (sem a necessidade de um certificado digital) e em relação ao modelo baseado na identidade (ID-PKC) ele aperfeiçoa a segurança pois deixa de ser necessária a custódia de chaves. Al-Riyami e Paterson para chegar a este modelo intermediário entre o baseado na identidade e o convencional com certificados digitais foram combiandas ideias do modelo de chave pública autocertificada de Girault (1991) e do modelo baseado na identidade de Boneh e Franklin (2001).

## Modelo CL-PKC e Geração das Chaves

A chave secreta completa (s), neste modelo, é formada por duas partes: uma parte é escolhida apenas pelo usuário (x) e a outra parte é calculada pela autoridade de confiança (KGC) e compartilhada com o usuário. A chave parcial (d) calculada pela autoridade é gerada em função da identidade do usuário (ID) e de uma chave mestra secreta da autoridade (s$_{AC}$). A chave pública, por sua vez, é calculada de forma semelhante ao que ocorre no modelo convencional. O usuário a partido seu segredo (x) gera a chave pública (P). A chave pública poderá ser divulgada pelo próprio usuário ou é colocada em um diretório público.

## Vantagens

* Torna-se desnecessária a custódia de chaves e a utilização de certificados digitais;
* Risco de comprometimento da chave mestra é menor, se houver perda ou violação, apenas são comprometidas as chaves parciais;
* Apenas a chave parcial não permite decifrar e assinar, é preciso obter o segredo do usuário;
* Processo de renovação de chaves pode ser controlado totalmente pelo usuário, alterando o seu próprio segredo (x);

## Desvantagens

* É susceptível a um ataque chamado de Denial of Decryption (DoD), ataque que se dá quando alguém divulga falsamente uma chave pública ou a substitui em um repositório público;
* Modelo ainda requer um repositório de chaves públicas;
* Requer um canal autêntico e confidencial para entrega da chave parcial secreta compartilhada entre o usuário e o KGC;