• Nenhum resultado encontrado

Codificação de Informação 2010/2011

N/A
N/A
Protected

Academic year: 2021

Share "Codificação de Informação 2010/2011"

Copied!
21
0
0

Texto

(1)

Codificação
de
Informação
 2010/2011


Sumário:



•  
Criptografia
de
chave
pública


Tipos
de
chave:
cifras
simétricas


•  Chave
comum
à
operação
de
cifrar
e
de
decifrar


•  Chave
secreta



 P

mensagem
em
claro,
C
mensagem
cifrada
 
 K
chave
usada
para
cifrar
e
decifar




 f
função
usada
para
cifrar








 
 f

‐1


função
usada
para
decifrar


C
=
f
(
K,
P)


P
=
f

‐1


(
K,C)


(2)

Tipos
de
chave:
Cifras
assimétricas


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 3


•  Kp
Chave
pública
para
cifrar


•  Ks
Chave
privada
para
decifrar


•  Estas
chaves
estão
ligadas
a
uma
determinada
enGdade
com
a
qual
 se
quer
comunicar



 Kp
diferente
de

Ks



 f
função
para
cifrar







f‐1
função
para
decifrar



 Estas
funções
exigem
normalmente
tempos
de
execução
muito
 mais
longos
do
que
as
funções
usadas
nas
chaves
simétricas
 
 
 
 


C
=
f
(K

p


,
P)



 
 
 
 P
=
f

‐1


(K

s


,
C)


Criptografia
de
chave
secreta


•  A
criptografia
de
chave
secreta/única

usa
apenas
 uma
chave



•  ParGlhada
pelo
emissor
e
pelo
receptor



•  Se
a
chave
é
descoberta
as
comunicações
estão
 compromeGdas


•  É
simétrica,
os
intervenientes
são
pares



•  Assim,
não
protege
o
emissor
no
caso
em
que
um


intruso
forja
uma
mensagem
e
declara
que
esta


provém
do
emissor



(3)

Desvantagens
chave
simétrica


•  Problema
de
distribuição
de
chaves


•  Chave
deve
ser
alterada
com
uma
certa
 frequência


•  Algoritmos
de
assinatura
digital
que
uGlizam
 chaves
simétricas
necessitam
de
chaves
 grandes
o
que
complica
ainda
mais
o
 problema
da
distribuição
de
chaves.


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 5


Criptografia
de
chave
pública


•  Provavelmente
o
avanço
mais
significaGvo
em
3000
anos
de
criptografia


•  NSA
(US):
1960’s
(?)


•  CESG
(UK):
1970


• James
Ellis,
relatório
classificado


CESG
não
viu
as
potencialidades


Diffie
&
Hellman:
1976


•  RSA:
1978
(1ª
realização
práGca)


•  Usa
duas
chaves
–
uma
pública
e
outra
privada


•  Assimétrica
porque
os
parGcipantes

não
têm
o
mesmo
papel



•  Não
subsGtui
mas
complementa
a
criptografia
de
chave
secreta


(4)

Dept.
InformáGca
/
FCT
 16
Novembro
2010
 7


Criptografia
de
chave
pública


•  A
criptografia
de
chave
pública/duas‐chaves/

assimétrica
envolve
o
uso
de
duas
chaves:



• a
chave‐pública,
que
é
conhecida
de
todos,
e
 pode
ser
usada
para
cifrar
mensagens,
e
verificar
 assinaturas



• a
chave‐privada,
conhecida
só
pelo
receptor,
 usada
para
decifrar
mensagens,
e
assinar
(criar)
 assinaturas


Criptografia
de
chave
pública


• É
assimétrica
porque:



 Aqueles
que
podem
cifrar
mensagens
e


verificar
assinaturas
não
podem
decifrar


mensagens
e
criar
assinaturas


(5)

Dept.
InformáGca
/
FCT
 16
Novembro
2010
 9


Criptografia
de
chave
pública


Porquê
a
criptografia
de
chave
pública?


•  Desenvolvida
para
resolver
duas
questões:



•  Distribuição
de
chaves
–
como
ter
comunicações
 seguras
sem
ter
que
trocar
a
chave
na
rede


•  Assinaturas
digitais
–
como
verificar
que
uma
 mensagem
chegou

intacta
do
emissor,
e
que
este
é
 quem
diz
ser


(6)

CaracterisGcas
da
criptografia
de

 chave
pública


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 11


