Escolar Documentos
Profissional Documentos
Cultura Documentos
SEGURANÇA DE DADOS
3
Routo Terada
www.ime.usp.br/~rt
Depto. de C. da Computação - USP
Resumo
Modelo Diffie-Hellman de cripto de chave pública (1976)
RSA: Rivest-Shamir-Adleman (1978)
Problema da Fatoração
Algoritmo de teste de primalidade
Criptossistema híbrido (KEM - Key Encapsulation
Module)
Computador quântico
2
Simétrica NÃO permite
(DES,AES,etc.) Assinatura
+ rápido
cripto
Permite
Assimétrica
Assinatura
(RSA,ElGamal,etc.)
+ lento
Por quê é importante estudar e implementar criptografia
simétrica? resp. de um aluno?
3
DH
ALICE BETO
Chave Chave
PB pública SB particular
do Beto
do Beto
Intruso
4
DH
ALICE BETO
Chave Chave
PB pública SB particular
do Beto
do Beto
Intruso
Conseqüência das duas propriedades:
Só Beto pode “abrir o envelope” pois só ele conhece a chave particular.
Isto é, há garantia de autenticidade do destinatário.
5
Idéia da criptografia de chave pública
PKI - Public Key Infrastructure (mundial), ICP - Brasil (Infra
de Ch. Pub.)
Diffie-Hellman 1976
1. Beto calcula (por hipótese, rapidam/) o par p B , s B ,
chaves inversas entre si, e publica p B (Certificado
Digital), e guarda s B em memória segura
2. Alice idem: p A , s A
3. Autoridade Certificadora - AC - idem: p AC , s AC
Como Alice envia info x para Beto:
1. “Pega” p B do Cert.Dig. do Beto e criptografa p B x y e
envia y para Beto
2. Beto calcula s B y s B p B x x. Por quê x?
6
sortear um aluno
7
Propriedade chamada “Autenticação do
transmissor/receptor”:
Alice sabe (garantia) que só o Beto verdadeiro/autêntico
consegue recuperar x. Por quê? sortear um aluno
Beto sabe que a Alice verdadeira enviou y? Por quê? sortear
um aluno
8
DH
ALICE BETO
Chave
Chave
SA PA pública
particular
da
da Alice
Alice
Intruso
9
DH
ALICE BETO
Chave
Chave
SA PA pública
particular
da
da Alice
Alice
Conseqüência importante:
Beto sabe que só a Alice verdadeira pode ter enviado o envelope pois
ele o abriu com a chave pública da Alice: autenticação do remetente
É análogo a Alice ter “assinado” eletronicamente o envelope.
(observe que senha ou DES não autentica o remetente; por quê?)
10
Não-repúdio DH
ALICE BETO
Chave
Chave
SA PA pública
particular
da
da Alice
Alice
11
Hipóteses (Modelo Diffie-Hellman)
1. A chave pública é inversa da secreta, e vice-versa
2. Aplicar uma chave pública ou secreta é computacionalm/
rápida, fácil.
3. Aplicar uma chave secreta é computacionalm/ difícil,
demorada, se não conhece a chave secreta. Daí o nome
“trapdoor”, “ratoeira”, “armadilha”, etc.
4. Calcular a chave secreta é computacionalm/ difícil,
demorada (mesmo conhecendo, obviam/, a chave
pública).
5. Possível aplicar uma chave secreta sem aplicar a
respectiva chave pública.
12
Assinatura digital
1. Beto calcula s B x y e envia para Alice
2. Alice “pega” p B e calcula p B y p B s B x x
Alice sabe que só o Beto verdadeiro enviou y. Por quê?
y é chamado Assinatura Digital do Beto sobre x.
Alternativa
No caso de x ser um texto (contrato, lei, decreto, diploma,
boleto, etc.), o par x, y é gravado ou impresso. junto com P B .
Então:
1. Qualquer pessoa verifica se y foi assinado pelo Beto
verdadeiro, ou seja, assinatura não é falsa (“Autenticação
de Assinatura”). Como consegue?
13
2. Qualquer pessoa verifica se x não foi modificado
(“Integridade de Info”). Como consegue?
Certificado Digital (ICP-Brasil)
14
(A) EmpCert cadastra cada Pessoa Física - PeFis - usuária do sistema.
(B) EmpCert assina a chave pública - ChPub - de cada PeFis.
Obs.: a chave pública da EmpCert é distribuída previamente, e é universal
15
1. Alice compra um Cert. Digital. e guarda-o em lugar
seguro. (pen-drive?)
2. Esse Certificado contém p A , s A e outros dados da Alice
assinados pela AC (Autoridade Certificadora): s AC p A ,
dados pessoais, data de validade, etc..
3. Alice pode assinar documentos, criptografar documentos,
etc. Qual chave?
4. Qualquer pessoa pode autenticar docums., verificar
assinatura, decriptografar docums. Qual chave?
Pessoas jurídicas como bancos, lojas virtuais, órgãos do
governo (entrega de Decl. Imposto de Renda): web site “envia”
uma chave para o seu computador. Qual chave?
16
RSA (pg. 127)
1. Dados dois primos (“ultra” secretos) q, r, n q r
2. Função de Euler: n q 1r 1
3. Sorteia s (chave secreta, particular): mdcs, n 1
4. Calcula chave pública p: s p 1 mod n (Algoritmo
de Euclides estendido, pg. 244)
5. Ataque: fatora n, calcula n, e conhece p conhece s
!!!!!!! Como calcular s?
Exemplo (didático) de RSA
q 5, r 11, n 55, s 17,
p 33 (check: 17 33 1 mod 40)
17
Exerc.: Para q 3, r 5, calcular n e, para s 7, calcular p.
Definição de RSA
1. Alice: x n, x p mod n y e envia y para Beto
2. Beto recupera x: y s mod n x (demonstrado na pg 133)
Exemplo
Alice: x 9, 9 33 mod 55 14
Beto: 14 17 mod 55 9
18
Assinatura RSA (pg 194)
Supor: p A , s A o par de chaves da Alice
1. Alice: x s A mod n y e envia y para Beto y é a
assinatura da Alice sobre x Por quê?
2. Beto recupera x: y p A mod n x
Não é assinatura do Beto. Por quê?
Como Beto assinaria um x?
Como Alice e Beto, também, assinariam o mesmo documento
x?
19
Certificado Digital do ICP Brasil (PKI): AC - Autoridade
Certificadora com chave
p AC , s AC
Assinat. da AC
Alice p A RSA AC p A
Beto p B RSA AC p B
20
Números primos (pg. 242)
Inteiro p 1 é primo p é divisível apenas por 1 e por
p.
2, 3, 5, 7, 11, . . . .
Conj. dos ints mod n que são relativam/ primos a n: Z n .
Note 0 Z 10 , pois mdc0, 10 10.
1 3 7 9
1 1 3 7 9
A tabela de multiplicação para Z 10 é: 3 3 9 1 7
7 7 1 9 3
9 9 7 3 1
21
Função de Euler (pg. 251)
n: número de elems Z n , tb chamado ordem de Z n .
Se p for primo, p p 1, pois
Z p 1, 2, 3, p 1. E.g, 7 7 1 6,
Z 7 1, 2, 3, 4, 5, 6
Se n q r, q e r primos (como no RSA),
q r qr q 1r 1. E.g.,
10 2 5 2 15 1 4 |Z 10 |
Teorema de Euler (pg. 262)
a Z N : a N 1 mod N
E.g. Z 10 1, 3, 7, 9, 10 4, 3 4 mod 10 1
Consequência: a N1 mod N é a inversa de a mod N pois
22
a N1 a 1 mod N, N n
No RSA, o módulo é n q r (onde q e r são dois primos
ímpares distintos), e
a chave particular secreta é s tal que mdcs, n 1
RSA
chave pública n, p s n1 mod n
chave particular s
n1 N
tese: ps s s s 1 mod n
Problema RSA
dados n, p, y x p mod n Computacionalmente difícil calcular x
calcular x
23
24
Demonstração da inversa do RSA (pg 134):
Tese:x Z n : x p s x mod n
ps 1 mod n x ps x 1kn mod n mod n x 1 mod n mod
(algum int k) pois kn 1 mod n 1
Tese: x Z n : x kn1 mod n x
Por construção: n q. r, 2 primos
[Caso A] x múltiplo de q e de r x kn1 mod n x pois
x 0 modqr
[Caso B] x Z n x kn1 x n x 1 x mod n
1(Euler)
[Caso C] x Z n e x múltiplo de r x tr (p/ algum int. t)
1. Subcaso mod q:
x Z q x kn1 mod q x kqr x 1 mod q
25
q kr
x x x mod q
1(Euler)
26
Algoritmo de exponenciação (pg. 265)
O algoritmo trivial de multiplicar m por m, e vezes, é
muito lento.
A idéia deste algoritmo é utilizar recursivamente a
seguinte igualdade:
e/2 2
e
m se 2 divide e
m mod n
m e/2 2 m 1 se 2 não divide e
Representação binária em t 1 bits de
e b t b t1 b 1 b 0 2 , i.e.,
e b t 2 t b t1 2 t1 b 1 2 1 b 0 .
O algoritmo inicia com uma variável temporária chamada,
digamos, temp 1,
Examina cada um destes bits, da esquerda (bit mais
27
significativo) para a direita.
Faz temp temp 2 . Se b t 1 faz temp temp m
Complexidade de tempo: Olog e. Por quê? Resp:
examina cada bit uma e 1 só vez.
Exemplos:
1. e 2 10 2 , e 1. 2 1 0,
temp 1, temp 1 2 , b 1 1 temp 1 m, b 0 0, temp
2. e 3 11 2 , e 1. 2 1 1,
temp 1, temp 1 2 , b 1 1 temp 1 m, b 0 1, temp
28
Saída: m e mod n.
1. temp 1;
2. para j t, t 1, 1, 0 faça {
2.1 temp temp temp mod n;
2.2 se b j 1 então temp temp m mod n;
/*tem-se aqui temp m b t 2 tj b t1 2 tj1 b j */
29
“Quebra do Algoritmo RSA” (pg. 129)
Algoritmo mais rápido para fatoração de n: NFS -
Number Field Sieve
1.92ln n 1/3 ln n 2/3
Complexidade Oe exponencial no no. de
bits de n
Peter Shor: comp. quântico
30
RSA
Computador quântico: quebra rápida
31
Outras formas de quebrar RSA? (pg. 135)
algoritmo rápido para algoritmo rápido para
calcular sem fatorar n fatorar n
Conhece n e def.: n q 1r 1 n q r 1
q r é raiz quadr. de
q r 2 4n q 2 r 2 2qr 4qr q r 2
q é metade de q r q r 2q
32
algoritmo rápido para algoritmo rápido para
calcular s sem fatorar n fatorar n
ps 1é múltiplo de n; logo, T. Euler:
ps1
ps1
a Zn : a 1 mod n a 2 a ps1 1 mod n
(*)
Reescreve: ps 1 2 r t, t ímpar;
Miller (1995): para metade dos
2rt 2rt
a Zn : a 1 mod n (i.e., a a ps1 possui raiz
quadr. mod n x 1)
2rt
Se a é dessa metade, mdc a 1, n é uma fatoração
de n, por (*)
Tentar vários a até achar um nessa metade: máximo de 2
33
tentativas.
34
algoritmo rápido para algoritmo rápido para
calcular s equivalente s calcular s
Note: a diferença entre DOIS desses s é igual a
mmcq 1, r 1 pois:
1. ps 1 1 0 mod n, e
2. ps 2 1 0 mod n, pois ambos satisfazem
ps 1 mod n por hip.
3. logo ps 1 s 2 0 mod n implica
s 1 s 2 0 mod n
Calcular esse mmc, e como ps mmcq 1, r 1
calcular s
Lembrar que n q 1r 1
35
36
Ataque pelo expoente “pequeno”
Para reduzir o tempo de ciframento e de verificação de
assinaturas é comum usar-se um expoente público
pequeno p
O tamanho mínimo possível é 3
Quando o expoente p é pequeno, é provável que x p n e
então x p NÃO sofre redução pelo mod n,
Então a estrutura de x é parcialmente revelada; basta
calcular y 1/p x p 1/p x para obter x.
37
Timing attack (pg 137)
Como smartcards estão sendo mais utilizados para
armazenar a chave particular s b t b t1 b 1 b 0 2 do
RSA, esse ataque é importante.
x e/2 2 se 2 divide e
x e mod n “repeated
x e/2 2 x se 2 não divide e
squaring´´
Paul Kocher mostrou que
- calculando-se o tempo que o smartcard leva para fazer
uma decriptografia (ou uma assinatura)
- consegue-se recuperar o expoente particular s.
Considere uma implementação de RSA usando “repeated
squaring”
38
Supomos que o atacante consegue forçar o smartcard a
calcular x s mod n para vários x
Observe que o tempo t usado para calcular x e/2 2 mod n
não é gasto se b t 0 (o bit mais à esquerda)
Kocher correlacionou os t e os tempos gastos para
calcular x s mod n para vários x, e decidir se b t 0 ou não.
Continuando assim ele recupera b t1 , b t2 e assim por
diante.
39
Teste de primalidade
À medida que os números se tornam longos, os primos
ficam raros.
Prob{inteiro n primo} 1/ ln n. Por exemplo:
n 100 1. 000
1
ln n
1/4. 6052 0. 21715 1/ ln 1000 1/6. 9078 0. 14476
41
Algoritmo do tipo “Monte Carlo”
42
Conceitos preliminares (pg 254)
Quando n é produto de 2 primos (e.g., RSA), a Z n
possui no máximo 4 raízes quadradas mod n. Por
exemplo, se n 15 tem-se a tabela a seguir:
43
Se p 2 é um primo então 1 possui exatamente um par
de raízes quadradas mod p. E.g., 1 mod 11 1 e
1 mod 11 10 11 1 (10 1 mod 11)
x a mod p 1 2 3 4 5 6 7 8 9 10 1
46
.
Calcular
2 2c
r 1 d a mod n , r2 r 21 a 22c
mod n , r 3 r 22
t
... r t r 2t1 a 2 c a n1 mod n
Se, para j 1, 2, t, um destes r j 1 então r j1 é raiz
quadrada de 1 mod n.
Se r j1 1 e 1, pode-se afirmar com certeza que n é
composto, pois possui mais de duas 1 mod n.
Ademais, se
rt 1
então conclui-se com certeza que n NÃO é primo
pois se n fosse primo, pelo Teorema de Euler (pg 138: n
47
primo r t 1) dever-se-ia ter
r t a n1 mod n 1
Por outro lado, se os testes nos 2 ítens anteriores não
concluírem que n é composto, é provável que n seja
primo.
E então a é chamado de testemunho da primalidade, com
probabilidade 3/4. I.e., prova-se que 1/4 dos
testemunhos “mentem” que n é primo. (Exemplos a
seguir.)
Exemplo de n primo para o algoritmo:
n 2177323, n 1 2177322 2 t c 2 1088661t
1 d, d 2 1 2 mod 2177323 1 r t e o algoritmo
conclui corretamente que n é primo.
Exemplo de n composto para o algoritmo:
48
n 15, n 1 2 7t 1, c 7, a 5, a c 5 7 mod 15
5 d, d 2 5 2 mod 15 10 r t e o algoritmo conclui
corretamente que n é composto.
- Mas para a 14, d 14 7 mod 15
14 n 1, d 2 14 2 mod 15 1 r t e algoritmo
conclui incorretamente que n é primo, i.e., a 14 é
um testemunho falso.
Algoritmo "mente" p/ números de Carmichael
(pseudo-primos, raros): TODOS os testemunhos dizem
que são primos. E.g.: n 561 3 11 17.
49
Algoritmo de Miller-Rabin de primalidade (pg 141)
51
AES versus RSA
AES não permite assinatura digital
RSA é cerca de 70 vezes mais lento, mas permite
assinatura.
52
Híbrido: KEM - Key Encapsulation Mechanism
1. Alice gera uma chave K AES pseudo-aleatória - chave
volátil, ou chave de sessão.
2. Calcula K B RSAp B , K e envia K B para Beto (chave
p B é a pública do Beto)
3. Beto recupera RSAs B , K B K
4. Alice envia vários x j AESx j , K y j para Beto
5. Beto recupera AES 1 y j , K x j
Autenticação do destinatário Beto? (só o Beto?)
Autenticação da Alice? Não há.
Ganha velocidade?
53
54
A seguir:
DH, MTI, ataques
Rabin, ElGamal, DSS
ECC: curvas elípticas
55