Algoritmo de chave simétrica

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

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 e decifragem. A operação de chave simétrica é mais simples, pois pode existir uma única chave entre as operações. A chave, na prática, representa 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.[1]

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. A criptografia de chave simétrica é para ser separada de criptografia de chave assimétrica.

Tipos de algoritmos de chave simétrica[editar | editar código-fonte]

  • 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.
  • Os blocos cifrados aceitam um número de bits e cifram em unidades. Um bloco de 64 bits é comum. O algoritmo AES aprovado pelo NIST em dezembro de 2001 usa blocos de 128 bits.

Implementações[editar | editar código-fonte]

Exemplos de algoritmos simétricos populares e bem reputados incluem

Velocidade[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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  \frac{n(n-1)}{2} 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[editar | editar código-fonte]

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 p1, p2 \mapsto p2^{\prime}, p1 tanto que:

p2^{\prime} = p2 + \mathrm{f}(p1, key) 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.

Referências

  1. Alecrim, Emerson (2010). Criptografia InfoWester Propagando Conhecimento.

Ligações externas[editar | editar código-fonte]

Ver também[editar | editar código-fonte]


Portal A Wikipédia possui o portal: