Assinaturas
digitais
Um outro beneficio de criptografia com chave
pública é que provê um método para empregar assinaturas digitais. Assinaturas digitais
habilitam o receptor da informação verificar a autenticidade da origem da informação,
e também verifica se a informação está intacta. Assim, assinaturas digitais com chave
pública provêem autenticação e integridade de dados. Uma assinatura digital também
provê não repúdio, o que significa que previne o emissor de reivindicar que ele ou ela
não enviaram de fato a informação. Estas características são tão fundamentais para
criptografia como privacidade, se não mais.
Uma assinatura digital serve para o mesmo
propósito que uma assinatura manuscrita. Porém, uma assinatura manuscrita é fácil
falsificar. Uma assinatura digital é superior que uma assinatura manuscrita no sentido
que é quase impossível falsificar, e mais, isto presta atenção aos conteúdos da
informação como também para a identidade do signatário. Algumas pessoas tendem a usar
assinaturas mais que eles usam encriptação. Por exemplo, você pode não se preocupar se
qualquer um sabe que você há pouco depositou $1000 em sua conta, mas você quer ter
certeza que era com o caixa de banco com quem você estava lidando.
A maneira básica na qual são criadas
assinaturas digitais é ilustrada na Figura 1-6. Em vez de encriptar informação usando a
chave pública de outra pessoa, você encripta ela com sua chave privada. Se a
informação pode ser desencriptada com sua chave pública, então ela pode ser verificada
se foi originado de você.
Figura 1-6. Assinatura digital simples
Hash functions
O sistema descrito acima tem alguns problemas.
É lento, e ele produz um volume enorme de dadospelo menos dobra o tamanho da
informação original. Uma melhoria no esquema acima é a adição do hash function no
processo. Um hash function pega uma entrada de tamanho variávelneste caso, uma
mensagem de qualquer tamanho, até mesmo milhares ou milhões de pedaçose produz um
produto de tamanho fixo; digamos, 160-bits. A hash function assegura que, se a
informação é mudada de qualquer formaaté mesmo por só um bituma saída
inteiramente diferente é produzida.
PGP usa uma hash function com valor
criptográfico forte nos dados originais que o usuário está assinando. Isto gera dados
de tamanho fixo conhecido como message digest. (Novamente, qualquer mudança para a
informação resulta em um message digest totalmente diferente.)
Então PGP usa o message digest e a chave
privada para criar a " assinatura ". PGP transmite a assinatura e os dados
originais juntos. Após a recepção da mensagem, o receptor usa PGP para recomputar o
message digest, verificando a assinatura assim. PGP pode encriptar os dados originais ou
não; assinar os dados originais é útil se alguns dos receptores não estão
interessados em ou não são capazes de verificar a assinatura.
Contanto que uma hash function segura seja
usada, não há nenhum modo para levar a assinatura de alguém de um documento e botar
esta em outro, ou alterar uma mensagem assinada de qualquer forma. A mudança mais leve em
um documento assinado fará com que o processo de verificação de assinatura digital
falhe.
Figura 1-7. Assinatura digital segura
Assinaturas digitais representam um papel
principal na autenticação e validação das chaves de outros usuários de PGP.