Baixe o app para aproveitar ainda mais
Prévia do material em texto
ACH2076 – Segurança da Informação Aula 03: Criptoanálise Valdinei Freire valdinei.freire@usp.br http://www.each.usp.br/valdinei Escola de Artes, Ciências e Humanidades - USP 2023 V. Freire (EACH-USP) ACH2076 2023 1 / 28 Livros Textos 1. William Stallings. Criptografia e Segurança de redes: prinćıpios e práticas, 4ª edição. Caṕıtulo 2 2. Marcio Moretto Ribeiro. Segurança da Informação (apostila). I Força Bruta I Máxima Verossimilhança I Criptoanálise I Texto cifrado I Pares texto cifrado / texto aberto I Pares texto cifrado / texto aberto arbitrários V. Freire (EACH-USP) ACH2076 2023 2 / 28 Criptoanálise Estudo de métodos e prinćıpios de transformar mensagens ininteliǵıveis de volta a mensagens inteliǵıveis, sem conhecimento da chave. Origem da chave Enc - E Dec - D K c Criptoanalista S m m R K̂ m̂ V. Freire (EACH-USP) ACH2076 2023 3 / 28 Criptoanálise vs Força Bruta I Criptoanálise I Contam com a natureza do algoritmo I Caracteŕısticas gerais do texto claro I Pares de (texto claro, texto cifrado) I Força Bruta I Conhece algoritmo de decriptografia I Experimenta cada chave posśıvel I Testa se é uma tradução inteliǵıvel I Na média, metade de todas chaves precisam ser experimentadas V. Freire (EACH-USP) ACH2076 2023 4 / 28 Criptoanálise I Incondicionalmente seguro I one-time pad (chave de uso único) I Texto com n caracteres I Vigènere e chave com n caracteres aleatórios I Computacionalmente Seguro I Custo para quebrar cifra superior ao valor da informação codificada I Tempo exigido para quebrar a cifra superior ao tempo de vida útil da informação V. Freire (EACH-USP) ACH2076 2023 5 / 28 Força Bruta Tamanho da cha- ve Quantidade de Chaves Tempo Necessário (1 decrip/µs) Tempo Necessário (106 decrip/µs) 2 caracteres (Cifra de César Afim) 312 156µs < 1µs 26 caracteres (monoalfabética) 26!=4× 1026 6, 4× 1012 anos 6, 4× 106 anos 32 bits 232=4, 3× 109 35, 8 minutos 2, 15ms 56 bits (DES) 256=7, 2× 1016 1142 anos 10, 01 horas 128 bits (AES) 2128=3, 4× 1038 5, 4× 1024 anos 5, 4× 1018 anos 168 bits (3DES) 2168=3, 7× 1050 5, 9× 1036 anos 5, 9× 1030 anos V. Freire (EACH-USP) ACH2076 2023 6 / 28 Força Bruta I Teste de texto inteliǵıvel I Texto em ĺıngua conhecida: português, inglês, etc. I Exemplo: I “Drosb mykmr, Wkckiycrs Wkxklo, cksn: Go my-ybnsxkdon bokvvi govv kxn dro zvkiobc gybuon bokvvi govv dyqodrob. Lydr dokwc gobo cy xobfyec sx dro psxkv cod, led Tkzkx rkn tecd k vsddvo lsd wybo.” V. Freire (EACH-USP) ACH2076 2023 7 / 28 Força Bruta I Cesar Afim (1,8): Vjgkt eqcej, Ocucaqujk Ocpcdg, uckf: Yg eq-qtfkpcvgf tgcnna ygnn cpf vjg rncagtu yqtmgf tgcnna ygnn vqigvjgt. Dqvj vgcou ygtg uq pgtxqwu kp vjg hkpcn ugv, dwv Lcrcp jcf lwuv c nkvvng dkv oqtg. I Cesar Afim (1,9): Uifjs dpbdi, Nbtbzptij Nbobcf, tbje: Xf dp-psejobufe sfbmmz xfmm boe uif qmbzfst xpslfe sfbmmz xfmm uphfuifs. Cpui ufbnt xfsf tp ofswpvt jo uif gjobm tfu, cvu Kbqbo ibe kvtu b mjuumf cju npsf. I Cesar Afim (1,10): Their coach, Masayoshi Manabe, said: We co-ordinated really well and the players worked really well together. Both teams were so nervous in the final set, but Japan had just a little bit more. V. Freire (EACH-USP) ACH2076 2023 8 / 28 Força Bruta I Como testar automaticamente? I Exemplo: Análise de Frequência I Ĺıngua apenas com 3 śımbolos: a, b e c I Considere textos com 100 caracteres I Distribuições de probabilidades (monogramas, digramas, trigramas) Pr(Na = α,Nb = β,Nc = θ) Pr(Naa = α,Nab = β,Nac = θ,Nba = γ, . . .) Pr(Naaa = α,Naab = β,Naac = θ,Naba = γ, . . .) V. Freire (EACH-USP) ACH2076 2023 9 / 28 Força Bruta I Como obter distribuições de probabilidades? I Simplificação: assume independência Pr(Na = α,Nb = β,Nc = θ) = = Pr(Na = α|Nb = β,Nc = θ)× Pr(Nb = β|Nc = θ)× Pr(Nc = θ) u Pr(Na = α)× Pr(Nb = β)× Pr(Nc = θ) V. Freire (EACH-USP) ACH2076 2023 10 / 28 Força Bruta Distribuição Binomial (Bernoulli) I Distribuição de probabilidades discreta I Número de sucessos em uma sequência de N tentativas I p é chance de obter sucesso e mantém-se constante Pr(Na = α) = ( N α ) (pa) α(1− pa)N−α( N α ) = N ! (N − α)!α! V. Freire (EACH-USP) ACH2076 2023 11 / 28 Força Bruta Máxima Verossimilhança (exemplo com monogramas) I Dado um texto cifrado c, testa-se todas chaves K I Para cada chave, conte as quantidades αKa , α K b , α K c , . . . , α K z para cada letra no texto “aberto” m obtido ao aplicar a chave espećıfica K no texto cifrado c. I Maximize Pr ( texto em inglês |Na = αKa , Nb = αKb , Nc = αKc , . . . , Nz = αKz ) ∝ ∝ Pr ( Na = αKa , Nb = αKb , Nc = αKc , . . . , Nz = αKz ∣∣ texto em inglês ) V. Freire (EACH-USP) ACH2076 2023 12 / 28 Força Bruta - Exemplo I Considere um alfabeto com apenas 3 letras: a, b e c; e a distribuição abaixo para textos com 10 caracteres I Utilizando verossimilhança, encontre as chaves nos casos a seguir: I c = “bbabcbbabb”; cifra monoalfabética I c = “acaaaaaacc”; cifra de Hill (chave 2× 2 e não contém zeros) I c = “bbbccbbbba”; cifra Afim 0 2 4 6 8 10 letra a letra b letra c pr ob ab ili d ad e quantidade de ocorrência 0.1 0.2 0.3 0.4 V. Freire (EACH-USP) ACH2076 2023 13 / 28 Criptoanálise vs Força Bruta I Criptoanálise I Contam com a natureza do algoritmo I Caracteŕısticas gerais do texto claro I Pares de (texto claro, texto cifrado) I Força Bruta I Conhece algoritmo de decriptografia I Experimenta cada chave posśıvel I Testa se é uma tradução inteliǵıvel I Na média, metade de todas chaves precisam ser experimentadas V. Freire (EACH-USP) ACH2076 2023 14 / 28 Criptoanálise: força do adversário I Apenas Texto Cifrado: o adversário conhece um texto cifrado c I Texto claro conhecido: o adversário conhece um texto claro m e o texto cifrado correspondente c I Texto claro escolhido: o adversário pode escolher um texto claro m e obter o texto cifrado correspondente c I Texto cifrado escolhido: o adversário pode escolher um texto cifrado c e obter o texto claro correspondente m V. Freire (EACH-USP) ACH2076 2023 15 / 28 Criptoanálise: Cifra de Hill e Afim I Texto claro/cifrado escolhido: I Qual texto escolher? I Qual tamanho ḿınimo? I Texto claro conhecido: esperar a condição acima acontecer. I Apenas texto cifrado: dá pra fazer melhor que força bruta? V. Freire (EACH-USP) ACH2076 2023 16 / 28 Criptoanálise: Cifra de Vigènere I Texto claro/cifrado escolhido: I Qual texto escolher? I Qual tamanho ḿınimo? I Texto claro conhecido: esperar a condição acima acontecer. I Apenas texto cifrado: dá pra fazer melhor que força bruta? V. Freire (EACH-USP) ACH2076 2023 17 / 28 Criptoanálise: Cifra Monoalfabética I Texto claro/cifrado escolhido: I Qual texto escolher? I Qual tamanho ḿınimo? I Texto claro conhecido: esperar a condição acima acontecer. I Apenas texto cifrado: dá pra fazer melhor que força bruta? V. Freire (EACH-USP) ACH2076 2023 18 / 28 Criptoanálise: Cifra Monoalfabética Apenas Texto Cifrado: análise de frequência I Solução Força Bruta I Considero um critério para indicar o quanto um texto é “inglês” I Testo todas as chaves posśıveis (26!) I Verifico a chave que produziu maior aderência ao “inglês” I Problema: custoso computacionalmente V. Freire (EACH-USP) ACH2076 2023 19 / 28 Criptoanálise: Cifra Monoalfabética Apenas Texto Cifrado: análise de frequência I Solução Ingênua I Solução Ingênua I Considera ordem da frequência de ocorrência de letras E, T, A, O, I, N, S, H, R, D, L, C, U, M, W, F, G, Y, P, B, V, K, J, X, Q e Z I Realizo a contagem de ocorrência de letras no texto cifrado I Atribuo conforme a ordem acima I Problema: qualidade varia bastante com o tamanho do texto V. Freire (EACH-USP) ACH2076 2023 20 / 28 Criptoanálise: Cifra Monoalfabética Apenas Texto Cifrado: análise de frequência I Solução “Greedy” (gulosa) I Em cada iteração preencho uma letra ou um conjuntode letras na chave-solução I Considera um teste de aderência para cada letra I Teste de aderência considera solução parcial I Teste de aderência considera digrama, trigrama, etc. V. Freire (EACH-USP) ACH2076 2023 21 / 28 Criptoanálise: Cifra Monoalfabética Solução “Greedy” (gulosa) I Solução Parcial ∆: chave para encriptar a b c d e f g h i j k l m n o p q r s t u v w x y z . . .. . .. . .. . .X. . .. . .K. . .L. . .. . .. . .. . .T . . .. . .F . . .. . .. . .G. . .. . .. . .. . . I Notação I conjunto P: conjunto de letras no texto aberto {a, b, . . . , y, z} I conjunto C: conjunto de letras no texto cifrado {A,B, . . . , Y, Z} I conjunto R ⊂ P: se θ ∈ R, então letra θ não foi atribúıda a uma letra do texto cifrado I conjunto T ⊂ C: se Θ ∈ T , então letra Θ ainda não foi atribúıda a uma letra do texto aberto I Solução Geral: repete enquanto |T | > 0 I Escolha uma permutação Φ com NC letras em T I Para cada permutação φ de NC letras em R avalie sua aderência com a permutação Φ I Escolha a permutação φ∗ com melhor aderência V. Freire (EACH-USP) ACH2076 2023 22 / 28 Criptoanálise: Teste de aderência Considere as permutações φ e Φ, dada uma medida X do texto cifrado e solução parcial ∆, deseja-se calcular a probabilidade: Pr(φ = Φ|X ,∆) = Pr(φ1 = Φ1, φ2 = Φ2, . . . , φk = Φk|X ,∆) Posso medir no texto cifrado: I XΦi para 1 ≤ i ≤ NC : quantas vezes aparece a letra Φi I XΦiΦj para 1 ≤ i, j ≤ NC : quantas vezes aparece o digrama ΦiΦj I XΦi∆j para 1 ≤ i ≤ NC e 1 ≤ j ≤ |∆|: digramas Φi∆j com elementos em Φ e ∆ I X∆jΦi para 1 ≤ i ≤ NC e 1 ≤ j ≤ |∆|: digramas ∆jΦi com elementos em Φ e ∆ I XΦiΦjΦk , XΦiΦjΦkΦl , XΦiΦjΦkΦlΦm , etc. V. Freire (EACH-USP) ACH2076 2023 23 / 28 Criptoanálise: Probabilidades Como calcular (estimar) Pr(φ = Φ|X ,∆)? Regra de Bayes: Pr(φ = Φ|X ,∆) ∝ Pr(X|φ = Φ,∆)Pr(φ = Φ|∆) Aproximação (exemplo apenas com digramas): Pr(X|φ = Φ,∆) = Pr(XΦi ,XΦiΦj ,XΦi∆j , . . . |φ1 = Φ1, . . . , φk = Φk,∆) ≈ ∏ Φi Pr(XΦi |φi = Φi) ∏ Φi,Φj Pr(XΦiΦj |φi = Φi, φj = Φj)∏ Φi,∆j Pr(XΦi∆j |φi = Φi) ∏ Φi,∆j Pr(X∆jΦi |φi = Φi) Finalmente, as distribuições Pr(XΦi |φi = Φi) e Pr(XΦiΦj |φi = Φi, φj = Φj) são aproximadas por distribuições binomiais. V. Freire (EACH-USP) ACH2076 2023 24 / 28 Criptoanálise: Exemplo Considere um alfabeto com apenas 5 letras (P = {a, b, c, d, e} e C = {A,B,C,D,E}) e o texto cifrado: ACDEADECADCEDACDEDACDEDCBABCDBBCDEADBECBACDEBAACDE DEABBBADEADEDABDDAAABDEBDEABDEACDEACDEADACBDEBCADE Ocorrem as seguintes medidas para cada letra: XA = 23, XB = 16, XC = 15, XD = 27 e XE = 19 Ocorrem as seguintes medidas para cada digrama: XAA = 3, XAB = 5, XAC = 8, XAD = 7, XAE = 0, XBA = 3, XBB = 3, etc. Solução Inicial ∆ vazia a b c d e . . .. . .. . .. . .. . . , R = P e T = C V. Freire (EACH-USP) ACH2076 2023 25 / 28 Criptoanálise: Exemplo I Escolha uma permutação Φ com 2 letras em T : Φ = AD I Permutações em R: ab, ac, ad, ae, ba, bc, bd, be, ca, cb, . . . I Para cada permutação φ calcule sua probabilidade (exemplo φ = ab) Pr(XA = 23|a = A)Pr(XD = 27|b = D)Pr(XAA = 3|a = A) Pr(XAD = 7|a = A, b = D)Pr(XDA = 5|a = A, b = D)Pr(XDD = 1|b = D) I Escolha a permutação φ∗ com melhor aderência (suponha φ∗ = ce) V. Freire (EACH-USP) ACH2076 2023 26 / 28 Criptoanálise: Exemplo Passo 2 (NP = 2) I ∆ = a b c d e . . .. . .A. . .D , R = {a, b, d} e T = {B,C,E} I Escolha uma permutação Φ com 2 letras em T : φ = BC I Permutações em R: ab, ad, ba, bd, da, db I Para cada permutação φ calculo a probabilidade (exemplo φ = ab) Pr(XB = 16|a = B)Pr(XC = 15|b = C)Pr(XBB = 3|a = B) Pr(XBC = 3|a = B, b = C)Pr(XCB = 2|a = B, b = C)Pr(XCC = 0|b = C) Pr(XBA = 4|c = A, a = B)Pr(XAB = 4|c = A, a = B) Pr(XBD = 5|e = D, a = B)Pr(XDB = 2|e = D, a = B) Pr(XCA = 2|c = A, b = C)Pr(XAC = 8|c = A, b = C) Pr(XCD = 9|e = D, b = C)Pr(XDC = 2|e = D, b = C) I Escolha a permutação φ∗ com melhor aderência (suponha φ∗ = ad) V. Freire (EACH-USP) ACH2076 2023 27 / 28 Criptoanálise: Melhorias Problema: Se NC é muito grande existem muitas permutações Solução: Considerar letras em R que atendem algum requisito Exemplo: Pr(XA|a = A) > 0.1 maxθ∈R Pr(XA|θ = A) Problema: Quais letras em ∆ preencher primeiro? Solução: alfabética, aleatória, maior frequência, análise otimizada V. Freire (EACH-USP) ACH2076 2023 28 / 28
Compartilhar