Você está na página 1de 10

PROF.

RUBENS VILHENA

Introdução à Criptografia

A palavra é composta por dois termos gregos kryptos (kryptos secreto,


escondido, oculto) e grapho (grapho - escrita grafia).

A criptografia é uma arte ou ciência de escrever ocultamente talvez tão


antiga quanto a própria escrita, hoje em dia é um dos métodos mais eficientes
de se transferir informação, sem que haja a possibilidade de interferência por
parte de terceiros.

A Criptografia é o estudo de técnicas matemáticas, relacionadas com os


aspectos de segurança e confidencialidade de informação, a integridade de
dados, a autenticação de entidades e a autenticidade de origem de dados, ou
seja, consiste na conversão de dados num código secreto como medida de
segurança para que possam existir comunicações seguras.

A criptografia lida de um modo muito estreito com termos como - encriptação


e desencriptação. A encriptação é a conversão de dados para uma forma que
não será compreendida facilmente por pessoas autorizadas com o objectivo de
assegurar a privacidade mantendo a informação escondida e ilegível mesmo
para quem vê os dados encriptados. A desencriptação é o processo de
converter dados encriptados de volta á sua forma original, para que a
mensagem possa ser compreendida e para isso acontecer requer alguma
informação secreta, usualmente denominada chave de desencriptação. A
chave de desencriptação é o algoritmo que desfaz o trabalho do algoritmo de
encriptação. Um algoritmo é um programa de computador que pode ser visto
como um algoritmo elaborado.

A criptografia é baseada em chaves, uma informação pode ser codificada


através de algum algoritmo de criptografia, de modo que, tendo conhecimento
do algoritmo e da chave utilizados, é possível recuperar a informação original
fazendo o percurso contrário da encriptação, a desencriptação.

A criptografia consiste na ciência de codificar mensagens de forma a torna-la


ilegível para os outros.

1
PROF. RUBENS VILHENA

Cifra de César

Cifras – O estudo da codificação e decodificação de mensagens secretas é denominado


criptografia. Embora os códigos secretos remontem aos primórdios da comunicação
escrita, tem havido um aumento recente de interesse no assunto devido à necessidade de
manter a privacidade da informação transmitida ao longo de linhas públicas de
comunicação. Na linguagem da criptografia, os códigos são denominados cifras, as
mensagens não codificadas, são textos comuns e as mensagens codificadas são textos
cifrados ou criptogramas. O processo de converter um texto comum em cifrado é
chamado cifrar ou criptografar e o processo inverso de converter um texto cifrado em
comum é chamado decifrar.
As cifras mais simples, denominadas cifras de substituição (ou Código de César), são
as que substituem cada letra do alfabeto por uma outra letra.
Por exemplo, na cifra de substituição

Comum 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

a letra de texto comum A é substituída por D, a letra de texto comum B por E e assim
por diante.

Com esta cifra, a mensagem de texto comum

ROMA NÃO FOI CONSTRUÍDA EM UM DIA


fica
URPD QDR IRL FRQVWUXLGD HP XP GLD

2
PROF. RUBENS VILHENA

2.1 Cifra de César - Um dos sistemas criptográficos mais antigos e simples é a


chamada “cifra de César”, em homenagem ao famoso imperador romano . Júlio César
usou sua famosa cifra de substituição para cifrar mensagens governamentais.
Atualmente denomina-se qualquer cifra baseada na substituição cíclica do alfabeto de
código de César. Com o uso de dois discos concêntricos contendo todas as letras do
alfabeto, a substituição se tornava extremamente simples.

A cifra de César baseia-se na seguinte propriedade:

“Seja m>1 um inteiro. Para cada a ∈ Z m fixado, temos que f: Z m → Z m definida por f(x)
= x + a (mod m) é bijetiva”.

Demonstração:

(i) f é injetiva.

