Chaves assimétricas
Chaves assimétricas, também conhecidas como pares de chaves públicas/privadas, são usadas para criptografia assimétrica. A criptografia assimétrica é usada principalmente para criptografar e descriptografar chaves de sessão e assinaturas digitais. A criptografia assimétrica usa algoritmos de criptografia de chave pública .
Os algoritmos de chave pública usam duas chaves diferentes: uma chave pública e uma chave privada. O membro de chave privada do par deve ser mantido privado e seguro. A chave pública, no entanto, pode ser distribuída para qualquer pessoa que a solicite. A chave pública de um par de chaves geralmente é distribuída por meio de um certificado digital. Quando uma chave de um par de chaves é usada para criptografar uma mensagem, a outra chave desse par é necessária para descriptografar a mensagem. Portanto, se a chave pública do usuário A for usada para criptografar dados, somente o usuário A (ou alguém que tenha acesso à chave privada do usuário A) poderá descriptografar os dados. Se a chave privada do usuário A for usada para criptografar um dado, somente a chave pública do usuário A descriptografará os dados, indicando que o usuário A (ou alguém com acesso à chave privada do usuário A) fez a criptografia.
Se a chave privada for usada para assinar uma mensagem, a chave pública desse par deverá ser usada para validar a assinatura. Por exemplo, se Alice quiser enviar uma mensagem assinada digitalmente a alguém, ela assinará a mensagem com sua chave privada e a outra pessoa poderá verificar sua assinatura usando sua chave pública. Como, presumivelmente, apenas Alice tem acesso à chave privada, o fato de que a assinatura pode ser verificada com a chave pública de Alice indica que Alice criou a assinatura.
Infelizmente, os algoritmos de chave pública são muito lentos, aproximadamente 1.000 vezes mais lentos do que algoritmos simétricos. É impraticável usá-los para criptografar grandes quantidades de dados. Na prática, algoritmos de chave pública são usados para criptografar chaves de sessão. Algoritmos simétricos são usados para criptografia/descriptografia da maioria dos dados.
Da mesma forma, como assinar uma mensagem, na verdade, criptografa a mensagem, não é prático usar algoritmos de assinatura de chave pública para assinar mensagens grandes. Em vez disso, um hash de comprimento fixo é feito da mensagem e o valor de hash é assinado. Para obter mais informações, consulte Hashes e Assinaturas Digitais.
Cada usuário geralmente tem dois pares de chaves públicas/privadas. Um par de chaves é usado para criptografar chaves de sessão e a outra para criar assinaturas digitais. Eles são conhecidos como o par de chaves de troca de chaves e o par de chaves de assinatura, respectivamente.
Observe que, embora os contêineres de chave criados pela maioria dos provedores de serviços criptográficos (CSPs) contenham dois pares de chaves, isso não é necessário. Alguns CSPs não armazenam nenhum par de chaves enquanto outros CSPs armazenam mais de dois pares.
Todas as chaves no CryptoAPI são armazenadas em CSPs. Os CSPs também são responsáveis por criar as chaves, destruí-las e usá-las para executar uma variedade de operações criptográficas. A exportação de chaves do CSP para que elas possam ser enviadas a outros usuários é discutida no Armazenamento de Chaves Criptográficas e no Exchange.