Criptografia RC4 em Excel

Baixe a planilha grátis e criptografe mensagens usando três métodos tradicionais: RC4, Vigenère e César.

Como funciona a criptografia RC4

O algoritmo RC4 foi desenvolvido em 1987 por Ronald Rivest para a empresa RSA Data Security e foi o algoritmo mais usado pela indústria da Informática por vários anos. É um algoritmo de chave simétrica, ou seja, a mesma chave é usada para codificar e decodificar. Além disso, é reversível, pois se a mensagem codificada for passada novamente pelo algoritmo gera a mensagem plana original. A seguir, veja a sequência para implantar uma versão simplificada do algoritmo no Excel.

RC4

O primeiro passo do processo é converter cada caractere da mensagem e da chave em um número entre 1 e 256. Na planilha adotamos uma tabela própria de conversão com 256 caracteres imprimíveis mais comuns. O algoritmo RCA tem duas etapas conhecidas como KSA e PRGA.

Etapa KSA

Na primeira etapa são geradas duas matrizes (T e S) cada uma com 256 células. A matriz T é gerada preenchendo sequencialmente as células com a chave já convertida em números. Veja o exemplo a seguir onde aplicamos a chave “misterio” na matriz T primeiro em texto e depois com códigos numéricos.

Matriz T em texto
Matriz T numérica

Definida a matriz T, o próximo passo é gerar a matriz S. Inicialmente, essa matriz é preenchida com uma sequência ordenada de números de 0 a 255 como se vê na tabela a seguir.

Os números da matriz S serão embaralhados de forma pseudo aleatória. Como assim? Vamos trocar os números de lugar dois a dois, mas essa permuta de posições depende da matriz T.

A permuta de posições é feita em uma rotina de 256 ciclos. Começa na posição 1 e vai até a posição 256. No primeiro ciclo fazemos a permuta de valores da célula 1 com o valor de outra célula que é definida pela fórmula a seguir:

j = (j + S[i] + T[i])mod 256

Lemos assim: No ciclo i, a posição j é igual à posição j anterior somada com o conteúdo da célula i da matriz S mais o conteúdo da célula i da matriz T. O resultado da soma é dividido por 256 e consideramos o resto da divisão.

Com esse algoritmo geramos a matriz S final que é única para cada chave usada. Essa matriz pseudo aleatória ajudará na segunda parte do algoritmo onde efetivamente ocorre a criptografia. Veja como fica a matriz S final embaralhada pela chave “misterio”.

Matriz S final

Etapa PRGA

Essa é a etapa em que a mensagem é codificada. Os “ingredientes” do algoritmo são a mensagem plana e a matriz S final. O algoritmo é executado k vezes onde k é o número de caracteres da mensagem.

Nessa etapa também ocorre permuta de posições na matriz S. A cada ciclo a célula i é permutada com a célula j.

i e j são iniciados com valor zero.

i = (i + 1) mod 256

j = (j + S(i)) mod 256

Em seguida, é definida uma posição t pela fórmula:

t =( S(i) + S(j)) mod 256

O valor encontrado na posição t será usado no último passo do algoritmo. Faremos a operação lógica XOR binário entre S(t) e o caractere plano da mensagem. A tabela abaixo mostra um exemplo da operação.

XOR binário

A operação XOR (OU exclusivo) realizada sobre os números convertidos para binários é que garante a reversibilidade do algoritmo. Veja que no exemplo caractere plano 85 é substituído pelo caractere 233 codificado. Se passarmos o caractere 233 novamente pelo algoritmo RC4 chegaremos na última etapa com as posições invertidas: 233 na segunda linha e 85 na terceira.

Autor: Radamés

Engenheiro curitibano pela UFPR, professor e produtor de conteúdos e ferramentas educacionais para a Internet.

Sua opinião me interessa