De fato:
f(x) = f(y)
x + a = y + a (mod m)
x + a - a = y + a - a (mod m)
x = y (mod m)
x = y em Z m , donde f(x) = f(y) acarreta x = y
(ii) f é sobrejetiva
Seja x um elemento qualquer de Z m .
Então x - a está em Z m e f(x - a) = x, uma vez que em Z m x – a = x – a + km, para
todo inteiro k. Logo todo x em Z m é igual a f(x - a), donde f é sobrejetiva.
Como f é injetiva e sobrejetiva, então f é bijetiva.

Imaginemos, por questão de simplicidade, as 26 letras usuais e o espaço (entre duas


palavras) associados aos elementos de Z 27 conforme a Tabela 1 abaixo ( adotaremos o
símbolo [ ] para indicar um espaço entre as palavras):

A B C D E F G H I J K L M
1 2 3 4 5 6 7 8 9 10 11 12 13
N O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26
[]
0

Tabela 1

3
PROF. RUBENS VILHENA

Fixado um elemento a ∈ Z m ( a é a chave do código – de transmissão e de recepção), a


aplicação f: x → x + a (mod 27) permuta os elementos de Z 27 e, conseqüentemente, os
elementos do conjunto formado pelo símbolo do espaço e as 26 letras. Dessa forma cada
mensagem se transforma em código; o fato de f ser bijetiva garante que mensagens
diferentes são codificadas de maneira diferente e, ainda, a possibilidade da
decodificação.

Exemplo: Vejamos como codificar a frase “EU VOU”, usando como chave a = 14,
ou seja com y = x + 14 (mod 27)

E → 5 → 5 + 14 ≡ 19(mod 27) → S

U → 21 → 21 + 14 ≡ 8 (mod 27) → H

[] → 0 → 0 + 14 ≡ 14 (mod 27) → N

V → 22 → 22 + 14 ≡ 9 (mod 27) → I

O → 15 → 15 + 14 ≡ 2 (mod 27) → B

U → 21 → 21 + 14 ≡ 8 (mod 27) → H

Portanto o código para a frase dada é “ SHNIBH”.

Para decodificar, considerando que o simétrico aditivo de 14 módulo 27 é 13

(pois, 14 + 13 ≡ 0 (mod 27), mantendo, portanto, a chave a = 14 ), procede-se assim:

S → 19 → 19 + 13 ≡ 5 (mod 27) → E

H → 8 → 8 + 13 ≡ 21 (mod 27) → U

N → 14 → 14 + 13 ≡ 0 (mod 27) → []

I → 9 → 9+13 ≡ 22 (mod 27) → V

B → 2 → 2+13 ≡ 15 (mod 27) → O

H → 8 → 8+13 ≡ 21 (mod 27) → U

1.1.2. Funções Polinomiais de Codificação

No exemplo acima usamos a função polinomial f(x) = x + 14 (mod 27) para


codificar a mensagem e usamos a sua inversa f -1(x) = x + 13 (mod 27)
para decodificação.
A pergunta que podemos fazer é podemos usar qualquer função polinomial
módulo m para codificar uma mensagem? A resposta é não!
Como vimos, precisamos da inversa para decodificar a mensagem. Assim se
escolhermos uma função polinomial que não seja bijetiva no domínio trabalhado

4
PROF. RUBENS VILHENA

teremos problemas em decodificar em situações normais. Além disso, nos casos em que
tivermos multiplicações e divisões da variável x, dependendo de Zm podemos não ter os
inversos de x módulo m nos casos em que m não é primo impossibilitando a
decodificação. Vejamos alguns exemplos:
Exp1. Use a tabela abaixo e a função f ( x) = x 2 + 23(mod 29) para codificar a palavra
DJ
A B C D E F G H I J K L M
1 2 3 4 5 6 7 8 9 10 11 12 13
N O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26
Á É []
27 28 0

D → f (4) = 42 + 23 = 10(mod 29) → J


J → f (10) = 102 + 23 = 7(mod 29) → G

