Sei sulla pagina 1di 26

UNIP Universidade Paulista Campus Alphaville

Atividades Prticas Supervisionadas

AS TCNICAS CRIPTOGRFICAS, CONCEITOS, USOS E APLICAES

Tema RCA

Integrantes:
MARCOS ANTONIO GONALVES MOLTER - T389DC-9 - CC
LETICIA COQUETI HOLANDA B6696O-8 CC
THAYARA VIEIRA - B8015I-9 - CC

Curso: Cincia da Computao


Turma: 2 Semestre
Professores Orientadores:Ricardo Veras; Roberto Leminski

UNIP Universidade Paulista Campus Alphaville

Atividades Prticas Supervisionadas

AS TCNICAS CRIPTOGRFICAS, CONCEITOS, USOS E APLICAES

Tema RCA

O objetivo deste trabalho


abordar o assunto criptografia
descrevendo

seus

principais

tipos, com estudo direcionado


para a tcnica RCA e ainda
elaborar um programa capaz de
fazer

descriptografia
mensagem.

2013

criptografia
de

e
uma

Sumrio
1.1 - Introduo ................................................................................................................ 4
1.2-Criptografia (Conceitos gerais) .................................................................................. 5
1.3.

Tcnicas criptogrficas mais utilizadas e conhecidas............................................ 7

1.4.

Chave assimtrica - RSA .................................................................................... 11

1.4.1.

Estruturao, conceitos e fundamentao .................................................... 11

1.4.2.

Benefcios em relao s tcnicas anteriores. .............................................. 13

1.4.3.

Aplicaes que fazem/fizeram uso da tcnica.............................................. 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.

Relatrio com as linhas de cdigo do programa ................................................. 18

1.7.

Apresentao do programa em funcionamento em um computador, apresentando

todas as funcionalidades pedidas e extras. ..................................................................... 22


1.8.

Bibliografia .......................................................................................................... 25

1.9. Relatrio de imagens .............................................................................................. 26


2.0.

Ficha de Atividades Prticas Supervisionadas ..... Error! Bookmark not defined.

1.1 - Introduo

Este um trabalho acadmico que visa implementao das tcnicas de codificao na


linguagem de programao c#, instrudas durante o segundo perodo do curso de
cincias da computao na Universidade Paulista UNIP campus Alphaville.

Para tanto, iremos abordar como principal assunto o tema as tcnicas criptogrficas,
conceitos, usos e aplicaes.

Atualmente vivemos na era da informao, ou seja, no h nada que fazemos hoje onde
no exista trafego de informao, at mesmo quando no sabemos, existem dados sendo
transmitidos e informaes sobre ns podem ser enviadas. Com o mundo globalizado e
principalmente com o acesso a internet cada vez maior, comum que haja integrao 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 no s para isto que h transmisso de dados, esta ocorre tambm para assuntos
onde a privacidade ou segurana da informao transmitida essencial para o negocio
empresa ou as pessoas envolvidas, como transaes bancarias, envio de e-mail, acesso a
rede de dados armazenamento de arquivos confidencias alm de dados secretos do
governo ou at mesmo estratgias militares. Como toda esta informao transita pela
internet no difcil que um invasor malicioso tenha acesso a qualquer um destes dados,
e a proteo da informao que enviamos em qualquer um dos casos acima
importantssima.
Com o objetivo de assegurar que nossos envios e recebimentos de dados sejam feitos de
maneira segura, so utilizados tcnicas que transformam a informao enviada em uma
informao ilegvel, para que esta possa ser transmitida e se for interceptada, no poder
ser interpretada. Por outro lado ao receber esta informao ilegvel, temos ferramentas
que conseguem transformar a informao novamente no formato original, porm para
isto, necessrio o conhecimento de uma chave que ir possibilitar esta funo.

Para este processo dado o nome de criptografia, e apesar de ser muito conhecido no
mundo digital, nos tempos atuais, esta uma tcnica utiliza a centenas de anos, com o
mesmo objetivo, ou seja proteger informao. 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 cincia que oculta o significado de uma mensagem e tem como


