Segurança de Dados

Page 1




Conteúdo 1 1.1 1.2 1.3

1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3

Introdução e motivações ................................................................................15 Problemas de sigilo e autenticidade ............................................................................ 16 Organização do texto ................................................................................................... 18 O que é criptografia? .................................................................................................... 18 1.3.1 Cifra de César .................................................................................................. 18 1.3.2 Criptografia e decriptografia ........................................................................... 20 1.3.3 Quebra e ataque em criptografia .................................................................... 20

1.3.4 Criptografia aberta .................................................................................... 21 1.3.5 Como provar que um algoritmo criptográfico é seguro? O caso AES........... 21 Criptanálise e seus tipos .............................................................................................. 22 1.4.1 Freqüência de letras na língua — vulnerabilidade ........................................ 25 Substituição simples ..................................................................................................... 25 Cifra de Vigenère .......................................................................................................... 26 Cifra de Vigenère-Vernam ............................................................................................ 27 Transposição (ou permutação) ................................................................................... 28 Composição................................................................................................................... 28 Teoria da informação — Entropia .................................................................31 Difusão e confusão ....................................................................................................... 31 Entropia ........................................................................................................................ 32 Segurança perfeita ....................................................................................................... 33 2.3.1 Chaves igualmente prováveis ......................................................................... 35 2.3.2 Condição necessária e suficiente para segurança perfeita............................ 36 2.3.3 One-time-pad ................................................................................................. 38

2.4 Criptossistema aleatório ........................................................................................ 39 2.4.1 Redundância .................................................................................................... 40 2.4.2 Distância de unicidade .................................................................................... 41 2.4.3 Exemplo de redundância e distância de unicidade ....................................... 41 3 Criptografia de chave secreta ........................................................................43 3.1 Data Encryption Standard —DES ........................................................................... 44 3.1.1 Esquema geral do DES ................................................................................... 45 3.1.2 Uma iteração DES ........................................................................................... 46 3.1.3 A função de iteração fKj (Dj) ........................................................................... 47 3.1.4 Geração de subchaves Kj ................................................................................ 52 3.1.5 Descrição das S-boxes .................................................................................... 52 3.1.6 Decriptografia DES ......................................................................................... 52 3.1.7 Tabelas DES..................................................................................................... 56 3.1.8 Quebrar o DES? ............................................................................................... 59 3.1.9 Exercício .......................................................................................................... 59 3.2 International Data Encryption Algorithm — IDEA .............................................. 61 3.2.1 As três operações básicas do IDEA ................................................................ 61 3.2.2 Geração das subchaves ................................................................................... 62 3.2.3 Uma iteração (round) do IDEA ..................................................................... 64 3.2.4 Decriptografia pelo algoritmo IDEA ............................................................... 69


10

3.3

3.4

3.5

3.6 3.7

3.8 3.9 3.10 3.11

CONTEÚDO 3.2.5 Dados para teste .............................................................................................. 70 3.2.6 Exercício .......................................................................................................... 70 Secure And Fast Encryption Routine — SAFER K-64 .......................................... 71 3.3.1 Descrição de uma iteração .............................................................................. 71 3.3.2 Descrição da transformação final T ................................................................ 73 3.3.3 Descrição da geração das subchaves ............................................................. 73 3.3.4 Descrição do algoritmo inverso do SAFER .................................................... 73 3.3.5 Ilustração do algoritmo SAFER ...................................................................... 74 RC5 ................................................................................................................................ 75 3.4.1 Parâmetros do RC5 ......................................................................................... 75 3.4.2 Operações básicas do RC5 .............................................................................. 75 3.4.3 Algoritmo de geração de subchaves RC5 ....................................................... 76 3.4.4 Algoritmo de criptografia RC5 ........................................................................ 78 3.4.5 Algoritmo de decriptografia RC5 .................................................................... 78 3.4.6 Dados para testes do RC5 ............................................................................... 79 RC6 ................................................................................................................................ 79 3.5.1 Parâmetros do RC6 ......................................................................................... 79 3.5.2 Operações básicas do RC6 .............................................................................. 79 3.5.3 Algoritmo de criptografia RC6 ........................................................................ 80 3.5.4 Decriptografia RC6 .......................................................................................... 81 3.5.5 Geração de subchaves RC6 ............................................................................. 82 3.5.6 Dados para teste do RC6 ................................................................................ 83 Fast Encryption Algorithm — FEAL ....................................................................... 85 Advanced Encryption Standard — AES ................................................................. 89 3.7.1 Esquema geral do AES-Rijndael ..................................................................... 91 3.7.2 SubBytes (Bloco)............................................................................................ 94 3.7.3 ShiftRows (Bloco) .......................................................................................... 99 3.7.4 MixColumns (Bloco) ................................................................................... 100 3.7.5 AddRoundKey (Bloco, ExpandedKey) ..................................................... 104 3.7.6 Geração de subchaves (key schedule) ........................................................ 104 3.7.7 Valores de teste da geração de subchaves ................................................... 109 3.7.8 Valores de teste do AES ................................................................................ 110 3.7.9 Inversa do AES-Rijndael ............................................................................... 110 3.7.10 Criptanálise do Rijndael ................................................................................ 112 3.7.11 AES simplificado ........................................................................................... 113 Criptanálise diferencial — CD ................................................................................... 113 Criptanálise linear — CL ............................................................................................ 114 Fortalecimento contra CDe CL .................................................................................. 114 Modos de operação ..................................................................................................... 115 3.11.1 Modo ECB — Electronic Code Book Mode ................................................ 116 3.11.2 Modo CBC — Cipher Block Chaining Mode ............................................. 116 3.11.3 Modo CFB — s-Cipher Feedback Mode ..................................................... 118 3.11.4 Modo OFB — s-Output Feedback Mode..................................................... 120 3.11.5 Modo Contador (Counter Mode) ................................................................. 122

