RC4 (Cifra de Rivest 4) é uma cifra de fluxo projetada por Ron Rivest em 1987. Ela criptografa dados gerando um fluxo pseudoaleatório de bits (chamado de fluxo de chaves) que é combinado com os dados de texto simples, normalmente usando uma operação XOR, para produzir o texto cifrado.
Criptografia: Cada byte de texto simples é combinado com um byte correspondente do fluxo de chaves para gerar o texto cifrado.
Descriptografia: O mesmo fluxo de chaves é usado para executar o XOR no texto cifrado e recuperar o texto simples original.
Velocidade: O RC4 é conhecido por sua velocidade e eficiência, especialmente em ambientes com recursos limitados.
Simplicidade: É simples de implementar e requer recursos mínimos, tornando-o adequado para ambientes com poder de processamento limitado.
Uso Histórico: O RC4 foi amplamente utilizado em protocolos como SSL/TLS para comunicação segura e WEP para segurança de redes sem fio.
Geração de Chaves: Uma chave secreta (geralmente entre 40 e 2048 bits) é usada para inicializar o RC4 estado.
Geração de Fluxo de Chaves: O algoritmo RC4 gera um fluxo de chaves pseudoaleatório com base na chave.
Criptografia: Cada byte de texto simples é submetido a um XOR com o byte do fluxo de chaves, resultando em texto cifrado.
Descriptografia: O mesmo fluxo de chaves é usado para executar o XOR do texto cifrado e recuperar o texto simples original.
Bibliotecas/Ferramentas: O RC4 é suportado em várias bibliotecas, embora seja frequentemente descontinuado por motivos de segurança:
Python: biblioteca pycryptodome.
Java: pacote javax.crypto (embora seu uso é desencorajado em favor de algoritmos mais fortes).
C#: namespace System.Security.Cryptography.
Sistemas legados: Ao trabalhar com sistemas mais antigos que ainda usam criptografia RC4 (por exemplo, implementações antigas de SSL/TLS).
Aplicações não críticas: Se você estiver trabalhando em projetos onde a velocidade é mais importante do que a segurança, isso geralmente é desencorajado em favor de cifras mais fortes.
Fins educacionais: RC4 é frequentemente usado para ensinar sobre cifras simétricas e cifras de fluxo devido à sua simplicidade.