A avaliação da segurança de algoritmos está na facilidade ou não com que
uma pessoa consegue decifrar mensagens sem o conhecimento da chave de
decifragem, ação comumente conhecida por "quebrar o código". As
tentativas de se quebrar os códigos de algoritmos são chamadas ataques. A
forma mais simples de ataque a algoritmos é o ataque por força bruta,
na qual é feita a tentativa de se quebrar o código utilizando-se todas
as chaves possíveis, uma após a outra. Esta é a forma mais simples,
porém a menos eficiente, às vezes até impossível de ser implementada. No
entanto, ataques por força bruta são raramente necessários. Na maioria
das vezes, é utilizada uma mistura de matemática e computadores potentes
para quebrar códigos, num processo chamado criptoanálise. Os possíveis
tipos de ataque usando criptoanálise são:
- Ataque por texto conhecido: Neste tipo de ataque, o criptoanalista tem um bloco de texto normal e seu correspondente bloco cifrado, com objetivo de determinar a chave de criptografia para futuras mensagens.
- Ataque por texto escolhido: Neste tipo de ataque, o criptoanalista tem a possibilidade de escolher o texto normal e conseguir seu texto cifrado correspondente;
- Criptoanálise diferencial: Este ataque, que é uma variação do ataque por texto escolhido, procura cifrar muitos textos bem parecidos e comparar seus resultados.
Todos os sistemas criptográficos possuem níveis diferentes de segurança,
dependendo da facilidade ou dificuldade com que os mesmos são
quebrados. Só teremos um sistema condicionalmente seguro quando ele for
teoricamente inquebrável, ou seja, não importa a quantidade de texto
normal ou cifrado a disposição de um criptoanalista, ele nunca terá
informação suficiente para se quebrar as cifras ou deduzir as chaves que
foram usadas.
A segurança de um criptosistema não deve ser baseada nos algoritmos que
cifram as mensagens, mas sim no tamanho das chaves usadas. Um algoritmo
para ser avaliado como forte ou fraco, deve amplamente ser testado
contra todos os possíveis tipos de ataques descritos para que sua
robustez seja assegurada. Um algoritmo é considerado forte quando é
praticamente impossível quebrá-lo em um determinado espaço de tempo em
que as informações ainda sejam relevantes e possam ser utilizadas por
pessoas não autorizadas.
Geralmente, a maneira mais fácil de se determinar se um algoritmo é
forte ou fraco é publicando sua descrição, fazendo com que várias
pessoas possam discutir sobre a eficiência ou não dos métodos
utilizados. Programas que usam algoritmos proprietários não divulgam sua
especificação. Geralmente isto acontece porque a simples divulgação do
método revelará também seus pontos fracos. Por esta razão, um
criptosistema deve ser tão seguro, que mesmo o autor de um algoritmo não
seja capaz de decodificar uma mensagem se não possuir a chave.
Fonte: http://www.di.ufpe.br/~flash/ais98/cripto/criptografia.htm
Fonte: http://www.di.ufpe.br/~flash/ais98/cripto/criptografia.htm
0 comentários:
Postar um comentário