Baixe o app para aproveitar ainda mais
Prévia do material em texto
Cifras de bloco, fluxo e chaves de criptografia Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 SST Passos, Ubiratan Roberte Cardoso Cifras de Bloco, Fluxo e Chaves de Criptografia / Ubiratan Roberte Cardoso Passos Ano: 2020 nº de p.: 9 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 Cifras de bloco, fluxo e chaves de criptografia 3 Apresentação Veremos nesta unidade os algoritmos de criptografia: cifras de bloco e cifras de fluxo. Esta é uma classificação que considera o tratamento dos dados e como as informações são processadas pelos algoritmos de criptografia. Em um segundo momento, veremos alguns conceitos relacionados às chaves de criptografia, considerando sua importância dentro do processo de segurança das informações. Finalizaremos com a análise dos conceitos centrais a respeito da geração de chaves de criptografia. Cifras de bloco Cifras de blocos operam sobre blocos de dados, ou seja, antes do texto ser cifrado, ele é dividido em diversos blocos, cujos tamanhos normalmente variam entre 8 e 16 bytes. Após dividir a informação em blocos, elas poderão ser cifradas ou decifradas, de acordo com o que estiver sendo realizado no momento. Caso uma das partes não complete o tamanho mínimo exigido para o bloco, serão adicionados bits conhecidos (geralmente o bit 0) até que o tamanho do bloco em bytes esteja completo. (STALLINGS, 2015) Um dos principais problemas encontrados nessa técnica é que, se um mesmo bloco de texto simples ocorrer mais de uma única vez, então, a cifra gerada para aquele bloco também se repetirá, e isso pode facilitar o ataque ao texto cifrado. Como solução para o problema, foram propostos os modos de retaliação. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 4 O modo de retaliação mais comum e conhecido é a cifragem de blocos por encadeamento, ou cipher block chaining (CBC), em inglês. Esse recurso realiza uma operação XOR no bloco atual de texto simples com o bloco anterior que contém o texto cifrado. Atenção Como no primeiro bloco não existe um bloco anterior, a operação XOR é realizada com um vetor de inicialização. Trata-se de uma técnica que não adiciona qualquer segurança extra ao algoritmo; ela simplesmente evita o problema da geração de chaves idênticas nos algoritmos de cifra de bloco. Os algoritmos de bloco processam os dados como um conjunto de bits. Dessa forma, são os mais velozes e seguros para a comunicação digital. Outra vantagem desse tipo de algoritmo é que os blocos podem ser processados em qualquer ordem, o que, além de deixar o algoritmo menos suscetível a erros, permite o acesso aleatório aos dados. (COUTINHO, 2015) Entretanto, como desvantagem, há o já referido problema que ocorre quando a mensagem possui padrões repetitivos de blocos. Isso leva à criação de cifras também repetitivas, facilitando, assim, o trabalho do criptoanalista de quebrar o código. Outra desvantagem é a possibilidade de substituição de um dos blocos por outro, alterando, dessa maneira, o conteúdo da mensagem original. Cifras de fluxo Os algoritmos de cifras de fluxo criptografam a mensagem bit a bit, em um fluxo contínuo, sem a preocupação ou sem esperar que um determinado tamanho de bloco seja completado. Esse algoritmo é conhecido também como criptografia em stream de dados, no qual a criptografia ocorre mediante uma operação XOR entre o bit de dados e o bit gerado pela chave. (STALLINGS, 2015) Cada um dos tipos de algoritmo apresentados é mais indicado para uma determinada situação e menos indicado para outra. Observe no quadro a seguir um breve resumo sobre a aplicação para os algoritmos de cifras de bloco e de cifras de fluxo. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 5 Quadro 1: Características dos tipos de cifra e sua aplicação Aplicação Cifragem recomendada Considerações Banco de dados Bloco Não é dada muita importância para a interoperabilidade com outros softwares, no entanto, para fazê-lo, torna-se necessário reutilizar as chaves. E-mail Fluxo Neste caso, a interoperabilidade é um fator a ser considerado, sendo garantida em todos os pacotes de e-mail que operam utilizando o padrão AES (Advanced Encryption Standard). SSL Fluxo A velocidade é um fator de muita importância, e cada conexão pode ter uma chave. sendo assim, grande parte dos navegadores e servidores utiliza o algoritmo de fluxo RC4 (Rivest Cipher 4). Criptografia de arquivos Bloco Não se tem muita preocupação com a interoperabilidade, entretanto, cada arquivo pode ser cifrado com a mesma chave, sendo necessário, então, protegê-la. Fonte: Elaborada pelo autor (2019) Chave de criptografia Na criptografia, o termo “chave” é proveniente do fato de este ser um valor secreto, confidencial, tal como as senhas utilizadas em sistemas computacionais. Seu funcionamento é análogo à forma como são utilizadas as chaves no mundo convencional, ou seja, são usadas para abrir algo que está trancado, sendo que cada “fechadura” pode ser aberta somente com sua respectiva “chave”. Curiosidade Quando um arquivo (ou mensagem) é criptografado, é como se seu conteúdo estivesse, a partir daquele momento, protegido por um cadeado (ainda que não seja isso que aconteça literalmente). Então, para ter acesso ao conteúdo, é preciso estar em posse da chave ou do segredo capaz de abrir o cadeado. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 6 No que se refere à criptografia, o conteúdo da mensagem é embaralhado, substituído por meio de operações matemáticas complexas. A única forma de reverter esse processo é mediante uma chave específica, que pode ser uma senha ou um valor referente ao resultado da operação matemática que foi utilizada para ciframento da mensagem. É com a chave que o algoritmo de criptografia consegue converter uma mensagem legível em algo inteligível, e é com essa mesma chave que o algoritmo realizará o processo de converter o texto inteligível em um texto legível. Não existe possibilidade de converter a mensagem criptografada para a mensagem original sem a chave correta. Mesmo quando o processo é realizado com força bruta, os invasores buscam sempre descobrir qual foi a chave utilizada para então acessar o texto original da mensagem. (ALENCAR, 2015) Todos os algoritmos modernos de criptografia trabalham com chaves. As chaves são importantes pelo simples fato de que, mesmo conhecendo o algoritmo e entendendo seu funcionamento, sem a chave correta um invasor não conseguirá decifrar a mensagem. Obtém-se maior segurança em sistemas nos quais o algoritmo de criptografia é conhecido, mas as chaves não, pois, ao manter o segredo destas, gera-se um sistema incondicional e computacionalmente seguro. Outra razão pela qual as chaves são relevantes está na possibilidade de se construir sistemas criptográficos nos quais os algoritmos são completamente conhecidos, sem, no entanto, deixarem de ser seguros, isso porque, como já afirmado anteriormente, é necessário conhecer a chave para poder ter acesso ao conteúdo criptografado. Reflita A partir do momento em que os algoritmos de criptografia se tornam públicos, mais analistas e cripto cientistas (estes são profissionais especializados em examinar e criar métodos criptográficos cada vez mais eficientes) poderão ter acesso ao código, examiná-lo e descobrir possíveis falhas ou fraquezas, indicando soluções para seu fortalecimento e maior eficiência. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 7 Geração das chaves de criptografia Em sistemas de criptografia com chave simétrica ou de chave privada, a chave de criptografia pode ser formada por qualquer conjunto de valores alfanuméricos, desde que este tenha um tamanho correto e adequadoao especificado pelo algoritmo, sendo recomendado somente que os valores que compõem a chave não possuam nenhuma coerência entre si, dificultando-se, dessa forma, sua descoberta. (STALLINGS, 2015) É muito importante também que, dentro das possibilidades, as chaves sejam geradas de forma totalmente aleatória, ou seja, devem ser valores que, se submetidos a testes estatísticos de aleatoriedade, sejam aprovados, e que não possuam nenhuma repetição. Existem várias técnicas que podem auxiliar no processo de geração de chaves de criptografia. Dentre elas, a que mais se destaca são os: Geradores de Números Aleatórios (GNA), ou Random Number Generator (RNG) Esses dispositivos funcionam agrupando números de diferentes tipos de entradas, sempre imprevisíveis, tais como a medição da desintegração espontânea da radioatividade, o exame de condições atmosféricas ou o cálculo das minúsculas variações que ocorrem em correntes elétricas. (ALENCAR, 2015; COUTINHO, 2015) Nessas condições, é virtualmente impossível que uma sequência numérica se repita. Isso ocorre devido ao fato das saídas serem geradas a partir de um conjunto de entradas que estão em constante estado de mudança. Geradores de números pseudoaleatórios (GNPA) ou, na sua versão original, pseudo-random number generators (PRNG) Ao gerar um número a partir de algum desses algoritmos, ele certamente passará no teste estatístico de aleatoriedade. (COUTINHO, 2015) Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 8 Chave de criptografia Fonte: Plataforma Deduca (2019). Contudo, é preciso entender que números pseudoaleatórios não são exatamente aleatórios, ou seja, existe a possibilidade de que se repitam em determinadas situações. Dessa forma, é recomendável que sempre que um GNPA for utilizado, as entradas fornecidas sejam sempre diferentes em cada execução. Assim, a geração da saída também será diferente das geradas anteriormente. Fechamento Estudamos que dentre as classificações dos algoritmos de criptografia, existe uma que considera a forma que leva em conta como esses algoritmos tratam seus dados e de como as informações são processadas por eles. Sob esse ponto de vista, os algoritmos de criptografia podem ser classificados como cifras de bloco e cifras de fluxo. Na sequência, analisamos e aprofundamos nossos conhecimentos sobre alguns conceitos relacionados às chaves de criptografia, considerando sua importância dentro do processo de segurança das informações. Por fim, compreendemos alguns dos aspectos centrais sobre a geração de chaves de criptografia. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 9 Referências ALENCAR, M. S. Informação, codificação e segurança de redes. 1. ed. Rio de Janeiro: Elsevier, 2015. COUTINHO, S. C. Criptografia. Rio de Janeiro: IMPA, 2015. Disponível em: http:// www.obmep.org.br/docs/apostila7.pdf. Acesso em: 29 jan. 2019. STALLINGS, W. Criptografia e segurança de redes: princípios e práticas. São Paulo: Pearson Prentice Hall, 2015. Licensed to Wellington Vichinhevski Kruk - well@wknetworks.com.br - 096.466.679-02 http://www.obmep.org.br/docs/apostila7.pdf http://www.obmep.org.br/docs/apostila7.pdf
Compartilhar