Você está na página 1de 26

UNIP  

–  Universidade
 Universidade Paulista  –  Campus
 Campus Alphaville

Atividades Práticas Supervisionadas

“AS TÉCNICAS CRIPTOGRÁFICAS, CONCEITOS, USOS E APLICAÇÕES”

Tema – 
Tema –  RCA
 RCA

Integrantes:

MARCOS ANTONIO GONÇALVES MOLTER - T389DC-9 - CC


LETICIA COQUETI HOLANDA –  B6696O-8
  B6696O-8 –  CC
 CC
THAYARA VIEIRA - B8015I-9 - CC

Curso: Ciência da Computação

Turma: 2º Semestre

Professores Orientadores:Ricardo Veras; Roberto Leminski


Leminski
UNIP  –  Universidade
 Universidade Paulista  –  Campus
 Campus Alphaville

Atividades Práticas Supervisionadas

“AS TÉCNICAS CRIPTOGRÁFICAS, CONCEITOS, USOS E APLICAÇÕES”

Tema – 
Tema –  RCA
 RCA

O objetivo deste trabalho


é abordar o assunto criptografia
descrevendo seus principais
tipos, com estudo direcionado
 para a técnica RCA e ainda
elaborar um programa capaz de
fazer a criptografia e
descriptografia de uma
mensagem.

2013
Sumário

1.1 - Introdução ................................................................................................................ 4


1.2-Criptografia (Conceitos gerais) .................................................................................. 5
1.3. Técnicas criptográficas mais utilizadas e conhecidas............................................ 7
1.4. Chave assimétrica - RSA .................................................................................... 11
1.4.1. Estruturação, conceitos e fundamentação .................................................... 11
1.4.2. Benefícios em relação às técnicas anteriores. .............................................. 13
1.4.3. Aplicações que fazem/fizeram uso da técnica.............................................. 14
1.4.5. Vulnerabilidades e falhas. ............................................................................ 15
1.4.6. Melhorias propostas e/ou implementadas. ................................................... 16
1.5. Projeto (estrutura) do programa........................................................................... 17
1.6. Relatório com as linhas de código do programa ................................................. 18
1.7. Apresentação do programa em funcionamento em um computador, apresentando
todas as funcionalidades pedidas e extras. ..................................................................... 22
1.8. Bibliografia .......................................................................................................... 25
1.9. Relatório de imagens .............................................................................................. 26
2.0. Ficha de Atividades Práticas Supervisionadas ..... Error! Bookmark not defined.
1.1 - Introdução

Este é um trabalho acadêmico que visa à implementação das técnicas de codificação na


linguagem de programação c#, instruídas durante o segundo período do curso de
ciências da computação na Universidade Paulista  –  UNIP campus Alphaville.

Para tanto, iremos abordar como principal assunto o tema as técnicas criptográficas,
conceitos, usos e aplicações.

Atualmente vivemos na era da informação, ou seja, não há nada que fazemos hoje onde
não exista trafego de informação, até mesmo quando não sabemos, existem dados sendo
transmitidos e informações sobre nós podem ser enviadas. Com o mundo globalizado e
 principalmente com o acesso a internet cada vez maior, é comum que haja integração de
 pessoas com todo o mundo, seja para um bate papo, troca de conhecimentos,
mensagens, redes sociais e muitas outras coisas que nos envolvem no âmbito pessoal,
 porem não é só para isto que há transmissão de dados, esta ocorre também para assuntos
onde a privacidade ou segurança da informação transmitida é essencial para o negocio
empresa ou as pessoas envolvidas, como transações bancarias, envio de e-mail, acesso a
rede de dados armazenamento de arquivos confidencias além de dados secretos do
governo ou até mesmo estratégias militares. Como toda esta informação transita pela
internet não é difícil que um invasor malicioso tenha acesso a qualquer um destes dados,
e a proteção da informação que enviamos em qualquer um dos casos acima é
importantíssima.