•  Depende
de
duas
chaves
que
devem
ter
as
seguintes
 caracterísGcas:


• Computacionalmente
impossível
conhecer
a
chave
para
 decifrar
sabendo
apenas
o
algoritmo
e
a
chave
usada
 para
cifrar



• Computacionalmente
fácil
cifrar/decifrar
mensagens

 quando
a
chave
correcta
é
conhecida


• O
papel
das
duas
chaves
pode
ser
trocado


Segurança
de
sistemas
com
chave
pública


•  Ataques
de
força
bruta
por
procura
exaus@va
são
teoricamente

 possíveis



•  Mas
as
chaves
são
demasiado
grandes
(>512bits)



•  Segurança
baseia‐se
numa
suficientemente
grande
diferença
 entre
a
facilidade
em
cifrar/decifrar
e
a
dificuldade

em
fazer
a
 cripto‐análise


•  Obter
a
chave
privada
a
parGr
da
chave
pública
é
possível


teoricamente,
mas
demasiadamente
pesado
computacionalmente
 para
ser
possível
na
práGca



•  Os
métodos
conhecidos
para
cifrar
e
decifrar
mensagens
são
 computacionalmente
bastantes
pesado.
Assim
sendo,
são
lentos
 quando
comparados
com
os
métodos
de
chave
secreta


(7)

Cifra
assimétrica


•  Comunicação
Alice
para
Bob


•  Bob
calcula
o
par
(KP

B

,
KS

B

)


– KSB
é
manGdo
secreto,
KPB
é
publicado
(por
exemplo
na
 página
web
do
Bob)


•  Alice


– Obtém
a
chave
pública
KPB
de
Bob
e,


– cifra
a
mensagem
P
com
a
chave
KPB
do
Bob
 
 C=
cifra_assimétrica_E(KPB,P)


•  Bob


– Usa
a
chave
privada
KSB
do
Bob
para
decifrar
C:



 P
=
cifra_assimétrica_D(KSB,P)



 

 




Dept.
InformáGca
/
FCT
 16
Novembro
2010
 13


Aplicação
à
assinatura
digital


• Procedimento:


• Alice


• Gera
um
resumo
(digest

ou
hash)

h=h(m)
da
mensagem


• Calcula
uma
assinatura
s
para
m
usando
a
sua
chave

privada
KPA:
 

 
 s
=
RSA_D(KSA,h)


• Envia
m
e
s
a
Bob


• Bob


• Calcula
h=h(m)
a
parGr
de

m


• Decifra
h’=RSA_E(KPA,h)
usando
a
chave
pública
de
Alice



• Verifica
se
h
e
h’
são
iguais


• GaranGda
a
autenGcidade
do
emissor
e
a
integridade
da
 mensagem


(8)

Escolha
do
algoritmo


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 15


•  Tempo
de
execução
de
um
algoritmo


•  Depende
da
dimensão
do
problema


•  Exemplo:
Ordenar
10
números
leva
menos
tempo
 que
ordenar

10000
números


•  Para
alguns
problemas
sabe‐se
o
número
de
 passos
que
qualquer
algoritmo
leva
a
resolver
 um
problema
com
n
elementos


•  Ordenar
n
números
leva

n
log
n
passos


Escolha
do
algoritmo


•  É
necessário
um
problema
que
necessite
de
 pelo
menos
um
número
exponencial
de
 passos


•  São
conhecidos
problemas
em
que
as
 soluções
conhecidas
levam
tempo
 (sub)exponencial



•  Factorizar

primos


•  Calcular
o
logaritmo
discreto


•  ...


(9)

Troca
de
chaves
de
Diffie
Helman


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 17


•  Inventado
por
Diffie
&
Helman
em
1976


•  Primeira
publicação
sobre
criptografia
de
chave
pública


•  Método
permite
que
dois
uGlizadores
concordem
 numa
chave
simétrica
de
forma
segura.
Essa
chave
é
 depois
usada
para
cifrar/decifrar
as
mensagens


•  Só
para
troca
de
chaves


•  Não
uGlizado
para
cifrar/assinar


•  Chaves
de

1024
bits


•  Baseado
na
dificuldade
de
calcular
o
logaritmo
 discreto


Logaritmos
discretos


•  Em
aritméGca
módulo
p:


• a
raiz
primi0va
de
um
número
primo
p
é
o
valor
a
tal
que
 as
suas
potências
geram
todos
os
inteiros
de
1
a
p‐1



