8000 Add new exercise 'Caesar Cipher' · python-sorocaba/coding-dojo@6adc560 · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Feb 2, 2020. It is now read-only.

Commit 6adc560

Browse files
Add new exercise 'Caesar Cipher'
1 parent 0f48828 commit 6adc560

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

2018-09-01/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Cifra de César
2+
3+
Em criptografia, a Cifra de César, também conhecida como cifra de troca, código de César ou troca de César, é uma das mais simples e conhecidas técnicas de criptografia. É um tipo de cifra de substituição na qual cada letra do texto é substituída por outra, que se apresenta no alfabeto abaixo dela um número fixo de vezes. Por exemplo, com uma troca de três posições, A seria substituído por D, B se tornaria E, e assim por diante. O nome do método é em homenagem a Júlio César, que o usou para se comunicar com os seus generais.
4+
5+
O processo de criptografia de uma cifra de César é frequentemente incorporado como parte de esquemas mais complexos, como a cifra de Vigenère, e continua tendo aplicações modernas, como no sistema ROT13. Como todas as cifras de substituição monoalfabéticas, a cifra de César é facilmente decifrada e na prática não oferece essencialmente nenhuma segurança na comunicação.
6+
7+
Você precisa criar um algoritmo de cifra de césar que suporte diversos rotacionamentos de caracteres para criptografar a sua mensagem.
8+
9+
![cifra-cesar](../images/cifra-cesar.png)
10+
11+
# Exemplos
12+
13+
Com rotação de 3 caracteres:
14+
```
15+
Normal: ABCDEFGHIJKLMNOPQRSTUVWXYZ
16+
Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC
17+
18+
Normal: Rafael
19+
Cifrado: Udidho
20+
21+
Normal: a ligeira raposa marrom saltou sobre o cachorro cansado
22+
Cifrado: d oljhlud udsrvd pduurp vdowrx vreuh r fdfkruur fdqvdgr
23+
```
24+
25+
Com rotação de 4 caracteres:
26+
```
27+
Normal: ABCDEF
28+
Cifrado: EFGHIJ
29+
```
30+
31+
etc.
32+
33+
# Desafio extra
34+
35+
Este desafio pode ser realizado durante ou fora do dojo de acordo com o tempo disponível que a gente terá ao final da "primeira fase" :wink:.
36+
37+
Crie um algoritmo que por força bruta consiga descriptografar mensagens cifradas, tentando mudar a rotação a cada iteração até encontrar texto legível.
38+
39+
Para automatizar mais ainda a descoberta podemos usar uma lista de palavras de um determinado idioma. Bons exemplos de lista de palavras podem ser vistos abaixo:
40+
41+
- [Random word generator- Python (Stack Overflow)](https://stackoverflow.com/questions/18834636/random-word-generator-python).
42+
- [Dadoware](https://github.com/thoughtworks/dadoware)
43+
- [Faker](https://github.com/joke2k/faker)
44+
45+
# Referências
46+
47+
- [Cifra de César - Wikipédia](https://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar)
48+
- [ROT13 - Wikipédia](https://pt.wikipedia.org/wiki/ROT13)
49+
- [Site que "criptografa" mensagens - rot13.com](https://www.rot13.com/)

2018-09-01/participantes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- @rafaelhenrique

images/cifra-cesar.png

54.6 KB
Loading

0 commit comments

Comments
 (0)
0