Você está na página 1de 29

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

Adriele Giareta Biase

Universidade Federal de Uberlndia - Faculdade de Matemtica


Graduanda em Matemtica - PROMAT
adrielegbiase@ yahoo. com. br

Edson Agustini

Universidade Federal de Uberlndia - Faculdade de Matemtica


Professor Associado I
agustini@ ufu. br

Resumo: Nesse trabalho apresentamos um estudo de dois dos sistemas criptogrficos mais comuns em sistemas
de comunicaes: os sistemas ElGamal e Rabin, derivados do sistema criptogrfico RSA. Tambm apresentamos
algumas tcnicas de ciframento, como Criframento de Vigenre, Substituio de Hill, Sistema Merkle-Hellman
(MH), Sistema de Rotores e Data Encryption Standard (DES). Para o desenvolvimento desses sistemas criptogrficos, introduzimos alguns preliminares de Teoria dos Nmeros, mais precisamente, algoritmos envolvendo
nmeros primos e congruncias. Procuramos trabalhar com vrios exemplos ilustrativos de cada tcnica apresentada, com o objetivo de tornar o texto mais compreensivo. Por fim, algumas concluses so apresentadas.

1 Introduo
Este trabalho uma extenso do texto Criptografia, Assinaturas Digitais e Senhas Segmentadas,
(1), no qual foi destacada a necessidade moderna de se proteger informaes, por meio de criptografia,
de modo que algum indesejvel no tenha acesso ao seu contedo.
O mtodo mais conhecido de criptografia o chamado RSA (Rivest, Shamir, Adleman) (7) e seus
derivados, como o ElGamal e o Rabin (6), aos quais daremos nfase nesse trabalho. Alm desses, h
o mtodo D.E.S. - Data Encryption Standard, (10) e (5), tambm abordado nesse trabalho.
O texto est dividido em trs partes do seguinte modo:
- Preliminares: so alguns resultados de Teoria dos Nmeros, em complemento aos resultados apresentados em (1), que so interessantes para o desenvolvimento das sees subseqentes.
- Tcnicas de Ciframento: onde apresentamos algumas das principais tcnicas de ciframento, como a
Substituio de Hill, Ciframento de Vigenre, Sistema de Rotores e o Mtodo MH.
- Criptografias: (duas sees) onde apresentamos a Criptografia ElGamal, Criptografia Rabin e a
Criptografia D.E.S.

2 Preliminares
Os teoremas e as proposies apresentados nessa seo so bsicos e suas demonstraes podem
ser encontradas em livros introdutrios de Teoria dos Nmeros como, por exemplo, (2) e (4).

36

2.1

FAMAT em Revista

O Pequeno Teorema de Fermat

Um resultado bastante til durante os procedimentos de criptografia e deciframento de mensagens


o teorema enuciado abaixo.
Pequeno Teorema de Fermat. Se p > 1 primo e a um inteiro positivo no divisvel por p,
ento:
ap1 1(mod p).
Demonstrao.
Seja a seqncia de nmeros inteiros positivos entre 1 at p 1:
1, 2, 3, 4, 5, ..., p 1.
Multiplicando-se cada nmero dessa seqncia por a (mod p), obtem-se R = {x1 , ..., xp1 } um conjunto
de resduos mdulo p. Como p no divide a, temos xi 6= 0; i = 1, ..., p = 1. Alm disso, x1 , x2 , ..., xp1
so todos distintos. De fato, suponhamos que xi ia (mod p) e xj ja (mod p) so tais que xi = xj
e i 6= j. Ento, ia ja (mod p) , ou seja, i j (mod p) . Como 1 i, j p 1, teremos i = j, uma
contradio.
Portanto, o conjunto R formado pelo conjunto de inteiros {1, 2, 3, ...p 1} em alguma ordem. Multiplicando todas essas congrncias encontramos:
1a.2a.3a... (p 1) a [1.2.3... (p 1)] (mod p) ap1 (p 1)! (p 1)! (mod p) .
Como (p 1)! relativamente primo com p,
ap1 1 (mod p) ,
como queramos.

Observao.
A congruncia ap a (mod p) vlida quando a divisvel pelo primo p.
De fato, se mdc (a, p) 6= 1 e, como p primo, ento a = bp para algum inteiro positivo b. Logo,

ap a = bp pp bp = bp pp1 b p = kp,
ou seja, p divide ap a, que equivalente a ap a 0 (mod p) , que significa
ap a (mod p) .

Exemplo 1: Tomando a = 13 e p = 17 temos:


132 = 169 16 (mod 17)
134 = 132 .132 16.16 256 1 (mod 17)

138 = 134 .134 1.1 1 (mod 17)


1316 = 138 .138 1.1 1 (mod 17) .

Tomando p = 3 e a = 6 temos:
ap = 63 = 216 6 (mod 3) a(mod p).
Preliminares

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

2.2

37

O Teorema de Euler

Outro resultado interessante para ciframento e deciframento em criptografia o Teorema de Euler.


A Funo de Euler
Para que possamos estudar o Teorema de Euler preciso recorrer a alguns pr-requisitos importantes
na Teoria dos Nmeros, como a Funo de Euler, denotada por (n) , n N, e definida como o
nmero de inteiros positivos menores do que n e que so relativamente primos com n. Por conveno,
(1) = 1, pois (1) no tem significado, mas definido para que tenha valor 1.
Exemplo 2: Seja n = 25. Temos (25) = 20, pois existem vinte nmeros inteiros positivos menores
do que 25 relativamente primos com 25. So eles: 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19,
21, 22, 23 e 24.
Observemos que para todo nmero primo p, temos (p) = p 1.
Teorema. Seja dois nmeros primos p e q, com p 6= q. Ento, para n = pq, temos
(n) = (pq) = (p)(q) = (p 1) (q 1) .
Demonstrao.
Para mostrar que (n) = (p)(q) consideremos todos os nmeros inteiros positivos menores que n,
que o conjunto {1, 2, 3, ..., (pq 1)} . Os inteiros desse conjunto que so relativamente primos com n
so dados pelos conjuntos:
{p, 2p, 3p, ..., (q 1) p} e {q, 2q, 3q, ..., (p 1) q} .
Assim,
(n) = (pq 1) [(q 1) + (p 1)]
= pq 1 q + 1 p + 1
= pq (q + p) + 1
= (p 1) (q 1)
= (p)(q),
como queramos.

Teorema de Euler. Se mdc(a, n) = 1, ento a(n) 1 (mod n) .


Demonstrao.
Considere o conjunto dos nmeros inteiros positivos menores do que n que so relativamente primos
com n, que denotamos por


X = x1 , x2 , x3 , ..., x(n) .
Deste modo, mdc(xi , n) = 1, para i = 1, ..., (n) .Mutiplicando cada elemento por a (mod n) , temos o
conjunto


P = ax1 (mod n) , ax2 (mod n) , ax3 (mod n) , ..., ax(n) (mod n) .
Todos os elementos de P so inteiros distintos, relativamente primos com n e menores do que n. De
fato, axi (mod n) o resto da diviso de axi por n, portanto, axi (mod n) menor do que n. Alm disso,
mdc (xi , n) = 1 significa que xi e n no possuem fatores (6= 1) em comum. Do mesmo modo, como
mdc (a, n) = 1, ento a e n no possuem fatores (6= 1) em comum. Deste modo, axi e n no possuem
Faculdade de Matemtica

Preliminares

38

FAMAT em Revista

fatores em comum. Quanto ao fato de serem distintos, temos que se axi (mod n) = axj (mod n) com
i 6= j, ento axi axj (mod n) , o que implica
xi xj (mod n) ,
o que no possvel pois
xi 6= xj e xi , xj < n.
Desta forma,


x1 , ..., x(n)

e



ax1 (mod n) , ax2 (mod n) , ax3 (mod n) , ..., ax(n) (mod n)

representam o conjunto de todos os inteiros menores do que n e que so relativamente primos com n.
Assim, temos a igualdade entre esses conjuntos e, portanto,
(n)
Q

xi =

i=1

i=1
(n)
Q

(n)
Q

axi

(n)
Q

a(n)

!
xi

(mod n)

xi

i=1

i=1
(n)
Q

(axi (mod n))


!

(n)
Q

!
xi

(mod n)

i=1

i=1

a(n) 1 (mod n) ,
como queramos.

Observao.
A congruncia
a(n)+1 a (mod n)
vlida independente de a ser relativamente primo com n. De fato, decompondo a em fatores primos
temos a = p1 p2 ...pk . Logo, pelo Teorema de Euler:

(n)
(n)+1

p1
1 (mod n) p1
p1 (mod n)

p(n) 1 (mod n) p(n)+1 p (mod n)


2
2
2

.
..

(n)
(n)+1
pk 1 (mod n) pk
pk (mod n)
(n)+1 (n)+1
(n)+1
p2
...pk
(n)+1

p1

p1 p2 ...pk (mod n)

a (mod n) .

Exemplo 3: Sejam a = 5 e n = 12. Temos (12) = 4 e, portanto,