4 Criptografia de chave pública ......................................................................123 4.1 Problema do logaritmo discreto ................................................................................ 126


CONTEÚDO

11

4.2 Diffie-Hellman ............................................................................................................. 127 4.2.1 Ataque ativo do tipo ‘man-in-the-middle’ .................................................... 128 4.2.2 Protocolo Diffie-Hellman modificado ........................................................... 129 4.2.3 Um exemplo do protocolo modificado ......................................................... 129 4.3 Algoritmo RSA ............................................................................................................ 129 4.3.1 Cálculo de um par de chaves ........................................................................ 130 4.3.2 Algoritmo de criptografia e decriptografia ................................................... 130 4.3.3 Autenticação do receptor ............................................................................. 131 4.3.4 Criptanálise do RSA — “calcanhar-de-aquiles” ........................................... 131 4.3.5 Autenticação do remetente .......................................................................... 133 4.3.6 Verificação de integridade — “Cheque” eletrônico ..................................... 135 4.3.7 Exemplo numérico maior de RSA ................................................................ 135 4.3.8 Demonstração da inversa do algoritmo RSA ............................................... 135 4.3.9 Algoritmo de exponenciação modular ......................................................... 136 4.3.10 Segurança do RSA — fatoração e outras formas de recalcular a chave secreta do RSA ................................................................................. 136 4.3.11 Como calcular primos longos ........................................................................ 139 4.3.12 Exercícios ...................................................................................................... 146 4.4 Algoritmo Rabin de criptografia ................................................................................ 147 4.4.1 Cálculo de um par de chaves ........................................................................ 148 4.4.2 Algoritmo de criptografia .............................................................................. 148 4.4.3 Algoritmo de decriptografia .......................................................................... 148 4.4.4 Autenticação do receptor ............................................................................. 149 4.4.5 Criptanálise do algoritmo .............................................................................. 149 4.4.6 Exemplo do algoritmo ................................................................................... 149 4.5 O Algoritmo ElGamal de chave pública..................................................................... 150 4.5.1 Algoritmo de criptografia .............................................................................. 150 4.5.2 Algoritmo de decriptografia .......................................................................... 151 4.5.3 Um exemplo numérico .................................................................................. 151 4.5.4 Segurança do Algoritmo ElGamal ................................................................ 151 4.5.5 Observações................................................................................................... 152 4.5.6 Demonstração da função inversa ................................................................. 152 4.6 Problema do logaritmo discreto geral ....................................................................... 152 4.7 O Algoritmo ElGamal geral ........................................................................................ 153 4.7.1 Algoritmo de criptografia .............................................................................. 153 4.7.2 Algoritmo de decriptografia .......................................................................... 154 4.7.3 Exemplos de grupos G para ElGamal .......................................................... 154 4.7.4 Corpo finito de Galois .................................................................................... 154 4.8 Curvas elípticas .......................................................................................................... 160 4.8.1 Problema do logaritmo discreto sobre curvas elípticas — PLD-CE ........... 167 4.8.2 Criptossistema ElGamal sobre curva elíptica .............................................. 168 4.8.3 Criptossistema Menezes-Vanstone ............................................................... 169 4.8.4 Curvas elípticas sobre GF (2m).................................................................... 171 4.8.5 Algoritmo ElGamal sobre curvas elípticas em Corpo Finito de Galois ....... 172 4.8.6 Curvas elípticas na web................................................................................. 173 4.9 Algoritmo MH ............................................................................................................. 173 4.9.1 Cálculo de um par de chaves MH ................................................................. 174


12

CONTEÚDO

