Buscar

Aula04 - RSA

Prévia do material em texto

Aula 04 - RSA
(Stallings, Capı́tulo 8 e 9)
1
Cifras Simétricas vs Cifras Assimétricas
Cifras Simétricas: única chave utilizada na criptografia e decrip-
tografia
C “ EpM,Kq eM “ DpC,Kq
Cifras Assimétricas: chaves diferentes utilizadas na criptografia
e decriptografia
C “ EpM,KEq eM “ DpC,KDq
2
Confidencialidade: Criptografia Assimétrica
Enc - E Dec - D
c
A
KPU KPR
S
m m
R
‚ Adversário não conhece KPR, mas conhece KPU
‚ c “ Epm,KPUq em “ Dpc,KPRq, isto é,m “ DpEpm,KPUq,KPRq
‚ E e D são fáceis de calcular (complexidade polinomial)
3
‚ dados E, D, c e KPU (KPR desconhecido) é difı́cil (ideal-
mente complexidade exponencial) calcular m
Cifras de Chave Pública
4
Cifras de Chave Pública
Etapas:
1. cada usuário gera par de chaves para criptografia e decrip-
tografia das mensagens
2. cada usuário disponibiliza publicamente a chave pública
KPU (registro público, inı́cio da troca de mensagens, ar-
quivo em comum, etc.)
3. cada usuário mantem a chave privada KPR apenas de seu
conhecimento
4. se Bob deseja enviar uma mensagem para Alice, Bob crip-
tografa a mensagem com a chave pública de Alice
5. Alice decriptografa a mensagem usando sua chave privada
6. outros usuários não podem decriptografar a mensagem,
apenas Alice
5
Aplicações de Chave Pública
Criptografia/decriptografia: emissor criptografa uma mensa-
gem com a chave pública do destinatário
Assinatura Digital: o emissor assina uma mensagem com sua
chave privada ao criptografar um texto conhecido pelo receptor
Troca de chave: os dois lados cooperam para trocar uma chave
simétrica de sessão
6
Requisitos de Chave Pública
Definidos por Diffie e Hellman
1. ser computacionalmente fácil para uma parte B gerar um
par (chave pública KPUb, chave privada KPRb).
2. ser computacionalmente fácil para um emissor A encriptar
uma mensagem, isto é, computar
C “ EpM,KPUbq
3. ser computacionalmente fácil para o receptor B decripto-
grafar um texto cifrado, isto é, computar
M “ DpC,KPRbq “ DpEpM,KPUbq,KPRbq
7
4. ser computacionalmente inviável para um adversário deter-
minar a chave privada KPRb apenas conhecendo a chave
pública KPUb e as funções Dp¨q e Ep¨q
5. ser computacionalmente inviável para um adversário de-
terminar o texto aberto M apenas conhecendo a chave
pública KPUb e as funções Dp¨q e Ep¨q
6. as duas chaves podem ser aplicadas em qualquer ordem
M “ DpEpM,KPUbq,KPRbq “ DpEpM,KPRbq,KPUbq
RSA - Rivest-Shamir-Adleman
Geração de Chaves
‚ Selecione p e q primos e p ‰ q
‚ Calcule n “ pˆ q
‚ φpnq “ pp´ 1q ˆ pq ´ 1q, φpnq é o de tociente de n
‚ Selecione o inteiro e, tal que 1 ă e ă φpnq eMDCpφpnq, eq “
1, isto é, tociente de n e e são relativamente primos
‚ Calcule d “ e´1 mod φpnq
‚ Chave pública: KPU “ te, nu
‚ Chave privada: KPR “ td, nu
8
Propriedade
‚ se M ă n, então Med mod n “M
Criptografia
‚ Texto claro é um número M ă n
‚ Texto cifrado é calculado por C “Me mod n
Decriptografia
‚ Texto cifrado é um número C ă n
‚ Texto claro é obtido por M “ Cd mod n
Exercı́cio
Escolha dois números primos pequenos p e q
Calcule n “ pˆ q
Calcule o tociente φpnq “ pp´ 1q ˆ pq ´ 1q
Escolha e tal que 1 ă e ă φpnq e MDCpφpnq, eq “ 1
Calcule d “ e´1 mod φpnq
Escolha um número (mensagem) aberto M ă n
Calcule o número (mensagem) cifrado C “Me mod n
Teste se M “ Cd mod n
9
Prova - Med mod n “M
Definição: a função tociente de Euler φpnq é definida como o
número de inteiros positivos menores que n e relativamente pri-
mos de n.
Propriedade 1: se p é primo, então φppq “ p´ 1
Propriedade 2: se p e q são primos e p ‰ q, então φppqq “
pp´ 1qpq ´ 1q
10
Prova - Med mod n “M
Teorema de Euler: seja a e n relativamente primos, então
aφpnq mod n “ 1
Prova: considere o conjunto ordenado R dos inteiros positivos
menores que n e relativamente primos de n e rotule-os da se-
guinte forma:
R “ tx1, x2, . . . , xφpnqu.
Construa também o conjunto ordenado S da seguinte forma:
S “ tpax1 mod nq, pax2 mod nq, . . . , paxφpnq mod nqu
Temos que S é uma permutação de R, pois:
11
1. axi mod n é relativamente primo de n e todos elementos
em S são menor que n e relativamente primo de n.
2. Não existem duplicatas em S, pois se axi mod n “ axj
mod n, então xi “ xj.
Então temos:
śφpnq
i“1 paxi mod nq “
śφpnq
i“1 xi
p
śφpnq
i“1 axi mod nq mod n “
śφpnq
i“1 xi mod n
aφpnq
śφpnq
i“1 xi mod n “
śφpnq
i“1 xi mod n
aφpnq mod n “ 1 mod n
Corolário: seja a e n relativamente primos, então
ax mod n “ apx mod φpnqq mod n.
Prova - Med mod n “M
Caso 1: M e n são relativamente primos. Temos:
Med mod n “ M ped mod φpnqq mod n
“ M1 mod n “M
Caso 2: M e n não são relativamente primos, então M P
t0,1p,2p, . . . , pq´1qp,1q,2q, . . . , pp´1qqu. O caso M “ 0 é
trivial, considere o caso M “ xp. Temos:
pMed ´Mq “ pxpqed ´ pxpq
ppxpqed ´ pxpqq mod q “
ppxpqpedq mod φpqq mod q ´ xp mod qq mod q “
ppxpq1 mod q ´ xp mod qq mod q “ 0
ppxpqed ´ pxpqq mod p “ 0
ppxpqed ´ pxpqq “ kpq ô pMed ´Mq mod n “ 0
12
Implementação
Requisitos:
‚ Ser possı́vel encontrar valores de e, d, n tais queMed mod n “
M para todo M ă n
‚ Ser relativamente fácil calcular Me mod n e Cd mod n
para todo M,C ă n
‚ Ser inviável determinar d dados e e n
Chaves:
13
‚ p, q são dois números primos (privados e escolhidos)
‚ n “ pq (público e calculado)
‚ e com MDCpφpnq, eq “ 1 e 1 ă e ă φpnq (público e
escolhido)
‚ d “ e´1 mod φpnq (privado e calculado)
Exercı́cio
1. Considere que se deseje criptografar textos com 8 bits. De-
termine um par de chaves pública e privada para criptogra-
far tais textos.
2. Considere que você intercepte a seguinte chave pública de
um servidor e “ 77, n “ 1829 e uma mensagem encrip-
tada C “ 56 utilizando tal chave.
(a) Determine a chave privada do servidor.
(b) Determine o texto claro M .
14
Implementação - Exponenciação
Como calcular ab mod n?
Técnica Ingênua: multiplique a b vezes e depois tire o módulo
aˆ aˆ aˆ . . .ˆ aˆ a mod n.
Problemas: valor pode ficar muito grande e é muito lento.
Técnica Ingênua com módulo: multiplique a b vezes, mas tire o
módulo após cada multiplicação paˆ a mod nˆ a mod nˆ
. . .ˆ a mod nˆ a mod nq.
Problema: é muito lento.
Exponenciação com Representação Binária: considere o exem-
plo x11 mod n
15
1. pode-se representar x11 mod n “ x8`2`1 mod n “
ppx8 mod nq ˆ px2 mod nq ˆ px1 mod nqq mod n
2. pode-se obter x2
n
realizando nmultiplicações: x2
0
“ x1 “
x e x2
n
“ x2
n´1
ˆ x2
n´1
mod n
3. se expressarmos b como um número binário bkbk´1 . . . b0,
temos:
b “
k
ÿ
i“1
bi2
i ab “ a
řk
i“1 bi2
i
“
k
ź
i“1
abi2
i
ab mod n “
«
k
ź
i“1
abi2
i
ff
mod n “
˜
k
ź
i“1
”
abi2
i
mod n
ı
¸
mod n
Implementação - Exponenciação
EXPONENCIACAO(a,b,n)
1. cÐ 0
2. fÐ 1
3. kÐ tlog(b)u
4. for i=k:-1:0
5. cÐ 2 ˆ c
6. fÐ f ˆ f mod n
7. if bi = 1
8. cÐ c ` 1
9. fÐ f ˆ a mod n
16
Implementação - Números Primos
Para escolher as chaves, precisamos escolher números primos
p e q
Solução Ingênua: dado um candidato ı́mpar a número primo n,
testa para todo 1 ă a ă
?
n se n mod a “ 0
Solução Miller-Rabin: considera propriedade de números pri-
mos para realizar o teste de primalidade e executa o teste várias
vezes.
Resultado 1: a probabilidade de que um número não primo
passe no teste é menor que 1
4
Resultado 2: em média lnN
2 testes são necessários para en-
contrar um primo próximo a N
17
Implementação - Números Primos
Propriedades (Miller-Rabin):
1. Qualquer inteiro positivo ı́mpar n ě 3 pode ser expresso
da seguinte forma:
n “ 2kq ` 1, com k ą 0, q ı́mpar
2. Se n é primo e 0 ă a ă n, então a2 mod n “ 1 se e
somente se:
a mod n “ 1 ou a mod n “ n´ 1
3. Se n é primo e 1 ă a ă n ´ 1, então uma das duas
condições é verdadeira:
18
(a) aq mod n “ 1
(b) um dos números aq, a2q, a4q, . . . , a2
k´1q tem módulo
em n igual a n´ 1
Implementação - Números PrimosTEST-PRIMO(n,k,q)
1. selecione um inteiro aleatório a, tal que 1<a<n-1
2. if aq mod n=1 então return inconclusivo
3. for j=0 até k-1 faça
4. if a2
jq mod n=n-1 então return inconclusivo
5. return composto
19
GF ppq - Inverso Multiplicativo
Como obter o inverso multiplicativo sem construir toda a tabela
para multiplicação?
‚ algoritmo de Euclides encontra o MDC (Máximo Divisor Co-
mum) entre dois inteiros positivos, e usa a seguinte propri-
edade:
MDCpa, bq “MDCpb, amod bq
‚ algoritmo de Euclides Estendido encontra o Inverso Multi-
plicativo
‚ se MDCpm, bq “ 1 (m e b são relativamente primos),
então b tem um inverso multiplicativo
20
GF ppq - Algoritmo de Euclides
EUCLIDES-MDC(a,b) : a>b>0
1. AÐ a
2. BÐ b
3. if B=0 return MDC(a,b)=A
4. RÐ A mod B
5. AÐ B
6. BÐ R
7. goto 3
21
GF ppq - Algoritmo de Euclides
Exemplo: calcule MDC(1234,432)?
22
GF ppq - Algoritmo de Euclides Estendido
EUCLIDES-ESTENDIDO(m,b) : m>b>0
1. (A1,A2,A3)Ð (1,0,m)
2. (B1,B2,B3)Ð (0,1,b)
3. if B3=0 return MDC(m,b)=A3 e não existe inverso
4. if B3=1 return MDC(m,b)=B3 e b´1mod m=B2
5. QÐ
X
A3
B3
\
6. (T1,T2,T3)Ð (A1-QˆB1,A2-QˆB2,A3-QˆB3)
7. (A1,A2,A3)Ð (B1,B2,B3)
8. (B1,B2,B3)Ð (T1,T2,T3)
9. goto 3
23
GF ppq - Algoritmo de Euclides Estendido
Exemplo: calcule inverso multiplicativo de 1234 mod 1237?
24
Implementação - Relativamente Primos
Solução: escolha um número aleatório e utilize o algoritmo de
Euclides para testar se é relativamente primo.
Resultado: a probabilidade de que dois números aleatórios se-
jam relativamente primos é 0,6.
25

Continue navegando