a(n) = 54 = 625 1(mod 12) = 1 (mod n) .
Sejam a = 4 e n = 15. Temos (15) = 8 e, portanto,
a(n) = 48 1(mod 15) = 1 (mod n) .
Preliminares

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

2.3

39

O Algoritmo de Miller-Rabin

No existe um mtodo eficiente para determinar se um nmero primo ou composto. Dentre os


algoritmos que auxiliam nessa questo, existe o chamado Algoritmo de Miller-Rabin. Esse algoritmo
usado para testar se um nmero grande primo.
Para apresentar o algoritmo necessrio lembrar que todo nmero mpar maior do que ou igual a 3
pode ser escrito na forma
n = 2k q + 1,
com k > 0 e q mpar, sendo, portanto, (n 1) par. Alm disso, mais duas proposies sobre nmeros
primos so necessrias.
Proposio 1. Se p primo e a um inteiro positivo, ento a2 1 (mod p) se, e somente se,
a 1 (mod p) ou a 1 (mod p) .
Demonstrao.
() Como 1 a2 (mod p), ento

p | a2 1 p | (a 1) (a + 1)
p | (a 1) ou p | (a + 1) a 1 (mod p) ou a 1 (mod p) .
() Se 1 a (mod p) , ento
1.1 a.a (mod p) 1 a2 (mod p) .
Se 1 a (mod p) , ento
(1) (1) a.a (mod p) 1 a2 (mod p) ,
como queramos.

Proposio 2. Sejam p > 2 um nmero primo e a um nmero inteiro tal que 1 < a < p 1. Ento,
escrevendo p 1 = 2k q com q mpar ocorre uma das duas possibilidades:
(i) aq 1 (mod p) ; ou
m
(ii) Existe algum inteiro j, 0 m < k, tal que a2 q 1 (mod p) .
Demonstrao.
Suponhamos que o item (i) no ocorra.
Pelo Pequeno Teorema de Fermat,

ap1 1 (mod p) .

Mas,

p 1 = 2k q.

Logo,
ap1 (mod p) = a2

(mod p) 1.

Assim, analisando a seqncia de nmeros


aq (mod p) , a2q (mod p) , a4q (mod p) , ..., a2

k1

(mod p) , a2

(mod p)

(1)

pode-se concluir que o ltimo nmero da seqncia (1) tem o valor 1. Como cada nmero na seqncia
(1) o quadrado do nmero anterior, e o item (i) no ocorre, ento o primeiro nmero da lista no 1.
Faculdade de Matemtica

Preliminares

40

FAMAT em Revista
m

Seja o menor a2 q , com 0 m < k, tal que a2


m
Pela Proposio 1, a2 q (mod p) 1.


q 2

(mod p) 1, (na pior das hipteses, m = k 1).




A demonstrao da Proposio 2 ainda fornece uma informao preciosa no caso do item (ii) ocorrer:
j
como a2 q (mod p) < p; j = 0, ..., k; e p 1 o nico inteiro positivo menor do que p tal que (p 1)
j
1 (mod p) , ento p 1 = a2 q (mod p) , ou seja, na seqncia (1) existe um elemento igual a p 1.
Concluso: As consideraes feitas acima leva seguinte 
situao acerca da Proposio
2: se n

q 2q
2(k1) q 2k q
for primo, ento ou o primeiro elemento da lista de resduos a , a , ..., a
,a
(mod n) ; com
n 1 = 2k q; igual a 1, ou algum elemento da lista igual a n 1. Caso a tese no ocorra, no ocorre
tambm a hiptese, ou seja, n composto (contrapositiva da Proposio 2). Esse , essencialmente, o
Algoritmo de Miller-Rabin que descrevemos abaixo.
Convm ressaltar que a tese pode ocorrer sem que a hiptese da Proposio 2 ocorra, pois um nmero
pode ser composto e cumprir a tese, como no exemplo abaixo.
Exemplo 4: Para n = 2047 temos
n 1 = 21 . (1023) ,
ou seja, k = 1 e q = 1023. Tomando a = 2 temos
21023 (mod 2047) 1,
ou seja, aq (mod n) 1. Assim, o nmero 2047 cumpre a tese da Proposio 2, mas um nmero
composto, pois 2047 = (23) . (84) .
Algoritmo de Miller-Rabin
Seja n > 2 um inteiro positivo mpar.
1a Etapa ) Escolha inteiros k e q, com q mpar, de modo que (n 1) = 2k q;
2a Etapa) Escolha um inteiro aleatrio a, de modo que pertena ao intervalo
1 < a < n 1;
3a Etapa) Se aq (mod n) 1, ento escreva INCONCLUSIVO (isto , no se pode afirmar se n primo
ou composto);
4a Etapa) Para j = 0 at k 1 faa:
j
Se a2 q (mod n) n 1, ento escreva INCONCLUSIVO. Caso contrrio, escreva COMPOSTO.

3 Criptografias
Conforme introduzido em (1), para criptografar devemos converter uma mensagem em uma seqncia de nmeros. Para efeito de exemplificao, tomemos a seguinte tabela de converso:
a
10
s
28

b
11
t
29

c
12
u
30

d
13
v
31

e
14
w
32

f
15
x
33

g
16
y
34

h
17
z
35

i
18

_
36

j
19
0
37

k
20
1
38

l
21
2
39

m
22
3
40

n
23
4
41

o
24
5
42

p
25
6
43

q
26
7
44

r
27
8
45

9
46

Tabela 1

O espao entre palavras ser substitudo pelo no . 36. As converses do texto a ser cifrado ser feito
sem considerar acentos e letras maiscula. A vantagem de se utilizar 2 dgitos para representar uma
letra reside no fato de que tal procedimento evita a ocorrncia de ambigidades. Por exemplo, se a
fosse convertido em 1 e b em 2, teramos que ab seria 12, mas l tambm seria 12. Logo, no poderamos
concluir se 12 seria ab ou l.
Preliminares

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

3.1

41

A Criptografia Rabin

semelhana da criptografia RSA, temos que determinar duas chaves para a criptografia Rabin:
uma pblica e outra privada.
Gerao das Chaves na Criptografia Rabin
Na gerao das chaves pblica e privada da Criptografia Rabin, temos que:
Escolher dois nmeros primos p e q distintos e grandes de maneira que p seja prximo de q e
p q 3 (mod 4) .
Calcular n = pq.
A chave pblica (nmero que deve ser divulgado para o emissor A) n e a chave privada (nmeros
que so mantidos em sigilo pelo receptor B) (p, q).
Etapa de Ciframento
Nesta etapa o emissor A dever:
Obter a chave pblica n do receptor B.
Converter as letras, nmeros e smbolos da mensagem em nmeros m entre 0 e n 1. (exemplo:
supondo n > 46, a Tabela 1 pode ser utilizada)
Para cada nmero m, obtido nas converses acima, calcular c m2 (mod n) .
Enviar a mensagem cifrada composta pelos nmeros c dos clculos acima para o receptor B.
Etapa de Deciframento
Uma vez que o receptor B recebe a mensagem cifrada composta pelos nmeros c, ento ele dever:
Encontrar as quatro razes quadradas mj com j = 1, 2, 3, 4 de c mdulo n.
O nmero m, na mensagem original, um dos mj .
O receptor B deve determinar qual das quatro possibilidades para os mj a mensagem enviada. Se a
mensagem um texto literrio, ento a tarefa fcil, pois apenas um dos mj far sentido. Entretanto,
se o texto no for composto por palavras de um idioma, como por exemplo, uma seqncia aleatria de
nmeros e letras, ento pode no ser to fcil determinar o mj correto. Uma maneira para superar este
problema acrescentar redundncias binrias na mensagem original convertida para a base binria.
Para isto, basta repetir uma quantidade fixa de dgitos no final da mensagem. Assim, o mj correto
ir reproduzir essas redundncias, enquanto que altamente improvvel que uma das trs outras
razes quadradas mj venha a reproduzir essas redundncias. Portanto, o receptor B pode escolher
corretamente a mensagem enviada.
A demonstrao da funcionalidade da Criptografia Rabin pode ser encontrada em (6).
Antes de apresentarmos um exemplo, enunciaremos a proposio que fornece as quatro razes quadradas de a mdulo n = pq, para certos p e q, utilizadas na etapa de deciframento.
Proposio 3. Seja a N e
a z 2 (mod pq)
Faculdade de Matemtica

Criptografias

42

FAMAT em Revista

sendo p e q primos e
p q 3 (mod 4) ,
ento existe somente quatro razes quadradas de a mdulo pq e elas so dadas a seguir:
z = xpa

q+1
4

+ yq

p+1
4

z = xpa

q+1
4

yq

p+1
4