ferramenta os recursos matemticos para cifrar e decifrar mensagens. O ato de cifrar
consiste em transformar um texto normal em texto secreto, e o ato de decodificar a
operao inversa, consiste em transformar um texto cifrado em texto normal. Veremos
os conceitos histricos da criptografia e suas definies.
Na palavra criptografia, Cripto" vem do grego "kryptos" e significa oculto, envolto,
escondido. Tambm do grego, "graphos" significa escrever.

No de hoje que o homem tem sentido a necessidade de guardar segredos e


informaes sigilosas. Sejam segredos pessoais, segredos religiosos, ou segredos
militares e governamentais. To forte quanto a necessidade nata da espcie humana de
guardar segredo sobre determinados assuntos a vontade dos mesmos humanos de
desvendar esses segredos. Seja por dinheiro, poder, vingana, curiosidade, arrogncia,
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 avano cada vez maior dos poderes das Redes de Computadores, o mundo tende
a ficar menor, perder fronteiras, encurtar distncias. Hoje, com um simples apertar de
teclas, pode-se intercambiar informaes atravs dos cinco continentes em questo de

minutos ou at segundos. Este avano faz com que a informao e o controle sobre ela
sejam estratgicos para os governos e para as empresas. E, quanto maior o fluxo de
informaes em redes de telecomunicaes, ou maior a quantidade de informao
armazenada em meios computacionais, maior a necessidade de empresas, governos e
at de pessoas fsicas de se protegerem contra uma nova ameaa que est crescendo
proporcionalmente ao desenvolvimento da informtica. Trata-se do furto de informao
sigilosa e estratgica, armazenada em meios computacionais, ou da adulterao de
transaes atravs do poder das telecomunicaes. Pensando na necessidade de se criar
ferramentas capazes de proteger a informao e de prover segurana aos dados
armazenados e transmitidos pelas organizaes atravs do mundo, veio a motivao
para se estudar Criptografia.

Durante muitos sculos, 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 indcios mais antigos de criptografia conhecidos pelo homem a pedra de


Roseta. Descoberta por tropas de napoleo no ano de 1799, esta pedra data de 196 A.C,
e contem o mesmo texto em 3 idiomas, grego demtico(tipo de escrita egpcia) e
hierglifos. Desta forma como no havia mais conhecimento dos hierglifos, o
demtico era usado como chave para se entender o significado do texto.

Os mtodos criptogrficos desenvolvidos na antiguidade eram baseados essencialmente


em tcnicas de substituio e transposio simples, j que o uso de contas matemticas
complexas era pouco prtico. A substituio troca letras e/ou conjuntos de letras por
outras letras ou smbolos, seguindo regras especficas. J os mtodos de transposio
consistem na reorganizao das letras da mensagem, numa ordem conhecida apenas por
remetente e destinatrio.

1.3.

Tcnicas criptogrficas mais utilizadas e conhecidas

Como dissemos, a arte de criptografia vem sendo utilizada desde o primrdio da


humanidade, ainda quando ns riscvamos desenhos em pedras. Porm o grande
destaque da criptografia, pode ter ocorrido a partir do sculo V, quando o passou a ser
usada pelos espartanos para transmisso de informaes militares.
Iremos destacar agora, as principais tcnicas de criptografia que se tem conhecimento.
Para isto trataremos estes tipos em dois escopos. Primeiro falaremos dos tipos mais
conhecido de criptografias de Substituio e de Transposio, em seguida falaremos das
principais tcnicas em criptografia digital, ou seja, as tcnicas do mundo atual na era da
informao.

Cifra de Substituio

A cifra de substituio um mtodo de criptografia queusa um sistema pr-definido de


