Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE PAULISTA Ciência da Computação ELISA MATIAS WICHER D29DGC-6 JOÃO VICTOR SAVIOLO VALERIANO D39BEH-4 MAÍRA ALVES DE SOUSA D21564-7 PEDRO MURILO PEREIRA D19EGJ-5 VINICIUS ROBERTO NICHIO D3726D-4 CRIPTOGRAFIA: Cifra de César SÃO JOSÉ DO RIO PRETO 2017 1 ELISA MATIAS WICHER D29DGC-6 JOÃO VICTOR SAVIOLO VALERIANO D39BEH-4 MAÍRA ALVES DE SOUSA D21564-7 PEDRO MURILO PEREIRA VINICIUS ROBERTO NICHIO D19EGJ-5 D3726D-4 CRIPTOGRAFIA: Cifra de César Trabalho da disciplina de Atividades Práticas Supervisionadas do curso de Ciência da Computação apresentado à Universidade Paulista – UNIP. SÃO JOSÉ DO RIO PRETO 2017 2 RESUMO A criptografia teve surgimento desde os primórdios e esteve presente na Idade Antiga até os tempos de hoje. Apresentando conceitos, estruturação e fundamentação sobre criptografia, este trabalho tem foco principal na Cifra de César e na execução de um programa com o uso dessa cifra, objetivando a proteção de informações de dados e propagando aprendizado e tecnologia. Palavras Chaves: Criptografia. Cifra de César. 3 ABSTRACT Cryptography has appeared from the earliest days and was present in the Old Age until today. In this paper, we present the main concepts of Cipher and the implementation of a program with the use of this cipher, aiming at the protection of data information and propagating learning and technology. Keywords: Cryptography. Cifra of Caesar. 4 LISTA DE ILUSTRAÇÕES Imagem 1 – Como funciona a chave simétrica 11 Imagem 2 – Como funciona a chave assimétrica 12 Imagem 3 - Como funciona a Cifra de César 15 Imagem 4 - Alfabeto cifrado deslocado em um determinado número de casas 16 Imagem 5 – Sistema ROT13 16 5 SUMÁRIO 1. INTRODUÇÃO................................................................................................. 7 2. CRIPTOGRAFIA.............................................................................................. 9 2.1 Noções Básicas........................................................................................... 9 3. TÉCNICAS DE CRIPTOGRAFIA MAIS UTILIZADAS.................................... 11 3.1 Chaves Simétricas....................................................................................... 11 3.2 Chaves Assimétricas................................................................................... 12 3.3 Redes Sem Fio............................................................................................. 13 3.4 Assinatura Digital........................................................................................ 13 3.5 Criptografia Quântica.................................................................................. 14 4. CIFRA DE CÉSAR.......................................................................................... 15 4.1 Estruturação, conceitos e fundamentação............................................... 15 4.2 Caracterizações da cifra.............................................................................. 17 4.3 Benefícios..................................................................................................... 17 4.4 Aplicações que fazem/fizeram uso da técnica.......................................... 18 4.5 Discussão Comparativa.............................................................................. 18 4.6 Vulnerabilidades e falhas............................................................................ 18 4.7 Melhorias...................................................................................................... 19 4.8 Interdisciplinaridade envolvida................................................................. 19 5. PROJETO DO PROGRAMA........................................................................... 21 6. RELATÓRIO COM AS LINHAS DE CÓDIGO DO PROGRAMA.................... 22 6.1 Linhas de código do programa da Cifra de César.................................... 22 6.2 Linhas de código do programa de gerador de chave.............................. 26 7. APRESENTAÇÃO DO PROGRAMA EM FUNCIONAMENTO EM UM COMPUTADOR................................................................................................... 29 BIBLIOGRAFIA................................................................................................... 32 FICHAS ATIVIDADES PRÁTICAS SUPERVISIONADAS – APS...................... 34 6 Objetivo do Trabalho Esse trabalho tem como objetivo apresentar o conceito geral de Criptografia e sobre a Cifra de César, assim como um pouco da sua história desde às mensagens em código nos papéis, usadas para troca de informações em épocas de guerra, e a sua evolução até a era da criptografia digital utilizada em massa recentemente, dado o fato de que a necessidade de proteger informações só aumenta devido ao avanço da tecnologia, o que também acarreta na evolução dos meios para a prática de atos ilícitos por meio do computador. 7 1. INTRODUÇÃO A criptografia é uma das maneiras mais utilizadas para proteger informações sigilosas de acessos não autorizados. Sendo realizada pela cifragem ou codificação de uma informação, possibilitando que somente os destinatários passam compreendê-las. Os dados codificados e decodificados pelas técnicas criptográficas, permitem que os mesmos possam ser transmitidos, armazenados e lidos sem que ocorra alterações no conteúdo ou sejam interceptados e compreendidos por atacantes. Nestas últimas décadas, com a grande expansão da internet e sua utilização em larga escala pela população, e a crescente adoção das redes de computadores pelas organizações, sejam elas comerciais ou não, passou-se a ser praticamente obrigatório a implantação de sistemas cada vez melhores com o objetivo de aumentar a segurança das transações e armazenamento das informações sigilosas. Os entusiastas e amantes de tecnologia, já estão familiarizados com a importância da segurança, principalmente por causa das notícias dos diversos ataques que grandes empresas e órgãos governamentais sofreram. Os demais usuários da internet, preocupam-se com este tema, principalmente, quando têm que acessar contas bancárias ou realizar compras em algum site. Empresas e organização, conectadas a alguma rede de computador, estão constantemente preocupadas com um eventual ataque que possa expor informações confidências. Os atacantes com o passar do tempo, estão adquirindo conhecimentos e meios cada vez mais eficazes para burlar a segurança das comunicações e ter acesso a conteúdos que deveriam ser acessados somente por pessoas autorizadas. Segurança da informação, nesta era digital e globalizada, é uma das principais preocupações dos desenvolvedores e administradores de sistemas. Ter informações violadas, pode, em muitos casos, significar a perda de credibilidade de uma empresa ou organização, e reparar o dano levará muito tempo, ou, em casosgraves, não será possível. Não importa se as informações serão transmitidas em rede ou somente armazenadas, pode-se utilizar as diversas técnicas criptográficas para 7rotege-las de ataques. Em comunicações através da rede, a criptografia tem como objetivos garantir a privacidade das informações, a não alteração dos dados e a autenticidade dos mesmos. 8 Todas as mensagens cifradas devem ser privadas, somente o remetente e o destinatário devem compreender o conteúdo da informação. Igualmente importante, é que o método de criptografia deve permitir que as mensagens possam ser assinadas. Possibilitando que a destinatário consiga confirmar o autor e verificar se a mensagem não foi alterada. As assinaturas digitais surgiram com o objetivo de sanar este problema, elas permitem que se possa verificar quem é o autor de um documento, se este é o verdadeiro e se não houve alteração no conteúdo do mesmo. Os atuais métodos criptográficos são caracterizados pela alta segurança e eficiência, utilizando uma ou mais chaves. Sendo esta última, uma sequência de caracteres, podendo ser alfanumérica e conter símbolos, assemelhando-se, neste sentido, a uma senha de login de uma conta de e-mail. Esta chave é utilizada pelos métodos criptográficos para cifrar e decifrar uma mensagem. A criptografia de chave simétrica e a criptografia de chave assimétrica, são as duas grandes subdivisões em que podem ser classificados os métodos criptográficos modernos, sendo a de chave simétrica relacionada do tema trabalhado, juntamente com a Cifra de César. 9 2. CRIPTOGRAFIA 2.1 Noções Básicas Segundo o Dicionário Michaelis, Criptografia é a arte ou processo de escrever em caracteres secretos ou em cifras; esteganografia. Em outras palavras, ela funciona como um código, sendo um método de proteção e privacidade de dados ou mensagens, possuindo um emissor e receptor, os quais são os únicos que sabem decifrar o próprio código. Tal termo surgiu a partir das palavras gregas "Kryptós" e "gráphein", que significam "oculto" e "escrever", respectivamente. Povos antigos como os espartanos e romanos fizeram uso de cifras criptográficas em suas trocas de mensagens. A história da criptografia começa há milhares de anos. Até décadas recentes, ela havia sido a história do que poderia ser chamado de criptografia clássica — isto é, de métodos de criptografia que usam caneta e papel, ou talvez auxílios mecânicos simples. No começo do século XX, a invenção de complexas máquinas mecânicas e eletro-mecânicas, tais como a máquina com rotores Enigma, utilizadas principalmente durante a Segunda Guerra Mundial, providenciou meios mais sofisticados e eficientes de encriptação; e a posterior introdução da eletrônica e computação permitiu elaborar esquemas de ainda maior complexidade, muitos completamente inadequáveis ao papel e caneta. Dentre as cifras clássicas mais conhecidas temos o scytale espartano, a de César e a de Vigenère. Atualmente, a criptografia está em todos os lugares, principalmente no mundo da internet, nos aplicativos e em diversos sistemas computacionais, os quais foram exigindo um alto uso de tecnologia e programação. Sendo assim, existem vários tipos de criptografia, sendo elas: chave simétrica e chave assimétrica, além das redes em fio, assinatura digital e da criptografia quântica. Todas dependem da aplicação e do nível de segurança exigido, mas em linhas gerais, uma critpografia de 128 bits é muito mais segura do que uma de 56 bits, por exemplo. Além disso, a criptografia tem quatro objetivos principais: Confidencialidade da mensagem: só o destinatário autorizado deve ser capaz de extrair o conteúdo da mensagem da sua forma cifrada. Além disso, a obtenção de informação sobre o conteúdo da mensagem (como uma distribuição 10 estatística de certos caracteres) não deve ser possível, uma vez que, se o for, torna mais fácil a análise criptográfica. Integridade da mensagem: o destinatário deverá ser capaz de verificar se a mensagem foi alterada durante a transmissão. Autenticação do remetente: o destinatário deverá ser capaz de verificar que se o remetente é realmente quem diz ser. Não-repúdio ou Irretratabilidade do remetente: não deverá ser possível ao remetente negar a autoria de sua mensagem. Por meio do uso da criptografia pode-se: Proteger os dados sigilosos armazenados no computador; Criar uma área específica no computador, na qual todas as informações que forem lá gravadas serão automaticamente criptografadas; Proteger backups contra acesso indevido, principalmente aqueles enviados para áreas de armazenamento externo de mídias; Proteger as comunicações realizadas pela Internet, como os e- mails enviados/recebidos e as transações bancárias e comerciais realizadas. Por fim, entende-se que a criptografia sempre estará presente em tudo que o ser humano faz ou está a volta, permitindo o surgimento de novas criações, propagando tecnologia e benefícios ao mundo. 11 3. TÉCNICAS DE CRIPTOGRAFIA MAIS UTILIZADAS Criptografia, é, resumindo, o uso de técnicas para transformar texto ou dados legíveis em informação ilegível, que não possa ser compreendida. E com o passar dos anos, a criptografia foi ganhando os mais diferentes tipos de dificuldade, sempre com o objetivo de transmitir informações de maneira segura. Hoje, existem inúmeros algoritmos que realizam a criptografia para tentar esconder os dados de um acesso público. Basicamente, existem dois tipos de chaves que são usadas no processo de criptografia digital: simétricas e assimétricas. 3.1 Chaves Simétricas Imagem 1 – Como funciona a chave simétrica Fonte: Cifras Simétricas, 2017. Também chamada de encriptação convencional ou de chave única, funciona da seguinte maneira: a mesma chave é utilizada tanto pelo emissor quanto por quem recebe a informação. Ou seja, a mesma chave é utilizada para codificação e para a decodificação dos dados. Não é recomendado seu uso para guardar informações muito importantes, mas sabe-se que era o único tipo em uso antes do desenvolvimento da encriptação por chave pública na década de 1970. Esse continua sendo de longe o mais usado dos dois tipos de encriptação ou chave. Alguns exemplos são: DES (Data Encryption Standard): Criado em 1977 pela IBM, é considerado inseguro devido a suas chaves de 56-bits (permite até 72 quatrilhões de combinações). Foi quebrado utilizando o método de “força bruta” (tentativa e erro); 12 IDEA (International Data Encryption Algorithm): Criado em 1991 por James Massey e Xuejia Lai. Utiliza chaves 128-bits e possui estrutura parecida com a do DES; RC (Ron's Code ou Rivest Cipher): Existem diferentes versões do algoritmo, como a RC4, RC5 e RC6, todas criadas por Ron Rivest na empresa RSA Data Security. Muito utilizado em e-mails, usa chaves de 8 a 1024 bits. Blowfish: Desenvolvido em 1993 por Bruce Schneier, utiliza chaves de 32 a 448-bits. O algoritmo não é patenteado, tem sua licença grátis e está à disposição de todos. Existem ainda outros algoritmos, como o AES (Advanced Encryption Standard), baseado no DES; 3DES; o Twofish. Porém, além dos exemplos citados acima, há criptografias mais antigas e que continuam sendo abordadas atualmente por sua facilidade, como a Cifra de César, a qual o trabalho tem foco e funciona como uma cifra de substituição criada por Júlio César há muitos anos, apesar de que o uso de chaves simétricas tem desvantagens, e não é indicado para casos queenvolvem informações muito valiosas. 3.2 Chaves assimétricas Imagem 2 – Como funciona a chave assimétrica Fonte: Google Imagens, 2017. 13 Trabalha com duas chaves: uma privada e outra pública. Alguém deve criar uma chave de codificação e enviá-la a quem for lhe mandar informações. Essa é a chave pública. Outra chave deve ser criada para a decodificação. Esta, a chave privada, é secreta. Alguns exemplos que utilizam esse tipo de criptografia: El Gamal: Criado pelo estudioso de criptografia egípcio Taher Elgamal em 1984. Utiliza o problema “logaritmo discreto” para segurança. RSA (Rivest, Shamir and Adleman): Criado por três professores do MIT, é um dos algoritmos mais usados e bem-sucedidos. Utiliza dois números primos multiplicados para se obter um terceiro valor. A chave privada são os números multiplicados e a chave pública é o valor obtido. Utilizada em sites de compra e em mensagens de e-mail. 3.3 Redes sem fio As senhas da rede sem fio são criptografadas de forma a permitir a navegação somente para quem informar a senha correta. Porém, abriram uma grande possibilidade de interceptação de dados e roubo de conexões. Exemplos de técnicas mais usadas na criptografia de redes wireless: WEP: Utiliza o algoritmo RC4 e uma chave secreta compartilhada. A chave deve ser a mesma no roteador e nas estações que se conectam a ele. Porém, se uma chave compartilhada estiver comprometida, um invasor poderá bisbilhotar o tráfego de informações ou entrar na rede. WPA e WPA2: Surgiu em 2003 de um esforço conjunto de membros da Wi-Fi Aliança e de membros do IEEE, empenhados em aumentar o nível de segurança das redes wireless. A WPA fornece criptografia para empresas, e a WPA2, considerada a próxima geração de segurança sem fio, vem sendo usada por muitos órgãos governamentais em todo o mundo. 3.4 Assinatura Digital Um recurso conhecido por Assinatura Digital é muito usado com chaves públicas. Trata-se de um meio que permite provar que um determinado documento 14 eletrônico é de procedência verdadeira. Quem recebe um documento assinado digitalmente usa a chave pública fornecida pelo emissor para se certificar da origem. Além disso, a chave é integrada ao documento – isso implica que qualquer alteração realizada nas informações vai invalidar o documento. 3.5 Criptografia Quântica Este tipo de codificação de informação difere dos demais métodos criptográficos porque não precisa do segredo nem do contato prévio entre as partes. A criptografia quântica permite a detecção de intrusos e é incondicionalmente segura mesmo que o intruso tenha poder computacional ilimitado. Mas o seu custo de implantação é muito elevado. Outro fato limitante para a adoção dessa técnica é a taxa de erros na transmissão dos fótons, seja por ondas de rádio ou fibra ótica. Até agora, os melhores resultados foram obtidos por meio de fibras de altíssima pureza, abrangendo uma distância de aproximadamente 70 km. 15 4. CIFRA DE CÉSAR 4.1 Estruturação, conceitos e fundamentação A Cifra de César é uma das criptografias ou algoritmos mais conhecidos no mundo, além de ter fácil interpretação e boa execução. Ela usa o que chamamos por criptografia de chave simétrica, onde a mesma chave usada para criptografar o texto é usada também para descriptografar. Surgiu em um contexto militar, na Idade Antiga (4000 a. C. a 476 a. C.) e criada inicialmente por Júlio César, líder político romano, o qual a utilizava para proteger mensagens em período de guerras ou conflitos, para que assim confundisse o seu inimigo e pudesse se comunicar com os generais ou seus aliados militares. Conhecida e nomeada como cifra de substituição, que é aquela em que as letras do texto claro são substituídas por outras letras, números ou símbolos. Se o texto claro for visto como uma sequência de bits, então a substituição envolve trocar padrões de bits de texto claro por padrões de bits de texto cifrado. A Cifra de César funciona da seguinte maneira na Linguagem C de programação: Imagem 3 – Como funciona a Cifra de César Fonte: Contabilidade Financeira, 2015. A transformação da cifra pode ser representada alinhando-se dois alfabetos: o cifrado é o alfabeto normal rotacionando à direita ou esquerda um número fixo de posições. Por exemplo, esta cifra de César está usando uma rotação à esquerda de 3 posições (o parâmetro de troca, 3 neste caso, é usado como chave e deve ser transmitido por um canal seguro). 16 Normal:ABCDEFGHIJKLMNOPQRSTUVWXYZ Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC Outro exemplo, aplicando a cifra em uma frase curta: Imagem 4 - Alfabeto cifrado deslocado em um determinado número de casas Fonte: Ufscar, 2010. Além disso, a Cifra de César é incorporada a outras cifras mais complexas, como a de Vigenère. E ainda possui sua utilização também dentro do sistema do ROT13, representado abaixo. Imagem 5 – Sistema ROT13 Fonte: Google Imagens, 2017. 17 4.2 Caraterizações da cifra Origem: Usada pelo imperador romano Júlio César em 50 a.C.; Classe: Substituição Simples; Tipo: monoalfabética, pois utiliza apenas uma tabela de substituição, que contém os caracteres que serão utilizados na substituição e os caracteres que serão substituídos. Esta tabela também é chamada de cifrante ou alfabeto cifrante e monogrâmica, pois trata cada um dos caracteres separadamente; Segurança: Baixa; Uso: Aplicável apenas em textos muito curtos; Criptoanálise: é baseada na característica estatística da língua e é suficiente para decifrar o texto. 4.3 Benefícios Facilidade para mostrar como funciona a criptografia de modo geral; Chaves simples geram textos cifrados; Facilidade para ensinar os conceitos básicos de criptografia; Algoritmos e velocidade de cifragem ou decifragem rápidos, sendo que o símbolo pode ser transformado assim que recebido pelo algoritmo, não tendo que esperar os outros símbolos; Facilidade de implementação de hardware por fazer uso de chaves simétricas; 18 Simplicidade para o desenvolvimento de softwares de criptografia; Baixa propagação de erros. 4.4 Aplicações que fazem/fizeram uso da técnica A Cifra de César foi utilizada usada pelo Império Romano para enganar seus inimigos e por líderes militares por centenas de anos depois de César. Ela consistia em escrever frases com o alfabeto normal, mas usando sempre três letras adiante. Ele vigorou por algum tempo, mas perdeu a utilidade após ser “quebrado”. Com o surgimento dos meios digitais, como rádio, telefone e, posteriormente, a internet, os métodos de criptografia precisaram se tornar mais avançados a fim de serem mais eficazes. 4.5 Discussão comparativa A cifra de César é algo extremamente simples comparado aos métodos de criptografia que possuímos nos dias atuais, como por exemplo o algoritmo RSA que é muito utilizado e uma das melhores formas de se criptografar uma chave. Contudo em usos didático e para pessoas que estão entrando no mundo dos algoritmos e códigos, a cifra de César é um ótimo meio de se iniciar os estudos sobre a criptografia. Podendo a partir dela se aprofundar e entender os diversos modos de se criptografar e descriptografar um texto. 4.6 Vulnerabilidade e falhas Possui um número limitado e pequeno de chaves; Não permite o não repudio do remetente; Dificuldade de gerenciamento e transmissãode chaves; Não permite a autenticação; Pode sofrer diversos tipos de criptoanálise; Baixa difusão, ou seja, um símbolo do texto cifrado corresponde à informação de apenas um símbolo do texto claro; 19 Suscetibilidade à inserção e modificação maliciosa, entendendo-se que novos símbolos podem ser adicionados e o atacante opera com um símbolo por vez; Oferece pouca segurança. 4.7 Melhorias Com a ajuda dos computadores atuais, foi possível adicionar a técnica um número muito maior de chaves possíveis, assim como um número maior de símbolos no texto criptografado, pois agora não existem apenas letras, mas também números e caracteres especiais dentro dele, podemos também voltar pelos caracteres e não apenas avançar, fazendo com que se torne mais difícil a descriptografia através de certos tipos de criptoanálise. 4.8 Interdisciplinaridade envolvida Este trabalho envolveu diversas disciplinas estudadas ao decorrer do segundo semestre do curso de Ciência da Computação. Os conhecimentos adquiridos dentro da sala de aula e advindos dos professores foram de extrema importância para a realização deste trabalho, demonstrando características e ensinamentos de cada disciplina. A principal e que tinha foco maior foi a matéria de Linguagem de Programação Estruturada, a qual foi de extrema importância para execução do trabalho e do programa de criptografia desenvolvido. Sendo feito o uso da linguagem em C, tanto nos comandos e conceitos como até na própria lógica para ocorrer a cifragem correta da criptografia de César. Por conseguinte, a matéria de Lógica de Programação e Algoritmos foi essencial para a montagem do algoritmo a ser feito, e apesar de apresentar-se como teórica contribuiu para que o programa fosse planejado e executado logicamente, seguindo conceitos e exemplificações de estruturas, variáveis, funções e outros. Além dessas, há também a matéria de Lógica Matemática, a qual esteve presente na construção do algoritmo. Sua principal ligação é quando utiliza-se as estruturas de decisão ou laços de repetição (para, enquanto, se/senão, etc) relacionadas com a tabela verdade. 20 Outra, não menos importante, é a matéria de Circuitos Digitais, em que é visto e relacionado ao trabalho os números binários com a memória ou bits utilizados dentro de um computador para fazer, executar e compilar o programa, além das portas lógicas, para o funcionamento de tudo. E por fim, há a matéria de Comunicação e Expressão, que esteve presente em todo o trabalho, colaborando na escrita, na argumentação, descrição e apresentação do que foi dissertado, além de ajudar a complementar e escrever corretamente o código. Dessa forma, entendemos o quanto cada disciplina está presente no curso que escolhemos e na nossa profissão do futuro, além do próprio tema agregar muito conhecimento extra. 21 5. PROJETO DO PROGRAMA O desenvolvimento do programa foi feito definindo-se o que seria feito e um certo pré-planejamento do que seria o programa, antes de tudo ser executado. Depois de tudo colocado em prática, o programa irá cifrar uma mensagem utilizando a Cifra de César. Primeiramente, aparecerá as opções que o usuário deseja, sendo elas: Criptografar, Descriptografar e Sair. Após, o usuário apresentar a opção desejada, será requisitado uma chave, podendo ser uma palavra ou frase. Tal chave funciona e se apresenta da seguinte maneira: 22 Para demonstrar como funciona essa chave, foi criado um programa que funciona como um gerador de chave do programa. Colocamos como chave a palavra APS. Através da Tabela ASCII, tem-se a quantidade de caracteres de cada letra, e logo após é feito a soma de caracteres da palavra, ocorrendo uma divisão dessa soma pelo tamanho da chave multiplicado por 10. O resto da divisão é a chave. Caso esse resto for um valor grande, ele é dividido até chegar em um número apenas. Após explicado como funciona a chave, há o programa a ser executado, sendo que após colocada essa chave (APS), pede-se o texto a ser criptografado (no programa, esse texto é: “CRIPTOGRAFIA E CIFRA DE CESAR”). Depois, é apresentado o texto criptografado (“L[RY]XP[JORJ)N)J)LRO[J)MN)LN\J[“). Sendo assim, é necessário descriptografar o texto, colocando-se novamente a chave e escrevendo o texto criptografado, voltando a mostrar o texto claro e, antes de ser criptografado, novamente. Por fim, pode ser inserido o número zero para sair do programa e finalizá-lo. 6. RELATÓRIO COM AS LINHAS DE CÓDIGO DO PROGRAMA 6.1 Linhas de código do programa da Cifra de César #include <stdio.h> 23 #include <conio.h> #include <locale.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <windows.h> int GerarChave(char *chave){ int shift,tamanho; tamanho=strlen(chave)*10; for(int i=0; i < strlen(chave); i++){ shift += chave[i]; } shift = shift%tamanho; //shift/=ceil(shift/10.0); if(shift<10) shift=shift; else if(shift>10&&shift<20) shift/=2; else if(shift>=20&&shift<30) shift/=3; else if(shift>=30&&shift<40) shift/=4; else if(shift>=40&&shift<50) shift/=5; else if(shift>=50&&shift<60) shift/=6; else if(shift>=60&&shift<70) shift/=7; else if(shift>=70&&shift<80) 24 shift/=8; else if(shift>=80&&shift<90) shift/=9; else shift/=10; return shift; } void Criptografar(char *string, char *result, int shift){ for(int i=0; i < strlen(string); i++){ result[i] = string[i] + shift; } } void Descriptografar(char *string, char *result, int shift){ for(int i=0; i < strlen(string); i++){ result[i] = string[i] - shift; } } int main(){ setlocale(LC_ALL,"portuguese"); int menu, deslocamento, repetir=1; char input[128], output[128], chave[128]; while(repetir){ system("cls"); printf("Selecione a opção desejada:\n> 1 - Criptografar\n> 2 - Descriptografar\n> 0 - Sair\n>>> "); 25 scanf("%d", &menu); getchar(); if (menu==0){ repetir=0; break; } else if (menu == 1 || menu == 2){ system("cls"); printf("Informe a chave a ser utilizada:\n>>> "); scanf("%[^\n]", &chave); getchar(); deslocamento = GerarChave(chave); } switch(menu){ case 1: printf("\nInforme o texto a ser criptografado:\n>>> "); scanf("%[^\n]", input); getchar(); Criptografar(input, output, deslocamento); printf("\nO texto criptografado é:\n> %s \n", output); break; case 2: printf("\nInforme o texto a ser descriptografado:\n>>> "); scanf("%[^\n]", input); getchar(); Descriptografar(input, output, deslocamento); printf("\nO texto descriptografado é:\n> %s \n", output); break; default: printf("Opção inválida!\n"); 26 } printf("\nPressione alguma tecla para continuar..."); getch(); } printf ("\nAté mais... :D"); return 0; } 6.2 Linhas de código do programa de gerador de chave #include <stdio.h> #include <conio.h> #include <locale.h> #include <string.h> #include <stdlib.h> #include <windows.h> void criptografar(){ int chavecri; int tamanho; char chave[128]; fflush(stdin); printf("Informe a chave para criptografia: "); gets(chave);printf("\n"); 27 for(int i=0; i<strlen(chave); i++){ printf("%c - %i \n", chave[i], chave[i]); chavecri+=chave[i]; } printf("\nA soma dos caracteres da chave é: %i \n", chavecri); tamanho = strlen(chave)*10; printf("\nO tamanho da chave multiplicado por 10 é: %i \n", tamanho); chavecri = chavecri%tamanho; printf("\nO resto da divisão entre a soma dos caracteres da chave e 10x seu tamanho é: %i \n", chavecri); printf("\nComo a possibilidade do valor ser alto, ele é dividido pela casa da sua próxima dezena. \n"); if(chavecri<10) chavecri=chavecri; else if(chavecri>10&&chavecri<20) chavecri/=2; else if(chavecri>=20&&chavecri<30) chavecri/=3; else if(chavecri>=30&&chavecri<40) chavecri/=4; else if(chavecri>=40&&chavecri<50) chavecri/=5; else if(chavecri>=50&&chavecri<60) chavecri/=6; else if(chavecri>=60&&chavecri<70) 28 chavecri/=7; else if(chavecri>=70&&chavecri<80) chavecri/=8; else if(chavecri>=80&&chavecri<90) chavecri/=9; else chavecri/=10; printf("\nPor fim, obtém-se o valor da chave: %i \n", chavecri); } int main(){ int menu, cod; int ExecNov; setlocale(LC_ALL,"portuguese"); do{ system("cls"); criptografar(); ExecNov = MessageBox(0,"Executar Novamente?","",MB_YESNO|MB_ICONQUESTION); }while(ExecNov == IDYES); getch(); } 29 7. APRESENTAÇÃO DO PROGRAMA EM FUNCIONAMENTO EM UM COMPUTADOR 30 31 32 BIBLIOGRAFIA ANDRADE, Éder. História da Criptografia. Disponível em: < http://www.dsc.ufcg.edu.br/~pet/jornal/abril2014/materias/historia_da_computacao.ht ml>. Acesso em: 4 de novembro de 2017. CIFRAS SIMÉTRICAS. Técnicas clássicas de encriptação. Disponível em: < http://wiki.stoa.usp.br/images/c/cf/Stallings-cap2e3.pdf>. Acesso em: 4 de novembro de 2017. CONTABILIDADE FINANCEIRA. Cifra de César. Disponível em: < http://www.contabilidade-financeira.com/2015/02/cifra-de-cesar.html>. Acesso em: 4 de novembro de 2017. CRIPTOGRAMA: OS CONTOS DA CRYPTO. História da Criptografia – Cifras e Códigos. Disponível em: < http://cryptograma.blogspot.com.br/2015/06/historia-da- criptografia-cifras-e.html>. Acesso em: 4 de novembro de 2017. CRYPTO ID. Uma breve história sobre criptografia. Disponível em: <https://cryptoid.com.br/banco-de-noticias/a-historia-da-criptografia/>. Acesso em: 5 de novembro de 2017. DOS REIS, Fábio. Criptografia – Cifra de César. Disponível em: < http://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-cesar/>. Acesso em: 4 de novembro de 2017. GARRETT, Felipe (TechTudo). O que é criptografia? Disponível em: < http://www.techtudo.com.br/artigos/noticia/2012/06/o-que-e-criptografia.html>. Acesso em: 4 de novembro de 2017. GONZÁLES. Daniela. Conheça os tipos de criptografia mais utilizados. Disponível em: <http://idgnow.com.br/seguranca/2007/10/05/idgnoticia.2007-10- 05.1318584961/>. Acesso em: 5 de novembro de 2017. 33 ROMAGNOLO, César Augusto (Oficina da Net). O que é criptografia? Disponível em: < https://www.oficinadanet.com.br/artigo/443/o_que_e_criptografia>. Acesso em: 4 de novembro de 2017. SCHUNCKE, Alex (Oficina da Net). Quais os principais tipos de criptografia? Disponível em: <https://www.oficinadanet.com.br/post/9424-quais-os-principais-tipos- de-criptografia>. Acesso em: 5 de novembro de 2017. SEABRA, Diego Felipe Silveira. Criptologia: uma abordagem histórica e matemática. Disponível em: < https://www.dm.ufscar.br/dm/index.php/component/attachments/download/2257>. Acesso em: 4 de novembro de 2017. SERAFIM, Vinícius da Silveira. Introdução à Criptografia: Cifras de Fluxo e Cifras de Bloco. Disponível em: < http://www.serafim.eti.br/academia/recursos/Roteiro_05- Cifras_de_Fluxo_e_Bloco.pdf>. Acesso em: 4 de novembro de 2017. WIKIPEDIA. Criptografia. Disponível em: <https://pt.wikipedia.org/wiki/Criptografia>. Acesso em: 5 de novembro de 2017. 34 FICHAS ATIVIDADES PRÁTICAS SUPERVISIONADAS – APS 35 36 37 38 39 3.3 Redes sem fio Normal:ABCDEFGHIJKLMNOPQRSTUVWXYZ Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC 4.3 Benefícios
Compartilhar