• Se
a
é
raiz
primiGva
de
p,
os
números
a
mod
p,
a2
mod
p,
…,
 a
p‐1
mod
p
são
disGntos
e
correspondem
a
uma


permutação
dos
números
de
1
a
p‐1


• Para
qualquer
inteiro
b
e
uma
raiz
primiGva
a
de
um
 número
primo
p,
pode‐se
encontrar
um
i
tal
que


• 






b
=
ai
mod
p


(em
que
0
<=
i
<=
p
–
1)


• b
é
o
logaritmo
discreto
módulo
p
para
a
base
a


(10)

Logaritmo
discreto


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 19


•  Computação
módulo
n


•  Exemplo
módulo
13



1
 7
 10
 5


9
 11
 12
 6


3
 8
 4
 2


12
 11
 10
 9


8
 7
 6
 5
 4
 3
 2
 i
 1


2
é
raiz
primiGva
de
13
(módulo
13)


b
=
2

i


mod
13

b
=
a

i


mod
13

b


Método
de
Diffie
Hellman


•  Todos
os
uGlizadores
concordam
nos
seguintes
 valores:


• Um
número
primo
q

muito
grande


• α
é
uma
raiz
primiGva
de
q
(em
módulo
q)


•  Cada
uGlizador
(eg.
A)
gera
a
sua
chave


• Escolhe
uma
chave
secreta
(número):
x

A

< q



• Calcula
a
sua
chave
pública:
y

A

= α

xA

mod q

•  
Cada
uGlizador
publica
a
sua
chave
pública
y

A

(11)

Chaves
de
Diffie
Hellman


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 21


Elementos
globais
 q,
α


Geração
de
chave
 Seleccionar
XA<q
 Calcular
YAXA
mod
q


K
=
(YB)XA
mod
q


Geração
de
chave
 Seleccionar
XB<q
 Calcular
YBXB
mod
q


K
=
(YA)XB
mod
q


UGl.
A
 UGl.
B


YA
 YB


Chaves
de
Diffie
Hellman


(12)

Troca
de
chaves
de
Diffie
Hellman


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 23


•  A
chave
parGlhada
para
uma
sessão
dos
uGlizadores
A
&
B
é
KAB:





•  K

AB

= α

xA.xB

mod q

•  = y

AxB

mod q (que B pode calcular)

•  = y

BxA

mod q (que A pode calcular)

•  KAB
é
usada
como
chave
de
sessão
numa
comunicação
entre

 Alice
e
Bob


•  KAB
pode
ser
usada
noutras
sessões
entre
Alice
e
Bob


•  Um
intruso
necessita
um
dos

x;
para
isso
tem
de
calcular
um
 logaritmo
discreto,
o
que
é
computacionalmente
muito
di|cil


Porque
é
que
D‐H
funciona?


K = (Yb)

xa

mod q =

= (a

xb

mod q)

xa

mod q =

= a

xb.xa

mod q =

= (a

xa

mod q)

xb

mod q=

= (Ya)

xb

mod q

(13)

Exemplo
de
Diffie
Helman


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 25


•  Os
uGlizadores
Alice
e
Bob
querem
trocar
chaves:


•  Concordam
no
primo
q=353
e
α=3

•  Seleccionam
ao
acaso
as
chaves
secretas:


• A
escolhe
xA=97, B
escolhe
xB=233

•  Calculam
as
chaves
públicas:


• yA=397 mod 353 = 40 (Alice)


• yB=3233 mod 353 = 248 (Bob)


•  Calculam
a
chave
de
sessão
:


• KAB= yBxA mod 353 = 24897 = 160 (Alice)


• KAB= yAxB mod 353 = 40233 = 160 (Bob)


Segurança
de
Diffie
Hellman


•  X

A


e
X

B


são
privadas;
o
intruso
conhece
q,
α, Y

A

, Y

B

•  Para
furar
a
cifra
é
preciso
calcular
o
logaritmo
 discreto


X

B


=
logaritmo
discreto



α,q


(Y

B

)


•  É
fácil
calcular
exponenciais
módulo
p,
mas
é
muito


di|cil
calcular
logaritmos
discretos


(14)

RSA


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 27


•  Rivest,
Shamir
&
Adleman

do
MIT
em
1977



•  Esquema
de
chave
pública
mais
bem
conhecido
e
mais
uGlizado




RSA


•  Baseado
em
exponenciação

de
inteiros
usando
 aritméGca
