Cifra rotacional

Cifra rotacional

Médio

Instruções

Crie uma implementação da cifra rotacional, também chamada às vezes de cifra de César.

A cifra de César é uma cifra de deslocamento simples que se baseia em deslocar todas as letras do alfabeto usando uma chave inteira entre 0 e 26. Usar uma chave 0 ou 26 sempre produz o mesmo resultado por causa da aritmética modular. Cada letra é deslocada pela quantidade de posições indicada pelo valor da chave.

A notação geral das cifras rotacionais é ROT + <key>. A cifra rotacional mais usada é a ROT13.

Uma ROT13 no alfabeto latino seria assim:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm

Ela é mais forte que a cifra Atbash porque tem 27 chaves possíveis e 25 chaves utilizáveis.

O texto cifrado é escrito com a mesma formatação da entrada, incluindo espaços e pontuação.

Exemplos

  • ROT5 omg resulta em trl
  • ROT0 c resulta em c
  • ROT26 Cool resulta em Cool
  • ROT13 The quick brown fox jumps over the lazy dog. resulta em Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
  • ROT13 Gur dhvpx oebja sbk whzcf bire gur ynml qbt. resulta em The quick brown fox jumps over the lazy dog.

Registradores

Registrador Uso Tipo Descrição
$a0 entrada endereço string de entrada terminada em nulo
$a1 entrada inteiro chave de deslocamento
$a2 entrada/saída endereço string de resultado terminada em nulo
$t0-9 temporário qualquer para armazenamento temporário

Fonte

WikipediaO link abre em uma nova janela ou aba
Editar via GitHub O link abre em uma nova janela ou aba
MIPS Assembly Exercism

Tudo pronto para começar Cifra rotacional?

Crie sua conta no Exercism para aprender e dominar MIPS Assembly com 70 exercícios e mentoria humana de verdade, tudo de graça.