• Nenhum resultado encontrado

topico 05 criptografia de chave publicas

N/A
N/A
Protected

Academic year: 2021

Share "topico 05 criptografia de chave publicas"

Copied!
31
0
0

Texto

(1)

Criptografia de Chaves Públicas

Criptografia de chaves públicas. Conceitos de chaves

públicas e privadas. Definições. Aplicações. Requisitos. RSA. Equivalência de segurança entre criptografia simétrica x ECC x RSA/DSA.

(2)

Criptografia de chave pública

a criptografia tradicional de chave

privada/secreta/chave única usa uma

chave

compartilhada por emissor e receptor

se essa chave

for divulgada, as

informações

ficam comprometidas

também é simétrica, partes são iguais

portanto não protege o remetente de um

receptor que forge uma mensagem e declare

que foi enviada pelo remetente

(3)

Criptografia de chave pública

provavelmente, o mais significativo avanço em

3000 anos de história da criptografia.

usa duas chaves – uma pública e uma privada

é assimétrica uma vez que as partes não são

iguais

usa aplicação inteligente do conceito da teoria

dos números para função

em vez de substituir, complementa a

criptografia de chave pública

(4)

Por que criptografia de chave pública?

• resolvida para solucionar duas questões de chave: – distribuição de chave – como ter comunicação

segura, em geral, sem ter de confiar em um CDC com sua chave

assinatura digital – como verificar que uma

mensagem chegou intacta de quem se diz remetente • invenção pública de Whitfield Diffie & Martin Hellman, da

(5)

Criptografia de chave pública

a criptografia de chave pública/de duas

chaves/assimétrica envolve o uso de duas chaves:

uma chave pública, que pode ser conhecida por qualquer um e pode ser usada para criptografar

mensagens e verificar assinaturas

uma chave privada, conhecida somente pelo destinatário, usada para decriptografar

mensagens, e sinais (cria) assinaturas

• é assimétrica porque

– aqueles que criptografam a mensagem ou verificam a assinatura não podem decriptografar mensagens ou criar assinaturas.

(6)
(7)

Características da chave pública

o algoritmo de chave pública conta com duas

chaves, em que:

– é computacionalmente inviável determinar a chave de decriptografia conhecendo-se apenas o algoritmo e a chave de criptografia

– é computacionalmente fácil de/criptografar

mensagens quando a chave de de/criptografia é conhecida

– qualquer uma das duas chaves relacionadas pode ser usada para criptografia, com a outra usada para a

(8)
(9)

Aplicações da chave pública

• pode ser classificada em três categorias:

criptografia/decriptografia (oferece sigilo)

assinaturas digitais (oferece autenticação)

troca de chave (de chaves de sessão – criptografia simétrica)

• alguns algoritmos são aplicáveis a vários usos, outros são de uso específico

(10)

Segurança de esquemas de chave pública

como em esquemas de chave privada uma procura

exaustiva por ataque de força bruta é sempre

teoricamente possível

• mas as chaves usadas são muito grandes (>512bits) • a segurança reside em uma diferença grande o

suficiente de dificuldade entre de/criptografia fácil e

problemas difíceis de criptoanálise

geralmente, o problema difícil é conhecido, mas é difícil o suficiente para tornar o ataque impraticável

requer o uso de números muito grandes

portanto, é lento comparado a esquemas de chave privada

(11)

RSA

• criado por Rivest, Shamir & Adleman do MIT em 1977 • é o esquema de chave pública mais conhecido e usado • baseado na exponenciação de um conjunto de números

finito sobre inteiros módulo a (sendo a primo) • usa inteiros grandes (por exemplo, 1024 bits)

• a segurança se deve à dificuldade de fatorar números grandes

(12)

Geração de chaves

do

RSA

• cada usuário gera um par de chaves pública/privada ao: • selecionar aleatoriamente dois números primos grandes

p, q

• calcular seu sistema módulo n=p.q

– Nota: ø(n)=(p-1)(q-1)

selecionar aleatoriamente a chave de criptografia e

