Sunteți pe pagina 1din 25

1

Universidade Paulista - UNIP Bacharelado em Sistemas de Informao

AS TCNICAS CRIPTOGRFICAS, CONCEITOS, USOS E APLICAES

SO PAULO 2012

NDICE
1. Objetivo ................................................................................................................ 01 2. Introduo ............................................................................................................ 02 3. Criptografia .......................................................................................................... 03 3.1. Criptografia no Passado ............................................................................... 04 3.2. Criptografia Atualmente ............................................................................... 05 3.3. 1. Chave Criptogrfica ........................................................................... 05 4. Tipos de Criptografia ........................................................................................... 06 4.1. Chave assimtrica ........................................................................................ 06 4.1. 1. Assinatura Digital .............................................................................. 07 4.2. Hash ............................................................................................................ 09 4.2. 1. MD4 .................................................................................................. 10 4.2. 2. MD5 ................................................................................................... 10 4.2. 3. SHA-1 ................................................................................................ 11 4.2. 4. WHIRPOOL ........................................................................................ 11 4.2. 4.1 Desvantagens .................................................................................. 11 5. Chave Simtrica ................................................................................................... 12 5.1. Uso da Tcnica ............................................................................................ 12 5.1. 1. Certificado Digital ............................................................................ 13 5.2. Desvantagens .............................................................................................. 13 6. Cdigos ............................................................................................................... 15 7. Bibliografia .......................................................................................................... 22

1 Objetivo
O objetivo geral deste o estudo da criptografia, bem como as principais tcnicas utilizadas nesta cincia que visa cifrar mensagens para segurana das mesmas. O trabalho deve utilizar os conceitos aprendidos nas aulas de Comunicao e Expresso (CE), Linguagem de Programao Estruturada (LPE), Lgica de Programao e Algoritmos (LPA) e Paradigmas de Lingaguem (PL) no segundo semestre do curso de Bacharelado em Sistemas de Informao na Universidade Paulista UNIP.

2 Introduo
A criptografia a cincia e a arte de escrever mensagens em forma cifrada ou em cdigo para segurana da mensagem. A criptografia tem como objetivo ocultar o significado de uma mensagem, sendo capaz de ser entendida apenas pelo receptor desejado. O conceito da criptografia no algo atual, ele surgiu milhares anos atrs, em culturas como as do Egito, China, ndia e da Mesopotmia, que criaram a esteganografia, que consiste em diversos cdigos e mtodos para ocultar mensagens. Hoje em dia a criptografia utilizada para garantir a segurana dos nossos dados ao acessar nossa conta bancria, nosso e-mail, pginas de rede social, nos comunicarmos com amigos, etc. Ao longo desde trabalho poderemos observar vrias aplicaes e tipos de criptografia.

3 Criptografia
A Criptografia considerada a cincia e a arte de escrever mensagens em forma cifrada ou em cdigo, de forma que apenas o destinatrio possa obt-la. O termo Criptografia surgiu da fuso das palavras gregas Kryptos, que significa oculto e grphein, que significa escrever, logo criptografia significa escrita oculta. A Criptografia tem como objetivo ocultar o significado de uma mensagem, sendo capaz de ser entendida apenas pelo receptor desejado. Quando uma informao no cifrada enviada de uma pessoa (ou organizao) para outra chamada de texto claro. Quando um texto claro convertido em um cdigo cifrado, chamamos de cifragem, quando feito o processo contrrio, chamamos de decrifagem. Quando terceiros tentam ter acesso a mensagem cifrada com o propsito de determinar o texto original ou mesmo a chave, chamamos de criptonanlise (do grego analisys, que significa decomposio). O estudo da criptografia e criptoanlise denominado criptologia.

3.2 Criptografia no passado


Antes de surgir a criptografia, culturas como a do Egito, China, ndia e da Mesopotmia desenvolveram a esteganografia, comunicao secreta de ocultar uma mensagem. Por exemplo, os antigos chineses usavam seda fina para escrever uma mensagem, depois amassavam esse papel at formar uma pequena bola, que eram cobertas com cera e o mensageiro engolia. Outro exemplo do uso dessa tcnica foi dado durante a Segunda Guerra Mundial, a esteganografia era usada para comunicar estratgias de movimentao a tropas distantes, espionagem, etc. Alguns agentes reduziam fotograficamente uma pgina de texto at transform-la num ponto com menos de um milmetro de dimetro. O microponto era oculto sobre o ponto-final de uma carta. As vezes, as mensagens eram escritas com tinta invisvel, apenas visvel quando o papel era aquecido. Apesar da esteganografia e a criptografia serem cincias independentes, uma originou a outra e para que se possa obter segurana mxima possvel misturar as duas ao mesmo tempo.

