Upload
felipetsi
View
5.856
Download
5
Embed Size (px)
Citation preview
Segurança da Informação
Criptografia
Felipe Pereira da Silva
2012
Criptografia - História
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
• 1º exemplo foi o Atbash, utilizado pelos Hebreus aproximadamente 1.900 a.C;
• Cifra de César onde a chave provoca um deslocamento no alfabeto. Crifra monoalfabético;
• Cifra de Vigenére introduziu o conceito de chave para criptografar o texto é uma cifra polialfabética
Criptografia - História
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
Cifra de Vigenére introduziu o conceito de chave para criptografar o texto. É uma cifra polialfabética.
Criptografia simétrica
Requer uma chave compartilhada
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 1,5milhões da conta 254674-12 para a conta 071517-08
Affonso
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 1,5milhões da conta 254674-12 para a conta 071517-08
Affonso
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9eeaqw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9eeaqw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
Criptografia
+ + Algoritmo =
Decriptografia
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 1,5milhões da conta 254674-12 para a conta 071517-08
Affonso
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 1,5milhões da conta 254674-12 para a conta 071517-08
Affonso
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9eeaqw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9eeaqw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
+ + =Algoritmo
Criptografia simétrica
• Desvantagens• Estabelecimento das chaves.
• O canal precisa ser seguro, pois a segurança depende do sigilo da chave.
• Escalabilidade.• Número de chaves = N(N-1)/2 , onde N é o número de
indivíduos.• Não oferece os serviços de autenticação e não
repúdio.
• Vantagem• Pouco uso dos recursos de processamento.
Criptografia simétrica
• Algorítmos criptográficos simétricos - Exemplos– DES - Data Encryption Standard (1977) - 56 bits;– IDEA - International Data Encryption Algorithm;– (1994) - 128 bits;– 3DES - “Triple DES” (1995) - 168 bits (efetivo
112 bits);– AES - Advanced Encryption Standard (2000) -
128, 192, 256 bits;– “One-Time Pad” - Incondicionalmente seguro.
(1948).
Criptografia simétrica
• Estes algoritmos se dividem em duas formas de execução da cifragem:• Por fluxo
• Encriptam a mensagem bit a bit, em um fluxo continuo;
• Se uma mensagem tiver 14 mil bits, a chave que será utilizada também terá 14 mil bits;
• Ex: One-Time Pad, RC4, Blum-Blum-Shub.• Por bloco
• Processam os dados considerando-os como um conjunto de bits, em blocos;
• Possui um tamanho da chave definido;• Ex: DES, AES, 3DES, Blowfish.
• Além dos tipos de cifras, fluxo ou bloco, existem os modos de criptografia, que definem como o algorítmo processará as múltiplas entradas:• Electronic Code Book (ECB)• Cipher Block Chaining (CBC)• Cipher Feedback Mode (CFB)• Output Feedback Mode (OFB)• Counter (CTR)
Criptografia simétricaModo de operação
• ECB - Funcionamento
Texto em claro Texto cifrado
Texto em claro
• Características:• Para cada texto-plano, há um código que o
representa;• A entrada de um mesmo texto mais de uma vez,
sempre terá o mesmo texto cifrado.
Criptografia simétricaModo de operação
• ECB – Ataque Block Replay
XiudericoAtanagildetina
Radegondes
Se Radegondes captura todos os tráfegos da comunicação, então Xiuderico faz uma transferência bancária para Atanagildetina e depois Xiuderico faz uma outra transferência para Radegondes. Quando Xiuderico for fazer uma nova transferência, agora para Capitulina, Radegonde poderá substituir o trecho que define a conta bancária de Capitulina pela dele.
Capitulina
Criptografia simétricaModo de operação
• CBC - CriptografiaTexto em
claro-1
• Características:• Precisa de um Vetor de Inicialização (VI);• O texto cifrado no bloco anterior é utilizado para
fazer um XOR com o próximo bloco antes de ser criptografado;
• Se um bloco comprometido após encriptado, o receptor terá problemas para decriptar esse bloco e o próximo.
VI Texto cifrado-1
Texto em claro-2
Texto cifrado-2
+= =
+
Criptografia simétricaModo de operação
• CBC - CriptografiaTexto em
claro-1
• Características:• O VI não precisa ir criptografado já que a
segurança do algorítmo não depende o segredo do IV;
• É de fundamental importância que o VI seja aleatório.
VI
Texto cifrado-1+ =
+VI – em claro
Bloco transmitido
Criptografia simétricaModo de operação
• CBC - DecriptografiaTexto
cifrado-1
VI
+
=
Texto cifrado-1
Pré texto VI Texto em claro-1
Texto cifrado-2
+Pré texto
Texto cifrado-1 = Texto em
claro-2
Criptografia simétricaModo de operação
• CFB - Criptografia • Características:• Pega-se n bits
da esquerda do V cifrado e realiza-se XOR com os n bits da mensagem.
+
VI
n bits
Texto em
claro
V
=
Texto em
cifrado
Criptografia simétricaModo de operação
• CFB - Funcionamento• Características:
• Pega-se n bits da esquerda do VI cifrado e realiza-se XOR com os n bits da mensagem;
• Antes de criptografar os próximos bits, os primeiros n bits são descartados e os demais deslocados para esquerda;
• Pega-se os n últimos bits do bloco criptografado anterior e preenche o restante do vetor.
Criptografia simétricaModo de operação
• CFB - Decriptografia
+
VI
n bits
Tx. cript.
V
=
Texto em
claro
Tx. cript.
Criptografia simétricaModo de operação
• OFB - Criptografia • Características:• Semelhante
ao CFB, no entanto ao invés de utilizar o texto cifrado para alimentar a fila, é utilizado os n bits da saída, retornando-os para o final da fila.
+
VI
V
Na sequência, funciona da mesma forma descrita no CFB.
Criptografia simétricaModo de operação
• Counter - Criptografia • Características:• Semelhante
ao OFB, no entanto ao invés de utilizar a fila e ir girando os bits, é utilizado um sequenciador concatenado com um vertor, formando o VI.
+
Nonce – c678 Couter – 0001VI
n bits
Tx. claro
V
=
Tx. cript.
Criptografia simétricaModo de operação
Bloco de 64 bits Texto Puro (TP)
Permutação inicial
Iteração 1
Iteração 2
Bloco de 64 bits Chave (K)
Permutação
Rotação para esquerdaPermutação
Rotação para esquerdaPermutação
... ... ...
Iteração 16 Rotação para esquerdaPermutação
Iteração 3 Rotação para esquerdaPermutação
Iteração 4 Rotação para esquerdaPermutação
Swap Inversão da Permutação inicial Bloco de 64 bits Texto
criptografado (TC)
Criptografia simétricaDES - Fluxo de funcionamento
Criptografia simétricaDES - Fluxo de funcionamento - Iteração
Bloco de 64 bits
L1
32 bitsR1
32 bits
Permutação/Expansão
48 bits
Sub-chave
S1 S2 S3 S4 S5 S6 S7 S8
32 bits
Permutação (P)
L1
32 bits
32 bits
Bloco de 64 bits
56bits
Sub-K+ (C1) de 24bits
Sub-K+ (D1) de 24bits
Permutação
Verificação da integridade e exclusão dos bits de
paridade
Chave (K) de 56bits
A cada iteração ocorre um deslocamento de x posições para esquerda.
Permutação Inicial (PI)
Permutação de contração
48bits
O resultado é dividido em 8 blocos de 6 bits, ocorrendo então uma transformação em cada bloco para 4 bits em uma operação não-linear.
Criptografia simétrica3DES - Fluxo de funcionamento
Texto Puro (TP)
• O algorítmo 3DES realizada o mesmo fluxo do DES, porém, 3 vezes, sendo duas ações de criptografia e uma de decriptografia. Embora existam implementações que criptografam as três vezes (EEE) a mais comum é a (EDE).
DES - Criptografia
Texto Criptografado-1
(TC1)
Texto Criptografado-1
(TC1)
K1
+
Texto Criptografado-2
(TC2)
DES - Decriptografia
K2
+
Texto Criptografado-2
(TC2)
Texto Criptografado
K1 ou K3
+
Como a chave utilizada nesta função decriptográfica é diferente da que foi utilizada na criptografia, o texto ficará ainda mais embaralhado.
DES - Criptografia
Criptografia simétricaAES
• Possui tamanhos de chaves variados, 128, 160, 192, 224 e 256 bits.
• É executada iterações em 4 etapas, a saber: • AddRoundKey• SubBytes• ShiftRows• MixColumns.
• Na ultima iteração a operação MixColumns não e realizada.
• No AES o número de rodadas depende do tamanho da chave, podendo ser de 10, 12 e 14 iterações.
• O algoritmo possui uma chave principal e, a partir dela, são geradas N + 1 chaves.
Criptografia simétricaAES
Bloco de n bits
SubBytes
AddRoundKey
ShiftRows
MixColumns
AddRoundKey
K1
K2
Rod
ada
1
SubBytes
ShiftRows
MixColumns
AddRoundKey Kn-1
Rod
ada
N-1
SubBytes
ShiftRows
AddRoundKey K n
Rod
ada
final
Texto Puro (TP)
Texto Criptografado
K1
+
Criptografia AssimétricaRSA – Fluxo de funcionamento
Seleção de dois números primos
(p e q)
Cálculo de n e (q)
Seleção de e, número primo
em relação a (q)
Seleção de d com base em e.
Montagem das chaves. K1= (e,n) K2=(d,n)
Geração do par de chaves Criptografia
Texto Criptografado
Texto Puro (TP)
K2
+
Decriptografia
RSA RSA
1. Seleção de dois números primos, p e q.• Ex:
• p=17• q=23• n= 391 (17*23) - n=p*q• (q) = 352(16*22) - (q)=(p-1)*(q-1) - Quociente de Euler
2. Seleção de um número primo relativo a (q) que se chamará e.• Ex:
• e=7
3. Agora é necessário encontrar d, de tal forma que (d*e) mod (d) = 1• Obs: aqui pode-se simplesmente escolher um d que sirva, pois estamos utilizando
números pequenos, contudo isto não é uma boa ideia para números grandes, onde se utiliza o teorema de euclides estendido, para cálculo do máximo divisor comum.
• Ex:• d=151
4. É necessário apagar p, q e (q), mantendo apenas e, d e n.
5. O par de chaves é:• Ch.privada = (391,7) - (n,e)• Ch.pública = (391,151) - (n,d)
Criptografia AssimétricaRSA – Geração das chaves
1. O método de cifragem do RSA é o seguinte: TC=(TP^e) mod n.
Imaginemos que queremos criptografar a palavra natal, de acordo com a tabela UTF-8 as letras representam os código: 110, 97, 116, 97 e 108. Convertendo esses valores em binário obtemos:
Criptografia AssimétricaRSA – Cifrando
‘ n ’ 1101110
110
‘ a ’ 1100001
97
‘ t ’ 1110100
116
‘ a ’ 1100001
97
‘ l ’ 1101100
108
2. Então teremos como cálculo:• 110 ^ 7 mod 391 = 236
• 97 ^ 7 mod 391 = 109
• 116 ^ 7 mod 391 = 346
• 97 ^ 7 mod 391 = 109
• 108 ^ 7 mod 391 = 133
‘ ì ’ 11101100
236
‘ m ’ 1101101
109
‘ Ś ’ 101011010
346
‘ m ’ 1101101
109
‘ … ’ 10000101
133
TP:
TC:
natal
ìmŚm…
1. O método de decifragem do RSA é o seguinte: TP=(TC^d) mod n.
Para decriptografar a palavra ìmŚm… faremos:
Criptografia AssimétricaRSA – Decifrando
2. Então teremos como cálculo:• 236 ^ 151 mod 391 = 110
• 109 ^ 151 mod 391 = 97
• 346 ^ 151 mod 391 = 116
• 109 ^ 151 mod 391 = 97
• 133 ^ 151 mod 391 = 108
‘ ì ’ 11101100
236
‘ m ’ 1101101
109
‘ Ś ’ 101011010
346
‘ m ’ 1101101
109
‘ … ’ 10000101
133TC:
‘ n ’ 1101110
110
‘ a ’ 1100001
97
‘ t ’ 1110100
116
‘ a ’ 1100001
97
‘ l ’ 1101100
108TP:
natal
ìmŚm…
• Tamanho no Mensage Digest é sempre de 128 bits;
• O cálculo é feito em um processo dividido em 5 etapas.• Append Padding Bits • Append Length• Initialize MD Buffer• Process Message in 16-Word
Blocks• Output
• Está definido na RFC 1321
HashMD5
• Tamanho no Mensage Digest é sempre de 160 bits;
• Está definido na RFC 3174
HashSHA-1
• Cyphertext-only (ataque do texto cifrado):• O criptoanalista dispõem do conhecimento de
certa quantidade de texto criptografado, mas desconhece os originais e as chaves. Seu objetivo é deduzir a chave para decriptografar o texto.
• Known-plaintext (ataque do texto conhecido):• O criptoanalista dispõem de certa quantidade de
texto criptografado e também o original equivalente. Seu objetivo é deduzir a chave utilizada.
Ataques a sistemas criptográficosTipos
• Adptative-choosen-plaintext (adaptativo do texto escolhido)• O criptoanalista fornece um pequeno cojunto de
texto e analisa juntamente com o texto criptografado. Seu objetivo é deduzir as chaves.
• Choosen-cyphertext (texto cifrado escolhido)• O criptoanalista não só tem uma grande
quantidade de texto em claro e o equivalente criptografado, mas pode produzir uma mensagem criptografada específica para ser decifrada e obter o resultado gerado.
Ataques a sistemas criptográficosTipos
• Choosen-key (chave escolhida)• O criptoanalista testa o sistema com chaves
diferentes ou tenta convencer diversos usuários légítimos do sistema a utilizarem determinadas chaves. Se objetivo é deduzir as chaves utilizadas.
Ataques a sistemas criptográficosTipos
• É a capacidade de esconder mensagens secretas em um meio, de maneira que as mesmas passem despercebidas. Um exemplo poderia ser escrever uma carta com tinta invisível. (Daniel Balparda de Carvalho – Segurança de dados com criptografia)
• Uma outra técnica que pode ser utilizada, é com imagens. Por exemplo, é possível utlizar alguns megapixels que não fazem diferença para visualização humada e ocultar alguma informação.
EsteganografiaConceito
• A partir de 1º de janeiro de 2012 entra em operação a versão dois do certificado da Autoridade Certificadora Raiz da ICP-Brasil, que contém novos padrões e algoritmos criptografados considerados mais robustos. Agora, o tamanho das chaves criptográficas que compõem o algoritmo de criptografia assimétrica (RSA) utilizado pelas Autoridades Certificadoras passarão a ter 4096 bits em vez dos 2048 bits atuais.
• Na versão dois, para os certificados digitais de pessoas físicas e jurídicas também estão previstas mudanças e, nesse caso, serão geradas chaves de 2048 bits, em vez dos 1024 bits atuais. Haverá mudança também no algoritmo de resumo criptográfico (SHA), que passará de SHA-1 (160 bits) para no mínimo SHA-256 (256 bits).
• ... nenhuma autoridade certificadora credenciada pelo Instituto Nacional de Tecnologia da Informação (ITI) poderá emitir certificados digitais utilizando os padrões criptográficos anteriores e a cadeia de certificação antiga.
Notícia de criptografiaICP-Brasil
Fonte - http://cio.uol.com.br – 28/12/2011
Tamanho da chave simétrica chave possíveis Tempo para quebrar
40 1 x 10^12 (1 trilhão) 2 horas
56 7 x 10^16 20 horas
64 2 x 10^19 9 anos
128 3 x 10^33 10^19 anos
256 1 x 10^77 10^58 anos
Criptografia SimétricaTempo de quebra
• Sem segredos compartilhados, opera com um par de chaves relacionadas, uma pública e uma privada
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 2,0milhões da conta 254674-12 para a conta 071517-08
Affonso
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 2,0milhões da conta 254674-12 para a conta 071517-08
Affonso
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9%#@qw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9%#@qw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
Criptografia
+ + Algoritmo =Chave Pública
Decriptografia
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 2,0milhões da conta 254674-12 para a conta 071517-08
Affonso
Para: BancoDe: Affonso
Data: 16, Abr, 2001
Transferir R$ 2,0milhões da conta 254674-12 para a conta 071517-08
Affonso
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9%#@qw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
*> *ql3*UY#~00873/JDI
c4(DH: IWB(883
LKS9UI29as9%#@qw9vijhas9djerhp7(*Y23k^wbvlqkwczqw-_89237xGyjdc
Biskdue di7@94
+ + Algoritmo =Chave Privada
Criptografia AssimétricaConceitos
• A criptografia assimétrica é conhecida como Criptografia de Chave Pública (Public Key Cryptography);
• A chave pública é divulgada.
• A chave privada é proprietária (normalmente nunca abandona o ambiente onde foi gerada).
• A chave pública é usada para criptografar e só a chave privada pode decriptografar.
Criptografia AssimétricaConceitos
• Par de Chaves–Relacionadas matematicamente;–Números primos extremamente grandes;–Não existe fórmula matemática conhecida
de determinar uma a partir da outra;–A eficiência das chaves depende do seu
tamanho e de outros fatores;
Criptografia AssimétricaConceitos
• Criptossistemas de chave pública–Performance
• Baixa. Não é prática para uso intensivo.–Administração de Chaves
• A chave pública pode ser distribuída livremente.
–Aplicações• Criptografia• Assinatura Digital / Verificação• Troca de chaves
–Exemplos: • RSA, ECC, Diffie-Hellman, DSA
Criptografia AssimétricaConceitos
• Na prática, sistemas de chave pública são usados para estabelecer chaves secretas de um sistema simétrico;
• Isso combina a flexibilidade dos sistemas assimétricos com a eficiência dos sistemas simétricos.
Criptografia AssimétricaConceitos
• Algoritmo criptográfico assimétrico – Exemplos– Protocolo DH (Diffie-Hellman)
• Paper “New directions in cryptography”, 1976
– Esquema RSA (Rivest-Shamir-Adleman, 1977) - primos p,q
– Esquema ElGamal (1978) - logaritmo discreto log n
– Esquemas baseados em Curvas Elípticas (1985)– Koblitz e Miller - logaritmo discreto log P em CEs
Criptografia AssimétricaAlgoritmos
• Suponha-se um computador executando um milhão de instruções por segundo. Assim, tendo uma chave assimétrica de 512 bits necessitaria de 30 mil computadores executando em paralelo um milhão de instrução por segundo para executar a fatoração em 30 mil anos;
• Uma chave assimétrica de 768 bits demandaria 200 milhões de computadores;
• Uma chave assimétrica de 1.024 bits demandaria 300 bilhões;
• E finalmente, uma chave de 2.048 bits exigiria 300 quinquilhões para ser quebrada.
Criptografia AssimétricaTempos de quebra
• Armazenamento Seguro da Chave Privada– Smartcard – HSM - Hardware Security Module
Certificado DigitalDispositivos de armazenamento
• O hash é produzido por um algoritmo que usa como entrada a informação transmitida;
• O resultado é uma “impressão digital” com tamanho fixo de 128 ou 160 bits;
• Utilizado para determinar se a informação foi alterada;
• É impossivel produzir um documento que resulte em um determinado hash;
• A alteração de um único bit da informação produz um hash completamente diferente;
Função HashConceitos
Algoritmode Hash
D4 21 F5 3D 22 9A CC B7 3C AA E2 DC 12 1A A1 CB
Dados
Características:• A alteração da mensagen original gera uma
hash diferente.• String resultante de hash é sempre do
mesmo tamanho.• Sem chaves.• Irreversível.• Verificar a integridade dos dados.• Produzir assinaturas digitais.
Função HashConceitos
• Algoritmos de Hash:– MD5 (comprimento de 128 bits, efetivo 64 bits);– SHA-1 (comprimento de 160 bits, efetivo 80 bits,
após a quebra 64 bits);– SHA-256 (comprimento de 256 bits, efetivo 128
bits);– RIPE-MD (versões para 128 e 160 bits).
Função HashConceitos
• A Certificação Digital– É um conjunto de técnicas e processos que
propiciam mais segurança às comunicações e transações eletrônicas, permitindo também a guarda segura de documentos.
• Certificado digital– É um documento eletrônico assinado
digitalmente e cumpre a função de associar uma pessoa ou entidade a uma chave pública. As informações públicas contidas num certificado digital são o que possibilita colocá-lo em repositórios públicos.
Certificação DigitalConceitos
• Um Certificado Digital normalmente apresenta as seguintes informações:– Nome da pessoa ou
entidade a ser associada à chave pública;
– Período de validade do certificado;
– Chave pública;
– Nome e assinatura da entidade que assinou o certificado;
– Número de série.
Certificado digitalModelo X-509
Estrutura de certificaçãoICP-Brasil – visão resumida