• onde 1<e<ø(n), mdc(e,ø(n))=1 (ou seja, ø(n) e “e” são

primos entre si, mas não obrigatoriamente primos.

• resolver a seguinte equação para encontrar a chave de decriptografia d

– e.d=1 mod ø(n) e 0≤d≤n

• publicar sua chave pública de criptografia: PU={e,n} • manter secreta sua chave privada de decriptografia:

(13)

Uso do RSA

para criptografar a mensagem M o emissor :

obtém a chave pública do receptor PU={e,n} – calcula: C = Me mod n, onde 0≤M<n

para decriptografar o texto cifrado

C

o

proprietário :

– usa sua chave privada PR={d,n} – calcula : M = Cd mod n

observe que a mensagem M deve ser menor que

o módulo n (

em bloco)

, se necessário

(14)

Por que o RSA funciona

por causa do teorema de Euler :

– aø(n)mod n = 1 onde mdc(a,n)=1

no RSA temos :

– n=p.q

– ø(n)=(p-1)(q-1)

– selecionamos cuidadosamente e e d para serem

inversos mod ø(n)

– portanto, e.d=1+k.ø(n) para qualquer k

então:

C

d

= M

e.d

= M

1+k.ø(n)

= M

1

.(M

ø(n)

)

k

(15)

Exemplo de RSA para geração de chave

1. selecionamos os primos: p=17 e q=11 2. calculamos n = pq =17 x 11=187

3. calculamos ø(n)=(p–1)(q-1)=16 x 10=160

4. selecionamos e: gcd(e,160)=1; selecionamos e=7 5. determinamos d: de=1 mod 160 e d < 160 o valor

correto é d=23, pois 23x7=161= 10x16+1

6. publique a chave pública pu={7,187}

(16)

Exemplo de de/criptografia

com o

RSA

• um exemplo da criptografia/decriptografia com o rsa é: • dada a mensagem m = 88 (nota: 88<187)

• criptografia:

C = 887 mod 187 = 11

• decriptografia:

(17)

Criptografia eficiente

• a criptografia usa a exponenciação para elevar e • portanto, se e é pequeno, será mais rápido

– será mais rápido e=65537 (216-1)

– também vemos escolhas de e=3 ou e=17

• mas se e for muito pequeno (p.e. e=3) pode haver ataque

• se e é fixo deve garantir mdc(e,ø(n))=1

– ou seja, rejeita qualquer p ou q não relativamente primo a “e”

(18)

Decriptografia eficiente

• a decriptografia usa a exponenciação para elevar d

– esse valor é provavelmente grande, se não for, não será seguro

• somente o proprietário da chave privada, que conhece os valores de p e q, pode usar essa técnica

(19)

Geração de chave

com o

RSA

os usuários do RSA devem:

– determinar aleatoriamente dois primos - p, q – selecionar seja e ou d,e calcular o outro

os primos p,q não devem ser de fácil derivação

a partir do módulo

n=p.q

– O que significa que precisam ser suficientemente grandes

– Escolher números sucessivos e aplicar um teste probabilístico

os expoentes e, d são inversos, então deve-se

usar o algoritmo inverso para

calcular um ao

outro

(20)

Segurança RSA

há quatro abordagens possíveis para atacar o

RSA:

– força bruta (impraticável, dependendo do tamanho de chave)

– ataques matemáticos (baseados na dificuldade de calcular ø(n), pela fatoração do módulo n)

– ataques de temporização (durante a execução da decriptografia)

– ataques de texto cifrado escolhido (explora as propriedades do RSA)

(21)

O problema da fatoração

• os ataques ocorrem de três formas:

fatora-se n=p.q, então é calculado ø(n) e então ddetermina-se ø(n) diretamente e calcula-se d

– determina-se d diretamente

• atualmente supõe-se que um RSA de 1024-2048 bits seja seguro

• garantir p, q com tamanho similar e correspondendo a outras restrições

(22)

Ataques de texto cifrado escolhido

o

RSA é vulnerável a um ataque de texto cifrado escolhido (CCA)

o adversário escolhe diversos textos cifrados e, então,

recebe os textos claros correspondentes

• escolhe um texto cifrado para explorar propriedades do RSA e,

assim, obter informações que ajudem na criptoanálise podemos:

• contar com o preenchimento aleatório do texto claro

ou

• usar o preenchimento ideal de criptografia assimétrica

(23)

Acordo de chaves DIFFIE-HELLMAN

primeiro algoritmo de chave pública publicado

foi proposto por Diffie e Hellman em 1976,

juntamente com os conceitos da chave pública

– nota: atualmente sabemos que Williamson (UK CESG) propôs esse conceito, secretamente, em 1970

é um método prático para negociação pública de

chave secreta

(24)

Acordo de chaves Diffie-Hellman

um esquema de distribuição de chave pública

– não pode ser usado para troca de uma mensagem arbitrária

– em vez disso, pode estabelecer uma chave comum – conhecida somente pelos dois participantes

o valor da chave depende dos participantes (e

sua informação de chave pública e privada)

baseada em exponenciação sobre um corpo

finito (módulo a primo ou a polinomial) - fácil

a segurança reside na dificuldade de calcular

(25)

Exemplo de Diffie-Hellman

• os usuários Alice e Bob que desejam negociar chaves: • decidem usar os primos q=353 e a=3

• selecionam chaves secretas aletórias:

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

• calculam suas respectivas chaves públicas:

– yA=397 mod 353 = 40 (Alice)

– yB=3233 mod 353 = 248 (Bob)

• calculam sua chave de sessão compartilhada como:

– KAB= yBxA mod 353 = 24897 = 160 (Alice) – KAB= yAxB mod 353 = 40233 = 160 (Bob)

(26)

Criptografia de curva elíptica

a maioria dos sistemas de criptografia de chave

pública (RSA, D-H)

usa tanto inteiro como

aritmética polininomial

com números/polinômios

muito grandes

isso gerou uma carga de armazenamento e de

processamento maior

uma alternativa é o uso de curvas elípticas

elas proporcionam a mesma segurança com

tamanhos de bits menores

(27)

Comentário: Curvas elípticas sobre números reais

uma curva elíptica é definida por uma equação

com duas variáveis

x

e

y

, com coeficientes

considere uma curva elíptica cúbica, na forma

– y2 = x3 + ax + b

– onde x, y, a e b são números reais – também define o ponto zero O

temos a operação de adição para a curva

elíptica

– geometricamente, a soma de Q+P nos dá o ponto de intersecção R

(28)
(29)

Comentário: Criptografia/decriptografia ECC

há várias alternativas, examinamos a mais

simples

primeiro temos de codificar uma mensagem M

como um ponto na curva elíptica P

m

selecionamos uma curva adequada e o ponto G

como em D-H

• cada usuário escolhe uma chave privada n

A

<n

e calcula a chave pública P

A

=n

A

G

• para criptografar P

m

: C

m

={kG, P

m

+kP

b

}, k

aleatório

(30)

Segurança ECC

depende do problema do logaritmo elíptico

o método mais rápido é o “Pollard rho”

comparado à fatoração, pode usar tamanhos de

chave muito menores do que com o RSA etc

para tamanhos de chave iguais, o esforço

computacional é equivalente

portanto, para uma segurança semelhante, o

ECC oferece vantagens computacionais

(31)

para segurança equivalente

Esquema simétrico

(tamanho da chave em bits) Esquema baseado em ECC(tamanho de n em bits) (módulo tamanho em bits)RSA/DSA

55 112 512 80 160 1024 112 224 2048 128 256 3072 192 384 7680 256 512 15360

Referências

Documentos relacionados

As chaves particulares são usadas para decriptografar uma chave de sessão simétrica, assinar dados digitalmente ou decriptografar dados que foram criptografados com a chave

Realizou-se estudo do tipo ecológico com o objetivo de investigar o perfil sociodemográfico e epidemiológico, a frequência de casos, os indicadores epidemiológicos

Na produção I, estastisticamente não houve diferença significativa entre os grupos nos parâmetros funcionais, percebeu-se apenas diferença significativa sobre o parâmetros

A sua melhor confi guração já é ativada de fábrica no modo equilíbrio de energia com as opções de desligar o vídeo em 10 minutos e opção para suspender as atividades

A coordenação do Curso de Especialização em Finanças e Economia – 288 torna pública a abertura de inscrições para o processo seletivo simplificado para a função

• Para evitar danos ao produto (devido a relâmpagos e/ou picos de tensão) durante uma tempestade ou quando o equipamento não for ser usado durante um período de tempo prolongado,

O trabalho terá por base um desenvolvimento teórico relativamente à caraterização do Setor, assim como a realização de um inquérito aos Órgãos de Direção das IPSS´s do

In this paper, a systematic review of the literature in the field of Learning Analytics was presented following a 5-step process in order to know a general overview in this area