3.3 Criptografia atualmente


Atualmente, usa-se a criptografia na computao, para garantir a segurana em todo o ambiente que necessite de sigilo em relao s informaes que manipuladas. A criptografia na computao no usada apenas para embaralhar e desembaralhar informaes, seu uso feito para garantir segurana nos meios de transmisso e armazenamento. Por meio da criptografia podemos: Proteger dados sigilosos em nosso computador; Criar uma partio em nosso computador que faa com que todas as mensagens l gravadas sejam automaticamente criptografdas; Proteger backups contra acesso indevido; Proteger aes realizadas na internet como acesso de e-mail, transaes bancrias e comerciais. A tcnica usada na computao a de chaves, que consiste em um conjunto de bits baseado em um algoritmo capaz de codificar e de decodificar informaes. No caso, se o receptor da mensagem usar a chave errada, no consegue receber a informao. 3.3.1 Chave Criptogrfica Uma chave criptogrfica um valor secreto que torna possvel a decifragem de um cdigo. Para tornar o entendimento deste item mais fcil, observe a ilustrao a seguir: para abrir a porta da sua casa, necessrio que destranque a fechadura com uma chave. Nessa fechadura existe uma srie de pinos e cada um desses pinos possu mltiplas posies possveis. Quando a chave introduzida na fechadura, os pinos se movem em uma posio especfica, e se essa posies forem as que a fechadura precisa para ser aberta, ela abrir, caso contrrio, permanecer trancada.

4 Tipos de Critografia
Neste tpico veremos os tipos de criptografia mais comuns atualmente, bem como seus usos e aplicaes.

4.1 Chave assimtrica


O mtodo de criptografia assimtrica utiliza um par de chaves: uma chave pblica e uma chave privada. A chave pblica enviada para quem quiser mandar informaes para o criador da mesma, j a chave privada s reconhecida pelo criador. Nesse tipo de criptografia nem mesmo o criador da mensagem criptografada pode decifr-la, somente quem est com a outra chave. Esse tipo de criptografia geralmente usado para distribuio de chaves simtricas, mas tambm podem ser usados para: Confidencialidade: A chave pblica usada para cifrar mensagens, com isso apenas o dono da chave privada pode decifr-la. Autenticidade: A chave privada usada para cifrar mensagens, com isso garante-se que apenas o dono da chave privada poderia ter cifrado a mensagem que foi decifrada com a 'chave pblica', e que a mensagem no foi forjada. Abaixo podemos observar o processo de criptografar mensagens com chaves assimtricas:

Passo 1: Alice envia sua chave pblica para Bob

Passo 2: Bob cifra a mensagem com a chave pblica de Alice e envia para Alice, que recebe e decifra o texto utilizando sua chave privada

Um dos problemas com a chave assimtrica o longo tempo que se pode levar para descriptografar as mensagens, tornando-se invivel para comunicao intensa. Alguns algoritmos que usam chave simtrica e suas caractersticas so: RSA (Rivest, Chamir e Adleman)

Criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman, um dos algoritmos de chave assimtrica mais utilizados. Seu funcionamento consiste na multiplicao de dois nmeros primos muito grandes para a gerao de um terceiro nmero. Para quebrar essa criptografia, seria necessria a fatorao desse nmero para encontrar os dois nmeros primos que o geraram, porm, para isso necessrio um poder muito alto de processamento, o que acaba inviabilizando a tarefa. A chave privada os dois nmeros primos e a pblica o terceiro nmero. ElGamal

Desenvolvido por Taher ElGamal, faz uso de um algoritmo conhecido como logaritmo discreto para se tornar seguro. frequente seu uso em assinaturas digitais. Podemos citar ainda o DSS (Digital Signature Standard), entre outros. 4.1.1 Assinatura Digital A assinatura digital um mtodo de autenticao que surgiu mediante a insegurana de no se ter certeza da pessoa com quem se est falando. Esse tipo de criptografia agrega confiana e segurana ao meio digital.

10

