Compartilhar via


Assinaturas digitais

As assinaturas digitais podem ser usadas para distribuir uma mensagem em formato de texto não criptografado quando os destinatários devem identificar e verificar o remetente da mensagem. Assinar uma mensagem não altera a mensagem; ele simplesmente gera uma cadeia de caracteres de assinatura digital que você pode agrupar com a mensagem ou transmitir separadamente. Uma assinatura digital é uma pequena parte dos dados criptografados com a chave privada do remetente. Descriptografar os dados de assinatura usando a chave pública do remetente prova que os dados foram criptografados pelo remetente ou por alguém que teve acesso à chave privada do remetente.

As assinaturas digitais são geradas usando algoritmos de assinatura de chave pública . Uma chave privada gera a assinatura e a chave pública correspondente deve ser usada para validar a assinatura. Esse processo é mostrado na ilustração a seguir.

gerando uma assinatura digital

Há duas etapas envolvidas na criação de uma assinatura digital a partir de uma mensagem. A primeira etapa envolve a criação de um valor de hash (também conhecido como resumo da mensagem) da mensagem. Esse valor de hash é assinado usando a chave privada do signatário. Veja a seguir uma ilustração das etapas envolvidas na criação de uma assinatura digital.

criando uma assinatura digital a partir de uma mensagem

Para verificar uma assinatura, a mensagem e a assinatura são necessárias. Primeiro, um valor de hash deve ser criado com base na mensagem da mesma forma que a assinatura foi criada. Esse valor de hash é verificado em relação à assinatura usando a chave pública do signatário. Se o valor de hash e a assinatura corresponderem, você poderá ter certeza de que a mensagem é, de fato, aquela que o signatário assinou originalmente e que ela não foi adulterada. O diagrama a seguir ilustra o processo envolvido na verificação de uma assinatura digital.

verificando uma assinatura digital

Um valor de hash consiste em uma pequena quantidade de dados binários, normalmente em torno de 160 bits. Isso é produzido usando um algoritmo de hash. Alguns desses algoritmos são listados posteriormente nesta seção.

Todos os valores de hash compartilham as seguintes propriedades, independentemente do algoritmo usado:

  • O comprimento do valor de hash é determinado pelo tipo de algoritmo usado e seu comprimento não varia de acordo com o tamanho da mensagem. Os comprimentos de valor de hash mais comuns são de 128 ou 160 bits.
  • Cada par de mensagens não idênticas se traduz em um valor de hash completamente diferente, mesmo que as duas mensagens diferem apenas por um único bit. Usando a tecnologia atual, não é viável descobrir um par de mensagens que se traduzem no mesmo valor de hash sem quebrar o algoritmo de hash.
  • Sempre que uma mensagem específica é hash usando o mesmo algoritmo, o mesmo valor de hash é produzido.
  • Todos os algoritmos de hash são unidirecionais. Dado um valor de hash, não é possível recuperar a mensagem original. Na verdade, nenhuma das propriedades da mensagem original pode ser determinada apenas com o valor de hash.