Uma assinatura digital é um número que é anexado a um documento. Por exemplo, em um sistema de autenticação que utiliza criptografia de chave pública, assinaturas digitais são utilizadas para assinar certificados.
Uma assinatura digital é criada em duas etapas. A primeira etapa destila o documento para um número grande. Este número é o código de compilação ou impressão digital. O código de compilação é então criptografado, que resulta na assinatura digital. A assinatura digital é anexada ao documento do qual o código de compilação é gerado.
Diversas opções estão disponíveis para gerar o código de compilação. Este processo não é criptografia; é um checksum sofisticado. A mensagem não pode ser regenerada a partir do código de compilação resultante. O aspecto crucial de destilar um documento para um número é que se a mensagem for alterada, mesmo de uma maneira trivial, isso resultará em um código de compilação diferente. Quando o destinatário obtém uma mensagem e verifica o código de compilação computando-o novamente, quaisquer alterações ao documento resultarão em uma diferença entre o código de compilação declarado e o computado.
Para impedir alguém de interceptar uma mensagem, alterá-la, computar novamente o código de compilação e retransmitir a mensagem e o código modificados, é necessária uma maneira de verificar também o código de compilação. Para verificar o código de compilação, inverta o uso das chaves pública e privada. Para comunicação privada, não faz sentido criptografar as mensagens com sua chave privada; essas chaves podem ser decriptografadas por qualquer um com sua chave pública. Entretanto, esta técnica pode ser útil para provar que uma mensagem veio de você. Ninguém pode criá-la porque ninguém mais tem sua chave privada. Se alguma mensagem significativa resultar da decodificação de um documento utilizando a chave pública de alguém, o processo de decriptografia verifica que o portador da chave privada correspondente realmente criptografou a mensagem.
A segunda etapa na criação de uma assinatura digital leva vantagem sobre esse aplicativo reverso de chaves públicas e privadas. Depois que um código de compilação é computado para um documento, o código de compilação é criptografado com a chave privada do emissor. O resultado é a assinatura digital, que é anexada ao final da mensagem.