A utilizao da assinatura digital providencia a prova inegvel de que uma mensagem veio do emissor. Para verificar este requisito, uma assinatura digital deve ter as seguintes propriedades: Autenticidade: o receptor deve poder confirmar que a assinatura foi feita pelo emissor; Integridade: qualquer alterao da mensagem faz com que a assinatura no corresponda mais ao documento; No repdio: o emissor no pode negar a autenticidade da mensagem. Para esse tipo de autenticao usada a criptografia assimtrica, j que somente o proprietrio da chave privada pode assinar a mensagem, garantindo assim todas as propriedades citadas acima. Para o melhor entendimento desse mtodo podemos exemplificar da seguinte maneira: suponha que Alice (origem) queira comunicar o nascimento de sua filha para todos os seus amigos (destinatrios = Bob), mas queira garantir aos mesmos que a mensagem foi enviada realmente por ela e deseja que a mesma chegue integra aos destinatrios, sem alteraes como, por exemplo, do sexo da criana. Alice ento cifra a mensagem com sua chave privada e a envia, em um processo denominado de assinatura digital. Cada um que receber a mensagem dever decifr-la, ou seja, verificar a validade da assinatura digital, utilizando para isso a chave pblica de Alice. Como a chave pblica de Alice apenas decifra (ou seja, verifica a validade de) mensagens cifradas com sua chave privada, fica garantida assim a autenticidade, integridade e no-repudiao da mensagem. Pois se algum modificar um bit do contedo da mensagem ou se outra pessoa assin-la ao invs de Alice, o sistema de verificao no ir reconhecer a assinatura digital de Alice como sendo vlida. Podemos observar esse pequeno processo na ilustrao abaixo:

11

Imagem retirada training.com.br/lpmaia/pub_seg_cripto.htm

Uma das desvantagens do uso da assinatura que ela no garante a confidencialidade da mensagem, qualquer intruso pode acess-la apenas utilizando a chave pblica. Para garantir a confidencialidade preciso que alm de assinar a mensagem, ela seja criptografada junto com a assinatura, assim o receptor primeiro decifrar a mensagem com sua chave privada e depois reconhecer a assinatura do remetente, garantindo a autenticidade.

4.2 Hash
Um hash uma sequencia de bits gerados por um algoritmo de disperso, ou seja, um algoritmo de criptografia que garante a integridade da mensagem, em geral representada por um hexadecimal, que permite a visualizao de letras e nmeros (0 a 9 e A a F). Esse tipo de criptografia composto por frmulas matemticas complexas, para poder garantir a irreversibilidade e a unicidade da hash. A alterao de um simples bit na mensagem gera um hash completamente diferente e altera o valor de conferncia. A criptogtafia hash permite que a partir de uma string de qualquer tamanho seja gerado um identificador digital de tamanho fixo chamado hash. Esse identificador enviado ao destinatrio junto com a mensagem para que ele possa verificar a integridade da mensagem ao aplicar o mesmo mtodo mensagem original e comparar ao hash enviado. Uma hash pode ser utilizada para:

12

Verificar a integridade de um arquivo armazenado em seu computador ou em seus backups; Verificar a integridade de um arquivo obtido da Internet (alguns sites, alm do arquivo em si, tambm disponibilizam o hash correspondente, para que voc possa verificar se o arquivo foi corretamente transmitido e gravado);

4.2.1 MD4

