TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Topicos em Seguranca da Informacao
Aula 3
Ivan Sendin
FACOM - Universidade Federal de [email protected],[email protected]
30 de agosto de 2019
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
github
Go Lang, ML, Python, JavaScript, seguranca,criptografia,...
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Aula Passada
Exponencial
PoW (Hashcash)
Diceware
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Altura
Dificuldade
Timestamp
Transacoes
"Random"
Anterior
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Altura
Dificuldade
Timestamp
Transacoes
"Random"
Anterior
Altura
Dificuldade
Timestamp
Transacoes
"Random"
Anterior
Altura
Dificuldade
Timestamp
Transacoes
"Random"
Anterior
Altura
Dificuldade
Timestamp
Transacoes
"Random"
Anterior
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Cifrador
Confidencialidade
A/B compartilham uma chave secreta
(como??)
Cifram/Decifram a informacao
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
openssl
openssl enc -d -aes-256-cbc -salt -in file.enc
-out saida.txt
-pass file:pass.txt
openssl enc -d -aes-256-cbc -salt -in file.enc
-out saida.txt
-pass file:pass.txt
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Cifrador
Alice e Bob compartilham ”pass.txt”
Num mundo smples: pen drive, papel,...
Num mundo real: problemao!!
Como voce conecta com seguranca em um site dooutro lado do mundo??
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Numeros Grandes
Criptografia usa numeros grandes
256 bits, 4096 bits...
+,-,×,...
”Vetor”de Inteiros
O tamaho do numero esta limitado pela memoria docomputador
(arquitetura do hardware)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Funcoes Trapdoor
Algumas computacoes sao faceis!
5× 7 = 35
Algumas sao difıceis
2|35?, 3|35, 5|35
Poly X Exp
Na pratica, existe um tamanho limite entre o quepode ser computado e o que nao pode!
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Exponenciacao modular
an (mod p)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Exponenciacao modular
3n (mod 19)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Exponenciacao modular
n 3n 3n (mod 19)1 3 32 9 93 27 84 81 55 243 156 729 77 2187 28 6561 69 19683 18
10 59049 1611 177147 1012 531441 1113 1594323 1414 4782969 415 14348907 1216 43046721 1717 129140163 1318 387420489 1
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Exponenciacao modular
O algoritmo e exponenciacao intuitivo gasta O(2n)operacoes de multiplicacao
(n e o numero de bits do expoente)
Um algoritmo mais inteligente tem ganhoexponencial de desempenho....
Por exemplo, para calcular k8:
Intuitivo: k .k .k .k .k .k .k .k
Inteligente: ((k2)2)2
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Problema do logaritmo discreto
Dado l , b, p , determinar k tal que bk (mod p) = l
Dado 17 , determinar k tal que 3k (mod 19) = 17
Intratavel
O problema do log discreto pode ser computado emum computador classico em tempo polinomial?
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves
Alice e Bob querem conversar de forma privada
Eva (eavesdropper) fica escutando tudo...
Alice e Bob conhecem um bom cifrador
mas nao compartilham nenhum segredo....
Todos envolvidos conhecem o basico dematematica: multiplicacao (exponenciacao)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves
Alice, Bob e Eva conhecem uma base g
(Alice pode escolher um numero aleatorio e colocarno blog dela...)
Alice escolhe uma chave a e calcula g a
Bob escolhe uma chave b e calculae gb
Alice faz um bradcast de g a, Bob faz de gb
Alice conhece: g , a, g a, gb
Bob conhece: g , b, gb, g a
Eva conhece: g , gb, g a
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves
Alice conhece: g , a, g a, gb
Alice faz (gb)a, obtendo g ab
Bob conhece: g , b, gb, g a
Bobo faz (g a)b, obtendo gba = g ab
Eva conhece: g , gb, g a
Eva faz o que??
g a+b!!!
A chave e g ab
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves
g = 5
Alice conhece a = 3
Bob conhece b = 4
Qual e a chave de Alice/Bob?
O que Eva consegue obter?
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves
g = 5
Alice conhece g = 5, a = 3, envia g a = 125
Bob conhece b = 4, g = 5, envia gb = 625
Eva: g e captura 125, 625
Alice faz 6253 = 244140625
Bob faz 1254 = 244140625
a chave e 244140625
Eva?
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves
Calcular o logaritmo nao e uma tarefa realmentecomplicada...
Quem conhece g e g a, conhece a
O protocolo real e feito “modulo p”
g a (mod p)
O problema do logaritmo discreto e complexo(=muito tempo)
(repita as contas com p = 37)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves - Versao Discreta
Valores publicos: g = 5, p = 37
Alice escolhe a = 3
Calcula g a = 125
125 (mod 37) = 14
Alice envia 14 pelo canal inseguro
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves - Versao Discreta
g = 5, p = 37, a′ = 14
Bob escolhe b = 4
calcula gb = 625
625 (mod 37) = 33
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves - Versao Discreta
g = 5, p = 37, a′ = 14, b′ = 33
Alice calcula (gb)a
333 = 35937
35937 (mod 37) = 10
Bob calcula (g a)b
144 = 38416
38416 (mod 37) = 10
a chave e 10
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Escolha de chaves - Versao Discreta
g = 5, p = 37, a′ = 14, b′ = 33
Eva? 5, 37, 14, 33....
Por forca bruta calcula a (ou b)
4k bits
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Troca de Chaves
Ou key agreement
Conhecido com Protocolo Diffie-Hellman (DH)
Ralph Merkle
1974 (Graduacao em UC Berkley)Projeto rejeitado pelo professorArtigo rejeitado pela ACM
I am sorry to have to inform you thatthe paper is not in the main stream ofpresent cryptography thinking and Iwould not recommend that it be publishedin the Communications of the ACM.
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Troca de Chaves
Base para a criptografia de chave publica
Hashing (Merkle Tree /Patente 1979)
Diffie-Hellman
New directions in cryptography
Diffie-Hellman-Merkle key exchange
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
RSA
Rivest Shamir Adleman - 1977
Clifford Cocks - 1973
Communications-Electronics Security Group(CESG)/MI51997
Seguranca esta atrelada a dificuldade de fatoracaode numeros (grandes)
1024/2048/4096
(Quase) Padrao para ciframento assimetrico
(Nao e verdade nas criptomoedas!)
Usado em assinaturas
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
RSA - Exemplo
Para o RSA eu vou mostrar alguns exemplos....
omitir teoremas, lemas e provas
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
’O’ = 79
e=263
79**263 =
119103633132394031611410757850229209301851346209308631116830
957951721807627305691976414497175853449195305231884529725564
155746411063263716015816443890687214665126154139978954049467
359585932731778014521575630696619093761510807110870269289641
327510266673413110636550743558068243455440126122503959437910
734602801604560325141268813807459657875679617035692376010619
422645904847024614161813532211602751388718141823845283790397
546382194733011031182480704891415251766845411408755167652731
99147375096105153839L
n=713
(79**263) % 713 = 168
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
[168L]
d=527
(168**527)% 713 = 79
[’O’]
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Existe um metodo pra gerar e=263, d=527 en=713.
Eles estao ammarados um no outro
O e e a chave publica(PK): todo mundo podeconhecer e associar a um determinado indivıduo
Todo mundo consegue cifrar
Apenas quem conhece d(chave privada/secreta SK)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Vamos inverter a ordem das operacoes...
’O’ = 79
79 ** 527 % 713 = 145
O individuo que conhece d gerou o par (79,145)!
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
(79,145)
145**263 % 713 = 79
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Somente o dono da chave SK consegue gerar o par(X , S)...
tal que Spk = X !!
(OK, com numeros deste tamanho eu tambemconsigo!)
Isso e uma assinatura digital
Sign(M) := Sign(H(M))
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Curvas Elipticas
Curvas Elipticas
Outro sistema de chaves assimetricas
Assinaturas Digitais
chaves e assinaturas menores (256bits)
DH sobe um par ordenado
Bitcoin!
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC
Uma ordem de transferencia de bitcoins de umendereco(≈conta) para outro endereco
Os bitcoins sao criados em uma transacao especialchamada de coinbase
E a primeira transacao de um bloco
As transacoes sao identificadas pele seu hash code
Pos Address Valor
1 Pk1 302 Pk2 20
TxHash 0xabcdef
Apos esta transacao Pk1 e Pk2 estao aptos a gastarseus bitcoins
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Nota: Uma transacao bitcoin e mais complexa do quevoce vera na aula de hoje. Uma transacao e o resultadoda execucao de um script que permite a implantacao dealgumas funcionalidades interessantes. A aula de hojemodela uma transacao para uma moeda bem simples!
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC - Gastando!
Definir a entrada
Definir a saıda
Assinar
Enviar para a rede P2P do BTC
(Para o usuario e mais simples!)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC - Gastando!
O ”dono”da Pk1 gasta seus B20 em uma transacaoindicando a(s) entrada(s):
1 O TxHash da transacao: 0xabcdef2 A posicao na transacao: 1
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC - Gastando!
O ”dono”da Pk1 gasta seus B20 em uma transacaoindicando a(s) saida(s):
1 PKo ,Vo
2 PKp,Vq
3 PKr ,Vs
A soma dos valores deve ser inferior ou igual aototal da entrada
A transacao e gasta integralmente!
Bem diferente de uma conta de banco.
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC - Gastando!
E possıvel que existam enderecos de troco
Pode ser igual ao da entrada (fortementedesaconselhavel!)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC - Gastando!
A diferenca entre os valores de entrada e saıda e aremuneracao dos mineradores
tip/taxa
(os mineradores recebem mais do que o valor datransacao de coinbase)
Nao existe padrao para este valor
No futuro, os mineradores receberao apenas estastaxas
No criterio de escolha de mineracao de uma tx,incluem valor da taxa, tamanho, idade,...
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC - Gastando!
Uma vez que as entradas e saıdas sao definidas
A tx deve ser assinada por cada SK correspondentea PK da entrada
Agora e so mandar para a rede!
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
UTXO
Unspent Transaction Output
Quando a TX chega na rede os mineradoresverificam se cada uma das transacoes da entradaainda nao foram gastas
(Alem da assinatura!)
Os minerados precisam manter um ED com astransacoes disponıveis
(muita memoria!!)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Uma transacao BTC
PKs (sem CPF,RG,...)
pseudo anonimato do BTC!
Existem moedas mais anonimas que o Bitcoin
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Tx e Anonimato
Se voce faz varios gastos usando oa entrada comotroco....podemos aprender sobre os seus habitos deconsumo!
Existem heurısticas aplicadas no troco
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Tx e Anonimato
As entradas de um xt precisam ser assinadas...
Momento sensıvel e ıntimo
Quase uma regra: PKs na entrada de umatransacao pertencem a mesma pessoa!!
Transitivo
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Tx e Anonimato
Dusting
Alguem espalha uma quantidade minima de BTCem diversas PKs
Quando algum for gastar, o software queadministra a carteira tem a tendencia a juntar estespequenos valores na entrada da tx
Revela um entidade na blockchain
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Word Cloud
Automatico/automatizado
Selecionar alguns sites
web scraping/parsing
Resultado: codigo(s), lista de palavras, links dossites, e a imagem
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Aniversario
Implementacao de Analise
O Paradoxo do Aniversario e um metodo parabuscar colisoes
Ingenuo: Par a Par (ou Fixo)
Paradoxo: Conjunto
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Aniversario
Implementar a busca ingenua e usando o paradoxo
comparar a media do numero de operacoes dehash necessarias para achar uma colisao detamanho n
Grafico comparativo
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Forca Bruta no RSA
pk = (e, n)
c = pe (mod n)
Sao conhecidos: c , e, n
Como descobrir p??
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Forca Bruta no RSA
Como descobrir p??
Forca Bruta!!
para t : 2..(n − 1),
execute o ciframento e verifique a igualdade
(biblioteca de numeros grandes!)
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Forca Bruta no RSA
Entrada: link no site
Entrega: codigo e medicoes de tempo
TSEG-3
Ivan Sendin
AulaAnte-Passada
Aula Passada
Cifrador
Funcoes Trapdoor
Estabelecimentode Chaves
Exercicios
Exercicios - Resumo
Word Cloud: 5
Aniversario/analise: 7
Forca Bruta no RSA: 6
Alvo:1, Maximo: 2.
Top Related