Operações com Strings: Cifra de César

Neste exercício, você colocará em prática alguns conhecimentos de manipulação de strings e de codificação através da técnica criptográfica primitiva chamada Cifra de César.

Em criptografia, a cifra de César, também denominado de cifra por deslocamento ou código de César, é uma da técnicas mais simples e mais conhecidas de cifração.

Consiste em um tipo de cifra por substituição no qual cada letra do texto claro (a mensagem que precisa ser protegida) é substituída por uma letra afastada por um número fixo de posições para frente no alfabeto. Esse número fixo de posições é o que chamaremos de chave.

Por exemplo, usar como chave o valor 3-3 transformará a letra D na letra A, a letra E na letra B e assim sucessivamente.

O método ganhou esse nome pelo fato de o imperador romano Júlio César usar a técnica para proteger suas correspondências.

Embora seja um método engenhoso, a sua estrutura não oferece segurança necessária para prover real proteção da mensagem: a exaustão do conjunto de chaves (são pouco numerosas) é trivial usando sistemas computacionais modernos. O que se considera atualmente como seguro são algoritmos como o AES, cujas chaves possuem comprimentos de até 256 bits (ou seja, são 22562^256 chaves possíves que deverão ser testadas em um ataque de exaustão — esquema de força bruta.)

Sua aplicação deverá receber em entrada em console um inteiro (chave) e uma string (mensagem ou texto claro) de até 32 bytes/caracteres e retornar a mensagem cifrada usando a chave e o texto claro como parâmetros na cifra de César.

Entrada

A entrada é composta por um inteiro e uma string ASCII de até 32 bytes/caracteres de comprimento.

Saída

A saída é uma string cifrada usando a cifra de César, em que a mensagem será a string de entrada e a chave será o inteiro informado pela entrada console.

Caracteres acentuados, numeros, pontuação e espaço são ignorados pelo processo de cifração.

Exemplo de Entrada

-3
alo mundo!

Exemplo de Saída

xil jrkal!

Exemplo de Entrada

17
Universidade de Brasilia

Exemplo de Saída

Lezmvijzuruv uv Sirjzczr

Exemplo de Entrada

28
VW5pdmVyc2lkYWRlIGRlIEJyYXNpbGk=

Exemplo de Saída

XY5rfoXae2nmAYTnKITnKGLaAZPrdIm=

Exemplo de Entrada

-12
e = mc^2 = m*c**2

Exemplo de Saída

s = aq^2 = a*q**2

Exemplo de Entrada

5
?,P0E/"n"#fvIvaI#7t~7rF]B=/H'e|2

Exemplo de Saída

?,U0J/"s"#kaNafN#7y~7wK]G=/M'j|2