Академический Документы
Профессиональный Документы
Культура Документы
r rt s
rs r r tt
r tt P
rs r
s st
rs r r tt
Prssr ss
st r
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
Tomando p = 3 e a = 6 temos:
ap = 63 = 216 6 (mod 3) a(mod p).
Preliminares
2.2
37
O Teorema de Euler
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 = j, ento axi axj (mod n) , o que implica
xi xj (mod n) ,
o que no possvel pois
xi = 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)
(n)
xi =
i=1
i=1
(n)
(n)
axi
(mod n)
xi
(mod n)
(n)
(n)
a(n)
xi
i=1
i=1
xi
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)
.
..
(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) .
2.3
39
O Algoritmo de Miller-Rabin
ap1 1 (mod p) .
Mas,
p 1 = 2k q.
Logo,
ap1 (mod p) = a2
(mod p) 1.
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
q 2
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
(k1)
q 2k q
for primo, ento ou o primeiro elemento da lista de resduos aq , a2q , ..., a2
,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
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
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
m = 101100110,
que equivale ao 358 em decimal. Ento:
2
43
ou seja,
m1 = m4 = 358 e m2 = m3 = 7339.
Suas representaes binrias so:
e
m2 = m3 = 1110010101011
m1 = m4 = 101100110.
3.2
A Criptografia ElGamal
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)
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
1 2 3 4 5
3 1 4 2 5
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
_2008.
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
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.
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
Para t4 :
47
5 11 0
45
29
c4 = 9 1 3 36 (mod 37) = 31 .
17 4 2
36
19
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
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.
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 = k + S(ti + k),
sendo S uma substituio monoalfabtica e ti um smbolo a ser cifrado, ou ainda
S = 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)
50
FAMAT em Revista
1) IP (t352 ) = IP (F ) = H.
3) S1 (J) = B.
5) S2 (E) = K.
7) S3 (I) = C.
9) R (9) = K.
17) (IP )
(8) = J.
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
52
FAMAT em Revista
4.4
ai xi = b.
i=1
P (m) =
mi ci .
i=1
53
s = (s1 , s2 , ..., sn )
e tambm t e k tais que
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
e t, de modo que
i=1
54
FAMAT em Revista
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
n
P (15) =
328 2
522
409
422.
55
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.
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 Bi 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
essa troca de T. Assim, T (E16 ) = D16 e T (D16 ) = E16 e, temos um novo bloco T (N16 ) = N16 .
Por fim, a inversa da funo permutao I, ou seja, I 1 aplicada em N16 e este o bloco cifrado,
que chamaremos de C. Assim, I 1 (N16 ) = C.
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 [B1 B2 B3 B4 B5 B6 B7 B8 ] 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:
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
57
1
7
13
19
25
31
37
43
2
8
14
20
26
32
38
44
3
9
15
21
27
33
39
45
1
9
17
25
33
41
49
57
2
10
18
26
34
42
50
58
4
5
6
7
12
13
14
15
20
21
22
23
28
29
30
31
36
37
38
39
44
45
46
47
52
53
54
55
60
61
62
63
rt I
1
9
17
25
33
41
49
57
2
10
18
26
34
42
50
58
3
11
19
27
35
43
51
59
4
5
10
11
16
17
22
23
28
29
34
35
40
41
46
47
s
3
11
19
27
35
43
51
59
4
5
6
7
12
13
14
15
20
21
22
23
28
29
30
31
36
37
38
39
44
45
46
47
52
53
54
55
60
61
62
93
rt I 1
6
12
18
24
30
36
42
48
1
9
17
25
2
10
18
26
8
16
24
32
40
48
56
64
8
16
24
32
40
48
56
64
3
11
19
27
4
5
6
12
13
14
20
21
22
28
29
30
rt
7
15
23
31
8
16
24
32
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 1 . bit de (6)
o 59 . 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)
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 1 . bit de (8) o 15 . 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 100111 010000 110110 010110 100101 000010 111000.
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 Bi de quatro
dgitos que ser colocada no lugar de Bi .
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
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
61
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:
B1 = 0011, B2 = 1001, B3 = 1101, B4 = 1010, B5 = 0100, B6 = 0101, B7 = 0110, B8 = 0000.
Juntando todos os blocos Bi , 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 ) = N1 = 0010101111100110110010011011100000110010011010110100110000010101.
Para finalizar o deciframento vamos aplicar a funo I 1 na seqncia anterior chegando em:
M = I 1 (N1 ) = 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
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. 4 . ed. So Paulo: Peason Prentice Hall. 2007.
Faculdade de Matemtica