modular



 Exponenciação
leva
O((log
n)

3

)
operações
(fácil
 cifrar/decifrar)



•  Usa
inteiros
muito
grandes
(eg.
1024
bits)


•  Segurança
devida
à
dificuldade
em
factorizar
 números
primos
muito
grandes




 Factorização
leva
O(e


log
n
log
log
n

)
operações
(muito


di|cil
obter
a
chave
privada
a
parGr
da
chave


pública)


(15)

Geração
de
chaves
RSA


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 29


•  Cada
uGlizador
calcula
um
par
chave
pública/chave
privada


•  Selecciona
2
números
primos
aleatoriamente
‐
p, q



•  Calcula
N = p.q

ø(N)=(p-1)(q-1)



•  Selecciona
a
chave
de
cifra


e que
deve
cumprir:

1<e<ø(N), gcd(e,ø(N))=1

•  Resolve
a
equação
seguinte
para
determinar
a
chave
d

 (e.d)mod ø(N)=1 e 0≤d≤N



•  Publica
a
sua
chave
pública:
KP={e,N}



•  Mantém
secreta
a
sua
chave
privada:
KS={d,N}



Uso
do
RSA


•  Para
cifrar
a
mensagem
M,

o
emissor:



 Obtém
a
chave
pública
do
receptor
K

P

={e,N}




 Calcula:
C=M

e

mod N,
em
que
0≤M<N

•  Para
decifrar
o
texto
cifrado
C
o
desGnatário:



 
 usa
a
sua
chave
privada
K

S

={d,N}




 
 calcula:
M=C

d

mod N



•  Note‐se
que
M
tem
de
ser
menor
que
o
módulo
N


(divide‐se
o
texto
em
blocos
de
x
bits,
tal
que
2

x

<N

e


o
maior
possível)


(16)

Porque
é
que
o
RSA
funciona?


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 31


• Teorema
de
Euler:



aø(n)mod N = 1

• em
que
gcd(a,N)=1

• No
RSA
temos:


• N=p.q

• ø(N)=(p-1)(q-1)



• Escolhem‐se

e
&
d
para
serem
inversos
mod ø(N)



• Portanto
e.d=1+k.ø(N)
para
algum
k


• Assim
sendo
(
sempre
em
aritméGca

mod N

)



Cd mod N = (Me)d mod N = M1+k.ø(N) mod N = M1.(Mø(N))k mod N = M1.(1)k mod N =

M1 mod N = M

Exemplo
RSA


• Seleccionar
primos:
p=17 & q=11

• Calcular n = pq =17×11=187

• Calcular ø(n)=(p–1)(q-1)=16×10=160

• Seleccionar
e
:
gcd(e,160)=1; escolher
e=7

• Determinar
d:
de=1 mod 160
e
d < 160; 

d=23
uma
 vez
que
23×7=161

• Publicar
a
chave
pública
KU={7,187}

• Guardar
a
chave
privada
KR={23,187}

(17)

Dept.
InformáGca
/
FCT
 16
Novembro
2010
 33


Exemplo
RSA


•  Exemplo
da
fase
de
cifrar/decifrar
do
RSA:



•  Dada
a
mensagem

M = 88


(note‐se
que
88<187)


•  Cifrar:


C = 88

7

mod 187 = 11



•  Decifrar:


M = 11

23

mod 187 = 88



Outro
exemplo
não
realista


(18)

Dept.
InformáGca
/
FCT
 16
Novembro
2010
 35


Exemplo
mais
realista
(1)


p e q têm 512 bits a que corresponde cerca de 160 dígitos decimais;

n e Φ têm 309 dígitos

Exemplo
mais
realista
(2)


p e q têm 512 bits a que corresponde cerca de 160 dígitos decimais; n e Φ têm 309 dígitos

THIS IS A TEST passa a

C = P

e

mod n

THIS IS A TEST

P = C

d

mod n

(19)

Aspectos
computacionais
do
RSA


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 37


• Geração
da
chave


• Exponenciação


•  P

e


e
C

d


podem
produzir
resultados
intermédios
 gigantescos


• Propriedades
da
aritméGca
modular


[(a mod n) * (b mod n)] mod n = (a * b) mod n

• Podem‐se
produzir
resultados
intermédios


Geração
da
chave
RSA


•  Os
uGlizadores
do

RSA
têm
de:


•  determinar
dois
primos
ao
acaso

p, q



•  Seleccionar

