Cifra de fluxo
A chave é inserida em um gerador de número pseudoaleatório , o gerador de número pseudoaleatório gera uma string de 8 dígitos aleatórios, e cada byte do fluxo de chave de saída e o fluxo de texto simples são submetidos a XOR para obter um byte , A mesma sequência pseudo-aleatória é usada para descriptografar.
Preste atenção ao design da cifra de fluxo:
- O período da sequência de criptografia é longo. A função usada pelo gerador de número pseudoaleatório gera um fluxo de bits determinístico que eventualmente se repetirá. Quanto mais longo for o período de repetição, mais difícil será a criptoanálise.
- O fluxo de chaves deve ser o mais próximo possível das características do fluxo de números aleatórios verdadeiro. Quanto melhores forem as características aleatórias do fluxo de chaves e quanto mais aleatório for o texto cifrado, mais difícil será a criptoanálise.
- A saída do gerador de números pseudo-aleatórios na figura acima é ajustada pela tecla de entrada K. Para evitar ataques de força bruta, a chave deve ser longa o suficiente, atualmente pelo menos 128 bits.
A vantagem da cifra de bloco é que a chave pode ser reutilizada, mas se a cifra de fluxo for criptografada com a mesma chave para duas civilizações, a análise do texto cifrado é bastante fácil.
Algoritmo RC4
RC4 é uma cifra de fluxo projetada por Ron Rivest para RSA em 1987. O comprimento da chave é variável e operação orientada por byte. A análise mostra que o ciclo da senha provavelmente será maior do que isso, cada saída de um byte do resultado requer apenas 8 a 16 instruções de operação da máquina e a implementação do software também é muito rápida. Aplicado a navegadores e servidores da web, os alunos desenvolveram padrões SSL / TLS.
A seguir está o processo de geração de chave da cifra de fluxo RC4.
No estado inicial, S é o preenchimento de 0 a 255, e T é o preenchimento repetido da chave K (comprimento da tecla).
Execute a substituição inicial de S que foi inicialmente preenchido. O processo de substituição consiste em trocar o bit i e o bit j. O algoritmo é
j=0;
for i=0 to 255 do
j=(j+S[i]+T[i]) mod 256;
swap(S[i],T[i]);
Após completar a substituição inicial de S, a chave inserida não é mais usada e S é substituída.
O processo de geração de fluxo de chave é mostrado na figura acima, e o algoritmo é
Ao criptografar, o valor de k é XORed com o próximo byte do texto simples, e ao descriptografar, o valor de k é XORed com o próximo byte do texto cifrado.