quarta-feira, 10 de setembro de 2014

Origem da criptografia

Antigamente, a cifragem era utilizada na troca de mensagens, sobretudo em assuntos ligados à guerra (no intuito de o inimigo não descobrir a estratégia do emissor da mensagem, caso se apoderasse dela), ao amor (para que os segredos amorosos não fossem descobertos pelos familiares) e à diplomacia (para que facções rivais não estragassem os planos de acordos diplomáticos entre nações). O primeiro uso documentado da criptografia foi em torno de 1900 a.c., no Egito, quando um escriba usou hieróglifos fora do padrão numa inscrição.

Entre 600 a.c. e 500 a.c., os hebreus utilizavam a cifra de substituição simples (de fácil reversão e fazendo uso de cifragem dupla para obter o texto original), sendo monoalfabético e monogrâmica (os caracteres são trocados um a um por outros), e com ela escreveram o Livro de Jeremias.

O chamado "Codificador de Júlio César" ou "Cifra de César" que apresentava uma das técnicas mais clássicas de criptografia, é um exemplo de substituição que, simplesmente, substitui as letras do alfabeto avançando três casas. O autor da cifragem trocava cada letra por outra situada a três posições à frente no alfabeto. Segundo o autor, esse algoritmo foi responsável por enganar muitos inimigos do Império Romano; no entanto, após ter sido descoberta a chave, como todas, perdeu sua funcionalidade.

Em 1586, destacam-se os estudos de Blaise de Vigenère que constituíram um método muito interessante; é a cifra de Vigenère que utiliza a substituição de letras. Tal processo consiste na seqüência de várias cifras (como as de César) com diferentes valores de deslocamento alfanumérico. A partir desse período, Renascença, a criptologia começou a ser seriamente estudada no Ocidente e, assim, diversas técnicas foram utilizadas e os antigos códigos monoalfabéticos foram, aos poucos, sendo substituídos por polialfabéticos.

Dos anos 700 a 1200, são relatados incríveis estudos estatísticos, em que se destacam expoentes como al-Khalil, al-Kindi, Ibn Dunainir e Ibn Adlan, que marcaram sua época. Na Idade Média, a civilização árabe-islâmica contribuiu muito para os processos criptográficos, sobretudo quanto à criptoanálise (análise da codificação, a procura de padrões que identificassem mensagens camufladas por códigos).


Esquema da Cifra de César

Na Idade Moderna, merecem destaque o holandês Kerckoff e o alemão Kasiski. Modernamente, em 1918, Arthur Scherbius desenvolveu uma máquina de criptografia chamada Enigma, utilizada amplamente pela marinha de guerra alemã em 1926, como a principal forma de comunicação.

Em 1928, o exército alemão construiu uma versão conhecida como "Enigma G", que tinha como garantidor de segurança a troca periódica mensal de suas chaves. Essa máquina tinha como diferencial ser elétrico-mecânica, funcionando com três (inicialmente) a oito rotores. Aparentava ser uma máquina de escrever, mas quando o usuário pressionava uma tecla, o rotor da esquerda avançava uma posição, provocando a rotação dos demais rotores à direita, sendo que esse movimento dos rotores gerava diferentes combinações de encriptação.


Enigma G em uso pelo Exército Alemão

Assim, a codificação da mensagem pelas máquinas "Enigma" era de muito difícil decodificação, uma vez que, para isso, era necessário ter outra máquina dessas e saber qual a chave (esquema) utilizada para realizar a codificação.

A Colossus surgiu do esforço de engenharia reversa das forças aliadas em decriptar as mensagens da marinha e do exército alemão, só logrando efetivo êxito após se ter conseguido uma máquina Enigma alemã (furtada). Tais equipamentos foram, inicialmente, desenvolvidos como máquinas de decriptação, mas depois passaram a codificar mensagens das forças aliadas.

Depois, surgiram outras máquinas fisicamente semelhantes à Enigma (pareciam com antigas máquinas de escrever), porém foram aperfeiçoadas de forma a dificultar o mais possível a decriptação por quem não as possuísse.