e
ou
d
e
calcular
o
outro



•  Os
primos
p,q
não
podem
ser
determinados
facilmente
a
parGr
 de
N=p.q

•  Têm
de
ser
suficientemente
grandes


•  Não
há
métodos
directos
para
determinar
primos
muito
 grandes;
Gpicamente
usam‐se
números
aleatórios
e
testes
 de
“primalidade”.
Esses
testes
não
garantem
que
o


número
seja
primo



(20)

Geração
da
chave
RSA
–
algoritmo
 Miller‐Rabin


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 39


1.  Obter
um
número
ímpar
n
ao
acaso


2.  Obter
outro
número
inteiro
ao
acaso
(1< a < n)


3.  Aplicar
a
a
e
n um
teste;
se
o
teste
falha,
rejeitar
o
número
 e
ir
para
1


4.  Se
n
passou
o
teste
3
para
um
nº
suficientemente
grande
de
 tentaGvas
aceitar
n


5.  A
teoria
dos
números
diz
que
os
números
primos
perto
de
X
 estão
espaçados
de
ln
X;
logo
para
determinar
um
primo
 serão
necessárias
ln(N)/2
tentaGvas


Algoritmo
para
o
teste
de
primalidade
 probabilisGca
de
Miller‐Rabin


Miller-Rabin(n,t)

INPUT: An odd integer n > 1 and a positive security parameter t

OUTPUT: the answer "COMPOSITE" or "PRIME"

Write n - 1 = 2sr such that r is odd Repeat from 1 to t

Choose a random integer a which satisfies 1 < a < n - 1 Compute y = ar mod n

IF y <> 1 and y <> n-1 then DO j := 1

WHILE j < s and y <> n - 1 then DO y := y2 mod n

IF y = 1 THEN return("COMPOSITE") j := j + 1

IF y <> n - 1 THEN return("COMPOSITE") return("PRIME")

(21)

Segurança
do
RSA


Dept.
InformáGca
/
FCT
 16
Novembro
2010
 41


• Três
abordagens
para
atacar
o

RSA:


• 
Força
bruta
sobre
a
chave
(impossível
dado
o
 número
de
bits
da
chave)


• 
Baseados
na
teoria
dos
números
(tentaGva
de
 factorizar
o
módulo
N)


• 
Por
medida
do
tempo
que
demora
a
correr
o
 algoritmo
para
decifrar


Problema
da
factorização


•  Três
formas
:


•  factorizar
N=p.q,
encontrar
ø(N)
e
depois
d


•  determinar
ø(N)ou
d
directamente



•  Pensa‐se
que
todos
eles
são
equivalentes
a
factorizar:


•  Melhorias
lentas
ao
longo
dos
anos


• Em
Agosto
de
1999
conseguiu‐se
furar
o
RSA
com
130
 dígitos
decimais

(512
bits)
usando
o
algoritmo



“Generalized
Number
Field
Sieve”


•  Hoje
em
dia
a
segurança
é
garanGda
usando
chaves
entre
os
 1024
e
2048
bits


Referências

Documentos relacionados

10.2 Agrotóxicos utilizar produtos químicos registrados, mediante receituário agronômico, conforme legislação vigente; utilizar sistemas adequados de amostragem e diagnóstico

Assis Marinho (Hospital Regional de Ilha Solteira) informou-nos que pessoas com paralisia cerebral, lesão medular e acidente vascular cerebral (AVC), por exemplo, serão beneficiadas

A competência para autenticação de livros digitais é da Junta Comercial. As pendências relativas à autenticação devem ser verificadas diretamente na Junta Comercial..

Destarte, não havendo provas de que o fracionamento indevido dos pagamentos gerou efetivo prejuízo aos cofres públicos e nem que o Prefeito tenha agido deliberadamente para tal fim,

Dispositivos adaptativos apresentam forte potencial de aplicação para a construção de um modelo computacional unificado, pois permitem representar fenômenos

1 hora para cada equipe que não realizar alguma das modalidades extra (natação, cavalgada, patinação, etc) Todas as provas do Haka Expedition são válidas para o RBCA duplas e solo

Anais do X Encontro Nacional de Educação Matemática Comunicação Científica 8 Diante dessa situação, ao refletirmos sobre a formação de professores que ensinam

A crise causada pela pandemia do novo Corona vírus impactou a maneira como as pessoas vivem, se relacionam e consomem. Mais do que uma mudança imediata na rotina da