Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Criptografia, Notas de estudo de Informática

Sobre Criptografia

Tipologia: Notas de estudo

2016

Compartilhado em 04/05/2016

xpto121520
xpto121520 🇧🇷

4.6

(27)

94 documentos

1 / 470

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Versão Preliminar
notas de aula versão 90 - Jerônimo C. Pellegrini
Introdução à Criptograa e seus Fundamentos
notas de aula versão 90
Jerônimo C. Pellegrini
18 de fevereiro de 2016
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Criptografia e outras Notas de estudo em PDF para Informática, somente na Docsity!

Versão Preliminar

Introdução à Criptograa e seus Fundamentos

notas de aula  versão 90

Jerônimo C. Pellegrini

18 de fevereiro de 2016

Versão Preliminar

Sumário

Versão Preliminar

Versão Preliminar

Versão Preliminar

Versão Preliminar

Versão Preliminar

Versão Preliminar

2 SUMÁRIO

Notação

||x|| tamanho da representação binária de x, precedida pelo bit 1 a||b concatenação das sequências a e b [a]n a classe de equivalência a (mod n) 〈X〉 o grupo gerado por X A× o número A está representado na base 16 (hexadecimal) A ≈ B As distribuições das variáveis aleatóreas A e B são indistinguíveis x ≈ y x e y são números, e x é aproximação de y Π uma construção criptográca (criptossistema, função de hashing etc) σ assinatura Zn grupo multiplicativo de inteiros módulo n A o adversário D o desaador T um teste (algoritmo que distingue duas distribuições) c texto encriptado C um código corretor de erros DHg (a, b) problema Die-Hellman g normalmente, o gerador de um grupo k chave L um reticulado m mensagem em claro p normalmente um número primo p(·) um polinômio q normalmente um número primo; às vezes uma quantidade t código de autenticação de mensagem m(x) polinômio irredutível que dene o corpo de Rijndael c(x) x^4 + 1 (para multiplicação de colunas no AES) lsb (x) bit menos signicativo de x log(x) logaritmo de x na base 2 logg h logaritmo discreto de h na base g msb (x) bit mais signicativo de x negl(·) função desprezível retorne 〈a, b〉 o algoritmo ou função retornará dois valores, a e b rotlk(a) rotação dos bits de a, k posições à esquerda a ← b b é computado e armazenado em a a ∈R S a é escolhido uniformemente ao acaso do conjunto S 〈a, b〉 ← f (· · · ) a função f retorna dois valores a ∧ b e lógico de a e b a ∨ b ou lógico de a e b a ⊕ b ou exclusivo (XOR) de a com b (adição módulo 2) a não lógico (negação do bit a) perm_col (M ) conjunto de todas as matrizes obtidas permutando colunas de M O ponto no innito, adicionado ao R^2 QRn conjunto de resíduos quadráticos módulo n Jn conjunto de números em Zn com símbolo de Jacobi igual a +

Versão Preliminar

Versão Preliminar

A primeira parte aborda os problemas básicos da Criptograa, expondo cons- truções clássicas. São dadas denições precisas para cada conceito, e há seções em cada Capítulo dedicadas a denições e demonstrações de segurança com razoável rigor.

Versão Preliminar

Capítulo 1

Introdução e visão geral

A Criptograa abrange desde a concepção até a implementação de sistemas de computação relacionados a diversos aspectos de segurança. As seções seguintes dão uma visão geral dos temas que abordaremos. Em alguns casos há exemplos concretos.

1.1 Encriptação simétrica

O problema mais conhecido abordado pela Criptograa é o de modicar mensa- gens para que quem indecifráveis. Decifrar (ou decriptar) a mensagem só deve ser possível para quem tenha a posse de um segredo. Soluções para este pro- blema são chamadas de criptossistemas simétricos, e o segredo é normalmente chamado de chave. Todo criptossistema simétrico oferece ao usuário duas funções, cada uma com dois argumentos: uma para cifrar e outra para decifrar. Convencionaremos usar Enc(m, k) para a função que cifra e Dec(m, k) para a função que decifra m com a chave k. Evidentemente, é necessário que Dec(Enc(m, k), k) = m para todos m e k. A função que transforma a mensagem (que chamamos de texto claro) em algo irreconhecível (que chamamos de texto cifrado) deve necessariamente ser difícil de inverter sem o argumento k, de outra forma qualquer um com acesso à mensagem poderia facilmente decifrá-la. Ao algoritmo usado para calcular as funções Enc e Dec damos o nome de cifra. É comum classicar cifras em dois tipos:

  • Cifras de uxo, que transformam cada bit da mensagem em um bit do texto cifrado ao misturá-lo com um bit de outra fonte de bits (um gerador pseudoaleatóreo de bits, por exemplo) Esta mistura normalmente é uma operação de ou exclusivo, como ilustrado na gura a seguir:

Versão Preliminar

8 CAPÍTULO 1. INTRODUÇÃO E VISÃO GERAL

1 0 0 1 0 1 1 1 0 1

0 0 1 1 1 0 1 0 1 1

