Buscar

APS - UNIP CRIPTOGRAFIA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE PAULISTA – UNIP 
CIÊNCIA DA COMPUTAÇÃO 
 
 
 
 
 
 
 
 
 
 
CRIPTOGRAFIA DE SUBSTITUIÇÃO 
 
 
GABRIEL NOGUEIRA SHIOTA R.A N181842 
IGOR CORREIA SOARES R.A N1399C-4 
IGOR HENRIQUE GOMES R.A D42IIH-4 
JUAN PAULO PINTO RODRÍGUEZ R.A T2796J-4 
PAULO CESAR NUNES DA SILVA R.A N175BG-9 
 
 
 
 
 
SÃO PAULO – SP 
2017 
 
 
UNIVERSIDADE PAULISTA – UNIP 
CIÊNCIA DA COMPUTAÇÃO 
 
 
 
 
 
CRIPTOGRAFIA DE SUBSTITUIÇÃO 
 
 
 
 
Atividade Pratica Supervisionada tem como 
proposta informar que criptografia são 
conceitos técnicos usados para codificar 
uma informação, de tal forma que somente 
o seu destinatário e o emissor da mensagem 
consigam acessá-la orientado pelo prof. 
Roberto Leminsk. 
 
 
 
 
 
 
 
 
SÃO PAULO – SP 
2017 
 
 
SUMÁRIO 
 
3 OBJETIVO DO TRABALHO ................................................................................... 5 
4 INTRODUÇÃO ........................................................................................................ 6 
5 CRIPTOGRAFIA: CONCEITOS GERAIS ............................................................... 8 
6 TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS E CONHECIDAS............... 11 
6.1 Cifra de César .................................................................................................... 11 
6.2 Crifra de Vigenère .............................................................................................. 12 
6.2.1 Funcionamento da cifra ................................................................................... 12 
6.3 Enigma ............................................................................................................... 13 
6.4 Criptografia Simétrica ......................................................................................... 14 
6.5 Criptografia Assimétrica...................................................................................... 15 
6.6 Criptografia nas redes sem fio ............................................................................ 18 
6.7 WEP ( Wired Equivalent Privacy) ....................................................................... 18 
6.8 WPA e WPA2 ..................................................................................................... 19 
6.9 Assinatura digital ................................................................................................ 19 
6.10 Criptografia quântica......................................................................................... 20 
6.11 Monogrâmicas .................................................................................................. 20 
6.12 Poligrâmicas ..................................................................................................... 21 
6.13 Homofônicas ..................................................................................................... 21 
6.14 Tomográficas .................................................................................................... 21 
6.15 Criptografia Hash .............................................................................................. 21 
6.16 Combinaçâo dos tipos ...................................................................................... 22 
7 DISSERTAÇÃO .................................................................................................... 23 
7.1 Estruturação, conceitos e fundamentação.......................................................... 23 
7.2 Benefícios em relação às técnicas anteriores. ................................................... 24 
7.3 Aplicações que fazem ou fizeram uso da técnica. .............................................. 26 
7.4 Discussão comparativa entre esta técnica e outras conhecidas ........................ 27 
7.5 Vulnerabilidades e falhas .................................................................................... 27 
7.6 Melhorias propostas e/ou implementadas .......................................................... 28 
8 PROJETO DO PROGRAMA ................................................................................. 29 
9 RELATÓRIO DE LINHAS DE CÓDIGOS ............................................................. 33 
10 APRESENTAÇÃO DO PROGRAMA .................................................................. 35 
BIBLIOGRAFIA ................................................................................................... 36 
FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS .............................. 37 
 
 
 
 
 
LISTA DE ILUSTRAÇÕES 
 
Imagem 1 - Esteganografia ........................................................................................ 8 
Imagem 2 - Criptografia por transposição .................................................................. 9 
Imagem 3 - Criptografia por substituição .................................................................. 10 
Imagem 4 - Criptografia de César ............................................................................ 11 
Imagem 5 - Exemplo aplicando criptografia de César .............................................. 12 
Imagem 6 - Régua de Saint-Cyr ............................................................................... 13 
Imagem 7 - Máquina Enigma e 3 rotores usados para criptografar .......................... 14 
Imagem 8 - Linhas de código incrementam a posição ............................................. 23 
Imagem 9 - Linhas de código que calculam a posição inicial ................................... 24 
Imagem 10 - Frequência de caracteres na língua portuguesa ................................. 25 
Imagem 11 - Texto criptografado pelo programa desenvolvido ................................ 25 
Imagem 12 – Sequência de execução do programa de criptografia ......................... 30 
Imagem 13 – Linha de código para inserção do texto claro em vetor ...................... 30 
Imagem 14 – Fragmento da tabela ASCII ................................................................ 31 
Imagem 15 – Linhas de código que apresentam o texto decodificado ..................... 32 
Imagem 16 – Programa em execução solicitando texto para criptografar ................ 35 
Imagem 17 - Programa em execução apresentando texto criptografado ................. 35 
Imagem 18 - Programa em execução apresentando texto decodificado .................. 35 
5 
 
3 OBJETIVO DO TRABALHO 
 
 Ambientes físicos podem ser restringidos mediante barreiras físicas como 
cordões de isolamento, distanciamento de segurança e controlado por demarcações 
visíveis, vigilância constante ou uso de objetos que isolem de alguma forma aquilo 
que se quer restringir, como no exemplo de caso descrito inicialmente para 
desenvolver o presente trabalho, um navio contaminado com lixo tóxico apreendido 
deve ter o acesso controlado para evitar contaminação mediante uso de roupas 
especiais, distanciamento específico e acesso apenas por helicóptero por pessoas 
autorizadas. Porém, mesmo barreiras físicas podem tornar-se mais seguras com a 
utilização de senhas de acesso. 
 Há casos em que o controle de acesso é dirigido à informação propriamente 
dita, independentemente de como ela se apresente, fisicamente, impressa em papel, 
ou mais abstratamente no meio digital trafegando em uma rede de internet ou intranet. 
Voltado a aumentar a segurança, objetiva-se desenvolver um sistema de criptografia 
que restrinja o acesso a informações confidenciais ou até mesmo locais em que seja 
necessário o controle de acesso mediante a codificação de textos de forma que fiquem 
ocultos o significado e a escrita originais, para desenvolver o sistema de criptografia 
torna-se necessário atender a um objetivo secundário, porém não menos importante, 
de pesquisar e levantar os processos de criptografia existentes e descrever 
previamentesuas formas de implementação e possíveis falhas na proteção das 
informações. 
 
 
 
 
 
 
 
 
 
6 
 
4 INTRODUÇÃO 
 
