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.
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.
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.
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.