Criptografia Numaboa
Exercícios com o Código de Políbio
Sab 2 Jul 2005 16:13 |
- Detalhes
- Categoria: Exercícios on line
- Atualização: Terça, 12 Fevereiro 2008 22:40
- Autor: vovó Vicki
- Acessos: 16763
Este exercício se refere ao Código de Políbio, na verdade um telégrafo ótico. Esta é uma cifra arcaica, classificada como cifra de substituição monoalfabética digrâmica. Ao que tudo indica, o Código de Políbio foi o primeiro sistema completo de transmissão de dados.
TABELA DE SUBSTITUIÇÃO
Apenas para refrescar a memória, segue a tabela de substituição:
| 1 | 2 | 3 | 4 | 5 | |-----------------------------| | 1 | A | B | C | D | E | | 2 | F | G | H | I | J | | 3 | K/Q | L | M | N | O | | 4 | P | R | S | T | U | | 5 | V | W | X | Y | Z | |-----------------------------|
FERRAMENTA DE TRABALHO
Exercício 1 - DECIFRANDO A MENSAGEM
Considerando as 10 tochas acesas como o sinal de início/fim de transmissão, decifre a mensagem abaixo:
Para conferir se a sua resposta está correta, clique e arraste o cursor do mouse entre as marcas do campo abaixo:
| 34 45 33 11 12 35 11 = N U M A B O A |
Exercício 2 - UM POUCO DE MATEMÁTICA
Você seria capaz de expressar matematicamente a transformação de 25 caracteres quaisquer para o código de Políbio?
Para ajudar um pouco nesta tarefa, algumas observações:
- A primeira constatação é que estamos lidando com um sistema com 5 elementos, ou seja, dispomos apenas dos algarismos 1, 2, 3, 4 e 5 para compor o valor de cada caracter.
- Cada caracter é identificado pelos elementos combinados dois a dois. Sabemos que existem 25 combinações possíveis, pois 52 = 25 onde o número de elementos (5) é elevado à combinação (2).
- Em qualquer sistema fica mais fácil ter o zero como ponto de partida. Experimente montar uma grade e numerar as linhas, as colunas e cada uma das suas "casas" ou células. Você deve obter algo como
| Coluna 0 | Coluna 1 | Coluna 2 | Coluna 3 | Coluna 4 | |----------|----------|----------|----------|----------| | Linha 0 | 0 | 1 | 2 | 3 | 4 | | Linha 1 | 5 | 6 | 7 | 8 | 9 | | Linha 2 | 10 | 11 | 12 | 13 | 14 | | Linha 3 | 15 | 16 | 17 | 18 | 19 | | Linha 4 | 20 | 21 | 22 | 23 | 24 |
- Observe que há 5 linhas numeradas de 0 a 4, 5 colunas numeradas de 0 a 4 e uma sequência de 25 células numeradas de 0 a 24. Note também que, para determinar a linha e a coluna de uma determinada célula, basta usar a operação de divisão.
- Como estamos lidando com um conjunto de cinco elementos, sabemos que, a cada 5° elemento, trocamos de linha. Então, basta dividir a posição da célula por 5 que a parte inteira da divisão indicará a linha. Por exemplo, 17 / 5 = 3 e resta 2. A célula 17 se econtra na Linha 3.
- Cada linha é dividida em 5 colunas. Isto significa que cada coluna corresponde a um quinto de uma linha inteira, ou seja, é uma fração da divisão e o resto da divisão vai nos indicar a coluna. Usando o mesmo exemplo, 17 / 5 = 3 e resta 2. A célula 17 se encontra na Coluna 2.
- Se este é o algoritmo para se encontrar a posição de uma célula numa grade de 5 x 5, podemos expressá-lo matematicamente. A parte inteira de uma divisão algébrica é indicada por INT e o resto pode ser obtido através de uma divisão modular, indicada por MOD. As constatações feitas acima podem ser escritas como INT( 17 / 5 ) = 3 e 17 (MOD 5) = 2. Generalizando, Linha = INT( Célula / 5) e Coluna = Célula (MOD 5).
- A célula 0 fica na coluna 0 da linha 0, a célula 1 fica na coluna 1 da linha 0, e assim sucessivamente. Podemos trocar a numeração da célula pela sua posição na grade: a célula 0 pode ser representada por 00, a célula 1 por 01, ..., a célula 5 por 10, a célula 6 por 11, ..., a célula 17 por 32, etc. Para cada célula obtemos um número composto pelo valor da linha multiplicado por 10 (para deslocar o número uma casa decimal) somado ao valor da coluna. Este novo modo de identificar uma célula pode ser respresentado por valor = (Linha x 10) + Coluna.
- Neste ponto temos como identificar as células usando as linhas e as colunas e também temos como calcular as linhas e colunas. Se valor = ( Linha x 10 ) + Coluna e Linha = INT( Célula / 5), pode-se transformar o valor em valor = (INT( Célula / 5) x 10) + Coluna. Da mesma forma, pode-se chegar em valor = (INT( Célula / 5) x 10) + Célula (MOD 5).
- Com esta nova fórmula podemos calcular o valor da célula 0, ou seja, valor = (INT( 0 / 5 ) x 10) + 0 (MOD 5) = (0 x 10) + 0 = 0. Acontece que, no Código de Políbio, a célula 0 é identificada pelo valor 11 e o nosso cálculo da célula 0 resultou no valor 0. Há uma diferença de 11 do valor esperado pelo código de Políbio e o fornecido pela nossa fórmula. Só falta acertar esta diferença para responder este teste. Você é capaz de fazer isto?
Confira abaixo se a sua resposta está correta:
| valor = (INT( Célula / 5 ) x 10) + Célula (MOD 5) + 11 |
Faça os cálculos com qualquer uma das células ou, numerando as letras do alfabeto de 0 a 25, com qualquer uma das letras. Confira se o algoritmo da vovó Vicki está realmente certo