Você está na página 1de 26

Segurança da Informação

Equipe da SE9
Aula 12

10 de Fev de 2020 1
ASSINATURAS DIGITAIS

Equipe da SE_9 10 de Fev de 2020 2


ASSINATURAS DIGITAIS

A assinatura digital é uma mecanismo de autenticação que permite ao


criador de uma mensagem anexar um código que atue como uma
assinatura.
A assinatura é formada tomando o hash da mensagem e
criptografando-o com a chave privada do criador.
A assinatura garante a origem e a integridade da mensagem
Criptografia e Segurança de redes – William Stallings

Equipe da SE_9 10 de Fev de 2020 3


ASSINATURAS DIGITAIS

Hash
Hash

UFRJ

Equipe da SE_9 10 de Fev de 2020 4


ASSINATURAS DIGITAIS

FIPS PUB 186-4

FEDERAL INFORMATION PROCESSING

STANDARDS PUBLICATION

Digital Signature Standard (DSS)

Equipe da SE_9 10 de Fev de 2020 5


ASSINATURAS DIGITAIS

NIST
Equipe da SE_9 10 de Fev de 2020 6
ASSINATURAS DIGITAIS

 HASH
Uma função criptográfica hash tem por entrada uma mensagem de
comprimento arbitrário e uma saída de tamanho fixo.
Propriedades
 Dada m, h(m) deve ser calculada com facilidade.
 Dada y = h(m), deve ser computacionalmente inviável encontrar
m tal que h(m) =y
 Deve ser computacionalmente inviável encontrar duas
mensagens m e n tais que h(m) = h(n).
ASSINATURAS DIGITAIS

 ASSINATURAS - CARACTERÍSTICAS

Sejam m e n duas mensagens


 Se assin(m) = assin(n), então m = n.
 Se m ≠ n, então assin(m) ≠ assin(n).
 A assinatura deve estar associada ao signatário
e à mensagem assinada.
 Deve ser facilmente verificada por outras partes;
 São dois processos: assinatura e verificação.
ASSINATURAS DIGITAIS

 ASSINATURAS - ALTERNATIVAS

 Supor que todos usem um sistema de chave pública

 A assina mensagem m de forma a que todos possam


verificar sua assinatura: SA (m)

 A assina mensagem m de forma a que somente o


destinatário B possa verificar sua assinatura: PB [SA (m)]

 A envia mensagem m, e um hash h(m) assinado, de forma a


que todos possam verificar sua assinatura: [m, SA (h(m))]
ASSINATURAS DIGITAIS
 ASSINATURA RSA
Processo assinatura
Alice deve assinar o documento m
 Escolhe dois primos p e q
 Determina n = p.q
 Escolhe e tal que [e, phi(n)] = 1
 Alice publica (e, n)
 Calcula d tal que e.d = 1 [mod phi (n)]
 Alice mantém secretos p, q, d
 A assinatura de Alice é y = md [mod n]
 Alice publica (y, m)
ASSINATURAS DIGITAIS

 ASSINATURA RSA
Processo verificação
 Bob recebe (y, m)
 Bob acessa (n, e) de Alice
 Calcula z = ye [mod n]
 Se z = m, então a assinatura é válida.
ASSINATURAS DIGITAIS

 ASSINATURA RSA - EXEMPLO


Processo ASSINATURA
 p = 7; q = 13; pq = 91; e = 5; phi(n) = 72; m = 35
 Alice calcula d tal que e.d = 1 [mod 72]; d = 29
 Alice calcula a assinatura s = 3529 [mod 91] = 42
 Alice envia (s, m) = (42, 35)
Processo VERIFICAÇÃO
 Bob recebe (s, m) = (42, 35) e conhece (n, e) = (91, 5)
 Calcula z = se [mod n] = 425 [mod 91] = 35
 Como z = m, então a assinatura é válida.
ASSINATURAS DIGITAIS

 ASSINATURA RSA – cega - (David Chaum)


 Bob tem chave pública (n, e) e chave secreta d
 Alice escolhe k tal que (0<k<n-1) e [k, n] = 1
 Alice calcula t = ke.m [mod n] com mensagem m
 Alice manda t para Bob
 Bob assina s = td [mod n] e devolve para Alice
 Alice computa s.k-1 [mod n] = td k-1 [mod n] = (ke m)d k-1 [mod n]
