Introdução a criptografia
Este artigo não descreve algoritmos de criptografia nem ensina a quebrá-los. Trata-se de uma introdução. Se você não sabe a diferença entre chave e senha, ou entre algoritmos simétricos e assimétricos, se não sabe o que é o ataque de força bruta e quantos bits precisa ter para ser seguro, então este artigo poderá lhe ser útil.
Parte 8: Referências
Boa parte do que aprendi sobre criptografia eu encontrei no maravilhoso livro "O Livro dos Códigos" de Simon Singh que, espero, não esteja mais esgotado. Ele é EXCEPCIONAL. Dou fé! Este livro é gostoso de ler e pode ser apreciado até por quem não é da área. Não é exatamente um livro técnico. Simon conta o uso da criptografia ao longo da história, sua presença em guerras e o faz de uma maneira muito leve. A descrição matemática de alguns algoritmos ele traz em anexos.
Este livro é intrigante pois toda a sua narrativa é com a premissa de que criptografia é segredo. Todos os grandes códigos bem como as grandes quebras só foram reveladas ao público muitas décadas depois. Isto é inquietante pois deixa uma sensação de conspiração no ar, já que os maiores salários nesta área são pagas por agências governamentais a pessoas completamente anônimas. Quando a NSA ceifou o algoritmo Lucifer da IBM tirando 8 bits de sua chave para que virasse o DES (originalmente ele era de 64 bits, foi reduzido para 56+8 bits de paridade) muitos disseram que era pelo fato da agência ter meios de quebrar 56 bits, mas não 64 (NSA quer dizer National Security Agency. Muitos fazem uma brincadeira com o nome dizendo que NSA quer dizer "No Such Agency - agência inexistente).
O bem humorado autor (Simon) já coloca em sua introdução que ao final ele faz muitas especulações sobre o que já existe e poderá existir. Ele diz que elas podem ser inverdades dado o sigilo da área, mas que felizmente as únicas pessoas que podem apontar os erros no livro não o podem fazer devido ao sigilo de seus empregos e ao seu anonimato! Enfim, garanto a qualquer um uma excelente leitura.
Outros livros de criptografia se destinam a entrar fundo nos conceitos matemáticos e sua exploração. Em um destes livros eu encontrei uma façanha interessante para quebrar o RSA o que demonstra o quanto a criatividade é insuperável! Devido a sua matemática, algumas cifragens podem levar muito mais tempo e outras menos tempo, dependendo da natureza da mensagem a ser cifrada. Se um atacante tiver a possibilidade de medir o tempo que você leva para cifrar o que ele quer, ele pode gerar textos bem formados e com a análise dos tempos de resposta que você levou para cifrá-los, deduzir muitos bits da chave! Depois desta descoberta alguns algoritmos deliberadamente inserem delays aleatórios para inviabilizar qualquer análise neste sentido. O livro que descreve isto é o "Criptografia e segurança de redes", de William Stallings e disponibilizado pela editora pearson em português. Este livro é excepcional se você realmente quer se aprofundar muito nesta ciência (e prepare-se para uma enxurrada de funções matemáticas, familiarização com termos como transformada de Fourier ou logaritmos discretos - o livro é bem pesado).
Caso se interessem por um algoritmo de troca monoalfabética, tem uma implementação minha em C disponível em gravatai.ulbra.tche.br/~elgio/disciplinas/?DISC=outras&MAT=VOL (este algoritmo eu escrevi atendendo pedidos ao tópico Criptografia em C).
Na mesma página também tem o código em PHP para implementar um RSA de 32 bits, mas como eu não expliquei aqui como o mesmo funciona, torna-se sem sentido.
Também escrevi e postei aqui no VOL um artigo sobre senhas em Linux, explicando como a mesma é gerada utilizando HASH. Ele pode ser obtido em Armazenamento de senhas no Linux.
Outro artigo de minha autoria descreve os algoritmos simétricos de bloco e de fluxo, que pode ser acessado em Criptografia chave simétrica de bloco e de fluxo.
Outros artigos interessantes aqui no VOL merecem serem citados:
Este livro é intrigante pois toda a sua narrativa é com a premissa de que criptografia é segredo. Todos os grandes códigos bem como as grandes quebras só foram reveladas ao público muitas décadas depois. Isto é inquietante pois deixa uma sensação de conspiração no ar, já que os maiores salários nesta área são pagas por agências governamentais a pessoas completamente anônimas. Quando a NSA ceifou o algoritmo Lucifer da IBM tirando 8 bits de sua chave para que virasse o DES (originalmente ele era de 64 bits, foi reduzido para 56+8 bits de paridade) muitos disseram que era pelo fato da agência ter meios de quebrar 56 bits, mas não 64 (NSA quer dizer National Security Agency. Muitos fazem uma brincadeira com o nome dizendo que NSA quer dizer "No Such Agency - agência inexistente).
O bem humorado autor (Simon) já coloca em sua introdução que ao final ele faz muitas especulações sobre o que já existe e poderá existir. Ele diz que elas podem ser inverdades dado o sigilo da área, mas que felizmente as únicas pessoas que podem apontar os erros no livro não o podem fazer devido ao sigilo de seus empregos e ao seu anonimato! Enfim, garanto a qualquer um uma excelente leitura.
Outros livros de criptografia se destinam a entrar fundo nos conceitos matemáticos e sua exploração. Em um destes livros eu encontrei uma façanha interessante para quebrar o RSA o que demonstra o quanto a criatividade é insuperável! Devido a sua matemática, algumas cifragens podem levar muito mais tempo e outras menos tempo, dependendo da natureza da mensagem a ser cifrada. Se um atacante tiver a possibilidade de medir o tempo que você leva para cifrar o que ele quer, ele pode gerar textos bem formados e com a análise dos tempos de resposta que você levou para cifrá-los, deduzir muitos bits da chave! Depois desta descoberta alguns algoritmos deliberadamente inserem delays aleatórios para inviabilizar qualquer análise neste sentido. O livro que descreve isto é o "Criptografia e segurança de redes", de William Stallings e disponibilizado pela editora pearson em português. Este livro é excepcional se você realmente quer se aprofundar muito nesta ciência (e prepare-se para uma enxurrada de funções matemáticas, familiarização com termos como transformada de Fourier ou logaritmos discretos - o livro é bem pesado).
Caso se interessem por um algoritmo de troca monoalfabética, tem uma implementação minha em C disponível em gravatai.ulbra.tche.br/~elgio/disciplinas/?DISC=outras&MAT=VOL (este algoritmo eu escrevi atendendo pedidos ao tópico Criptografia em C).
Na mesma página também tem o código em PHP para implementar um RSA de 32 bits, mas como eu não expliquei aqui como o mesmo funciona, torna-se sem sentido.
Também escrevi e postei aqui no VOL um artigo sobre senhas em Linux, explicando como a mesma é gerada utilizando HASH. Ele pode ser obtido em Armazenamento de senhas no Linux.
Outro artigo de minha autoria descreve os algoritmos simétricos de bloco e de fluxo, que pode ser acessado em Criptografia chave simétrica de bloco e de fluxo.
Outros artigos interessantes aqui no VOL merecem serem citados:
- Matheus Santana Lima escreveu em seu artigo Os segredos da criptografia com o Gcipher como usar a ferramenta Gcipher, mas como todo bom artigo, enriqueceu muito o mesmo com introduções e estórias da segunda guerra mundial, inclusive com fotos da Enigma. Ele não relata em seu artigo, mas suspeito que o Matheus leu o livro do Simon!
- Ítalo Pereira de Brito fez uma boa introdução aos algoritmos simétricos, assimétricos e de hash (que ele chamou no artigo de "uma via") em seu artigo Uma breve abordagem sobre Criptografia, de 2006.
- Rodrigo Gomes, em seu artigo Conceitos de criptografia com chave simétrica e assimétrica de 2004, define bem os termos de confiabilidade, integridade e não repúdio, todos desejáveis em um protocolo de criptografia. Ele também destaca a necessidade das chaves assimétricas.
- Por fim, um usuário anônimo que removeu o seu perfil, fez um interessante relado do que seria a computação quântica em Criptografia quântica, embora o artigo seja uma cópia literal de um capítulo da quarta edição do livro de Redes do Tanembaum. O livro do Simon também é muito bom na definição da computação quântica.
http://www.vivaolinux.com.br/artigo/Criptografia-chave-simetrica-de-bloco-e-de-fluxo