Queremos agora decodificar a mensagem JG. A inversa da função y = x 2 + 23 é


obtida pelo método prático de trocar x por y e colocar y em função de x, ou seja:
y = x 2 + 23
x = y 2 + 23
y 2 = x − 23 ou
y 2 = x + 6(mod 29)

Ou seja, para “voltarmos” estamos interessado em saber que número y elevado ao


quadrado é igual a um número x + 6 (mod 29) ( isto é, [f(x)]2 = x + 6 ). Assim,

J → y 2 = 10 + 6 = 16(mod 29)
Que número elevado ao quadrado é igual a 16 módulo 29? Resposta: 4. Logo J é
D.

G → y 2 = 7 + 6 = 13(mod 7)
Que número elevado ao quadrado é igual a 13 módulo 29? Temos um problema!
Existem dois valores que elevado ao quadrado são iguais a 13 módulo 29: 10 e 19, letras
J e S respectivamente, pois
10.10 = 13(mod 29) e 19.19 = 13(mod 29)
impedindo-nos, em situações mais complexas, de decodificar a mensagem. Isso se deve
ao fato de f(x) = x2 + 23 não ser bijetiva.

5
PROF. RUBENS VILHENA

EXERCÍCIOS:
Use a Tabela 2 abaixo para os seus cálculos
Z31
A B C D E F G H I J K L M
1 2 3 4 5 6 7 8 9 10 11 12 13
N O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26
? Á Ã É []
27 28 29 30 0

1. Utilize as funções abaixo para codificar e sua inversa* para decodificar as


mensagens dadas.

a) y = 2 x(mod 31) ; y = x + 7(mod 31) ; O MAIS QUERIDO

b) y = 3 x(mod 31) ; y = 2 x + 30(mod 31) ; NAVEGAR É PRECISO?

c) y = 4 x(mod 31) ; y = 3 x + 2(mod 31) ; SE VOU NÃO FICO

x+ 1
d) y = 5 x(mod 31) ; y = (mod 31) ; ELVIS NÃO MORREU
x + 29
* Use o método da troca de variáveis para encontrar a função inversa

Análise de Freqüência

Em qualquer língua, alguns sons são utilizados com mais freqüência do que outros. Isto
significa que, na linguagem escrita, algumas letras também são mais utilizadas que
outras. Determinar a freqüência com que ocorrem determinadas letras em determinada
língua, ou seja, fazer uma análise da freqüência de ocorrência de letras.
Apesar de não se saber quem foi o primeiro a perceber que a variação na freqüência de
letras poderia ser explorada para se quebrar cifras, a descrição mais antiga de que se tem
conhecimento e que descreve esta técnica data do século 9 e é devida ao cientista Abu
Yusuf Ya 'qub ibn Is-haq ibn as-Sabbah ibn 'omran ibn Ismail al-Kindi.
Conhecido como o filósofo dos árabes, al-Kindi foi o autor de 290 livros sobre
medicina, astronomia, matemática, lingüística e música. No entanto, seu maior tratado,
o qual foi apenas redescoberto em 1987 no Arquivo Sulaimaniyyah Ottoman em
Istambul, na Turquia, é intitulado "Um Manuscrito sobre Decifração de Mensagens
Criptográficas.
A cifra de substituição monoalfabética parecia inquebrável devido ao número muito
grande de chaves possíveis. Entretanto, havia uma fraqueza que minava sua segurança.

6
PROF. RUBENS VILHENA

A quebra da cifra de substituição marca o nascimento da criptanálise. Tal fato ocorreu


