Algoritmo RC4
O algoritmo de criptografia RC4 foi criado em 1987 por Ronald Rivest, o mesmo criador do RSA e do MD5, e seu funcionamento permaneceu em segredo até o ano de 1994, quando foi vazado em uma página de discussões na Web. Ele possui duas funcionalidades básicas: uma para gerar um "código" que será usado para encriptar e decriptar (KSA) e outra para realizar a criptografia propriamente dita da mensagem com o uso deste código (PRGA).
O RC4 é considerado um algoritmo de chave simétrica de cifra de fluxo ("streamcypher") pelo fato de o processo de encriptação e decriptação serem independentes do tamanho da mensagem de entrada. Em contrapartida aos algoritmos de cifra de fluxo, existem os de cifra em bloco, cujo funcionamento …exibir mais conteúdo…
3. Algoritmo
O algoritmo RC4 é baseado em duas funções: KSA e PRGA. A função KSA, sigla de Algoritmo Escalonador de Chaves (do inglês "Key Scheduler Algorithm"), é responsável por gerar uma permutação pseudo-aleatória do conteúdo de uma chave secreta. O fato de ela ser pseudo-aleatória se deve à invariância do valor retornado com relação ao tempo, dependendo apenas do valor de entrada. Portanto, é necessária a execução desta função apenas uma vez para a obtenção da permutação que será usada.
A função PRGA, sigla de Algoritmo de Geração Pseudo-Aleatória (do inglês "Pseudo Random Generation Algorithm"), é responsável pela encriptação da mensagem a partir do valor retornado pelo KSA. Ela consiste basicamente de operações de Ou - Exclusivo entre a permutação da chave secreta e a mensagem de entrada, retornando uma mensagem cifrada. Pela lógica de Boole, sabe-se que operações deste tipo são simétricas e, portanto, a aplicação do PRGA na mensagem cifrada gera a mensagem original caso a permutação utilizada seja a mesma do processo de encriptação.
A Figura 1(a) demonstra o processo de encriptação da mensagem. Em um primeiro momento, o próximo valor da sequência do vetor de inicialização é calculado, se concatena o mesmo com a chave secreta e calcula o valor da permutação a partir do KSA. Em seguida, ocorre a aplicação do algoritmo PRGA sobre o pedaço da mensagem. Por fim, o resultado deste processo é concatenado com o valor atual do vetor