Mensagem usava Cifra de Vigenère como método de codificação e, em tempos de Wikileaks, podemos dizer que esse é um "cable" que vaz...
Mensagem usava Cifra de Vigenère como método de codificação e, em tempos de Wikileaks, podemos dizer que esse é um "cable" que vazou quase um século e meio após o envio. Saiba com exclusividade qual era a chave para descodificar.
Imagine a situação, o General Pemberton (confederado sulista) estava sofrendo investidas seguidas das tropas do General Grant (nortista da União) em Vicksburg, última cidade ainda não tomada do Rio Mississipi.
A resistência parecia suportar bem as tentativas de tomada da cidade. Todavia, em abril de 1863, Grant decidiu mudar sua estratégia, e, na noite de 18 de maio, Grant e parte de suas forças moveram-se em direção ao sul, através de barcos.
Esse movimento pegou Pemberton de surpresa. Sem suprimentos, com as tropas tendo até que comer cães, gatos, couro e até sopa feita com cola de papel de parede. Após o cerco de seis semanas, Pemberton finalmente cedeu. Vicksburg, tão marcada pela experiência traumática, se recusou a celebrar o 4 de julho pelos 80 anos que se seguiram.
Provavelmente, Pemberton deve ter enviado mensagens pedindo ajuda a outras unidades, incluindo a do General Joseph E. Johnston (citado na mensagem) que estava acampado ao sul de Vicksburg, com 32.000 homens e que estava impedido de ajudar pelos 35.000 soldados de Grant.
A mensagem estava em uma garrafa com cerca de 5 cm de comprimento junto com uma bala. Provavelmente, esta munição serviria para fazer com que a mensagem afundasse no rio caso o mensageiro percebesse que seria interceptado.
O texto dizia basicamente que a ajuda não iria, e está datada 04 de julho de 1863, exatamente o dia da queda de Vicksburg. Que é considerado pelos historiadores o ponto de virada na Guerra de Secessão.
O remetente da mensagem por certo desconhecia que Vickburg estava a ponto de ceder quando enviou o texto de seis linhas. É bem provável que o mensageiro, ao avistar a bandeira da União, tenha entendido que o cerco terminara e resolvera ir embora. A mensagem nunca chegou ao seu destinatário.
A fonte da mensagem foi provavelmente o major-general John G. Walker, da Divisão de Texas, que tinha sob seu comando, William Smith, que doou a garrafa para o Museu da Confederação em 1896.
Desde então, ela repousava incólume dentro da garrafa. Até que Catherine M. Wright, gerente de coleções do museu, resolveu saber o que dizia a mensagem.
Após pedir ajuda de um restaurador de arte, que usou um microscópio eletrônico para analisar a rolha, e cortá-la usando um bisturi, Wright pode ler o que estava escrito. Apenas para descobrir que a mensagem estava cifrada. As letra pareciam estarem aleatoriamente colocadas. Após tentar em vão descodificar, ela pediu ajuda para um ex-funcionário da CIA aposentado, David Gaddy, que após algumas semanas conseguiu quebrar o código.
Depois, a mensagem foi confirmada por um especialista em códigos da marinha americana que descodificou-a enquanto esteva em um porta-aviões.
A mensagem foi criptografada usando-se o método da Cifra de Vigenère. Para compreender esse método é preciso entender antes como funciona um outro método de codificação que lhe deu origem. A Cifra de César.
A Cifra de César é um método de criptografia que leva em consideração um deslocamento das letras da mensagem. Isto é, caso o deslocamento seja, digamos, três posições, isso significa que o "A" vira "D", o "B" vira "E" e o "Z" vira "C".
Assim a mensagem:
BLOG BRASIL ACADEMICO
Em código seria:
DNQI DTCUKN CECFGOKEQ
O que não é tão difícil de ser quebrado, já que cada caractere corresponde a uma mesma letra. Sabendo-se que temos muitas ocorrências de vogais, em especial, "A" e "E" logo teríamos avançado para:
--O- --A-I- A-A-E-I-O
Assim, se um analista concluísse que as quatro primeira letras correspondem à palavra "BLOG" ele saberia que todas as ocorrências de "D" corresponderia ao "B" e as letras "Q" corresponderiam à letra "O". Facilitando bastante a quebra do código.
BLOG B-A-IL A-A-E-I-O
É claro que textos maiores fornecem mais elementos para conclusões melhores. Este é apenas uma ilustração das técnicas que poderiam ser empregadas. Mostrando a fragilidade da Cifra de César (que realmente fora empregado pelos oficiais das legiões romanas).
A solução apresentada pela Cifra de Vigenère é uma sofisticação que, aparentemente, tonaria a mensagem codificada inquebrável. De fato, na época de sua criação, a Cifra de Vigenère era considerada indecifrável. Hoje, no entanto, ela não resistiria muito tempo à força bruta dos computadores.
O truque consiste em criar uma Cifra de César para cada letra da mensagem a ser codificada. Conforme descrito a seguir.
Cada letra de um alfabeto de 26 letras corresponde ao deslocamento a ser aplicado a cada caracterer da mensagem. Assim, a letra "A" corresponde ao deslocamento de uma posição, a letra "B" de duas e assim sucessivamente.
Para facilitar, é usada uma tabela de alfabetos que consiste no alfabeto escrito 26 vezes em diferentes linhas, cada um deslocado ciclicamente do anterior por uma posição (ver figura). As 26 linhas correspondem às 26 possíveis cifras de César.
Uma palavra é escolhida como "palavra-chave", e cada letra desta palavra vai indicar a linha a ser utilizada para cifrar ou decifrar uma letra da mensagem.
Para ilustrar, veja o exemplo:
Frase em claro: BLOG BRASIL ACADEMICO
Palavra chave: BRACAD
Perceba que agora não mais é possível associar diretamente um caracter com uma letra.
Pois a mensagem dirigida à Vickburg dava apenas as más notícias para o General Pemberton.
O que àquela altura não faria mais muita diferença no resultado do cerco. Mas para satisfazer a curiosidade histórica tínhamos na mensagem:
Segundo Wright, a última linha, parece sugerir que uma entrega separada para Pemberton seria a palavra-chave para quebrar a mensagem.
A pressa e o desespero podem ter contribuído para erros na codificação
Mas, afinal, qual era a palavra-chave para descodificar a mensagem?
A mensagem descodificada, no original, dizia:
GENL PEMBERTON:
YOU CAN EXPECT NO HELP FROM THIS SIDE OF THE RIVER. LET GENL JOHNSTON KNOW IF POSSIBLE WHEN YOU CAN ATTACK THE SAME POINT ON THE ENEMYS LINE. INFORM ME ALSO AND I WILL ENDEAVOUR TO MAKE A DIVERSION I HAVE SENT YOU SOME CAPS I SUBJOIN DESPATCH FROM GEN JOHNSTON
Usando a mensagem codificada no papel e a mensagem descodificada podemos aplicar a mesma tabela da Cifra de Vigenère para determinar a palavra-chave usada para codificar e traduzir a mensagem.
Dispositivo usado pelos confederados para codificar mensagens
Seria algo trivial se não fossem as rasuras e uma ou outra letra que parecem terem sido trocadas acidentalmente. Até mesmo uma palavra inteira foi repetida durante a escrita da mensagem (repare no termo FEQT que foi duplicado no texto). Isso tudo pode indicar o stress sentido por aqueles soldados naqueles momentos decisivos da história norte-americana.
Por isso, fazendo uma análise do texto e com a ajuda de alguns algoritmos, chegamos à palavra-chave usada no texto:
MANCHESTERBLUFF
Fazendo uma rápida consulta à Internet vemos que nem era preciso gastar muito tempo para descriptografar esse texto. As forças da União frequentemente quebravam as mensagens cifradas pelos confederados cuja liderança usava três palavras-chave para codificação:
"Manchester Bluff", "Complete Victory" e perto do fim da guerra, "Come Retribution" conforme o livro "Crises of the Union". The Codebreakers: The Story of Secret Writing, publicado em 1999.
Fonte:
CIA codebreaker reveals 147-year-old Civil War message about the Confederate army's desperation
Cifra de Vigenère
A seguir, programas que desenvolvemos em BASIC (VBA no Access) para "brincarmos" com as cifras de César e Vigenère. Pode ser copiado e alterado livremente, desde que sejam mantidos os créditos originais.
Imagine a situação, o General Pemberton (confederado sulista) estava sofrendo investidas seguidas das tropas do General Grant (nortista da União) em Vicksburg, última cidade ainda não tomada do Rio Mississipi.
A resistência parecia suportar bem as tentativas de tomada da cidade. Todavia, em abril de 1863, Grant decidiu mudar sua estratégia, e, na noite de 18 de maio, Grant e parte de suas forças moveram-se em direção ao sul, através de barcos.
Esse movimento pegou Pemberton de surpresa. Sem suprimentos, com as tropas tendo até que comer cães, gatos, couro e até sopa feita com cola de papel de parede. Após o cerco de seis semanas, Pemberton finalmente cedeu. Vicksburg, tão marcada pela experiência traumática, se recusou a celebrar o 4 de julho pelos 80 anos que se seguiram.
Provavelmente, Pemberton deve ter enviado mensagens pedindo ajuda a outras unidades, incluindo a do General Joseph E. Johnston (citado na mensagem) que estava acampado ao sul de Vicksburg, com 32.000 homens e que estava impedido de ajudar pelos 35.000 soldados de Grant.
A mensagem estava em uma garrafa com cerca de 5 cm de comprimento junto com uma bala. Provavelmente, esta munição serviria para fazer com que a mensagem afundasse no rio caso o mensageiro percebesse que seria interceptado.
O texto dizia basicamente que a ajuda não iria, e está datada 04 de julho de 1863, exatamente o dia da queda de Vicksburg. Que é considerado pelos historiadores o ponto de virada na Guerra de Secessão.
O remetente da mensagem por certo desconhecia que Vickburg estava a ponto de ceder quando enviou o texto de seis linhas. É bem provável que o mensageiro, ao avistar a bandeira da União, tenha entendido que o cerco terminara e resolvera ir embora. A mensagem nunca chegou ao seu destinatário.
Ele descobriu o que estava acontecendo e disse: 'Bem, isso é inútil", e voltou.
Catherine M. Wright
A fonte da mensagem foi provavelmente o major-general John G. Walker, da Divisão de Texas, que tinha sob seu comando, William Smith, que doou a garrafa para o Museu da Confederação em 1896.
Desde então, ela repousava incólume dentro da garrafa. Até que Catherine M. Wright, gerente de coleções do museu, resolveu saber o que dizia a mensagem.
Apenas um tipo de curiosidade. Essa noção de, não temos qualquer ideia do que diz a sua mensagem?
Catherine M. Wright
Após pedir ajuda de um restaurador de arte, que usou um microscópio eletrônico para analisar a rolha, e cortá-la usando um bisturi, Wright pode ler o que estava escrito. Apenas para descobrir que a mensagem estava cifrada. As letra pareciam estarem aleatoriamente colocadas. Após tentar em vão descodificar, ela pediu ajuda para um ex-funcionário da CIA aposentado, David Gaddy, que após algumas semanas conseguiu quebrar o código.
Depois, a mensagem foi confirmada por um especialista em códigos da marinha americana que descodificou-a enquanto esteva em um porta-aviões.
Cifra de Vigenère
A mensagem foi criptografada usando-se o método da Cifra de Vigenère. Para compreender esse método é preciso entender antes como funciona um outro método de codificação que lhe deu origem. A Cifra de César.
A Cifra de César é um método de criptografia que leva em consideração um deslocamento das letras da mensagem. Isto é, caso o deslocamento seja, digamos, três posições, isso significa que o "A" vira "D", o "B" vira "E" e o "Z" vira "C".
Assim a mensagem:
BLOG BRASIL ACADEMICO
Em código seria:
DNQI DTCUKN CECFGOKEQ
O que não é tão difícil de ser quebrado, já que cada caractere corresponde a uma mesma letra. Sabendo-se que temos muitas ocorrências de vogais, em especial, "A" e "E" logo teríamos avançado para:
--O- --A-I- A-A-E-I-O
Assim, se um analista concluísse que as quatro primeira letras correspondem à palavra "BLOG" ele saberia que todas as ocorrências de "D" corresponderia ao "B" e as letras "Q" corresponderiam à letra "O". Facilitando bastante a quebra do código.
BLOG B-A-IL A-A-E-I-O
É claro que textos maiores fornecem mais elementos para conclusões melhores. Este é apenas uma ilustração das técnicas que poderiam ser empregadas. Mostrando a fragilidade da Cifra de César (que realmente fora empregado pelos oficiais das legiões romanas).
A solução apresentada pela Cifra de Vigenère é uma sofisticação que, aparentemente, tonaria a mensagem codificada inquebrável. De fato, na época de sua criação, a Cifra de Vigenère era considerada indecifrável. Hoje, no entanto, ela não resistiria muito tempo à força bruta dos computadores.
O truque consiste em criar uma Cifra de César para cada letra da mensagem a ser codificada. Conforme descrito a seguir.
Cada letra de um alfabeto de 26 letras corresponde ao deslocamento a ser aplicado a cada caracterer da mensagem. Assim, a letra "A" corresponde ao deslocamento de uma posição, a letra "B" de duas e assim sucessivamente.
Para facilitar, é usada uma tabela de alfabetos que consiste no alfabeto escrito 26 vezes em diferentes linhas, cada um deslocado ciclicamente do anterior por uma posição (ver figura). As 26 linhas correspondem às 26 possíveis cifras de César.
Uma palavra é escolhida como "palavra-chave", e cada letra desta palavra vai indicar a linha a ser utilizada para cifrar ou decifrar uma letra da mensagem.
Para ilustrar, veja o exemplo:
Frase em claro: BLOG BRASIL ACADEMICO
Palavra chave: BRACAD
Texto.....: BLOG BRASIL ACADEMICO
Chave.....: BRAC ADBRAC ADBRACADB
Codificado: CCOI BUBJIN AFBUEOIFP
Perceba que agora não mais é possível associar diretamente um caracter com uma letra.
Tarde demais!
Pois a mensagem dirigida à Vickburg dava apenas as más notícias para o General Pemberton.
Ele está dizendo: Eu não posso te ajudar. Eu não tenho tropas, não tenho fontes, eu não tenho como chegar lá.
Catherine M. Wright
O que àquela altura não faria mais muita diferença no resultado do cerco. Mas para satisfazer a curiosidade histórica tínhamos na mensagem:
Gen'l Pemberton: Você não pode esperar nenhuma ajuda deste lado do rio. Deixe Gen'l Johnston saber, se possível, quando você pode atacar o mesmo ponto em linhas do inimigo. Informe-me também, e eu vou me esforçar para fazer um desvio. Eu já mandei alguns caps (explosivos). Eu acrescentei um despacho do General Johnston.
Segundo Wright, a última linha, parece sugerir que uma entrega separada para Pemberton seria a palavra-chave para quebrar a mensagem.
Mas, afinal, qual era a palavra-chave para descodificar a mensagem?
A mensagem descodificada, no original, dizia:
GENL PEMBERTON:
YOU CAN EXPECT NO HELP FROM THIS SIDE OF THE RIVER. LET GENL JOHNSTON KNOW IF POSSIBLE WHEN YOU CAN ATTACK THE SAME POINT ON THE ENEMYS LINE. INFORM ME ALSO AND I WILL ENDEAVOUR TO MAKE A DIVERSION I HAVE SENT YOU SOME CAPS I SUBJOIN DESPATCH FROM GEN JOHNSTON
Usando a mensagem codificada no papel e a mensagem descodificada podemos aplicar a mesma tabela da Cifra de Vigenère para determinar a palavra-chave usada para codificar e traduzir a mensagem.
Seria algo trivial se não fossem as rasuras e uma ou outra letra que parecem terem sido trocadas acidentalmente. Até mesmo uma palavra inteira foi repetida durante a escrita da mensagem (repare no termo FEQT que foi duplicado no texto). Isso tudo pode indicar o stress sentido por aqueles soldados naqueles momentos decisivos da história norte-americana.
Por isso, fazendo uma análise do texto e com a ajuda de alguns algoritmos, chegamos à palavra-chave usada no texto:
MANCHESTERBLUFF
Codificado: SEAN WIEUIIUZH DTG CNP LBHXGK OZ BJQB FEQT XZBW JJOY TK FHR TPZWK
Chave.....: MANC HESTERBLU FFM ANC HESTER BL UFFM ANCH ESTE RBLU FF MAN CHEST
Texto.....: GENL PEMBERTON YOU CAN EXPECT NO HELP FROM THIS SIDE OF THE RIVER
Fazendo uma rápida consulta à Internet vemos que nem era preciso gastar muito tempo para descriptografar esse texto. As forças da União frequentemente quebravam as mensagens cifradas pelos confederados cuja liderança usava três palavras-chave para codificação:
"Manchester Bluff", "Complete Victory" e perto do fim da guerra, "Come Retribution" conforme o livro "Crises of the Union". The Codebreakers: The Story of Secret Writing, publicado em 1999.
Fonte:
CIA codebreaker reveals 147-year-old Civil War message about the Confederate army's desperation
Cifra de Vigenère
A seguir, programas que desenvolvemos em BASIC (VBA no Access) para "brincarmos" com as cifras de César e Vigenère. Pode ser copiado e alterado livremente, desde que sejam mantidos os créditos originais.
Function trocaLetra(Codigo As String, Chave As String)
'
'''''''''''''''''''''''''''''''''''''''''''
' Função que troca a letra dependendo do
' caracter da chave da cifra de Vigenère
'
' por Prof. Alexandre Gomes (30/12/2010)
' http://blog.brasilacademico.com
'''''''''''''''''''''''''''''''''''''''''''
'
Dim Desloc As Integer, Desc As Integer
Codigo = UCase(Codigo)
Chave = UCase(Chave)
Desloc = Asc(Chave) - 65
Desc = Asc(Codigo) + Desloc
If Desc > 90 Then
Desc = 64 + (Desc Mod 90)
End If
trocaLetra = Chr(Desc)
End Function
Function destrocaLetra(Codigo As String, Chave As String)
'
''''''''''''''''''''''''''''''''''''''''''''
' Função que codifica a letra de acordo com
' caracter da chave da cifra de Vigenère
'
' por Prof. Alexandre Gomes (2010)
' http://blog.brasilacademico.com
'''''''''''''''''''''''''''''''''''''''''''
'
Dim Desloc As Integer
Codigo = UCase(Codigo)
Chave = UCase(Chave)
Desloc = Asc(Chave) - 65
Desc = Asc(Codigo) - Desloc
If Desc < 65 Then
Desc = 91 - (65 - Desc)
End If
destrocaLetra = Chr(Desc)
End Function
Function Codificar(Texto As String, Chave As String)
'
'''''''''''''''''''''''''''''''''''''''''''''
' Função que descodifica texto passado
' parâmetro de acordo com a chave
'
' por Prof. Alexandre Gomes (30/12/2010)
' http://blog.brasilacademico.com
'''''''''''''''''''''''''''''''''''''''''''''
'
Dim L As String, Decod As String
Dim K As String, DK As Integer, Tam As Integer
Tam = Len(Texto)
DK = 0
For t = 1 To Tam
L = Mid(Texto, t, 1)
If L = " " Then
Decod = Decod & L
Debug.Print " ";
Else
DK = DK + 1
K = Mid(Chave, DK, 1)
Decod = Decod & trocaLetra(L, K)
If DK = Len(Chave) Then
DK = 0
End If
If K <> " " Then
Debug.Print K;
Else
Debug.Print " ";
End If
End If
Next
Debug.Print
Codificar = Decod
End Function
Function Descodificar(Texto As String, Chave As String)
'
'''''''''''''''''''''''''''''''''''''''''''
' Função que codifica texto passado como
' parâmetro de acordo com a chave
'
' por Prof. Alexandre Gomes (30/12/2010)
' http://blog.brasilacademico.com
'''''''''''''''''''''''''''''''''''''''''''
'
Dim L As String, Decod As String
Dim K As String, DK As Integer, Tam As Integer
Texto = UCase(Texto)
Tam = Len(Texto)
DK = 0
For t = 1 To Tam
L = Mid(Texto, t, 1)
If L = " " Then
Decod = Decod & L
Debug.Print " ";
Else
DK = DK + 1
K = Mid(Chave, DK, 1)
Decod = Decod & destrocaLetra(L, K)
If DK = Len(Chave) Then
DK = 0
End If
If K <> " " Then
Debug.Print K;
Else
Debug.Print " ";
End If
End If
Next
Debug.Print
Descodificar = Decod
End Function
O texto, alem de demonstrar a capacidade de ir ao fundo do poço, do irrefreável blogueiro War, dá-nos uma idéia do quanto foi intensa essa guerrra e o quanto envolveu toda a população dos hermanos da Norte América.
ResponderExcluirNão sei porque; talvez seja influência de O Vento Levou, mas sempre vi com maior simpatia os sulistas.
Invadir o sul e submetê-lo, soa para mim, como uma das tantas intevenções brutais que os brothers da Norte América, com maior ou menor acerto, vivem fazendo na casa dos outros.
Ainda que escravistas, os sete estados do sul se valiam do raciocínio de que os EUA eram uma liga de estados independentes, e que qualquer destes estados possuía o direito de se tornar independente.
ResponderExcluirPode até ser que seja pelos motivos errados (econômicos) mas de todo modo foi bom acabar com a escravidão no mundo.