4.9.2 Algoritmo de criptografia MH ....................................................................... 174 4.9.3 Algoritmo de decriptografia MH ................................................................... 174 4.9.4 Algoritmo auxiliar para a decriptografia MH ............................................... 176 4.9.5 Autenticação do receptor ............................................................................. 176 4.9.6 Criptanálise do Algoritmo MH ...................................................................... 176 4.9.7 Exemplo do Algoritmo MH ........................................................................... 177 4.9.8 Algoritmo MH iterado ................................................................................... 178 4.10 Smart-card................................................................................................................. 178 4.11 Exercícios ................................................................................................................... 179 5 Autenticação e identificação........................................................................183 5.1 Jogo de cara-e-coroa por telefone ............................................................................. 184 5.2 Protocolo de identificação Feige, Fiat e Shamir ....................................................... 185 5.2.1 Se não houvesse desafio................................................................................ 186 5.2.2 Primeira forma de personificar Alice ........................................................... 186 5.2.3 Segunda forma de personificar Alice ......................................................... . 187 5.2.4 Informação secreta revelada por Alice ......................................................... 187 5.2.5 Como generalizar para mais de um segredo para Alice .............................. 187 5.2.6 Smart Cards ................................................................................................. 188 5.3 Protocolo de identificação GQ ................................................................................... 188 5.3.1 Escolha dos parâmetros ................................................................................ 188 5.3.2 Escolha dos parâmetros para cada usuário ................................................. 188 5.3.3 Protocolo de identificação ............................................................................ 189 5.3.4 Personificação................................................................................................ 190 5.3.5 Exemplo ......................................................................................................... 190 5.4 Protocolo de identificação Schnorr ........................................................................... 191 5.4.1 Escolha dos parâmetros ................................................................................ 192 5.4.2 Escolha dos parâmetros para cada usuário ................................................. 192 5.4.3 Protocolo de identificação ............................................................................ 192 5.4.4 Um exemplo numérico .................................................................................. 193 5.4.5 Personificação................................................................................................ 194 6 Assinatura criptográfica ...............................................................................195 6.1 Assinatura RSA ........................................................................................................... 196 6.2 Algoritmo Rabin de assinatura................................................................................... 197 6.2.1 Propriedades preliminares ............................................................................ 197 6.2.2 Parâmetros da Alice ...................................................................................... 198 6.2.3 Assinatura da Alice sobre uma mensagem m .............................................. 198 6.2.4 Verificação da assinatura .............................................................................. 198 6.2.5 Esquema de assinatura Rabin falsificável .................................................... 199 6.3 Assinatura Feige-Fiat-Shamir .................................................................................... 200 6.3.1 Criação da assinatura por Alice .................................................................... 201 6.3.2 Verificação da assinatura .............................................................................. 202 6.3.3 Falsificação de uma assinatura ..................................................................... 202 6.4 Esquema de assinatura GQ ........................................................................................ 203 6.4.1 Escolha dos parâmetros ................................................................................ 203 6.4.2 Criação da assinatura GQ .............................................................................. 204


CONTEÚDO

6.5

6.6

6.7

6.8

13

6.4.3 Verificação da assinatura GQ ........................................................................ 204 6.4.4 Probabilidade de falsificação de uma assinatura ......................................... 205 O Algoritmo ElGamal de assinatura .......................................................................... 205 6.5.1 Algoritmo para assinar .................................................................................. 205 6.5.2 Algoritmo para verificar assinatura (y, z) .................................................... 206 6.5.3 Observações................................................................................................... 206 6.5.4 Um exemplo numérico .................................................................................. 206 6.5.5 Demonstração da verificação ........................................................................ 207 6.5.6 Segurança da assinatura ElGamal ................................................................ 207 O Algoritmo DSS — Digital Signature Standard .................................................. 208 6.6.1 Algoritmo para Alice assinar x œ Zp* ........................................................... 209 6.6.2 Algoritmo para Beto verificar a assinatura .................................................. 209 6.6.3 Observações................................................................................................... 209 6.6.4 Segurança ...................................................................................................... 209 6.6.5 Um exemplo numérico .................................................................................. 209 6.6.6 Demonstração da verificação da assinatura ................................................. 210 Algoritmo Schnorr de assinatura ............................................................................... 211 6.7.1 Algoritmo para assinar .................................................................................. 212 6.7.2 Algoritmo para verificar uma assinatura ...................................................... 212 6.7.3 Demonstração da verificação da assinatura ................................................. 212 6.7.4 Um exemplo numérico .................................................................................. 212 6.7.5 Exercícios ...................................................................................................... 213 Assinatura criptográfica na Web ................................................................................ 213

7 Funções espalhamento .................................................................................215 7.1 Método Merkle-Damgård ........................................................................................... 217 7.2 Ataque pelo Paradoxo de Aniversário ....................................................................... 218 7.2.1 Paradoxo de Aniversário ............................................................................... 219 7.2.2 Algoritmo de Ataque pela Raiz Quadrada .................................................... 221 7.3 Little-endian e big-endian .......................................................................................... 222 7.4 Algoritmo MD4 ........................................................................................................... 223 7.4.1 Primeiro passo de MD4 ................................................................................. 224 7.4.2 Segundo passo de MD4 ................................................................................. 224 7.4.3 Terceiro passo de MD4.................................................................................. 225 7.4.4 Histórico da criptanálise do MD4 ................................................................. 226 7.5 Algoritmo MD5 ........................................................................................................... 226 7.5.1 Primeiro passo de MD5 ................................................................................. 228 7.5.2 Segundo passo de MD5 ................................................................................. 229 7.5.3 Terceiro passo de MD5.................................................................................. 230 7.5.4 Quarto passo de MD5 .................................................................................... 230 7.5.5 Histórico da criptanálise do MD5 ................................................................. 231 7.6 Algoritmo SHA — Secure Hash Algorithm ........................................................... . 231 7.6.1 Histórico da criptanálise do SHA .................................................................. 233 7.7 Futuro da funções de espalhamento ......................................................................... 233 A