Com o objetivo de assegurar que nossos envios e recebimentos de dados sejam feitos de
maneira segura, são utilizados técnicas que transformam a informação enviada em uma
informação ilegível, para que esta possa ser transmitida e se for interceptada, não poderá
ser interpretada. Por outro lado ao receber esta informação ilegível, temos ferramentas
que conseguem transformar a informação novamente no formato original, porém para
isto, é necessário o conhecimento de uma chave que irá possibilitar esta função.
Para este processo é dado o nome de criptografia, e apesar de ser muito conhecido no
mundo digital, nos tempos atuais, esta é uma técnica utiliza a centenas de anos, com o
mesmo objetivo, ou seja proteger informação. Desde quando a humanidade ainda
escrevia na pedra até hoje muitas formas de criptografia foram inventadas, e agora,
vamos conhecer algumas das principais.

1.2-Criptografia (Conceitos gerais)

A Criptografia é a ciência que oculta o significado de uma mensagem e tem como


ferramenta os recursos matemáticos para cifrar e decifrar mensagens. O ato de cifrar
consiste em transformar um texto normal em texto secreto, e o ato de decodificar é a
operação inversa, consiste em transformar um texto cifrado em texto normal. Veremos
os conceitos históricos da criptografia e suas definições.

 Na palavra criptografia, “Cripto" vem do grego "kryptos" e significa oculto, envolto,
escondido. Também do grego, "graphos" significa escrever.

 Não é de hoje que o homem tem sentido a necessidade de guardar segredos e


informações sigilosas. Sejam segredos pessoais, segredos religiosos, ou segredos
militares e governamentais. Tão forte quanto a necessidade nata da espécie humana de
guardar segredo sobre determinados assuntos é a vontade dos mesmos humanos de
desvendar esses segredos. Seja por dinheiro, poder, vingança, curiosidade, arrogância,
ou qualquer outro sentimento essa tem sido uma batalha que, ao longo dos anos vem
sendo travada entre aqueles que querem guardar segredos e os que querem desvendar
esses segredos.

Com o avanço cada vez maior dos poderes das Redes de Computadores, o mundo tende
a ficar menor, perder fronteiras, encurtar distâncias. Hoje, com um simples apertar de
teclas, pode-se intercambiar informações através dos cinco continentes em questão de
minutos ou até segundos. Este avanço faz com que a informação e o controle sobre ela
sejam estratégicos para os governos e para as empresas. E, quanto maior o fluxo de
informações em redes de telecomunicações, ou maior a quantidade de informação
armazenada em meios computacionais, maior é a necessidade de empresas, governos e
até de pessoas físicas de se protegerem contra uma nova ameaça que está crescendo
 proporcionalmente ao desenvolvimento da informática. Trata-se do furto de informação
sigilosa e estratégica, armazenada em meios computacionais, ou da adulteração de
transações através do poder das telecomunicações. Pensando na necessidade de se criar
ferramentas capazes de proteger a informação e de prover segurança aos dados
armazenados e transmitidos pelas organizações através do mundo, veio a motivação
 para se estudar Criptografia.

Durante muitos séculos, a criptografia foi tratada como uma arte. Enquanto gregos
deliciavam-se com o embaralhamento de palavras, os romanos já utilizavam tais
conhecimentos para guerras e segredos de estado. Naturalmente, isso lhes deu grande
vantagem, pois, ainda que um mensageiro fosse capturado, a mensagem permaneceria
 protegida. Mas a “arte de cifrar mensagens” tem origens muito mais antigas.

Um dos indícios mais antigos de criptografia conhecidos pelo homem é a pedra de


Roseta. Descoberta por tropas de napoleão no ano de 1799, esta pedra data de 196 A.C,
e contem o mesmo texto em 3 idiomas, grego demótico(tipo de escrita egípcia) e
hieróglifos. Desta forma como não havia mais conhecimento dos hieróglifos, o
demótico era usado como chave para se entender o significado do texto.