A Criptografia moderna se ocupa muito menos de sigilo do que 
aproximadamente trinta anos atrás, quando justificava plenamente a etimologia da 
palavra criptografia, cuja origem grega significa escrita oculta. Hoje, técnicas 
criptográficas são empregadas na prevenção de incidentes de segurança. 
No decorrer deste trabalho será possível ter uma visão panorâmica de algumas 
técnicas criptográficas atuais mais importantes para a consecução de requisitos 
fundamentais da segurança da informação, como sigilo, autenticação e integridade, 
dos quais dependem, direta ou indiretamente, outros requisitos de segurança. 
Um requisito muito em voga é a disponibilidade de sistemas servidores, alvos 
constantes de ataques de negação de serviço: embora os métodos usuais para 
tratamento e recuperação de incidentes de segurança não usem técnicas 
criptográficas, protocolos de autenticação podem prevenir danos pelo abuso do 
sistema por usuários mal-intencionados. 
 O sigilo de mensagens, ou de identidades, pode ser necessário a uma 
aplicação (correio eletrônico, telefonia, mensageria em geral, compras com moeda 
eletrônica em que anonimato é desejável), ou auxiliar a consecução de outro requisito, 
como a autenticação. Por exemplo, quando um usuário faz um login, sua senha deve 
ser transmitida em sigilo, sob pena de sua captura e uso por um usuário não 
autorizado. 
A segurança da informação é um dos objetivos básicos da criptografia. A 
informação tornou-se um elemento fundamental na vida das pessoas e das empresas. 
Hoje, utiliza-se cada vez mais recursos computacionais para armazenar, produzir e 
distribuir informações. Com isso, aumenta-se também a preocupação com a 
segurança desta informação e com a vulnerabilidade dos sistemas computacionais 
que as gerenciam. 
Pode-se definir segurança em rede como o processo de prevenir e detectar 
qualquer uso não autorizado de uma rede de computadores. Prevenir tem o sentido 
de tomar medidas que impeçam ou, pelo menos, dificultem ao máximo, o acesso de 
pessoas não autorizadas (chamadas de “intrusos”) a qualquer parte de uma rede de 
computadores. 
7 
 
Detectar significa afirmar que alguém tentou acessar o sistema, como foi a 
tentativa de acesso (o chamado “ataque”), se foi ou não bem-sucedida, nesses casos 
afirmativo, é possível perceber exatamente o que o intruso fez. 
Os sistemas que aparentam despertar pouco interesse aos hackers, como os 
de uma universidade ou os domésticos ligados à internet, são constantemente alvos 
de ataques. Detectar estas investidas e os métodos utilizados é muito importante para 
uma política de segurança. 
Atualmente, a criptografia é comumente usada na internet, principalmente na 
proteção de transações financeiras, em segurança e acesso em comunicação. A 
criptografia quântica também é um tema que tem ganhado atenção nos laboratórios 
de pesquisa, ela se destaca por não correr um alto risco de interceptação ao 
necessitar de uma comunicação secreta prévia para envio de chaves, pois esta 
técnica criptográfica não se baseia em funções, mas nas leis da física. 
A criptografia, ao contrário do que muitos pensam, não é um recurso que passou a 
ser usado recentemente, mas segundo a história, vem se aprimorando desde épocas 
clássicas, iremos aprofundar no assunto no decorrer desta pesquisa. 
 
 
 
 
 
 
 
 
 
 
 
 
8 
 
5 CRIPTOGRAFIA: CONCEITOS GERAIS 
 
 Primeiramente é fundamental compreender o significado da palavra criptografia 
com origem em duas palavras gregas: cryptos, que significa oculto ou secreto e 
graphein, que significa grafia ou escrita, então o termo criptografia pode ser 
compreendido como escrita secreta ou escrita oculta, este último significado pode 
levar a algum tipo de confusão com a esteganografia como sendo uma das formas de 
critografia, apesar das palavras serem bem diferentes em português, possuem um 
significados muito similares, esteganografia é formada inicialmente pela palavra grega 
steganos, que significa esconder, camuflar ou mascarar. 
 A diferença principal entre esteganografia e criptografia está na forma ou 
sistema para tornar a mensagem oculta à leitores indesejáveis, na criptografia a 
mensagem permanece escrita de forma visível e geralmente utiliza o alfabeto corrente 
apenas transpondo ou substituindo caracteres de forma a tornar a mensagem 
indecifrável àqueles que não tenham permissão para a leitura da mensagem. Por 
outro lado, a esteganografia oculta a mensagem seja um texto ou até mesmo imagens 
em outras imagens ou sons em materiais fonográficos de forma que olhos e ouvidos 
humanos não possam perceber. 
Imagem 1 - Esteganografia 
 
Fonte: Banco Central do Brasil, 2017. 
 Outro aspecto importante a ser bem compreendido é o da classificação da 
mensagem, pois uma vez que ela será codificada se tornará em um outro tipo de 
mensagem, a mensagem escrita original, usualmente é classificada ou denominada 
como mensagem clara ou texto plano, e a mensagem resultante do processo 
criptográfico é identificada como mensagem codificada ou cifrada, já o processo de 
codificação de um texto pode ser chamado de encriptação ou cifragem. 
9 
 
É comum nas técnicas de cifragem haver a fragmentação do texto claro em 
valores unitários que são identificados como caracteres, os caracteres podem ser 
letras, números, símbolos como arroba, cifrão, entre outros, cada caractere deve ser 
transformado em um novo para evitar a quebra do código de encriptação. 
 Em consequência à criptografia ou codificação de textos desenvolveu-se a 
criptoanálise que busca decifrar mensagens, em algumas bibliografias o termo decifrar 
assume significado diferente do termo decodificar ou dedriptar, pois em um processo 
de comunicação por mensagens criptografadas, tanto o emissor quanto o receptor 
são capazes de decodificar mensagens de forma geralmente simples e pré-definida 
por conhecerem o processo que cifra a mensagem e o processo que o torna claro 
novamente, decifrar pode implicar em descobrir a cifra utilizada na codificação da 
mensagem ignorando previamente qualquer tipo de senha, chave ou fórmula utilizada 
para cifragem. 
 Existem inúmeros processos de criptografia que foram sendo desenvolvidos de 
acordo com a necessidade de obter mais segurança ou até mesmo pela quebra do 
sistema de cifragem tornando-a obsoleta, esses processos são agrupados em alguns 
tipos básicos, os mais comuns são: simétrico, assimétrico, transposição e 
substituição. 
 A criptografia por transposição consiste no deslocamento dos caracteres de um 
determinado texto claro ou plano, há diversos meios de fazer este tipo de cifra que 
foram implementados gradualmente para dificultar a quebra da cifra e serão 
abordados mais detalhadamente no capítulo sobre técnicas de criptografia. 
Imagem 2 - Criptografia por transposição 
 
Fonte: autoral 
 
