Translate this Page





Baixe o Flash Player para executar...


Algoritmo de Chave Simétrica

Algoritmo de Chave Simétrica

Os algoritmos de chave simétrica (também chamados de Sistemas de Chave Simétrica, 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 as operações de cifragem ou decifragem (ou cifra/decifra, ou cifração/decifração). A chave de cifragem pode ser idêntica à de decifragem ou poderá existir uma transformação simples entre as duas chaves. As chaves, na prática, representam um segredo, partilhado entre duas ou mais partes, que podem ser usadas para manter um canal confidencial de informação. Usa-se uma única chave, partilhada por ambos os interlocutores, na premissa de que esta é conhecida apenas por eles.

Outros termos para criptografia de chave simétrica são: criptografia de chave secreta, de chave única, de chave compartilhada, de uma chave e de chave privada. O uso do último termo pode às vezes se confundir com o componente chave privada da criptografia de chave pública.

Tipos

Os algoritmos de chave simétrica podem ser divididos em cifras de fluxo (ou contínuas) e em cifras por bloco. As cifras de fluxo cifram os bits da mensagem um a um, enquanto que as cifras por bloco pegam um número de bits e cifram como uma única unidade. Tipicamente são utilizados blocos de 64 bits; o algoritmo AES aprovado pelo NIST em dezembro de 2001 usa blocos de 128, 192 ou 256 bits e chaves de 128, 192 ou 256 bits. Contudo, os algoritmos de chave simétrica raramente são usados sozinhos. Alguns exemplos de algoritmos simétricos populares e bem reputados incluem Twofish, Serpent, AES, Blowfish, CAST5, RC4, 3DES, e IDEA.

Velocidade

Os algoritmos de chave simétrica são geralmente menos custosos computacionalmente do que os algoritmos de chave assimétrica. Na prática, isto significa que um algoritmo de chave assimétrica de qualidade pode ser centenas ou milhares de vezes mais lento do que um algoritmo de chave simétrica de qualidade equivalente.

Segurança

Este sistema é tanto ou mais seguro quanto o for (1) a própria chave e (2) o meio em que ela foi dada a conhecer a ambos interlocutores — é comum a chave estar guardada num local que se “pensa” ser seguro.

Limitações

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, é conhecida como “gerenciamento de chave”.

A fim de garantir a comunicação segura entre toda uma população de n pessoas, um total de chaves são necessárias. Freqüentemente os algoritmos assimétricos são muito mais lentos, são usados no início de uma sessão para distribuir chaves simétricas, então os algoritmos de chave simétrica mais elevados aumentam sua velocidade. Os mesmos problemas de distribuição de chave de confiança existem ainda no nível assimétrico, mas são um tanto mais tratáveis. Entretanto, a chave simétrica é gerada quase sempre em tempo real. Os algoritmos de chave simétrica não podem ser usados para finalidades de autenticação. Para finalidades de autenticação, geralmente são usadas funções de hash, por exemplo MD5.

Reversibilidade

As Funções de Criptografia devem, por definição, ser reversíveis desde que você precise estar apto ambas cifras e (providenciado que você tenha a chave certa) mensagens decifradas. Vários métodos foram usados historicamente para controlar isto. Houve as cifras do livro, em que a chave compartilhada é relacionada a algum índice em um livro, as cifras da autochave em que a chave é derivada parcialmente do plaintext (arquivo de texto), as cifras de grade (supostamente inventadas primeiramente pelo matemático italiano Gerolamo Cardano) em que cada partido tem partes de papel idênticas com os furos cortados para colocar sobre a mensagem baixa a fim extrair a mensagem codificada, etc. Em épocas modernas, depois que os computadores se tornaram disponíveis, a maioria de cifras simétricas foram baseadas em “rounds” repetidos. Um esquema muito simples para cada round é usado geralmente repetidamente como no seguinte exemplo genérico. Este método geral é atribuído geralmente a Horst Feistel. Os bits a serem codificados são divididos em duas porções de P1 e P2. P1 é inalterado, P2 é adicionado a uma função misturada de sentido único f (variado por uma chave) de P1. Os dois resultados então são trocados. Isto é chamado de um “round”. Isto é onde a chave p1 e a chave p2, são vetores do bit; “,” é um operador da concatenação e f é uma função tanto que:

Desde que a saída do “round” ainda tenha o acesso ao valor P1, e a adição é uma operação reversível, então esta operação pode ser desfeita, para toda função “f” de um único sentido. Ao mesmo tempo em que um único round é inseguro, p1 é inalterado, repetindo a operação mais do que uma vez, freqüentemente com diferente funções e “chaves rounds”, melhora a força consideravelmente. Para decifrar rounds múltiplos, conseqüentemente cada round é desfeito na ordem inversa, para a decodificação, as chaves são aplicadas em ordens inversas. Após diversos rounds (tipicamente entre 8 e 64) de processamento, a saída torna-se assim “encriptada” que, no exemplo de cifras bem projetadas, nada mais rápido do que a busca da chave de força brutal é praticável. Com uma chave suficientemente longa, um ataque de força brutal pode ser tornado impraticável.