substituio para criptografar uma mensagem. Unidades do texto que podem ser letras
isoladas, pares ou outros grupos de letrasso substitudas para formar a cifra.
A cifra de substituio difere da cifra de transposio, 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 substituio. Substituio simples se trabalha apenas
com letras. Poligrfica se trabalha apenas com grupos de letras. Monoalfabtica se h
substituio de apenas uma letra e polialfabtica se a substituio for de algumas letras.
Uma das grandes utilizaes da cifra de substituio foi no imprio romano por Csar
que substitua as letras das suas mensagens por letras do alfabeto grego, tornando a
mensagem inteligvel aos inimigos. Outra tcnica utilizada por ele era a simples rotao
do prprio alfabeto romano em 3 casas ROT-3, tcnica que ficou conhecida como Cifra
de Csar, ou no mundo da programao como ROT-X . Esta uma das tcnicas mais
populares na criptografia amadora devida sua enorme facilidade de implementao.

Exemplo:

ROT(13)

Cifra de Transposio
As Cifras de transposio so cifras onde houve a reordenao lgica das letras da
mensagem, com base em uma funo. Esta uma tcnica mais complexa que a de
substituio, pois existe um argumento lgico envolvido na construo da cifra.
Basicamente existem trs tipos de cifra de transposio mais importantes, apesar de
apresentarem-se milhares de formas de implementao. 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, alm de ser necessrio para finalizar a forma.
Cifra em cerca, nesta forma, a mensagem distribuda de maneira uniforme em
posies determinadas por linha e colunas, uma forma de cerca, depois com este
resultado as letras so agrupadas, formando assim a cifra. Depois, para a mensagem ser
decifrada, o destinatrio 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 prdefinido,seguindo sempre uma rota que pode ser transversal, espiral linear entra outras.
A chave para encriptao ser a rota escolhida assim como o movimento necessrio
para sua leitura.

Transposio de colunas, das tcnicas de utilizao da cifra de transposio esta uma


das que se obtm 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 alfabtica das
letras da palavra chave. E ainda pode ser usado em conjunto com a cifra em rota,
aplicando esta para a formao das colunas. Para decifrar este tipo de cifra de
transposio necessrio o conhecimento da palavra chave.

Tcnicas em Criptografia Digital


Basicamente, existem dois tipos de chaves que so usadas nesse processo de
criptografia: simtricas e assimtricas.
Chave simtrica
o tipo de chave mais simples e a mesma chave utilizada tanto pelo emissor quanto
por quem recebe a informao. Ou seja, a mesma chave utilizada para codificao e
para a decodificao dos dados. O uso de chaves simtricas tem desvantagens, e no
indicado para casos que envolvem informaes 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 quatrilhes de combinaes. Apesar disso, foi quebrado ou

desvendado utilizando-se as chamadas tcnicas de "fora 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
vrias verses: 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 assimtrica
Tambm conhecida como "chave pblica", a chave assimtrica trabalha com duas
chaves: uma privada e outra pblica.Nesse mtodo, uma pessoa deve criar uma chave de
codificao e envi-la a quem for lhe mandar informaes. Essa a chave pblica. Uma
outra chave deve ser criada para a decodificao. Esta, a chave privada, secreta.
Podemos destacar os seguintes algoritmos que utilizam chave assimtricas:
RSA (Rivest, ShamirandAdleman): criado em 1977 nos laboratrios do Massachusetts
Instituteof Technology (MIT), um dos algoritmos de chave assimtrica mais usados.
Nele, nmeros primos so utilizados da seguinte forma: dois nmeros primos so
multiplicados para se obter um terceiro valor. A chave privada so os nmeros
multiplicados e a chave pblica o valor obtido.
ElGamal: criado por TaherElGamal, esse algoritmo usa um problema matemtico
conhecido por "logaritmo discreto" para se tornar seguro. freqente em assinaturas
digitais.

1.4.

Chave assimtrica- RSA