= (ke d md k-1 [mod n] = md [mod n]

 A mensagem está assinada e Bob não a viu.


ASSINATURAS DIGITAIS

 ASSINATURA RSA – cega - (David Chaum)


 Bob tem chave pública (17, 3) e chave secreta d=13
 Alice escolhe k = 7, tal que (0<k<n-1) e [k, n] = 1 e tem m=5
 Alice calcula t = 73.5 [mod 17] = 15 [mod 17]com mensagem m
 Alice manda15 para Bob
 Bob assina s = 1513 [mod 17] = 2 e devolve para Alice
 Alice computa s.k-1 [mod n] = td k-1 [mod n] = (ke m)d k-1 [mod n]
= (ke d md k-1 [mod n] = 7.513 .5 [mod 17] = 513 .35 [mod 17] = 3
Verificar que md = 513 [mod n] = 3

 A mensagem está assinada e Bob não a viu.


ASSINATURAS DIGITAIS

 ASSINATURA ElGamal
Preparação para Alice assinar a mensagem m
 Alice escolhe p, primo grande e , raiz primitiva de p; então:
 Alice escolhe z (chave) tal que (1<z<p-2)
 Alice calcula  = z [mod p]
 Chave pública (p, , )
 Chave privada z
ASSINATURAS DIGITAIS

ASSINATURA ElGamal
Alice assina a mensagem
Alice escolhe 0 < k < p -1, secreto, tal que [k, p -1] = 1:
Calcula r = k [mod p]
Calcula s = k-1 (m – z.r) [mod p -1], tal que k. k-1 = 1 mod(p-1)
Mensagem assinada = (m, r, s)
ASSINATURAS DIGITAIS

ASSINATURA ElGamal
VERIFICAÇÃO
Bob recolhe (p, ) e (m, r, s)
Verifica se 0 < r < p-1
Calcula u = r . rs [mod p]
Calcula w = m [mod p]
Se w = u, então assinatura válida

w ≡ αm ≡ αsk+zr ≡ (αz)r(αk)s ≡ βrrs ≡ u (mod p)


ASSINATURAS DIGITAIS
 EXEMPLO SIMPLES - ElGamal
 Alice precisa assinar m = 15.
 Escolhe p = 71 com raiz primitiva 7 e z = 16.
 Calcula  = z [mod p] = 716 = 19 [mod 71]
 Chave pública (p, , ) = (71, 7, 19)
 Assinatura da Alice
 Calcula secreta k = 31 tal que [31, 70] = 1
 Calcula r = k [mod p] = 731 = 11 [mod 71]
 Calcula s = k-1 (m – z.r) [mod p -1] = 61(15 – 16.11) = 49 [mod 70]
 Mensagem assinada = (m, r, s) = (15, 11, 49)
 Exercício: verificar a assinatura como se Bob fosse.
ASSINATURAS DIGITAIS

 EXEMPLO SIMPLES - ElGamal


 Verificação.
 Bob recolhe (p, ) e (m, r, s) = (71, 7, 19); (15, 11, 49)
 R está entre 1 e 70, inclusive
 u = r . rs [mod p] =
(19^11).(11^49) mod 71 = 64.17 = 1088 mod 71 = 23
 w = m [mod p] = 7^15 mod 71 = 23
ASSINATURAS DIGITAIS

 EXEMPLO 2 - ElGamal
 Alice mensagem m1
 m1 =151405; p = 225119; α=11; z é secreto
 β ≡ αz ≡ 18191 [mod p]
 k secreto
 r ≡ αk ≡ 164130 [mod p]
 s1 ≡ k-1(m1 – z.r) ≡ 130777 [mod p]
 m1 = (151405, 164130, 130777)
p-1)
ASSINATURAS DIGITAIS

 EXEMPLO 2 - ElGamal
 Alice mensagem m2 com mesmo k
 m2 =202315; mesmo p = 225119; mesmo α=11; z é secreto
 β ≡ αz ≡ 18191 [mod p]
 k secreto
 r ≡ αk ≡164130 [mod p]
 s2 ≡ k-1(m2 – z.r) ≡ 164899 [mod p]
 m2 = (202315, 164130, 164899)
p-1)
ASSINATURAS DIGITAIS

 EXEMPLO 2 - ElGamal
 Dedução da chave k
 (s2 – s1).k = 34122.k = m2 – m1 = 50910 [mod 225118]
 k pode ser 239 ou 112798
 11 exp 239 = 164130 [mod 225119] e
 11 exp 112798 = 59924 [mod225119]
 Logo, a solução é k = 239
ASSINATURAS DIGITAIS

EXEMPLO 2 - ElGamal
Dedução da chave z
(s1).k = m1 – z.r [mod 225118]; z.r = m1 – (s1).k
164130.z = 151405 – 130777.239 [mod 225118]
164130.z = 151405 - 189419 = 187104 [mod 225118]
z = 141421
ASSINATURAS DIGITAIS

FIPS PUB 186-4

FEDERAL INFORMATION

PROCESSING STANDARDS

PUBLICATION

Digital Signature Standard

(DSS)
ASSINATURAS DIGITAIS

ASSINATURA DSA (algoritmo) / DSS (standard)

EXERCÍCIO

Apresente o algoritmo de assinatura digital DSA


Construa um exemplo com o algoritmo
ASSINATURAS DIGITAIS

ASSINATURA DIGITAL COM CURVAS ELIPTICAS

EXERCÍCIO

Apresente um algoritmo de assinatura digital com curvas elípticas


Construa um exemplo com o algoritmo escolhido

Você também pode gostar