As tabelas SBox ............................................................................................235


14

CONTEÚDO

B

Conceitos fundamentais ...............................................................................239 B.1 Grupo ............................................................................................................. 239 B.2 Anel ................................................................................................................ 240 B.3 Corpo ............................................................................................................. 240 B.4 Notação O() e o() ......................................................................................... 241 B.5 Complexidade de algoritmo .......................................................................... 241

C

Elementos de Teoria dos Números ..............................................................243 C.1 Resto de divisão e módulo ............................................................................ 243 C.2 Soma e produto mod m ................................................................................ 244 C.3 Números primos ............................................................................................ 244 C.4 Algoritmo de Euclides e mdc ........................................................................ 244 C.4.1 Exemplo de execução do Algoritmo de Euclides ........................................ 245 C.4.2 Algoritmo de Euclides ................................................................................... 245 C.5 Algoritmo de Euclides estendido ................................................................. 246 C.6 Cálculo de inversa multiplicativa mod m ..................................................... 248 C.7 Teorema Chinês do Resto — TCR ................................................................ 249 C.7.1 Aplicação do TCR em implementação do RSA ............................................ 251 C.8 Raízes quadradas de 1 mod n ....................................................................... 251 C.9 Zn e Zn* ........................................................................................................... 252 C.10 Função F de Euler......................................................................................... 253 C.11 Gerador ou elemento primitivo de Zn*.......................................................... 255 C.12 Resíduo quadrático mod n ............................................................................ 256 C.13 Símbolo de Legendre .................................................................................... 257 C.14 Símbolo de Jacobi .......................................................................................... 258 C.14.1 Caso particular de a pq, p = q = 3 mod 4 ..................................................... 262 C.14.2 Exercícios ...................................................................................................... 263 C.14.3 Pseudoprimos ................................................................................................ 263 C.15 Teorema de Euler .......................................................................................... 264 C.16 Cálculo de quatro raízes quadradas ............................................................. 265 C.17 Fatoração de n .............................................................................................. 266 C.18 Algoritmo de exponenciação ........................................................................ 267 C.18.1 Exercícios ...................................................................................................... 268 C.19 Corpo Finito deGalois ................................................................................... 269 C.19.1 Soma e produto em GF(2m).......................................................................... 271 C.19.2 Base de espaço vetorial para GF(2m) ........................................................... 276 C.19.3 Exercícios ...................................................................................................... 277

D

Algoritmo de compressão de dados LZ77 279 D.1 Algoritmo LZ77 em processo de descompressão ........................................ 282 D.2 Conclusões ..................................................................................................... 284

E

Pretty Good Privacy — PGP ........................................................................287

F

Transport Layer Socket — TLS (SSL) .......................................................291

G

Implementação do RSA em JAVA .................................................................293

H

Padronizações de criptografia eletrônica e IACR ......................................299


Capítulo 1 Introdução e motivações A habilidade humana não pode inventar código que a habilidade humana não possa decifrar. Edgar A. Poe (1809-1849) Você consegue ir mais longe com uma palavra gentil e uma arma de fogo do que você consegue só com uma palavra gentil. Willy Sutton, assaltante de banco, 1994 Na prática, a eficácia de uma proteção depende muito do modo como ela é usada; o melhor cofre do mundo é inútil se ninguém se lembrar de fechar a sua porta. Computer at Risk, 1991 Drama e conflito são inerentes em criptografia, que, de fato, pode ser definida como ciência de transmissão e gestão de informação na presença de um adversário. A mentalidade de “espião versus espião” de competição e rivalidade constantes é estendida para a cultura disciplinar da área. Ela pode se tornar excessiva — e às vezes até infantil — mas ela explica também em parte porque pode ser tão divertido pesquisar cientificamente a criptografia. Neal Koblitz, 2007 Nos últimos dez anos tem havido um avanço extraordinário na disseminação e popularização da rede Internet e o advento das chamadas “lojas virtuais” para comércio pela Internet, e das “home-bankings” que possibilitam transações bancárias através de uma senha (ou chave) de conhecimento apenas da pessoa autorizada. Há também diversos serviços de notícias e informações econômicas, sociais, artísticas, médicas, técnico-científicas, etc. Tais serviços oferecem conforto, economia e rapidez em tarefas outrora cansativas, custosas e demoradas. Essa democratização da informação motivou a cu15


