Prévia do material em texto
Criptografia Parte 1 - Conceitos Criptografia Criptografia (Do Grego kryptós, "escondido", e gráphein, "escrita") é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da "chave secreta"), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade. Criptografia O uso da criptografia é tão antigo quanto a necessidade do homem em esconder a informação. Muitos pesquisadores atribuem o uso mais antigo da criptografia conhecido aos hieroglifos usados em monumentos do Antigo Egito (cerca de 4500 anos atrás). Diversas técnicas de ocultar mensagens foram utilizadas pelos gregos e romanos. Criptografia • Criptografia (kriptós = escondido, oculto; grápho = grafia) : é a arte ou ciência de escrever em cifra ou em códigos, de forma a permitir que somente o destinatário a decifre e a compreenda. • Criptoanálise (kriptós = escondido, oculto; análysis = decomposição) : é a arte ou ciência de determinar a chave ou decifrar mensagens sem conhecer a chave. Uma tentativa de criptoanálise é chamada ataque. • Criptologia (kriptós = escondido, oculto; logo = estudo, ciência) : é a ciência que reúne a criptografia e a criptoanálise. Criptografia Em criptografia, a Cifra de César, também conhecida como cifra de troca ou ainda código de César, é uma das mais simples e conhecidas técnicas de encriptação. É um tipo de cifra de substituição em que cada letra do texto é substituída por outra, que se apresenta no alfabeto abaixo dela um número fixo de vezes. Por exemplo, com uma troca de 3 posições, A seria substituído por D, B viraria E e assim por diante. O nome do método teve origem numa técnica semelhante usada por Júlio César para se comunicar com os seus generais. Criptografia A transformação pode ser representada alinhando-se dois alfabetos; o alfabeto cifrado é o alfabeto normal rotacionado à direita ou esquerda um número fixo de posições. Por exemplo, aqui está uma cifra de César usando uma rotação à esquerda de 3 posições (o parâmetro de troca, 3 neste caso, é usado como chave e deve ser transmitido por um canal seguro). Normal: abcdefghijklmnopqrstuvwxyz Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC Criptografia Análise de frequência é um método de empregado para decifrar de mensagens encriptadas por meio da análise, no texto encriptado, de padrões que se repetem constantemente, que podem indicar a ocorrência de letras ou de palavras de uso corriqueiro, tais como preposições ("de", "da"), pronomes, ("não", "sim"), etc. Criptografia O uso básico de análise de frequências consiste em primeiro em calcular a frequência das letras que aparecem no texto cifrado e de seguida associar letras de texto plano a elas. Uma grande frequência de X poderá sugerir que as X serão correspondentes ao a, mas este nem sempre será assim , já que as letras e e o têm una frequência alta também em português. No entanto, não será nada provável que as X representem, neste caso, a letra k ou a w. Por isso, o criptoanalista poderá ter que tentar várias combinações até decifrar o texto. Criptografia A cifra de César pode ser usada de forma incremental, para dificultar a criptoanálise: a variação é de 3, por exemplo. Assim, o primeiro caractere é alterado em três posições, o segundo em seis, o terceiro em nove, assim por diante. Criptografia As transposições preservam todas os caracteres de uma mensagem, apenas os mudam de lugar. São baseadas no princípio matemático da permutação. Existem diversos tipos de transposição, entre elas as geométricas. São chamadas de geométricas porque usam uma figura geométrica, geralmente um quadrado ou retângulo, para orientar a transposição. A transposição é chamada de simples quando o sistema usar apenas um processo, e de dupla quando usar dois processos distintos de transposição. A maioria dos sistemas rearranjam o texto letra por letra, mas existem também os que rearranjam grupos de letras. Existem ainda as transposições com grades ou grelhas, como a transposição de Fleissner e as transposições por itinerário. Criptografia Nas transposições simples por coluna escreve-se o texto horizontalmente numa matriz predefinida, obtendo-se o texto cifrado através das colunas verticais. O destinatário, usando o processo inverso, volta a obter o texto claro. Apesar de muito simples, serviu de base para o algoritmo alemão ADFGFX, que foi utilizado durante a Primeira Guerra Mundial. Acompanhe o exemplo abaixo onde é utilizada uma matriz de 6 colunas para o texto "A transposição é eficiente": Criptografia A T R A N S P O S I Ç Ã O É E F I C I E N T E O resultado é APOIT OÉERS ENAIF TNÇIE SÃC se a matriz for deixada incompleta ou APOIT OÉERS ENAIF TNÇIE SÃCX se for completada, por exemplo, com X. Criptografia A grande maioria dos algoritmos criptográficos atuais são cifras de bloco. As cifras de fluxo, que convertem o texto claro em texto cifrado bit a bit, ainda são objeto de pesquisa e têm uma aplicação prática muito discreta. O motivo é que as cifras de fluxo dependem de geradores randômicos de chaves que, apesar da aparente simplicidade, são difíceis de implementar através de software ou de hardware. Criptografia A era da criptografia moderna começa realmente com Claude Shannon, possivelmente o pai da criptografia matemática. Em 1949 ele publicou um artigo Communication Theory of Secrecy Systems com Warren Weaver. Este artigo, junto com outros de seus trabalhos que criaram a área de Teoria da Informação estabeleceu uma base teórica sólida para a criptografia e para a criptoanálise. Depois isso, quase todo o trabalho realizado em criptografia se tornou secreto, realizado em organizações governamentais especializadas (como o NSA nos Estados Unidos). Apenas em meados de 1970 as coisas começaram a mudar. Criptografia Em 1976 aconteceram dois grandes marcos da criptografia para o público. O primeiro foi a publicação, pelo governo americano, do DES (Data Encryption Standard), um algoritmo aberto de criptografia simétrica, selecionado pela NIST em um concurso onde foi escolhido uma variante do algoritmo Lucifer, proposto pela IBM. O DES foi o primeiro algoritmo de criptografia disponibilizado abertamente ao mercado. Criptografia O segundo foi a publicação do artigo New Directions in Cryptography por Whitfield Diffie e Martin Hellman, que iniciou a pesquisa em sistemas de criptografia de chave pública. Este algoritmo ficou conhecido como "algoritmo Diffie-Hellman para troca de chaves" e levou ao imediato surgimento de pesquisas neste campo, que culminou com a criação do algoritmo RSA, por Ronald Rivest, Adi Shamir e Leonard Adleman. Criptografia Os algoritmos de chave-simétrica (Também chamados de Sistemas de Chaves Simétricas, criptografia de chave única, ou criptografia de chave secreta) são uma classe de algoritmos para a criptografia, que usam chaves criptográficas relacionadas para a decifração e a encriptação. A chave de encriptação é relacionada insignificativamente à chave de decifração, que podem ser idênticos ou tem uma simples transformação entre as duas chaves. As chaves, na prática, representam um segredo compartilhado entre dois ou mais partidos que podem ser usados para manter uma ligação confidencial da informação. Usa-se uma única chave, usada por ambos interlocutores, e na premissa de que esta é conhecida apenas por eles. Criptografia Os algoritmos de chave-simétrica são geralmente muito menos intensivos computacionalmente do que os algoritmos de chave assimétrica. Na prática, isto significa que um algoritmo de chave assimétrica de qualidade é centenas ou milhares de vezes mais lentos do que um algoritmo dechave simétrica de qualidade. Criptografia A desvantagem dos algoritmos de chave- simétrica, é a exigência de uma chave secreta compartilhada, com uma cópia em cada extremidade. As chaves estão sujeitas à descoberta potencial por um adversário criptográfico, por isso necessitam ser mudadas freqüentemente e mantidas seguras durante a distribuição e no serviço. Essa exigência de escolher, distribuir e armazenar chaves sem erro e sem perda, são conhecidas como a “chave gerência”. Criptografia A criptografia de chave pública ou criptografia assimétrica é um método de criptografia que utiliza um par de chaves: uma chave pública e uma chave privada. A chave pública é distribuída livremente para todos os correspondentes via e-mail ou outras formas, enquanto a chave privada deve ser conhecida apenas pelo seu dono. Criptografia Em um algoritmo de criptografia assimétrica, uma mensagem cifrada (encriptada é um termo incorrecto) com a chave pública pode somente ser decifrada pela sua chave privada correspondente. Do mesmo modo, uma mensagem cifrada com a chave privada pode somente ser decifrada pela sua chave pública correspondente. Criptografia Os algoritmos de chave pública podem ser utilizados para autenticidade e confidencialidade. Para confidencialidade, a chave pública é usada para cifrar mensagens, com isso apenas o dono da chave privada pode decifrá-la. Para 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 pública'. Criptografia RSA é um algoritmo de encriptação de dados, que deve o seu nome a três professores do Instituto MIT (fundadores da actual empresa RSA Data Security, Inc.), Ron Rivest, Adi Shamir e Len Adleman, que inventaram este algoritmo — até à data (2005), a mais bem sucedida implementação de sistemas de chaves assimétricas, e fundamenta-se em Teorias Clássicas dos Números. É considerado dos mais seguros, já que mandou por terra todas as tentativas de quebrá-lo. Foi também o primeiro algoritmo a possibilitar encriptação e assinatura digital, e uma das grandes inovações em criptografia de chave pública. Criptografia O RSA envolve um par de chaves, uma chave pública que pode ser conhecida por todos e uma chave privada que deve ser mantida em sigilo. Toda mensagem encriptada usando uma chave pública só pode ser desencriptada usando a respectiva chave privada. Criptografia RSA baseia-se no fato de que, se bem que encontrar dois números primos de grandes dimensões (p.e. 100 dígitos) é computacionalmente fácil, conseguir factorizar o produto de tais dois números é considerado computacionalmente complexo (em outras palavras, o tempo estimado para o conseguir ronda os milhares de anos). De fato, este algoritmo mostra-se computacionalmente inquebrável com números de tais dimensões, e a sua força é geralmente quantificada com o número de bits utilizados para descrever tais números. Para um número de 100 dígitos são necessários cerca de 350 bits, e as implementações atuais superam os 512 e mesmo os 1024 bits. Criptografia Em criptografia, a assinatura digital é um método de autenticação de informação digital tipicamente tratada, por vezes com demasiada confiança, como análoga à assinatura física em papel. Embora existam analogias, também existem diferenças que podem ser importantes. O termo assinatura eletrônica, por vezes confundido, tem um significado diferente: refere-se a qualquer mecanismo, não necessariamente criptográfico, para identificar o remetente de uma mensagem electrônica. A legislação pode validar, por vezes, tais assinaturas electrónicas como endereços Telex e cabo, bem como a transmissão por fax de assinaturas manuscritas em papel. Criptografia A utilização da assinatura digital providencia a prova inegável 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 alteração da mensagem faz com que a assinatura não corresponda mais ao documento; - não repúdio ou irretratabilidade - o emissor não pode negar a autenticidade da mensagem; Criptografia Existem diversos métodos para assinar digitalmente documentos, e estes métodos estão em constante evolução. Porém de maneira resumida, uma assinatura típica envolve dois processos criptográficos, o hash (resumo) e a encriptação deste hash. Em um primeiro momento é gerado um resumo criptográfico da mensagem através de algoritmos complexos (Exemplos: MD5, SHA-1, SHA-256) que reduzem qualquer mensagem sempre a um resumo de mesmo tamanho. A este resumo criptográfico se dá o nome de hash. Criptografia Após gerar o hash, ele deve ser criptografado através de um sistema de chave pública, para garantir a autenticação e o não-repúdio. O autor da mensagem deve usar sua chave privada para assinar a mensagem e armazenar o hash criptografado junto a mensagem original. Para verificar a autenticidade do documento, deve ser gerado um novo resumo a partir da mensagem que está armazenada, e este novo resumo deve ser comparado com a assinatura digital. Para isso, é necessário descriptografar a assinatura obtendo o hash original. Se ele for igual ao hash recém gerado, a mensagem está integra. Além da assinatura existe o selo cronológico que atesta a referência de tempo à assinatura. Criptografia O Transport Layer Security (TLS) e o seu predecessor, Secure Sockets Layer (SSL), são protocolos criptográficos que provêem comunicação segura na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados. O servidor do site que está sendo acessado envia uma chave pública ao browser, usada por este para enviar uma chamada secreta, criada aleatoriamente. Desta forma, fica estabelecida a trocas de dados criptografados entre dois computadores. Baseia-se no protocolo TCP da suíte TCP/IP e utiliza-se do conceito introduzido por Diffie-Hellman nos anos 70 (criptografia de chave pública) e Phil Zimmerman (criador do conceito PGP).