sendo que x, y Z, podem ser obtidos pelo Algoritmo de Euclides Estendido de modo que
xp + yq = 1.
Exemplo 5: Seja F AM AT _2008 a mensagem a ser cifrada, tomemos p = 179, q = 43 e n = pq =
7697. Ento, n a chave pblica e (179, 43) a chave privada. Vamos criptografar a letra M da
F AM AT . Se utilizarmos a Tabela 1, M corresponde ao m = 22.
Representando 22 na base binria:
0.20 + 1.21 + 1.22 + 0.23 + 1.24 ,
ento m = 10110. Vamos introduzir redundncias repetindo os quatro ltimos digitos, ou seja, temos
m0 = 101100110,
que equivale ao 358 em decimal. Ento:
2

c (m0 ) (mod 7697) c 128164 (mod 7697) c = 5012


e c enviado ao receptor.
Para decifrar, precisamos de encontrar as quatros razes quadradas de c = 5012 mdulo 7697. Utilizando a Proposio 3, pelo Algoritmo de Euclides Estendido encontramos x e y de modo que:
xp + yq = 1,
que, neste caso corresponde a:
(6) (179) + (25) (43) = 1,
ou seja, x = 6 e y = 25.
Como c = 5012, temos

m1 1074.501211 + 1075.501245 (mod 7697)

m2 1074.501211 + 1075.501245 (mod 7697)

m3 1074.501211 1075.501245 (mod 7697)

m4 1074.501211 1075.501245 (mod 7697)
Usando o Mtodo dos Quadrados Repetidos (ver (1)), segue que:
358 501211 (mod 7697)
537 501245 (mod 7697) .
Logo,
m1 (1074.358 + 1075.537) 358 (mod 7697)
m2 358 7339 (mod 7339)
m3 (1074.358 1075.537) 7339 (mod 7697)
m4 7339 358 (mod 7697)
Criptografias

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

43

ou seja,
m1 = m4 = 358 e m2 = m3 = 7339.
Suas representaes binrias so:
e

m2 = m3 = 1110010101011

m1 = m4 = 101100110.

Logo, duas razes apresentaram redundncias: m1 e m4 . Mas m1 = m4 e, tirando as redundncias


dessas razes e passando para a base decimal, voltamos para a mensagem original, ou seja, o nmero
22 que corresponde letra M.

3.2

A Criptografia ElGamal

A Gerao de Chaves na Criptografia ElGamal


Na gerao das chaves da Criptografia ElGamal, temos que:
Escolher um nmero primo grande p e um gerador do grupo multiplicativo Zp .
Selecionar ao acaso um nmero natural a < p 1 e calcular a (mod p) .
A chave pblica (p, , a ) e a chave privada a.

Etapa de Ciframento
Nesta etapa o emissor A dever:
Obter a chave pblica (p, , a ) de B.
Converter as letras, nmeros e smbolos da mensagem um nmeros m entre 0 e p 1. (exemplo:
supondo p > 46, a Tabela 1 pode ser utilizada)
Escolher ao acaso um nmero natural b, tal que b < p 1.
Para cada m obtido acima, calcular
b (mod p)

m (a ) (mod p)

Enviar o ciframento c = (, ) de m para B.

Etapa de Deciframento
Uma vez que o receptor B recebe a mensagem cifrada c, ento dever:
Usar a chave privada para calcular
p1a (mod p) .
Decifrar m calculando a (mod p) .
Temos
a ab mab m (mod p)
devido ao Teorema de Fermat.
Faculdade de Matemtica

Criptografias

44

FAMAT em Revista

A demonstrao da funcionalidade da Criptografia ElGamal pode ser encontrada em (6).


Exemplo 6: Seja a frase F AM AT _2008. Tomemos p = 1999 e escolhamos um gerador = 7 de
Z1999 . O destinatrio B escolhe a chave privada a = 117.
Usando a Criptografia ElGamal vamos fazer o ciframento e deciframento da letra M da mensagem,
que corresponde a m = 22 na Tabela 1. Suponha que o emissor A escolha b = 503.
Para cifrar o emissor A, deve calcular
a (mod p) = 7117 (mod 1999) .
Usando o Algoritmo dos Quadrados Repetidos, encontramos a = 54.
Depois calculamos
b (mod p) = 7503 (mod 1999) .
Usando o Algoritmo dos Quadrados Repetidos, encontramos = 300.
Em seguida calculamos
b
503
m (a ) (mod p) = 22 (54) (mod 1999) .
Usando tambm o Algoritmo dos Quadrados Repetidos, encontramos = 77.
Logo, A envia (, ) = (300, 77) para B.
Para decifrar, B deve:
Calcular
p1a = 30019991117 (mod 1999) = 3001881 (mod 1999) .
Usando o Algoritmo dos Quadrados Repetidos, encontramos p1a = 857.
Finalmente, B calcula m, de modo que:
m = a 857 77 (mod 1999) .
Ao resolver a congruncia acima, encontramos m = 22, o que corresponde letra M da mensagem
inicial enviada.

4 Algumas Tcnicas de Ciframento


Alguns algoritmos de ciframento fazem uso de trs tcnicas: transposies, substituies e ciframentos compostos.
Transposies
Essa tcnica de ciframento consiste simplesmente em uma mudana nas letras da mensagem a ser
enviada, de acordo com um critrio fixo estabelecido.
Exemplo 7: Suponha que a mensagem seja dividida
desses blocos, as letras sejam misturadas de acordo com
Suponha que esta permutao seja dada por:

1 2 3 4
=
3 1 4 2
Temos ento:
Texto: F AM AT _2008.
Texto dividido em blocos de 5 letras: F AM AT
Texto cifrado: M F AAT
0_028.
Criptografias

em blocos de 5 letras e que, em cada um


uma permutao, previamente estabelecida.
5
5


.

_2008.

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

45

Esse tipo de tcnica de ciframento no aconselhavl, pois a frequncia das letras apresentadas no
texto cifrado igual freqncia das letras do texto original. Quanto menor o bloco mais fcil de
descobrir o ordenamento quebrando esse sistema de ciframento.
Substituies
Nessa tcnica de ciframento ocorre apenas a substituio dos smbolos do texto original por outros (ou
por nmeros, de acordo com um algoritmo ou uma tabela como, por exemplo, a Tabela 1) mantendo
a posio dos smbolos do texto original.
A substituio pode ser monoafabtica ou polialfabtica. No primeiro caso, smbolos iguais da mensagem original so sempre substitudos por um mesmo smbolo. Por exemplo, toda letra A sempre
substituda pela letra T. No segundo caso, smbolos iguais da mensagem original podem ser substitudos por smbolos diferentes. Por exemplo, uma letra A da mensagem substituda pela letra Z e uma
outra letra A da mesma mensagem substituda pela letra J.
Substituies monoalfabticas no so tcnicas muito eficientes, pois textos literrios cifrados com
essa tcnica podem ser facilmente decifrados. Isso se deve ao fato de que a freqencia mdia com que
cada letra usada em uma lngua mais ou menos constante. Por exemplo, na lngua portuguesa, as
vogais so mais usadas que as consoantes sendo que a vogal a aparece com mais freqncia. Temos
ainda que, quando se tem monosslabo no texto, a probalilidade de ser vogal maior. Por fim, as
consoantes s e m aparecem com mais frenqncia.
Exemplo 8: (i) Substituindo smbolos por nmeros.
Tomemos o texto F AM AT _2008. Utilizando a Tabela 1, temos o texto cifrado
15 10 22 10 29 36 39 37 37 45.
(ii) O Ciframento de Csar: Substituindo smbolo por smbolo.
O Ciframento de Csar de ordem k uma substituio monoalfabtica que consiste em trocar um
smbolo da mensagem original pelo smbolo que est k posies depois do smbolo que se deseja
trocar.
Por exemplo, se k = 2, ento F AM AT _2008 substituda por HCOCV 1422A.
A ordem com que as letras so posicionadas a usual, ou seja:
ABCDEF GHIJKLM N OP QRST U V W XY Z_0123456789ABCDE...
Ciframentos Compostos
O ciframento composto monoafabtico e obtido por uma mistura das tcnicas de transposio e
substituio, isto depende da letra original e tambm da sua posio no texto.
Mesmo que o ciframento composto seja formado de substituies e transposies, este sistema ainda
no seguro. Para um texto grande a dificuldade de quebrar o sistema maior, mas se o texto for
pequeno, essa tcnica de ciframento torna-se fcil de ser decifrada.
Exemplo 9: Vamos supor que o texto original seja dividido em blocos de comprimento 7, como na
tcnica de transposio, sendo a permutao dada por


1 2 3 4 5 6 7
=
.
7 3 5 2 1 6 4
Caso seja necessrio, completamos o ltimo bloco com espaos em branco, representados pelo smbolo
_.
Alm da permutao , vamos usar tambm a tcnica de substituio, de acordo com a Tabela 1.
Temos ento:
Faculdade de Matemtica

Algumas Tcnicas de Ciframento

46

FAMAT em Revista

Texto: F AM AT _2008.
Texto dividido em blocos de 7 letras: F AM AT _2
Texto permutado:
2M T AF _A

008_ _ _ _.
_8_00__.

Texto cifrado:
39222910153610

4.1

