CRIPTOGRAFIA
Waldizar Borges de Araújo França1
RESUMO
A Criptografia é a ciência que oculta o significado de uma mensagem e tem como ferramenta os recursos
matemáticos para cifrar e decifrar mensagens. O ato de cifrar consiste em transformar um texto normal em
texto secreto, e o ato de decodificar é a operação inversa, consiste em transformar um texto cifrado em texto
normal. Veremos os conceitos históricos da criptografia, suas definições e aplicações matemáticas.
Palavra-chave: criptografia; matemática; cifra.
1.
INTRODUÇÃO
Este artigo mostra as diferentes formas em que a matemática é aplicada na criptografia para
o desenvolvimento de códigos, cifras e técnicas para mascarar uma mensagem de modo que
só pessoa autorizada possa ter acesso ao seu conteúdo.
Desde os primórdios que o homem tem sentido a necessidade de guardar segredos. Sejam
segredos familiares, segredos sentimentais, segredos pessoais, segredos religiosos, ou
segredos militares e governamentais. Tão forte quanto a necessidade nata da espécie
humana de guardar segredo sobre determinados assuntos é a vontade dos mesmos humanos
de desvendar esses segredos. Seja por dinheiro, poder, vingança, curiosidade, arrogância,
ou qualquer outro sentimento essa tem sido uma batalha que, ao longo dos anos vem sendo
travada entre aqueles que querem guardar segredos e os que querem desvendar esses
segredos.
Com o avanço cada vez maior dos poderes das Redes de Computadores, o mundo tende a
ficar menor, perder fronteiras, encurtar distâncias. Hoje, com um simples apertar de teclas,
pode-se intercambiar informações através dos cinco continentes em questão de minutos ou
até segundos.
Este avanço faz com que a informação e o controle sobre ela sejam estratégicos para os
governos e para as empresas. E, quanto maior o fluxo de informações em redes de
telecomunicações, ou maior a quantidade de informação armazenada em meios
computacionais, maior é a necessidade de empresas, governos e até de pessoas físicas de se
protegerem contra uma nova ameaça que está crescendo proporcionalmente ao
desenvolvimento da informática. Trata-se do furto de informação sigilosa e estratégica,
armazenada em meios computacionais, ou da adulteração de transações através do poder
das telecomunicações.
Pensando na necessidade de se criar ferramentas capazes de proteger a informação e de
prover segurança aos dados armazenados e transmitidos pelas organizações através do
mundo, veio a motivação para se estudar Criptografia. Sendo que através desta disciplina
podem-se criar aplicações que dêem maior segurança às informações digitais.
1
Licenciando do Curso de Matemática da Universidade Católica de Brasília – UCB – DF.
Na palavra criptografia, “Cripto" vem do grego "kryptos" e significa oculto, envolto,
escondido. Também do grego, "graphos" significa escrever, "logos" significa estudo,
ciência e "analysis" significa decomposição. É também uma ciência matemática que se
dedica ao estudo de métodos de comunicação secreta. É composta pelas disciplinas de
criptografia e criptoanálise. A criptografia estuda os métodos para cifrar ou codificar uma
mensagem de modo que só o destinatário legítimo é capaz de interpretar o conteúdo da
mensagem sendo ilegível para terceiros e intrusos. Os procedimentos inversos, chamados
de decifragem, são os objetivos de estudo da criptoanálise. Decodificar é o procedimento
que o usuário legítimo do código realiza quando recebe uma mensagem codificada e quer
lê-la. Já decifrar é o procedimento feito para ler uma mensagem codificada sem ser um
destinatário legítimo. O principal propósito da criptografia é permitir a transmissão de
mensagem por canais não seguros empregando técnicas matemáticas para tornar o conteúdo
da mensagem restrita ao destinatário legítimo. Esta ciência é tão antiga quanto a própria
escrita, porém somente depois da Segunda Guerra Mundial, com a invenção do computador
e o desenvolvimento da teoria da informação, a criptografia realmente floresceu.
2.
HISTÓRIA
Cerca de 1900 a.C. acontece o primeiro relato da historia da criptografia. Numa vila egípcia
perto do rio Nilo chamada Menet Khufu. Khnumhotep II era um arquiteto do faraó
Amenemhet II. Ele construiu alguns monumentos para o faraó, os quais precisavam ser
documentados. Nem é preciso dizer que estas informações, escritas em tabletes de argila,
não eram para cair no domínio público. O escriba de Khnumhotep II teve a idéia de
substituir algumas palavras ou trechos de texto destes tabletes. Caso o documento fosse
roubado, o ladrão não encontraria o caminho que o levaria ao tesouro - morreria de fome,
perdido nas catacumbas da pirâmide. Pode ser considerado o primeiro exemplo
documentado da escrita cifrada.
A história da criptografia aconteceu em três fases distintas, a criptografia manual, a
criptografia por máquinas e a criptografia em rede.
2.1
A criptografia manual.
A criptografia manual são os algoritmos considerados clássicos. Podemos chamar assim a
todos os sistemas de criptografia anteriores à 2ª Guerra Mundial. Estas técnicas têm em
comum o fato de poderem ser empregadas usando-se apenas lápis e papel, e poderem ser
decifradas praticamente da mesma forma. Atualmente com a ajuda dos computadores, as
mensagens criptografadas empregando-se estes algoritmos são facilmente decifradas, por
isso caíram rapidamente em desuso. Podemos citar como exemplos:
Exemplo 1: O código de César que apesar da criptologia2 estar bastante avançada na época,
em 50 a.C. usava um sistema de substituição. Suetônio, escritor romano que viveu no início
2
Disciplina científica que reúne e estuda os conhecimentos (matemáticos, computacionais, psicológicos,
filológicos, etc.) e técnicas necessários à criptoanálise (solução de criptogramas) e à criptografia (escrita
codificada).
da era cristã (69 d.C.), em Vida dos Césares, escreveu a biografia dos imperadores romanos
de Júlio César a Domiciano. Conta que Júlio César usava na sua correspondência particular
um código de substituição muito simples no qual cada letra da mensagem original era
substituída pela letra que a seguia em três posições no alfabeto: a letra A era substituída por
D, a B por E, e assim até a última letra Z, que é cifrada com a letra C (veja a tabela abaixo).
Tabela 1: Código de César.
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
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
Hoje em dia, porém, se denomina de código de César qualquer cifra na qual cada letra da
mensagem original seja substituída por outra deslocada um número fixo de posições, não
necessariamente três. Um exemplo é o código que, ainda segundo Suetônio, era usado por
Augusto, onde a letra A era substituída por B, a B por C e assim sucessivamente. Como o
alfabeto romano possui 26 letras, são possíveis 26 códigos de César, dos quais um (o do
deslocamento zero) não altera a mensagem original. Uma simples criptoanálise estatística,
baseada na característica estatística da língua, é suficiente para decifrar o texto.
Exemplo 2: O cifrário de Francis Bacon, que foi um filósofo, escritor e político inglês, por
volta do século XVI, detalhou seu sistema de substituição usando um alfabeto de 24 letras
onde I=J e U=V. Para cada uma das letras do alfabeto é atribuído um grupo de 5 caracteres
compostos pelas letras "a" e "b". Como são utilizadas apenas duas letras para a formação
dos grupos, considera-se esta cifra como binária. Como os grupos são formados por 5
letras, considera-se a cifra como sendo de 5 bits e cada caractere possui duas possibilidades
poderíamos gerar 25 = 32 grupos e consequentemente representar 32 letras distintas.
A formação dos grupos segue uma seqüência lógica de fácil de memorizar. Além disso, os
"a" e "b" podem ser substituídos por 0 e 1. Analise a tabela abaixo:
Tabela 2: Cifrário de Francis Bacon
Letra Grupo Binário
Letra
A
aaaaa 00000
N
B
aaaab 00001
O
C
aaaba 00010
P
D
aaabb 00011
Q
E
aabaa 00100
R
G
aabba 00110
T
H
aabbb 00111
U/V
I/J
abaaa 01000
W
K
abaab 01001
X
L
ababa 01010
Y
M
ababb 01011
Z
Grupo
abbaa
abbab
abbba
abbbb
baaaa
baaba
baabb
babaa
babab
babba
babbb
Binário
01100
01101
01110
01111
10000
10010
10011
10100
10101
10110
10111
Exemplo 3: O Código Braille3 criado por Louis Braille (1809-1852), educador francês, que
ficou cego aos 3 anos de idade. Interessou-se por um sistema de escrita, apresentado na
escola Charles Barbier, no qual uma mensagem codificada em pontos era cunhada em
papel-cartão. Aos 15 anos de idade trabalhou numa adaptação, escrita com um instrumento
simples que é um sistema de símbolos onde cada caractere é formado por uma matriz de 6
pontos dos quais pelo um se destaca em relação aos outros. Temos então a possibilidade de
representar 26 − 1 caracteres distintos.
Tabela 3: Relação entre letra e símbolo do código Braille.
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
Hoje em dia existem vários dispositivos para escrita em Braille, desde muito simples até
sofisticados dispositivos eletrônicos. O mais simples é uma lousa com uma régua perfurada
onde, com o auxílio de um estilete, é possível produzir os pontos em relevo. Existem
também uma máquina de escrever especial, impressoras ligadas a computador que
produzem os relevos desejados, dispositivos com voz artifical que "lêem" braille, teclados
de computador especiais e "anotadores" eletrônicos associados a máquina de calcular,
calendário, etc.
2.2
A criptografia por máquinas.
Na criptografia por máquinas, uma tabela predeterminada era usada em conjunto com uma
máquina, onde o operador desta, usando a tabela e manipulando a máquina podia enviar
uma mensagem criptografada. Como exemplo de máquina de criptografia, podemos citar:
Exemplo 4: O código Morse4: Samuel Morse (1791-1872) em 1840 desenvolve o código
que recebeu o seu nome. Originalmente, Morse imaginou numerar todas as palavras e em
transmitir seus números através do telégrafo. O receptor, usando um enorme "dicionário",
decifraria a mensagem onde as letras do alfabeto foram definidas pelo padrão "ponto e
traço". Este novo código reconhecia quatro estados: voltagem-ligada longa (traço),
voltagem-ligada curta (ponto), voltagem-desligada longa (espaço entre caracteres e
palavras) e voltagem-desligada curta (espaço entre pontos e traços). Cada caractere (letras,
números, sinais gráficos) possui seu próprio conjunto único de pontos e traços.
3
4
Não tem finalidade de esconder mensagem, pelo contrário, mas é um bom exemplo de criptografia manual.
Idem. Só que aqui temos um bom exemplo de criptografia de máquina.
Tabela 4: Código Morse original:
a •—
l •—••
x
b —•••
m ——
y
c —•—• n —•
z
d —••
o — — — ch
e •
p •——• w
——•
f ••—•
q
ä
—
g ——•
r •—•
é/ë
h ••••
s •••
ï
i
j
k
••
•——
—
—•—
t
—
ñ
u
••—
ö
v
•••—
ü
—••—
—•——
——••
————
•——
1 •————
2 ••———
3 •••——
4 ••••—
5 •••••
•—•—
6
—••••
••—••
7 ——•••
—••—— 8 ———••
——•—
9 ————•
—
————
———• 0
—
••——
Podemos traduzir os termos utilizados para os dias de hoje para significarem condições
binárias de "1" (ponto) e "0" (traço). O alfabeto Morse é um código baseado em 5 posições,
ou seja, não precisa mais do que 5 posições para que todas as letras e números sejam
padronizados.
Na realidade, o aspecto mais importante quando se fala de Morse não é o código e sim a
possibilidade de transmitir informações à distância. Através dos fios correm sinais elétricos
que, devidamente concatenados, representam mensagens.
Exemplo 5: O Código Enigma5: código gerado pela Máquina Enigma, usada pelos alemães
na Segunda Guerra Mundial, que consistia de um teclado ligado a uma unidade
codificadora. O codificador tinha três rotores separados e as posições dos rotores
determinavam como cada letra no teclado seria codificada. O que tornava o código da
Enigma tão difícil de quebrar era o enorme número de modos nos quais a máquina podia
ser regulada. Em primeiro lugar, os três rotores na máquina eram escolhidos de uma seleção
de cinco que podia ser mudada e trocada para confundir os adversários. Em segundo lugar,
cada rotor podia ser posicionado em 26 modos diferentes. Isto significava que a máquina
podia ser regulada em milhões de modos diferentes. E além das permutações permitidas
pelos rotores, as conexões no quadro de chaveamento, na parte detrás da máquina, podiam
ser mudadas manualmente para fornecer um total de 150 trilhões de regulagens possíveis. E
para aumentar ainda mais a segurança, os três rotores mudavam de oritentação
continuamente, de modo que, cada vez que a letra era transmitida, a regulagem da máquina,
e portanto o código, iria mudar de uma letra para outras. Assim se alguém digitasse
“DODO” no teclado iria gerar a mensagem “FGTB”, por exemplo – o “D” e o “O” eram
transmitidos duas vezes, mas codificados de modo diferente a cada vez.
O grande salto em direção à decodificação do Código Enigma aconteceu quando se
percebeu que a máquina Enigma não podia codificar uma letra nela mesma, isto é, se o
5
Código “quebrado” pela equipe chefiada pelo matemático inglês Alan Turing.
emissor, por exemplo, teclasse a letra “B”, então, independente do ajuste, a máquina
poderia transmitir todo tipo de letra, exceto “B”.
2.3
A criptografia em rede.
Os sistemas de criptografia clássicos perderam sua eficácia devido à facilidade com que
atualmente são decodificados/criptanalizados empregando-se qualquer computador
doméstico, mas que foram empregados com êxito até princípios do século XX. Hoje em em
dia a criptografia que oferece maiôs segurança é a em rede.
Na criptografia em rede, a mensagem é criptografada usando-se algoritmos, gerando
diversos códigos que executam a criptografia. Podemos citar também que com o advento da
internet e sua popularização a criptografia em rede tem sido responsável pelo surgimento
do comércio eletrônico, visto que esta é essencial para que uma empresa virtual possa ter a
confiança de seus clientes na hora de comprar. Podemos citar como exemplos:
Exemplo 6: Algoritmo DES6 que utiliza a Criptografia simétrica que é conhecida como
“Criptografia Convencional”. O poder da cifra é medido pelo tamanho da chave (Num
sistema de encriptação, corresponde a um nome, uma palavra, uma frase, etc, que permite,
mediante o algoritmo de encriptação, cifrar ou decifrar uma mensagem.), geralmente as
chaves de 40 bits são consideradas fracas e as de 128 bits ou mais, as mais fortes. Os
algoritmos simétricos podem ser divididos em cifras de fluxo ou seqüenciais e em cifras de
bloco. As cifras de fluxo encriptam um texto claro bit a bit, ao passo que as cifras de bloco
usam conjuntos com um número fixo de bits (geralmente 64 bits nas cifras modernas) como
unidades de cifragem.
Esta cifra utiliza uma única chave secreta, logo antes de duas entidades estabelecerem um
canal seguro, é preciso que ambos, tanto o emissor quanto ao receptor, compartilhem suas
chaves respectivas.
Apesar de sua simplicidade, existem alguns problemas nesta cifra, pois cada par necessita
de uma chave secreta para se comunicar de forma segura. Portanto, estas devem ser
trocadas entre as partes e armazenadas de forma segura, o que nem sempre é possível de se
garantir. A criptografia simétrica não garante a identidade de quem enviou ou recebeu a
mensagem. A quantidade de usuários em uma rede pode dificultar o gerenciamento das
chaves.
Exemplo 7: No algoritmo RSA7 as cifras já são chamadas de cifras assimétricas ou de
algoritmos de chave pública, permitem que a chave seja de domínio público - pode até ser
publicada em jornais ou revistas. Qualquer pessoa pode, então, cifrar mensagens utilizando
a chave, mas apenas o destinatário e real proprietário da chave será capaz de decifrar o
texto porque é o único que conhece a chave decifrante. A chave cifrante também é chamada
6
Data Encryption Standart (DES): algoritmo de criptografia desenvolvido na década de 70 pelo National
Bureau of Standarts com ajuda da National Security Agency (USA).
7
O Código leva as iniciais dos sobrenomes de seus criadores: Ronald L. Rivest, Adi Shamir e Leonard M.
Adleman.
de chave pública e a chave decifrante de chave privada ou chave secreta.
Para contornar os problemas da criptografia convencional surgiram os algoritmos que
utilizam chave pública e privada. A idéia é que a criptografia de uma mensagem seja feita
utilizando a chave pública e sua decriptografia com a chave privada, ou vice-versa. Os
algoritmos de chave pública e privada exploram propriedades específicas dos números
primos e, principalmente, a dificuldade de fatorá-los, mesmo em computadores rápidos.
3
DESENVOLVIMENTO
Algumas aplicações matemáticas são freqüentemente abordadas quando tratamos de
assuntos como a criptografia. A seguir serão abordados tópicos matemáticos, que são vistos
a título de ensino médio, relacionado à criptografia.
3.1
Análise combinatória.
Uma das grandes aplicações da análise combinatória na criptologia, e talvez a primeira que
nos ocorre, é o número de alfabetos cifrantes possíveis. Se considerarmos o alfabeto
ocidental da atualidade, com 26 letras, quantos alfabetos cifrantes podem ser obtidos?
Sabemos que um alfabeto cifrante não pode ter letras repetidas e precisa conter todas as
letras do alfabeto original. Se apenas as posições das letras são alteradas, sabemos que se
trata de uma permutação simples. Então vamos ao cálculo das possibilidades:
P26 = 26!
P26 = 26 · 25 · 24 · ... · 3 · 2 · 1
P26 = 403.291.461.126.605.635.584.000.000
Ou seja, o número de alfabetos cifrantes possíveis é maior que espantosos 400 septilhões!
Se alguém quiser encontrar um determinado alfabeto cifrante através da "força bruta", ou
seja, tentando cada uma das possibilidades, e gastar apenas 1 minuto para cada
possibilidade, precisaria de pelo menos... a eternidade para encontrar o alfabeto cifrante
correto.
403.291.461.126.605.635.584.000.000 min = 6.721.524.352.110.093.926.400.000 horas
6.721.524.352.110.093.926.400.000 horas = 280.063.514.671.253.913.600.000 dias
280.063.514.671.253.913.600.000 dias = 9.335.450.489.041.797.120.000 meses
9.335.450.489.041.797.120.000 meses = 777.954.207.420.149.760.000 anos
Se considerarmos que a solução seja encontrada a "meio do caminho", ainda restam cerca
de 390 quatrilhões (388.977.103.710.074.880) de milênios!
3.2
Aritmética modular
Quando 15+15 são 6? Se analisarmos esta soma sem questionar, falaremos sem medo que
nunca. Agora, se pensarmos em horas, esta conta está correta, pois 15 horas mais 15 horas,
a partir de 0 hora, são 6 horas. Qualquer fenômeno cíclico como este, vai se tornar uma
aritmética distinta da que conhecemos no segundo grau. Esta aritmética é conhecida como
aritmética modular. Voltemos novamente ao exemplo do relógio. Como contamos o tempo
de 12 em 12 horas, o conjunto de cifras para expressar as horas são 12 (vão de 0 a 11). Se o
conjunto de cifras disponíveis no mostrador é limitado, sabemos imediatamente que
estamos lidando com a aritmética modular e que o relógio trabalha com módulo 12.
Ver as horas no mostrador é um procedimento imediato: mostrador no 3 indica que são 3
horas; mostrador no 8 indica que são 8 horas. Mas quando o mostrador chega nas 11 horas,
a próxima hora será 0. Que conta é esta? Somamos 11 + 1. Agora apliquemos o módulo 12:
11 + 1 = 12 e 12 ÷ 12 = 1 com resto 0. Da mesma forma, 11 + 5 = 16 e 16 ÷ 12 = 1 com
resto 4. Ou seja, sempre que o resultado da soma ultrapassar o maior valor do conjunto
(maior que 11), aplicamos o módulo 12. Por exemplo, 5 + 3 = 8 não precisa de ajuste.
Sabemos também que uma divisão nada mais é do que uma sucessão de subtrações. Veja o
exemplo: 36 ÷ 12 = 3 com resto 0 ou 36 - 12 = 24, 24 - 12 = 12 e 12 - 12 = 0. Fizemos três
subtrações até obtermos um número menor do que 12, ou seja, o resto. Parece bobagem,
mas é muito importante e, principalmente, muito prático.
Nos exemplos acima sempre somamos horas. Se, por exemplo, quisermos subtrair 15 de 3
horas, teríamos o seguinte cálculo: 3 - 15 = -12. Novamente caímos fora do conjunto de 0 a
11, portanto, precisamos aplicar um ajuste: -12 ÷ 12 = -1 com resto 0. Agora considere
subtrair 17 de 3 horas, ou seja, 3 - 17 = -14 e -14 ÷ 12 = -1 com resto -2, o que nos deixa
novamente fora do conjunto de 0 a 11. É neste ponto que é importante entender o
complemento de 12 (porque estamos trabalhando com módulo 12). Observe a tabela 5:
Tabela 5: Módulo 12.
Conjunto das Cifras 0
Complemento
12
Módulo 12
12
1
11
12
2
10
12
3
9
12
4
8
12
5
7
12
6
6
12
7
5
12
8
4
12
9
3
12
10
2
12
11
1
12
Analisando a tabela dos complementos verificamos que o complemento de 0 é 12, de 1 é 11
e assim sucessivamente. Ao mesmo tempo podemos notar que, subtraindo o complemento
do módulo 12, obtemos a cifra do conjunto correspondente, ou seja: 12 - 12 = 0, 12 - 11 =
1, etc, ou seja, o processo é reversível. Se quisermos encontrar a cifra correspondente a -2
no módulo 12, basta calcular 12 - 2 = 10.
Considerando que o número de caracteres disponíveis para se escrever (e cifrar) uma
mensagem seja finito, já entramos no ramo da aritmética modular. O alfabeto latino
completo possui 26 letras, portanto, vamos trabalhar com módulo 26. Numerando as letras
de 0 a 25, qualquer cálculo que se queira efetuar segue as mesmas regras explicadas para o
relógio. Imagine que você queira "subtrair" F de J: J corresponde a 9 e F a 5, então J - F = 9
- 5 = 4 que corresponde a E. Da mesma forma, T + 10 será 19 + 10 = 29 e 29 ÷ 26 = 1 com
resto 3, que corresponde ao D. Ou então T + 38 = 57 e 57 - 26 = 31 - 26 = 5, que
corresponde ao F. C - 10 será 2 - 10 = -8 e a letra correspondente será 26 - 8 = 18 (pelo
complemento) que é o S.
3.3
Estatística
A estatística também está relacionada com a criptografia nas cifras por substituição uma
simples análise estatística, baseada na característica da língua, é suficiente para decifrar o
texto. Na freqüência da ocorrência de letras no português do Brasil, temos algumas tabelas
ilustradas a seguir:
Histograma por Ordem alfabética .
Histograma por Ordem de Freqüência.
Figura 1: histograma da freqüência da ocorrência de letras no português do Brasil.
Tabela 6: freqüências das letras em percentuais.
Letra
A
B
C
D
E
F
G
H
I
J
K
L
M
Freq.%
14.63
1.04
3.88
4.99
12.57
1.02
1.30
1.28
6.18
0.40
0.02
2.78
4.74
Letra
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Freq.%
5.05
10.73
2.52
1.20
6.53
7.81
4.34
4.63
1.67
0.01
0.21
0.01
0.47
Tem-se como característica do português do Brasil o comprimento médio das palavras que
é de 4.53 letras e quando as letras são ordenadas pela freqüência, formam grupos bem
definidos:
Tabela 7: freqüência das letras divididas por grupos.
Letras
6 vogais: A, E, I, O, U, (Y)
20 consoantes
5 de frequência alta: S, R, N, D, M
10 de frequência média: T, C, L, P, V, G, H, Q, B, F
6 de frequência baixa: Z, J, X, K, W
Freq.
48.75 %
49.12 %
21.03 %
1.10 %
100.00 %
As vogais A, E, I, O, U e as consoantes S, R, N, D, M formam mais de 3/4 dos textos em
Português e a média de vogais a cada 10 letras é de 4.88.
3.4
Matrizes
Uma desvantagem de cifras de substituição é que elas preservam as freqüências de letras
individuais, tornando relativamente fácil quebrar o código por métodos estatísticos. Uma
maneira de superar este problema é dividir o texto em grupos de letras e criptografar o texto
comum por grupo, em vez de uma letra de cada vez. Um sistema poligráfico é um sistema
de criptografia no qual o texto comum é dividido em conjuntos de n letras, cada um dos
quais é substituído por um conjunto de n letras cifradas. As cifras de Hill, que foi inventada
em 1929 por Lester S.Hill, são baseadas em transformações matriciais.
Inicialmente vamos supor que cada letra de texto comum e de texto cifrado, excetuando o
Z, tem um valor numérico que especifica sua posição no alfabeto padrão. A Z será atribuído
o valor zero, pois estaremos interessados em trabalhar com aritmética módulo 26.
Tabela 8: Relação de letras com números.
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0
Para transformarmos um texto em texto cifrado seguiremos os seguintes procedimentos:
Passo 1. Escolha uma matriz 2x2.
A=
a11
a 21
a12
a 22
Com entradas inteiras para efetuar a codificação.
Passo 2. Agrupe letras sucessivas de texto comum em pares, adicionando uma letra fictícia
para completar o último par se o texto comum tem um número ímpar de letras; substitua
cada letra de texto de texto comum por seu valor numérico
Passo 3. Converta cada par sucessivo p1 p 2 de letras de texto comum em um vetor-coluna
p=
p1
p2
E forme o produto A.p .Nós chamamos p de vetor comum e A.p o correspondente vetor
cifrado.
Passo 4. Converta cada vetor cifrado em seu equivalente alfabético.
Exemplo 8: Cifra de Hill de uma mensagem.
Use a matriz:
1 2
0 3
Para obter a cifra de Hill da mensagem de texto comum WALDIZAR. Agrupa-se o texto
comum em pares de letras, temos:
WA
LD
IZ
Ou, equivalentemente, usando a tabela 8: 23 1
AR
12 4
Para codificar o par WA efetua-se o produto matricial:
90
1 2
0 3
⋅
23
1
1 18
=
25
3
Que fornece o texto cifrado DC, usando a tabela 8.
Para codificar o par LD efetua-se o produto matricial:
1 2 12
20
⋅
=
0 3
4
12
Que fornece o texto cifrado IL, usando a tabela 8.
Para codificar o par IZ efetua-se o produto matricial:
1 2 9
9
⋅
=
0 3 0
0
Que fornece o texto cifrado IZ, usando a tabela 8.
E finalmente para codificar o par AR efetua-se o produto matricial:
1 2
1
37
⋅
=
0 3 18
54
(1)
Aqui temos um problema, pois os números 37 e 54 não possuem equivalências alfabéticas
com a tabela 8. para resolver este problema utilizaremos o resto da divisão euclidiana
destes números por 26 e como o resto da divisão é um dos números 0, 1, 2, ..., 25, este
procedimento sempre fornece um inteiro com equivalente alfabético.
Assim em (1), deve se substituir 37 por 11 e 54 por 2, que equivale na tabela 8 com KB.
Coletando os pares obtêm-se a mensagem cifrada completa:
DC
IL
IZ
ZB
Seria transmitida como uma única cadeia sem espaços: DCILIZZB
Como o texto foi agrupado em pares e criptografado por uma matriz 2x2, dizemos que a
cifra de Hill é uma matriz 2-cifra de Hill. É possível criptografar com uma matriz 3x3 com
entradas inteiras. Em geral, para n-cifra de Hill agrupamos o texto comum em conjuntos de
n letras e codificamos com uma matriz codificadora nxn de entradas inteiras.
Para decifrar as cifras de Hill, usamos a inversa (mod 26) da matriz codificadora. Neste tipo
de criptografia é importante saber quais matrizes são invertíveis módulo 26. Em geral, uma
matriz quadrada A é invertível se, e somente se, det(A) ≠ 0 (pois nos números reais basta o
número ser diferente de zero para ter inverso multiplicativo). Na aritmética módulo 26, o
det(A) deverá ter inverso módulo 26, pois na fórmula da inversa de A, aparece o inverso do
determinante. Agora, um número n terá inverso módulo 26 se e somente se mdc (n, 26)=1,
ou seja, n e 26 são co-primos (não têm fatores em comum). Assim, só existirá inversa
módulo 26 se o det(A) não for divisível por 2 ou 13. Veja tabela 9 abaixo.
a b
, podemos obter a inversa de A (mod 26) com
c d
det(A)=ad - bc não divisível por 2 ou 13, pela expressão:
Sendo assim, dada uma matriz A =
A−1 = (ad − bc )−1
d −b
−c a
(mod 26)
Onde (ad − bc ) é o inverso multiplicativo de det(A). Para referencia futura, abaixo temos
a seguinte tabela com os inversos multiplicativos módulo 26 que, por exemplo, para
encontramos o inverso multiplicativo do número 3 teremos que encontrar o número x que
satisfaz a equação módular 3x = 1 (mod 26), que obteríamos como resposta o número 9.
−1
Tabela 9: inversos multiplicativos módulo 26
a
1
3
5
7
9
11
a −1
1
9
21
15
3
19
15
17
19
21
23
25
7
23
11
5
17
25
Exemplo 9: Decifrando uma cifra de Hill.
5 6
, primeiramente
2 3
obteremos a inversa de A (mod 26). Det(A)= 3 e pela tabela 9 o inverso multiplicativo de 3
é igual a 9. Sendo assim:
Temos a mensagem EOAF que foi codificada pela matriz A =
A−1 = 9
3 −6
27 − 54
1 24
=
=
(mod 26) .
−2 5
− 18 45
8 19
Pela tabela 8, o equivalente numérico do texto cifrado é: 5
15
1
6
Para obter os pares de texto comum, nós multiplicamos cada vetor pela inversa de A.
1 24 5
365
1
=
=
(mod 26)
8 19 15
325
13
1 24 1
145
15
=
=
(mod 26)
8 19 6
122
18
Obtemos a seqüência numérica 1 13 15 18, que pela tabela 8, os equivalentes alfabéticos
destes números fornecem a palavra AMOR.
3.5
Funções
O principio básico da criptografia é encontrar uma transformação (função) bijetiva f entre
um conjunto de mensagens escritas em um determinado alfabeto (letras, números) para um
conjunto de mensagens codificadas. Como f é inversível existe a garantia de o processo ser
reversível, o que vai possibilitar a revelação das mensagens pelos destinatários. O grande
segredo da criptografia está justamente em esconder de maneira eficiente o processo
(chave) para a inversão de f. Abaixo temos um diagrama que ajuda a entender a idéia do
processo criptográfico: Aqui podemos dar um exemplo didático: para começar criamos uma
tabela que relaciona números com letras do nosso alfabeto:
Tabela 10: Relação de letras com números.
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Agora, escolhemos uma função f(x) que vai receber o valor da letra que queremos
transmitir e gerar um outro valor através de f(x). Ou seja, a imagem de f é que será
transmitida. Vamos supor que f seja a função f(x) = 3x + 5, que é também chamada de
função cifradora. O emissor vai transmitir a palavra MONOGRAFIA. Então, conforme as
tabelas acima têm a seguinte correspondência:
M = 13
O = 15
N = 14
O = 15
G=7
R = 18
A=1
F=6
I=9
A=1
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
f (M) = f (13) = 44
f (O) = f (15) = 50
f (N) = f (14) = 47
f (O) = f (15) = 50
f (G) = f (7) = 26
f (R) = f (18) = 59
f (A) = f (1) = 8
f (F) = f (6) = 23
f (I) = f (9) = 32
f (A) = f (1) = 8
A palavra M O N O G R A F I A ao passar pela função cifradora será transformada na
seqüência de números 31 50 47 50 26 59 8 23 32 8, que é a mensagem que o receptor
receberá. O receptor ao receber a mensagem codificada (seqüência numérica), realizará a
( x − 5)
(8 − 5)
operação inversa f −1 ( x) =
. Por exemplo, o receptor recebeu 8, f −1 (8) =
=1
3
3
= f (1) = f (A) , logo 8 (destino) = A (origem), e assim sucessivamente até recompor
totalmente a mensagem original.
4,
COSIDERACOES FINAIS
Os resultados obtidos nesse artigo revelam a importância da criptografia, e que ela não
poderia ser tão bem desenvolvida sem a presença da matemática, pois nota-se maior
confiabilidade em ocultar uma mensagem quando usamos essa ciência. Os ramos da
matemática que são aplicados à criptografia são diversos é notamos quanto maior o grau de
dificuldade que os aplicamos melhor ocultará a mensagem.
Durante este artigo tive um grande crescimento como professor e educador, pois no ensino
fundamental e médio diariamente somos questionados sobre a aplicação de diversos ramos
da matemática, podendo então agora usar os conhecimentos obtidos com as aplicações da
matemática na criptografia em sala de aula.
5.
REFERÊNCIA BIBLIOGRAFICAS
ANTON, RORRES; Álgebra linear com aplicações. 8ª ed. Porto alegre: Bookman, 2001.
COUTINHO, Severino; Números inteiros e criptografia RSA. 2. ed. Rio de Janeiro:
IMPA, 2003.
DOMINGUES, Hygino H.; IEZZI, Gelson. Álgebra moderna. 2. ed. São Paulo: Atual,
1992.
ROUTO, Terada. Segurança de dados - criptografia em redes de computador. Ed. E.
Blücher, 2000.
SINGH, Simon. O último teorema de Fermat: a história do enigma que confundiu as
maiores mentes do mundo durante 358 anos. Rio de Janeiro: Record, 1998.
TKOTZ,
Viktoria,
Historia
da
<http://www.numaboa.com.br/criptologia>.
criptografia.
Disponível
em
Download

Criptografia - Universidade Católica de Brasília