Buscar

A criptografia e seu papel na segurança da informação

Prévia do material em texto

A Criptografia e seu Papel na Segurança da Informação
Vinícius Martins Gayo
v.martinsgayo@hotmail.com
Claudinei Di Nuno, MSc
professorclaudinei@uol.com.br
Curso de Pós-Graduação Lato Sensu em Gestão Estratégica da Tecnologia da Informação
Universidade Estácio de Sá
Resumo
O caminho trilhado pela criptografia na segurança da informação é algo importantíssimo desde muito tempo. Na verdade, criou-se um marco na evolução tecnológica, tornando-a mais segura para transmissão de mensagens particulares e confidenciais. O objetivo deste artigo científico é mostrar como isso aconteceu ao longo do tempo. Demonstrar ao leitor a proporção em que se foi tomada a criptografia diante de seus métodos e algoritmos matemáticos surpreendentes, onde podemos transformar algo como um texto comum em algo incompreensível aos olhos humanos, necessitando de todo um método para que haja a compreensão em si do que foi dito e trazendo segurança ao criador de tal mensagem. Será discutido todos os seus principais métodos e conceitos históricos da criptografia, como a Cifra de César, na qual foi introduzida em propósito estratégico para envio de mensagens durante as muitas das guerras romanas, o DES, que foi um dos sistemas mais utilizados durante os tempos antigos e grande influenciador em vários métodos modernos, até a utilização de algoritmos matemáticos avançados como os propostos com o RSA e os novos protocolos de segurança utilizados nos dias atuais, em meio a internet, transformando o ato de cifrar, algo diretamente e indiretamente a maneira mais segura de se poder navegar com segurança, em variados tipos de códigos de programação diferentes.
Palavras-chave: criptografia, segurança da informação, cifras, algoritmos.
Abstract
The path taken by cryptography in information security has been very important for a long time. In fact, it has created a milestone in technological evolution, making it more secure for the transmission of private and confidential messages. The purpose of this scientific article is to show how this has happened over time. Demonstrate to the reader the extent to which cryptography has been taken in the face of its surprising mathematical methods and algorithms, where we can transform something as a common text into something incomprehensible to human eyes, necessitating a whole method for understanding itself Was said and bringing security to the creator of such a message. It will discuss all its main methods and historical concepts of cryptography, such as the Cipher of Caesar, which was introduced in strategic purpose for sending messages during many of the Roman Wars, DES, which was one of the systems most used during the times Old and great influencer in several modern methods, to the use of advanced mathematical algorithms such as those proposed with RSA and the new security protocols used today, in the midst of the internet, transforming the act of encrypting, something directly and indirectly the way More secure to navigate safely, in various types of different programming codes.
Keywords: cryptography, information security, ciphers, algorithms.
Introdução
	Desde os primórdios da comunicação é essencial, desde então, confidencialidade da informação. Para isso, a criptografia nos proporciona métodos desenvolvidos para ocultar, ou transformar a mensagem original, tornando-a assim, mais segura. 
	A criptográfica provavelmente é o aspecto mais importante da segurança da informação e está se tornando cada vez mais importante. A crescente utilização da informação nos inúmeros meios de transmissão, aumentou o risco de roubo de informações particulares e confidencias. A proporção em que a criptografia passou a ser utilizada e estudada, trouxe a necessidade de estabelecer padrões matemáticos mais rigorosos.
	Como podemos observar nos dias atuais, nos preocupamos mais em trazer a segurança para o nosso meio social devido aos grandes níveis de acessos à internet. Decorrente a isso, o uso da criptografia pode ser encontrado em uma senha digitada para uma criação de e-mail, compras online e em transações bancárias.
	Os primeiros sistemas criptográficos inventados eram do tipo de criptografia simétrica. Basicamente utilizada para transformação de textos claros em cifrados, utilizando uma chave secreta e um algoritmo de criptografia. Já a criptografia assimétrica tende a utilizar um par de chaves, sendo elas públicas e privadas, o que gerou uma grande revolução para a criptografia moderna.
	Será realizada uma abordagem sobre a evolução de tais métodos e como foram e são utilizados até hoje a ponto de lhes mostrar que a ferramenta automatizada mais importante para a segurança da informação e como ela pode ser introduzida pelo método RSA, diretamente a um código de programação encontrado em muitos dos sites pela internet. 
