A necessidade de criptografar a correspondência surgiu no mundo antigo e surgiram as cifras de substituição simples. Mensagens criptografadas determinaram o destino de muitas batalhas e influenciaram o curso da história. Com o tempo, as pessoas inventaram métodos de criptografia cada vez mais avançados.
Código e cifra são, aliás, conceitos diferentes. A primeira significa substituir cada palavra na mensagem por uma palavra de código. A segunda é criptografar cada símbolo de informação usando um algoritmo específico.
Depois que a matemática começou a codificar informações e a teoria da criptografia foi desenvolvida, os cientistas descobriram muitas propriedades úteis dessa ciência aplicada. Por exemplo, algoritmos de decodificação ajudaram a desvendar idiomas mortos, como o egípcio antigo ou o latim.
Esteganografia
Esteganografia é mais antiga que codificação e criptografia. Esta arte existe há muito tempo. Literalmente significa "escrita oculta" ou "escrita cifrada". Embora a esteganografia não satisfaça as definições de código ou cifra, destina-se a ocultar informações de estranhos.olho.
Esteganografia é a cifra mais simples. Notas engolidas cobertas de cera são exemplos típicos, ou uma mensagem em uma cabeça raspada que se esconde sob o cabelo crescido. O exemplo mais claro de esteganografia é o método descrito em muitos livros de detetive ingleses (e não apenas), quando as mensagens são transmitidas através de um jornal, onde as letras são marcadas discretamente.
A principal desvantagem da esteganografia é que um estranho atento pode notá-la. Portanto, para evitar que a mensagem secreta seja lida facilmente, métodos de criptografia e codificação são usados em conjunto com esteganografia.
ROT1 e cifra de César
O nome desta cifra é ROTate 1 letter forward, e é conhecida por muitos alunos. É uma cifra de substituição simples. Sua essência está no fato de que cada letra é criptografada deslocando-se alfabeticamente por 1 letra para frente. A -> B, B -> C, …, Z -> A. Por exemplo, criptografamos a frase "nossa Nastya chora alto" e obtemos "geral Obtua dspnlp rmbsheu".
A cifra ROT1 pode ser generalizada para um número arbitrário de deslocamentos, então é chamada de ROTN, onde N é o número pelo qual a criptografia das letras deve ser deslocada. Nesta forma, a cifra é conhecida desde os tempos antigos e é chamada de "cifra de César".
A cifra de César é muito simples e rápida, mas é uma cifra de permutação simples e, portanto, fácil de quebrar. Tendo tal desvantagem, é adequado apenas para brincadeiras infantis.
Cifras transposicionais ou de permutação
Esses tipos de cifras de permutação simples são mais sérias e foram usadas ativamente não muito tempo atrás. Durante a Guerra Civil Americana e a Primeira Guerra Mundial, foi usado para enviar mensagens. Seu algoritmo consiste em reorganizar as letras nos lugares - escrever a mensagem na ordem inversa ou reorganizar as letras em pares. Por exemplo, vamos criptografar a frase "O código Morse também é uma cifra" -> "akubza ezrom - hedgehog rfish".
Com um bom algoritmo que determinava permutações arbitrárias para cada caractere ou grupo deles, a cifra tornou-se resistente a quebras simples. Mas! Somente no devido tempo. Como a cifra é facilmente quebrada por simples força bruta ou correspondência de dicionário, hoje qualquer smartphone pode lidar com sua descriptografia. Portanto, com o advento dos computadores, essa cifra também passou para a categoria infantil.
Código Morse
O ABC é um meio de troca de informações e sua principal tarefa é tornar as mensagens mais fáceis e compreensíveis para transmissão. Embora isso seja contrário ao que a criptografia se destina. No entanto, funciona como as cifras mais simples. No sistema Morse, cada letra, número e sinal de pontuação tem seu próprio código, formado por um grupo de traços e pontos. Ao enviar uma mensagem usando o telégrafo, traços e pontos representam sinais longos e curtos.
Telégrafo e código Morse… Morse foi quem primeiro patenteou "sua" invenção em 1840, embora dispositivos semelhantes tenham sido inventados na Rússia e na Inglaterra antes dele. Mas quem se importa agora… Telégrafo e alfabetoO código Morse teve um impacto muito grande no mundo, permitindo a transmissão quase instantânea de mensagens em distâncias continentais.
Substituição monoalfabética
Os códigos ROTN e Morse descritos acima são exemplos de fontes de substituição monoalfabéticas. O prefixo "mono" significa que durante a criptografia, cada letra da mensagem original é substituída por outra letra ou código do único alfabeto de criptografia.
Decifrar cifras de substituição simples não é difícil, e esta é sua principal desvantagem. Eles são resolvidos por enumeração simples ou análise de frequência. Por exemplo, sabe-se que as letras mais usadas do idioma russo são “o”, “a”, “i”. Assim, pode-se supor que no texto cifrado as letras que ocorrem com mais frequência significam "o", ou "a", ou "e". Com base nessas considerações, a mensagem pode ser descriptografada mesmo sem uma pesquisa no computador.
Sabe-se que Maria I, Rainha da Escócia de 1561 a 1567, usou uma cifra de substituição monoalfabética muito complexa com várias combinações. No entanto, seus inimigos foram capazes de decifrar as mensagens, e as informações foram suficientes para sentenciar a rainha à morte.
Cifra de Gronsfeld, ou substituição polialfabética
Criptografias simples são declaradas inúteis pela criptografia. Portanto, muitos deles foram melhorados. A cifra de Gronsfeld é uma modificação da cifra de César. Este método é muito mais resistente ao hacking e reside no fato de que cada caractere da informação codificada é criptografado usando um dos diferentes alfabetos, que se repetem ciclicamente. Pode-se dizer que esta é uma aplicação multidimensionala cifra de substituição mais simples. Na verdade, a cifra de Gronsfeld é muito semelhante à cifra de Vigenère discutida abaixo.
Algoritmo de criptografia ADFGX
Esta é a cifra mais famosa da Primeira Guerra Mundial usada pelos alemães. A cifra recebeu esse nome porque o algoritmo de criptografia levava todos os cifergramas à alternância dessas letras. A escolha das próprias letras foi determinada pela conveniência quando transmitidas por linhas telegráficas. Cada letra na cifra é representada por duas. Vejamos uma versão mais interessante do quadrado ADFGX que inclui números e é chamado ADFGVX.
A | D | F | G | V | X | |
A | J | Q | A | 5 | H | D |
D | 2 | E | R | V | 9 | Z |
F | 8 | Y | I | N | K | V |
G | U | P | B | F | 6 | O |
V | 4 | G | X | S | 3 | T |
X | W | L | Q | 7 | C | 0 |
O algoritmo de quadratura ADFGX é o seguinte:
- Escolha n letras aleatórias para colunas e linhas.
- Construindo uma matriz N x N.
- Digite o alfabeto, números, caracteres aleatoriamente espalhados pelas células da matriz.
Vamos fazer um quadrado semelhante para o idioma russo. Por exemplo, vamos criar um quadrado ABCD:
A | B | B | G | D | |
A | E/E | N | b/b | A | I/Y |
B | W | V/F | G/R | З | D |
B | Sh/Sh | B | L | X | I |
G | R | M | O | Yu | P |
D | F | T | T | S | U |
Esta matriz parece estranha porque uma linha de células contém duas letras. Isso é aceitável, o significado da mensagem não é perdido. Pode ser facilmente restaurado. Criptografe a frase "cifra compacta" usando esta tabela:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
Frase | K | O | M | P | A | K | T | N | S | Y | Ш | & | F | R |
Cifra | bw | gv | gb | onde | ag | bw | db | ab | dg | inferno | wa | inferno | bb | ha |
Assim, a mensagem final criptografada fica assim: "bvgvgbgdagbvdbabdgvdvaadbbga". Claro, os alemães realizaram uma linha semelhante através de várias outras cifras. E no final ficou muito estávelpara quebrar a mensagem criptografada.
cifra Vigenère
Esta cifra é uma ordem de grandeza mais resistente à quebra do que as monoalfabéticas, embora seja uma cifra simples de substituição de texto. No entanto, devido ao algoritmo robusto, por muito tempo foi considerado impossível hackear. A primeira menção a ela remonta ao século XVI. Vigenère (um diplomata francês) é erroneamente creditado como seu inventor. Para entender melhor o que está em jogo, considere a tabela Vigenère (quadrado Vigenère, tabula recta) para o idioma russo.
Vamos começar a codificar a frase "Kasperovich ri". Mas para que a criptografia seja bem-sucedida, é necessária uma palavra-chave - seja "senha". Agora vamos iniciar a criptografia. Para isso, escrevemos a chave tantas vezes que o número de letras dela corresponde ao número de letras da frase criptografada, repetindo a chave ou cortando:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Frase: | K | A | С | P | E | R | O | B | & | W | С | M | E | E | T | С | I |
Chave | P | A | R | O | L | b | P | A | R | O | L | b | P | A | R | O | L |
Agora, usando a tabela Vigenère, como no plano de coordenadas, procuramos uma célula que é a interseção de pares de letras, e obtemos: K + P=b, A + A=B, C + P=C, etc.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Cifra: | b | B | B | Yu | С | N | Yu | G | Sch | F | E | Y | X | F | G | A | L |
Nós entendemos que "Kasperovich ri"="bvusnyugschzh eykhzhgal".
Quebrar a cifra de Vigenère é tão difícil porque a análise de frequência precisa saber o comprimento da palavra-chave para funcionar. Portanto, o truque é jogar aleatoriamente o comprimento da palavra-chave e tentar decifrar a mensagem secreta.
Deve ser mencionado também que além de uma chave completamente aleatória, uma tabela Vigenère completamente diferente pode ser usada. Neste caso, o quadrado de Vigenère consiste em um alfabeto russo escrito linha por linha com um deslocamento de um. O que nos remete à cifra ROT1. E assim como na cifra de César, o deslocamento pode ser qualquer coisa. Além disso, a ordem das letras não precisa ser alfabética. Neste caso, a própria tabela pode ser a chave, sem saber qual será impossível ler a mensagem, mesmo sabendo a chave.
Códigos
Os códigos reais consistem em correspondências para cadapalavras de um código separado. Para trabalhar com eles, são necessários os chamados livros de códigos. Na verdade, este é o mesmo dicionário, contendo apenas traduções de palavras em códigos. Um exemplo típico e simplificado de códigos é a tabela ASCII - uma cifra internacional de caracteres simples.
A principal vantagem dos códigos é que eles são muito difíceis de decifrar. A análise de frequência quase não funciona quando eles são hackeados. A fraqueza dos códigos é, na verdade, os próprios livros. Primeiro, sua preparação é um processo complexo e caro. Em segundo lugar, para os inimigos, eles se transformam em um objeto desejado e a interceptação de até mesmo parte do livro força você a alterar todos os códigos completamente.
No século 20, muitos estados usavam códigos para transferir dados secretos, alterando o livro de códigos após um certo período. E eles também caçaram ativamente livros de vizinhos e oponentes.
Enigma
Todo mundo sabe que a Enigma foi a principal máquina de cifragem dos nazistas durante a Segunda Guerra Mundial. A estrutura da Enigma inclui uma combinação de circuitos elétricos e mecânicos. O resultado da cifra depende da configuração inicial da Enigma. Ao mesmo tempo, o Enigma altera automaticamente sua configuração durante a operação, criptografando uma mensagem de várias maneiras em todo o seu comprimento.
Em contraste com as cifras mais simples, "Enigma" forneceu trilhões de combinações possíveis, o que tornou quase impossível quebrar informações criptografadas. Por sua vez, os nazistas tinham uma certa combinação preparada para cada dia, que elesusado em um determinado dia para enviar mensagens. Portanto, mesmo que o Enigma caísse nas mãos do inimigo, ele não fazia nada para descriptografar as mensagens sem inserir a configuração correta todos os dias.
Hack "Enigma" foi ativamente tentado durante toda a campanha militar de Hitler. Na Inglaterra, em 1936, foi construído um dos primeiros dispositivos de computação (máquina de Turing) para isso, que se tornou o protótipo dos computadores no futuro. Sua tarefa era simular a operação de várias dezenas de Enigmas simultaneamente e executar mensagens nazistas interceptadas através deles. Mas mesmo a máquina de Turing só ocasionalmente conseguia quebrar a mensagem.
Criptografia de chave pública
O mais popular dos algoritmos de criptografia, que é usado em toda parte em tecnologia e sistemas de computador. Sua essência reside, via de regra, na presença de duas chaves, uma das quais é transmitida publicamente e a segunda é secreta (privada). A chave pública é usada para criptografar a mensagem e a chave privada é usada para descriptografá-la.
A chave pública é na maioria das vezes um número muito grande que tem apenas dois divisores, sem contar um e o próprio número. Juntos, esses dois divisores formam uma chave secreta.
Vamos considerar um exemplo simples. Seja a chave pública 905. Seus divisores são os números 1, 5, 181 e 905. Então a chave secreta será, por exemplo, o número 5181. Você está dizendo muito fácil? E se no papelnúmero público será um número com 60 dígitos? Matematicamente difícil calcular os divisores de um número grande.
Para um exemplo mais vívido, imagine que você está retirando dinheiro de um caixa eletrônico. Ao ler o cartão, os dados pessoais são criptografados com uma determinada chave pública e, do lado do banco, as informações são descriptografadas com uma chave secreta. E esta chave pública pode ser alterada para cada operação. E não há maneiras de encontrar divisores de chave rapidamente ao interceptá-lo.
Durabilidade da fonte
A força criptográfica de um algoritmo de criptografia é a capacidade de resistir a hackers. Este parâmetro é o mais importante para qualquer criptografia. Obviamente, a cifra de substituição simples, que pode ser descriptografada por qualquer dispositivo eletrônico, é uma das mais instáveis.
Hoje, não há padrões uniformes pelos quais seria possível avaliar a força da cifra. Este é um processo trabalhoso e demorado. No entanto, existem várias comissões que produziram normas nesta área. Por exemplo, os requisitos mínimos para o Advanced Encryption Standard ou algoritmo de criptografia AES desenvolvido pelo NIST USA.
Para referência: a cifra Vernam é reconhecida como a cifra mais resistente à quebra. Ao mesmo tempo, sua vantagem é que, de acordo com seu algoritmo, é a cifra mais simples.