|
|
||
|
|
Criptografia: a ciência da escrita secreta, -exemplos -
Exemplos de codificação simétrica: Exemplo de codificação assimétrica: 1. [Simples] 1. [Chave pública] 2. [Transposição] 3. [Cifra de Vigenere] 4. [Sequência aleatória]
Simples
Suponhamos, que substituimos o A pelo B, o B pelo C, o C pelo D, e assim por diante até que substituimos o Z pelo A. Então a mensagem maravilhosamente chata "A MINHA CAIXA DE LÁPIS É VERMELHA" (note-se que as acentuação de uma letra é tomada como inexistente) toma a forma codificada:BNJOIBDBJZBEFMBQJTFXFSNFMIB
Retirámos os espaços entre as palavras para tornar a decifração mais difícil. Sem dúvida que, à primeira vista, parece bastante misteriosa.
Podíamos ter escolhido qualquer letra do alfabeto para substituir por uma outra qualquer, existe um vasto número de esquemas diferentes possíveis para este tipo de substituição. Se se pretende transmitir apenas uma única mensagem de muita curta duração, como no exemplo apresentado, isso até é verdade, desde que se evitem padrões extremamente simplistas como o de A para B, B para C, C para D, que se usou no exemplo.
Transposição
Suponhamos, que escolhemos para a nossa "chave" a sequência de números 3, 1, 5, 7, 2, 9, 6, 8, 4. Passamos agora a nossa mensagem para a forma codificada transportando a primeira letra para a terceira posição, a segunda para a primeira, a terceira para a quinta e assim por diante até à nona letra, que passamos para a quarta posição (seguindo o padrão de números da chave). Após termos transposto desta forma as nove primeira letras, o padrão pode ser repetido indefinidamente, transpondo o segundo conjunto de nove letras da mesma maneira. O mesmo acontece com o terceiro e assim por diante até ao fim da mensagem que se deseja transmitir.Assim a nossa mensagem A MINHA CAIXA DE LÁPIS É VERMELHA (note-se que as acentuação de uma letra é tomada como inexistente) fica com as primeiras nove letras transpostas em MHAIICNAA, as segundas nove letras em ALXSDPEIA, e assim sucessivamente até à forma completa
MHAIICNAAALXSDPEIAVMEAELRHE
Retirámos os espaços entre as palavras para tornar a decifração mais difícil. Mensagens muito curtas que recorram a este esquema não podem muitas vezes ser decifradas sem quaisquer ambiguidade. Por exemplo, a mensagem codificada, OSVA, poderia de igual modo significar VASO, usando a chave 3421, ou SOVA, usando a chave 2134.
Mas mensagens mais longas tornam-se inseguras, existindo métodos gerais para a sua decifração já publicado desde 1878 para textos comuns em inglês, mesmo nos casos em que o comprimento da sequência de números da chave é desconhecida à partida.
[Exemplo anterior] [Próximo exemplo]
Um tipo de codificação que não substitui cada letra particular da mensagem original pelo mesmo substituto é o sistema de codificação muitas vezes conhecido como cifra de Vigenere. Cifra de Vigenere
Uma forma de o fazer é pensar numa palavra, que escolhemos para exemplo CANDEEIRO, e escrevê-la repetidamente por baixo da mensagem a ser codificada, da seguinte forma (note-se que as acentuação de uma letra é tomada como inexistente):
A MINHA CAIXA DE LAPIS E VERMELHA C ANDEE IROCA ND EEIRO C ANDEEIRO Visto que o A é a primeira letra do alfabeto e o C que se encontra por baixo é a terceira, podemos codificar a primeira letra da mensagem adicionando 1 a 3, para chegarmos à quarta letra do alfabeto, D. Da mesma maneira, para a segunda letra da mensagem, o M(12) é adicionado ao A(1) que está por baixo para produzir o substituto codificado N(13). Se acontecesse a uma destas somas dar um resultado superior a 23, começaríamos de novo o alfabeto do princípio, associando o a ao 24, o B ao 25, etc.. Usando esta "chave" particular a mensagem de cima traduz-se em
DNXRNFMSZBBIQFACIHXSVRJUBP
em que, retirámos os espaços entre as palavras para tornar a decifração mais difícil.Com certeza este processo de codificação ajuda a confundir qualquer tentativa de decifrar o código, tornando-o mais seguro do que qualquer um dos primeiros métodos.
Infelizmente, embora a afirmação anterior não deixe de ser verdadeira, o facto é que cifras de Vigenere como a que é usada no nosso exemplo podem ser imediatamente decifradas. De facto, mais uma vez foi desenvolvido um método geral de ataque há mais de cem anos.
[Exemplo anterior] [Próximo exemplo]
Para se obter segurança absoluta a chave tem de ser aleatória, nunca se deve repetir, tem, por isso, de ter um comprimento igual à soma dos comprimentos de todas as mensagens a serem codificadas.Contudo, essa conclusão necessita de uma clarificação adicional: Sequência aleatória
- Só é válida quando o código contém um grau de complexidade ( o termo “entropia” é por vezes usado) pelo menos tão grande como o da mensagem, isto é, a chave terá de possuir pelo menos tantos símbolos diferentes quantas as letras do alfabeto. Se por exemplo a chave é uma selecção aleatória de todas as 23 letras do alfabeto, a mensagem é segura. Por outro lado, é absolutamente possível arranjar uma sequência completamente aleatória e não repetitiva de menor "entropia" do que a mensagem, a qual não seria segura.
Consideremos uma sequência perfeitamente aleatória de uns e dois, como
112122222121222121211112111...
que foi realmente obtida por nós recorrendo a uma moeda que fomos atirando ao ar (1, para caras, 2 para coroas). Se interpretarmos o 1 como "substitui esta letra da mensagem pela letra seguinte do alfabeto" (ou seja, A por B, B por C, etc.) e o 2 como "substitui esta letra por duas à frente no alfabeto" (ou seja, A por C, B por D, etc.), então a nossa mensagem a codificar A MINHA CAIXA DE LÁPIS É VERMELHA (note-se que as acentuação de uma letra é tomada como inexistente) seria codificada como
BNLOJCECLZCEGNCQLTGXFSNGMIB
em que, retirámos os espaços entre as palavras para tornar a decifração mais difícil. A substituição aleatória letra a letra por meio de uma chave alfabética completa e única é, portanto, a solução da cifra inquebrável. Devido à garantia de segurança, chaves de uma única utilização como estas têm sido frequentemente encontradas na posse de agentes secretos estrangeiros detidos.
[Exemplo anterior] [Próximo exemplo]
Pense num número que seja produto de dois números primos. Nós escolhemos, por motivos de demonstração, o número 14, que é 7x2. Subtraia agora uma unidade a cada um desses primos, para dar 1 e 6, e multiplique esses dois números. Mas "porquê?", perguntará. Confie em nós ... por enquanto. Deixe-me simbolizar este novo número 1x6=6 pela letra grega F, visto que ele desempenha um papel muito importante nos sistemas de codificação, conforme veremos adiante. Chave Pública
Escolho agora um número que não tenha qualquer factor com F.Visto que 2 e 3 são os factores de F=6, isso deixa-nos por aberto a escolha de qualquer número que não seja divisível quer por 2 quer por 3. Vamos escolher o 5, pois é o menor dos número permitidos e pretendemos manter os nossos números tão pequenos quanto possível para a nossa demonstração "trivial".Esse número 5, juntamente com o nosso número original 14 são aqueles que anunciamos ao mundo no nosso catálogo público.
Se pretender codificar-nos uma mensagem, deverá proceder do seguinte modo:
1. Substituia as letras do alfabeto da forma óbvia A=1, B=2, C=3, e assim sucessivamente.
2. A codificação é então efectuada substituindo o número correspondente a cada letra por esse mesmo número elevado à quinta potência (sendo 5 o primeiro dos nossos números do catálogo), mas registando apenas o resto quando contando em grupos de 14 (o nosso segundo número do catálogo). Contamos em mód. 14.
Vamos agora ver como isso funciona na codificação de uma palavra muito curta e fácil como CAFÉ.
1. Procedemos assim à realização do primeiro passo, como já explicado, transformando-se em 3165.
2. É agora codificada notando que :
35= 243 = 17 x 14 + 5 15= 1 = 0 x 14 + 1 65=7776 =555 x 14 + 6 55=3125 = 223 x 14 + 3 ou, equivalentemente como congruência mód. 14
35 º 5 (mód. 14) 15 º 1 (mód. 14) 65 º 6 (mód. 14) 55 º 3 (mód. 14) que nos apresenta a sequência de restos 5163. Segue-se que 5163 é a forma cifrada da palavra CAFÉ segundo este esquema particular. Para se descodificar é necessário possuir a "chave" que a transformará de 5163 para 3165 ou o seu equivalente alfabético, CAFÉ.
Qual é essa chave?
É essencialmente um número conhecido apenas do receptor da cifra. Para obter é necessário conhecer primeiro o F. Especificamente, é o número que, quando multiplicado pelo primeiro número do catálogo (5 no nosso catálogo), dá resto de 1 quando se conta em grupos de F (6 no nosso caso). Este número secreto de "decifração de códigos" no caso do nosso exemplo trivial é, portanto, 11 visto que 5 x 11 = 55 = 9 x 6 + 1, ou na forma modular, 5 x 11 º 1 (mód. 6) . A descodificação é agora efectuada exactamente do mesmo modo como foi realizada a codificação, mas usando o número secreto 11 como a nova potência a que os números da cifra deverão ser elevados. Assim, tomando a forma codificada 5163, passamos a calcular os restos
511 º 3 (mód. 14) 111 º 1 (mód. 14) 611 º 6 (mód. 14) 311 º 5 (mód. 14) e, surpresa das surpresas, regenerámos o 3165, ou CAFÉ original, já descodificado.