Baixe o app para aproveitar ainda mais
Prévia do material em texto
Criptografia e Certificação Digital Conceitos Básicos sobre Criptografia CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL CONCEITOS BÁSICOS SOBRE CRIPTOGRAFIA Autor : Me. Luciano Freire Revisor: Doug las Melman IN IC IA R introdução Introdução A Internet possibilitou uma grande transformação na vida pessoal e nos negócios. Hoje, é possível adquirir produtos e recebê-los em casa pelo correio, relacionar-se com pessoas sem nunca ter estado fisicamente com elas, participar de reuniões on-line, trabalhar remotamente, fazer um curso universitário etc. Assim, a Internet passa a ter um papel vital no ambiente empresarial e pessoal, ao ponto que um problema em um site ou serviço pode gerar grandes prejuízos. Entretanto, originariamente, essa não foi projetada para o tráfego de informações críticas, como senhas e números de cartões de crédito. Isso gera um grande risco para os usuários. Como alternativa para a proteção dessas informações, as técnicas de criptografia e seus algoritmos passam a ser utilizadas para garantir o tráfego seguro das informações. O objetivo desta unidade é o de apresentar os conceitos básicos relacionados à criptografia, histórico de evolução e os algoritmos de criptografia simétrica. Introdução à Criptografia https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html#section_1 A popularização da Internet, sua importância nas atividades pessoais e profissionais e a popularização dos dispositivos móveis (principalmente os celulares) e computadores criaram uma sociedade na qual as pessoas estão conectadas à Internet 24 horas por dia. Os dispositivos conectados à rede mundial armazenam diversas informações críticas (sigilosas) tanto pessoais quanto profissionais (como senhas bancárias, número de cartões de crédito, senha do e-mail corporativo, projetos de novos produtos etc.). Para que a comunicação na Internet aconteça, o computador ou o celular deve ser capaz de acessar outros computadores na Internet e também ser acessado por esses. Essa comunicação e exposição constante à rede possibilitam o acesso e a captura de informações confidenciais. Falhas de segurança em sistemas operacionais podem permitir o acesso não autorizado a computadores e, consequentemente, aos arquivos armazenados nesses. Vírus de computador podem destruir ou roubar arquivos ou roubar. Além disso, a própria transmissão de informações pela Internet é passível de ser capturada. Conforme as informações trafegam de computador a computador, essas podem ser capturadas pelos próprios computadores que retransmitem as informações, pois a Internet originalmente não foi projetada para prover a segurança das informações trafegada por essa. Nesse contexto, a criptografia é uma ferramenta de segurança que possibilita a proteção dos dados armazenados em um computador, mesmo que esse sofra um ataque que possibilite o acesso não autorizado de um invasor. A criptografia também possibilita a proteção das informações trafegadas pela rede. Essa proteção é feita codificando a informação de tal forma que essa se torne ilegível para aqueles que não conhecem a técnica usada e o código empregado na criptografia da informação. Conceitos Básicos Critptografar é o ato de alterar uma mensagem para esconder o significado dela (CARTILHA DE SEGURANÇA PARA INTERNET, 2019, on-line). Baseando-se nessa ideia e na necessidade de prover confidencialidade a informações, foram desenvolvidos os algoritmos de criptografia. Um algoritmo criptográfico é uma função matemática utilizada para codificar e decodificar um determinado dado (SCHNEIER, 1996). https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.1 - Processo de codificação de um texto para a sua respectiva forma criptografada, assim como a reversão do processo (texto cifrado para texto original) por meio de um algoritmo de criptografia Fonte: Adaptada de Schneier (1996, p. 15). Os primeiros algoritmos de criptografia desenvolvidos aplicavam uma função matemática, repetidamente, a um dado para cifrá-lo (por exemplo, permutação das colunas de um texto). Essa técnica não era muito robusta, pois, a partir do momento em que se descobrisse como o algoritmo criptográfico funcionava, era possível decifrar todas as mensagens criptografadas por esse. Descobrir como o algoritmo funcionava não era muito difícil, pois esses algoritmos, para um mesmo dado de entrada, iriam sempre gerar o mesmo resultado. Para tornar os algoritmos de criptografia mais robustos, criou-se o conceito de chave criptográfica. Uma chave criptográfica é um texto que funciona como uma senha para o algoritmo criptográfico. Essa chave é introduzida junto com o dado a ser criptografado durante a execução do algoritmo criptográfico. Para cada chave diferente utilizada, sob um mesmo dado a ser criptografado, o algoritmo criptográfico irá fornecer um resultado diferente. Além disso, no momento de decifrar um texto criptografado, é necessário conhecer a chave que foi utilizada para criptografar o dado. Se essa não for conhecida ou for usada uma chave diferente da utilizada para criptografar, não será possível decifrar corretamente o dado. A chave evolui conforme a evolução dos algoritmos de criptografia. Essa passa de uma combinação simples de posição de rotores, usadas em máquinas de rotação – como será visto à frente no texto, para chaves de centenas de bits nas implementações computacionais desses algoritmos. O aumento do tamanho da chave torna os algoritmos mais seguros contra-ataques de força bruta. Nesses, o hacker precisaria testar todas as combinações possíveis de chave para obter a chave correta e decifrar um texto. Se uma chave possui tamanho de n bits, existem 2n2n combinações de chaves. Por exemplo, para n=128, existem 3,4∗10283,4∗1028 chaves diferentes. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Mesmo para um computador com grande poder de processamento, um ataque de força bruta para universo de chaves é impraticável devido a tempo necessário para gerar e testar todas as possíveis chaves. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.2 - Processo de codificação de um texto para a sua respectiva forma criptografada com a utilização de uma chave criptográfica Fonte: Adaptada de Schneier (1996, p. 17). Para compreender os conceitos relacionados à criptografia, é necessário um entendimento dos principais termos. Termo Significado Texto claro Informação original legível que se pretende proteger. Texto cifrado / codificado / criptografado Texto ilegível resultante da aplicação de um algoritmo de criptografia sobre o texto claro. Codificar / cifrar / criptografar Processo de transformação do texto claro no texto criptografado. Decodificar / decifrar / descriptografar Processo de transformação do texto criptografado de volta ao texto claro original. Algoritmo de criptografia Sequência de instruções, codificadas em um programa de computador, que aplicam um conjunto de técnicas matemáticas para transformar o texto claro em texto cifrado. O mesmo algoritmo é utilizado no processo de decifragem. Chave criptográfica É um texto formado por letras, números e símbolos e utilizado como uma senha no processo de criptografia. A mesma senha é utilizada na cifragem e na decifragem do texto. Essa servecomo elemento de aleatoriedade no processo de cifragem, garantindo que textos claros, cifrados com chaves diferentes, terão textos cifrados diferentes. O tamanho da chave é medido em bits e existe uma relação entre o tamanho da chave e a força (dificuldade de se obter o texto original a partir do texto cifrado) do algoritmo de criptografia. De forma geral, quanto maior o tamanho da chave, maior a força do algoritmo de criptografia. Canal de comunicação Meio utilizado para troca de informações. Por exemplo: o envio de e-mails entre dois usuários utiliza a Internet como meio de comunicação. Remetente / emissor Pessoa ou serviço responsável por enviar uma informação. Destinatário / receptor Pessoa ou serviço responsável por receber uma informação. Quadro 1.1 - Termos comuns relacionados à criptografia Fonte: Adaptado de Cert.br (2019, on-line). O Quadro 1.1 apresenta um resumo dos principais termos e sinônimos relacionados à criptografia. praticar Vamos Praticar Considerando o conceito de criptografia e da aplicação no contexto à proteção das informações, assinale, dentre as alternativas indicadas a seguir, a única que identifica corretamente o termo criptografia: a) Técnica que permite a compactação de grande quantidade de dados. b) Algoritmo utilizado para a transferência de dados entre dispositivos. c) Linguagem de programação utilizada para processamento de arquivos. d) Técnica utilizada para codificar mensagens privadas visando inibir o acesso não autorizado.Feedback: alternativa correta, O objetivo da criptografia é proteger as informações do acesso de terceiros, ou seja, do acesso não autorizado às informações. e) Tipo de dado desenvolvido por um programador para representar o domínio de um problema.Feedback: alternativa incorreta, pois essa alternativa trata de conceitos relacionados à estrutura de dados e não uma definição de criptografia. Algoritmos Clássicos A necessidade de se proteger informações contra o acesso não autorizado é antiga. Essa remonta ao início da civilização, antes mesmo da existência dos computadores. Nessa época, utilizavam-se técnicas simples de criptografia, como substituição ou permutação de caracteres para cifrar a mensagem, para que os generais pudessem se comunicar com as tropas no campo de batalha. Essas técnicas, apesar de simples, influenciaram o desenvolvimento dos primeiros algoritmos de criptografia, como o ROT13, cuja implementação está disponível em sistemas Unix, que aplica técnicas de substituição para codificar um texto. Assim, os algoritmos clássicos utilizam técnicas simples para realizar a criptografia. Essas técnicas podem ser aplicadas sem a necessidade de recursos computacionais, mas atualmente são facilmente decifráveis devido ao advento dos computadores e seu alto poder de processamento. Assim, em poucos segundos ou minutos, é possível testar todas as combinações de substituições ou trocas em um texto cifrado e obter o texto original. Tal ação seria impraticável se fosse realizada manualmente. As seguintes técnicas são utilizadas por esses algoritmos (STALLINGS, 2015): a) Substituição: técnica em que cada letra do texto claro é substituída por outra letra, por exemplo do alfabeto, ou por um símbolo. b) Transposição: técnica em que o texto claro é reorganizado por meio de permutações de partes do texto original. O exemplo mais conhecido da técnica de substituição é a cifra de César, que será estudada na próxima seção. Em relação à cifra de transposição, um exemplo de aplicação dessa é a escrita do texto claro em uma matriz quadrada (4 linhas por 4 colunas) linha por linha e ler a mensagem coluna por coluna permutando a ordem das colunas. Por exemplo, considere a seguinte mensagem que se deseja criptografar: “senha do cartão: 5089”. O primeiro passo da aplicação da técnica consiste em escrever o texto claro no formato de uma matriz 4x4 sem os espaços. 1 2 3 4 1 s e n h 2 a c a r 3 t a o : 4 5 0 8 9 Quadro 1.2 - Técnica de criptografia por transposição. Os números representam as linhas e colunas da matriz, e o texto claro é escrito linha por linha na matriz sem espaços. Fonte: Adaptado de Stallings (2015, p. 37). Para realizar a criptografia utilizando essa técnica, escolhe-se uma sequência de colunas como 1,3,2,4. No próximo passo, o texto cifrado é obtido lendo o texto claro coluna por coluna nessa ordem. Assim, o texto cifrado resultante é: sat5nao8eca0hr:9. Apesar da utilidade histórica dessas técnicas, hoje a segurança provida por essas é muito pequena. Uma vez descoberta a técnica utilizada, é possível tentar reverter o processo para a obtenção do texto claro. No exemplo da técnica de transposição, basta escrever o texto cifrado em colunas e tentar as diferentes combinações de colunas para recuperar o texto original. Já em relação à técnica de substituição, esses algoritmos são suscetíveis a Ataques de Força Bruta, que consistem em tentar substituir uma letra do texto cifrado por outra dentre todas as possíveis combinações existentes. Um ataque de força bruta é facilmente realizável utilizando um software para testar todas as possíveis combinações e obter o texto original. Isso é feito em segundos se o texto cifrado for uma substituição simples entre letras do alfabeto. Apesar da fragilidade, atual, em termos de segurança, essas técnicas serviram de base para o desenvolvimento de técnicas matemáticas implementadas nos algoritmos de criptografia atuais. Cifra de César O exemplo mais antigo da técnica de substituição em algoritmos de criptografia é a cifra de César. Esse nome foi dado ao algoritmo em homenagem ao Imperador Romano Júlio César, que utilizava essa técnica para a comunicação com suas tropas durante as batalhas (STALLINGS, 2015). A cifra de César é uma técnica de substituição simples em que cada letra do alfabeto é substituída pela letra que fica três posições à frente no alfabeto. Por exemplo, a letra “a” é substituída pela “d”, a letra “b” é substituída pela letra “e”, e assim sucessivamente. O Quadro 1.3 apresenta as possíveis substituições da Cifra de César. Letra do Alfabeto: 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 Substituída por: d e f g h i j k l m n o p q r s t u v w x y z a b c Quadro 1.3 - Substituição utilizada pela cifra de César Fonte: Adaptado de Stallings (2015, p. 25). Devido ao deslocamento de três posições à frente do símbolo, a sequência do alfabeto é reiniciada a partir da letra x que é substituída por a. Considerando a tabela de substituição da cifra de César do Quadro 1.3, por exemplo, o texto claro “senha abfg” é cifrado no texto apresentado no Quadro 1.4. Texto claro: senhabfg Texto cifrado: vhqkdeij Quadro 1.4 - Cifragem do texto “senha bfg” utilizando a cifra de César Fonte: Adaptado de Stallings (2015, p. 25). Existem variações dessa técnica, por exemplo o algoritmo ROT13, que substitui uma letra do alfabeto por outras 13 posições à frente. A cifra de César ou a variação ROT13 são muito frágeis a ataques de força bruta devido às seguintes características (STALLINGS, 2015): 1. O algoritmo de cifragem e decifragem é conhecido. 2. Existem apenas 25 combinações possíveis de substituição, ou seja, para uma letra do texto claro existem no máximo 25 possibilidades de substituição no texto cifrado. 3. A linguagem do texto claro é facilmente reconhecida. Isso significa que somente a combinação de letras do texto claro irá gerar um texto inteligível. Máquina de Rotação As técnicas de substituição e transposição, como citado, são frágeis a ataques de força bruta. Uma alternativa para tornar os algoritmos baseados nessas técnicas mais seguros é a aplicação sucessiva de estágios de criptografia. Assim, no caso das técnicas de substituição seriam feitas substituições sucessivas para se obter o texto cifrado. Por exemplo, a cifra de César pode ser aplicada a um texto claro, gerando um texto cifrado. Para o texto cifrado, aplica-se novamente a cifra de César, gerando outro texto cifrado. Essa reaplicação do algoritmo pode ser feita diversas vezes. Além da aplicação sucessiva do algoritmo para um texto cifrado, o ideal seria gerar uma variação da substituição para cada nova rodada de aplicação do algoritmo. Por exemplo, considerando a cifra de César, na primeira rodada, o texto claro é cifrado conforme definido na cifra (substituição da letra atual pela letra três posições à frente no alfabeto). Na segunda rodada, a respectiva letra do texto cifrado é substituída pela letra quatro posições à frente do alfabeto; na terceira rodada de aplicação do algoritmo, a letra do texto já cifrado é substituída pela letra que está a cinco posições à frente no alfabeto; e assim sucessivamente quantas vezes forem desejadas. A aplicação de vários estágios de criptografia foi implementada nas máquinas de rotor utilizadas na Segunda Guerra Mundial. Essas máquinas foram alguns dos primeiros hardwares destinados à implementação de técnicas de criptografia. A mais famosa dessas foi a máquina Enigma, criada em 1923 (KRISCHER, 2013) e utilizada pela Alemanha na Segunda Guerra Mundial, para cifrar as mensagens enviadas às tropas no campo de batalha. Uma máquina de rotação é um dispositivo elétrico mecânico que realiza uma série de substituições de letras antes da obtenção da respectiva letra cifrada. Isso é realizado para todas as letras durante o processo de cifragem. A cada letra codificada, o esquema de substituição é alterado como ocorre quando se aplica a cifra de César com diferentes deslocamentos. Esses dispositivos foram desenvolvidos em meados do século XX durante a Segunda Guerra Mundial. Eles se assemelham a máquinas de escrever em que se aperta uma tecla e a letra cifrada correspondente é apresentada, acendendo uma luz em uma respectiva célula contendo uma letra do alfabeto no painel da máquina. A Figura 1.3 apresenta um modelo de máquina Enigma desenvolvida à época. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.3 - Máquina de rotação Enigma desenvolvida pelos nazistas para a cifragem e decifragem de mensagens durante a Segunda Guerra Mundial Fonte: Gartanen / Wikimedia Commons. Essas máquinas consistiam de um conjunto de cilindros rotativos que operam independentemente. Cada cilindro possui 26 pinos de entrada e outros 256 pinos de saída. Cada pino de entrada era conectado a um pino de saída por meio de uma fiação elétrica. Cada pino de entrada representava uma letra do alfabeto que era mapeada na respectiva letra codifica pela fiação elétrica (STALLINGS, 2015). As máquinas rotoras possuíam diversos cilindros para aplicar diversas rodadas de substituição sucessivamente com o objetivo de tornar o texto cifrado mais difícil de ser decifrado. A Figura 1.4 ilustra o funcionamento de uma máquina rotor de três cilindros. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.4 - Esquema de uma máquina de três rotores Fonte: Stallings (2015, p. 38). Na Figura 1.4, as ligações entre os pinos de entrada e saída são representadas pelas linhas do diagrama. A ilustração apresenta a configuração inicial dos rotores (a) e depois a configuração após o pressionamento de uma tecla (b). Cada pino de entrada está associado a uma letra do alfabeto (Ex.: pino 25 está associado à letra A). O mesmo ocorre com um pino de saída. Cada rotor aplica uma única substituição de uma letra por outra do alfabeto conforme o mapeamento das linhas. Para explicar o funcionamento dos cilindros, considere que a tecla A seja pressionada (Figura 1.4). Ao pressionar essa tecla há um mapeamento elétrico do primeiro pino para o vigésimo quinto (que nesse diagrama tem o valor 24 representando uma letra do alfabeto). A linha no interior do cilindro representa esse mapeamento. Se fosse utilizando um único cilindro, o equipamento seria tão frágil quanto a cifra de César. Entretanto, o pino do primeiro cilindro é mapeado no pino de entrada do segundo cilindro. No caso, o vigésimo quinto pino de saída no cilindro 1 é mapeado no vigésimo quinto pino de entrada do cilindro 2, que, por sua vez, está conectado ao décimo oitavo pino de saída (número 24). O mesmo ocorre no cilindro 3, que é mapeado no décimo oitavo pino de entrada, que está ligado à saída do segundo pino (número 18), gerando como saída a letra “b” para a cifragem da letra “a”. Assim, uma máquina de rotação de três cilindros aplica uma técnica de substituição três vezes. Outro fator de variabilidade na técnica é a rotação dos cilindros. Ao pressionar uma tecla da máquina, a respectiva letra é cifrada, gerando a saída. Ao codificar a primeira letra, o primeiro cilindro gira uma posição. Isso garante que, se a mesma letra for pressionada, será codificada de forma diferente da anterior ao passar pelos três cilindros. Após 26 pressionamentos de teclas, o primeiro cilindro volta à posição inicial. Nesse contexto, temos 26 alfabetos de substituição para o primeiro cilindro. Após o primeiro cilindro completar uma volta, o segundo cilindro é girado, gerando outro alfabeto de substituição. Quando o segundo cilindro completar uma volta, o terceiro cilindro é girado. O funcionamento desse mecanismo é igual aos dos antigos odômetros mecânicos dos carros. Devido à rotação dos cilindros, existem 17.576 alfabetos distintos de substituição (26 X 26 X 26). Essa quantidade de alfabetos aumenta conforme se adicionam novos cilindros. O processo de decifragem de um texto cifrado por uma máquina de rotação é semelhante à cifragem. Primeiro, posicionam-se os cilindros na posição inicial quando se iniciou a cifragem do texto. Na sequência, digitam-se as letras do texto cifrado para se obter o texto claro. A etapa essencial para que a decifragem ocorra corretamente é o posicionamento dos cilindros na posição inicial quando se iniciou a cifragem. Esse posicionamento dos cilindros funciona como uma chave de criptografia, que é um componente inicial dos algoritmos de criptografia modernos. Para ilustrar o funcionamento de uma máquina de rotação, será utilizado um software que simula a máquina Enigma. Esse software é gratuito e funciona em sistemas operacionais MS Windows. Após a instalação (descompactar o arquivo e executar o arquivo setup.exe), basta clicar no ícone Enigma do menu Iniciar do Windows. Após a execução, a tela da figura 1.5 é apresentada. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.5 - Captura da tela principal do simulador da máquina Enigma Fonte: Elaborada pelo autor. Na Figura 1.5, são destacadas três partes do equipamento: o painel, que indica a posição inicial dos cilindros (A); o visor, onde são apresentadas as cifragens das letras pressionadas no teclado (B) e o teclado, usado para inserção do texto claro ou texto cifrado (C). Ao clicar na alavanca preta ao lado da indicação da posição dos cilindros, é apresentado o interior da máquina, conforme mostrado na Figura 1.6. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.htmlhttps://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.6 - Captura de tela do Interior da máquina Enigma conforme representação do simulador Fonte: Elaborada pelo autor. Na Figura 1.6, na parte superior, são apresentados os três cilindros; no meio, a estrutura do painel luminoso; e, na parte inferior, outros cilindros que podem ser utilizados na substituição dos anteriores. Buscando ilustrar o funcionamento da máquina Enigma, será feita a cifragem do texto “ABC” na 01 01 01 dos rotores. O resultado é apresentado na Figura 1.7. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.7 - Capturas de tela do simulador da máquina Enigma mostrando a cifragem do texto claro ABC para o texto cifrado BJE usando o simulador da máquina Enigma Fonte: Elaborada pelo autor. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Como ilustrado na Figura 1.7, ao pressionar cada letra do texto claro a respectiva letra cifrada é iluminada no painel. Assim, para o texto claro ABC o texto cifrado resultante é BJE. Reparem que a cada tecla pressionada o rotor mais à direita desloca-se em uma posição. No início, os rotores estão na posição 01 01 01; ao pressionar a primeira letra, o rotor mais à esquerda desloca-se em uma posição, gerando a configuração 01 01 02, e assim até o final, cuja posição dos rotores é 01 01 04. O processo de decifragem segue o mesmo princípio. Posicionam-se os rotores na posição 01 01 01 e insere-se o texto cifrado BJE. O resultado é o texto claro ABC mostrado na Figura 1.8. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.8 - Capturas de tela do simulador da máquina Enigma mostrando a decifragem do texto cifrado BJE para o texto claro ABC usando o simulador da máquina Enigma Fonte: Elaborada pelo autor. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html A máquina Enigma pode ser considerada um avanço na utilização da criptografia quando comparada às demais técnicas clássicas (como a cifra de César), que são facilmente decifráveis. praticar Vamos Praticar A cifra de César, dentre os algoritmos clássicos de criptografia, é considerada uma das mais simples, apesar de sua utilidade no momento histórico em que foi utilizada. Nessa técnica, uma letra da mensagem é trocada com outra letra três posições à frente no alfabeto usado. Dessa forma, a cifra de César pode ser classificada como uma cifra de: a) Transposição. b) Substituição polialfabética. c) Substituição monoalfabética. d) Transposição polialfabética. e) Transposição e substituição. Criptografia Simétrica As máquinas de rotação apresentaram uma evolução em relação aos algoritmos clássicos de rotação e transposição. Entretanto, a partir do advento da computação e sua popularização e crescimento do poder de processamento dos computadores, passam a ser desenvolvidos diversos softwares que implementam algoritmos de criptografia. A capacidade dos computadores de processar milhões de instruções por segundo possibilita a execução de diversas operações matemática em um texto claro para gerar um texto cifrado. Além disso, esse poder de processamento permite que ataques de força bruta tenham sucesso na decodificação de mensagens cifradas com um esquema de criptografia fraco. Os tipos de ataques e forças e fraquezas dos algoritmos de criptografia seriam abordados posteriormente. reflita Reflita Os algoritmos clássicos, apesar de sua utilidade, no período histórico que foram utilizados, provavelmente hoje não seriam eficazes. Analisando essa afirmação, quais as limitações dos algoritmos clássicos que os tornariam ineficientes hoje? Fonte: Elaborado pelo autor. O primeiro tipo de algoritmos modernos de criptografia são os algoritmos de criptografia simétrica, desenvolvidos no início da década de 1970, mais especificamente em 1971 com a criação do algoritmo LUCIFER, desenvolvido por Horst Feistel em um projeto da IBM (STALLINGS, 2015). Esses, além de serem agora implementados por um software, utilizam uma chave, chamada de chave privada, para gerar variabilidade no processo de cifragem dos dados. A ideia da utilização de uma chave é semelhante à posição inicial dos cilindros em uma máquina de rotação, visto que a chave irá influenciar a substituição dos caracteres do texto claro para o cifrado, além de ser necessária para decifrar o texto cifrado. Formalmente, os algoritmos de criptografia simétrica utilizam uma única chave para criptografar e decifrar os dados, como já foi dito anteriormente. São aplicados principalmente para garantir a confidencialidade dos dados, pois somente o proprietário da chave será capaz de decifrar a mensagem e obter o texto original (STALLINGS, 2015). A chave é semelhante a uma senha e deve ser fornecida para cifrar e decifrar o texto. Por exemplo, esse poderia ser aplicado na criptografia de dados de uma base de dados, criptografia de arquivos em um sistema com múltiplos usuários garantindo que o dado permanecerá confidencial (CERT.BR, 2019). A Figura 1.9 mostra o funcionamento de um algoritmo de chave privada. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.9 - Funcionamento de um algoritmo de criptografia simétrico. Utilização da chave privada para cifrar o texto e depois no processo de decifragem de texto cifrado Fonte: Elaborada pelo autor. Um algoritmo de criptografia simétrica pode ser utilizado para cifrar mensagens e dados entre dois usuários em uma comunicação via Internet. Entretanto, como a chave privada é usada para cifrar e decifrar a mensagem, essa se torna uma fragilidade nesse modelo. Assim, os usuários deverão ter conhecimento desta. Nesse contexto, a chave passa a ser uma informação compartilhada e, se for comprometida (por exemplo, um hacker que invade o computador do usuário e tem acesso a essa), todas as informações criptografadas poderão ser acessadas. A Figura 1.10 apresenta o processo de envio de um texto cifrado por e-mail. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.10 - Troca de mensagens entre um dos usuários (emissor e receptor). O texto cifrado é enviado por e- mail e a chave compartilhada por um meio de comunicação seguro. Fonte: Elaborada pelo autor. Na Figura 1.10, o emissor gera uma mensagem cifrada, utilizando um algoritmo de criptografia simétrico. Essa mensagem é enviada por e-mail para um destinatário (receptor). Para decifrar a mensagem, é necessária a chave pública usada para cifrar originalmente a mensagem. Essa precisa ser mantida em segredo, caso contrário, se for capturada por um terceiro, todo o sigilo da mensagem cifrada será perdido. Por isso, o emissor contata o receptor por um canal seguro. No caso, a comunicação da chave privada foi feita por uma ligação telefônica. A partir do momento em que o receptor tem conhecimento da chave privada, esse consegue decifrar a mensagem. Exemplos de implementações desse tipo de algoritmo:DES (Data Encryption Standard), AES e IDEA – essas implementações serão estudadas no final dessa unidade, os quais implementam técnicas de transposição, permutação e utilizam uma chave privada para a geração do texto criptografado. Vantagens dos Algoritmos de Criptografia Simétrica Os algoritmos de criptografia simétrica possuem uma série de vantagens que popularizaram a sua utilização (AMARO, 2019): 1. Performance. Os algoritmos de criptografia simétrica são capazes de cifrar uma grande quantidade de informações em pouco tempo. 2. Pode-se utilizar chaves relativamente simples e, mesmo assim, ter um mecanismo de criptografia robusto. 3. Facilmente utilizáveis na proteção de dados armazenados em dispositivos (computadores, celulares), arquivos e banco de dados. Desvantagens dos Algoritmos de Criptografia Simétrica Apesar das vantagens dos algoritmos de criptografia simétrica citadas, esses apresentam algumas desvantagens relacionadas à chave privada, a qual é o ponto mais crítico do algoritmo. Segundo Schneier (1996), os algoritmos de criptografia simétricos possuem as seguintes desvantagens: 1. A chave privada precisa ser distribuída em segredo. Meios de transmissão públicos como Internet não são ideais para a divulgação das chaves. Assim, tanto o emissor quanto o receptor devem buscar uma forma segura de envio das chaves. 2. Como essa chave é usada para cifrar e decifrar uma mensagem, se um atacante tiver acesso a ela, todas as mensagens cifradas com essa estarão comprometidas. Se os usuários não perceberem o comprometimento da chave privada, as mensagens futuras também serão comprometidas. 3. Devido à necessidade de se manter a chave privada secreta, o ideal é que a comunicação entre pares de emissores e receptores utilize uma chave diferente para cada. Nesse contexto, o número de chaves usadas cresce rapidamente. Estima-se que, para uma comunicação entre n usuários, serão necessárias n(n-1)/2 chaves privadas. Assim, para uma comunicação entre 10 usuários, serão necessárias 45 chaves. Para 100 usuários, 4.950 chaves privadas. Nesse tipo de algoritmo, o ideal é manter o número de usuários pequeno, mas nem sempre isso é possível. praticar Vamos Praticar A criptografia de chave simétrica é utilizada para a cifragem de informações armazenadas em computadores, celulares com o acesso não autorizado. Assinale a alternativa correta, a seguir, em relação aos conceitos da criptografia simétrica. a) Utiliza a mesma chave na criptografia de mensagens enviadas entre um emissor e receptor pela Internet.Feedback: alternativa correta, pois, na criptografia simétrica, o remetente deve compartilhar a chave privada com o destinatário para ele poder decifrar a mensagem. b) A chave pública é utilizada para cifrar e decifrar uma mensagem.Feedback: alternativa incorreta, pois os algoritmos assimétricos possuem apenas uma chave, chamada de chave privada, para cifrar e decifrar as informações. c) A cifragem simétrica é utilizada frequentemente na cifragem/decifragem das comunicações pela Internet.Feedback: alternativa incorreta, pois os algoritmos simétricos utilizam uma mesma chave para cifrar e decifrar as mensagens, e essa chave teria de ser compartilhada com todos os usuários participantes da comunicação, o que aumenta o risco de acesso não autorizado da chave comprometimento das mensagens. d) Utiliza um par de chaves para cifrar e decifrar mensagens.Feedback: alternativa incorreta, pois os algoritmos simétricos utilizam uma única chave para cifrar e decifrar as mensagens. e) Utiliza técnicas diferentes para cifrar e decifrar as mensagens.Feedback: alternativa incorreta, pois o processo para decifrar a mensagem é o mesmo da cifragem, apenas executado na ordem inversa. Técnicas de Criptografia Simétrica A criptografia clássica processa cada letra do texto claro para produzir o texto cifrado. Esse método se torna menos eficaz quando implementado em um software. Os computadores conseguem processar grandes quantidades de dados com rapidez. Dessa forma, os algoritmos modernos de criptografia trabalham com blocos de informações para gerarem o texto cifrado. Os algoritmos de criptografia simétrica utilizam duas técnicas para cifragem do texto claro em texto cifrado. São elas (STALLINGS, 2015): A. Cifra de fluxo: executa a cifragem de um fluxo de dados digital um bit ou byte por vez. B. Cifra de bloco: executa a cifragem de um bloco de texto claro por vez para produzir um bloco de texto cifrado do mesmo tamanho. Normalmente, são utilizados blocos de 64 ou 128 bits do texto claro. Uma cifra de bloco garante que o bloco de texto claro convertido em texto cifrado é único, ou seja, existe um mapeamento reversível um para um entre o bloco de texto claro e o bloco de texto cifrado. Um exemplo de implementação da cifra de bloco é a Cifra de Feistel. Algoritmos de Criptografia Assimétrica A partir das técnicas de criptografia assimétrica foram desenvolvidos algoritmos, e suas respectivas implementações, visando possibilitar a utilização da criptografia simétrica em sistemas computacionais. Os algoritmos estudados nesta unidade são o Data Encryption Standard (DES), Advanced Encryption Standard (AES) e International Data Encryption Algorithm (IDEA). Todos implementam um algoritmo de cifragem baseado em blocos. Data Encryption Standard (DES) O algoritmo de criptografia DES foi desenvolvido pela IBM, na década de 1970, com o objetivo de ser implementado em um chip de computador. Esse algoritmo foi baseado em outro algoritmo chamado LUCIFER, também desenvolvido pela IBM, que implementava a cifra de Feistel. A IBM submeteu o DES como uma proposta de padrão para o National Bureau of Standard (NBS), nos Estados Unidos. Como o DES foi o melhor algoritmo proposto, dentre os que estavam concorrendo com ele para serem o padrão, ele foi escolhido em 1977 (STALLINGS, 2015). A Figura 1.11 apresenta a estrutura geral de funcionamento do DES. Esse realiza a cifragem de blocos de 64 bits utilizando uma chave privada de 48 bits. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.11 - Esquema de funcionamento do DES Fonte: STALLINGS (2015, p. 55). O lado esquerdo da Figura 1.11 apresenta a criptografia do texto claro, enquanto o lado direito mostra como a chave é usada. Em relação ao texto claro, o processo é executado em 3 fases: 1. O texto claro é permutado gerando a entrada permutada. 2. O texto claro passa por 16 rodadas onde ocorrem substituições e permutações do texto. Resumidamente, o bloco de 64 bit é dividido em dois blocos 32 bits. Na primeira rodada, os blocos são invertidos de posição. O segundo bloco de 32 bits ocupará a posição do primeiro. O segundo será aplicado a uma função de criptografia utilizando a chave privada (e subsequentes variações dessa nas demais rodadas). Isso gera um bloco de 64 bits, que, na próxima rodada, é dividido em dois de 32 bits e novamente são aplicadas as operações. 3. Na última etapa, a pré-saída passa novamente por uma permutação, que é o inverso da primeira. Após isso, obtém-se o texto cifrado. Em relação à chave privada (lado direito da imagem), a chave inicialmente passa por uma permutação. A partir dessa, são geradas subchaves para cada rodada do algoritmo e utilizadas na cifragem do bloco de texto claro, utilizando a função definida pelo DES. As subchaves são obtidas fazendo um deslocamento circular à esquerda e uma permutação. O DES utiliza tabelas de permutação e de substituição (S-Box) pré-definidas. A decifragem do texto cifrado é feita utilizando o algoritmo com a aplicação da ordem inversa de chaves sobre o texto cifrado. O DES utiliza uma chave privada de 56 bits. Como avanço do poder de processamento dos computadores, é possível realizar ataques de força bruta visando descobrir a chave. Tal fato ocorreu em 1998, quando a Electronic Frontier Foundation (EFF) construiu uma máquina que foi capaz de quebrar a criptografia do DES em 10 horas (STALLINGS, 2015). Advanced Encryption Standard (AES) O DES possui duas fragilidades que levaram à adoção de outro algoritmo como padrão criptográfico, a ser utilizado pelo governo americano, a partir de 2001 (STALLINGS, 2015). O DES possui uma chave de 56 bits, que é suscetível a ataques de força bruta. Além disso, o algoritmo foi projetado para ser executado por um hardware dedicado, o que torna a sua performance lenta quando implementado via software. Assim, o NIST (National Institute of Standards and Technology) solicitou propostas para um novo padrão de criptografia chamado Advanced Encryption Standard (AES), que substituiria o DES e sua variação 3DES. O algoritmo Rijndael foi o escolhido. Esse foi desenvolvido pelos criptógrafos belgas: Joan Daemen e Vincent Rijmen. Esse algoritmo trabalha com tamanhos de chave de 128, 192 e 256 bits, enquanto que o tamanho do bloco é limitado a 128 bits. O algoritmo que se tornou o AES foi projeto para atender aos seguintes critérios: resistente contra todos os ataques existentes, simplicidade de projeto e velocidade de compactação de código (STALLINGS, 2015). A Figura 1.12 ilustra o funcionamento do AES. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.12 - Esquema de funcionamento do AES Fonte: Stallings (2015, p. 105). O processo de decifragem (decriptação) do texto cifrado não é feito da mesma forma que a cifragem. O AES possui um módulo específico para decifrar os dados. International Data Encryption Algorithm (IDEA) O IDEA surgiu em 1992 a partir da evolução de um algoritmo de criptografia chamado PES (Proposed Encryption Standard). Os criadores do PES, IPES (Improved Proposed Encryption Standard), evolução do PES e de seu sucessor IDEA foram Xuejia Lai and James Massey (SCHNEIER, 1996). O IDEA utiliza a cifragem em blocos, onde cada bloco possui o tamanho de 64 bits. A chave privada possui um tamanho de 128 bits e utiliza o mesmo algoritmo para cifrar e decifrar o texto. Esse usa uma combinação das operações XOR (Ou-Exclusivo), Adição de módulo 216 e multiplicação por módulo 216+1, ao invés da cifragem de Feistel para gerar o texto cifrado. O IDEA, resumidamente, funciona da seguinte maneira (SCHNEIER, 1996): 1. Na cifragem, o texto claro é dividido em blocos de 64 bits. 2. Cada bloco é dividido em quatro sub-blocos de 16 bits: B1, B2, B3 e B4. 3. Os quatro sub-blocos são a entrada da primeira rodada do algoritmo (oito rodadas no total). 4. Em cada rodada, os quatro sub-blocos são submetidos à operação lógica XOR, somados e multiplicados entre si e com seis sub-blocos de 16 bits oriundos da chave (K1, K2, K3, K4, K5 e K6). 5. Entre cada rodada, o segundo e o terceiro sub-blocos são trocados de posição. A Figura 1.13 ilustra o funcionamento do IDEA. https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html Figura 1.13 - Esquema de funcionamento do IDEA Fonte: Ludwig (2019, on-line). O IDEA é duas vezes mais rápido que o DES e, devido ao tamanho da chave, é considerado imune a ataques de força bruta. Desde a sua criação, não foram descobertas falhas que possibilitassem a quebra do algoritmo (SCHNEIER, 1996). praticar Vamos Praticar O algoritmo AES representa uma evolução quando comparado aos algoritmos DES devido à vulnerabilidade desse em relação à chave. Assim, para se garantir a segurança, deve-se utilizar o algoritmo AES com uma chave de: a) 56 bits e blocos de dados de 256 bits. b) 256 bits e blocos de dados de 128 bits.Feedback: alternativa correta, pois a chave do AES pode ter até 256 bits enquanto o bloco de dados está limitado a 128 bits. c) 128 bits e blocos de dados de 256 bits. d) 256 bits e blocos de dados de 256 bits. e) 192 bits e blocos de dados de 128 bits. indicações Material Complementar LIVRO A história da quebra dos códigos secretos Al Cimino Editora: M. Books ISBN: 978-85-768-0304-1 Comentário: O livro faz um relato histórico sobre como a criptografia tem sido utilizada para possibilitar a comunicação sigilosa em questões políticas. Além disso, detalha a utilização e quebra dos códigos da máquina Enigma por Alan Turing e as respectivas implicações para o desfecho da Segunda Guerra Mundial. FILME O jogo da imitação Ano: 2014 Comentário: O filme conta a história do trabalho da Alan Turing, um dos principais nomes responsáveis pelo desenvolvimento da ciência da computação, e seu trabalho na agência britânica de inteligência, visando à decodificação dos códigos nazistas na Segunda Guerra Mundial. O filme ilustra o funcionamento da máquina Enigma (mais famosa máquina de rotação) e mostra o processo de construção de uma máquina capaz de decifrar as mensagens. T RAI L ER conclusão Conclusão As técnicas e os algoritmos de criptografia fazem parte da história da humanidade e estão presente no dia a dia das pessoas graças à popularização da informática. Os algoritmos clássicos, devido à capacidade de processamento https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html https://unp.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_CRICED_20/unidade_1/ebook/index.html atual dos computadores, são facilmente comprometidos pois permitem ataques de força bruta que testam todas as possíveis combinações de permutações e substituições e, assim, obtêm o texto claro. Nesse contexto, a implementação de softwares que realizam a criptografia simétrica possibilitou esquemas de criptografia mais robustos, como o IDEA e o AES, cuja existência de uma chave privada inviabiliza tais ataques. referências Referências Bibliográficas AMARO, G. Criptografia simétrica e criptografia de chaves públicas: vantagens e desvantagens. Faculdade de Educação Superior do Paraná. Disponível em: http://publica.fesppr.br/index.php/rnti/issue/download/4/33. Acesso em: 21 dez. 2019. CERT.BR. Cartilha de Segurança para Internet. Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil (CERT.br). Disponível em: https://cartilha.cert.br/. Acesso em: 19 dez. 2019. KRISCHER, T. C. Um estudo da máquina Enigma. 2013. 98 f. Trabalho de Conclusão (Graduação em Ciência da Computação) – Universidade Federal do Rio Grande do Sul, Porto Alegre, 2013. Disponível em: https://www.lume.ufrgs.br/bitstream/handle/10183/66106/000870987.pdf. Acesso em: 25 dez. 2019. LUDWIG, G. A. International Data Encryption Algorithm (IDEA), Universidade Federal do Rio Grande do Sul. Disponível em: file:///C:/Users/Claudine/Downloads/IDEA.pdf. Acesso em: 22 dez. 2019. SCHNEIER, B. Applied cryptography. Hoboken, Nova Jersey: John Wiley & Sons, 1996. STALLINGS, W. Criptografia e segurança de redes: princípios e práticas [Recurso eletrônico, Biblioteca Virtual]. 6. ed. São Paulo: Pearson Education do Brasil, 2015. UFRGS – Universidade Federal do Rio Grande do Sul. Alan Turing – Legados para a computação e para a humanidade. Disponível em: http://www.ufrgs.br/alanturingbrasil2012/area2.html. Acesso em: 21 dez. 2019. © 2020 - LAUREATE - Todos direitos reservados http://publica.fesppr.br/index.php/rnti/issue/download/4/33 https://cartilha.cert.br/https://www.lume.ufrgs.br/bitstream/handle/10183/66106/000870987.pdf file:///C:/Users/Claudine/Downloads/IDEA.pdf http://www.ufrgs.br/alanturingbrasil2012/area2.html Conceitos Básicos Cifra de César Máquina de Rotação Vantagens dos Algoritmos de Criptografia Simétrica Desvantagens dos Algoritmos de Criptografia Simétrica Algoritmos de Criptografia Assimétrica Data Encryption Standard (DES) Advanced Encryption Standard (AES) International Data Encryption Algorithm (IDEA) A história da quebra dos códigos secretos O jogo da imitação
Compartilhar