Para se confiar em um sistema de segurana, necessrio que este sistema tenha sido
testado inmeras vezes e que tenha se mostra seguro em 100% dos casos. Podemos
dizer que no h um sistema de criptografia perfeito, pois todos podem ser quebrados,
mas o que vai determinar se realmente so seguros a complexidade necessria para
que uma cifra gerada seja quebrada. Alm disso, outro fator que poder determinar o
uso de um mtodo de criptografia a facilidade para implementao controle
emanuteno deste mtodo.
Por este motivo, nosso grupo decidiu falar um pouco sobre o algoritmo RSA, esta
tcnica de criptografia, foi inventada em 1978 por R. L. Rivest, A. Shamir e L.
Adleman, quando trabalhavam no MassachussetsInstituteof Technology (M.I.T.). A
juno das iniciais dos Seus sobrenomes deu origem ao nome da tcnica.
O RSA, por ser um mtodo de chave pblica, permite que qualquer usurio codifique
mensagens, mas como a chave de decodificao secreta, s o destinatrio legtimo
poder decodific-la. A impossibilidade de quebrar a chave de decodificao possvel
pela no existncia de algoritmos eficientes para a fatorao de inteiros em fatores
primos, ainda mais, se o nmero de algarismos maior que 100. O tempo de
codificao de uma mensagem insignificante, mas tentar quebrar uma mensagem
cifrada com esta tcnica poderia levar anos.

1.4.1. Estruturao, conceitos e fundamentao

O RSA foi construdo sobre uma das reas mais clssicas da matemtica, a Teoria dos
nmeros. Ele se baseia na dificuldade em fatorar um nmero em seus componentes
primos.Segundo o Teorema Fundamental da Aritmtica todo nmero inteiro positivo
maior que 1 pode ser decomposto de forma nica em um produto de nmeros primos.
Fatorar nmeros pequenos algo simples, mas fatorar nmeros grandes bem difcil e

demorado, pois este um problema que no pode ser resolvido em um tempo


determinvel, ou seja, no h uma frmula para isto.
E como o RSA usa isto tudo? As chaves pblica e privada so geradas com base na
multiplicao de dois nmeros primos. O resultado desta multiplicao ser pblico
mas, mas os nmeros que usamos para multiplicar so privados e armazenados de forma
secreta, inviabilizando a decifrao da mensagem a no ser que seja o detentor da chave
publica.
No RSA as chaves so geradas desta maneira:

1. Escolha de forma aleatria dois nmeros primos grandes p e q, da ordem de


10^{100} no mnimo.

2. Computen = p q

3. Compute a funo totiente emn :(n) = (p-1)(q-1)


