[Princípio da criptografia] Cifra de fluxo e algoritmo RC4

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 10 ^ {100}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.

Acho que você gosta

Origin blog.csdn.net/m0_50984266/article/details/108905255
Recomendado
Clasificación