Fundamentação Teórica
2.1 Criptografias Simétricas
	A criptografia simétrica, ou chave secreta é composta por apenas uma chave de cifração, em que os processos de cifração e decifração são simétricos, como demonstrado por STALLINGS (2007, p. 22). A cifra simétrica é como uma fechadura, onde pode se utilizar a mesma chave para abrir e destranca-la, como no exemplo da figura 1 abaixo.
	Devido a necessidade de aprimoramento de seu método de criptografia, foram desenvolvidos técnicas, onde serão descritos a seguir.
Figura 1 – Exemplo de criptografia simétrica.
Fonte: http://www.oarquivo.com.br/
2.1.1 Cifras de Substituição
	Para CAPRINO (2015, p. 71), este é método onde caracteres do texto são substituídas por caracteres de texto cifrado seguindo um sistema regular e pré-determinado. Esses caracteres podem conter variações e para que possamos decifra-la, deve-se fazer a substituição reversa.
Uma das mais antigas e mais conhecidas é a Cifra de César, utilizada pelo imperador romano Julius Caesar em meio de suas batalhas, podendo assim enviar mensagens para que outros exércitos não as pudessem ler.
	Com o seguinte deslocamento, a letra A é substituída pela D, B se torna E e assim por diante. As letras do final do alfabeto são substituídas pelas primeiras, tornando-as assim, X como A, Y será B e Z por final se tornará C, assim como no exemplo da figura 2. 
Figura 2 – Exemplo de Cifra de César.
Fonte: http://recantododragao.xpg.uol.com.br/
	Entretanto, a cifra se torna frágil assim que descoberta, em suma “se for conhecido que determinado texto cifrado é uma cifra de César, então uma criptoanálise pela força bruta será facilmente realizada. Basta experimentar todas as 25 chaves possíveis. ” (STALLINGS, p. 22).
	Outro grande exemplo de cifra de substituição é Cifra de Vigenère, onde utilizamos o texto selecionado para e criamos uma chave de encriptação, sendo assim, cada letra do texto define um deslocamento diferente que será usado na Cifra de César, como podemos observar na figura 3. Para TALBOT (2006, p. 100), a chave consiste em uma string, trabalhando em mod26 com letras, na qual levam aos valores de A = 0 a Z = 25.
Figura 3 – Exemplo de Cifra de Vigenère.
Fonte: http://crypto.interactive-maths.com/
2.1.2 Cifras de Transposição
	De uma forma mais elaborada as cifras de transposição utilizam a técnica de mudança da ordem dos caracteres, onde “os caracteres mantêm sua forma de texto puro, mas alteram suas posições para gerar o texto cifrado. O texto é organizado por uma tabela bidimensional, as colunas são permutadas de acordo com uma chave. ” (FOROUZAN, 2008 p. 730).
	A cifra mais simples deste tipo é a técnica de cerca de trilho, onde é realizada uma transposição geométrica, pois segue o texto é escrito na diagonal e lido como uma sequência de linhas, como o exemplo na figura 4 abaixo.
Figura 4 – Exemplo de Cifra de Transposição.
Fonte: http://pt.slideshare.net/
2.1.3 DES
	Um dos mais funcionais sistemas de criptografia convencional é o Data Encryption Standard. Utilizado por mais de 20 anos, o DES é uma cifra simétrica que opera em blocos de texto de 64 bitsutilizando uma chave de 56 bits, produzindo então um texto cifrado de 64 bits, tendo sido feito 16 vezes o mesmo procedimento cada um com uma chave diferente.
	Com a evolução dos métodos e novos algoritmos, o DES foi deixando de ser tão seguro, fazendo com que até mesmo uma chave de 56 bits a conseguisse decifra-la. Como uma alternativa de melhor assegurar seu método ainda funcional, foi criado o 3-DES, que é composta por três chaves de 56 bits. Porém, com suas desvantagens, como citado por STALLINGS (2015), por ser implementado em meados de 1970 ele é relativamente lento, pois requer três vezes mais cálculos.
2.1.4 AES
	Um dos sucessores do DES é o Advanced Encryption Standard, onde por mais que o 3-DES tenha sido desenvolvido para aperfeiçoar seus processos criptográficos, o método ainda era muito fraco, lento e inflexível aos olhares da evolução criptográfica, assim como declarado por STALLINGS (2015, p. 91).
	Desenvolvido a partir do algoritmo de Rijndael, passou por uma série de testes e passou a ser estabelecido pois combina segurança, desempenho, eficiência, é de fácil manipulação e não necessita de um hardware muito potente para funcionamento.
	É necessária a determinação dos blocos e o tamanho das chaves para que seja projetado o algoritmo, permitindo blocos de 128, 168, 192, 224 e 256 bits e chaves de 128, 192 e 256 bits, quando utilizado por padrão, é composto por bloco e chave de 128 bits.
