Giovanni Stroppa Faquin. Criptografia de Chave Pública

Post on 07-Jul-2018

220 views 0 download

Transcript of Giovanni Stroppa Faquin. Criptografia de Chave Pública

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 1/40

Criptografia de chave pública:

algoritmos que possibilitam a criade chave assimétrica

Raimundo Candido

Apresentação do artigo para a disciplina Metodologia Cprofª D. Sc. Eugênia Giancoli Jabour por Giovanni StropFaquin

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 2/40

Objetivos

● Contextualizar a área de conhecimento em que se insere o

criptografia;

● Apresentar os conceitos iniciais trabalhados pelo autor;

● Demonstrar a aplicação matemática em três tipos de algor

chave pública: RSA, Rabin, Elgamal;

● Considerações finais.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 3/40

Contexto

A ciência da criptografia é o estudo das formas de envio de um

informação de forma secreta, ou melhor, cifrada, de forma que

destinatário desejado possa decifrá-la e lê-la.

O estudo de técnicas matemáticas que buscam derrubar uma

é a chamada criptoanálise. A ciência da moderna criptografia s

apenas de técnicas matemáticas mas também do estudo das f

computacionais necessárias à sua implementação.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 4/40

Contexto

Quando consideramos serviços de segurança de informação f

pela criptografia, confidencialidade e integridade podem divid

categorias:

● Confidencialidade da informação: a segurança de que a in

ininteligível para pessoas não-autorizadas;● Autenticação da origem da informação: a segurança de qu

informação se originou de uma entidade específica;

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 5/40

Contexto

● Integridade da informação: a segurança de que a informaç

modificada por entidades não-autorizadas

● Autenticação de entidades: a segurança de que um determ

está em real comunicação com outro determinado ente;

● Não-repúdio: a segurança de que um ente não poderá neg

origem da informação.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 6/40

Definições

Esquemas de criptografia podem ser classificados em simétric

assimétricos (chave-pública). A especificação técnica de qualqesquema é dada pela descrição das transformações aplicadasinformação. Estas transformações aplicadas à informação sãoespecificadas por chaves. A relação entre as chaves que conttransformação é que classifica a criptografia:

● se as chaves são as mesmas, o esquema é simétrico;

● se existem duas chaves C1 e C2 com a propriedade de qu

descobrir C1 a partir de C2, o esquema é assimétrico.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 7/40

Definições

A relação entre C1 e C2 explica a nomenclatura: a assimetria s

a chave pública pode ser publicada sem comprometer a chave

as transformações controladas pela chave privada.

Juntas, a chave pública e a chave privada formam um par de c

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 8/40

Definições