Gerar assinaturas digitais (seo .

O MD4 um algoritmo hash que cria um hash de 128 bits, foi desenvolvido por RSA Data Security, Inc. Ronald Rivest em 1990/91, mas por conta de vrios ataques, o algoritmo considerado frgil. A sequncia de entrada para MD4 deve ser de comprimento mltiplo de 512 bits, e a sada de 128 bits. Se a entrada no for de 512 bits, deve ser completada por um bit 1 seguida de zeros suficientes para que o total de bits seja 64 bits menor que o prximo mltiplo de 512. Nos ltimos 64 bits, deve ser armazenado o comprimento da entrada original, por exemplo, bit 1 seguido de zeros: 10000...000. 4.2.2 MD5 O MD5 (Message-Digest algorithm 5) um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo par-a-par (P2P, ou Peer-to-Peer, em ingls), verificao de integridade e logins. Existem alguns mtodos de ataque divulgados para o MD5. Como o MD5 faz apenas uma passagem sobre os dados, se dois prefixos com o mesmo hash forem construdos, um sufixo comum pode ser adicionado a ambos para tornar uma coliso mais provvel. Deste modo possvel que duas strings diferentes produzam o mesmo hash, como no exemplo abaixo:

13

Um funo de hash que transforma nomes para inteiros de 0 at 15. Existe um coliso entre a chaves "John Smith" e "Sandra Dee".

4.2.3 SHA-1 (Secure Hash Algorithm) O processo unidirecional e impossibilita descobrir o contedo original a partir do hash. O valor de conferncia ("check-sum") muda se um nico bit for alterado, acrescentado ou retirado da mensagem. A SHA-1, usada numa grande variedade de aplicaes e protocolos de segurana,

incluindo TLS, SSL, PGP, SSH, S/MIME e IPSec. Desenvolvido pelo NIST e NSA. J foram exploradas falhas no SHA. 4.2.4 WHIRLPOOL Funo criptogrfica de hash desenvolvida por Paulo S. L. M. Barreto e por Vincent Rijmen (co-autor do AES). A funo foi recomendada pelo

projeto NESSIE (Europeu). Foi tambm adotado pelo ISO e IEC como parte do padro internacional ISO 10118-3. 4.2.4.1 Desvantagens Dependncia da escolha de funo de hashing: Para que o tempo de acesso mdio ideal T(n) = c1 . (1/b).n + c2 seja mantido, necessrio que a funo de hashing divida o universo dos dados de entrada em b conjuntos de tamanho aproximadamente igual. Tempo mdio de acesso timo somente em uma faixa: A complexidade linear implica em um crescimento mais rpido em relao a n do que as rvores, p.ex. Existe uma faixa de valores de n, determinada por b, onde o hashing ser muito melhor do que uma rvore.

14

5 Chave simtrica
A criptografia de chave simtrica usa a mesma chave para cifrar e decifrar informaes. O algoritmo para criptografia simtrica mais simples, e por conta disso o processo mais rpido. Abaixo podemos observar o processo de criptografar mensagens com chaves simtricas:

Imagem retirada do site fundacaoaprender.org.br

Para podermos entender melhor esse tipo de criptografia podemos ilustrar da seguinte maneira: se voc cria uma mensagem codificada para enviar um a um amigo, nela cada letra substituda pela letra que est duas posies abaixo no alfabeto. Sendo assim, "A" se torna "C," e "B" se torna "D". Voc j informou ao seu amigo de confiana que o cdigo "deslocamento em 2 posies". Seu amigo recebe a mensagem e a decodifica. Qualquer outra pessoa que olhar

esta mensagem ver somente um emaranhado de letras sem sentido.

5.1 Uso da Tcnica


Alguns algoritmos que usam chave simtrica e suas caractersticas so: DES (Data Encryption Standard)

Criado pela IBM em 1977, usa criptografia de 56 bits, o que corresponde a cerca de 70 quadrilhes de chaves diferentes. Apesar de ser um valor bastante alto, foi quebrado por em 1997 por fora bruta (tentativa e erro), em um desafio feito na Internet.

15

IDEA (Internacional Data Encryption Algorithm)

Criado em 1991 por Massey e Xuejia Lai, utiliza chaves de 128 bits com uma estrutura semelhante ao anteriormente citado DES, porm, possui uma

implementao mais simples. RC (Rons Code ou Rivest Cipher)

Desenvolvido por Ron Rivest, largamente utilizado em e- mails. Possui diversas verses (RC2, RC4, RC5 e RC6), com chaves que vo de 8 1024 bits 5.1.1 Certificado Digital Um certificado digital pode ser definido como um documento eletrnico, assinado digitalmente por uma Autoridade Certificadora, com a funo de ligar uma pessoa ou entidade a uma chave pblica. Sem o uso desse mtodo de autenticao um intruso pode facilmente interceptar mensagens com uma chave pblica forjada por ele e se passar por outra pessoa. Por exemplo, se Ana deseja enviar uma mensagem para Paulo para solicitar sua chave pblica a fim de se comunicar com ele, Bruno (intruso) pode interceptar essa mensagem e devolver com uma chave pblica forjada por ele, e como no h garantia de que aquela chave enviada de volta para Ana realmente pertence Paulo, ela se comunicar com um intruso sem saber. O mesmo pode ser feito com Paulo, assim ao invs dele se comunicar com Ana e vice-versa, na verdade estaro se comunicando com Bruno, um invasor. Os certificados de chave pblica geralmente so formato padro ITU X.509v3. A Autoridade Certificadora mantm informaes como nome do detentor, nmero de srie, verso, algoritmo utilizado, perodo de validade ( recomendado atualizar a chave a cada no mximo trs anos), extenses, chave pblica do detentor e sua assinatura. Como exemplificado na figura abaixo:

5.1 Desvantagens
Uma das desvantagens desses algoritmos que todas as partes que enviam e recebem dados com criptografia de chave simtrica devem fazer uso da mesma chave, gerando um problema com segurana. Outros problemas com a chave simtrica so a necessidade de troca constante das chaves e a impossibilidade de serem usados com fins de autenticao.

16

Imagem retirada de www.sempretops.com/informacao/certificado-digital-gratuito/

Existem diversos tipos de cerificados, conforme descrio feita a seguir. Certificados de CA: utilizados para validar outros certificados; so autoassinados ou assinados por outra CA. Certificados de servidor: utilizados para identificar um servidor seguro; contm o nome da organizao e o nome DNS do servidor. Certificados pessoais: contm nome do portador e, eventualmente, informaes como endereo eletrnico, endereo postal, etc. Certificados de desenvolvedores de software:.utilizados para validar assinaturas associadas a programas.

17

6 Cdigos
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ProgramaCriptografiaeDescriptografia { class Program { static void Main(string[] args) { string frase, fraseOrig; string op, op1; int num; inicio: Console.WriteLine("Deseja Criptografar ou Descriptografar?"); Console.WriteLine("1 - Criptografar 2 - Descriptografar"); op = Console.ReadLine(); Console.Clear(); switch (op) { case "1": Console.WriteLine("Digite sua Mensagem: "); fraseOrig = Console.ReadLine(); frase = fraseOrig; num = fraseOrig.Length; Console.Clear(); frase = frase.Replace("a", "!@#$%"); frase = frase.Replace("b", "&*(#@"); frase = frase.Replace("c", "&*$@#@"); frase = frase.Replace("d", "+{})(&"); frase = frase.Replace("e", "@$>:[["); frase = frase.Replace("f", "%$#@#$"); frase = frase.Replace("g", ")(_+&"); frase = frase.Replace("h", "!#@$%"); frase = frase.Replace("i", "()&#"); frase = frase.Replace("j", "{}()//"); frase = frase.Replace("k", "!$%&&");

18

frase = frase.Replace("l", "*+.,;;"); frase = frase.Replace("m", "''''''"); frase = frase.Replace("n", "%$&**&"); frase = frase.Replace("o", "&!&!!&"); frase = frase.Replace("p", "!(!(!("); frase = frase.Replace("q", "))!)!!"); frase = frase.Replace("r", "?!?!?!"); frase = frase.Replace("s", "======"); frase = frase.Replace("t", "||||||"); frase = frase.Replace("u", "\\\\??"); frase = frase.Replace("v", "//////"); frase = frase.Replace("w", ""); frase = frase.Replace("x", ""); frase = frase.Replace("y", "#@!"); frase = frase.Replace("z", ""); frase = frase.Replace("A", "!)(_+_"); frase = frase.Replace("B", ":)(:/:"); frase = frase.Replace("C", ""); frase = frase.Replace("D", ""); frase = frase.Replace("E", ""); frase = frase.Replace("F", ""); frase = frase.Replace("G", ""); frase = frase.Replace("H", ""); frase = frase.Replace("I", "-*+*/"); frase = frase.Replace("J", ""); frase = frase.Replace("K", "&@!#"); frase = frase.Replace("L", "][)())"); frase = frase.Replace("M", ".;.;.;"); frase = frase.Replace("N", "+-//**"); frase = frase.Replace("O", "&*_)(_"); frase = frase.Replace("P", "$%$"); frase = frase.Replace("Q", "!#!#!#"); frase = frase.Replace("R", "%#%#%#"); frase = frase.Replace("S", "#@#@##"); frase = frase.Replace("T", "%$%$%%"); frase = frase.Replace("U", "&*&*&*"); frase = frase.Replace("V", "(__(--"); frase = frase.Replace("W", "())_(("); frase = frase.Replace("X", "&%&&"); frase = frase.Replace("Y", "#@#$$%"); frase = frase.Replace("Z", "*&*%"); frase = frase.Replace("0", "!!!!!!"); frase = frase.Replace("1", "@@@@@@"); frase = frase.Replace("2", "######"); frase = frase.Replace("3", "$$$$$$"); frase = frase.Replace("4", "%%%%%%"); frase = frase.Replace("5", "&&&&&&"); frase = frase.Replace("6", "******"); frase = frase.Replace("7", "(((((("); frase = frase.Replace("8", "))))))");

19

frase = frase.Replace("9", "++++++"); frase = frase.Replace("", "%$**(*"); frase = frase.Replace("", "{}**&"); frase = frase.Replace("", "<<<<<<"); frase = frase.Replace("", ">>>>>>"); frase = frase.Replace("", "><><><"); frase = frase.Replace("", "+&*("); frase = frase.Replace("", "!$&%"); frase = frase.Replace("", "'((())"); frase = frase.Replace("", "//))(("); frase = frase.Replace("", "|/|/|/"); frase = frase.Replace("", "+-==-+"); frase = frase.Replace("", "**&*&*"); frase = frase.Replace("", "///**-"); frase = frase.Replace("", "/</,?<"); frase = frase.Replace("", ",.,<>}"); frase = frase.Replace("", ")))))("); frase = frase.Replace("", "}{}}}{"); frase = frase.Replace("", ""); frase = frase.Replace("", "(*&()"); frase = frase.Replace("", "|\\;//"); frase = frase.Replace("", "|\\//|"); frase = frase.Replace("", "[]||//"); frase = frase.Replace("", "{}||][");

Console.WriteLine("_____________________________ \n \n **MENSAGEM ENCRIPTADA** \n \n" + frase + "\n_____________________________ \n\n\n"); Console.WriteLine("Sua Mensagem Original possui {0} caracteres \n\n", num);

Console.WriteLine("Deseja Ver mensagem Original ou Digitar outra?"); Console.WriteLine("1 -> Ver Mensagem \n2 -> Digitar outra"); op1 = Console.ReadLine(); switch (op1) { case "1": Console.WriteLine("_____________________________ \n" + fraseOrig + "\n_____________________________ \n\n"); Console.WriteLine("Pressione qualquer tecla para voltar ao inicio"); Console.ReadKey(); Console.Clear();

20

goto inicio; case "2": Console.Clear(); goto inicio;

default: break; } break; default: Console.WriteLine("OPERAO INVLIDA \n Pressione qualquer tecla para voltar."); Console.ReadKey(); goto inicio;

case "2": Console.WriteLine("Digite a chave da sua frase: "); frase = Console.ReadLine(); fraseOrig = frase; num = fraseOrig.Length; Console.Clear(); fraseOrig = fraseOrig.Replace("!@#$%", "a"); fraseOrig = fraseOrig.Replace("&*(#@", "b"); fraseOrig = fraseOrig.Replace("&*$@#@", "c"); fraseOrig = fraseOrig.Replace("+{})(&", "d"); fraseOrig = fraseOrig.Replace("@$>:[[", "e"); fraseOrig = fraseOrig.Replace("%$#@#$", "f"); fraseOrig = fraseOrig.Replace(")(_+&", "g"); fraseOrig = fraseOrig.Replace("!#@$%", "h"); fraseOrig = fraseOrig.Replace("()&#", "i"); fraseOrig = fraseOrig.Replace("{}()//", "j"); fraseOrig = fraseOrig.Replace("!$%&&", "k"); fraseOrig = fraseOrig.Replace("*+.,;~", "l"); fraseOrig = fraseOrig.Replace("''''''", "m"); fraseOrig = fraseOrig.Replace("%$&**&", "n");

21

fraseOrig = fraseOrig.Replace("&!&!!&", "o"); fraseOrig = fraseOrig.Replace("!(!(!(", "p"); fraseOrig = fraseOrig.Replace("))!)!!", "q"); fraseOrig = fraseOrig.Replace("?!?!?!", "r"); fraseOrig = fraseOrig.Replace("^`^`^`", "s"); fraseOrig = fraseOrig.Replace("||||||", "t"); fraseOrig = fraseOrig.Replace("\\\\??", "u"); fraseOrig = fraseOrig.Replace("//////", "v"); fraseOrig = fraseOrig.Replace("", "w"); fraseOrig = fraseOrig.Replace("", "x"); fraseOrig = fraseOrig.Replace("#@!", "y"); fraseOrig = fraseOrig.Replace("", "z"); fraseOrig = fraseOrig.Replace("!)(_+_", "A"); fraseOrig = fraseOrig.Replace(":)(:/:", "B"); fraseOrig = fraseOrig.Replace("", "C"); fraseOrig = fraseOrig.Replace("", "D"); fraseOrig = fraseOrig.Replace("", "E"); fraseOrig = fraseOrig.Replace("", "F"); fraseOrig = fraseOrig.Replace("", "G"); fraseOrig = fraseOrig.Replace("", "H"); fraseOrig = fraseOrig.Replace("-*+*/", "I"); fraseOrig = fraseOrig.Replace("", "J"); fraseOrig = fraseOrig.Replace("&@!#", "K"); fraseOrig = fraseOrig.Replace("][)())", "L"); fraseOrig = fraseOrig.Replace(".;.;.;", "M"); fraseOrig = fraseOrig.Replace("+-//**", "N"); fraseOrig = fraseOrig.Replace("&*_)(_", "O"); fraseOrig = fraseOrig.Replace("$%$", "P"); fraseOrig = fraseOrig.Replace("!#!#!#", "Q"); fraseOrig = fraseOrig.Replace("%#%#%#", "R"); fraseOrig = fraseOrig.Replace("#@#@##", "S"); fraseOrig = fraseOrig.Replace("%$%$%%", "T"); fraseOrig = fraseOrig.Replace("&*&*&*", "U"); fraseOrig = fraseOrig.Replace("(__(--", "V"); fraseOrig = fraseOrig.Replace("())_((", "W"); fraseOrig = fraseOrig.Replace("&%&&", "X"); fraseOrig = fraseOrig.Replace("#@#$$%", "Y"); fraseOrig = fraseOrig.Replace("*&*%", "Z"); fraseOrig = fraseOrig.Replace("!!!!!!", "0"); fraseOrig = fraseOrig.Replace("@@@@@@", "1"); fraseOrig = fraseOrig.Replace("######", "2"); fraseOrig = fraseOrig.Replace("$$$$$$", "3"); fraseOrig = fraseOrig.Replace("%%%%%%", "4"); fraseOrig = fraseOrig.Replace("&&&&&&", "5"); fraseOrig = fraseOrig.Replace("******", "6"); fraseOrig = fraseOrig.Replace("((((((", "7"); fraseOrig = fraseOrig.Replace("))))))", "8"); fraseOrig = fraseOrig.Replace("++++++", "9"); fraseOrig = fraseOrig.Replace("%$**(*", ""); fraseOrig = fraseOrig.Replace("{}**&", "");

22

fraseOrig = fraseOrig.Replace("<<<<<<", ""); fraseOrig = fraseOrig.Replace(">>>>>>", ""); fraseOrig = fraseOrig.Replace("><><><", ""); fraseOrig = fraseOrig.Replace("+&*(", ""); fraseOrig = fraseOrig.Replace("!$&%", ""); fraseOrig = fraseOrig.Replace("'((())", ""); fraseOrig = fraseOrig.Replace("//))((", ""); fraseOrig = fraseOrig.Replace("|/|/|/", ""); fraseOrig = fraseOrig.Replace("+-==-+", ""); fraseOrig = fraseOrig.Replace("**&*&*", ""); fraseOrig = fraseOrig.Replace("///**-", ""); fraseOrig = fraseOrig.Replace("/</,?<", ""); fraseOrig = fraseOrig.Replace(",.,<>}", ""); fraseOrig = fraseOrig.Replace(")))))(", ""); fraseOrig = fraseOrig.Replace("}{}}}{", ""); fraseOrig = fraseOrig.Replace("", ""); fraseOrig = fraseOrig.Replace("(*&()", ""); fraseOrig = fraseOrig.Replace("|\\;//", ""); fraseOrig = fraseOrig.Replace("|\\//|", ""); fraseOrig = fraseOrig.Replace("[]||//", ""); fraseOrig = fraseOrig.Replace("{}||][", "");

Console.WriteLine("_____________________________ \n \n **MENSAGEM DECRIPTADA** \n \n" + fraseOrig + "\n_____________________________ \n\n\n"); Console.WriteLine("Sua Mensagem Criptografada possui {0} caracteres \n\n", num);

Console.WriteLine("Deseja Ver mensagem Original ou Digitar outra?"); Console.WriteLine("1 -> Ver Mensagem \n2 -> Digitar outra"); op1 = Console.ReadLine(); switch (op1) { case "1": Console.WriteLine("_____________________________ \n" + fraseOrig + "\n_____________________________ \n\n"); Console.WriteLine("Pressione qualquer tecla para voltar ao inicio"); Console.ReadKey(); Console.Clear(); goto inicio;

23

case "2": Console.Clear(); goto inicio; default: Console.WriteLine("OPERAAO INVALIDA \nPressione qualquer tecla para voltar"); Console.ReadKey(); goto inicio; } } } } }

24

6 Bibliografia
WIKIPEDIA, CRIPTOGRAFIA, 13/10/2012 <http://pt.wikipedia.org/wiki/Criptografia> Acesso em 14 de Outubro de 2012 s 16h47 CARTILHA DE SEGURANA PARA INTERNET, CRIPTOGRAFIA

<http://cartilha.cert.br/criptografia> - Acesso em 14 de Outubro de 2012 s 17h03 CESAR AUGUSTO ROMAGNOLO, 24/08/2007

<http://www.oficinadanet.com.br/artigo/443/o_que_e_criptografia> Acesso em 14 de Outubro de 2012 s 15h11 DANIELA PISTELLI, CRIPTOGRAFIA

<http://www.josevalter.com.br/download/seguranca/Criptografia.pdf> Acesso em 15 de Outubro de 2012 s 15h40 AVI ALKALAY, TUDO QUE VOC PRECISA SABER SOBRE CRIPTOGRAFIA E TINHA MEDO DE PERGUNTAR

<http://avi.alkalay.net/articlefiles/criptografia/cripto.pdf> Acesso em 15 de Outubro de 2012 s 15h47 LENISA MORAIS QUEIROZ, A CRIPTOGRAFIA AO LONGO DOS TEMPOS <http://biblioteca.claretiano.edu.br/phl8/pdf/20001987.pdf> Outubro de 2012 s 15h55 UFRJ, ESTEGANOGRAFIA <http://www.gta.ufrj.br/grad/09_1/versaoAcesso em 15 de

final/stegano/introducao.html> Acesso em 15 de Outubro de 2012 s 16h01 UFRJ, TIPOS DE CRIPTOGRAFIA <http://www.gta.ufrj.br/grad/07_1/ass-

dig/TiposdeCriptografia.html> Acesso em 15 de Outubro de 2012 s 16h12 DANIELA GONZLEZ, CONHEA OS TIPOS DE CRIPTOGRAFIA MAIS

UTILIZADOS

<http://idgnow.uol.com.br/seguranca/2007/10/05/idgnoticia.2007-10-

05.1318584961/> Acesso em 16 de Outubro de 2012 s 16h38 UFRJ, CRIPTOGRAFIA

<http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2008_2/hugo/Criptografia.html> Acesso em 16 de Outubro de 2012 s 16h43 WIKIPEDIA, ALGORITMO DE CHAVE SIMTRICA, 11/08/2012

<http://pt.wikipedia.org/wiki/Algoritmo_de_chave_sim%C3%A9trica> Acesso em 16 de Outubro de 2012 s 16h46

25

WIKIPEDIA,

CHAVE

SIMTRICA,

26/07/2012

<http://pt.wikipedia.org/wiki/Chave_assim%C3%A9trica> Acesso em 16 de Outubro de 2012 s 16h53 WIKIPEDIA, HASH, 11/09/2012 <http://pt.wikipedia.org/wiki/Hash> Acesso em 16 de Outubro de 2012 s 17h00 WIKIPEDIA, ALGORITMO DE SIPERSO, 16/03/2012

<http://pt.wikipedia.org/wiki/Algoritmo_de_dispers%C3%A3o> Acesso em 17 de Outubro de 2012 s 15h42 WIKIPEDIA, ASSINATURA DIGITAL, 10/10/2012

<http://pt.wikipedia.org/wiki/Assinatura_digital> Acesso em 17 de Outubro de 2012 s 16h15 JUSITA FEREDERAL, CONSELHO DA JUSTIA FEDERAL

<http://www.jf.jus.br/cjf/tecnologia-da-informacao/identidade-digital/o-que-eassinatura-digital> Acesso em 17 de Outubro de 2012 s 16h22 RAFAEL GAZZARRINI, O QUE ASSINATURA DIGITAL?, 03/09/2012

<http://www.tecmundo.com.br/web/941-o-que-e-assinatura-digital-.htm> Acesso em 17 de Outubro de 2012 s 16h37 LUIZ GUSTAVO DIAS, FUNDAMENTO DE CRIPTOGRAFIA,

<http://www.fundacaoaprender.org.br/fundamentos-de-criptografia> Acesso em 17 de Outubro de 2012 s 16h42 UFSC, HASHING < http://www.inf.ufsc.br/~ine5384-hp/Hashing/> Acessado em 18 de Outubro de 2012 s 23h12 TRAINING, TRAINING <http://www.training.com.br/lpmaia/pub_seg_cripto.htm>

Acesso em 17 de Outubro de 2012 s 16h59 WIKIPEDIA, MD4, 08/05/2012 <http://pt.wikipedia.org/wiki/MD4> Acesso em 19 de Outubro de 2012 s 22h34 WIKIPEDIA, MD5, 08/05/2012 <http://pt.wikipedia.org/wiki/MD5> Acesso em 10 de Setembro de 2012 s 22h43 WIKIPEDIA, SHA1, 08/05/2012 < http://pt.wikipedia.org/wiki/SHA-1> Acesso em 10 de Setembro de 2012 s 22h47

S-ar putea să vă placă și