2.2 Criptografias Assimétricas
	A criptografia era fundamentada em cifras de substituição e transposição, mas a era moderna necessitou de algo mais, e por meio da criptografia assimétrica, tudo isso foi possível. 
	CAPRINO (2015 p. 84), cita que a criptografia assimétrica é composta por duas chaves diferentes, sendo elas uma pública e outra privada, como no exemplo da figura 5. Não necessariamente a sua diferença venha ser nisto, mas sim por conter arquivos digitais mais complexos e maiores dificultando a criptoanálise. A chave pública ficará disponível para que qualquer indivíduo possa se comunicar com outro de modo seguro, entretanto, mas a chave privada ficará somente disponível ao indivíduo principal.
	Ao contrário da criptografia simétrica, a assimétrica exige muito mais processamento, pois ela é usada para combinar uma chave que poderá ser utilizada posteriormente por uma criptografia simétrica ou quando houver assinaturas digitais é feito um hash da mensagem e de lá ocorre à criptografia, diminuindo assim o overhead.
Figura 5 – Exemplo de Criptografias Assimétricas.
Fonte: http://www.gta.ufrj.br/
2.2.1 Diffie-Hellman
	De uma forma inusitada, Diffie-Hellman é um protocolo que permite a troca de chaves baseado no logaritmo discreto. Nas palavras de FOROUZAN (2010, p. 952), a utilização de chave pública não permite cifra e nem assinatura digital, tendo como objetivo permitir que dois indivíduos conseguissem compartilhar publicamente sua mensagem, sendo melhor definido na figura 6.
Figura 6 – Exemplo do protocolo Diffie-Hellman.
Fonte: https://shyamapadabatabyal.wordpress.com
	Segundo FOROUZAN (2010, p. 952), “Alice e Bob precisam de uma chave simétrica para se comunicar. Antes de estabelecer uma chave simétrica, as duas partes precisam escolher dois números “p” e “g”. O primeiro número “p”, é o número primo grande na ordem de 300 dígitos decimais (1024 bits). O segundo é um número aleatório. Ambos não precisam ser confidenciais. Eles podem ser enviados pela internet: podem ser públicos. ”
2.2.2 RSA
	Conforme citado por FOROUZAN (2010, p. 952), após a tentativa de desenvolvimento de um algoritmo capaz suprir as especificações propostas por Diffie-Hellman, Ron Rivest, Adi Shamir e Len Aleman desenvolveram o algoritmo RSA, na qual se tornou o primeiro algoritmo de chaves públicas, muito utilizado até os dias de hoje e tornando-se uma das formas de criptografia mais poderosas. 
	O RSA é basicamente o resultado de dois cálculos matemáticos, utilizando números primos, com a premissa da obtenção de um terceiro, impossibilitando a obtenção dos outros dois primeiros por este terceiro. Ou seja, este método se baseia em uma fatoração de números inteiros extensos. Atualmente são geradas chaves com até 2048 bits.
2.2.3 Curvas Elípticas
	Como proposta por STALLINGS (2007 p. 221), foram utilizadas curvas elípticas para sistemas criptográficos de chave pública, não em uma nova forma de algoritmo, mas a implementação de algoritmos de chaves públicas existentes, tais como o de Diffie-Hellman, só que usando curvas elípticas, como exemplificado na figura 7 abaixo. Embasado em modificações de outros sistemas, nos quais possam utilizar curvas elípticas, ao invés de trabalharem com corpos finitos. Possuem um grande potencial por conter um sistema criptográfico de chaves públicas mais seguros, possuindo chaves de menores tamanhos.
