(c) LSI-Tec 1999
História da Criptografia
Volnys Borges Bernal
Laboratório de Sistemas Integraveis
Escola Politécnica da USP
1
(c) LSI-Tec 1999
Agenda

Alguns algoritmos clássicos de criptografia
convencional
 Cifra de Cesar
 Playfair
 Máquina de rotação
2
(c) LSI-Tec 1999
Algoritmos Clássicos
Cifra de Cesar
3
(c) LSI-Tec 1999
Cifra de Cesar

Utilizada por Julio César
 Uso mais antigo de criptografia
 Cada letra do plaintext é substituida pela letra
localizada a “d” posições à frente no alfabeto
 A chave do algoritmo é o deslocamento
 K = “d”
 Julio César utilizava K=3
4
(c) LSI-Tec 1999
Cifra de Cesar (cont.)

Atribui-se valores a cada letra do alfabeto:
00 01 02 03 04 05 06 07 08 09 10 11 12
a b c d e f g h i j k l m
13 14 15 16 17 18 19 20 21 22 23 24 25
n o p q r s t u v w x y z

Encriptação:
 Ci = Ek(Pi)
= ( Pi + k) mod 26
Decriptação:
 Pi = Dk(Ci)
= (Ci - k + 26) mod 26

5
(c) LSI-Tec 1999
6
Cifra de César (cont.)

Exemplo de encriptação
Plaintext:
“Este é um exemplo de mensagem”
Ciphertext:
“hvwhhxphuhpsorghphkvdjhp“
P
C
Encriptador
(E)
Chave: K = 3
(c) LSI-Tec 1999
7
Cifra de César (cont.)

Exemplo de decriptação
Ciphertext:
“hvwhhxphuhpsorghphkvdjhp“
Plaintext:
“Este é um exemplo de mensagem”
C
P
Decriptador
(D)
Chave: K = 3
(c) LSI-Tec 1999
Cifra de César (cont.)

Criptoanálise
 Espaço de chaves: Nchaves = 25
 Bloco = caractere
 Espaço de blocos: 26
(qtde de blocos diferentes)
 Ataques
 (1) Somente ciphertext:
Força Bruta:Existem somente 25 chaves possíveis
 Decifração símples: teste de todas as alternativas

 (2)

 (3)
Plaintext Conhecido
Direto: basta realizar a difereça do primeiro caractere para
obter a chave
Plaintext Escolhido / Ciphertext Escolhido:
8
(c) LSI-Tec 1999
Algoritmos Clássicos
Playfair
9
(c) LSI-Tec 1999
10
Playfair



Criado em 1854 e utilizado na 1a guerra mundial pelos
governos da Inglaterra e EUA
A encriptação é realizada traduzindo-se dois caracteres
por vez
Exemplo:
 Plaintext:
“Este é um exemplo de mensagem”
Plaintext: Es te éu me xe mp lo de me ns ag em
Ciphertext:
(c) LSI-Tec 1999
Playfair (cont.)

Chave:
 (a) A chave utilizada é uma palavra qualquer (uma
seqüência de letras)
 (b) Estas letras são dispostas em uma matriz 5x5.
 (c) O restante da matriz é preenchido com as letras do
alfabeto não utilizadas
 OBS:
 Não devem existir letras repetidas na matriz
 Como o alfabeto inglês possui 26 letras e existem
somente 25 posições, as letras “i” e “j” são
representadas de forma única
11
(c) LSI-Tec 1999
Playfair (cont.)

Exemplo:

Chave:
 “MONARQUIA”
 Na forma de Matriz 5x5:
M O N A R
Q U IJ
M
Q
D
K
V
O
U
E
L
W
N A
I
J B
F G
P S
X Y
R
C
H
T
Z
12
(c) LSI-Tec 1999
Playfair (cont.)

Regras de codificação:

(1) Este algoritmo não permite a tradução de pares de
letras iguais do plaintext. Pares de letras iguais no
plaintext devem ser separadas por uma letra especial
pré estabelecida.
 Exemplo: “ESSA” --> “ESXSA”