36453637373636.

Criptografia por Substituio de Hill

A Substituio de Hill polialfabtica e assimtrica, ou seja, o algoritmo de ciframento diferente


do algoritmo de deciframento. Neste sistema criptogrfico escolhemos um valor n, por exemplo n = 3.
Dividimos o texto em blocos de 3 letras, completando o ltimo bloco, caso seja necessrio, com espaos
em branco, representados pelo smbolo _. Ilustraremos esse mtodo por meio de um exemplo.
Exemplo 10: Texto: F AM AT _2008.
Etapa de ciframento:
Vamos dividir o texto em blocos de 3 letras: F AM
AT _
200
8 _ _.
A cada letra dos blocos devemos associar os nmeros correspondentes entre 10 e 46 de acordo com
uma tabela de substituio como, por exemplo, a Tabela 1. Assim, obtemos o equivalente numrico
ao texto:
15 10 22
10 29 36
39 37 37
45 36 36.
Escolhemos uma matriz Tnn , cujos coeficientes sejam todos inteiros e de modo que
mdc(det T, k) = 1,
no qual k a quantidade de substituies possveis de acordo com a Tabela 1 que, neste caso,
k = 37.
Por exemplo, tomemos a matriz

5 11 0
T = 9 1 3 .
17 4 2
Assim,
mdc(det T, k) = mdc(313, 37) = 1.
Vamos considerar cada um dos n blocos do texto como sendo um vetor ti ; i = 1, ..., n; em Z337 e cifrar
o vetor ti pelo resultado do produto matricial ci = T.ti (mod 37) . Continuando o exemplo, temos:
Para t1 :

5 11 0
15
0
c1 = 9 1 3 10 (mod 37) = 26 .
17 4 2
22
6
Para t2 :

5 11 0
10
36
c2 = 9 1 3 29 (mod 37) = 5 .
17 4 2
36
25
Para t3 :

5 11 0
39
10
c3 = 9 1 3 37 (mod 37) = 18 .
17 4 2
37
34
Algumas Tcnicas de Ciframento

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

Para t4 :

47

5 11 0
45
29
c4 = 9 1 3 36 (mod 37) = 31 .
17 4 2
36
19

O texto cifrado constitudo pelos blocos c1 , c2 , c3 e c4 . No exemplo:


0 26 6 36 5 25 10 18 34 29 31 19.
Etapa de deciframento
Para decifrar o texto temos que calcular o produto matricial T 1 .ci (mod 37) .
O clculo da matriz inversa T 1 (mod 37) pode ser feito de acordo com o seguinte roteiro:
(1) Achar a inversa de T (sem congruncias);

10 22 33
1
33
10 15 .
No exemplo, temos que a inversa de T :
313
19 167 94
a
(2) Na matriz inversa encontrada acima, temos na primeira entrada a11 = ;
d
Precisamos de
a
b (mod 37) bd a (mod 37) bd a 0 (mod 37) bd a = 37k,
d
sendo k Z.
10
No exemplo temos a11 =
. Assim, b.313 + 10 = 37k, que ter soluo quando b = 19, que, neste
313
caso, corresponde a k = 161.
Fazendo o procedimento anlogo para cada entrada da matriz, teremos que T 1 (mod 37) :

19 27 15
15 18 10 .
12 12 1
e, portanto,

5 11 0
19 27 15
1 0 0
9 1 3 . 15 18 10 (mod 37) = 0 1 0 .
17 4 2
12 12 1
0 0 1

Deste modo, o deciframento feito do seguinte modo:


t1 = T 1 .c1 (mod 37)

19 27 15
0
792
15
t1 = 15 18 10 26 (mod 37) = 528 (mod 37) = 10 .
12 12 1
6
318
22
De modo anlogo, encontramos t2 , t3 e t4 que correspondem ao texto original.

4.2

Ciframento de Vigenre

O Ciframento de Vigenre polialfabtico e assimtrico, ou seja, o algoritmo de ciframento diferente do algoritmo de deciframento. Nesse ciframento, escolhemos uma chave que um vetor
k = (k0 , k1 , ..., kn1 ) em Zn37 , isto , um vetor com n coordenadas inteiras variando de 0 a 37. As
letras do texto so numeradas : t0 , t1 , t2 , ...tl .
Para cifrar o texto, a primeira letra deslocada de k0 posies e, assim por diante. Ou seja, o
Ciframento de Vigenre feito substituindo cada letra do texto t0 t1 t2 , ...tl , por uma letra ci , onde
ci = 10 + (ti + ki(mod n) ) (mod S) ,
Faculdade de Matemtica

(2)
Algumas Tcnicas de Ciframento

48

FAMAT em Revista

sendo S o nmero de smbolos correspondente a uma tabela de codificao. Nesse caso tomando a
Tabela 1, como referncia, temos S = 37.
Exemplo 11: Texto: F AM AT _2008.
Substituindo cada letra do texto por uma sequncia de nmeros, de acordo com a Tabela 1 temos:
F
t0
15

A
t1
10

M
t2
22

A
t3
10

T
t4
29

_
t5
36

2
t6
39

0
t7
37

0
t8
37

8
t9 .
45

Escolhendo uma chave para o ciframento, por exemplo: k = (10, 15, 20, 7, 18).
Comeemos cifrando t0 F.
Como t0 = 15, aplicando (2), temos:
c0 = 10 + (t0 + k0(mod 5) ) (mod 37)
c0 = 10 + (15 + 10) (mod 37)
c0 = 10 + 25 (mod 37)
c0 = 35.
Logo, F Z, de acordo com a Tabela 1.
Fazendo analogamente para o restante do texto, ento o ciframento ficar:
F AM AT _2008 ZZF RKJRU H_
Note que nessa criptografia, podemos ter duas letras diferentes do texto levando em duas letras iguais
no ciframento. No caso acima, o F e o primeiro A do texto so ambos cifrados como Z. Do mesmo
modo duas letras iguais do texto podem ser levadas em letras diferentes no ciframento, o caso do A,
que se repete duas vezes no texto, e quando cifrados correspondem a letras diferentes. O primeiro A
do texto corresponde letra Z e o segundo letra R.
O Ciframento de Vigenre no muito eficiente, pois para que o sistema seja seguro, preciso que a
mensagem seja grande e a chave aleatria que a cifra tambm. Isto significa que nos dias atuais os
computadores teriam que trocar milhes de dgitos de chaves por dia, o que requer um gasto muito
grande de tempo.

4.3

Sistemas de Rotores

Os sistemas de rotores so equipamentos eltricos compostos por discos (rotores) que tem por
finalidade realizar uma substituio mais sofisticada. Essa criptografia polialfabtica e simtrica, ou
seja, o algoritmo de ciframento e de deciframento so os mesmos. Cada rotor construdo de modo que
corresponda, matematicamente, a uma substituio monoalfabtica. Nesses rotores so distribudas,
sob a forma de furos, todas as letras, algarismos e smbolos de um determinado alfabeto, de modo
que esses furos estejam distribuidos como vrtices de polgonos regulares inscritos nos rotores. Esses
rotores podem ser girados de k posies, ou seja, girados de um ngulo de k 2
n radianos, sendo n a
quantidade total de smbolos do alfabeto.

Figura 1: Trs rotores. (http://pt.wikipedia.org/wiki/Mquina_Enigma)


Algumas Tcnicas de Ciframento

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

49

Figura 2: Interior da mquina Enigma, utilizada durante a II Guerra Mundial e que utiliza o Sistema de
Rotores. (http://users.telenet.be/d.rijmenants/pics/ EnigmaInside.jpg)

Para facilitar a construo do equipamento, a mensagem a ser cifrada dividida em blocos de 1000
smbolos. Em cada bloco, denotamos por ti o smbolo que est na i-sima posio, i = 0, ..., 999. Alm
disso, indicamos por i1 , i2 e i3 as unidades, dezenas e centenas de i. Por exemplo, t23 corresponde a
i = 23, i1 = 3, i2 = 2 e i3 = 0.
Quando o sistema girado de k posies em um determinado sentido (horrio ou anti-horrio), temos
uma substituio monoalfabtica que pode ser descrita como:
S 0 = k + S(ti + k),
sendo S uma substituio monoalfabtica e ti um smbolo a ser cifrado, ou ainda
S 00 = k + S(ti k)
se o giro for em sentido contrrio.
Deste modo, todos os clculos so feitos com mod n.
Para exemplificar, suponhamos que temos trs rotores nos quais:
(i) S1 , S2 e S3 sejam as substituies monoalfabticas com os trs rotores em suas posies iniciais;
(ii) t = t0 t1 t2 tr1 o texto a ser cifrado.
(iii) c = c0 c1 c2 cr1 o texto cifrado;
Consideremos ainda uma substituio monoalfabtica inicial que chamaremos de IP e uma substituio
monoalfabtica R de ordem 2, ou seja, uma transposio (R = R1 ). Assim, o ciframento pode ser
feito pela seguinte operao:
ci = IP 1 Ci1 S11 Ci1 i2 S21 Ci2 i3 S31 Ci3 RCi3 S3 Ci3 i2 S2 Ci2 i1 S1 Ci1 IP (ti ),

(3)

sendo Cm uma Substituio de Csar de ordem m.


A chave do segredo do sistema de rotores compem-se:
Pela substituio IP ;
Pelas substituies S1 , S2 , S3 e R;
Pelas posies iniciais dos rotores;
Observao: Pela construo, R uma involuo, ou seja, R2 a identidade. Deste modo, no
esquema acima, cifrar e decifrar uma s operao.
Exemplo 12: Sejam as substituies monoalfabticas S1 , S2 e S3 , descritas na Tabela 2.
Suponhamos que a palavra F AM AT _2008 se encontre na posio
t352 , t353 , t354 , t355 , t356 , t357 , t358 , t359 , t360 , t361
e queremos criptograf-la usando os rotores. Assim, para cifrar a primeira letra teremos os seguintes
passos:
Faculdade de Matemtica

Algumas Tcnicas de Ciframento

50

FAMAT em Revista

F = t352 , ento i1 = 2, i2 = 5 e i3 = 3. Aplicando a funo (3) , teremos os respectivos passos para


cifrar:

1) IP (t352 ) = IP (F ) = H.

2) Ci1 (H) = C2 (H) = J.

