Post on 07-Jul-2018
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.