durante os anos dourados da civilização islâmica, quando muitos manuscritos
estrangeiros foram levados para Bagdá para integrarem as grandes bibliotecas árabes.
Alguns destes manuscritos estavam encriptados, o que motivou os arrombadores de
códigos a quebrarem as cifras para revelar os segredos que continham.
As letras "A" e "I" são as mais comuns em Árabe. No Inglês, as letras mais comuns são
o "E", o "T" e o "A". Já no Português, as mais frequentes são "A", "E", "O" e "S".
Se uma mensagem é cifrada de modo que cada letra seja substituída por uma outra,
então a nova letra assumirá todas os atributos da letra original, inclusive com que
freqüência é utilizada.
Desta forma, se a longa mensagem estiver em Português e se a letra mais comum na
mensagem cifrada for G, então G provavelmente representa A. Se a segunda letra mais
freqüente na mensagem cifrada for W, então a probabilidade de que esteja substituindo
o E é bastante grande, e assim por diante.
Devemos considerar qual foi a língua utilizada para redigir a mensagem. Esta é uma
questão essencial porque define o padrão da freqüência da ocorrência de letras que deve
ser usada para fazer a comparação. É óbvio que SEMPRE existem outras pistas que
podem ajudar: o remetente da mensagem, o destinatário, o possível assunto, etc.
Caso estejamos considerando o Português, é claro que se vai fazer uma análise de
freqüência usando esta língua como base. Quanto mais longo for o texto, maior a
probabilidade dos valores encontrados estarem mais próximos dos valores padrão. Além
disso, não se deve esquecer que os valores padrão representam a MÉDIA da freqüência
de ocorrência. Se, por exemplo, o padrão para a letra A é de 14.63%, esta freqüência
pode variar, digamos, de 13% a 17%. Neste caso estamos contando com um desvio de
cerca de 2%.
Abaixo estão as tabelas de das freqüências relativas das letras nas línguas Portuguesa e
Inglesa.

7
PROF. RUBENS VILHENA

Freqüência relativa das letras no Português

Freqüência relativa das letras no Inglês

8
PROF. RUBENS VILHENA

EXERCÍCIOS

1) Suponha que você interceptou a mensagem:

JV F UZEYVZIF JFSIRJJV V JV VCR DV RDRJJV

Segundo suas fontes ela foi codificada utilizando a cifra de César de acordo com a
tabela seguinte

A B C D E F G H I J K L M

0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25

É claro que você não sabe a chave usada. Como bom estudante de Estatística, você fez
uma análise de freqüência ( isso é que é interesse nas coisas alheias!). Suponha que você
já havia interceptado um texto com mais de 1000 letras da mesma origem. De acordo
com a análise de freqüência, a letra A é mais comum na língua portuguesa. Você
percebeu que a letra mais comum no texto cifrado foi a R. Com mais uma suposição de
que a chave ainda não foi trocada, decodifique a mensagem. Desconsidere os espaços.

2) Para as questões de 1 a 6, utilize a seguinte tabela de conversão:

A B C D E F G H I J K L M
1 2 3 4 5 6 7 8 9 10 11 12 13
N O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26
*O espaço em branco é representado pelo valor 0.

Tabela de conversão módulo 27 para a Cifra de César.

1. Utilizando a função f(x) = x + 13 (mod 27), codifique a palavra SOFTWARE.

2. Utilizando a função f(x) = 4.x + 11 (mod 27), codifique a palavra UNIVERSO.


Encontre a função inversa de f(x) e verifique se sua resposta está correta.

3. Decodifique a palavra GESIOF sabendo que a função f(x) = x + 14 (mod 27)


foi utilizada para cifragem.

4. Decodifique a palavra BVJZOL sabendo que a função f(x) = 5.x + 17 (mod


27) foi utilizada para cifragem.

9
PROF. RUBENS VILHENA

5. Dada a mensagem em texto simples FELIZ, e o seu respectivo texto cifrado


YXDAR, encontre a função afim que foi utilizada na cifragem. Determine a
função inversa

6. Dada a mensagem em texto simples TEMPO, e o seu respectivo texto cifrado


ORTNG, encontre a função afim que foi utilizada na cifragem. Determine a
função inversa.

10

Você também pode gostar