Os métodos criptográficos desenvolvidos na antiguidade eram baseados essencialmente


em técnicas de substituição e transposição simples, já que o uso de contas matemáticas
complexas era pouco prático. A substituição troca letras e/ou conjuntos de letras por
outras letras ou símbolos, seguindo regras específicas. Já os métodos de transposição
consistem na reorganização das letras da mensagem, numa ordem conhecida apenas por
remetente e destinatário.
1.3. Técnicas criptográficas mais utilizadas e conhecidas

Como dissemos, a arte de criptografia vem sendo utilizada desde o primórdio da


humanidade, ainda quando nós riscávamos desenhos em pedras. Porém o grande
destaque da criptografia, pode ter ocorrido a partir do século V, quando o passou a ser
usada pelos espartanos para transmissão de informações militares.
Iremos destacar agora, as principais técnicas de criptografia que se tem conhecimento.
Para isto trataremos estes tipos em dois escopos. Primeiro falaremos dos tipos mais
conhecido de criptografias de Substituição e de Transposição, em seguida falaremos das
 principais técnicas em criptografia digital, ou seja, as técnicas do mundo atual na era da
informação.

Cifra de Substituição

A cifra de substituição é um método de criptografia queusa um sistema pré-definido de


substituição para criptografar uma mensagem. Unidades do texto que podem ser letras
isoladas, pares ou outros grupos de letrassão substituídas para formar a cifra.
A cifra de substituição difere da cifra de transposição, pois esta segunda altera a ordem
das palavras ou letras enquanto a primeira substitua as letras, mas mantendo-as na
mesma ordem.
Existem diversos tipos de cifras de substituição. Substituição simples se trabalha apenas
com letras. Poligráfica se trabalha apenas com grupos de letras. Monoalfabética se há
substituição de apenas uma letra e polialfabética se a substituição for de algumas letras.
Uma das grandes utilizações da cifra de substituição foi no império romano por César
que substituía as letras das suas mensagens por letras do alfabeto grego, tornando a
mensagem inteligível aos inimigos. Outra técnica utilizada por ele era a simples rotação
do próprio alfabeto romano em 3 casas ROT-3, técnica que ficou conhecida como Cifra
de César, ou no mundo da programação como ROT-X . Esta é uma das técnicas mais
 populares na criptografia amadora devida sua enorme facilidade de implementação.
Exemplo: ROT(13)

Cifra de Transposição

As Cifras de transposição são cifras onde houve a reordenação lógica das letras da
mensagem, com base em uma função. Esta é uma técnica mais complexa que a de
substituição, pois existe um argumento lógico envolvido na construção da cifra.

Basicamente existem três tipos de cifra de transposição mais importantes, apesar de


apresentarem-se milhares de formas de implementação. Note que é normal o uso de
letras desconexas no final da mensagem, isto se deve ao fato de querer confundir se
acaso tente decifra as mensagens, além de ser necessário para finalizar a forma.

Cifra em cerca, nesta forma, a mensagem é distribuída de maneira uniforme em


 posições determinadas por linha e colunas, uma forma de cerca, depois com este
resultado as letras são agrupadas, formando assim a cifra. Depois, para a mensagem ser
decifrada, o destinatário deverá ter conhecimento do numero de linhas e colunas que foi
utilizado para formar a cerca.

Cifra em Rota, já neste tipo, a mensagem deve ser escrita seguindo um formato pré-
definido,seguindo sempre uma rota que pode ser transversal, espiral linear entra outras.
A chave para encriptação será a rota escolhida assim como o movimento necessário
 para sua leitura.
Transposição de colunas, das técnicas de utilização da cifra de transposição esta é uma
das que se obtém melhores resultados. Para utilizar-la, deve-se transpor a mensagem em
colunas, feito isso se escolhe uma palavra chave com o mesmo numero de letras que a
quantidade de colunas, depois reordena as colunas seguindo a ordem alfabética das
letras da palavra chave. E ainda pode ser usado em conjunto com a cifra em rota,
aplicando esta para a formação das colunas. Para decifrar este tipo de cifra de
transposição é necessário o conhecimento da palavra chave.