(2) Se as duas letras estão em uma mesma linha, cada
uma é substituida pela letra imediatemente a seguir na
mesma linha
13
(c) LSI-Tec 1999
14
Playfair (cont.)

Regras de codificação (continuação)

(3) Se as duas letras estão em uma mesma coluna cada
uma é substituida pela letra imediatamente abaixo na
mesma coluna

(4) Se as duas letras estão em linhas e colunas
diferentes:
 A primeira letra é substituida pela letra da matriz na
mesma linha cuja coluna cruza a segunda letra.
 A segunda letra é substituida pela letra da matriz na
mesma linha cuja coluna cruza a primeira letra
(c) LSI-Tec 1999
15
Playfair (cont.)

Exemplo de encriptação
Plaintext:
“Este é um exemplo de mensagem”
Ciphertext:
“ gllhleodwfnkwuefodapbsdo“
P
C
Encriptador
(E)
M
Q
D
K
V
O
U
E
L
W
N A
I
J B
F G
P S
X Y
R
C
H
T
Z
(c) LSI-Tec 1999
16
Playfair (cont.)

Exemplo de encriptação
M
Q
D
K
V
O
U
E
L
W
N A
I
J B
F G
P S
X Y
Chave
R
C
H
T
Z
Plaintext
es te éu me xe mp lo de me ns ag em
gl lh le od wf nk wu ef od ap bs do
Ciphertext
(c) LSI-Tec 1999
Playfair (cont.)

Regras de decriptação
 “Regras Inversas da encriptação”:



(2) Se as duas letras estão em uma mesma linha, cada uma é
substituida pela letra imediatemente anterior na mesma linha
(3) Se as duas letras estão em uma mesma coluna cada uma é
substituida pela letra imediatamente acima na mesma coluna
(4) Se as duas letras estão em linhas e colunas diferentes:
 A primeira letra é substituida pela letra da matriz na mesma
linha cuja coluna cruza a segunda letra.
 A segunda letra é substituida pela letra da matriz na mesma
linha cuja coluna cruza a primeira letra
17
(c) LSI-Tec 1999
18
Playfair (cont.)

Exemplo de decriptação
Plaintext:
Ciphertext:
“ gllhleodwfnkwuefodapbsdo“
“Este é um exemplo de mensagem”
C
P
Decriptador
(D)
M
Q
D
K
V
O
U
E
L
W
N A
I
J B
F G
P S
X Y
R
C
H
T
Z
(c) LSI-Tec 1999
19
Playfair (cont.)

Exemplo de decriptação
M
Q
D
K
V
O
U
E
L
W
N A
I
J B
F G
P S
X Y
Chave
R
C
H
T
Z
Ciphertext
gl lh le od wf nk wu ef od ap bs do
es te éu me xe mp lo de me ns ag em
Plaintext
(c) LSI-Tec 1999
Playfair (cont.)

Criptoanálise
 Espaço de chaves = Nchaves = (25 !) / 25 = 24 !
 Bloco = dígrafo (2 caracteres)
 Espaço de blocos = Ndigrafos = 26x26 = 676
20
(c) LSI-Tec 1999
Playfair (cont.)

Criptoanálise
 Ataques
 (1) Somente Ciphertext

 (2)

 (3)

 (4)

Análise de padrões, etc
Plaintext Conhecido
Permite obter de imediato a função de encriptação de
alguns dígrafos
Plaintext Escolhido
Plaintext: “aa ab ac ... az ba bb bc ... bz ...”
Ciphertext Escolhido
Ciphertext: “aa ab ac ... az ba bb bc ... bz ...”
21
(c) LSI-Tec 1999
Algoritmos Clássicos
Máquina de rotação
22
(c) LSI-Tec 1999
23
Máquina de rotação




Técnica de substituição com vários estágios a fim de
dificultar a criptoanálise
Consiste de um conjunto de cilindros independentes.
Cada cilindro possui 26 pinos de entrada e 26 pinos de
saída com uma ligação interna que conecta cada pino
de entrada a um pino de saída
Maquinas deste tipo foram utilizadas na Segunda
Guerra Mundial
 Alemanha: Enigma
 Japão: Purple