Devido aos esforços de guerra, a criptografia passou a ser largamente utilizada. Em 1948, Claude Elwood Shannon desenvolveu a Teoria Matemática da Comunicação, que permitiu grandes desenvolvimentos nos padrões de criptografia e na criptoanálise.
Durante a chamada "Guerra Fria", entre Estados Unidos e União Soviética, foram criados e utilizados diversos métodos a fim de esconder mensagens a respeito de estratégias e operações, criptografadas com diferentes métodos e chaves.

Além dos avanços da criptografia, a criptoanálise se desenvolveu muito com os esforços de se descobrir padrões e chaves, além da diversidade dos canais de propagação das mensagens criptografadas. Desses esforços, surgiram diversos tipos de criptografia, tais como por chave simétrica, por chave assimétrica, por hash e até a chamada criptografia quântica, que se encontra, hoje, em desenvolvimento.

Atualmente, a criptografia é amplamente utilizada na WEB, em segurança a fim de autenticar os usuários para lhes fornecer acesso, na proteção de transações financeiras e em comunicação.



terça-feira, 9 de setembro de 2014

Sistema de Arquivos com Criptografia (EFS) - Video



Fonte: 
http://goo.gl/kd0Ebu

Sistema de Arquivos com Criptografia (EFS)


Sistema de Arquivos com Criptografia no Microsoft Windows é uma funcionalidade que foi introduzida na versão 3 do  NTFS que provê Criptografia em nível de sistema de arquivos. A tecnologia permite que arquivos sejam criptografados de forma transparente para proteger dados confidenciais de atacantes com acesso físico ao computador.


EFS está disponível em todas as versões do Windows desenvolvidas para ambientes de negócios a partir do Windows 2000. Por padrão, nenhum arquivo é criptografado, mas a criptografia pode ser ativado pelos usuários por arquivo, por diretório ou por dispositivo.








Fonte:
http://goo.gl/PpRhHb
http://en.wikipedia.org/wiki/Encrypting_File_System
http://en.wikipedia.org/wiki/Filesystem-level_encryption

Criptografia Simétrica vs Assimétrica

Criptografia Simétrica

A criptografia simétrica tem como característica utilizar uma única chave para cifrar e decifrar a mensagem. Na criptografia simétrica a chave de cifração pode ser obtida facilmente a partir da chave de decifração e vice-versa. A chave simétrica deve ser compartilhada. Desta forma, surge um problema de distribuição de chaves: como passar a chave simétrica sem que ele seja roubada por um atacante?

Criptografia Assimétrica

Na criptografia assimétrica (ou criptografia de chave pública) são utilizadas duas chaves diferentes. Uma para cifrar e outra para decifrar. Uma chave não pode ser obtida facilmente através da outra. As chaves geradas são chamadas de pública e privada. A chave pública pode ser conhecida por todos e é utilizada para cifrar o texto. Por sua vez, a chave privada deve permanecer secreta e é utilizada para decifrar o texto cifrado. Na verdade, este esquema é utilizado quando o objetivo é garantir a confidencialidade. Também é possível utilizar a chave privada para cifrar o texto e a respectiva chave pública para decifrar a mensagem criptografada. Neste caso, busca-se garantir a autencidade. É caso típico de assinaturas digitais.

Fonte:
http://goo.gl/sVn8Oe
http://goo.gl/NXzzH9

segunda-feira, 8 de setembro de 2014

AES - Origem

Em 1997 O governo americano, através do NIST (National Institute of Standards and Technology) lançou um processo de seleção para definir um novo algoritmo de chave simétrica para proteger as informações do governo federal. Tratou-se de uma medida com o objetivo de substituir o DES (Data Encryption Standard), que havia sido quebrado pela máquina DES Cracker. As condições necessárias para a candidatura de algoritmos: divulgação pública, direitos autorais livres, e os algoritmos deveriam ser de chave privada (simétricos) e suportar blocos de 128 bits e chaves de 128, 192 e 256 bits. Em 1998, a Primeira Conferência dos Candidatos ao AES, foram apresentados 15 candidatos: Cast-256CryptonDealDFCE2FrogHPCLOKI97MagentaMARSRC6RijndaelSafer+Serpent e Twofish. Em 1999, na Segunda Conferência dos Canditatos AES, foram escolhidos 5 finalistas: MARSRC6RijndaelSerpent e Twofish. O Rijndael (fusão de Vincent Rijmen e Joan Daemen) foi o escolhido, três anos e meio após Segunda Conferência, ele combina as características de segurança, desempenho, facilidade de implementação e flexibilidade. O Rijndael apresenta alta resistência a ataques como "power attack" e "timing attack" e exige pouca memória, o que o torna adequado para operar em ambientes restritos como "smart cards", PDAs e telefones celulares.