Técnicas em Criptografia Digital

Basicamente, existem dois tipos de chaves que são usadas nesse processo de
criptografia: simétricas e assimétricas.

Chave simétrica

É o tipo de chave mais simples e 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. O uso de chaves simétricas tem desvantagens, e não é
indicado para casos que envolvem informações muito valiosas.

Podemos destacar os seguintes algoritmos que utilizam chave simetrica

DES (Data Encryption Standard): criado pela IBM em 1977, o DES usa chaves de 56
 bits, permitindo até 72 quatrilhões de combinações. Apesar disso, foi „quebrado‟ ou
desvendado utilizando-se as chamadas técnicas de "força bruta" (tentativa e erro) em um
desafio promovido na internet.

IDEA (International Data EncryptionAlgorithm): criado em 1991 por James Massey e


XuejiaLai, o IDEA é um algoritmo que usa chaves de 128 bits e tem estrutura
semelhante ao DES.

RC  (Ron'sCode ou RivestCipher): criado por Ron Rivest na empresa RSA Data
Security, esse algoritmo é muito utilizado em e-mails e usa chaves de 8 a 1;024 bits. Há
várias versões: RC2, RC4, RC5 e RC6. Cada uma delas difere da outra por trabalhar
com chaves de maior complexidade.

Existem ainda outros algoritmos, como o AES (AdvancedEncryption Standard),


 baseado no DES; 3DES; o Twofish; e a sua variante, o Blowfish.

Chave assimétrica

Também conhecida como "chave pública", a chave assimétrica trabalha com duas
chaves: uma privada e outra pública.Nesse método, uma pessoa deve criar uma chave de
codificação e enviá-la a quem for lhe mandar informações. Essa é a chave pública. Uma
outra chave deve ser criada para a decodificação. Esta, a chave privada, é secreta.

Podemos destacar os seguintes algoritmos que utilizam chave assimétricas:

RSA (Rivest, ShamirandAdleman): criado em 1977 nos laboratórios do Massachusetts


Instituteof Technology (MIT), é um dos algoritmos de chave assimétrica mais usados.
 Nele, números primos são utilizados da seguinte forma: dois números primos são
multiplicados para se obter um terceiro valor. A chave privada são os números
multiplicados e a chave pública é o valor obtido.

ElGamal: criado por TaherElGamal, esse algoritmo usa um problema matemático


conhecido por "logaritmo discreto" para se tornar seguro. É freqüente em assinaturas
digitais.
1.4. Chave assimétrica- RSA

Para se confiar em um sistema de segurança, é necessário que este sistema tenha sido
testado inúmeras vezes e que tenha se mostra seguro em 100% dos casos. Podemos
dizer que não há um sistema de criptografia perfeito, pois todos podem ser quebrados,
mas o que vai determinar se realmente são seguros é a complexidade necessária para
que uma cifra gerada seja quebrada. Além disso, outro fator que poderá determinar o
uso de um método de criptografia é a facilidade para implementação controle
emanutenção deste método.

Por este motivo, nosso grupo decidiu falar um pouco sobre o algoritmo RSA, esta
técnica de criptografia, foi inventada em 1978 por R. L. R ivest, A. Shamir e L.
Adleman, quando trabalhavam no MassachussetsInstituteof Technology (M.I.T.). A
 junção das iniciais dos Seus sobrenomes deu origem ao nome da técnica.

O RSA, por ser um método de chave pública, permite que qualquer usuário codifique
mensagens, mas como a chave de decodificação é secreta, só o destinatário legítimo
 poderá decodificá-la. A impossibilidade de quebrar a chave de decodificação é possível
 pela não existência de algoritmos eficientes para a fatoração de inteiros em fatores
 primos, ainda mais, se o número de algarismos é maior que 100. O tempo de
codificação de uma mensagem é insignificante, mas tentar quebrar uma mensagem
cifrada com esta técnica poderia levar anos.

1.4.1. Estruturação, conceitos e fundamentação

O RSA foi construído sobre uma das áreas mais clássicas da matemática, a Teoria dos
números. Ele se baseia na dificuldade em fatorar um número em seus componentes
 primos.Segundo o Teorema Fundamental da Aritmética  todo número inteiro positivo
maior que 1 pode ser decomposto de forma única em um produto de números primos.
Fatorar números pequenos é algo simples, mas fatorar números grandes é bem difícil e
demorado, pois este é um problema que não pode ser resolvido em um tempo
determinável, ou seja, não há uma fórmula para isto.
E como o RSA usa isto tudo? As chaves pública e privada são geradas com base na
multiplicação de dois números primos. O resultado desta multiplicação será público
mas, mas os números que usamos para multiplicar são privados e armazenados de forma
secreta, inviabilizando a decifração da mensagem a não ser que seja o detentor da chave
 publica.

 No RSA as chaves são geradas desta maneira:

1. Escolha de forma aleatória dois números primos grandes p e q 


, da ordem de
10^{100} no mínimo.

2. Computen = p q

3. Compute a função totiente em n :ɸ(n) = (p-1)(q-1)

4. Escolha um inteiro e 
  , tal que 1 <e 
< ɸ (n)de forma que e 
eɸ(n) sejam primos
entre si.

5. Compute dde forma que de € 1 (modɸ(n)) ou seja, d, seja o inverso


multiplicativo de e em (modɸ (n))

 No passo 1 os números podem ser testados probabilisticamente para primalidade

 No passo 5 é usado o algoritmo de Euclides estendido, e o conceito de inverso


multiplicativo que vem da aritmética modular.

Por final temos:

A chave pública: o par de números ne e


A chave privada: o par de números ne d
Cifração

Para transformar uma mensagem onde 0 < m < n


m  numa mensagem c cifrada usando a
chave pública do destinatário n ee basta fazer uma potenciação modular:

c = m^ emod n

A mensagem então pode ser transmitida em canal inseguro para o receptor.

Decifração

Para recuperar a mensagem m da mensagem cifrada c usando a respectiva chave privada
do receptor ne d basta fazer outra potenciação modular:

m = c^ dmodn

1.4.2. Benefícios em relação às técnicas anteriores.

Por se tratar de uma Chave Assimetrica, tem benefícios sobrea Chave Simétrica pois
esta apresenta alguns problemas graves, tais como a necessidade da troca constante
dessas chaves e a impossibilidade de serem usados com fins de autentificação,já que a
transmissão da chave privada de um para o outro pode não ser segura e acabar caindo
em outras mãos, apesar de seus algoritmos serem mais rápidos do que os algoritmos
assimétricos.

O RSA é um dos algoritmos mais seguros de encriptação de informações atuais, e é a


mais bem sucedido técnica que utiliza chaves assimétricas. Uma ver cifrada, não existe
até hoje uma maneira de quebrar este enigma, se não com o conhecimento da chave
 publica e privada.
Inúmeras formas de quebrar as cifras geradas por este algoritmo já foram tentadas,
 porém nenhuma obteve êxito até hoje, enquanto a maioria das demais técnicas já
tiverem seus códigos quebrados.

O algoritmo para gerar as chaves assim como para cifrar e decifrar as mensagens passou
a ser publico a partir do ano 2000, desta forma qualquer um pode usar esta técnica em
seus desenvolvimentos para criptografar seus dados, ao ponto que existem outros
algoritmos que são pagos.

Por fim a complexidade matemática envolvida na criação da cifra apesar de ter um


conceito simples, ou seja fatoração de números primos, não é de fácil resolução quando
se trata de números grandes, pois estes são divisíveis apenas por eles mesmo ou por um.
Calculo que nem mesmo os computadores mais modernos teriam capacidade de fazer
com facilidade, e levariam anos para isto, além disto, este resultado resolveria apenas a
mensagem em questão já que para outra mensagem teríamos outras chaves. Já em
alguns casos de outaras técnicas a formula matemática poderia ser quebrada, por
exemplo, com tentativa e erro, e decifrando a matemática da operação, qualquer outra
mensagem poderia ser decifrada.

1.4.3. Aplicações que fazem/fizeram uso da técnica.

Por se tratar de uma técnica muito segura de criptografia o RSA é utilizado por milhares
de aplicações em todo o mundo, Principalmente em aplicações de comercio eletrônico.
Para isto é utilizado no Browser como internet explorer, mozilla Firefox opera e outros.
Como o RSA possui duas chaves, ou seja é uma técnica assimétrica, as aplicações que a
utilizam, possuem um sistema de certificado digital, para garantir que a chave publica
do destinatário tenha sido enviada por ele, este certificado é validado por uma fonte
confiável, garantindo a segurança na transmissão dos dados.

Ainda podemos citar outras aplicações que utilizam esta técnica além dos navegados,
tais como Outlook, e outros gerenciadores de e-mail para o envio dos e-mails
aplicativos de celular para comunicação com portais, Excel para segurança de
documento e muitos outros.
1.4.5. Vulnerabilidades e falhas.

Assim como a Chave Simétrica, a Assimétrica também tem seus problemas. A


utilização de algoritmos reversos para desencriptação de mensagens acaba por elevar o
tempo computacional dos algoritmos de criptografia assimétrica, tornando inviável o
seu uso em uma comunicação intensa.

Uma chave RSA de 512 bits foi quebrada em 1999 pelo Instituto Nacional de Pesquisa
da Holanda, com o apoio de cientistas de mais 6 países. Levou cerca de 7 meses e foram
utilizadas 300 estações de trabalho para a quebra. Um fato preocupante: cerca de 95%
dos sites de comércio eletrônico utilizam chaves RSA de 512 bits.

Uma primeira abordagem de ataque ao RSA teria como objetivo a chave pública por
meio da fatoração do módulo, ou seja, dada uma fatoração, pode-se chegar ao expoente
de decriptografia. Este é um exemplo de ataque de força bruta ao RSA.

Apesar da melhora constante dos algoritmos de fatoração de números inteiros, esta


ainda é uma ameaça considerada distante da realidade, caso o sistema RSA seja
corretamente implementado, devido à dificuldade para a fatoração de números inteiros
com a tecnologia atual.

Para evitar a geração de módulos diferentes poderia ser considerado o uso do mesmo
módulo para todos os usuários emitido, por exemplo, por uma autoridade central
confiável. Apesar de parecer eficiente em uma primeira análise, um usuário poderia usar
seus próprios expoentes para fatorar o módulo de outros usuários. Devido a este fato,
um módulo RSA nunca deve ser utilizado por mais de uma entidade.Este é considerado
um ataque elementar pois ilustra o uso errôneo do sistema RSA

Para reduzir o tempo necessário para decriptar uma mensagem ou o tempo necessário
 para gerar uma assinatura pode-se tentar usar um valor de pequeno no lugar de um
aleatório. Usando um pequeno pode-se alcançar uma melhora no desempenho em
torno de fatores de 10 para um, porém a escolha de um pequeno pode quebrar
completamente o sistema RSA.

Imaginemos que um usuário teve acesso a uma fração da chave privada, de


tamanho bits. Seria este usuário capaz de reproduzir o restante da chave a partir
desta fração? Surpreendentemente a resposta é positiva caso a chave seja pequena o
suficiente.

Um artigo de 19985 mostra que sendo é possível reconstruir toda a chave a


 partir de uma fração da mesma. Este resultado mostra a importância de proteger a chave
 privada RSA de forma eficiente e completa.

1.4.6. Melhorias propostas e/ou implementadas.

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 (TransportLayer Security) e SSL (Secure Sockets Layer) são
exemplos desse mix. Para compensar o problema do segredo pré-estabelecido da chave
simétrica e o alto poder computacional necessário na chave simétrica, foi elaborado um
meio onde em sua primeira etapa (handshake), seja utilizado a criptografia assimétrica,
autenticando assim os nós e combinando uma chave secreta para um uso posterior na
criptografia 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).
1.5. Projeto (estrutura) do programa