As técnicas de criptografia por substituição utilizam caracteres externos ao 
texto claro ou plano, geralmente as formulas atribuem um caractere determinado para 
cada letra, o que torna esse tipo de cifra, em sua forma mais básica, um pouco mais 
simples de ser quebrada do ponto de vista da criptoanálise, isso se torna possível por 
10 
 
contagens de letras mais frequentes no idioma em que o texto claro foi escrito, por 
este motivo também foram implementadas várias técnicas para tornar a quebra da 
cifra mais difícil, essas técnicas serão vistas adiante no capítulo de técnicas de 
criptografia. 
Imagem 3 - Criptografia por substituição 
 
Fonte: autoral 
A criptografia simétrica, grosso modo, utiliza uma senha que faz com que o 
texto plano seja cifrado, a senha é única e por este motivo pode ser mais vulnerável aquebras, por outro lado, os tipos de criptografia assimétrica possuem duas chaves, 
uma chamada de pública e outra privada, a pública é compartilhada eletronicamente 
sem que haja uma preocupação de mantê-la em total segredo, já a chave privada é 
de conhecimento exclusivo de emissor e receptor obtida por cálculos matemáticos que 
serão detalhados um pouco melhor em técnicas de criptografia. 
 
 
 
 
 
 
 
 
 
 
 
 
11 
 
 
6 TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS E CONHECIDAS 
 
6.1 Cifra de César 
 
Historicamente, um dos primeiros registros que se tem de um processo de 
criptografia de textos é a chamada cifra de César, tornou-se assim conhecida por seu 
uso para comunicação entre Júlio César e seus soldados de alta patente ou políticos 
de forma que o teor das mensagens não pudesse ser compreendido caso alguém 
fizesse a interceptação delas no caminho. 
O funcionamento é bastante simples, isso porque a escrita por si só já é um 
tipo de código e na época do império romano, não era tão comum que todos soubesse 
ler e escrever como nos dias de hoje, além disso, os processos de criptoanálise para 
quebrar os códigos de cifragem forçaram a evolução das técnicas pois a cada quebra 
elas tornaram-se obsoletas e uma nova forma deveria ser criada para aumentar a 
dificuldade de descoberta do conteúdo das mensagens. 
Pode-se definir o código de cifragem como Texto Cifrado=Texto clato+3, ou 
seja, cada caractere era substituído por um correspondente no alfabeto em 3 letras 
consecutivas, conforme demonstrado na imagem a seguir, o caractere “B” foi 
substituído pelo caractere “E”. 
Imagem 4 - Criptografia de César 
 
Fonte: ZOCHIO, 2016. 
 
Além de ser considerada um tipo de cifra de substituição por usar caracteres 
externos ao texto claro para cifragem, pode ser classificada como monoalfabética ou 
12 
 
simples, pois utiliza apenas um correspondente fixo para cifrar cada caractere do texto 
claro, como se um novo alfabeto fosse usado que inicia na letra D, ou seja: 
Alfabeto claro: ABCDEFGHIJKLMNOPQRSTUVWXYZ 
Alfabeto cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC 
Imagem 5 - Exemplo aplicando criptografia de César 
 
Fonte: autoral. 
 
6.2 Crifra de Vigenère 
 
A cifra de Vigenère é uma técnica de criptografia por substituição poli alfabética 
que utiliza uma série de cifras de César diferentes, baseadas nas letras de uma 
palavra-chave. 
 
6.2.1 Funcionamento da cifra 
 
Essa cifra consiste em várias cifras de César utilizadas em sequência, com 
valores de deslocamento diferentes obtidos a partir de uma palavra-chave (uma 
espécie de "senha"). 
Entre as cifras de substituição, a cifra de Vigenère se assemelha às técnicas 
de transposição geométricas pois utiliza a distribuição de caracteres em forma de 
matriz, porém ela é pré-definida pela ordem alfabética horizontalmente e 
verticalmente, é tida como polialfabética pois o alfabeto inicia sempre em uma letra 
subsequente, além disso, assim como técnicas de transposição que usam chave 
numérica obtida por uma palavra, a cifra de Vigenère usa uma palavra ou texto chave 
posicionado horizontalmente no topo das colunas combinado ao texto claro que é 
posicionado na primeira coluna à esquerda e como num diagrama ou como 
coordenadas em um plano cartesiano a letra substituta é definida conforme pode-se 
observar na régua de Saint-Cyr adotada para facilitar na codificação e decodificação 
13 
 
de textos, um texto claro “U” é cifrado utilizando a chave “H” e como saída a letra “C”, 
o nome da cifra refere a autoria de Blaise de Vigenère nascido em 1523, há registros 
de que sua cifra tenha sido quebrada somente em 1854 pelo matemático Charles 
Babbage, porém nenhum documento oficial foi publicado para notificar a quebra da 
cifra, somente em 1863 tal registro foi formalmente registrado por Kaisiski. 
Imagem 6 - Régua de Saint-Cyr 
 
Fonte: Ufscar, 2017. 
 
6.3 Enigma 
 
 Enigma é uma máquina desenvolvida pelo alemão Arthur Scherbius por volta 
de 1918, a invenção teve a finalidade de criptografar mensagens com instruções para 
movimentações das tropas alemãs, locais que seriam atacados, entre outras 
14 
 
informações pertinentes para o avanço do exército nazista, foi utilizada principalmente 
durante a segunda guerra mundial. 
 O sistema de cifra, que pode ser classificado como de substituição, 
proporcionou grande segurança à criptografia pelo número de variações possíveis 
provenientes dos rotores que se movimentavam simultaneamente a cada letra 
digitada em seu teclado similar ao de uma máquina de escrever, um modelo de 3 
rotores poderia ser ajustado em cerca de 1,07*10^23 maneiras diferentes, algo 
comparável com uma chave de 77bits (ZOCHIO, 2016, p.43), para quebrar a 
criptografia e tentar barrar o progresso dos nazistas, o exército inglês recrutou uma 
equipe de matemáticos e linguistas e resultou no desenvolvimento da máquina 
conhecida como a Bomba de Turing, Alan Turing e Gordon Welchman foram os 
responsáveis pela construção da máquina e também pela forma de operação de modo 
a decriptar os textos alemães que tinham a troca de senha diariamente. 
Imagem 7 - Máquina Enigma e 3 rotores usados para criptografar 
 
Fonte: Enigma, 2017. 
 
6.4 Criptografia Simétrica 
 
Desde a década de 70 já eram utilizadas técnicas de criptografia simétricas, a 
principal característica dessas técnicas é a utilização de uma mesma chave para 
15 
 
