





































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Cifras monoalfabéticas. Cifra Playfair. Cifra de Hill. Cifras polialfabéticas. One-time pad. 2.3 TÉCNICAS DE TRANSPOSIÇÃO. 2.4 MÁQUINAS DE ROTOR.
Tipologia: Provas
1 / 45
Esta página não é visível na pré-visualização
Não perca as partes importantes!
APÓS ESTUDAR ESTE CAPÍTULO, VOCÊ SERÁ CAPAZ DE: Apresentar uma visão geral dos principais conceitos de criptografia simétrica. Explicar a diferença entre criptoanálise e ata- que por força bruta. Entender a operação de uma cifra de substi- tuição monoalfabética. Entender a operação de uma cifra polial- fabética. Apresentar uma visão geral da cifra de Hill. Descrever a operação de uma máquina de rotor.
“Estou bastante familiarizado com todas as formas de escritas secretas, e eu mesmo sou autor de um monó- grafo divertido sobre o assunto, no qual analiso cento e sessenta cifras separadas”, disse Holmes. — The Adventure of the Dancing Men , Sir arthur Conan doyle
A encriptação simétrica, também chamada de encriptação convencional ou encriptação de chave única, era o único tipo em uso antes do desenvolvimento da encriptação por chave pública na década de 1970. Esse continua sendo de longe o mais usado dos dois tipos de encriptação. A Parte 1 avalia diversas cifras simétricas. Neste capítulo, começaremos olhando um modelo geral para o processo de encriptação simétrica; isso nos per- mitirá entender o contexto dentro do qual os algoritmos são usados. Em seguida, examinaremos diversos algo- ritmos em uso antes da era do computador. Finalmente, estudaremos rapidamente uma técnica diferente, conhe- cida como esteganografia. Os capítulos 3 e 5 introduzem as duas cifras simétricas mais utilizadas: DES e AES.
PARTE 1: Cifras simétricas
TÓPICOS ABORDADOS
2.1 MODELO DE CIFRA SIMÉTRICA Criptografia Criptoanálise e ataque por força bruta 2.2 TÉCNICAS DE SUBSTITUIÇÃO Cifra de César Cifras monoalfabéticas Cifra Playfair Cifra de Hill Cifras polialfabéticas One-time pad 2.3 TÉCNICAS DE TRANSPOSIÇÃO 2.4 MÁQUINAS DE ROTOR 2.5 ESTEGANOGRAFIA 2.6 LEITURA RECOMENDADA 2.7 PRINCIPAIS TERMOS, PERGUNTAS PARA REVISÃO E PROBLEMAS
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 21
Antes de começar, definiremos alguns termos. Uma mensagem original é conhecida como texto claro (ou plaintext ), enquanto a mensagem codificada é chamada de texto cifrado (ou ciphertext ). O processo de con- verter um texto claro em um texto cifrado é conhecido como cifração ou encriptação ; restaurar o texto claro a partir do texto cifrado é decifração ou decriptação. Os muitos esquemas utilizados para a encriptação consti- tuem a área de estudo conhecida como criptografia. Esse esquema é designado sistema criptográfico ou cifra. As técnicas empregadas para decifrar uma mensagem sem qualquer conhecimento dos detalhes de encriptação estão na área da criptoanálise , que é o que os leigos chamam de “quebrar o código”. As áreas da criptografia e criptoanálise, juntas, são chamadas de criptologia.
2.1 moDelo De Cifra siméTriCa
Um esquema de encriptação simétrica possui cinco itens (Figura 2.1):
Texto claro: essa é a mensagem ou dados originais, inteligíveis, que servem como entrada do algoritmo de encriptação. Algoritmo de encriptação: realiza diversas substituições e transformações no texto claro. Chave secreta: também é uma entrada para o algoritmo de encriptação. A chave é um valor indepen- dente do texto claro e do algoritmo. O algoritmo produzirá uma saída diferente, dependendo da chave usada no momento. As substituições e transformações exatas realizadas pelo algoritmo dependem da chave. Texto cifrado: essa é a mensagem embaralhada, produzida como saída do algoritmo de encriptação. Ela depende do texto claro e da chave secreta. Para determinada mensagem, duas chaves diferentes produ- zirão dois textos cifrados distintos. O texto cifrado é um conjunto de dados aparentemente aleatório e, nesse formato, ininteligível. Algoritmo de decriptação: esse é basicamente o algoritmo de encriptação executado de modo inverso. Ele apanha o texto cifrado e a chave secreta e produz o texto claro original.
Existem dois requisitos para o uso seguro da encriptação simétrica:
Figura 2.1 Modelo simplificado da encriptação simétrica.
���������� �����������
� ����� � �� � � � ����� � �� � �
�
� �
������������� �����������
�������� �����������
��������������������������� ��������������������������������
��������������������������� ��������������������������������
������������������������ ������������������
������������������������ ��������������������� ���������������
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 23
Criptografia
Os sistemas criptográficos são caracterizados ao longo de três dimensões independentes:
Criptoanálise e ataque por força bruta
Em geral, o objetivo de atacar um sistema de encriptação é recuperar a chave em uso, em vez de simples- mente recuperar o texto claro a partir de um único texto cifrado. Existem duas técnicas gerais para o ataque a um esquema de encriptação convencional:
Criptoanálise: os ataques criptoanalíticos utilizam-se da natureza do algoritmo, e talvez de mais algum conhecimento das características comuns ao texto claro, ou ainda de algumas amostras de pares de texto claro-texto cifrado. Esse tipo de ataque explora as características do algoritmo para tentar deduzir um texto claro específico ou a chave utilizada. Ataque por força bruta: o atacante testa todas as chaves possíveis em um trecho do texto cifrado, até obter uma tradução inteligível para o texto claro. Na média, metade de todas as chaves possíveis preci- sam ser experimentadas para então se obter sucesso.
Se algum dos tipos de ataque tiver sucesso na dedução da chave, o efeito é catastrófico: todas as mensagens futuras e passadas, encriptadas com essa chave, ficam comprometidas. Primeiro, consideramos a criptoanálise, e depois os ataques por força bruta. O Quadro 2.1 resume os diversos tipos de ataques de criptoanálise , baseados na quantidade de informação conhecida pelo criptoanalista. O cenário mais difícil surge quando a única informação disponível é apenas o texto cifrado. Em alguns casos, nem sequer o algoritmo de encriptação é conhecido, mas em geral podemos con- siderar que o oponente sabe qual é o algoritmo usado para a encriptação. Um ataque sob essas circunstâncias é a técnica de força bruta de testar todas as chaves possíveis. Se o espaço de chaves for muito grande, isso se torna impraticável. Assim, o oponente precisa contar com uma análise baseada apenas no texto cifrado, geralmente aplicando diversos testes estatísticos a ele. Para usar essa técnica, o oponente necessita ter alguma ideia geral do tipo de texto claro que está encoberto, como um texto em inglês ou francês, um arquivo EXE, um código fonte em Java, um arquivo de contabilidade, e assim por diante. O ataque apenas com texto cifrado é o mais fácil de ser defendido, pois o oponente tem a quantidade mínima de informação para trabalhar. Em muitos casos, porém, o analista tem mais informações. Ele pode ser capaz de capturar uma ou mais mensagens de texto claro, além de suas encriptações. Ou então pode saber que certos padrões de texto claro aparecerão em uma mensagem. Por exemplo, um arquivo codificado no formato Postscript sempre começa com o mesmo padrão, ou pode ter um cabeçalho ou banner padronizado para uma mensagem de transferência eletrônica financeira, e assim por diante. Todos esses exemplos são de texto claro conhecido. Ciente disso, o analista pode ser capaz de deduzir a chave com base no modo como o texto claro conhecido é transformado. Bastante relacionado ao ataque de texto claro conhecido é o que poderia ser chamado de ataque de palavra provável. Se o oponente estiver trabalhando com a encriptação de alguma mensagem de texto geral, ele talvez tenha pouco conhecimento do que está nela. Porém, se o oponente estiver atrás de alguma informação muito
24 CrIptografIa e Segurança de redeS
Quadro 2.1 tipos de ataque sobre mensagens encriptadas.
Tipo De aTaque ConHeCiDo ao CripToanalisTa
apenas texto cifrado
algoritmo de encriptação texto cifrado
texto claro conhecido
algoritmo de encriptação texto cifrado um ou mais pares de texto claro-texto cifrado produzidos pela chave secreta
texto claro escolhido
algoritmo de encriptação texto cifrado Mensagem de texto claro escolhida pelo criptoanalista, com seu respectivo texto cifrado gerado com a chave secreta
texto cifrado escolhido
algoritmo de encriptação texto cifrado texto cifrado escolhido pelo criptoanalista, com seu respectivo texto claro decriptado produzido pela chave secreta
texto escolhido
algoritmo de encriptação texto cifrado Mensagem de texto claro escolhida pelo criptoanalista, com seu respectivo texto cifrado produzido pela chave secreta texto cifrado escolhido pelo criptoanalista, com seu respectivo texto claro decriptado produzido pela chave secreta
específica, então partes da mensagem podem ser conhecidas. Por exemplo, se um arquivo de contabilidade esti- ver sendo transmitido, o oponente pode conhecer o posicionamento de certas palavras-chave no cabeçalho do arquivo. Em outro caso, o código fonte para um programa desenvolvido pela Empresa X poderia incluir uma nota de direito autoral em alguma posição padronizada. Se o analista de alguma forma for capaz de fazer a origem inserir no sistema uma mensagem escolhida por ele, então o ataque de texto claro escolhido é possível. Um exemplo dessa estratégia é a criptoanálise diferen- cial, explicada no Capítulo 3. Em geral, se o analista for capaz de escolher as mensagens a encriptar, ele poderá escolher de forma deliberada padrões que talvez revelarão a estrutura da chave. O Quadro 2.1 lista dois outros tipos de ataque: texto cifrado escolhido e texto escolhido. Estes são menos empregados como técnicas criptoanalíticas, mas são possíveis meios de ataque. Somente algoritmos relativamente fracos não conseguem resistir a um ataque de texto cifrado. Em geral, um algoritmo de encriptação é projetado para aguentar a um ataque de texto claro conhecido. Duas outras definições merecem ser comentadas. Um esquema de encriptação é incondicionalmente seguro se o texto cifrado gerado por ele não tiver informação suficiente para determinar exclusivamente o texto claro correspondente, não importa quanto texto cifrado esteja à disposição. Ou seja, é indiferente quanto tempo um oponente tem, ele não tem como decriptar o texto cifrado, simplesmente porque a informação exigida não está lá. Com a exceção de um esquema conhecido como one-time pad (descrito mais adiante neste capítulo), não existe algoritmo de encriptação que seja incondicionalmente seguro. Portanto, tudo o que os usuários de um algoritmo de encriptação podem se esforçar para obter é um algoritmo que atenda a um ou a ambos os critérios a seguir:
O custo para quebrar a cifra ultrapassa o valor da informação encriptada. O tempo exigido para quebrar a cifra supera o tempo de vida útil da informação.
Um esquema de encriptação é considerado computacionalmente seguro se um desses dois critérios for atendido. O problema é que é muito difícil estimar a quantidade de esforço exigido para criptoanalisar textos cifrados com sucesso. Todas as formas de criptoanálise para esquemas de encriptação simétricos são projetadas para explorar o fato de que rastros da estrutura ou do padrão do texto claro podem sobreviver à encriptação e ser discerníveis no texto cifrado. Isso se tornará mais claro à medida que examinarmos diversos esquemas de encriptação
26 CrIptografIa e Segurança de redeS
Então, o algoritmo pode ser expresso da forma a seguir. Para cada letra em texto claro p , substitua-a pela letra do texto cifrado C :^2
C = E(3, p ) = ( p + 3) mod 26
Um deslocamento pode ser de qualquer magnitude, de modo que o algoritmo de César geral é
C = E( k , p ) = ( p + k ) mod 26 (2.1)
onde k assume um valor no intervalo de 1 a 25. O algoritmo de decriptação é simplesmente
p = D( k , C ) = ( C – k ) mod 26 (2.2)
Se for conhecido que determinado texto cifrado é uma cifra de César, então uma criptoanálise pela força bruta será facilmente realizada. Basta experimentar todas as 25 chaves possíveis. A Figura 2.3 mostra os resul- tados da aplicação dessa estratégia ao texto cifrado do exemplo. Nesse caso, o texto claro aparece na terceira fileira. Três características importantes desse problema nos permitiram usar a criptoanálise pela força bruta:
(^2) Definimos a mod n como sendo o resto quando a é dividido por n. Por exemplo, 11 mod 7 = 4. Veja, no Capítulo 4, uma discussão mais detalhada sobre aritmética modular.
Figura 2.3 Criptoanálise por força bruta da cifra de César.
���������������������������� ����� � ���������������������������� � ���������������������������� � ���������������������������� � ���������������������������� � ���������������������������� � ���������������������������� � ���������������������������� � ���������������������������� � ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ���������������������������� �� ����������������������������
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 27
Na maioria das situações de rede, podemos considerar que os algoritmos são conhecidos. O que geralmente torna a criptoanálise pela força bruta impraticável é o uso de um algoritmo que emprega um grande número de chaves. Por exemplo, o algoritmo Triple DES , examinado no Capítulo 6, utiliza uma chave de 168 bits, gerando um espaço de chave de 2^168 , ou mais de 3,7 × 10^50 chaves possíveis. A terceira característica também é significativa. Se a linguagem do texto claro for desconhecida, então a saída de texto claro pode não ser reconhecível. Além do mais, a entrada pode ser abreviada ou compactada de alguma maneira, novamente dificultando o reconhecimento. Por exemplo, a Figura 2.4 mostra uma parte de um arquivo de texto compactada usando um algoritmo chamado ZIP. Se esse arquivo for então encriptado com uma cifra de substituição simples (expandida para incluir mais do que apenas 26 caracteres alfabéticos), então o texto claro não poderá ser reconhecido quando for revelado na criptoanálise por força bruta.
Figura 2.4 exemplo de texto compactado.
Cifras monoalfabéticas
Com apenas 25 chaves possíveis, a cifra de César está longe de ser segura. Um aumento dramático no es- paço de chave pode ser conseguido permitindo-se uma substituição arbitrária. Antes de prosseguir, definimos o termo permutação. Uma permutação é um conjunto finito de elementos S em uma sequência ordenada de todos os elementos de S , com cada um aparecendo exatamente uma vez. Por exemplo, se S = {a, b, c}, existem seis permutações de S :
abc, acb, bac, bca, cab, cba
Em geral, existem n! permutações de um conjunto de n elementos, pois o primeiro deles pode ser escolhido de n maneiras, o segundo, de n – 1 maneiras, o terceiro, de n – 2 maneiras, e assim por diante. Lembre-se da atribuição para a cifra de César:
claro: a b c d e f g h i j k l m n o p q r s t u v w x y z cifra: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Se, em vez disso, a linha “cifra” puder ser qualquer permutação dos 26 caracteres alfabéticos, então haverá 26! ou mais do que 4 × 10 26 chaves possíveis. Isso significa 10 ordens de grandeza a mais do que o espaço de chave para DES, e evitaria qualquer técnica de força bruta para criptoanálise. Essa técnica é conhecida como cifra por substituição monoalfabética , pois um único alfabeto de cifra (mapeando do alfabeto claro para um cifrado) é utilizado por mensagem. Porém, existe outra linha de ataque. Se o criptoanalista souber a natureza do texto claro (por exemplo, texto em inglês não compactado), então o analista poderá explorar as regularidades da linguagem. Para ver como essa criptoanálise poderia prosseguir, damos um exemplo parcial aqui, que é adaptado de outro em [SINK09]. O texto cifrado a ser resolvido é
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
Como um passo inicial, a frequência relativa das letras poderá ser determinada e comparada com uma distribuição de frequência padrão para o inglês, como vemos na Figura 2.5 (com base em [LEWA00]). Se a mensagem fosse longa o suficiente, essa técnica talvez tivesse sucesso, mas, como essa é relativamente curta,
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 29
Em seguida, observe a sequência ZWSZ na primeira linha. Não sabemos que essas quatro letras compõem uma palavra completa, mas, se sim, ela tem a forma th_t. Nesse caso, S é igual a a. Até aqui, então, temos
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ t a e e te a that e e a a VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX e t ta t ha e ee a e th t a EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ e e e tat e the t
Somente quatro letras foram identificadas, mas já temos um bom pedaço da mensagem. A análise continuada das frequências, mais tentativa e erro, deverão facilmente gerar uma solução a partir desse ponto. O texto claro completo, com espaços incluídos entre as palavras, é o seguinte:*
it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the viet cong in moscow
As cifras monoalfabéticas são fáceis de se quebrar porque refletem os dados de frequência do alfabeto original. Uma contramedida é oferecer vários substitutos, conhecidos como homófonos, para uma única letra. Por exemplo, a letra e poderia ser atribuída a diversos símbolos de cifra diferentes, como 16, 74, 35 e 21, com cada homófono usado em rodízio, ou aleatoriamente. Se o número de símbolos atribuídos a cada letra for pro- porcional à frequência relativa dela, então a informação de frequência de única letra é completamente extinta. O grande matemático Carl Friedrich Gauss acreditava ter criado uma cifra indecifrável usando homófonos. Porém, até mesmo com homófonos, cada elemento do texto claro afeta somente um elemento do texto cifrado, e padrões de múltiplas letras (por exemplo, frequências de digrama) ainda sobrevivem no texto cifrado, tor- nando a criptoanálise relativamente simples. Dois métodos principais são usados nas cifras de substituição para reduzir a extensão da estrutura sobre- vivente do texto claro no cifrado. Uma técnica é encriptar várias letras do texto claro, e a outra é usar vários alfabetos de cifra. Examinamos rapidamente cada uma delas.
Cifra playfair
A cifra de encriptação de múltiplas letras mais conhecida é a Playfair, que trata os digramas no texto claro como unidades isoladas e as traduz para digramas de texto cifrado.^3 O algoritmo Playfair é baseado no uso de uma matriz 5 × 5 de letras construídas usando uma palavra-chave. Aqui está um exemplo, solucionado por Lord Peter Wimsey em Have His Carcase , de Dorothy Sayers:^4
M O N A R C H Y B D E F G I/J K L P Q S T U V W X Z
Nesse caso, a palavra-chave é monarchy. A matriz é construída com o preenchimento das letras da palavra- chave (menos duplicatas) da esquerda para a direita e de cima para baixo, e depois do restante da matriz com as outras letras na ordem alfabética. As letras I e J contam como uma só. O texto claro é encriptado com duas letras de cada vez, de acordo com as seguintes regras:
(^3) Essa cifra, na realidade, foi inventada pelo cientista britânico Sir Charles Wheatstone em 1854, mas recebeu o nome de seu amigo Barão Playfair de St. Andrews, que a defendeu na agência estrangeira da Grã Bretanha. (^4) O livro fornece um relato fascinante de um ataque de palavra provável.
30 CrIptografIa e Segurança de redeS
Figura 2.6 frequência relativa de ocorrência das letras.
� � � � � � � � � � � �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
�����������
��������
��������
������������������������
������������������������������������������������������������
�������������������������������
���
���
���
���
���
���
���
���
���
���
32 CrIptografIa e Segurança de redeS
A = a
17 3 b
A -^1 mod 26 = 3 a 3 -^8
b = 3 a^3 9 5
b = a 9 54 27 15
b = a^9 1 15
b
m letras de texto cifrado. A substituição é determinada por m equações lineares, em que cada caractere recebe um valor numérico (a = 0, b = 1, ..., z = 25). Para m = 3, o sistema pode ser descrito da seguinte forma:
c (^) 1 = ( k 11 p 1 + k 21 p 2 + k 31 p 3 ) mod 26 c (^) 2 = ( k 12 p 1 + k 22 p (^) 2 + k 32 p 3 ) mod 26 c (^) 3 = ( k 13 p 1 + k 23 p 2 + k 33 p 3 ) mod 26
Isso pode ser expresso em termos de vetores de linhas e matrizes:^6
( c (^) 1 c (^) 2 c (^) 3 ) = ( p 1 p 2 p 3 )£
k 11 k 12 k 13 k 21 k 22 k 23 k 31 k 32 k 33
≥ mod 26
ou C = PK mod 26
onde C e P são vetores de coluna de tamanho 3, representando o texto claro e o texto cifrado, e K é uma matriz 3 × 3, indicando a chave de encriptação. As operações são realizadas com mod 26. Por exemplo, considere o texto claro “ paymoremoney ” e use a chave de encriptação
As três primeiras letras do texto claro são representadas pelo vetor (15 0 24). Então, (15 0 24) K = ( 303 531) mod 26 = (17 17 11) = RRL. Continuando dessa forma, o texto cifrado para o texto claro inteiro é RRLMWBKASPDH. A decriptação exige o uso do inverso da matriz K. Podemos calcular det K = 23 e, portanto, (det K )–1^ mod 26 = 17. Nesse caso, o inverso é^7
Isso é demonstrado da seguinte maneira:
≥ mod 26 = £
É fácil ver que, se a matriz K –1^ for aplicada ao texto cifrado, então o texto claro é recuperado. Em termos gerais, o sistema de Hill pode ser expresso da seguinte forma:
(^6) Alguns livros de criptografia expressam o texto claro e o texto cifrado como vetores de colunas, de modo que o vetor de colunas é colocado após a matriz, em vez de o vetor de linhas ser posto antes da matriz. Sage usa vetores de linhas, de modo que adotamos essa convenção. (^7) Os cálculos neste exemplo podem ser vistos com detalhes no Apêndice E (em <sv.pearson.com.br>, em inglês).
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 33
C = E( K , P ) = PK mod 26 P = D( K , C ) = CK –1^ mod 26 = PKK –1^ = P
Assim como na cifra Playfair, o ponto forte da cifra de Hill é que ela oculta completamente as frequências de única letra. De fato, com Hill, o uso de uma matriz maior esconde mais informações de frequência. Assim, uma cifra de Hill de 3 × 3 encobre não apenas informações de frequência de única letra, mas também de duas letras. Embora a cifra de Hill seja forte contra um ataque apenas de texto cifrado, ela é facilmente quebrada com um ataque de texto claro conhecido. Para uma cifra de Hill de m × m , suponha que tenhamos m pares de texto claro/texto cifrado, cada um com tamanho m. Rotulamos os pares com P j = ( p 1 jp 1 j ... p (^) mj ) e C j = ( c 1 j c 1 j ... c (^) mj ), de modo que C (^) j = P (^) j K para 1 ≤ j ≤ m e para alguma matriz de chave desconhecida K. Então, definimos duas matrizes m × m , X = ( p (^) ij ) e Y = ( c (^) ij ). Depois, podemos formar a equação matricial Y = XK. Se X tiver um inverso, podemos determinar K = X –1^ Y. Se X não puder ser invertida, uma nova versão de X terá chances de ser formada com pares adicionais de texto claro/texto cifrado, até que se obtenha uma matriz X a ser invertida. Considere este exemplo. Suponha que o texto claro “ hillcipher ” seja encriptado usando uma cifra de Hill 2 × 2 para gerar o texto cifrado HCRZSSXNSP. Assim, sabemos que (7 8) K mod 26 = (7 2); (11 11) K mod 26 = (17 25); e assim por diante. Usando os dois primeiros pares de texto claro/texto cifrado, temos
a 7 2 17 25
b = a 7 8 11 11
b K mod 26
O inverso de X pode ser calculado:
a 7 8 11 11
b
b
de modo que
K = a^25 1 23
ba 7 2 17 25
b = a^549 398 577
b mod 26 = a^3 8 5
b
Esse resultado é verificado testando-se o par restante de texto claro-texto cifrado.
Cifras polialfabéticas
Outra forma de melhorar a técnica monoalfabética simples é usar diferentes substituições monoalfabéticas enquanto se prossegue pela mensagem de texto claro. O nome geral para essa técnica é cifra por substituição polialfabética. Essas técnicas têm as seguintes características em comum:
quema, o conjunto de regras de substituição monoalfabéticas consiste nas 26 cifras de César, com deslocamentos de 0 a 25. Cada cifra é indicada por uma letra da chave, que é a letra do texto cifrado que substitui a letra do texto claro a. Assim, uma cifra de César com um deslocamento de 3 é indicada pelo valor de chave 3.^8 Podemos expressar a cifra de Vigenère da seguinte maneira. Considere uma sequência de letras em texto claro P = p (^) 0 , p (^) 1 , p (^) 2 , ..., p (^) n – 1 e uma chave consistindo na sequência de letras K = k (^) 0 , k (^) 1 , k (^) 2 , ..., k (^) m – 1 , onde nor- malmente m < n. A sequência de letras em texto cifrado C = C (^) 0 , C (^) 1 , C (^) 2 , ..., C (^) n – 1 é calculada da seguinte forma:
C = C 0 , C 1 , C 2 , ..., C (^) n – 1 = E( K , P ) = E[( k 0 , k (^) 1 , k (^) 2 , …, k (^) m – 1), ( p 0 , p 1 , p (^) 2 , ..., p (^) n – 1 )] = ( p 0 + k 0 ) mod 26, ( p 1 + k 1 ) mod 26, …, ( pm – 1 + km – 1) mod 26, ( pm + k 0 ) mod 26, ( pm + 1 + k 1 ) mod 26, …, ( p 2 m – 1 + km – 1 ) mod 26, …
(^8) Para ajudar na compreensão do esquema e auxiliar em seu uso, é possível construir uma matriz conhecida como tabela de Vigenère.
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 35
Um analista examinando apenas o texto cifrado detectaria as sequências repetidas VTW a uma distância de 9 e consideraria que a palavra-chave tem três ou nove letras de extensão. O surgimento de VTW duas vezes poderia ser por acaso, e não refletir letras de texto claro idênticas codificadas com letras-chave idênticas. Porém, se a mensagem for longa o suficiente, haverá diversas dessas sequências de texto cifrado repetidas. Procurando fatores comuns nos deslocamentos das diversas sequências, o analista deverá ser capaz de fazer uma boa esco- lha do tamanho da palavra-chave. A solução da cifra agora depende de uma percepção importante. Se o tamanho da palavra-chave é m , então a cifra, por conseguinte, consiste em m cifras de substituição monoalfabéticas. Por exemplo, com a palavra- -chave DECEPTIVE, as letras nas posições 1, 10, 19, e assim por diante, são todas encriptadas com a mesma cifra monoalfabética. Assim, podemos usar as características de frequência conhecidas da linguagem do texto claro para atacar cada uma das cifras monoalfabéticas separadamente. A natureza periódica da palavra-chave pode ser eliminada usando-se uma palavra-chave não repetida que seja tão grande quanto a própria mensagem. Vigenère propôs o que é conhecido como um sistema de auto- chave , em que uma palavra-chave é concatenada ao próprio texto claro para oferecer uma chave corrente. Para o nosso exemplo,
chave: deceptivewearediscoveredsav texto claro: wearediscoveredsaveyourself texto cifrado: ZICVTWQNGKZEIIGASXSTSLVVWLA
Até mesmo esse esquema é vulnerável à criptoanálise. Como a chave e o texto claro compartilham a mesma distribuição de frequência das letras, uma técnica estatística poderá ser aplicada. Por exemplo, pode-se esperar que e codificado por e , pela Figura 2.5, ocorra com uma frequência de (0,127) 2 ≈ 0,016, enquanto t codificado por t ocorreria apenas com a metade dessa frequência. Essas regularidades podem ser exploradas para se con- seguir sucesso na criptoanálise.^9
tão longa quanto o texto claro e que não possua relacionamento estatístico com ele. Esse sistema foi introduzido por um engenheiro da AT&T, chamado Gilbert Vernam, em 1918. Seu sistema funciona sobre dados binários (bits), em vez de letras. O sistema pode ser expresso de forma sucinta da seguinte forma (Figura 2.7):
c (^) i = pi! k (^) i
onde pi = dígito binário na posição i do texto claro ki = dígito binário na posição i da chave ci = dígito binário na posição i do texto cifrado ! = operação ou – exclusivo (XOR) Compare isso com a Equação 2.3, para a cifra de Vigenère.
(^9) Embora as técnicas para quebrar uma cifra de Vigenère não sejam complexas, uma edição de 1917 da Scientific American caracte- rizava esse sistema como “impossível de tradução”. Esse é um ponto que merece ser lembrado quando afirmações semelhantes são feitas para algoritmos modernos.
Figura 2.7 Cifra de Vernam.
���������������� ���������
������������� ���������������� �� �
������������� ���������������� � (^) � �
����������� �� � (^) �� �
����������� �� ��� �
������������� �� � (^) �� �
���������� ���������������
36 CrIptografIa e Segurança de redeS
Assim, o texto cifrado é gerado realizando-se o XOR (operação lógica ou-exclusivo) bit a bit entre texto claro e a chave. Por conta das propriedades do XOR, a decriptação simplesmente envolve a mesma operação bit a bit:
p (^) i = ci! ki
que é comparada à Equação 2.4. A essência dessa técnica é a forma de construção da chave. Vernam propôs o uso de uma palavra-chave muito longa, porém que eventualmente era repetida. Embora esse esquema com uma chave longa apresente dificuldades de criptoanálise formidáveis, ele pode ser quebrado com um número suficiente de texto cifrado, com o uso de sequências de texto claro conhecidas ou prováveis, ou ambos.
One-time pad
Um oficial do Exército, Joseph Mauborgne, propôs uma melhoria na cifra de Vernam, que gera o máximo em segurança. Mauborgne sugeriu o uso de uma chave aleatória que fosse tão grande quanto a mensagem, de modo que a chave não precisasse ser repetida. Além disso, a chave deve ser empregada para encriptar e de- criptar uma única mensagem, e depois descartada. Cada nova mensagem exige uma nova chave com o mesmo tamanho. Esse esquema, conhecido como one-time pad , é inquebrável. Ele produz saída aleatória que não possui qualquer relacionamento estatístico com o texto claro. Como o texto cifrado não contém qualquer informação sobre o texto claro, simplesmente não existe um meio de quebrar o código. Um exemplo deverá ilustrar nosso argumento. Suponha que estejamos usando um esquema de Vigenère com 27 caracteres, no qual o vigésimo sétimo é o de espaço, mas com uma chave de uso único que é tão grande quanto a mensagem. Considere o texto cifrado
ANKYODKYUREPFJBYOJDSPLREYIUNOFDOIUERFPLUYTS Agora mostramos duas decriptações diferentes usando duas chaves distintas: texto cifrado: ANKYODKYUREPFJBYOJDSPLREYIUNOFDOIUERFPLUYTS chave: pxlmvmsydofuyrvzwc tnlebnecvgdupahfzzlmnyih texto claro:*^ mr mustard with the candlestick in the hall
texto cifrado: ANKYODKYUREPFJBYOJDSPLREYIUNOFDOIUERFPLUYTS chave: mfugpmiydgaxgoufhklllmhsqdqogtewbqfgyovuhwt texto claro:**^ miss scarlet with the knife in the library Suponha que um criptoanalista conseguisse encontrar essas duas chaves. Dois textos claros plausíveis são produzidos. Como ele decide qual é a decriptação correta (ou seja, qual é a chave correta)? Se a chave real fosse produzida de uma forma verdadeiramente aleatória, então o criptoanalista não pode saber que uma dessas duas é mais provável que a outra. Assim, não existe um meio de decidir qual chave é a correta e, por consequência, qual texto claro é o correto. De fato, dado qualquer texto claro de mesmo tamanho do texto cifrado, existe uma chave que o produz. Portanto, se você fizesse uma busca exaustiva em todas as chaves possíveis, acabaria com muitos textos claros legíveis, sem saber qual foi o intencionado. O código é inquebrável. A segurança do one-time pad é inteiramente decorrente da aleatoriedade da chave. Se o fluxo de caracteres que constitui a chave for verdadeiramente aleatório, então o de caracteres que constitui o texto cifrado também o será. Assim, não existem padrões ou regularidades que um criptoanalista possa usar para atacar o texto cifrado. Em teoria, não precisamos mais procurar uma cifra. O one-time pad oferece segurança completa, mas, na prática, tem dois empecilhos fundamentais:
38 CrIptografIa e Segurança de redeS
Depois da primeira transposição, temos
03 10 17 24 04 11 18 25 02 09 16 23 01 08 15 22 05 12 19 26 06 13 20 27 07 14 21 28
que tem uma estrutura um tanto regular. Mas, depois da segunda transposição, temos
17 09 05 27 24 16 12 07 10 02 22 20 03 25 15 13 04 23 19 14 11 01 26 21 18 08 06 28
Essa é uma permutação muito menos estruturada e muito mais difícil de se criptoanalisar.
2.4 máquinas De roTor
O exemplo que acabamos de dar sugere que várias etapas de encriptação podem produzir um algoritmo que é significativamente mais difícil para criptoanalisar. Isso vale tanto para cifras de substituição quanto para de transposição. Antes da introdução do DES, a aplicação mais importante do princípio de múltiplas etapas de encriptação era uma classe de sistemas conhecida como máquinas de rotor.^10 O princípio básico da máquina de rotor é ilustrado na Figura 2.8. A máquina consiste em um conjunto de cilindros rotativos independentes, através dos quais pulsos elétricos podem fluir. Cada cilindro tem 26 pinos de entrada e 26 pinos de saída, com fiação interna que conecta cada pino de entrada a um único pino de saída. Para simplificar, mostramos somente três das conexões internas em cada cilindro.
(^10) Máquinas baseadas no princípio de rotor foram usadas pela Alemanha (Enigma) e pelo Japão (Purple) na Segunda Guerra Mundial. A quebra desses dois códigos pelos Aliados foi um fator significativo para o resultado da guerra.
Figura 2.8 Máquina de três rotores com fiação representada por contatos numerados.
�� �� �� � � � � � � � � �
�� �� �� �� �� �� �� �� �� �� �� �� �� ��
�� � �� � �� �� �� �� �� � �� � �� � �� � �� � �� �� �� � �� � �� ��
� � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
�� � � � �� � �� �� �� � �� � �� �� �� �� �� �� �� � �� � �� � �� ��
� � � � � � � � �
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
� �� �� �� �� �� �� � �� �� � �� � �� � �� �� �� �� � �� �� � � � ��
� � � � � � � � � � � � � � � � � � � � � � � � � �
�������������������� (^) ��������������������
������������ ����������� ����������� ������������ ����������� ����������� ������������������������ ��������������������������������������������
� � � � � � � � � � � � � � � � � � � � � � � � � � �� �� �� �� � � � � � � � � �
�� �� �� �� �� �� �� �� �� �� �� �� ��
�� �� � �� � �� �� �� �� �� � �� � �� � �� � �� � �� �� �� � �� � ��
�� � � � � � � � � �
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
�� � � � �� � �� �� �� � �� � �� �� �� �� �� �� �� � �� � �� � �� ��
� � � � � � � � �
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
� �� �� �� �� �� �� � �� �� � �� � �� � �� �� �� �� � �� �� � � � ��
� � � � � � � � � � � � � � � � � � � � � � � � � �
Capítulo 2 / téCnICaS CláSSICaS de enCrIptação 39
Se associarmos cada pino de entrada e saída a uma letra do alfabeto, então um único cilindro define uma substituição monoalfabética. Por exemplo, na Figura 2.8, se um operador pressionar uma tecla para a letra A, um sinal elétrico é aplicado ao primeiro pino do primeiro cilindro e flui pela conexão interna para o vigésimo quinto pino de saída. Considere uma máquina com um único cilindro. Depois que cada tecla de entrada é pressionada, o cilindro gira uma posição, de modo que as conexões internas são deslocadas de acordo. Assim, é definida uma cifra de substituição monoalfabética diferente. Depois de 26 letras de texto claro, o cilindro estaria de volta à posição inicial. Assim, temos um algoritmo de substituição polialfabética com um período de 26. Um sistema de único cilindro é trivial e não apresenta uma tarefa criptoanalítica formidável. O poder da máquina de rotor está no uso de múltiplos cilindros, em que os pinos de saída de um cilindro são conectados aos de entrada do seguinte. A Figura 2.8 mostra um sistema de três cilindros. A metade esquerda da figura mostra uma posição em que a entrada do operador para o primeiro pino (letra a em texto claro) é direcionada pelos três cilindros para aparecer na saída do segundo pino (letra B em texto cifrado). Com múltiplos cilindros, aquele mais próximo da entrada do operador gira uma posição de pino a cada toque de tecla. A metade direita da Figura 2.8 mostra a configuração do sistema depois de um único toque de tecla. Para cada rotação completa do cilindro interno, o do meio gira uma posição de pino. Finalmente, para cada rotação completa do cilindro do meio, o externo gira uma posição de pino. Esse é o mesmo tipo de opera- ção vista com os antigos marcadores de quilometragem (odômetros) de automóvel. O resultado é que existem 26 × 26 × 26 = 17.576 alfabetos de substituição diferentes usados antes que o sistema repita. O acréscimo de quarto e quinto rotores resulta em períodos de 456.976 e 11.881.376 letras, respectivamente. Assim, determinada configuração de uma máquina de 5 rotores é equivalente a uma cifra de Vigenère com um tamanho de chave de 11.881.376. Esse esquema apresenta um desafio criptoanalítico formidável. Por exemplo, se o criptoanalista tentar usar uma técnica de análise de frequência de letra, ele enfrentará o equivalente a mais de 11 milhões de cifras mono- alfabéticas. Talvez fosse preciso cerca de 50 letras em cada cifra monoalfabética para uma solução, o que significa que o analista necessita estar em posse de um texto cifrado com um tamanho de mais de meio bilhão de letras. O significado da máquina de rotor hoje é que ela aponta o caminho para a cifra mais utilizada de todos os tempos: Data Encryption Standard (DES), que será explicada no Capítulo 3.
2.5 esTeganografia
Concluiremos com uma discussão sobre uma técnica que, estritamente falando, não é encriptação — a saber, a esteganografia. Uma mensagem em texto claro pode estar oculta de duas maneiras. Os métodos de esteganografia escon- dem a existência da mensagem, enquanto os métodos de criptografia a tornam ininteligível a estranhos por meio de várias transformações do texto.^11 Uma forma simples de esteganografia, mas demorada de se construir, é aquela em que um arranjo de pala- vras e letras dentro de um texto aparentemente inofensivo soletra a mensagem real. Por exemplo, a sequência de primeiras letras de cada palavra da mensagem geral soletra a mensagem escondida. Diversas outras técnicas têm sido usadas historicamente, e alguns exemplos são [MYER91]:
Marcação de caractere: letras selecionadas do texto impresso ou datilografado são escritas com lápis por cima. As marcas normalmente não são visíveis, a menos que o papel seja mantido contra uma fonte de luz clara. Tinta invisível: diversas substâncias podem ser usadas para a escrita sem deixar rastros visíveis, a menos que alguma química seja aplicada ao papel. Perfurações: pequenos furos em letras selecionadas normalmente não são visíveis, a menos que o papel tenha uma fonte de luz no fundo. Fita corretiva de máquina de escrever: usada entre as linhas digitadas com uma fita preta, os resultados de digitar com a fita corretiva são visíveis apenas sob uma luz forte.
(^11) Esteganografia era uma palavra obsoleta que foi revivida por David Kahn e recebeu o significado que tem hoje [KAHN96].