DADOS TÉCNICOS:
O projeto de criptografia descrito neste trabalho foi desenvolvido em
linguagem C#, usando os princípios de chave simétrica, que é uma das
técnicas mais simples e utilizadas de criptografia hoje em dia. Este tipo de
chave é utilizado tanto para codificação quanto para descodificação de dados.
O programa funciona com o principio de substituição de caracteres
originais por outros. As posições permanecem as mesmas, mas os caracteres
inseridos pelo usuário são substituídos pelo alfabeto de criptografia.

 A variável “cripto1”  recebe o texto a ser criptografado separa em


unidades cada caractere e usando o comando Length pega a posição na
primeira variável (“cripto1”- com o texto normal) e troca pela posição em que se
encontra a mesma letra com o alfabeto criptografado na variável “cripto2”.

O código desenvolvido opera duas funções especificas: criptografar ou


descriptografar um texto, tendo também a opção de visualizar autores de
edição e alfabeto de criptografia como descrito abaixo.

Variável cripto1

“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
Z“

Variável cripto2

"poiuytrewqasdfghjklmnbvczxLKJHGFDSAQWERTYUIOPMNBVCZ X"

É importante ressaltar que o projeto aqui desenvolvido suporta apenas


letras do alfabeto, sendo assim não recebe cárteres especiais.
1.6. Relatório com as linhas de código do programa

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Criptografador
{
class Program
{
staticvoid Main(string[] args)
{

//Declaração de Variáveis

int menu;
menu = 0;

string txtnormal, txtcripto = "";


string cripto1 =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " ;
string cripto2 =
"poiuytrewqasdfghjklmnbvczxLKJHGFDSAQWERTYUIOPMNBVCZ X";
string voltamenu = "s";

//Formação de Menus

Console.ForegroundColor = ConsoleColor .Blue;
Console.Write("
 ____________________________________________________\n" );
Console.Write(" | |\n");
Console.Write(" | Bem Vindo ao Criptografador! |\n");
Console.Write("
|___________________________________________________|\n\n\n" );
Console.ResetColor();

Console.Write(" MENU - Escolha uma opção: \n\n\n Criptografar: Digite 1. \n\n


Descriptografar: Digite 2. \n\n Alfabeto de criptografia: Digite 3. \n\n Verificar os
 Autores da Edição: Digite 4. \n\n Para sair: Digite 5. \n\n\n Digite sua opção:\n\n
");

menu = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("\n\n");

//Condição de Menus

//Condição de Menu 1

if  (menu == 1) //Condição de menu para entrar em criptografar


{
Console.WriteLine(" Digite o texto que deseja criptografar: \n");
txtnormal = Console.ReadLine();

//Criptografando a Variável

for  (int x = 0; x < txtnormal.Length; x++)


{
int pos = cripto1.IndexOf(txtnormal[x]);
txtcripto = txtcripto + cripto2[pos];
}

Console.Write("__________________________________________________\
n\n");
Console.Write(" Seu Texto criptografado é : \n\n");
Console.ForegroundColor = ConsoleColor .Red;
Console.Write(" {0} \n", txtcripto);
Console.ResetColor();
Console.Write("__________________________________________________\
n");
Console.Read();
}
else
{

//Condição de Menu 2
if  (menu == 2) //Condição de menu para entrar em descriptografar
{
txtnormal = txtcripto;
txtcripto = "";
Console.WriteLine(" Digite o texto que gostaria de descriptografar: \n");
txtnormal = Console.ReadLine();

//Descriptografando o Texto

for  (int x = 0; x < txtnormal.Length; x++)


{
int pos = cripto2.IndexOf(txtnormal[x]);
txtcripto = txtcripto + cripto1[pos];
}

Console.Write("
 ________________________________________________\n\n" );
Console.Write(" Seu Texto Criptografado é : \n\n");
Console.ForegroundColor = ConsoleColor .Green;
Console.Write(" {0} \n", txtcripto);
Console.ResetColor();
Console.Write("
 ________________________________________________\n" );
Console.Read();
}
else
{

//Condição de Menu 3

if  (menu == 3) //Condição de menu para em opções de alfabeto


{
Console.WriteLine("\n Alfabeto correspondente as letras uma embaixo da outra:
\n\n\n");
Console.WriteLine("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST
UVWXYZ ");
Console.WriteLine("poiuytrewqasdfghjklmnbvczxLKJHGFDSAQWERTYUIOPM
NBVCZX*");

Console.Read();
}
else
{
//Condição de Menu 4

if  (menu == 4) //Condição de menu para entrar em autores


{
Console.Write("\n Este software possui fins acadêmicos, o mesmo foi
desenvolvido como um projeto \n sem fins lucrativos e comerciais. \n\n
Desenvolvedores: \n Letícia Coqueti \n Marcos Molter \n Thayara Vieira \n\n
Curso: Ciência da Computação - UNIP Alphaville.\n\n");
Console.Read();
}
else
{

//Condição de menu

if  (menu == 5) //Condição para sair do sistema


{
Environment.Exit(0);
}
}
}
}
}

}
}
1.7. Apresentação do programa em funcionamento em um computador,
apresentando todas as funcionalidades pedidas e extras.

Figura 1 - Tela Inicial

Figura 2 - Inserindo texto


Figura 3 - Texto Cifrado

Figura 4 - Inserindo Cifra


Figura 5 - Texto decifrado
1.8. Bibliografia

DAHAB, R. Introdução à Criptografia. Campinas: IC-UNICAMP.

MAIA, L. P. Criptografia e Certificação Digital. training. Disponivel em:


<http://www.training.com.br/lpmaia/pub_seg_cripto.htm>. Acesso em: 26 out. 2013.

OLIVEIRA, B. G. D. Fundamentos da Criptologia Parte I  –  Introdução e Histórias.


Rio de Janeiro: UFRJ, 2005.

OLIVEIRA, B. G. D. Fundamentos da Criptologia Parte II  –   Criptografia


Simétrica. Rio de Janeiro: UFRJ, 2005.

OLIVEIRA, P. E. R. D.; ANDRADE, P. T. E. D.; D'OLIVEIRA, R. L. G. Rsa.


ime.unicamp. Disponivel em:
<http://www.ime.unicamp.br/~ftorres/ENSINO/MONOGRAFIAS/oliv_RSA.pdf>.
Acesso em: 10 nov. 2013.

SILVA, E. V. P. D. Introdução à Criptografia RSA. Ilha Solteira: U N E S P, 2006.

SILVEIRA, A. D. S. A CRIPTOGRAFIA RSA E DES. UOL. Disponivel em:


<http://artigocientifico.uol.com.br/uploads/artc_1202156738_60.pdf>. Acesso em: 10
nov. 2013.

WIKIPÉDIA. RSA. Wikipédia, 20 out. 2013. Disponivel em:


<http://pt.wikipedia.org/wiki/RSA>.
1.9. Relatório de imagens

Figura 1 - Tela Inicial ..................................................................................................... 22


Figura 2 - Inserindo texto ............................................................................................... 22
Figura 3 - Texto Cifrado ................................................................................................. 23
Figura 4 - Inserindo Cifra ............................................................................................... 23
Figura 5 - Texto decifrado .............................................................................................. 24

Você também pode gostar