4. Escolha um inteiro e , tal que 1 <e< (n)de forma que ee(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 nmeros podem ser testados probabilisticamente para primalidade

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


multiplicativo que vem da aritmtica modular.

Por final temos:

A chave pblica: o par de nmeros ne e


A chave privada: o par de nmeros ne d

Cifrao

Para transformar uma mensagem monde 0 <m< n numa mensagem c cifrada usando a
chave pblica do destinatrio n ee basta fazer uma potenciao modular:

c = m^emod n

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

Decifrao

Para recuperar a mensagem mda mensagem cifrada c usando a respectiva chave privada
do receptor ne d basta fazer outra potenciao modular:

m = c^dmodn

1.4.2. Benefcios em relao s tcnicas anteriores.

Por se tratar de uma Chave Assimetrica, tem benefcios sobrea Chave Simtrica pois
esta apresenta alguns problemas graves, tais como a necessidade da troca constante
dessas chaves e a impossibilidade de serem usados com fins de autentificao,j que a
transmisso da chave privada de um para o outro pode no ser segura e acabar caindo
em outras mos, apesar de seus algoritmos serem mais rpidos do que os algoritmos
assimtricos.
O RSA um dos algoritmos mais seguros de encriptao de informaes atuais, e a
mais bem sucedido tcnica que utiliza chaves assimtricas. Uma ver cifrada, no existe
at hoje uma maneira de quebrar este enigma, se no com o conhecimento da chave
publica e privada.

Inmeras formas de quebrar as cifras geradas por este algoritmo j foram tentadas,
porm nenhuma obteve xito at hoje, enquanto a maioria das demais tcnicas j
tiverem seus cdigos 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 tcnica em
seus desenvolvimentos para criptografar seus dados, ao ponto que existem outros
algoritmos que so pagos.
Por fim a complexidade matemtica envolvida na criao da cifra apesar de ter um
conceito simples, ou seja fatorao de nmeros primos, no de fcil resoluo quando
se trata de nmeros grandes, pois estes so divisveis 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, alm disto, este resultado resolveria apenas a
mensagem em questo j que para outra mensagem teramos outras chaves. J em
alguns casos de outaras tcnicas a formula matemtica poderia ser quebrada, por
exemplo, com tentativa e erro, e decifrando a matemtica da operao, qualquer outra
mensagem poderia ser decifrada.

1.4.3. Aplicaes que fazem/fizeram uso da tcnica.

Por se tratar de uma tcnica muito segura de criptografia o RSA utilizado por milhares
de aplicaes em todo o mundo, Principalmente em aplicaes de comercio eletrnico.
Para isto utilizado no Browser como internet explorer, mozilla Firefox opera e outros.
Como o RSA possui duas chaves, ou seja uma tcnica assimtrica, as aplicaes que a
utilizam, possuem um sistema de certificado digital, para garantir que a chave publica
do destinatrio tenha sido enviada por ele, este certificado validado por uma fonte
confivel, garantindo a segurana na transmisso dos dados.
Ainda podemos citar outras aplicaes que utilizam esta tcnica alm dos navegados,
tais como Outlook, e outros gerenciadores de e-mail para o envio dos e-mails
aplicativos de celular para comunicao com portais, Excel para segurana de
documento e muitos outros.

1.4.5. Vulnerabilidades e falhas.

Assim como a Chave Simtrica, a Assimtrica tambm tem seus problemas. A


utilizao de algoritmos reversos para desencriptao de mensagens acaba por elevar o
tempo computacional dos algoritmos de criptografia assimtrica, tornando invivel o
seu uso em uma comunicao 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 pases. Levou cerca de 7 meses e foram
utilizadas 300 estaes de trabalho para a quebra. Um fato preocupante: cerca de 95%
dos sites de comrcio eletrnico utilizam chaves RSA de 512 bits.
Uma primeira abordagem de ataque ao RSA teria como objetivo a chave pblica por
meio da fatorao do mdulo, ou seja, dada uma fatorao, pode-se chegar ao expoente
de decriptografia. Este um exemplo de ataque de fora bruta ao RSA.

Apesar da melhora constante dos algoritmos de fatorao de nmeros inteiros, esta


ainda uma ameaa considerada distante da realidade, caso o sistema RSA seja
corretamente implementado, devido dificuldade para a fatorao de nmeros inteiros
com a tecnologia atual.

Para evitar a gerao de mdulos


mdulo

diferentes poderia ser considerado o uso do mesmo

para todos os usurios emitido, por exemplo, por uma autoridade central

confivel. Apesar de parecer eficiente em uma primeira anlise, um usurio poderia usar
seus prprios expoentes para fatorar o mdulo

de outros usurios. Devido a este fato,

um mdulo RSA nunca deve ser utilizado por mais de uma entidade.Este considerado
um ataque elementar pois ilustra o uso errneo do sistema RSA

Para reduzir o tempo necessrio para decriptar uma mensagem ou o tempo necessrio
para gerar uma assinatura pode-se tentar usar um valor de
aleatrio. Usando um

pequeno no lugar de um

pequeno pode-se alcanar uma melhora no desempenho em

torno de fatores de 10 para um, porm a escolha de um

pequeno pode quebrar

completamente o sistema RSA.


Imaginemos que um usurio teve acesso a uma frao da chave privada, de
tamanho

bits. Seria este usurio capaz de reproduzir o restante da chave

desta frao? Surpreendentemente a resposta positiva caso a chave

a partir

seja pequena o

suficiente.
Um artigo de 19985 mostra que sendo

possvel reconstruir toda a chave a

partir de uma frao da mesma. Este resultado mostra a importncia 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 (Simtrica e Assimtrica) tendo suas vantagens e


desvantagens, era natural o surgimento um mtodo que buscasse mixar as vantagens de
cada

um,

eliminando

assim,

suas

desvantagens.

Os protocolos TLS (TransportLayer Security) e SSL (Secure Sockets Layer) so


exemplos desse mix. Para compensar o problema do segredo pr-estabelecido da chave
simtrica e o alto poder computacional necessrio na chave simtrica, foi elaborado um
meio onde em sua primeira etapa (handshake), seja utilizado a criptografia assimtrica,
autenticando assim os ns e combinando uma chave secreta para um uso posterior na
criptografia simtrica. Como o algoritmo de chave pblica garante que a negociao foi
realizada em um canal seguro, no havendo a necessidade da troca peridica da chave
(problemas no caso da Chave Simtrica), todo o restante do processo pode passar a ser
realizado utilizando algoritmos de chave simtrica, o que diminui potencialmente a
necessidade do poder computacional, permitindo seu uso em uma comunicao mais
intensa (problemas encontrados na Chave Assimtrica).

1.5. Projeto (estrutura) do programa


DADOS TCNICOS:
O projeto de criptografia descrito neste trabalho foi desenvolvido em
linguagem C#, usando os princpios de chave simtrica, que uma das
tcnicas mais simples e utilizadas de criptografia hoje em dia. Este tipo de
chave utilizado tanto para codificao quanto para descodificao de dados.
O programa funciona com o principio de substituio de caracteres
originais por outros. As posies permanecem as mesmas, mas os caracteres
inseridos pelo usurio so substitudos pelo alfabeto de criptografia.
A varivel cripto1 recebe o texto a ser criptografado separa em
unidades cada caractere e usando o comando Length pega a posio na
primeira varivel (cripto1- com o texto normal) e troca pela posio em que se
encontra a mesma letra com o alfabeto criptografado na varivel cripto2.
O cdigo desenvolvido opera duas funes especificas: criptografar ou
descriptografar um texto, tendo tambm a opo de visualizar autores de
edio e alfabeto de criptografia como descrito abaixo.
Varivel cripto1

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
Z
Varivel cripto2

"poiuytrewqasdfghjklmnbvczxLKJHGFDSAQWERTYUIOPMNBVCZ X"

importante ressaltar que o projeto aqui desenvolvido suporta apenas


letras do alfabeto, sendo assim no recebe crteres especiais.

1.6. Relatrio com as linhas de cdigo do programa

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

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

//Declarao de Variveis

int menu;
menu = 0;

string txtnormal, txtcripto = "";


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

//Formao 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 opo: \n\n\n Criptografar: Digite 1. \n\n
Descriptografar: Digite 2. \n\n Alfabeto de criptografia: Digite 3. \n\n Verificar os
Autores da Edio: Digite 4. \n\n Para sair: Digite 5. \n\n\n Digite sua opo:\n\n
");

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

//Condio de Menus
//Condio de Menu 1

if (menu == 1) //Condio de menu para entrar em criptografar


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

//Criptografando a Varivel

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
{
//Condio de Menu 2

if (menu == 2) //Condio 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
{

//Condio de Menu 3

if (menu == 3) //Condio de menu para em opes 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
{

//Condio de Menu 4

if (menu == 4) //Condio de menu para entrar em autores


{
Console.Write("\n Este software possui fins acadmicos, o mesmo foi
desenvolvido como um projeto \n sem fins lucrativos e comerciais. \n\n
Desenvolvedores: \n Letcia Coqueti \n Marcos Molter \n Thayara Vieira \n\n
Curso: Cincia da Computao - UNIP Alphaville.\n\n");
Console.Read();
}
else
{
//Condio de menu

if (menu == 5) //Condio para sair do sistema


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

}
}

1.7. Apresentao 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. Introduo Criptografia. Campinas: IC-UNICAMP.


MAIA, L. P. Criptografia e Certificao 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 Introduo e Histrias.
Rio de Janeiro: UFRJ, 2005.
OLIVEIRA, B. G. D. Fundamentos da Criptologia Parte II Criptografia
Simtrica. 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. Introduo 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.
WIKIPDIA. RSA. Wikipdia, 20 out. 2013. Disponivel em:
<http://pt.wikipedia.org/wiki/RSA>.

1.9. Relatrio 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

Potrebbero piacerti anche