Figura 7 – Exemplo de Curvas Elípticas.
Fonte: http://mathworld.wolfram.com/
2.3 Função Hash
	“As funções hash não são consideradas criptografia, exatamente por serem de mão única. A função obtida não é uma representação cifrada dos dados, como ocorre na criptografia. O princípio básico da criptografia é ser uma operação reversível. Já o resultado das funções hash não pode ser revertido para se obter o dado que originou a saída. ” (CAPRINO, 2015 p. 85). Porém, essa função exerce um papel importantíssimo identificando um objeto de interesse por meio de um conjunto de símbolos, geralmente em números hexadecimais.
	Em suma, através de uma string qualquer, é calculado o identificador digital de um tamanho fixo, na qual chamamos de hash. O hash pode ser formado por 16 bytes quando utilizamos MD-2, MD-4 e o MD-5, já quando em 20 bytes temos o SHA-1, entretanto, podemos estendê-lo por até 512 bytes, onde é seu limite. 
2.4 Assinatura Digital
	Para a criptografia, assinatura digital é um mecanismo de autenticidade digital, utilizando um par de chaves (pública e privada). Para FOROUZAN (2010, p. 974), a obtenção resumida de tal resultado de autenticidade é simples, pois é necessário que o criador da mensagem use sua chave de assinatura para assinar tal mensagem e enviá-la junto a assinatura do destinatário.
Para entendermos melhor, a mensagem original é introduzida a função hash, obtendo o resultado criptografado usando a chave privada do autor. Já quando com o destinatário, é necessária a verificação de autenticidade da mensagem, e para isso é realizado o mesmo processo da assinatura, contando é utilizada uma chave de verificação. Feito todo o processo de verificação, é possível que o destinatário utilize sua chave pública fornecida pelo autor, descriptografando a assinatura digital dento acesso a tal mensagem.
	Dentre todos os nossos métodos e algoritmos de criptografias assimétricas, o que mais se evidenciou foi o RSA, sendo um dos principais métodos utilizados e o que nós abordaremos abaixo e ao prolongar do artigo.
2.4 Certificado Digital
	Foi proposto por NAKAMURA (2007, p. 317), que o certificado digital é um documento eletrônico, na qual contém um nome e um número público exclusivo, onde o denominamos de chave pública. São emitidos para variadas funções, dentre elas a autenticação de um servidor web, transações financeiras, autenticação de usuários na rede e na internet, etc.
	Um certificado digital associa a identidade de uma pessoa, a um par de chaves, sendo uma pública e outra privada, que juntas certificam sua identidade. O certificado digital é um arquivo assinado eletronicamente por uma Autoridade Certificadora (AC). 
	O certificado digital é protegido pela assinatura digital do emissor. No certificado existem 6 campos obrigatórios, número serial, algoritmo de assinatura, o emissor, validade, chave pública, assunto e 4 campos opcionais, número da versão, dois identificadores e extensão. A recomendação mais utilizada para emissão de certificados digitais é a X.509v3, descrita na RFC 2459.
Materiais e Métodos
	Neste trabalho o objetivo é apresentar a utilização do algoritmo RSAe sua utilização de duas chaves, sendo elas de encriptação e outra para decriptação. Para implementação da técnica, foi utilizada a linguagem de Javascript, na qual possuem métodos que nos permitem uma certa facilidade sobre o algoritmo.
Figura 8 – Sistema de criação para chaves e mensagens RSA.
Fonte: Autoria própria
3.1 Criando a chaves de encriptação e decriptação
	A geração de números primos desempenha um papel fundamental na geração das chaves criptográficas do RSA.
A ideia é utilizar números primos dentre 3 a 997, como uma prévia na figura 8 acima, seguindo os padrões de fatoração para encontrar a chaves, conforme a figura 9 abaixo.
Figura 9 – Padrão de fatoração RSA.
Fonte: http://images.slideplayer.com.br/
	Considerando que definiu-se os números primos, encontrou-se então a multiplicação do número entre “p” e “q” para encontrar o valor de “n”, seguindo que os números primos encontrados deverão obter o total de 255 ou maior, para que utilize os padrões ASCII, como demonstrado na figura 10 abaixo.
Figura 10 – Código para definição de “n”.
Fonte: Autoria própria
	A partir da definição de “n” consegue-se gerar nossa chave pública e privada, onde definiu-se valores de “d” e “e”, de acordo com a figura 11.
Figura 11 – Código para definição das chaves pública e privada.
Fonte: Autoria própria
	Definidas as chaves, pode-se então definir a mensagem encriptada ou até mesmo decriptar com a chave que nos foi fornecida através de nossas fatorações, seguindo a figura 12.