O AES tem um tamanho de bloco fixo em 128 bits e uma chave com tamanho de 128, 192 ou 256 bits. O AES opera sobre um arranjo bidimensional de bytes com 4x4 posições, denominado de estado. Para criptografar, cada turno do AES (exceto o último) consiste em quatro estágios:
1. AddRoundKey- cada byte do estado é combinado com a subchave própria do turno (RoundKey); cada subchave é derivada da chave principal usando o algoritmo de escalonamento de chaves.
2. SubBytes- é uma etapa de substituição não linear onde cada byte é substituído por outro de acordo com uma tabela de referência.
3. ShiftRows- é uma etapa de transposição onde cada fileira do estado é deslocada de um determinado número de posições.
4. MixColumns- é uma operação de mescla que opera nas colunas do estado e combina os quatro bytes de cada coluna usando uma transformação linear.

O turno final substitui o estágio de MixColumns por um novo estágio de AddRoundKey.

Fonte:
http://pt.wikipedia.org/wiki/Advanced_Encryption_Standard
http://www.gta.ufrj.br/grad/05_2/aes/

segunda-feira, 1 de setembro de 2014

Bcrypt

O Bcrypt é utilitário de encriptação multi plataforma, baseado no Blowfish que é altamente recomendado para encriptação de senhas. Foi criado por Niels Provos e David Mazières sendo apresentado publicamente em 1999. O Bcrypt apresenta uma segurança maior em relação a outros mecanismos de criptografia por adicionar um salt que é utilizado na proteção contra ataques rainbow table. O Bcrypt possui um work factor, que nos permite determinar quão custosa a função de hash irá ser. É possível aumentar a quantidade de iterações na criação da chave para tornar o processo mais lento, para continuar sendo resistente a ataques de força bruta.

O Bcrypt possui implementação em diversas linguagens de programação como Python, Perl, Ruby, Java, C# entre outras.

O Bcrypt é o algoritimo padrão de geração de hashs de senha para o BSD e para muitos outros Sistemas Operacionais Unix-Like


Fonte:
http://pt.wikipedia.org/wiki/Bcrypt
http://codahale.com/how-to-safely-store-a-password/
http://en.wikipedia.org/wiki/Bcrypt
http://en.wikipedia.org/wiki/Salt_%28cryptography%29
http://pt.wikipedia.org/wiki/Blowfish
http://bcrypt.sourceforge.net/

3DES, AES e Blowfish - Breve explicação e comparativo

Fonte:
http://www.brighthub.com/computing/smb-security/articles/75099.aspx


3DES


3DES (Triple DES) é um aprimoramento do DES. O algoritmo é o mesmo, apenas a técnica de criptografia é aplicado três vezes, a fim de aumentar o nível de segurança.

AES


AES (Advanced Encryption Standard) foi proposta pelo Instituto Nacional de Norma e Tecnologia (NIST), a fim de substituir o DES. É utilizada em vários órgãos do governo dos EUA. O único ataque conhecido para o AES é o ataque de força bruta, que é a técnica de tentar várias combinações até que o código seja aceito. No entanto, o uso de força bruta não é uma tarefa fácil, mesmo para um super computador, se o número de combinações for alto.

Blowfish


Foi desenvolvido por Bruce Schneier, o presidente da Counterpane Systems, uma empresa que lida com criptografia e segurança. Blowfish é conhecido por ser a cifra de chave secreta que usa um número variável de bits que variam entre 16 e 448 bits e criptografa os dados 16 vezes para torná-lo impossível para um hacker decifrá-lo.
Segundo Schneier, até agora, nenhum ataque foi descoberto para quebrar a criptografia Blowfish.

Comparativo




Comparativo de performance

Segundo a tabela acima, o Blowfish obteve o melhor desempenho. O AES também possui um bom desempenho. Já DES e 3DES completaram a tarefa utilizando mais do dobro do tempo AES. Além de apresentarem ótimo desempenho, Blowfish e AES também são mais seguros que DES e 3DES.