criptografar e para decodificar, seu tamanho é determinado em bits e quanto mais bits, 
maior a possibilidade de combinações e segurança, uma chave de 3 bits tem 2^3 
combinações possíveis, ou seja, 8 combinações possíveis, desta forma, uma chave 
de 128 bits pode ter milhões e milhões de combinações. 
DES é uma das cifras simétricas mais usadas e conhecidas e foi desenvolvida 
com base na cifra de Feistel que dividia caracteres no formato binário em duas partes 
R e L, desta forma a cifra DES trabalha alterando os caracteres na forma binária em 
grupos de 64 bits utilizando bits verificadores em cada um dos 8 bytes gerando uma 
chave de 56 bits. 
Mesmo com todo o processo para elaborar as chaves e também o tamanho em 
bits gerando as combinações, a substituição é feita de forma monoalfabética e as 
chaves são iguais para cifrar e decodificar, o que contribuiu para que com o auxílio de 
computação em grande escala possa quebrar a cifra por tentativa e erro. 
 
6.5 Criptografia Assimétrica 
 
 A principal característica de funcionamento da criptografia assimétrica é a 
utilização de uma chave pública para fazer a cifragem e outra privada para fazer a 
decodificação, resumidamente, essas chaves são relacionadas por operações 
matemáticas que tornam possível a utilização de números diferentes não 
compartilhados publicamente, que por meio dessas operações matemáticas 
compartilhadas publicamente, geram uma chave única em comum para emissor e 
receptor, tal chave torna-se privada pois ela insere os números privados escolhidos 
por emissor e receptor nas operações matemáticas compartilhadas publicamente 
gerando um novo número comum para os dois sem que emissor conheça o número 
inserido pelo receptor nas operações matemáticas e vice e versa, o algoritmo inicial 
utilizando esse sistema foi desenvolvido Whitfield Diffie e Martin Hellman (ZOCHIO, 
2016, p.111) e é conhecido como algoritmo de Diffie-Hellman. 
 De forma simplificada, as operações matemáticas são potência e módulo em 