Tanto o texto puro como o cifrado (para qualquer cifragem dad

escritos em termos de um conjunto finito A chamado alfabeto

definição, que pode consistir de letras do alfabeto latino, hebr

ou grego e pode incluir símbolos como✁,✈,✜,✺, ♥, ✓,❡,✞

quaisquer outros símbolos que utilizamos para enviar mensage

que os alfabetos de definição do texto puro e do cifrado possadiferentes, a prática é utilizar o mesmo para ambos.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 9/40

Definições

Uma vez que escolhemos um alfabeto de definição escolhem

espaço de mensagemM, definido como um conjunto finito de

símbolos do alfabeto de definição. Os elementos deM são ch

unidades da mensagem de texto puro.

Um conjunto finito C formado por strings de símbolos do alfabdefinição do texto cifrado é chamado espaço de mensagem c

elementos de C são chamados unidades de mensagem de tex

Por exemplo, para a cifragem de César temos M = C = ℤ/26ℤ

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 10/40

Definições: simetria

Cifra de Cesar:

Se α é o equivalente numérico da letra pura, então β ≡ α +3 (m

letra cifrada para substituí-la. Para a decifragem, pegamos cad

equivalente numérico cifrado β e realizamos α ≡ β − 3 (mod 26

recuperando, assim, o valor puro de acordo com a tabela do q

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 11/40

Definições: chaves e simetria

Para incluir a criptoanálise, precisamos de um conjunto de par

chamado espaço de chaves cujos elementos são chamados chexemplo, na Cifragem de Cesar todo m∈ M é cifrado como c

meio de c = m + 3∈ ℤ/26ℤ. Desta forma, a chave de cifragem

pois usamos o parâmetro 3 para mudar m∈ M para c∈ C. A

decifragem é k = -3 pois obtemos m∈ M de c∈ C por meio d∈ ℤ/26ℤ. Esta criptografia é chamada simétrica pois a soma d

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 12/40

Definições: complexidade polinomial

Consideremos um problema simples: ordenar as cartas de um

quatro naipes e em ordem ascendente.

● É preciso passar por todas as cartas até o ás de espadas;

● Voltar ao início passando todas as cartas até o 2 de espad

Seguindo este método o baralho será rapidamente ordenado.

com n cartas você terá de fazer, na pior das hipóteses, n2 ope

seja, o número de passsos para solucionar o problema é a fun

quadrática do tamanho do problema (número de cartas no ba

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 13/40

Definições: complexidade exponencial

Problemas simples podem ser solucionados em tempo polinom

Problemas “complexos” requerem um número maior de passoexponencialmente à medida em que o problema aumenta:

 Algoritmo de tempo polinomial n2

 Algoritmo de tempo exponencial 2n

Autores como R Molin e S. Galbrath consideram simétricas cha

idênticas e chaves computacionalmente fáceis de serem desco

tempo polinomial uma a partir da outra.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 14/40

Ideia inicial de criptografia de chave pública

assimetria

No modelo de criptossistema chamado modelo de chave públusuário possui um par de chaves (S,P) sendo S a sua chave pa

secreta e P a sua chave pública. As chaves S e P são relaciona

matematicamente de tal forma que:

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 15/40

Problema do logaritmo discreto

Alguns criptossistemas , são baseados na dificuldade computaproblema do logaritmo discreto. Vamos considerar que:

log b (a) = n se e apenas se a = bn

Ou seja dados bn e b enontrar n. Exemplo: a = 19683, b = 3.

Uma calculadora rapidamente retorna: n = log (19683)/log(3) =

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 16/40

Problema do logaritmo discreto

Agora, dado b (mod p) e bn (mod p), encontre n.

Ou escrito de outra forma, calcule:

logb(a), quando a, b, /p .

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 17/40

Problema do logaritmo discreto

329 mod 17 12

3? mod 17 12

Se utilizarmos um módulo primo com centenas de caracteres

o problema se torna de difícil solução, mesmo se reunirm

capacidade computacional do planeta.

FÁCIL

DIFÍCIL

Tentativa e erro

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 18/40

Ideia inicial de criptografia de chave pública

● x denota um texto legível e S() denota a aplicação da chav

criptografia S que transforma x em S(x)=y . Em seguida temonde P() denota a aplicação da chave de decriptografia P,

a chave inversa da chave P onde P(S(x)) =x;

● O cálculo do par de chaves (S,P) é computacionalmente fá

● É computacionalmente difícil calcular S a partir do conheci● Os cálculos de P() e S() são computacionalmente fáceis pa

conhece as chaves;

● É computacionalmente difícil calcular S() sem conhecer a c

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 19/40

Ideia inicial de criptografia de chave pública

Estas possibilidades levam ao seguinte cenário:

● Cada usuário calcula o seu par de chaves (S,P) no seu com

● A chave S é guardada de forma segura no seu computado

● A chave P é distribuída a todos de forma pública.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 20/40

 Algoritmo RSA

Este algoritmo foi publicado em 1978 e o seu nome é derivad

dos seus autores: Adi Shamir, Ron Rivest e Len Adleman.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 21/40

 Algoritmo de criação de chave RSA

Cada ente deve criar uma chave pública e uma outra ch

correspondente como se segue:

● Alice deve gerar 2 números primos, grandes e diferente

um com aproximadamente o mesmo tamanho;

● Calcular n = p * q e Φ(n) = (p - 1) (q - 1)

● Escolher um inteiro e tal que 1 < e < Φ(n) tal que o mdc (e,● Utilizar o Algoritmo de Euclides Estendido para calcular o

d, 1 < d < Φ(n) tal que e * d = 1 (mod Φ(n));

● A chave pública de Alice é (n, e) e sua chave privada é d.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 22/40

Os inteiros e e d na criação de chaves chamados o expoente de criptograf

expoente de decriptografia, respectivame

o módulo.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 23/40

Criptografia com chave pública RSA

Bob criptografa sua mensagem m para Alice que a decripta.

● Para criptografar sua mensagem, Bob deve fazer o seguin

○ Obter a chave pública de Alice (n, e);

○ Representar sua mensagem em um inteiro m no interv

○ Calcular c = me mod n

○ Enviar o texto cifrado para Alice.● Para recuperar o texto puro m de c, Alice deve fazer o seg

○ Utilizar sua chave privada d para recuperar m = cd mod

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 24/40

 Algoritmo RSA

Este algoritmo é baseado na

dificuldade computacional de

fatorar um número inteiro em primos.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 25/40

 Algoritmo RSA

 A multiplicação de dois números

primos com 219 bits de extensão

em um computador X consome

0,61 segundos.

Fatorar o resultado destamultiplicação em dois números

primos (operação reversa) consumirá

quase 3 semanas de cálculos.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 26/40

 Algoritmo Rabin

Baseia-se na dificuldade computacional de um intru

o texto legível a partir do conhecimento do tex

correspondente. A dificuldade reside em fatorar um

dois primos.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 27/40

 Algoritmo de criação de chave pública Rab

Alice deve fazer o seguinte:

● Gerar dois números primos grandes randômicos p e q

semelhante;

● Calcular n = p * q;● A chave pública de Alice é n. a chave privada de Alice é (p

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 28/40

Criptografia com chave pública Rabin

● Criptografar:

● Bob obtem a chave pública de Alice;

● Representar a mensagem m em um conjunto {0, 1, 2, …

● Calcular c = m2 mod n;

● Enviar o texto cifrado c para Alice;

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 29/40

Criptografia com chave pública Rabin

● Decriptar:

○ Para recuperar m de c calcula-se as 4 raízes qu

c mod n: m1, m

2, m

3, m

4.

○ O texto legível m  deve ser ou m1  ou  m

2  ou m

3  o

contiver alguma redundância, o usuário é capaz de

Tal redundância pode ser, por exemplo, uma parte dorepetida, de tal forma que as outras três raízes n

repetição com alta probabilidade.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 30/40

Criptografia com chave pública Rabin

● Se eventualmente, um intruso conseguir gravar o texto ileg

linha de comunicação entre o receptor e emissor , ele não

recuperar o valor m, pois ele não conhece a chave secreta

receptor. Em outras palavras, o valor m é inteligível para u

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 31/40

Criptografia ElGamal

Pode ser entendido como um acorde de chaves Diffie-Hellman

de transferência de chave. Este algoritmo incorpora a dificulda

solução do problema do logaritmo discreto na definição da fun

criptográfica como segurança.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 32/40

Criptografia ElGamal

Alice deve gerar um primo p > 2 extenso e aleatório e um gera

conjunto multiplicativo Z*p dos inteiros relativamente primos a

1985).

Alice deve escolher um inteiro a tal que 1 ≤ S ≤ p – 2 e calcula

A chave pública de Alice é (p, α, αa). Sua chave privada é a.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 33/40

Criptografia ElGamal

Bob encripta a mensagem m para Alice que a decripta.

● Criptação. Bob deve fazer o seguinte:

○ Obter a chave pública de Alice (p, α, αa);

○ Representar a mensagem como um inteiro m dentre

 {0, 1, … , p - 1}

○ Selecionar um número aleatório inteiro k, 1 ≤ k ≤ p – 2○ Calcular = αk mod p e δ = m * (αa)k mod p

○ Enviar o texto cifrado c = (γ, δ) para Alice.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 34/40

● Decriptação: para recuperar o texto puro m de c, Alice dev

○ Utilizar a chave privada a para calcular γp - 1 - a mod p

■ note que γp - 1 - a = γ- a = α-ak).

○ Recuperar m calculando ( γ- a ) * δ mod p.

Prova:

 γ- 1 * δ ≡ α-ak mαak≡ m (mod p)

Criptografia ElGamal

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 35/40

Exemplo:

Alice escolhe o número primo p = 2357 e o gerador α = 2 de ℤ

escolhe como chave primária a = 1751 e calcula:

αa mod p = 2 1751 mod 2357 = 1185

A chave pública de Alice é (p = 2357, α = 2, αa

 = 1185).

Criptografia ElGamal

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 36/40

Para encriptar uma mensagem m = 2035, Bob seleciona um in

aleatório k = 1520 e calcula:

  = 21520 mod 2357 = 1430

e

δ = 2035 * 11851520

 mod 2357 = 697Bob envia = 1430 e δ = 697 para Alice. Para a decriptação, A

m = 872 * 697 mod 2357 = 2035

Criptografia ElGamal

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 37/40

Consideração final

Um problema computacionalmente simples significa que ele p

solucionado em tempo polinomial e pode ser atacado com as e recursos disponíveis. O contrário disso seria um problema

computacionalmente grande que significa que dada uma enor

quantidade de tempo de computação, o problema não pode s

solucionado em um tempo computacional razoável ou realista.

diferente de um problema sem solução com qualquer recurso

poder computacional.

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 38/40

Referências

DE SOUSA, Raimundo Cândido. Criptografia de chave pública: algor

possibilitam a criação de chave assimétrica.MOLLIN, Richard. RSA and public-key cryptography . London: CRC Pr

KOBLITZ, Neal (Ed.). Towards a quarter-century of public key crypto

Kluwer Academic, 2000.

GALBRAITH, Steven D. Mathematics of public key cryptography . Ca

University Press, 2012.MENEZES, A., OORSCHOT, P. van e VANSTONE, S. Handbook of App

Cryptography . CRC Press, 1996

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 39/40

Problema do logaritmo discreto

Dados um primo p e inteiros g,t:

0 < g,t< p calcular um inteiro s tal que t = gs mod p.

Quando p é relativamente longo, ninguém até hoje (nem mesm

pesquisadores especializados) descobriu um algoritmo eficienpolinomial) para resolver este problema. A idéia então é incorp

dificuldade de solução em esquema criptográfico

8/18/2019 Giovanni Stroppa Faquin. Criptografia de Chave Pública

http://slidepdf.com/reader/full/giovanni-stroppa-faquin-criptografia-de-chave-publica 40/40

Contexto

Um sistema criptografado é composto de um conjunto {Ee : e∈

funções de enciframento e um conjunto {Dd = Ee−1  : d∈ K} de fdeciframento que correspondem ao primeiro conjunto de form

para cada e∈ K existe um e único d∈ K tal que Dd = E

e−1, ou

que Dd(E

e(m)) = m para todos os m∈ M.

Individualmente e e d são chamadas chaves e (e, d) é chamadchaves. O conjunto de dos pares {(m,E

e(m)) : m∈ M} é chamad

cifragem.