22

CAPÍTULO 1. INTRODUÇÃO E MOTIVAÇÕES

Figura~1.1: Máquina ENIGMA usada pelos alemães (1944)

os métodos mais sofisticados para atacá-lo. Se o algoritmo passa por tal escrutínio, a indústria aceita-o como seguro em relação ao estado-da-arte. Um contra-exemplo deste procedimento é o caso de algumas empresas norte-americanas de telefonia celular digital que projetaram algoritmos secretos, e ao longo de alguns anos (1995-99) decidiram torná-los públicos. E recentemente (junho de 1999) tais algoritmos foram quebrados. Por outro lado, um exemplo altamente significativo é a competição aberta chamada AES — Advanced Encryption Standard — que objetiva selecionar o substituto do DES — Data Encryption Standard — até o ano 2000. Em abril de 1999 cinco algoritmos foram selecionados entre quinze candidatos (todos de conhecimento público) após meses de análises conduzidas por pesquisadores do mundo inteiro. Maiores detalhes na página WEB csrc.nist.gov/ encryption/ aes/ e na Seção 3.7.

1.4

Criptanálise e seus tipos

Quando se analisa a segurança de um algoritmo criptográfico, deve-se especificar que tipo de ataque está sendo considerado.


Capítulo 2 Teoria da informação — Entropia Números aleatórios não podem ser gerados por um método escolhido aleatoriamente. Don Knuth

Em 1949 Claude Shannon publicou um artigo seminal chamado Communication Theory of Secrecy Systems, no Bell Systems Technical Journal, que influenciou substancialmente o estudo da criptografia. Veremos alguns conceitos relevantes deste artigo.

2.1

Difusão e confusão

Diz-se que uma substituição acrescenta confusão à informação, e uma transposição acrescenta difusão. O objetivo da confusão é tornar mais complexa a relação entre a chave e o texto ilegível de tal forma que fique difícil a um criptanalista Carlos deduzir qualquer propriedade da chave a partir do conhecimento do texto ilegível. O objetivo da difusão é embaralhar ou espalhar os bits do texto legível para que qualquer redundância seja eliminada no texto ilegível. Na maioria dos algoritmos criptográficos modernos cada função componente acrescenta confusão e difusão. 31


2.3. SEGURANÇA PERFEITA

35

Utilizando o Teorema de Bayes podemos calcular as probabilidades condicionais p(xi |yj ) para o Exemplo 2.3: p(x1 |y1 ) = 1 (pela chave K1 )

p(x1 |y2 ) =

p(y2 |x1 )p(x1 ) p(y2 )

=

|x1 )p(x1 ) p(x1 |y3 ) = p(y3p(y = 3) p(x1 |y4 ) = 0

11 44 7 16

=

1 7

11 44 1 4

=

1 4

p(x2 |y1 ) = 0

p(y2 |x2 )p(x2 ) p(y2 )

13 24 7 16

=

6 7

|x2 )p(x2 ) p(x2 |y3 ) = p(y3p(y = 414 = 3) 4 p(x2 |y4 ) = 1 (pela chave K3 )

3 4

p(x2 |y2 ) =

=

13

Observe que só o ilegível y3 satisfaz a definição de segurança perfeita. O lema a seguir é uma aplicação do Teorema de Bayes e caracteriza segurança perfeita. Lema 2.3 Há segurança perfeita se e só se ∀xi ∀yj : p(yj |x1 ) = p(yj ) Demonstração: Como ∀xi : p(xi ) 6= 0, podemos dividir a igualdade no Teorema de Bayes por p(xi ) e este Lema decorre de forma imediata. Segurança perfeita significa, em outras palavras, que, para ∀xi ∀xk ∀yj , a probabilidade de todas as chaves criptografarem xi para yj é igual à probabilidade de todas as chaves criptografarem xk para yj , pois este Lema 2.3 diz que pi (yj ) = p(yj ) = pk (yj ).

2.3.1

Chaves igualmente prováveis

Vamos analisar nesta seção o caso em que a probabilidade de cada uma das r chaves ser usada para criptografar é igual a 1/r. Neste caso, ∀xi ∀xk ∀yj o número de chaves que criptografam xi para yj é igual ao número de chaves que criptografam xk para yj . Como xi , xk , yj são arbitrários, se há segurança perfeita e as chaves são igualmente prováveis, então existe uma constante, digamos W , tal que existem exatamente W chaves que criptografam cada legível x para cada y ilegível. Este argumento nos leva ao seguinte lema: Lema 2.3.1 Havendo segurança perfeita, o número de chaves distintas é maior ou igual ao número de legíveis possíveis. Demonstração: 1. ∀xi ∀xk ∀ chave Ks : fKs (xi ) 6= fKs (xj )


Capítulo 3 Criptografia de chave secreta É muito simples. Parece muito simples. Mas se você não conhece a chave, é virtualmente indecifrável. Ruth Randell (Talking to Strange Men) Neste capítulo veremos alguns algoritmos criptográficos seguros e eficientes, chamados algoritmos de chave secreta (ou simétricos) em que Alice, com chave K, criptografa um texto legível x obtendo um outro texto ilegível fK (x) = y. O texto y é transmitido para o computador-destino do Beto onde y é decriptografado pelo algoritmo inverso fK−1 (y) obtendo-se x se e só se o destinatário Beto conhece a chave K. Para quem desconhece a chave K é computacionalmente difícil obter-se y a partir do conhecimento de x, se o algoritmo for bem projetado, isto é, se for seguro. São chamados também de algoritmos simétricos porque a chave K é a mesma para Alice e Beto. chave K

chave

K

y x

f K ( x) = y Alice

f K −1 ( y) = x linha de comunicação

Beto

Os algoritmos permitem resolver os problemas seguintes: 43

x


52

CAPÍTULO 3. CRIPTOGRAFIA DE CHAVE SECRETA

bit 1

bit 2

(1)2

(0)2

coluna (0110)2

linha (10)2

-

bit 3 (1)2

bit 4 (1)2

bit 5 (0)2

bit 6 (0)2

?

4 bits

Figura 3.7: Ilustração de um S-box: troca de 6 bits por 4 bits da como sendo fKj (Dj ) ⊕ Ej . Substituindo acima: fKj (Dj ) ⊕ Dj+1 = fKj (Dj ) ⊕ [fKj (Dj ) ⊕ Ej ] = Ej , que passa a ser a metade direita para a próxima iteração de decriptografia. E Dj é a metade esquerda para a próxima iteração de decriptografia. Em resumo, para decriptografar, basta aplicar a mesma chave Kj sobre as duas metades trocadas de esquerda para direita, digamos xM j+1 = M (Dj+1 ,Ej+1 ), resultando as duas metades originais, digamos xj = (Dj , Ej ), também com as metades trocadas de posição. Finalmente, a decriptografia DES é como se vê na Figura 3.9 da página 54: 1. Fornece-se o texto ilegível y como entrada para DES, que é submetido a IP , resultando o valor intermediário xM 17 , i.e., x17 com as metades trocadas.


3.11. MODOS DE OPERAÇÃO

x1

x2

? -⊕

VI

- fK ()

?

VI

¶ ¶ ¶ ¶

7 ¶ ¶ ? ¶ ¶ fK ()

?

?

7 ¶ ¶ ? ¶ ¶ fK () ¶ ¶ ¶ ? ¶

y1

y2

y3

y1

y2

y3

?

K

x3

?

?

K

117

- f −1 () K

? -⊕ ?

x1

S S S S

S ? −1

fK () S S S w ? S

S ? S S −1 fK () S S S w ? S

⊕ ?

x2 Figura 3.18: Modo CBC

⊕ ?

x3


Capítulo 4 Criptografia de chave pública Todo egípcio recebia dois nomes, chamados respectivamente de nome verdadeiro e nome bom; o nome bom era tornado público, mas o nome verdadeiro era cuidadosamente guardado. Sir James G. Frazer -The Golden Bough. Em 1976 foi publicado o artigo seminal de dois autores — Diffie, W. and Hellman, M. E., New Directions in cryptography, IEEE Transactions on Information Theory, vol 22, #6, pp. 644-654 — o qual inspirou os algoritmos neste Capítulo, chamados algoritmos de chave pública (ou assimétricos). Neste artigo foi proposto um modelo de criptossistema chamado Modelo de Chave Pública em que cada usuário possui um par de chaves (S, P ), sendo S a sua chave particular, secreta, e P a sua chave pública. As chaves S e P são relacionadas matematicamente de tal forma que: 1. Se x denota um texto legível, e S() denota a aplicação da chave S, que transforma x em S(x) = y então P (y) = x onde P () denota a aplicação da chave P . Ou seja S é a chave inversa da chave P — P (S(x)) = x; 2. O cálculo do par de chaves (S, P ) é computacionalmente fácil (conforme Seção B.5); 3. É computacionalmente difícil calcular S a partir do conhecimento de P; 4. Os cálculos de P () e S() são computacionalmente fáceis para quem conhece as chaves; 121


4.7. O ALGORITMO ELGAMAL GERAL

153

3. (x8 + x4 + x) = (x6 + x + 1) mod (x3 + x + 1) pois {z } | {z } {z } | | g(x)

h(x)

f (x)

3.1 g(x) − h(x) = (x8 + x4 + x) − (x6 + x + 1) = (x8 + x6 + x4 + 1)

3.2 (x5 + x2 + x + 1) (x3 + x + 1) = (x8 + x6 + x4 + 1) {z }| {z } | {z } | q(x)

f (x)

g(x)−h(x)

Definição. Para f (x), g(x) ∈ Zp [x] com grau(f) = m: 1. se g(x) = q(x)f (x)+r(x) com grau(r) < m, diz-se que g() é congruente a r() mod f(). q(x) é chamado quociente e r(x) é o resto. 2. Zp [x]/f(x) é o conjunto dos polinômios em Zp [x] com grau ≤ (m − 1). É chamado anel mod f(x) (veja B.2), e existem pm destes polinômios. A soma ⊕ e a multiplicação ⊗ são como em Zp só que com aplicação de mod f (x), i.e. 2.1 g(x) ⊕ h(x) = [g(x) + h(x)] mod p

2.2 g(x) ⊗ h(x) = [g(x)h(x) mod f(x)] mod p2.

Por exemplo, em Z2[x], 1. g(x) = x7 + x4 + x3 + x + 1 = (x3 + x + 1) (x4 + x2 ) + (x2 + x + 1). | {z } | {z } | {z } q(x)

f(x)

r(x)

2. (x5 + x3 + x + 1) + (x5 + x2 + 1) = 2x5 + x3 + x2 + x + 2, | {z } | {z } g(x)

h(x)

2.1 (2x5 + x3 + x2 + x + 2) mod 2 = x3 + x2 + x. | {z } g+h

2.2 Logo, (x5 + x3 + x + 1) ⊕ (x5 + x2 + 1) = x3 + x2 + x.

3. (x5 + x2 + x + 1) (x3 + x + 1) = x8 + x6 + 2x5 + x4 + 2x3 + 2x2 + 2x + 1, | {z }| {z } g(x)

h(x)


Capítulo 5 Autenticação e identificação Não podemos nos aliar a príncipes vizinhos antes de conhecermos as suas verdadeiras intenções. Sun Tsu -The Art of War Neste capítulo os algoritmos objetivam a identificação de informação, como, por exemplo, uma senha. Aqui os algoritmos permitem resolver os problemas seguintes: 1. Ataque por replay: o criptanalista Carlos grava as comunicações legítimas entre Alice e Beto, e depois usa parte da gravação para o seu proveito. Se a parte da gravação usada não é alterada este ataque é chamado passivo; caso contrário, é chamado ativo. 2. Personificação: o criptanalista Carlos simula um outro usuário legítimo. Por exemplo, toma o lugar da Alice sem o Beto notar qualquer diferença. 3. Um mal-intencionado lê e altera parte da informação transitando na linha de comunicação antes de chegar ao Beto, ou seja, Beto gostaria de detectar se alguma alteração parcial foi feita na linha — isto é chamado de detecção de integridade de informação. Computador da Alice (origem)

Mal-intencionado

lê Computador X (provedor)

Computador do Beto (destino)

grava

linha de comunicação

181

Computador Y (provedor)


5.3. PROTOCOLO DE IDENTIFICAÇÃO GQ

5.3.3

187

Protocolo de identificação

Alice se identifica perante um verificador Beto como segue: 1. Alice escolhe um inteiro aleatório r : 1 ≤ r ≤ n − 1 (é o NONCE, veja página 148) e calcula o testemunho x = r v mod n (extrair (x)−v é computacionalmente inviável sem se conhecer a fatoração de n, pois equivale a decriptografar RSA sem conhecer a chave secreta do RSA) e envia (IA , x) para Beto. 2. Beto envia para Alice um inteiro aleatório e (o desafio) tal que 1 ≤ e ≤ v. 3. Alice verifica se 1 ≤ e ≤ v e envia para Beto (a resposta) y = r(sA )e mod n 4. Beto calcula JA = f(IA ) e z = JAe y v mod n e aceita a identidade de Alice se z = x e z 6= 0. Esta condição z 6= 0 é para evitar que uma personificação da Alice ocorra pela escolha de r = 0.

Se Alice de fato conhece sA , então esta última igualdade z = x é verdadeira pois z

= = = = =

JAe yv mod n JAe [r(sA )e ]v mod n r v [(JA )(sA )v ]e mod n r v [(sA )s (sA )v ]e mod n, pois JA = (sA )s mod n r v mod n = x, pois sv = 1 mod Φ(n)


Capítulo 6 Assinatura criptográfica Se um segredo for revelado por um espião antes da hora apropriada, ele deve ser condenado à morte, junto com o homem a quem ele contou primeiro. Sun Tsu -The Art of War. [...] em relação à segurança no computador, o passado não é uma boa referência para o futuro. Computer Risk, 1991 Este capítulo objetiva algoritmos para criar e verificar assinaturas criptográficas. Os algoritmos deste capítulo permitem resolver os problemas seguintes:

Computador da Alice (origem)

Mal-intencionado

lê Computador X (provedor)

Computador do Beto (destino)

grava

linha de comunicação

Computador Y (provedor)

1. Um mal-intencionado lê e altera parte da informação transitando na linha de comunicação antes de chegar ao Beto, ou seja, Beto gostaria de detectar se alguma alteração parcial foi feita na linha — isto é chamado de detecção de integridade de informação. 2. Uma falsa Alice envia informação para Beto, ou seja, Beto deseja ter certeza de que foi a Alice verdadeira que enviou a informação — isto é chamado autenticação da origem. 193


200

CAPÍTULO 6. ASSINATURA CRIPTOGRÁFICA

4. A assinatura é {yj , ejc : 1 ≤ j ≤ t, 1 ≤ c ≤ k} que é guardada junto com o documento x.

6.3.2

Verificação da assinatura

A assinatura criada pode ser verificada sem qualquer informação secreta, da seguinte forma: e

e

e

1. São calculados t valores zj = yj2 (v1j1 v2j2 ...vkjk ) mod n. 2. A função H é aplicada sobre x concatenado com os t valores zj : H = H(x||z1||z2||...zt ). 3. Os primeiros kt bits de H são extraídos e comparados com os {ejc } guardados. Se forem iguais, então a assinatura é aceita como válida. Senão, a assinatura é rejeitada. Esta verificação é baseada na igualdade dos zj e xj como é provado a seguir: zj

6.3.3

= = = =

e

e

e

yj2 (v1j1 v2j2 ...vkjk ) mod n e e e e e e rj2 (s1j1 s2j2 ...skjk )2(v1j1 v2j2 ...vkjk ) mod n rj2 pois s2c = vc−1 mod n xj

Falsificação de uma assinatura

Para um dado x uma pessoa poderia falsificar uma assinatura sem conhecer qualquer sj da seguinte maneira: 1. No passo (3) da criação, o falsificador calcula q

yj = rj (

q

v1−1 )ej1 (

q v2−1 )ej2 ...( vk−1 )ejk


Capítulo 7 Funções espalhamento Se você não conseguir dizer algo em menos que 264 bits, você não deve dizê-lo. (Autor anônimo) Neste capítulo objetivamos algoritmos E() que calculam um valor y = E(x) de comprimento relativamente menor que o comprimento de um texto legível x. Por exemplo, |x| 1 é da ordem de centenas de bytes como o nome e o endereço de uma pessoa, e |y| é da ordem de 128 bits, ou seja |y| << |x|. E() é chamada função espalhamento ou função hashing. O valor y é chamado de resumo de x, ou também MAC (Message Authentication Code), ou HMAC, ou ainda Message Digest de x. A função y = E(x) deve satisfazer as propriedades seguintes: 1. x é de comprimento variável, relativamente longo; 2. y é de comprimento fixo, relativamente curto; 3. dado x, E(x) é fácil de ser calculada. Dada uma função E() diz-se que há colisão se existe um par de legíveis x1 , x2, x1 6= x2, que acarreta E(x1 ) = E(x2 ). Se este tipo de colisão for computacionalmente inviável, diz-se que E() é resistente a colisões. Veja Figura 7.1. 1

|α| denota comprimento de α.

213


7.2. ATAQUE PELO PARADOXO DE ANIVERSÁRIO

7.2.1

217

Paradoxo de Aniversário

A probabilidade de uma colisão (i.e., x1 , x2, x1 6= x2 , acarretar E(x1 ) = y1 = E(x2 ) = y2 ) para qualquer função espalhamento. é estimada através de uma metáfora em que bolas coloridas em uma urna são retiradas e devolvidas; a retirada de uma bola com a mesma cor representa uma colisão. São dadas n bolas coloridas com n cores distintas em uma urna. Após retirar uma bola da urna, verifica-se a sua cor e ela deve ser devolvida à urna. Seja yi , i ≥ 1, a cor da i-ésima bola retirada e devolvida: y1 é a cor da primeira bola. da cor y2 da segunda bola ser diferente de y1 (y2 6= y1 ) ¡ A probabilidade ¢ é¡ 1 −¢n1 (i.e., não ocorrer colisão), a probabilidade de y3 6= y1, y3 6= y2 é 1 − n2 , e assim por diante. A probabilidade de não ocorrer a mesma cor após k bolas retiradas é: µ

1 1− n

¶µ

2 1− n

¶µ

¶ µ ¶ k−1 ¶ k−1 Yµ Y 3 k−1 i 1− ... 1 − = ' e−i/n 1− n n n i=1 i=1

A última aproximação acima é justificada pelo fato que, para x suficientemente pequeno, (1 − xn ) é aproximadamente e−x/n , devido à expansão de e−X para um X real suficientemente pequeno: −X

e

X2 X3 = 1−X + − + ... 2! 3!

Ademais: k−1 Y i=1

e−i/n =

1 1 n

e (e1 e2 e3...e(k−1))

=

1 1 n

e (e

1 k(k−1) 2

1

)

= e− 2 k

k−1 n

Seja 0 < ε < 1 a probabilidade de ocorrer a mesma cor (i.e., uma colisão); então 1 − ε é dada pela fórmula acima, ou seja: 1

1 − ε ' e− 2 k

k−1 n

1 k −1 ln(1 − ε) ' − k 2 n · ¸ 1 2n ln ' k2 − k (1 − ε)




Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.