uma fórmula de ((base^potência)mod(módulo), os passos para se obter uma chave 
privada por meio do algoritmo Diffie-Hellman podem ser compreendidos com o uso de 
números pequenos conforme a seguir: 
16 
 
1 – Emissor e receptor escolhem publicamente números primos base=3 e módulo=7; 
2 – Emissor escolhe um número secreto que nem mesmo o receptor saiba que é 
usado para a potênciae efetuar o cálculo e enviar o resultado que é o resto da divisão 
ao receptor. Potência=4. Então 3^4mod7=4. 
3 – Receptor também escolhe um número secreto para usá-lo como potência e realizar 
o cálculo na mesma fórmula básica para ser enviado ao emissor. Potência=11. Então 
3^11mod7=5. 
4 – Emissor utiliza o número enviado pelo receptor na mesma fórmula, porém 
substituindo a base pelo número enviado pelo emissor, ou seja, 5^4mod7=2. 
5 – Receptor utiliza o número enviado pelo emissor na mesma fórmula, porém 
substituindo a base pelo número enviado pelo receptor, ou seja, 4^11mod7=2. 
No final do processo do algoritmo Diffie-Hellman, a chave privada comum para 
emissor e receptor cifrarem e decodificarem mensagens é 2, este método serviu de 
fundamento para que, por volta de 1976, R.S. Rivest, A. Shamir e L. Adleman 
(COUTINHO, 2005, p.3) desenvolvessem, no Instituto de Tecnologia de 
Massachusetts (MIT), o algoritmo RSA que tem o nome formado pelas iniciais de seus 
desenvolvedores. 
Os passos envolvendo operações matemáticas são um pouco mais complexos que 
no algoritmo Diffie-Hellman, mas é possível que uma chave pública seja distribuída 
para cifragem de mensagens e a chave que decodifica as mensagens, que é privada, 
é diferente da pública, o que pode tornar a criptografia mais segura. 
Assim como no algoritmo de Diffie-Helmman, são utilizados números primos, para 
ilustrar os passos serão utilizados números pequenos, mas quanto maiores os 
números escolhidos para compor as chaves, maior a segurança pois para que seja 
descoberta a chave privada o número de combinações é muito maior, a seguir os 
passos resumidos para obter as chaves pública e privada pelo algoritmo RSA: 
1 – Com dois números primos iniciais é calculada a chave pública, primeiramente o 
que será usado como módulo que será representado neste exemplo pela letra M, 
como já foi dito anteriormente, quanto maiores os números, mais segurança a chave 
terá, neste caso os números serão A=3 e B=7, números primos pequenos apenas 
para ilustrar os passos e facilitar os cálculos. 
17 
 
M = A*B --- M = 3*7 --- M=21 
2 – Em seguida é calculada a potência que comporá a chave pública, como a chave 
privada usará um valor diferente como potência, serão diferenciadas P1 e P2 para as 
chaves pública e privada respectivamente, para calcular P1 é necessário fatorar um 
número obtido pelo produto entre A-1 e B-1 ou seja (3-1 e 7-1) que é 12. 
12 = 2*2*3 
Para se definir um número para P1 de forma que M=21 e P1 sejam primos entre si, 
ou seja, P1 não necessariamente deve ser primo, mas deve-se evitar que seja divisível 
por 2 ou 3, então P1=17. 
3 – Para se definir a potência da chave privada (P2) deve-se primeiro encontrar o 
máximo divisor comum entre (A-1*B-1) e P1 analisando o resto para que 
posteriormente aplique-se no algoritmo estendido de Euclides. 
P1/(A-1*B-1) 
17/12 = 1 --- resto 5; 
12/5 = 2 --- resto 2; 
5/2 = 2 --- resto 1; 
2/1 = 2 --- resto 0; 
Aplicando o resto no algoritmo estendido de Euclides 
5 = (1*17) – (1*12) 
2 = (1*12) – (2*5) 
1 = (1*5) – (2*2) || (1*5) – 2*((1*12) + (2*5)) || (1*5) – (2*12) + (4*5) || (5*5) – (2*12) 
P2 = 5 
Chave Pública – M=21 e P1=17 
Chave Privada – M=21 e P2=5 
4 – Para que a mensagem seja cifrada utiliza-se a chave pública, digamos que um 
texto seja cadastrado em um vetor e corresponda a 2 e um outro a 11, o caractere 
cadastrado na posição 2 poderá ser substituído pelo cadastrado na posição 11, o 
18 
 
mesmo pode ser aplicado utilizando a tabela ASCII convertendo cada caractere do 
texto claro por um valor decimal e aplicando-o à fórmula para criptografá-lo utilizando 
o resultado decimal para localizar o correspondente na tabela ASCII. 
Texto Cifrado = 2^17 mod21 = 11 
Texto Decodificado = 11^5 mod21 = 2 
 Uma característica relevante e diferencial do algoritmo RSA em relação às 
técnicas de substituição com uma fórmula fixa que relaciona um caractere a outro é 
que a modularidade pode relacionar números diferentes a um número resultante igual, 
por exemplo: 49 (mod 21) = 7 e 70 (mod 21) = 7, nesse caso dois caracteres 
correspondentes aos valores decimais 49 e 70 seriam substituídos pelo novo 
caractere correspondente a 7. 
 
6.6 Criptografia nas redes sem fio 
 
Com o avanço da internet e das conexões das redes surgiu a necessidade de 
desenvolvimento de mecanismos de segurança que atendessem aos novos desafios, 
uma rede com fios, se comparada a uma rede sem fios, é mais segura pois sua 
conexão à LAN (ponto de acesso à rede), que anteriormente eram feitas em 
roteadores com conexões por cabo, atualmente são acessados por ondas em 
equipamentos que combinam modem e roteador por wi-fi, ou seja, por frequências de 
ondas e não por cabo, é exatamente neste ponto que foi aberta uma porta 
aparentemente sem muito controle para qualquer tipo de ataque, pois qualquer um 
com acesso à frequência de conexão wi-fi pode interceptar o tráfego das informações 
sem um mecanismo de segurança que previna esse tipo de ação. 
 
6.7 WEP ( Wired Equivalent Privacy) 
 
Essa técnica usa chave secreta compartilhada e o algoritmo de criptografia 
RC4. O roteador wireless ou ponto de acesso, bem como todas as estações que se 
conectam a ele devem usar a mesma chave compartilhada. 
19 
 
Basicamente o sistema envolve um “desafio” (STALLINGS, 2015, p.463) que 
implica na troca de informações ou pacotes entre o ponto de acesso e o equipamento 
que deseja se conectar à rede wi-fi, este equipamento, que pode ser um notebook, 
desktop, celular, tablet, entre outros, solicita a conexão por meio de autenticação que 
por sua vez recebe uma chave de 128 bits do equipamento de ponto de acesso, essa 
chave é um texto claro que deve ser devolvido ao ponto de acesso como um texto 
cifrado, o ponto de acesso confere se a chave (texto claro) foi devidamente encriptada 
fazendo a decodificação e comparando com o texto claro enviado ao equipamento 
que solicita a conexão, se estiverem iguais a conexão é liberada. 
Embora soluções como a combinação das chaves com os endereços dos 
equipamentos de ponto de acesso e do usuário tenham aumentado a segurança, o 
fato de a chave usar apenas 128 bits e os avanços subsequentes da computação a 
tornaram pouco segura, o que levou ao desenvolvimento da WPA e WPA2. 
 
6.8 WPA e WPA2 
 
Esses dois certificados de segurança são baseados no padrão da Wi-Fi Alliance 
para redes locais sem fio e utilizados por muitas empresas e até em redes domésticas. 
Eles permitem autenticação mútua para verificação de usuários individuais e 
criptografia avançada. A WPA fornece criptografia para empresas, e a WPA2 – 
considerada a próxima geração de segurança Wi-Fi, vem sendo usada por muitos 
órgãos governamentais em todo o mundo. 
 
6.9 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 
eletrônico é de procedência verdadeira. 
A pessoa que recebe um documento assinado digitalmente usa a chave pública 
fornecida pelo emissor para se certificar da origem. Além disso, a chave é integrada 
20 
 
ao documento, isso implica que qualquer alteração realizada nas Informações vai 
invalidar o documento. 
 
6.10 Criptografia quântica 
 
Tem se apresentado como uma técnica criptográfica inquebrável devido a seu 
tipo de implementação baseada na mecânica quântica e a viabilidade de troca de 
chaves secretas sem contato prévio entre emissor e receptor. 
As características provenientes da mecânica quântica são em relação ao 
fenômeno de polarização da luz e a análise dos fótons que a compõem, essa análise 
consiste no posicionamento da polarização dos fótons e a leitura deles entre emissor 
e receptor, a polarização é feita em ângulose a leitura também, ambos podem 
coincidir ou não, porém, quando há uma angulação de diferença próxima de 45 graus 
pode ser que o fóton passe ou não passe pelo filtro de leitura, então ele é 
desconsiderado na geração das chaves, são considerados apenas os que tenham 
angulação consideradas iguais ou diferentes, as iguais assumem valor 1 e as 
diferentes assumem valor 0, a segurança pode ser conferida também pela publicação 
dos resultados, o receptor dos fótons publica o grau da leitura de cada fóton, desta 
forma, emissor e receptor podem gerar uma única chave sem precisar publicá-la, pois 
o emissor pode conferir pelo ângulo de leitura publicado quais foram os fótons 
corretos, incorretos e quais foram desconsiderados e obter a mesma chave que o 
receptor. 
Apesar de os estudos de implementação dessa técnica de criptografia serem 
da década de 80, ainda há problemas de infraestrutura para sua implementação em 
escala, pois o envio dos fótons gera muitos erros e depende de um tipo de fibra óptica 
de alta qualidade e custo elevado. 
 
6.11 Monogrâmicas 
 
Como cada um dos caracteres do texto claro é substituído por um outro, o 
comprimento da mensagem cifrada é igual ao comprimento da mensagem original e 
21 
 
a frequência de ocorrência das letras (números ou símbolos) do criptograma é a 
mesma que a frequência de ocorrência das letras da língua usada no texto claro. 
 
6.12 Poligrâmicas 
 
A substituição monoalfabética poligrâmica tem as mesmas características da 
substituição simples, com a diferença de que se substitui grupos de caracteres do 
texto original por um ou mais caracteres. Portanto, o comprimento da mensagem 
cifrada nem sempre é o mesmo da mensagem original. 
 
6.13 Homofônicas 
 
Na criptologia, é uma cifra que substitui cada um dos caracteres do texto claro 
por um de vários símbolos possíveis, todos com o mesmo significado. Apesar de 
vários substitutos para cada um dos caracteres, o comprimento do texto cifrado é igual 
ao do texto claro. Um exemplo de substituição homofônica é a cifra de Babou. 
 
6.14 Tomográficas 
 
Sistemas tomográficos, também conhecidos como tomogrâmicos, são aqueles 
nos quais cada caractere é substituído por um grupo de duas ou mais letras ou 
números. O comprimento do criptograma é maior do que o do texto original. Exemplos 
clássicos do método tomográfico são o Código de Políbio e a cifra de Bacon. 
 
6.15 Criptografia Hash 
 
A técnica de criptografia chamada Hash faz uma redução de determinada 
informação, independente de seu tamanho, após criptografada assumirá um tamanho 
padronizado de acordo com o tipo, informações de 1 Mb ou de 1 Tb, por exemplo, 
assumem o mesmo tamanho de saída com 16 bytes se submetidas a um Hash do tipo 
22 
 
MD5 ou 512 Bytes se submetidas a um Hash Wrilpool ou SHA 512, ou seja, 
independente do tamanho original da informação, a saída sempre terá o mesmo 
tamanho. Seja uma função HASH H, e x uma string qualquer, teremos que H(x) será 
o valor HASH para a string x. 
As características básicas de uma função HASH são: 
 O valor de entrada da função possui qualquer tamanho; 
 O valor de saída da função possui tamanho fixo; 
 H(x) é relativamente fácil de ser computado, para qualquer valor de x; 
 H(x) é uma função “one-way”; 
 H(x) é livre de colisão. 
 
6.16 Combinaçâo dos tipos 
 
 Com os dois tipos de Chaves (Simétrica e Assimétrica) tendo suas vantagens 
e desvantagens, era natural o surgimento um método que buscasse mixar as 
vantagens de cada um, eliminando assim, suas desvantagens. Os protocolos TLS 
(Transport Layer Security) e SSL (Secure Sockets Layer) são exemplos desse mix. 
A predefinição de uma chave pelo tipo de criptografia simétrico apresenta certa 
fragilidade, por outro lado, o uso exclusivo e em larga escala da criptografia 
assimétrica necessita de um grande esforço computacional pelo tamanho das chaves 
em bits pois disso depende a segurança de uma chave assimétrica, uma solução 
encontrada é a combinação das duas técnicas, reduzindo o uso de força 
computacional e aumentando a segurança em relação à chave simétrica. 
Como o algoritmo de chave pública garante que a negociação foi realizada em 
um canal seguro, não havendo a necessidade da troca periódica da chave (problemas 
no caso da Chave Simétrica), todo o restante do processo pode passar a ser realizado 
utilizando algoritmos de chave simétrica, o que diminui potencialmente a necessidade 
do poder computacional, permitindo seu uso em uma comunicação mais intensa 
(problemas encontrados na Chave Assimétrica). 
23 
 
7 DISSERTAÇÃO 
 
7.1 Estruturação, conceitos e fundamentação. 
 
 Para o desenvolvimento do algoritmo de criptografia, e a correspondente 
decodificação, foram observados aspectos de técnicas de criptografia variadas 
descritas anteriormente tais como de transposição e substituição que é de principal 
importância para a estruturação. 
 Uma criptografia de substituição permite uma diversidade de variações para a 
substituição de caracteres usados no texto claro, isso pode ser constatado nas 
técnicas descritas de Vigenère ou da máquina Enigma, são inúmeras combinações 
possíveis que tornam a quebra do código por tentativa ou criptoanálise um trabalho 
muito mais complexo, isso ocorre pelas diversas combinações entre texto claro e texto 
cifrado por caractere, ou seja, a simplicidade de uma cifra de substituição no 
estabelecimento de um padrão básico para substituir caracteres é quebrada por um 
padrão adicionado à cifra que faz a variação da substituição, dessa forma, um 
caractere “A” substituído inicialmente pelo caractere “T”, assume um outro 
correspondente para a substituição cada vez que se repetir no texto claro. 
Para se obter este conceito de diversos correspondentes para um determinado 
caractere do texto claro foi utilizado um procedimento similar ao das cifras mais 
comuns de substituição em que é definida por uma posição numérica (Num) que 
calcula o novo caractere, ou seja, o caractere “A” corresponde a 65 em valor decimal 
na tabela ASCII, se Num=1 temos (65=65+1), o que garante a variação é a soma 
constante para cada caractere do texto claro combinado a uma chave numérica inicial. 
Imagem 8 - Linhas de código incrementam a posição 
 
Fonte: autoral. 
24 
 
O procedimento matemático de modularidade visto nas técnicas de criptografia 
assimétricas também foi utilizado para gerar uma chave numérica inicial mencionada 
anteriormente, desta forma, o código calcula uma variável a partir de um número 
randômico entre 0 e 1000 e em seguida o aplica ao módulo 255 que é o número de 
caracteres da tabela ASCII estendida utilizada para relacionar cada caractere a um 
valor decimal, esse procedimento resulta em um recurso similar adotado pela Enigma 
que era reposicionada diariamente para iniciar contagem em uma das 26 letras do 
alfabeto para criptografar e decodificar as mensagens, desta forma, no programa 
desenvolvido inicia a substituição em um caractere (Num) com valor aleatório e vai 
sendo incrementado em uma posição a cada caractere cifrado (Num=Num+1) e o 
valor de (Num) é calculado por Num (mod255). 
Imagem 9 - Linhas de código que calculam a posição inicial 
 
Fonte: autoral. 
 
7.2 Benefícios em relação às técnicas anteriores. 
 
 Em relação às técnicas de criptografia de substituição com uma chave 
numérica simples, ou com uma chave repetida constantemente, os recursos utilizados 
para o desenvolvimento do programa proporcionam maior segurança e complexidade 
do ponto de vista de criptoanálise se utilizado o critério de frequência de caracteres, 
identificamos a letra “A” com maior índice de frequência, em seguida temos, “E”, “O”, 
“S”, “R”, “I”, “N” e assim por diante, conforme o quadro a seguir. 
 
 
 
25 
 
Imagem 10 - Frequência de caracteres na língua portuguesaFonte: ZOCHIO, 2016. 
 Esse tipo de análise de frequência é mais confiável com textos de maior 
conjunto de caracteres, ou seja, para textos curtos, como palavras ou senhas de 6 
dígitos é pouco funcional, se tomarmos como exemplo a frase: “Venha para a Unip, a 
preferida no mercado profissional” podemos constatar a frequência de A=8, E=4, O=4, 
R=4, I=4, S=2 e assim por diante, se fosse utilizada uma técnica de criptografia de 
substituição com chave simples de C=X+7, em que 7 é a chave, X o texto claro e C o 
texto cifrado, a letra “A” seria substituída pela letra “I” e surgiria por 8 vezes no texto 
cifrado, isso facilitaria a criptoanálise, se fosse utilizada alguma técnica de 
transposição, por exemplo, a criptoanálise por frequência seria ainda mais rápida pois 
indicaria a letra “A” de imediato, restando apenas identificar o posicionamento original. 
 Com a utilização da chave randômica combinada ao incremento da chave de 
cifragem a cada caractere foi possível superar essa fragilidade, podemos observar no 
texto cifrado pelo programa que o caractere “A” foi substituído por correspondentes 
diferentes, conforme quadro a seguir, pode-se verificar a substituição por “a”, “C”, “E”, 
“G”, “h” e “?”. 
Imagem 11 - Texto criptografado pelo programa desenvolvido 
 
Fonte: autoral. 
 
26 
 
7.3 Aplicações que fazem ou fizeram uso da técnica. 
 
A técnica utilizada para o desenvolvimento do código de encriptação do 
presente trabalho é feita com base nas técnicas de substituição, as técnicas de 
substituição podem ser consideradas as mais antigas formas de cifrar mensagens, 
historicamente pode ser vista sua utilização no império Romano na Cifra de César, ou 
em um passado mais recente nas primeira e segunda guerras mundiais, os comandos 
que teriam de ser passados para os membros do exército eram criptografados, para 
caso o inimigo conseguisse captar as ordens não fosse possível a compreensão do 
que seria feito. Uma grande e famosa máquina também usava um método de 
substituição, porém muito mais complexo que as antigas cifras de substituição, era a 
Enigma, que por um grande período da segunda guerra mundial conferiu 
confidencialidade dos comandos e táticas de ataque das tropas nazistas, já que era 
uma grande invenção feita pelos alemães e os países inimigos não conseguiam 
descobrir os locais que seriam bombardeados ou invadidos, a segurança da Enigma 
era conferida pela constante mudança nos símbolos de representação. 
As cifras de substituição podem ser aparentemente básicas, mas se bem 
elaboradas podem ser de complexa decifragem se submetida a ataques de 
segurança, resultados otimizados podem ser obtidos se a troca de símbolos 
correspondentes se altera com certa rapidez, mesmo que se consiga quebrar a 
criptografia em uma mensagem isolada, ela irá se alterar, assim como um looping 
contínuo de codificação e decodificação. Essa técnica é utilizada até os dias atuais, e 
desde a segunda guerra já foram criadas diversas criptografias substitutivas, assim 
como a criptografia de “césar”, “vigenère”, dentre outras. 
Embora haja a impressão de que cifras de substituição tenham caído em 
desuso pelo surgimento de técnicas bem elaboradas matematicamente como a 
assimétrica RSA ou a simétrica DES, elas também terminam aplicando a substituição 
de caractere, porém com formas de calcular chaves de formas diferenciadas. 
 
 
 
27 
 
7.4 Discussão comparativa entre esta técnica e outras conhecidas 
 
A substituição é uma técnica simples de ser compreendida, pois a ideia que ela 
traz é de que os caracteres serão substitutos por outros como se ao invés de 
escrevermos se utilizar um alfabeto comum é utilizado um alfabeto que inicia em outra 
letra que não é o caractere “A”, o resultado é a total falta de inteligibilidade do texto, 
entretanto, historicamente as técnicas de substituição evoluíram para tornarem a 
quebra da codificação mais trabalhosa, a técnica utilizada para desenvolver o código 
de encriptação do presente trabalho observou algumas formas de incrementar as 
técnicas de substituição mais simples como a de César tornando o processo de 
substituir os caracteres por diversos caracteres correspondentes recorrendo à 
característica própria da técnicas de criptografia polialfabéticas, muito similar à cifra 
de Vigenère em que cada caractere era cifrado combinado a uma chave porém com 
o aumento de complexidade combinando duas chaves ao invés de uma. 
A forma clássica de conseguir quebrar criptografias de substituição é a análise 
de frequência de caracteres que se repetem dentro da mensagem codificada sendo 
levado em consideração o idioma, pois para cada um há alguns caracteres que se 
repetem, desta forma um hacker pode quebrar uma cifra de substituição simples, o 
que não ocorre facilmente em cifras de substituição tidas como polialfabéticas. 
 
7.5 Vulnerabilidades e falhas 
 
Algumas técnicas de criptografia simétricas atuais oferecem inúmeras 
combinações de chaves como pôde ser visto na técnica DES, são milhões e milhões 
de combinações possíveis e mesmo com o alto nível de combinações pôde ser 
descoberta por força bruta, ou seja, tentativa e erro, com o auxílio do uso de 
computação em grande escala. 
No código desenvolvido, por mais que haja a chave randômica que é alterada 
a cada inicialização do programa, a variação ocorre apenas entre números de 0 a 
1000 mod 255, isso para que se obtenha uma chave de inicialização correspondente 
a um caractere da tabela ASCII estendida que possui 255 caracteres, em comparação 
aos milhões e milhões de combinações que já foram quebradas da cifra RSA, a chave 
28 
 
randômica inicial do código desenvolvido pode representar certa vulnerabilidade se 
submetida a ataques com uso de força bruta. 
 
7.6 Melhorias propostas e/ou implementadas 
 
Em comparação com o projeto inicial do código de encriptação desenvolvido 
com o projeto final, uma melhoria importante pode ser destacada no sentido do 
aumento da complexidade de quebra da cifra, é a adição de uma chave inicial 
randômica que é alterada cada vez que o código é iniciado para encriptar um 
determinado texto claro, inicialmente havia apenas uma chave numérica inicial fixa 
semelhante a criptografia de César que era incrementada a cada caractere tornando 
a repetição de caracteres correspondentes com variação limitada e ainda fácil de ser 
descoberta, bastaria testar algumas palavras e analisar o texto claro em relação ao 
cifrado para descobrir o padrão de incremento da chave inicial que se repetia a cada 
inicialização de execução do código. 
Algumas melhorias ainda poderiam ser incrementadas como o aumento do 
números de variações possíveis da chave randômica inicial somada ao incremento 
simples de +1 a cada caractere codificado que faz com que os caracteres não sejam 
substituídos por um mesmo correspondente, um estudo de procedimentos 
matemáticos poderia resultar em uma forma de cálculo variável constantemente a 
cada caractere para dificultar a descoberta desta segunda chave, pois mesmo que a 
chave randômica inicial mude a cada inicialização do código, uma criptoanálise mais 
detalhada pode identificar que após a primeira chave inicializar a substituição é 
incrementada sempre em +1. 
 
 
 
 
 
 
29 
 
8 PROJETO DO PROGRAMA 
 
No código de criptografia desenvolvido, foi utilizada a técnica de criptografia 
conhecida como "substituição", como já visto anteriormente, nesta técnica os 
caracteres são substituídos por outros caracteres não necessariamente constantes no 
texto claro, no programa desenvolvido tomou-se como base a tabela ASCII estendida. 
Para ser definida a técnica de criptografia a ser utilizada foi levado em conta a 
questão da quantidade de informações acessíveis para sua compreensão e 
implementação, além da constatação das limitações encontradas no conhecimentode 
procedimentos matemáticos elaborados em algumas técnicas que terminam 
resultando igualmente em substituição. Para embasamento foram vistos 
documentários, filmes, e por ela ser uma das técnicas utilizadas desde muito tempo, 
assim como a máquina Enigma, tão famosa e de grande importância na segunda 
guerra mundial. 
Apesar da utilidade militar vista em muitas cifras de substituição, o que foi 
abordado é a lógica em si, pode-se ressaltar que foi uma grande evolução, mesmo 
que mecanicamente como na Enigma, a mudança diária das cifras, isso tornou muito 
complexa a vida dos seus inimigos de guerra, neste trabalho tentamos produzir algo 
similar, porém, com uma implementação mais fluída e dinâmica que é permitido pelo 
atual acesso à equipamentos e sistemas computacionais mais desenvolvidos, 
entretanto objetivou-se simultaneamente a complexidade de quebra da cifra obtida 
pelo programa. 
O programa tem basicamente duas interações com o usuário, uma para que o 
usuário digite a palavra que deseja criptografar, que logo será alterada pelos 
caracteres da tabela, e outra para que o usuário consiga decodificar o texto 
inicialmente digitado. Ele leva uma lógica de mudança rápida na representação de 
cada cifra, assim se torna algo mais difícil de ser quebrado. O programa trabalha de 
forma simples e ágil para que o usuário não tenha dificuldade, ele apenas digita o 
texto e tecla “ENTER” e ele é criptografado, após pressionar a tecla "ENTER" ele pode 
obter a decodificação novamente. 
30 
 
Imagem 12 – Sequência de execução do programa de criptografia 
 
Fonte: autoral. 
 
Foram utilizados laços de repetição para a cifragem dos caracteres bem como 
para a decodificação, desta forma, quando um determinado texto entra nos laços, tem 
a saída apenas quando todos os caracteres são cifrados ou substituídos por novos 
caracteres ou decodificados no segundo processamento do programa. 
Para que o texto digitado pelo usuário seja alocado em determinados espaços 
da memória foi utilizado o vetor com seu tamanho determinado pelo comando Length 
associado à variável de entrada de texto “palavra”, desta forma os caracteres puderam 
ser tratados de individualmente e substituídos corretamente. Durante a criação dos 
laços houve alguns empecilhos com a lógica por trás deles, mas com auxílio das 
técnicas de construção e desenvolvimento obtidas nas disciplinas de Linguagem de 
Programação Estruturada e Lógica de Programação Aplicada foi possível implementá-
los de acordo com o função e resultado final desejado. 
Imagem 13 – Linha de código para inserção do texto claro em vetor 
 
Fonte: autoral. 
Na forma bruta do programa, ele é executado da seguinte forma, o usuário 
digita o texto que deseja criptografar, assim como já foi descrito acima, e o programa 
usa um valor entre 0 e 1000 (mod 255) para calcular as possibilidades de cifras de 
31 
 
substituição para serem utilizadas, o módulo é utilizado em correspondência ao 
número de caracteres da tabela ASCII estendida, por exemplo, se o valor for definido 
na chave inicial resultar em "15", então a caractere que irá aparecer será resultante 
do caractere do texto claro a ser cifrado correspondente na tabela ASCII somado ao 
valor da chave, como o caractere “A” na tabela ASCII é 65 a substituição resulta de 
(65+15 = 80) sendo que 80 corresponde ao caractere “P”, para cifrar os caracteres 
seguintes de um texto claro o laço soma +1 à chave inicial, desta forma, se houvesse 
dois caracteres A consecutivos no texto claro, um seria substituído pelo valor 80 e o 
próximo pelo valor 81 que corresponde ao caractere “Q“ na tabela conforme abaixo: 
Imagem 14 – Fragmento da tabela ASCII 
 
Fonte: autoral. 
A variável para receber a chave inicial randômica foi implementada para que a 
mesma varie e não fique sempre um caractere fixo substituindo outro, o que torna 
mais complexa a quebra da cifra. Como foi dito a cima, essa foi uma das medidas para 
que o código apresentasse um resultado de segurança mais efetivo quando analisado 
com a intenção de descobrir o método de cifragem. 
32 
 
A decodificação do texto cifrado é obtida pelo vetor em que o texto claro é 
armazenado, desta forma, quando o usuário tecla “ENTER” o programa executa o laço 
de leitura do vetor do texto claro em caracteres isolados e o converte novamente em 
texto corrido. 
Imagem 15 – Linhas de código que apresentam o texto decodificado 
 
Fonte: autoral. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33 
 
9 RELATÓRIO DE LINHAS DE CÓDIGOS 
 
 static void Main(string[] args) 
 { 
 string palavra, crip = ""; 
 Random rdn = new Random(); 
 int num; 
 num = (rdn.Next(0, 1000)) % 255; 
 
 Console.Write("\nEntre com a palavra que deseja criptografar: "); 
 palavra = Console.ReadLine().ToLower(); 
 
 for (int i = 0; i < palavra.Length; i++) 
 { 
 int ASCII = (int)palavra[i]; 
 int ASCIID = ASCII + num; 
 num = num + 1; 
 crip += Char.ConvertFromUtf32(ASCIID); 
 } 
 
 Console.WriteLine("\nEsta é sua palavra codificada: " + crip); 
 crip = ""; 
 
 
 
34 
 
 for (int i = 0; i < palavra.Length; i++) 
 { 
 int ASCII = (int)palavra[i]; 
 int ASCIID = ASCII; 
 crip += Char.ConvertFromUtf32(ASCIID); 
 
 } 
 Console.Write("\nPressione 'enter' para descriptografar"); 
 palavra = Console.ReadLine().ToLower(); 
 Console.Write("\nEsta é sua palavra decodificada: {0}", crip); 
 Console.ReadKey(); 
 } 
 
 
 
 
 
 
 
 
 
 
 
 
35 
 
 
10 APRESENTAÇÃO DO PROGRAMA 
 
Imagem 16 – Programa em execução solicitando texto para criptografar 
 
Fonte: autoral. 
Imagem 17 - Programa em execução apresentando texto criptografado 
 
Fonte: autoral. 
Imagem 18 - Programa em execução apresentando texto decodificado 
 
Fonte: autoral. 
36 
 
BIBLIOGRAFIA 
 
Banco Central do Brasil. Museu de Valores do Banco Central. Disponível em: 
<http://www.bcb.gov.br/?cedmuda>. Acesso em: 5 de novembro de 2017. 
COUTINHO, S.C. Números inteiros e criptografia RSA. 2. ed. Rio de Janeiro: 
IMPA, 2005. 
Enigma. A máquina de cifra Alemã Enigma. Disponível em: < 
http://users.telenet.be/d.rijmenants/en/enigma.htm>. Acesso em: 16 de novembro de 
2017. 
STALLINGS, William. Criptografia e segurança de redes: princípios e práticas. 6. 
ed. São Paulo: Pearson Education do Brasil, 2015. 
UFSCAR. A cifra de Vigenère. Disponível em: 
<https://www.dm.ufscar.br/profs/caetano/iae2004/G6/cifra.htm>. Acesso em: 5 de 
novembro de 2017. 
ZOCHIO, Marcelo Ferreira. Introdução à criptografia. 1. ed. São Paulo: Novatec, 
2016. 
 
 
 
 
 
 
 
 
 
 
 
 
 
37 
 
FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS 
 
 
38 
 
 
 
 
39 
 
 
 
 
40 
 
 
 
 
41

Continue navegando