1 0 1 0 1 1 0 1 1 0

mensagem

bits aleatóreos

texto cifrado

A semente do gerador aleatóreo é a senha que permite encriptar e decriptar mensagens. Em uma cifra de uxo usando ou exclusivo, Enc e Dec são idênticas;

  • Cifras de bloco, que transformam sequências de bits de tamanho xo, re- alizando nelas transformações difíceis de inverter. mensagem

texto cifrado

0 1 1 0 1 1 1 0 1 1 0 0 0 1 0

f f f

1 1 0 1 1 0 0 0 1 1^ 1 1 1 1 0

A função f (k, m) na gura aceita dois parâmetros: um é a chave secreta usada para encriptar a mensagem e outra é a mensagem; f −^1 (k, c) deter- mina a mensagem a partir do texto cifrado e da chave. É importante que f −^1 seja difícil de calcular sem a chave k (deniremos com mais clareza esta diculdade mais adiante).

1.2 Encriptação assimétrica

Um problema dos esquemas simétricos de encriptação é que cada par de usuários que queira se comunicar em sigilo precisa compartilhar uma chave secreta. Se Alice e Bob estão sicamente distantes e não podem fazê-lo de maneira simples, um esquema simétrico não é útil. Os criptossistemas assimétricos permitem que diferentes usuários se comuniquem em sigilo sem este problema. Em um criptossistema assimétrico, tanto Alice como Bob tem duas chaves  uma pública (conhecida de todos, possivelmente divulgada na Internet) e outra privada.

Versão Preliminar

10 CAPÍTULO 1. INTRODUÇÃO E VISÃO GERAL

mensagem secreta! ↓ SHA- ↓ fbb5a6d34f05b708e780fd2ab674845b5d34162066d976a819bf02c02e444a

  • Embora seja fácil calcular, a função de hashing deve ser difícil de inverter (e portanto não deveria ser possível a alguém chegar à cadeia mensagem secreta a partir de 1cc5· · · a94a).

Funções de hashing são diretamente úteis em diversas situações onde quere- mos garantir a integridade de dados, e também na construção de outras ferra- mentas criptográcas. Suponha que queiramos garantir a integridade de um arquivo ou mensagem, evitando que alguém mais o modique (um vírus ou um intruso, por exem- plo). Poderíamos computar resumos (hashes) destes arquivos (o resumo de um arquivo tem tamanho muito menor que o próprio arquivo) e armazená-los em uma tabela. No entanto, nada impede que o intruso recalcule os hashes e os modique também na tabela, tornando inócua nossa medida de precaução. No entanto, se concatenarmos cada arquivo (ou mensagem) com uma chave secreta antes de calcular o hash e armazenarmos este resumo na tabela, o intruso não terá como modicá-la (ele pode recalcular o resumo do arquivo modicado, mas não conhece a chave secreta  e portanto não poderá calcular o hash correto). A este tipo de resumo damos o nome de código de autenticação de mensagem (ou MAC  Message Authentication Code). Funções de hashing também podem ser usadas para construir geradores pseu- doaleatóreos, para derivar novas chaves de uma única chave-mestra e construir cifras de bloco

1.4 Assinatura digital

Os esquemas de encriptação assimétricos garantem sigilo na comunicação entre duas partes, mas chaves públicas podem ser usadas também para garantir o não- repúdio (ou irretratabilidade) de documentos: se Alice usa sua chave privada para criar um documento, qualquer um de que tenha sua chave pública poderá vericar que realmente Alice publicou aquele documento (e Alice não poderá posteriormente negar que o fez).

Versão Preliminar

1.5. ESTABELECIMENTO DE CHAVES 11

É importante observar que um MAC (código de autenticação de mensagem, mencionado na seção sobre funções de hashing) não dá garantia de não-repúdio, uma vez a chave secreta incluída antes do cálculo de hash não está unicamente associada a alguma entidade da mesma forma que um par de chaves pública/- privada.

1.5 Estabelecimento de chaves

Criptossistemas assimétricos normalmente são mais lentos que os simétricos. Assim, quando Alice e Bob quiserem se comunicar, idealmente usariam inicial- mente um criptossistema assimétrico apenas para poder em seguida estabelecer uma chave simétrica para que possam trocar informações.

1.6 Chaves públicas conáveis

Há um problema com os esquemas de encriptação assimétricos: quando a chave pública de Alice é oferecida a Bob, como Bob pode ter certeza de que foi real- mente Alice que a enviou? Há diferentes maneiras de abordar este problema. Podemos dar a uma entidade a autoridade para assinar chaves públicas. Desta forma quando Alice envia sua chave pública, envia também uma declaração da autoridade central de que aquela chave é de Alice. Outra maneira de lidar com este problema é construir uma rede de conança, onde cada pessoa assina a chave pública de outras, dando sua fé de que aquela chave realmente pertence àquela pessoa. Por último, há também a Criptograa baseada em identidades.

1.7 Protocolos

Além dos problemas já descritos, a Criptograa moderna trata também de pro- blemas de interação entre partes onde não necessariamente há conança mútua.