3) S1 (J) = B.

4) Ci2 i1 (B) = C52 (B) = C3 (B) = E.

5) S2 (E) = K.

6) Ci3 i2 (K) = C35 (K) = C2 (K) = I.

7) S3 (I) = C.

8)Ci3 (C) = C3 (C) = 9.

9) R (9) = K.

10) Ci3 (K) = C3 (K) = N.


11) S31 (N ) = J.

12) Ci2 i3 (J) = C53 (J) = C2 (J) = L.


13) S21 (L) = N.

14) Ci1 i2 (N ) = C25 (N ) = C3 (N ) = K.


15) S11 (K) = A.

16) Ci1 = C2 (A) = 8.


1

17) (IP )

(8) = J.

Algumas Tcnicas de Ciframento

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

S
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36
37 0
38 1
39 2
40 3
41 4
42 5
43 6
44 7
45 8
46 9

S1 S2
K Q
F W
L F
Z

1
K
J
V
I
3
S
J
0
R
B U
W C
P
Z
7
2
H
L
X
5
T
D
C
S
4
8
M G
G N
8
E

4
A T
N
1
2
H
V
7
O M
3
I
R
9
6
Y
D X
Y
6
Q A
5
0
E O
9
B
U
P
Tabela

S3
P
0
Y
6
A
M
9
K
C
N
T
2
Z
8
S
H
X
B
I
O
1
D
F
U
3
5
Q
E
V
4
G
W
J

R
7
L
2

IP
S
K
2
G
0
H
V
Q
W
8
A
5
F
R
P
Z
I
C
4
J
9
U
E
6
L
X
T
B
Y
N
O
M

7
D
1
3

51

R
2
N
Z
6
0
T
1
8
R
S
9
V
W
B
4
5

I
J
F
7
L
M
X
3
C
Q
E
G
A
Y
O
P
D
U
H
K

Logo, o ciframento da letra F o J. Para decifrar basta aplicar a mesma funo (3) . Vejamos o
exemplo:
1) IP (c352 ) = IP (J) = 8.
2) Ci1 (8) = A.
3) S1 (A) = K.
4) Ci2 i1 (K) = C52 (K) = C3 (K) = N.
5) S2 (N ) = L.
6) Ci3 i2 (L) = C35 (L) = C2 (L) = J.
7) S3 (J) = N.
8)Ci3 (N ) = C3 (N ) = K.
9) R (K) = 9.
Faculdade de Matemtica

Algumas Tcnicas de Ciframento

52

FAMAT em Revista

10) Ci3 (9) = C3 (9) = C.


11) S31 (C) = I.
12) Ci2 i3 (I) = C53 (I) = C2 (I) = K.
13) S21 (K) = E.
14) Ci1 i2 (E) = C25 (E) = C3 (E) = B.
15) S11 (B) = J.
16) Ci1 = C2 (J) = H.
1
17) (IP ) (H) = F.
Logo ao aplicar a funo (3), acontece o deciframento voltando ao texto original, como era esperado.
De modo anlogo fazemos isto para o restante da mensagem a ser criptografada e obtemos os seguintes
resultados:
Cifrando o texto:
F AM AT _2008 JAICIX7ESY.
E deciframento o texto:
JAICIX7ESY F AM AT _2008.

4.4

O Mtodo MH (Merkle e Hellman)

Esse mtodo monoalfabtico e assimtrico pois o algoritmo de ciframento diferente do algoritmo


de deciframento.
A segurana do Mtodo MH (Merkle e Hellman) se baseia na dificuldade do chamado Problema da
Mochila.
O Problema da Mochila
Dado o vetor a = (a1 , a2 , ..., an ) de coordenadas naturais e b tambm natural, o problema da mochila
consiste em saber se existe X = (x1 , x2 , ..., xn ) onde cada xi 0 ou 1, tal que:
n
P

ai xi = b.

i=1

Exemplo 13: Sejam n = 6, b = 14 e a1 = 2, a2 = 3, a3 = 5, a4 = 7, a5 = 8 e a6 = 12.


Logo, a soluo deste problema ser dado por x1 = 1, x2 = 0, x3 = 1, x4 = 1, x5 = 0 e x6 = 0, pois
n
P

ai xi = b 2.1 + 3.0 + 5.1 + 7.1 + 8.0 + 12.0 = 14.

i=1

Definimos a chave pblica de cada destinatrio no Mtodo MH pelo vetor


P = (c1 , c2 , ..., cn )
de naturais, onde n 100.
Para cifrar uma mensagem e enviar ao destinatrio, o emissor deve consultar a chave pblica P =
(c1 , c2 , ..., cn ) do destinatrio, conveter cada smbolo da mensagem original em nmeros naturais m
menores do que 2n e escrev-lo na base binria, isto ,
m = [m1 m2 ...mn ]2 ,
sendo mi = 0 ou 1. Ento, calcula-se
P (m) =

n
P

mi ci .

i=1

Algumas Tcnicas de Ciframento

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

53

Assim, o trabalho do destinatrio em decifrar P (m) determinar a soluo do problema da mochila


sabendo-se
P = (c1 , c2 , ..., cn ) e P (m).
Para que o problema da mochila seja de fcil resoluo, a chave pblica no pode ser qualquer. Deste
modo, para decifrar a mensagem o destinatrio deve inicialmente, antes de divulgar a sua chave
pblica, criar uma seqncia de nmeros naturais
(4)

s = (s1 , s2 , ..., sn )
e tambm t e k tais que

r
P

si < sr+1 < t

i=1

para 1 r < n 1 e mdc(k, t) = 1.


Assim, a seqncia s = (s1 , s2 , ..., sn ) essencial para a soluo do problema da mochila.
O destinatrio mantm o vetor s e os valores de t e k secretos e publica o vetor c, dado por
ci = ksi (mod t) ,
com 1 i n. Alm disso, o emissor escolhe e mantm secreto o nmero l que deve satisfazer a
equao:
lk (mod t) = 1.
Algoritmo para a Resoluo do Problema da Mochila
Algoritmo da mochila
Entrada: (n, (s1 , s2 , ..., sn ) , d) , onde
s = (s1 , s2 , ..., sn )
a seqncia (4) e
d l.P (m) (mod t) .
Sada: m.
Etapa 1: Faa y = d.
Etapa 2: Para cada i = n, n1, n2, ...1, ou seja, para os valores de i sero atribudos uma seqncia
decrescente de n at 1, faa:
(1) Se y < si , ento, mi = 0.
(2) Se y si , ento faa y = y si e tome mi = 1.
Etapa 3:
(1) Se y = 0, ento retorne o vetor:
m = (m1 , m2 , ..., mn ) .
(2) Se y 6= 0, ento o problema da mochila no tem soluo.
Exemplo 14: Seja a mensagem F AM AT _2008. Associando a mensagem ao nmeros correspondentes
na Tabela 1, temos a sequncia de nmeros:
15 10 22 10 29 36 39 37 37 45
Passando para a base binria a sequncia de nmeros acima, temos:
15 = [001111]2
10 = [001010]2

22 = [010110]2
10 = [001010]2

29 = [011101]2
36 = [100100]2

39 = [100111]2
37 = [100101]2

37 = [100101]2
45 = [101101]2

Precisamos agora de determinar a chave pblica que ser o vetor P = (c1 , c2 , ..., cn ). Para o destintario
determinar a chave pblica, primeiro ele dever escolher uma seqncia s como em (4). Alm disso, k
n
P
e t, de modo que
si < t e mdc (k, t) = 1. Para o exemplo escolhemos a sequncia:
i=1

s = (5, 7, 14, 27, 55, 109)


Faculdade de Matemtica

Algumas Tcnicas de Ciframento

54