Allan Turing (matemático ingles) trabalhou para os
aliados na criptoanalise deste tipo de máquinas
(c) LSI-Tec 1999
Máquina de Rotação (cont.)
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
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
A cada letra codificada o
cilindro é rotacionado em 1
posição
Após 26 letras codificadas o
cilindro retorna à posição
original
Ex:
 Plaintext: abc
 Ciphertext: def
24
(c) LSI-Tec 1999
Máquina de Rotação (cont.)

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
cil. 3
cil. 2
cil. 1
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
Com vários Cilindros
 A dificuldade de criptoanálise
cresce com a utilização de vários
cilindros concatenados
 A cada letra codificada o cilindo 1
rotaciona 1 posição.
 Sempre que o cilindro 1 voltar a
posição original o cilindro 2
rotaciona 1 posição
 Sempre que o cilindro 2 voltar a
posição original o cilindro 3
rotaciona 1 posição
25
(c) LSI-Tec 1999
Máquina de Rotação (cont.)

Encriptação
Plaintext:
Ciphertext:
P
C
Encriptador
(E)
26
(c) LSI-Tec 1999
Máquina de Rotação (cont.)

Decriptação
Mesmo algoritmo
 Mesma sequência de cilindros
 Mesmo sentido de rotação
 Realiza a substituição no sentido inverso

27
(c) LSI-Tec 1999
Máquina de Rotação (cont.)

Exemplo de encriptação
Ciphertext:
Plaintext:
C
P
Decriptador
(D)
28
(c) LSI-Tec 1999
Máquina de Rotação (cont.)

Criptoanálise
Espaço de chaves = Nchaves = (26 !) N
 (p/ N cilindros distintos)
 Bloco = caractere
 Espaço de blocos = 26
 porém um mesmo bloco pode ser codificado de
forma diferente de acordo com sua posição no
plaintext

29
(c) LSI-Tec 1999
Máquina de Rotação (cont.)

Criptoanálise
 Ataques
 (1) Ciphertext Somente

 (2)

 (3)
Força bruta
Plaintext conhecido
Se for longo o suficiente, direto
Plaintext Escolhido
Direto, exemplo:
 Plaintext: “aaaaaaaaaaaaa...a” (26N vezes p/ N cilindros)

 (4)
Ciphertext Escolhido
Direto, exemplo:
 Ciphertext: “aaaaaaaaaaaaa...a” (26N vezes p/ N cilindros)

30
(c) LSI-Tec 1999
Algoritmos Clássicos
Exercícios
31
(c) LSI-Tec 1999
Exercícios

(1) Criptografe o plaintext “exercício” utilizando os
algoritmos apresentados neste módulo. Utilize como
valor da chave K os valores utilizados nos exemplos.

(2) Dentre os algoritmos vistos quais podem ser
descobertos de forma direta (imediata) pelo ataque
com “Plaintext Escolhido” onde é utilizada a seguinte
mensagem:
 “abcdefghijklmnopqrstuvwxyz”
32
(c) LSI-Tec 1999
Exercícios

(3) Dentre os algoritmos vistos quais podem ser
descobertos de forma direta (imediata) pelo ataque
com “Plaintext Escolhido” onde é utilizada a seguinte
mensagem:
 “aaaaaaaaaaaaaaaaaaaaaa....a”

(4) Dentre os algoritmos vistos quais podem ser
descobertos de forma direta (imeditata) pelo ataque
com “Plaintext Escolhido” onde é utilizada a seguinte
mensagem:
 “a”
33
(c) LSI-Tec 1999
34
Exercícios

(5) A facilidade ao ataque pela força bruta também está
relacionado ao numero de chaves possíves no
algoritmo.
Qual o número de chaves possíveis de cada um dos
algoritmos apresentados?
(c) LSI-Tec 1999
Algoritmos Clássicos
Bibliografia
35
(c) LSI-Tec 1999
Bibliografia

Livro:
 Network and Internetwork Security - Principles and
Practice - Second Edition
Willian Stallings
Prentice Hall
1998
36
Download

Playfair (cont.)