Figura 12 – Resultado da geração das chaves e criação de mensagem.
Fonte: Autoria própria
Resultados ou Discussões
	Em análise de sua implementação, foi verificado que ele se baseia na dificuldade em fatorar um número em seus componentes primos, segundo as áreas clássicas da matemática. Apesar de parecer simples fatorar esses números pequenos, a situação fica bastante complexa e demorada quando temos que fatorar números grandes não podendo ser resolvidos em um tempo. Conforme analise ao trabalho com textos muito extensos, observou-se que com apenas 2160 blocos de caracteres demorou-se um tempo mínimo de 23,80 segundo para encriptação e a decriptação, como na figura 13.
Figura 13 – Tempo para encriptação e decriptação.
Fonte: Autoria própria
	O método do RSA se dá a construção de uma tabela atribuindo a cada letra um número. Isto é necessário visto que o RSA codifica somente números, onde cada caractere na mensagem se torna um grupo de quatro dígitos numéricos, mostrando melhor na figura 14 abaixo.
Figura 14 – Demonstração do texto criptografado em grupos numéricos.
Fonte: Autoria própria
	No RSA a chave pública e a chave privada são geradas com base na multiplicação de dois números primos e o resultado desta multiplicação será público, mas se o número for grande o suficiente, fatorar este número para descobrir os primos que multiplicados para formá-lo pode demorar anos. Por isso que o RSA é seguro, sendo impossível quebrar a sua criptografia.
Conclusão
	A proteção por criptografia é uma das soluções práticas para proteger informações sigilosas. Independentemente do algoritmo criptográfico utilizado, sempre ocorrerá transformações de um texto legível em um ilegível. Mesmo que o invasor obtenha o conteúdo de um arquivo, esse será ilegível. Para ter acesso à informação original, o invasor terá que resolver um problema matemático de difícil solução. 
	Podemos verificar como exemplo o método RSA, na qual, desde sua criação ainda é um dos métodos mais eficazes para criptografia, trazendo praticidade e confiabilidade por seus algoritmos matemáticos.
	Dessa forma a criptografia criou uma esfera de importante vertente na área computacional, vez que mantêm o sigilo e a confiabilidade de dados inerentes e de elevada importância na busca inalcançável pela plena segurança de dados que se mostram cada dia mais preciosos.
Referências bibliográficas
CAPRINO, Willian; CABRAL, Carlos. Trilhas em segurança da informação. Rio de Janeiro, 	Brasport, 2015.
COSTA, Celso. FIGUEIREDO, Luiz. Criptografia geral, 2ª Ed. Rio de Janeiro, Universidade 	Federal Fluminense, 2006.
FOROUZAN, Behrouz. Comunicação de dados e redes de computadores, 4ª Ed. São Paulo, 	AMGH 	Editora Ltda, 2010.
FOROUZAN, Behrouz. Protocolo TCP/IP, 3ª Ed. São Paulo, AMGH Editora Ltda, 2010.
GALVÃO, Michele da Costa. Fundamento em Segurança da Informação. Pearson Education, 	São Paulo, 2015.
MORENO, Edward. PEREIRA, Fabio; CHIARAMONTE, Rodolfo. Criptografia em software e 	hardware. São Paulo, Novatec, 2005.
NAKAMURA, Emilio; GEUS, Paulo. Segurança de redes em ambientes cooperativos. São 	Paulo, 	Novatec, 2007.
SHOKRANIAN, Salahoddin. Criptografia para iniciantes. São Paulo, Editora Ciência Moderna, 	2012.
STALLINGS, William. Ciptografia e segurança de redes: Princípios e práticas, 6ª Ed. São 	Paulo, Pearson Education, 2014.
STALLINGS, William; BROWN, Lawrie. Segurança de computadores – Princípios e práticas, 2ª 	São Paulo, Ed. Elsevier, 2015.
TALBOT, John; WELSH, Dominic. Complexity and cryptography an introducion. Cambridge, 	Universidade 	de Cambridge, 2006.
TERADA, Routo. Segurança de dados: Criptografia em redes de computador, 2ª Ed. revisada 	e ampliada. São Paulo, Blusher, 2008.
TKOTZ, Viktoria. Criptografia – Segredos emalados para viagem. São Paulo, Novatec, 2005.
WRIGHTSON, Tyler. Segurança de redes sem fio – Guia do iniciante. São Paulo, Bookman, 	2014.
WYKES, Sean. Criptografia essencial – A jornada do criptógrafo. São Paulo, Elsevier, 2016.
ZOCHIO, Marcelo. Introdução à criptografia. São Paulo, Novatec, 2016.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes