Documente Academic
Documente Profesional
Documente Cultură
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.
4 Tipos de Critografia
Neste tpico veremos os tipos de criptografia mais comuns atualmente, bem como seus usos e aplicaes.
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
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
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:
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
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
Criado em 1991 por Massey e Xuejia Lai, utiliza chaves de 128 bits com uma estrutura semelhante ao anteriormente citado DES, porm, possui uma
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
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
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://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
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-
<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
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/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