Aplicaes com Chaves Criptografia simtrica Criptografia Assimtrica Assinatura

  • Slides: 33
Download presentation
Aplicações com Chaves Criptografia simétrica Criptografia Assimétrica Assinatura Digital Hash

Aplicações com Chaves Criptografia simétrica Criptografia Assimétrica Assinatura Digital Hash

Componentes: Alexandre Andressa Emilio Jacenildo Waldenice

Componentes: Alexandre Andressa Emilio Jacenildo Waldenice

 Introdução Criptografia (Do Grego Kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos

Introdução Criptografia (Do Grego Kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário. O envio e recebimento de informações sigilosas é uma necessidade antiga, que existe há centenas de anos. Com o surgimento da internet e de sua consequente facilidade de transmitir dados de maneira precisa e extremamente rápida, a criptografia tornou-se uma ferramenta fundamental para permitir que apenas o emissor e receptor tenham acesso livre à informação trabalhada.

 Finalidade �Autenticar a identidade de usuários �Autenticar e proteger o sigilo de comunicações

Finalidade �Autenticar a identidade de usuários �Autenticar e proteger o sigilo de comunicações pessoais e de transações comerciais e bancárias �Proteger a integridade de transferências eletrônicas de fundos

Descubra: � Como você já sabe desde a aula anterior, criptografia não é uma

Descubra: � Como você já sabe desde a aula anterior, criptografia não é uma invenção da era dos computadores, e a idéia de colocar textos em formatos ilegíveis a olho nu fascina muito as pessoas. Veja, a seguir, uma tentativa nessa direção, que não é criptografia, mas é uma brincadeira interessante de tentar se codificar texto. Fixe seus olhos no texto abaixo e deixe que a sua mente leia corretamente o que está escrito. 35 T 3 P 3 QU 3 N 0 T 3 XTO 53 RV 3 4 P 3 N 45 P 4 R 4 M 05 TR 4 R COMO NO 554 C 4 B 3Ç4 CONS 3 GU 3 F 4 Z 3 R CO 1545 1 MPR 3551 ON 4 ANT 35! R 3 P 4 R 3 N 155 O! NO COM 3ÇO 35 T 4 V 4 M 310 COMPL 1 C 4 DO, M 45 N 3 ST 4 L 1 NH 4 SU 4 M 3 NT 3 V 41 D 3 C 1 FR 4 NDO O CÓD 1 GO QU 453 4 UTOM 4 T 1 C 4 M 3 NT 3, S 3 M PR 3 C 1 S 4 R P 3 N 54 R MU 1 TO, C 3 RTO? POD 3 F 1 C 4 R B 3 M ORGULHO 5 O D 155 O! SU 4 C 4 P 4 C 1 D 4 D 3 M 3 R 3 C 3! P 4 R 4 BÉN 5!

Chave Simétrica É o tipo mais simples de criptografia, a mesma chave é utilizada

Chave Simétrica É o tipo mais simples de criptografia, a mesma chave é utilizada para encriptar e decriptar uma mensagem. Somente o remetente e o destinatário devem conhecer a chave secreta, pois esta é a única maneira de obter a confidencialidade. O processamento necessário para a encriptação e decriptação é menor quando comparado ao da criptografia assimétrica. Com o um algoritmo força bruta é computacionalmente inviável, no caso médio, quebrar uma chave de 128 bits.

 Vantagem �Rapidez na criptografia e descriptografia da informação e simples de implementar. Desvantagens

Vantagem �Rapidez na criptografia e descriptografia da informação e simples de implementar. Desvantagens �É necessário um canal seguro para enviar a mensagem. �A criptografia simétrica não garante a identidade de quem enviou ou recebeu a mensagem (autenticidade e não-repudiação).

� Se uma pessoa quer se comunicar com outra com segurança, ela deve passar

� Se uma pessoa quer se comunicar com outra com segurança, ela deve passar primeiramente a chave utilizada para cifrar a mensagem. Este processo é chamado distribuição de chaves, e como a chave é o principal elemento de segurança para o algoritmo, ela deve ser transmitida por um meio seguro. Porém, se existe um meio seguro de se enviar a chave, por que não enviar a própria mensagem por este meio? A resposta para esta questão é que meios seguros de comunicação são geralmente caros e mais difíceis de serem obtidos e utilizados, sendo então razoável sua utilização uma única vez, mas não continuamente. Se n pessoas querem se comunicar utilizando chave secreta, será necessário (n)(n-1) /2 chaves, gerando um grande problema para o gerenciamento de chaves entre grandes grupos de usuários. Uma das tentativas de solucionar o problema da distribuição das chaves secretas foi a criação de um centro de distribuição de chaves (Key Distribution Center - KDC), que seria responsável pela comunicação entre pessoas aos pares. Para isto, o KDC deve ter consigo todas as chaves secretas dos usuários que utilizam seus serviços. Por exemplo, imagine a situação descrita pela figura, onde A quer mandar uma mensagem secreta para B. Para isto, ele manda a mensagem para o KDC usando sua chave secreta. O KDC recebe esta mensagem, decifrando com a chave secreta de A, depois o KDC a cifra novamente usando agora a chave secreta de B, e a envia para o mesmo. O maior problema em torno do KDC, é que este constitui um componente centralizado, além de ser gerenciado por pessoas que podem, casualmente, serem corrompidas.

Tipos de Algoritmo � DES (Data Encryption Standard) Criado pela IBM em 1977, usa

Tipos de Algoritmo � DES (Data Encryption Standard) Criado pela IBM em 1977, usa criptografia de 56 bits, o que corresponde a cerca de 72 quadrilhões de chaves diferentes. Apesar de ser um valor bastante alto, foi quebrado por em 1997 por força bruta (tentativa e erro), em um desafio feito na Internet. � Triple-DES Baseia-se na utilização três vezes seguidas do DES com chaves diferentes. � RC (Ron’s Code ou Rivest Cipher) Desenvolvido por Ron Rivest, é largamente utilizado em e- mails. Possui diversas versões (RC 2, RC 4, RC 5 e RC 6), com chaves que vão de 8 à 1024 bits

� IDEA (Internacional Data Encryption Algorithm) Criado em 1991 por Massey e Xuejia Lai,

� IDEA (Internacional Data Encryption Algorithm) Criado em 1991 por Massey e Xuejia Lai, utiliza chaves de 128 bits com uma estrutura semelhante ao anteriormente citado DES, porém, possui uma implementação mais simples. � Skipjack Algoritmo secreto desenvolvido pela National Security Agency para uso por civis. É o coração do chip Clipper, desenvolvido pela NSA. � Podemos citar ainda o Twofish e o Blowfish, entre outros.

ABORDAGEM DO ALGORITMO SIMÉTRICO AES -Advanced Encryption Standard Padrão de Criptografia Avançada

ABORDAGEM DO ALGORITMO SIMÉTRICO AES -Advanced Encryption Standard Padrão de Criptografia Avançada

História do Algoritmo �Em 1997, o NIST (National Institute of Standards and Technology), órgão

História do Algoritmo �Em 1997, o NIST (National Institute of Standards and Technology), órgão dos EUA, lançou um concurso para adotar um novo algoritmo de criptografia simétrica para proteger informações condenciais. � O novo algoritmo, que passaria a se chamar AES (Advanced Encryption Standard), substituiria o DES (Data Encryption Standard).

Características desse Algoritmo �O novo algoritmo deveria ter pré-requisitos como: � Não possuir patentes;

Características desse Algoritmo �O novo algoritmo deveria ter pré-requisitos como: � Não possuir patentes; � Cifrar em blocos de 128 bits com chaves de 128, 192 ou 256 bits; � Possibilidade de implementação tanto em software quanto em hardware; � Ser mais rápido do que o 3 DES.

O “concurso” �Em 1998, apresentaram-se 15 candidatos e, um ano depois, 5 destes foram

O “concurso” �Em 1998, apresentaram-se 15 candidatos e, um ano depois, 5 destes foram escolhidos como nalistas: MARS, RC 6, Rijndael, Serpent e Twosh. � Em 2000, após análises da comunidade criptográfica mundial, é escolhido como padrão o algoritmo Rijndael, criado pelos belgas Vincent Rijmen e Joan Daemen.

Conceitos Básicos do AES �Nb ! número de bits do bloco dividido por 32.

Conceitos Básicos do AES �Nb ! número de bits do bloco dividido por 32. �Nk ! número de bits da chave dividido por 32 �Nr ! número de rodadas, que é igual a 10, 12 e 14 para Nk igual a 4, 6 ou 8, respectivamente.

Exemplo �Estado é o bloco de dados, ou seja, a matriz que contém inicialmente

Exemplo �Estado é o bloco de dados, ou seja, a matriz que contém inicialmente a mensagem e possui 4 linhas e Nb colunas.

Exemplo �A chave principal é alocada em uma matriz �de 4 linhas e Nk

Exemplo �A chave principal é alocada em uma matriz �de 4 linhas e Nk colunas

Estrutura do AES �Sub. Bytes - Substitui cada byte individualmente �por outro em uma

Estrutura do AES �Sub. Bytes - Substitui cada byte individualmente �por outro em uma caixa de substituição. � Shift. Rows - Rotaciona ciclicamente os bytes �de cada linha, trocando sua posição. � Mix. Columns - Multiplicação, sobre GF(28), de �uma matriz xa pelo estado. � Add. Round. Key - É um XOR byte a byte entre o �estado e a chave da rodada.

Sub. Bytes – O Ponto Positivo O AES é rápido tanto em software quanto

Sub. Bytes – O Ponto Positivo O AES é rápido tanto em software quanto em hardware, é relativamente fácil de executar e requer pouca memória. Apesar de ser um padrão novo de criptografia, está sendo atualmente implantado em grande escala.

Sub. Bytes – Tabela pré-definida

Sub. Bytes – Tabela pré-definida

Geração de Chaves - PSEUDOCÓDIGO *Nk ! número de bits da chave dividido por

Geração de Chaves - PSEUDOCÓDIGO *Nk ! número de bits da chave dividido por 32

Chave assimétrica: � Utilização de chaves diferentes para cifrar e decifrar. Emissor e receptor

Chave assimétrica: � Utilização de chaves diferentes para cifrar e decifrar. Emissor e receptor possuem duas chaves, uma pública que pode ser divulgada e outra privada que deve ser mantida em segredo. � Emissor envia mensagem criptografada através da chave pública do receptor. A chave esta disponível para qualquer pessoa. O receptor recebe a mensagem e a decriptografa utilizando a sua chave privada(somente ele conhece). Se quiser responder deverá fazer o mesmo, a diferença é que dessa vez a chave pública do emissor será utilizada. � O emissor de posse de sua chave privada, somente ele poderá decifrar a mensagem, garantindo assim o sigilo. A grande vantagem é que não só emissor pode enviar mensagens criptografadas para receptor, mas qualquer pessoa, basta conhecer a chave pública deste receptor, além disto, emissor e receptor não precisam combinar chaves antecipadamente.

Confidencialidade, Autenticidade e Integridade � Emissor envia uma mensagem, primeiramente criptografa através de sua

Confidencialidade, Autenticidade e Integridade � Emissor envia uma mensagem, primeiramente criptografa através de sua chave privada(assinando a mensagem) e logo após criptografa a mensagem com a chave pública do receptor(tornando-a sigilosa), isto é o emissor envia a mensagem duplamente criptografa para receptor, este por sua vez ao receber a mensagem deverá decriptografa duas vezes. Primeiro com sua chave privada e depois com a chave publica do emissor. � O maior problema das chaves assimétricas é que ela é computacionalmente intensiva, sendo necessário muito tempo para criptografar uns poucos parágrafos. � Um algoritmo que faz criptografia assimétrica é o RSA, e um exemplo de aplicativo que a utilize é o PGP que possibilita correio eletrônico criptografa.

� Pode-se combinar os melhores aspectos da criptografia com chave simétrica e assimétrica, codificando

� Pode-se combinar os melhores aspectos da criptografia com chave simétrica e assimétrica, codificando a mensagem com o método da chave simétrica e criptografando a chave simétrica com o método da chave assimétrica. Com isso beneficia-se velocidade do método simétrico e da facilidade de distribuição de chaves do método assimétrico. � Emissor envia a mensagem codificada através da criptografia de chave simétrica, gerada aleatoriamente apenas para esta mensagem. Conhecida como chave de sessão (session key). � Emissor criptografa essa chave de sessão com a chave pública do receptor (isto não toma muito tempo por que a chave não é muito grande). Emissor envia a mensagem criptografa e a chave de sessão criptografa para emissor, este por sua vez ao receber decriptografa a chave de sessão com sua chave privada e em seguida, decriptografa a mensagem usando a chave de sessão que acabou de receber, podendo assim ler o conteúdo da mensagem.

� Diffie-Helman Através da troca de uma chave de cifragem de tal forma que

� Diffie-Helman Através da troca de uma chave de cifragem de tal forma que uma terceira parte não autorizada, não tenha como deduzi-la. Cada participante inicia com sua chave secreta e através da troca de informações é derivada uma outra chave chamada chave de sessão, que será usada para futuras comunicações. O algoritmo baseia-se na exponenciação discreta, pois sua função inversa, os logaritmos discretos, é de alta complexidade. � Merkle-Hellman Baseava-se em um jogo matemático chamado Knapsack (Mochila), onde dada uma coleção de itens, verifica-se as possíveis maneiras de armazená-la dentro de um repositório de tamanho fixo, de forma a não sobrar espaço. Foi usado durante muitos anos, porém com a descoberta de uma falha crucial foi inutilizado para fins práticos.

Assinatura Digital � A assinatura digital é uma garantia que o documento é uma

Assinatura Digital � A assinatura digital é uma garantia que o documento é uma cópia verdadeira e correta do original. � Com chaves assimétrica. Emissor criptografa a mensagem com sua própria chave privada e envia ao receptor. Para decriptografar deve-se usar a chave pública do emissor. Desta forma qualquer pessoa pode ler a mensagem, porém tem-se a certeza de que foi o emissor quem enviou, pois somente ele possui o chave privada. � Para assinar uma mensagem, uma função Message Digest (MD) é usada para processar o documento, produzindo um pequeno pedaço de dados, chamado de hash. Uma MD é uma função matemática que refina toda a informação de um arquivo em um único pedaço de dados de tamanho fixo. Entra-se com os dados a serem "digeridos" e o algoritmo MD gera um hash de 128 ou 160 bits (dependendo do algoritmo, são exemplos: MD 4, MD 5 e Snefru). Uma vez computada uma message digest, criptografa-se o hash gerado com uma chave privada. O resultado de todo este procedimento é chamado de assinatura digital da informação.

� O motivo para se usar funções message digest está diretamente ligado ao tamanho

� O motivo para se usar funções message digest está diretamente ligado ao tamanho do bloco de dados a ser criptografado para se obter a assinatura. De fato, criptografar mensagens longas pode durar muito tempo, enquanto que criptografar hashs, que são � Contudo as assinaturas digitais podem ser forjadas, assim podese, matematicamente ser verificada em quanto sua integridade e autenticidade. Primeiro, executa-se a função MD (usando o mesmo algoritmo MD que foi aplicado ao documento na origem), obtendo assim um hash para aquele documento, e posteriormente, decifra-se a assinatura digital com a chave pública do remetente. A assinatura digital decifrada deve produzir o mesmo hash gerado pela função MD executada anteriormente. Se estes valores são iguais é determinado que o documento não foi modificado após a assinatura do mesmo, caso contrário o documento ou a assinatura, ou ambos foram alterados. Infelizmente, a assinatura digital pode dizer apenas que o documento foi modificado, mas não o que foi modificado e o quanto foi modificado. Para ser possível que um documento ou uma assinatura adulterada não seja detectada, o atacante deve ter acesso a chave privada de quem assinou esse documento.