Baixe o app para aproveitar ainda mais
Prévia do material em texto
Gestão da Segurança da Informação Aula 07 Criptografia aplicada na comunicação de sistemas Objetivos Específicos • Entender os principais conceitos de criptografia aplicada na qualidade de software e na comunicação de sistemas. Temas Introdução 1 Criptografia 2 Aplicações da Criptografia Considerações finais Referências Alexandre de Aguiar Amaral Professor Autor Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 2 Introdução Caro aluno, Nesta aula iremos estudar sobre a criptografia e sua importância para a segurança da informação. Nesse sentido, discutiremos os principais tipos de criptografia e como eles podem ser utilizados para prover diversos serviços de segurança, seja no contexto de software ou na comunicação de dados. Bom estudo! 1 Criptografia Iniciaremos descrevendo alguns termos importantes para o estudo da criptografia. Esses termos são definidos por Stamp (2011) e Stallings (2008) na Figura 1 a seguir: Figura 1 – Termos da Criptografia Criptoanálise Texto claro (plaintext) Cifra ou Sistema Criptográfico Decifragem ou Descriptografia Cifragem ou Criptografia > > > > Chave Texto cifrado (ciphertext)> > Processo que converte os dados originais em dados cifrados/códigos secretos. Processo que converte os dados cifrados/códigos secretos em dados originais. Esquema utilizado para criptografar os dados. O termo algoritmo criptográfico também é utilizado com o mesmo propósito. Quebra de códigos secretos; Dados originais sem estar codificados; Dados codificados; Usada como dado de entrada na cifra ou no sistema criptográfico para criptografar e descriptografar. Fonte: Stamp (2011) e Stallings (2008). A criptografia é considerada uma ciência de proteção da informação através de uma codificação que a transforma em um formato ilegível. É uma maneira eficaz de proteger informações sensíveis, seja no seu armazenamento em uma mídia ou na sua transmissão por uma rede de comunicação não confiável. Um dos objetivos da criptografia e seus mecanismos é esconder informações de pessoas não autorizadas (KIM e SOLOMON, 2014). Os primeiros métodos de criptografia surgiram mais de 2000 anos a.C., sendo que no início ela era considerada mais como uma forma de arte. No antigo Egito os hieróglifos eram utilizados nos túmulos dos faraós. Júlio César (100-44 a.C.), o imperador romano, desenvolveu um método simples, conhecido como Cifra de César, que fazia a transposição de letras a fim de permitir que mensagens estratégicas fossem codificadas. Mais tarde ela foi adaptada como uma ferramenta para ser usada na guerra e no comércio, pelo governo e por organizações ou pessoas que necessitavam que seus segredos fossem protegidos (HARRIS, 2013). Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 3 Com o surgimento da internet e seus diversos serviços (ex.: comércio eletrônico e transação bancária online), a criptografia ganhou nova proeminência como uma ferramenta vital para a segurança da informação. A criptografia tornou-se parte integrante do mundo das TICs (Tecnologias da Informação e Comunicação). Hoje ela é utilizada por diversas tecnologias e protocolos, garantindo o armazenamento, comunicações e transações seguras; pois através dela é possível prover os serviços de segurança como confidencialidade, integridade, autenticidade e irretratabilidade/não repúdio. Em linhas gerais, há três categorias de cifras ou criptografia que podemos denominar simétrica, assimétrica e funções ou algoritmos de hash, as quais conheceremos na sequência (STAMP, 2011). 1.1 Criptografia Simétrica A criptografia ou cifra de chave simétrica é a mais antiga de todas. Sua principal característica consiste na utilização de uma chave única, tanto para cifrar quanto para decifrar, conforme apresentado na Figura 2. Um algoritmo criptográfico ou cifra é necessário, juntamente com uma chave, para (de)cifrar um texto plano em texto cifrado e vice-versa. O algoritmo tem o papel de embaralhar o texto plano através da substituição ou transposição de caracteres (ou bits) a fim de gerar um texto cifrado. Figura 2 – Funcionamento da criptografia simétrica Texto cifrado Texto planoTexto plano Chave Chave Cifrar Decifrar A chave, com seu tamanho geralmente mensurado em bits, representa um código que é compartilhado entre as partes (ex.: emissor e destinatário) e que serve tanto para cifrar quanto para decifrar. As chaves simétricas são também denominadas chaves secretas, uma Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 4 vez que a segurança da criptografia simétrica depende do sigilo da chave. Caso um usuário mal-intencionado obtenha essa chave, ele pode decifrar qualquer mensagem criptografada interceptada por ele (STAMP, 2011). É importante destacar que, embora seja comum utilizarmos nos exemplos os termos texto ou mensagem, os algoritmos criptográficos simétricos ou assimétricos devem ser capazes de (des)criptograr qualquer tipo de dado que esteja no formato digital. Isso inclui não apenas os arquivos textuais, mas também áudio, vídeo, imagem, softwares, drivers, dados de rede (pacotes), etc. Os mesmos conceitos e requisitos são válidos para as funções ou algoritmos de hash que trataremos mais adiante. Surge então um dos grandes desafios ou desvantagens desse tipo de criptografia. Se Alice e Caio desejam se comunicar de forma segura utilizando a criptografia simétrica, ambos precisam compartilhar a cópia da mesma chave. Considere o fato de que Caio mora geograficamente distante de Alice, por exemplo em outro país. Nesse caso, como compartilhar essa chave de modo que ela não seja interceptada e descoberta? Se Alice também quer estabelecer uma comunicação usando a criptografia simétrica com Maria e João, ela precisa ter mais três chaves separadas, uma para cada pessoa. Agora imagine o cenário em que Alice possui centenas de amigos; como manter o controle e utilizar a chave correta correspondente a cada destinatário? O fato é que a distribuição e o gerenciamento de chaves no contexto da criptografia simétrica são tarefas difíceis. Embora a criptografia simétrica tenha essas desvantagens, ela ainda hoje tem sido amplamente utilizada. Nesse caso, qual o motivo para ainda utilizarmos esse tipo de criptografia? Há duas razões principais: em primeiro lugar, algoritmos simétricos são muito rápidos, e em segundo lugar, o texto cifrado por eles pode ser difícil de ser quebrado através de técnicas de criptoanálise. Comparados aos algoritmos assimétricos (que abordaremos na sequência), os algoritmos simétricos possuem um ganho significativo em termos de velocidade. Eles podem criptografar e descriptografar, de forma relativamente rápida, grandes volumes de dados que levariam muito tempo para serem criptografados e descriptografados com um algoritmo assimétrico. Além da velocidade, é também difícil descobrir os dados codificados com um algoritmo simétrico se uma chave grande é utilizada (STALLINGS, 2008). Harris (2013), nos apresenta exemplos de algoritmos simétricos: • DES (Data Encryption Standard) e 3DES (Triple-DES); • Blowfish; • IDEA (International Data Encryption Algorithm); Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 5 • RC4, RC5 e RC6; • AES (Advanced Encryption Standard). Desde 1977 o algoritmo DES foi o mais utilizado como padrão para criptografia simétrica. O algoritmo AES foi publicado pelo NIST (National Institute of Standards and Technology) em 2001 para ser um substituto do DES. A justificativa surgiu pela necessidade de se ter um algoritmo mais seguro – uma vez que o DES se tornou vulnerável a ataques por força bruta – e mais eficiente, para ser implementado tanto em hardware quanto em software (STALLINGS, 2008). 1.2 Criptografia Assimétrica A criptografia de chave assimétrica, também conhecida como criptografia de chave pública, surgiuna década de 1970. Ela é categorizada por utilizar duas chaves distintas denominadas chave privada e chave pública. Se uma mensagem é cifrada por uma chave, ela só pode ser decifrada pela outra chave par. Por exemplo, se uma mensagem for cifrada utilizando a chave pública, será possível obter a mensagem original somente utilizando a chave privada correspondente (FOROUZAN, 2012). Na Figura 3 apresentamos um exemplo da aplicação da criptografia assimétrica para prover o serviço de autenticidade/sigilo da informação. Pelo fato de qualquer pessoa possuir a chave pública de Ana, eles podem cifrar e enviar uma mensagem para ela. Como somente Ana possui a chave privada, apenas ela poderá descriptografar e ler a mensagem enviada. Figura 3 – Funcionamento da criptografia assimétrica para prover autenticidade/sigilo Texto cifrado Texto planoTexto plano Chave pública de Ana Chave pública de Ana Cifrar Decifrar No contexto da criptografia assimétrica, as chaves públicas e privadas são matematicamente relacionadas. Contudo, se alguém tem a chave pública de outra pessoa, não deve ser capaz de descobrir a chave privada correspondente. A chave pública pode ser conhecida por todos, porém a chave privada deve ser mantida em sigilo e utilizada apenas pelo proprietário. Muitas vezes as chaves públicas dos usuários são publicadas através de Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 6 e-mails, para que estejam disponíveis a qualquer pessoa que queira usar essa chave para se comunicar de forma segura com uma pessoa em particular (KIM; SOLOMON 2014). Uma das características importantes da criptografia de chave pública é a possibilidade de prover a assinatura digital. A assinatura digital consiste no processo em que um dado usuário criptografa a mensagem utilizando sua chave privada. O objetivo é substituir as assinaturas escritas à mão, permitindo que no mundo digital seja possível prover a autenticação das mensagens e proteger contra falsificações de terceiros. Quando a mensagem é criptografada com a chave privada do usuário, qualquer pessoa com a correspondente chave pública pode decifrá-la. Assim, é possível comprovar que somente o usuário detentor da chave privada poderia ter criptografada aquela mensagem (STAMP, 2011). Harris (2013) destaca que além dos problemas da distribuição e gerenciamento das chaves, intrínsecos à criptografia simétrica, esta pode garantir o serviço de confidencialidade, mas não outros serviços importantes como o de autenticidade e irretratabilidade/não repúdio. O fato é que não há como garantir através de criptografia simétrica quem realmente enviou a mensagem, pois usuários diferentes podem estar usando chaves iguais. A criptografia de chave pública diminui o problema da troca e gerenciamento de chaves. Nela o usuário pode enviar sua chave pública para todas as pessoas com que precisa se comunicar, em vez de manter o controle de uma chave única e separada para cada uma delas. Outra vantagem é que ela pode garantir os serviços de confidencialidade, irretratabilidade e autenticidade. Entretanto, os algoritmos assimétricos são consideravelmente mais lentos do que os algoritmos simétricos. A causa é que nos algoritmos simétricos são realizadas operações matemáticas relativamente simplistas sobre os dados durante os processos de criptografia e descriptografia. Já os algoritmos assimétricos utilizam operações matemáticas mais complexas, resultando em mais tempo de processamento (HARRIS, 2013). Visando a obter o melhor dos dois mundos, algumas soluções utilizam os dois tipos de criptografia de forma híbrida; e nessa abordagem, os dois tipos de criptografia são utilizados de uma forma complementar. Um algoritmo simétrico é responsável por criptografar os dados, enquanto o algoritmo assimétrico tem como objetivo a distribuição de chaves simétricas (às vezes chamadas de chaves de sessão) de forma segura (STALLINGS, 2008). Na sequência, Harris (2013) nos apresenta exemplos de algoritmos de chave assimétrica. São eles: Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 7 • RSA (Rivest-Shamir-Adleman); • ECC (Elliptic curve cryptosystem); • Diffie-Hellman; • El Gamal; • DSA (Digital Signature Algorithm). O algoritmo RSA foi desenvolvido em 1977 por Rivest, Shamir e Adleman no MIT (Massachusetts Institute of Technology) e publicado em 1978. Ele se baseia em funções exponenciais, sendo até hoje o algoritmo de criptografia assimétrica mais popular. Os tamanhos típicos de chaves utilizados no RSA são 1024, 2048 e 4096 bits. Sua principal aplicação consiste na troca de chaves, o que significa que é utilizado para cifrar a chave simétrica dos algoritmos DES ou AES para ser enviada de forma segura ao seu destino (STAMP, 2011). 1.3 Funções de hash Funções ou algoritmos de hash têm como objetivo transformar um dado de entrada de tamanho variável em uma saída de comprimento fixo (ex: 160 bits), chamada código de hash. O código de hash é uma sequência de caracteres que resume e identifica unicamente um arquivo ou informação. Se um único bit ou caractere for alterado na mensagem original, um código de hash totalmente diferente será gerado. Esses algoritmos são conhecidos como algoritmos de mão única ou via única, pois garantem que não será possível, através do código de hash, obter a informação original. Outra característica importante é que uma função de hash deve ser aplicável a qualquer tipo de dado (ex: áudio, vídeo e imagem) e de qualquer tamanho (FOROUZAN, 2012). O objetivo das funções de hash é prover primordialmente o serviço de integridade. Por exemplo, considere que Ana deseja enviar uma mensagem para Caio e garantir que ele tenha subsídios para verificar se a mensagem não foi alterada durante a transmissão. Para isso, ela pode calcular o código de hash para a mensagem e anexá-lo à própria mensagem e enviá-la. Quando Caio receber a mensagem, ele pode executar a mesma função de hash utilizada por Ana e, em seguida, comparar seu resultado com o código de hash enviado com a mensagem. Se os dois valores forem iguais, Caio pode ter certeza que a mensagem não foi alterada durante a transmissão. Se os valores forem diferentes, Caio saberá que a mensagem foi alterada, intencionalmente ou não, e poderá descartar a mensagem (STALLINGS, 2008). Harris (2013) nos traz exemplos de algoritmos ou funções de hash: • MD5 (Message Digest 5); • SHA (Secure Hash Algorithm). Possui diferentes variações como SHA-256, SHA-384, Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 8 SHA-512 e SHA-3; • HAVAL; • Tiger. Existem sites que permitem ao usuário informar textos variáveis e conhecer o seu resultado ou código de hash através da aplicação de diferentes algoritmos como MD5, SHA-1 e SHA-256. Para fins de teste, acesse o site disponível na Midiateca e informe o seguinte texto: gestão da segurança da informação. Caso você selecione o algoritmo SHA-1, o resultado ou código de hash será 01b9d0e8c066413508bc142255936f2fcbc8984f. 1.4 Certificado Digital Um certificado digital é um mecanismo usado para associar uma chave pública a um conjunto de componentes que permitem identificar unicamente seu proprietário. Assim, as chaves públicas dos usuários podem estar assinadas digitalmente por uma autoridade certificadora (Certification Authority – CA) confiável (STAMP, 2011). Pode ser que neste momento você esteja se questionando: a criptografia simétrica ou de chave pública não veio com alternativa para o problema da distribuição de chaves dos algoritmos simétricos? A resposta é sim. Por que então é necessário um certificado digital gerado por uma autoridade certificadora? A razão para se utilizar um certificado digital é para evitar a falsificação, isto é, um usuário X tentando se passar por um usuário Y. Sem um certificado digital assinado por uma CA, até o usuário Y descobrir a falsificação, o usuário mal-intencionadoX terá sido capaz de ler todas as mensagens cifradas enviadas para Y, por exemplo (FOROUZAN, 2012). A fim de identificar unicamente o usuário e sua respectiva chave pública, as CAs utilizam o padrão de certificados X.509. A versão 3 é a mais utilizada, denotada como X.509v3. O certificado inclui o número de série, número de versão, informações de identidade do usuário (nome do titular) e autoridade certificadora (emissor do certificado), informações dos algoritmos, tempo de validade do certificado, entre outros. As principais funções de uma autoridade certificadora consistem em emitir, revogar e gerenciar todos os certificados emitidos por ela. É ainda responsabilidade da CA invalidar certificados comprometidos ou expirados (STALLINGS, 2008). Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 9 2 Aplicações da Criptografia A criptografia tem sido amplamente utilizada durante a história. O fato é que a segurança da informação é algo imprescindível. Há a necessidade de prover diferentes serviços de segurança como confidencialidade, integridade e irretratabilidade. A criptografia simétrica e de chave pública são bases para os diferentes mecanismos de segurança capazes de suportar esses serviços. Elas têm sido implementadas por diferentes softwares e protocolos com propósitos variados, seja para funcionar em servidores ou nos clientes com acesso utilizando notebooks, smartphones ou tablets (STAMP, 2011). Hoje é inconcebível que softwares que armazenam ou requerem a transmissão de dados sigilosos não utilizem algum mecanismo criptográfico para esse fim. As linguagens de programação modernas como PHP, Python e Java, os SGBDs (Sistemas de Gerenciamento de Banco de Dados) como MySQL e PostgreSQL, bem como os servidores (Web, NFS, FTP), suportam a criptografia. Todavia, as principais questões a serem consideradas no desenvolvimento de um sistema dizem respeito a como utilizar a criptografia: qual tipo (simétrica ou assimétrica), quais serviços de segurança devem ser prestados e como a criptografia pode ser aplicada para atendê-los. Vamos agora apresentar alguns cenários de utilização da criptografia. Posteriormente abordaremos alguns protocolos e tecnologias existentes que utilizam a criptografia (HARRIS, 2013). Antes de apresentarmos exemplos de como utilizar a criptografia, vamos definir algumas notações: • K: chave simétrica; • Kpu: chave Pública; • Kpr: chave Privada; • M: mensagem que será transmitida; • E/D: encriptar e Decriptar; • H(M): função de hash aplicada à mensagem M. No primeiro exemplo, vamos analisar como podemos prover os serviços de confidencialidade e integridade da mensagem utilizando a criptografia convencional (simétrica) e uma função de hash (STALLINGS, 2008). Acompanhe a Figura 4 a seguir. Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 10 Figura 4 – Aplicação da criptografia simétrica e função de hash para prover os serviços de confidencialidade e integridade Fonte: adaptado de Stallings (2008). De acordo com a Figura 4, no emissor da mensagem o primeiro passo consiste na aplicação da função de hash sobre a mensagem H(M). O segundo passo consiste em criptografar tanto a mensagem original quanto o código de hash com a chave simétrica, e isso é representado por Ek{M + H(M)}. No destino são realizados os passos inversos. Primeiro o destinatário aplica a chave simétrica para descriptografar e obtém como saída tanto a mensagem quanto o código de hash recebidos. O destinatário aplica a função de hash sobre a mensagem M recebida e obtém o código de hash. Esse código de hash pode ser então comparado com aquele enviado pelo emissor. Caso eles sejam iguais, a mensagem é considerada íntegra. No exemplo seguinte, na Figura 5, apresentamos a utilização da criptografia de chave pública (assimétrica), juntamente com a aplicação da função de hash, para garantir os serviços de confidencialidade da mensagem bem como a assinatura digital (STALLINGS, 2008). Figura 5 – Aplicação da criptografia assimétrica e função de hash para prover os serviços de confidencialidade e assinatura digital Fonte: adaptado de Stallings (2008). De acordo com a Figura 5, o primeiro passo consiste na aplicação da função de hash sobre a mensagem H(M) do lado emissor. O segundo passo consiste em criptografar o código de hash com a chave privada do emissor. No destino o receptor utiliza a chave pública do emissor para descriptografar o código de hash enviado. Em seguida o destinatário aplica a função de hash sobre a mensagem M recebida e obtém o código de hash. Em posse desse M E {M + H(M)} K K Compara K M E D H(M) H(M) + M H(M) H(M) M ComparaE D H(M) + M H(M) H(M) M + Epr{H(M)} Senac São Paulo - Todos os Direitos Reservados Gestão da Segurança da Informação 11 código de hash, pode ser realizada uma comparação com aquele enviado recebido. Assim, através da comparação dos dois códigos de hash é possível identificar se a mensagem enviada é íntegra. É possível observar nesses dois exemplos que a utilização da criptografia simétrica e assimétrica, juntamente com as funções de hash, pode prover diferentes serviços de segurança. A seguir iremos abordar alguns protocolos e tecnologias existentes que utilizam a criptografia. No contexto da comunicação de dados através das redes (Internet) há diferentes protocolos e tecnologias, tais como o IPSec (Internet Protocol Security), o TLS (Transport Layer Security) e o SSL (Secure Socket Layer). Outro exemplo de aplicação da criptografia está nos protocolos de redes sem fio (Wi-Fi), como o WEP (Wired Equivalent Privacy), o WPA (Wi-Fi Protected Access) e o WPA2 (Wi-Fi Protected Access II). Por exemplo, o protocolo WPA2 comumente utiliza o algoritmo simétrico AES para garantir a segurança dos dados transmitidos em redes sem fio (STAMP, 2011; HARRIS, 2013). No contexto de software temos algumas aplicações da criptografia e das funções de hash. Websites que necessitam armazenar ou transmitir informações sigilosas, como aqueles de compras online, são protegidos pelos protocolos SSL. Por exemplo, um acesso via web ao Internet Banking pode ser realizado via protocolo HTTPS (Hyper Text Transfer Protocol Secure), que utiliza SSL/TLS para garantir um acesso seguro. Para um site prover esse serviço aos clientes é necessário que ele tenha certificado digital válido. Quando essa tecnologia é provida pelo site, há uma identificação no navegador/browser do cliente, sendo geralmente utilizado um ícone de cadeado. Ao clicar nesse ícone o usuário pode visualizar o certificado digital do site e obter diferentes informações, como a chave pública, o tipo de algoritmo assimétrico utilizado (ex: RSA ou ECC), o tipo de algoritmo simétrico (ex: AES), a função de hash utilizada (ex: SHA-256), a validade do certificado, informações da CA, entre outras. O protocolo HTTPS é um exemplo de solução que utiliza tanto a criptografia simétrica quanto a criptografia assimétrica (STALLINGS, 2008; HARRIS, 2013). As funções de hash no contexto de softwares têm sido utilizadas com o objetivo de evitar que dados sigilosos, como senhas, não sejam armazenados facilmente em memórias, arquivos ou bancos de dados. Outra aplicabilidade é para fins de verificação, se um dado software é realmente de um fabricante ou ainda se o software foi corrompido. Geralmente o fabricante aplica a função de hash no software e publica em seu site o código de hash gerado e qual algoritmo foi utilizado. Ao fazer o download o usuário pode realizar o mesmo procedimento e averiguar se o software é autêntico (realmente aquele produzido pelo fabricante especificado) e se está integro. A criptografia também pode ser utilizada para proteger os dados armazenados em mídias como disco rígido (HD) interno ou externo, pendrives, cartão de memória, etc. (HARRIS, 2013). Acesso remoto aos servidores (servidor Web) e serviços pode ser realizado através do Senac São Paulo- Todos os Direitos Reservados Gestão da Segurança da Informação 12 protocolo SSH (Secure Shell). Geralmente o SSH é utilizado por administradores de rede ou do sistema para disparar comandos, mesmo estando remotamente distantes da organização. Outra utilização da criptografia é aplicada na comunicação VoIP (Voice Over Internet Protocol), visando a garantir que mesmo quando a conversa for interceptada não seja possível identificar o que está sendo comunicado (FOROUZAN, 2012; HARRIS, 2013). Considerações finais Nesta aula foi abordado um tema muito importante, que é a criptografia e como ela pode ser utilizada para prover a segurança da informação. Espero que você tenha identificado que a criptografia é um dos mais importantes mecanismos utilizados para prover os serviços de segurança como confidencialidade, integridade, autenticidade e irretratabilidade. Vimos as vantagens e desvantagens da criptografia simétrica e assimétrica, bem como a utilização das funções ou algoritmos de hash. Embora cada uma das propostas tenha seus ganhos e perdas, muitas das soluções atuais utilizam esses métodos de forma híbrida. Além disso, apresentamos alguns exemplos das aplicações, protocolos e tecnologias que utilizam a criptografia. Concluímos que conhecer os tipos de algoritmos e criptografias e aplicá-los no desenvolvimento dos sistemas e na comunicação é de suma importância, pois eles são bases para prover de forma robusta e segura os sistemas e meios de comunicação. Referências FOROUZAN, Behrouz. Data communications and networking. 5. ed. Nova York: McGraw-Hill, 2012. HARRIS, Shon. CISSP All-in-One Exam Guide. 6. ed. Nova York: McGraw-Hill Osborne Media, 2013. KIM, David; SOLOMON, Michael. Fundamentos de segurança de sistemas de informação. São Paulo: LTC, 2014. STAMP, Mark. Information security: principles and practice. 2. ed. San José: Wiley, 2011. STALLINGS, William. Criptografia e segurança de redes: princípios e práticas. 4. ed. São Paulo: Pearson, 2008. Introdução 1 Criptografia 2 Aplicações da Criptografia Considerações finais Referências
Compartilhar