# Assinatura digital

Uma assinatura digital é um esquema matemático para verificar a autenticidade de mensagens ou documentos digitais. Uma assinatura digital válida, ou seja, aquela em que os pré-requisitos são atendidos, dá ao destinatário uma confiança muito alta de que a mensagem foi criada por um remetente conhecido (autenticidade) e que a mensagem não foi alterada em trânsito (integridade).
As assinaturas digitais são um elemento padrão da maioria dos conjuntos de protocolos criptográficos e são comumente usadas para distribuição de software, transações financeiras, software de gerenciamento de contratos e em outros casos em que é importante detectar falsificação ou adulteração.
As assinaturas digitais são frequentemente usadas para implementar assinaturas eletrônicas, o que inclui qualquer dado eletrônico que tenha a intenção de uma assinatura, mas nem todas as assinaturas eletrônicas usam assinaturas digitais. As assinaturas eletrônicas têm significado legal em alguns países, incluindo Canadá, África do Sul, os Estados Unidos, Argélia, Turquia, Índia, Brasil, Indonésia, México, Arábia Saudita, Uruguai, Suíça, Chile e os países da União Europeia.
Assinaturas digitais empregam criptografia assimétrica. Em muitos casos, eles fornecem uma camada de validação e segurança para mensagens enviadas por meio de um canal não seguro: implementada adequadamente, uma assinatura digital dá ao receptor motivos para acreditar que a mensagem foi enviada pelo remetente reivindicado. As assinaturas digitais são equivalentes às assinaturas manuscritas tradicionais em muitos aspectos, mas as assinaturas digitais implementadas corretamente são mais difíceis de falsificar do que as manuscritas. Os esquemas de assinatura digital, no sentido usado aqui, são baseados em criptografia e devem ser implementados adequadamente para serem eficazes. Eles também podem fornecer não repúdio, o que significa que o signatário não pode reivindicar com êxito que não assinou uma mensagem, ao mesmo tempo em que reivindica sua chave privada permanece em segredo. Além disso, alguns esquemas de não repúdio oferecem um carimbo de data/hora para a assinatura digital, de modo que, mesmo que a chave privada seja exposta, a assinatura é válida. As mensagens assinadas digitalmente podem ser qualquer coisa representável como um bit string: exemplos incluem correio eletrônico, contratos ou uma mensagem enviada por meio de algum outro protocolo criptográfico.

## História

Em 1976, Whitfield Diffie e Martin Hellman descreveram pela primeira vez a noção de um esquema de assinatura digital, embora apenas conjecturassem que tais esquemas existiam com base em funções que são permutações arapuca unidirecionais. Logo depois, Ronald Rivest, Adi Shamir e Len Adleman inventaram o algoritmo RSA, que poderia ser usado para produzir assinaturas digitais primitivas (embora apenas como uma prova de conceito – RSA "simples" assinaturas não são seguras). O primeiro pacote de software amplamente comercializado a oferecer assinatura digital foi o Lotus Notes 1.0, lançado em 1989, que usava o algoritmo RSA.
Outros esquemas de assinatura digital logo foram desenvolvidos após o RSA, sendo os primeiros as assinaturas Lamport, assinaturas Merkle (também conhecidas como "árvores Merkle" ou simplesmente "árvores Hash"), e assinaturas Rabin.
Em 1988, Shafi Goldwasser, Silvio Micali e Ronald Rivest se tornaram os primeiros a definir rigorosamente os requisitos de segurança dos esquemas de assinatura digital. Eles descreveram uma hierarquia de modelos de ataque para esquemas de assinatura, e também apresentaram o esquema de assinatura GMR, o primeiro que pode ser comprovado para evitar até mesmo uma falsificação existencial contra um ataque de mensagem escolhido, que é a definição de segurança atualmente aceita para esquemas de assinatura. O primeiro esquema desse tipo que não é construído em funções arapuca, mas sim em uma família de funções com uma propriedade exigida muito mais fraca de permutação unidirecional foi apresentado por Moni Naor e Moti Yung.