FAMAT em Revista

e k = 50 e t = 229, pois mdc (50, 229) = 1 e t > 5 + 7 + ... + 109 = 217.


Temos ento a expresso:
50l (mod 229) = 1 229x + 50l = 1.
Calculemos o valor de l a partir do Algoritmo Euclidiano Estendido.
Colocando os valores em uma tabela:
i
1
0
1
2
3
4
5
6
7

Restos
229
50
29
21
8
5
3
2
1

Quocientes

4
1
1
2
1
1
1

xi
1
0
1
1
2
5
7
12
19

yi
0
1
4
5
9
23
32
55
87

Temos
l = y7 = 87.
Mas no nos interessa trabalhar com valores de l negativos, para isso temos o algoritmo derivado do
Teorema da Soluo Geral de uma Equao Diofantina que encontra um valor positivo para l (ver
(1)):
Etapa 1) Calcular o valor de l normalmente.
Etapa 2) Se l < 0, ento faa:
l = l + 229j
para j inteiro de tal modo que l > 0.
Etapa 3) Faa l = l.
Logo, para o exemplo anterior:
l = 87 + 229j, para j = 1
l = 229 87 l = 142 l = l = 142.
Deste modo, aps encontrar o novo valor de l (positivo), ento continua-se o ciframento e o deciframento do Mtodo de MH.
Deste modo o destintario pblica o vetor c = (c1 , c2 , ..., cn ), onde n = 6 e cujo:
ci = ksi (mod t) .
Assim temos que a chave pblica
P = (21, 121, 13, 205, 2, 183).
Logo, a primeira letra da mensagem, que F, que corresponde a 15 = [001111]2 cifrada em
P (15) =

n
P

mi ci = 0.21 + 0.121 + 1.13 + 1.205 + 1.2 + 1.183 = 403.

i=1

Procedendo de modo anlogo com os demais smbolos da mensagem, temos


403

Algumas Tcnicas de Ciframento

328 2

522

226 411 409

409

422.

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

55

Para decifrar a mensagem o destinatrio deve primeiro determinar os valores de


d = l.P (m) (mod t) .
Para o exemplo vamos ter:
Para
Para
Para
Para

P (15)
P (22)
P (36)
P (37)

ento
ento
ento
ento

d = 205.
d = 89.
d = 32.
d = 141.

Para
Para
Para
Para

P (10)
P (29)
P (39)
P (45)

ento
ento
ento
ento

d = 55.
d = 157.
d = 196.
d = 155.

Continuando o deciframento do Mtodo MH, vamos comear decifrando a primeira letra da nossa
mensagem utilizando para isso o Algoritmo da Mochila.
Temos: (n, (s1 , s2 , ..., sn ) , d) ,que corresponde a (6, (5, 7, 14, 27, 55, 109) , 205) .
Etapa 1: Faa y = 205.
Etapa 2:
Para i = 6 :
Como y s6 , ou seja, y 109 ento faa y = 205 109 = 96 e tome m6 = 1.
Para i = 5 :
Como y s5 , ou seja, y 55 ento faa y = 96 55 = 41 e tome m5 = 1.
Para i = 4 :
Como y s4 , ou seja, y 27 ento faa y = 41 27 = 14 e tome m4 = 1.
Para i = 3 :
Como y s3 , ou seja, y 14 ento faa y = 14 14 = 0 e tome m3 = 1.
Para i = 2 :
Como y < s2 , ou seja, y < 7 ento tome m2 = 0.
Para i = 1 :
Como y < s1 , ou seja, y < 5 ento tome m1 = 0.
Etapa 3: Como y = 0, ento
m = [001111]2 = 15,
que corresponde letra F.
De modo anlogo, utilizando o Algoritmo da Mochila para os demais smbolos da mensagem, encontramos os respectivos resultados:
[000010]2 , [010110]2 , [000010]2 , [011101]2 , [100100]2 , [100111]2 , [100101]2 , [100101]2 , [101101]2
que correspondem a
m = 10, m = 22, m = 10, m = 29, m = 36, m = 39, m = 37, m = 37, m = 45.
Formando a mensagem inicial F AM AT _2008.

5 Criptografia D.E.S. - Data Encryption Standard


O D.E.S. consiste de um algoritmo de criptografia simtrico e polialfabtico com entrada e sada
binrias. Sendo assim, uma mensagem a ser enviada deve ser convertida em uma seqncia binria.
Assim como em qualquer esquema de criptografia, o algoritmo precisa de duas entradas: a mensagem
a ser enviada e, portanto, codificada e a chave, que a senha que ir manter a transmisso sigilosa.
A mensagem original convertida em uma seqncia binria dividida em blocos M que podem ser de
64 dgitos cada.
Faculdade de Matemtica

Criptografia D.E.S. - Data Encryption Standard

56

FAMAT em Revista

Consideremos a funo I que permuta a posio dos 64 dgitos do bloco M. Geralmente I definida
por uma tabela.
Para efeito de compreenso do algoritmo, chamemos a imagem I (M ) de N0 e descrevamos uma rodada
do algoritmo (geralmente so realizadas 16 rodadas):
(i) Dividamos o bloco N0 de 64 dgitos em duas partes: a parte esquerda, que chamaremos de E0 e
a parte direita que chamaremos de D0 .
(ii) Consideremos a funo X que expande o bloco D0 , de 32 dgitos, para um bloco X (D0 ) de 48
dgitos. Alm da expanso, nessa etapa temos tambm uma permutao de dgitos, uma vez que,
semelhana de I, X dada por uma tabela.
(iii) Consideremos um bloco aleatrio de 48 dgitos binrios que denotaremos por K1 . Esse bloco
parte das chaves do sistema criptogrfico (para cada rodada h uma chave).
(iv) Uma soma binria dgito a dgito entre X (D0 ) e K1 realizada.
(v) O bloco X (D0 ) + K1 dividido em blocos B1 , ..., B8 de 6 dgitos cada e, utilizando 8 funes
redutoras S1 , ..., S8 . Essas funes transformam Bi de 6 dgitos em blocos Bi0 de 4 dgitos. De um modo
geral, essas funes redutoras so dadas por tabelas e a manipulao dessas tabelas ser exemplificada
abaixo. Deste modo, o bloco X (D0 ) + K1 transformado em um bloco S de 32 dgitos.
(vi) Uma outra permutao de dgitos P aplicada ao bloco S.
(vii) Uma outra soma binria dgito a dgito feita entre o bloco P (S) e o bloco E0 . Essa soma
chamada de D1 .
(viii) Definimos o bloco E1 como sendo o bloco D0 .
(ix) Um novo bloco N1 formado pela juno do bloco E1 com o bloco D1 formado acima.
O bloco N1 submetido a uma nova rodada conforme descrito acima e obtemos N2 , N3 at N16 .
Aps as 16 rodadas, realizada uma troca de lados em N16 entre os blocos E16 e D16 . Chamemos
0
0
0
.
e, temos um novo bloco T (N16 ) = N16
e T (D16 ) = E16
essa troca de T. Assim, T (E16 ) = D16
1
0
Por fim, a inversa da funo permutao I, ou seja, I
aplicada em N16 e este o bloco cifrado,
0
) = C.
que chamaremos de C. Assim, I 1 (N16
Simplificando, temos a seguinte composta:
I (M ) = N0 = E0 D0 X I (M ) = E0 X (D0 )
K1 X I (M ) = E0 [X (D0 ) + K1 ] = E0 [B1 B2 B3 B4 B5 B6 B7 B8 ]
S K1 X I (M ) = E0 [S1 (B1 ) S2 (B2 ) ...S7 (B7 ) S8 (B8 )]
S K1 X I (M ) = E0 [B10 B20 B30 B40 B50 B60 B70 B80 ] S K1 X I (M ) = E0 S
P S K1 X I (M ) = E0 P (S) E0 P S K1 X I (M ) = [E0 + P (S)]
D0 E0 P S K1 X I (M ) = D0 [E0 + P (S)] D0 E0 P S K1 X I (M ) = D0 D1
D0 E0 P S K1 X I (M ) = E1 D1 D0 E0 P S K1 X I (M ) = N1 .
Chamando D0 E0 P S K1 X = Z1 , temos:
Z1 I (M ) = N1 .
Aplicando 16 rodadas, temos:
0
Z16 ... Z1 I (M ) = N16 T Z16 ... Z1 I (M ) = N16
I 1 T Z16 ... Z1 I (M ) = C.

Chamando I 1 T Z16 ... Z1 I = DES, temos:


DES (M ) = C.
Como o algoritmo simtrico, para decifrar C, basta aplic-lo novamente, ou seja:
DES (C) = M.
Criptografia D.E.S. - Data Encryption Standard

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

57

Exemplo 15: Consideremos as seguintes tabelas para construo da criptografia D.E.S.:

151
197
2313
2719
3125
331
737
1143

162
208
2414
2820
3226
432
838
1244

173
219
2515
2921
127
533
939
1345

591
579
6017
5825
6433
6241
6349
6157

512
4910
5218
5026
5634
5442
5550
5358

354
275
196
117
3312
2513
1714
0915
3620
2821
2022
1223
3428
2629
1830
1031
4036
3237
2438
1639
3844
3045
2246
1447
3952
3153
2354
1555
3760
2961
2162
1363
Tabela 3: Funo permutao I

161
159
1417
1325
1233
1141
1049
957

322
3110
3018
2926
2834
2742
2650
2558

83
711
619
527
435
343
251
159

184
325
2210
211
2616
417
3022
623
228
829
634
1035
1040
1241
1446
1447
Tabela 5: funo expanso

433
4111
4419
4227
4835
4643
4751
4559

244
645
486
567
2312
6313
4714
5515
2220
6221
4622
5423
2128
6129
4530
5331
2036
6037
4438
5239
1944
5945
4346
5147
1852
5853
4254
5055
1760
5761
4162
4993
Tabela 4: Funo permutao I 1
16
312
518
724
930
1136
1342
1548

251
19
1317
2225

262
1810
1418
2326

038
0116
0424
0232
0840
0648
0756
0564
408
3916
3824
3732
3640
3548
3456
3364

273
1911
3019
2427

154
165
176
212
2013
2114
3120
3221
822
1128
1229
530
Tabela 6: Funo permutao

287
315
923
631

298
416
1024
732

Tambm consideremos as tabelas dispostas na posio vertical nas duas prximas pginas, que so
rotuladas de Tabelas 7: Caixas S.
Seja a mensagem F AM AT _2008. Suponhamos que o emissor A, queira enviar essa mensagem ao
receptor B usando a criptografia D.E.S. Assim, A associa a mensagem aos nmeros correspondentes
na Tabela 1, obtendo a seqencia de nmeros:
15 10 22 10 29 36 39 37 37 45,
que, respectivamente, na base binria so:
001111 000010 010110 000010 011101 100100 100111 100101 100101 101101.
Agrupando a seqncia de bits em blocos de 64 bits temos:
M = 0011110000100101100000100111011001001001111001011001011011010000.

(5)

Note que tnhamos apenas 60 bits. Os bits que ficaram faltando para completar um bloco de 64 bits
foram obtidos acrescentando-se 4 zeros ao final da seqncia.
Logo, para o incio do processo, a mensagem passa pela primeira fase que a funo permutao I, a
partir da Tabela 3, no qual obtida pela seqncia a seguir:
I (M ) = N0 = 0010101111100110110010011011100000110010011010110100110000010101.

(6)

O n-simo bit de (6) o m-simo bit de (5) , sendo que m e n esto relacionados de acordo com a
entrada mn da Tabela 3. Por exemplo, se n = 1, a Tabela 3 fornece m = 59. Logo, o 1o . bit de (6)
o 59o . bit de (5) e assim, por diante.
Separando (6) em blocos de 32 bits, obtemos dois blocos. Chamaremos os primeiros 32 bits de bloco
da esquerda e denotaremos por E0 e os outros 32 bits restantes de bloco da direita e denotaremos
por D0 . Assim,
E0 = 00101011111001101100100110111000
D0 = 00110010011010110100110000010101
Faculdade de Matemtica

(7)

Criptografia D.E.S. - Data Encryption Standard

58

FAMAT em Revista

Para o bloco D0 faremos uma expanso usando a Tabela 5, dada anteriormente. Assim, essa seqncia de 32 bits ser transformada em uma nova seqncia com 48 bits, dada por:
X (D0 ) = 110110001101000010010101010000110011100101101001.

(8)

O n-simo bit de (8) o m-simo bit de (7) , sendo que m e n esto relacionados de acordo com a
entrada mn da Tabela 5.
Por exemplo, se n = 1, a Tabela 5 fornece m = 15. Logo, o 1o . bit de (8) o 15o . bit de (7) e assim,
por diante.
Consideremos uma seqncia binria de 48 bits, que ser a chave (que deve ser mantida em sigilo pelos
comunicantes):
K1 = 111101101010010010100011000110010110100111010001.
Fazendo a soma binria, dgito a dgito, dos 48 bits do bloco X (D0 ) com a chave K1 , temos a nova
seqncia:
X (D0 ) + K1 = 001011100111010000110110010110100101000010111000.
Usaremos agora, as Caixas S (Tabelas 7) para comprimir a seqncia acima de 48 bits para 32 bits
binrios. Primeiramente, dividiremos a seqncia anterior em blocos de 6 bits obtendo: B1 o primeiro
bloco, B2 o segundo bloco at o oitavo bloco:
001011
| {z } 100111
| {z } 010000
| {z } 110110
| {z } 010110
| {z } 100101
| {z } 000010
| {z } 111000
| {z }.
B1

B2

B3

B4

B5

B6

B7

B8

Os blocos Bi sero reduzidos a quatro bits cada utilizando-se as Caixas Si do seguinte modo:
O primeiro e ltimo dgitos de Bi formam, em decimal, um nmero x de 0 a 3, que corresponde a uma
das quatro linhas de Si . Os quatro dgitos intermedirios de Bi formam, em decimal, um nmero y
de 0 a 15, que corresponde a uma das 16 colunas de Si . Assim, localizamos o nmero sx,y na Tabela
Si . O nmero s um nmero de 0 a 15, que em binrio, corresponde a uma seqncia Bi0 de quatro
dgitos que ser colocada no lugar de Bi .

Criptografia D.E.S. - Data Encryption Standard

Universidade Federal de Uberlndia

S4

S3

S2

S1

90,0
61,0
142,0
133,0

00,0
41,0
12,0
143,0

10,0
71,0
142,0
83,0

10,0
71,0
92,0
03,0

140,1
81,1
02,1
33,1

90,1
21,1
122,1
53,1

100,1
101,1
52,1
23,1

120,1
101,1
02,1
93,1

00,2
91,2
32,2
153,2

40,2
91,2
72,2
103,2

110,2
01,2
72,2
143,2

90,2
21,2
152,2
23,2

130,3
31,3
62,3
03,3

20,3
31,3
102,3
23,3

70,3
51,3
112,3
93,3

50,3
61,3
12,3
123,3

150,4
101,4
52,4
13,4

110,4
51,4
42,4
83,4

20,4
61,4
132,4
153,4

100,4
141,4
22,4
103,4

30,5
151,5
122,5
93,5

70,5
131,5
152,5
93,5

140,5
11,5
02,5
53,5

150,5
31,5
102,5
83,5

50,6
01,6
92,6
143,6

10,6
141,6
92,6
03,6

80,6
111,6
22,6
63,6

60,6
111,6
32,6
153,6

80,7
51,7
152,7
83,7

120,7
61,7
62,7
113,7

150,7
21,7
82,7
113,7

20,7
91,7
112,7
33,7

60,8
11,8
82,8
103,8

130,8
151,8
32,8
123,8

60,8
131,8
102,8
73,8

80,8
151,8
42,8
73,8

110,9
131,9
72,9
43,9

60,9
111,9
82,9
33,9

90,9
121,9
12,9
123,9

110,9
01,9
52,9
113,9

100,10
71,10
132,10
53,10

140,10
11,10
132,10
13,10

120,10
31,10
42,10
13,10

40,10
41,10
132,10
63,10

70,11
41,11
102,11
63,11

80,11
71,11
112,11
63,11

00,11
81,11
152,11
03,11

140,11
121,11
62,11
13,11

10,12
121,12
112,12
73,12

50,12
101,12
02,12
153,12

50,12
141,12
32,12
43,12

70,12
11,12
122,12
43,12

40,13
21,13
12,13
123,13

30,13
121,13
142,13
73,13

30,13
91,13
62,13
143,13

120,13
51,13
72,13
133,13

120,14
111,14
22,14
23,14

100,14
81,14
22,14
43,14

130,14
41,14
92,14
103,14

130,14
31,14
142,14
53,14

20,15
141,15
42,15
113,15

150,15
01,15
52,15
133,15

40,15
151,15
122,15
33,15

20,15
131,15
82,15
143,15

Criptografia D.E.S. - Data Encryption Standard

Faculdade de Matemtica

59
Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

Tabela 7

FAMAT em Revista
60

S8

S7

S6

S5

150,0
101,0
12,0
133,0

100,0
21,0
02,0
153,0

70,0
21,0
82,0
113,0

60,0
141,0
02,0
153,0

120,1
61,1
42,1
23,1

60,1
121,1
72,1
33,1

120,1
91,1
52,1
63,1

80,1
121,1
42,1
113,1

80,2
91,2
112,2
83,2

90,2
01,2
132,2
103,2

00,2
141,2
32,2
53,2

20,2
01,2
102,2
43,2

20,3
01,3
132,3
43,3

130,3
31,3
82,3
23,3

50,3
01,3
152,3
33,3

120,3
21,3
52,3
83,3

40,4
121,4
122,4
63,4

50,4
101,4
62,4
83,4

140,4
111,4
132,4
03,4

30,4
61,4
132,4
133,4

90,5
111,5
32,5
153,5

40,5
141,5
12,5
93,5

30,5
61,5
102,5
93,5

70,5
111,5
62,5
63,5

10,6
71,6
72,6
113,6

140,6
41,6
92,6
43,6

90,6
51,6
62,6
123,6

00,6
41,6
152,6
03,6

70,7
131,7
142,7
13,7

00,7
131,7
32,7
143,7

100,7
121,7
02,7
153,7

150,7
81,7
22,7
123,7

50,8
151,8
102,8
103,8

80,8
91,8
102,8
53,8

10,8
41,8
22,8
133,8

90,8
101,8
72,8
53,8

110,9
11,9
152,9
93,9

10,9
111,9
22,9
123,9

110,9
71,9
142,9
83,9

10,9
91,9
122,9
143,9

30,10
31,10
62,10
33,10

110,10
61,10
142,10
73,10

150,10
31,10
122,10
103,10

110,10
51,10
32,10
23,10

140,11
141,11
82,11
143,11

70,11
151,11
42,11
13,11

60,11
101,11
92,11
43,11

40,11
151,11
142,11
93,11

100,12
51,12
02,12
53,12

150,12
11,12
52,12
113,12

40,12
81,12
12,12
143,12

140,12
71,12
82,12
13,12

00,13
21,13
52,13
03,13

120,13
51,13
152,13
03,13

80,13
131,13
42,13
73,13

50,13
31,13
112,13
33,13

60,14
81,14
92,14
123,14

20,14
71,14
112,14
133,14

20,14
151,14
112,14
13,14

130,14
11,14
92,14
103,14

130,15
41,15
22,15
73,15

30,15
81,15
122,15
63,15

130,15
11,15
72,15
23,15

100,15
131,15
152,15
73,15

Tabela 7

Universidade Federal de Uberlndia

Criptografia D.E.S. - Data Encryption Standard

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

61

Por exemplo, no primeiro bloco


B1 = 001011,
temos que o primeiro e o ltimo dgitos, 0 e 1, formam o nmero binrio 01, que em decimal o
nmero 1, ou seja, temos a segunda linha de S1 . Os quatro dgitos do meio de B1 formam o nmero
binrio 0101, que em decimal o nmero 5, que corresponde sexta coluna de S1 . Logo, localizamos
sx,y = 31,5 , ou seja, s = 3, que em binrio 0011. Assim B1 = 001011 substitudo por B10 = 0011.
De modo analgo para o restante dos blocos vamos obter:
B20 = 1001, B30 = 1101, B40 = 1010, B50 = 0100, B60 = 0101, B70 = 0110, B80 = 0000.
Juntando todos os blocos Bi0 , para i = 1, 2, ...8, em uma s seqncia obtemos:
S = 00111001110110100100010101100000.
Usando a Tabela 6, fazemos uma nova permutao da seqncia acima semelhana da que fizemos
na seqncia (5) a qual chamaremos de P (S):
P (S) = 01110000010000111000011110101100.
Fazendo a soma binria de E0 + P (S) temos:
D1 = E0 + P (S) = 01011011101001010100111000010100.
Juntando, respectivamente, as seqncias D0 e D1 temos:
N1 = 0011001001101011010011000001010101011011101001010100111000010100.
Aplicando a troca T dos blocos de 32 dgitos dos lados esquerdo e direito temos:
T (N1 ) = N10 = 0101101110100101010011100001010000110010011010110100110000010101.
Para finalizar a criptografia vamos utilizar a Tabela 4 e aplicar a permutao I 1 na seqencia
anterior:
C = I 1 (N10 ) = 1010110000110101110110100011011001101001100001010011011010000000.
Logo essa seqencia, a mensagem criptografada. Assim o emissor A envia essa mensagem para o
receptor B.
Para decifrar a seqncia recebida o receptor B dever proceder de modo anlogo ao processo de
criframento.
O receptor B aplicar a funo I a partir da Tabela 3, que a primeira fase, e obter a seqncia a
seguir:
I (C) = 0101101110100101010011100001010000110010011010110100110000010101.
Separando a seqncia anterior em blocos de 32 bits, obtemos dois blocos. Chamaremos os primeiros
32 bits de bloco da esquerda, que denotaremos por E0 e os outros 32 bits restantes de bloco da
direita, que ser denotado por D0 :
E0 = 01011011101001010100111000010100
D0 = 00110010011010110100110000010101
Para o bloco D0 faremos a expanso usando a Tabela 5. Assim, a seqncia de 32 bits ser transformada em uma nova seqncia com 48 bits:
X (C) = 110110001101000010010101010000110011100101101001.
Faculdade de Matemtica

Criptografia D.E.S. - Data Encryption Standard

62

FAMAT em Revista

Usando a mesma chave K1 de 48 bits que usamos para cifrar a mensagem, dada a seguir:
K1 = 111101101010010010100011000110010110100111010001,
Fazemos a soma binria desses 48 bits com o bloco da direita D0 e obtemos uma nova seqncia:
X (C) + K1 = 001011100111010000110110010110100101000010111000.
Utilizando as Caixas S e fazendo os mesmos procedimentos adotados no ciframento, separemos a
seqncia em blocos de 6 bits:
B1 = 001011 B2 = 100111 B3 = 010000 B4 = 110110
B5 = 010110 B6 = 100101 B7 = 000010 B8 = 111000
Teremos a seguinte reduo de 6 bits para 4 bits dada a seguir:
B10 = 0011, B20 = 1001, B30 = 1101, B40 = 1010, B50 = 0100, B60 = 0101, B70 = 0110, B80 = 0000.
Juntando todos os blocos Bi0 , para i = 1, 2, ...8, em uma s seqncia obtemos:
S = 00111001110110100100010101100000.
Usando a Tabela 6, da funo permutao, na seqncia acima obtemos a seqncia a seguir a qual
chamaremos de P (S):
P (S) = 01110000010000111000011110101100.
Fazendo a soma binria de E0 + P (S) temos:
D1 = E0 + P (S) = 00101011111001101100100110111000.
Juntando, respectivamente, as seqncias D0 e D1 temos:
N1 = 0011001001101011010011000001010100101011111001101100100110111000.
Aplicando T :
T (N1 ) = N10 = 0010101111100110110010011011100000110010011010110100110000010101.
Para finalizar o deciframento vamos aplicar a funo I 1 na seqncia anterior chegando em:
M = I 1 (N10 ) = 0011110000100101100000100111011001001001111001011001011011010000.
Logo, essa seqncia, a mensagem decifrada. Ou seja, separando essa seqncia em blocos de 6 bits
e passando para a base decimal, obtemos os nmeros:
15 10 22 10 29 36 39 37 37 45,
que corresponde a mensagem original F AM AT _2008.
Nesse exemplo, para simplificar, usamos uma nica rodada, mas isso inseguro. Para oferecer maior
segurana e resistncia criptoanlise o ideal que se realizem vrias rodadas, no caso 16 rodadas
o tamanho tpico para a criptografia D.E.S.
Observao: Tipicamente, na criptografia D.E.S., h um procedimento algortmico de gerao das
chaves K1 , ..., K16 a partir de uma nica chave K fornecida pelos comunicantes. Neste trabalho no
abordamos tal algoritmo. No entanto, o leitor interessado pode encontr-lo em (10).
Criptografia D.E.S. - Data Encryption Standard

Universidade Federal de Uberlndia

Criptografias ElGamal, Rabin e algumas tcnicas de ciframento

63

Referncias Bibliogrficas
[1] Biase, A. G. & Agustini, E. Criptografia, Assinaturas Digitais e Senhas Segmentadas. (to
appear in FAMAT em Revista)
[2] Coutinho, S. C. Nmeros Inteiros e Criptografia RSA. Rio de Janeiro, RJ: IMPA - SBM. Srie
de Computao e Matemtica. 1997.
[3] Domingues, H. H. lgebra Moderna. So Paulo, SP: Atual Editora. 1982.
[4] Domingues, H. H. Fundamentos de Aritmtica. So Paulo, SP: Atual Editora. 1991.
[5] Lucchesi, C. L. Introduo Criptografia Computacional. Campinas-SP: Editora da Unicamp.
1986.
[6] Mollin, R. A. An Introduction to Cryptography. New York: Chapman & Hall. 2001.
[7] Rivest, M,; Shamir, A. & Adleman, L. A method for obtaining digital signatures and
public-key cryptosystems. Comm. ACM, 21 (1978), 120-126.
[8] Santos, J. P. O. Introduo Teoria dos Nmeros. Rio de Janeiro, RJ: Publicao do Inst. de
Mat. Pura e Aplicada (IMPA). Coleo Matemtica Universitria. 1998.
[9] Singh, S. O Livro dos Cdigos. Rio de Janeiro: Editora Record. 2001.
[10] Stallings, W. Criptografia e Segurana de Redes. 4a . ed. So Paulo: Peason Prentice Hall. 2007.

Faculdade de Matemtica

Criptografia D.E.S. - Data Encryption Standard