Você está na página 1de 56

Criptografia

Equipe da SE-9
AULA 4 vr 2 2022

Equipe da SE_9 18 de Fev de 2020 1


Criptografia
Equipe da SE-9
AULA 4 vr 2 2022

Equipe da SE_9 18 de Fev de 2020 2


Criptografia

Premissas de projeto. As operações básicas. Sistema de


Feistel. DES. Fips 46-3. 3-DES. Modos de operação.
Criptoanálise.

Equipe da SE_9 fevereiro de 22 3


Criptografia
CRIPTOGRAFIA SIMÉTRICA

Equipe da SE_9 fevereiro de 22 4


Criptografia
CRIPTOGRAFIA ASSSIMÉTRICA

Equipe da SE_9 fevereiro de 22 5


Criptografia
CRIPTOGRAFIA ASSSIMÉTRICA

Equipe da SE_9 fevereiro de 22 6


Criptografia

Sigilo:
Mantendo a informação não inteligível para partes não autorizadas.
Integridade de dados:
Detectando a manipulação dos dados por partes não autorizadas;
Autenticação da fonte:
Identificando as partes participantes;
Não-repúdio - irretratabilidade:
Normalmente envolve uma terceira parte.

Equipe da SE_9 18 de Fev de 2020 7


Segurança da Informação
CRIPTOGRAFIA SIMÉTRICA

• Cifrador sequencial
– Cifra uma sequência de dados digitais um bit ou um byte por vez.

• Cifrador de bloco
– Um bloco do texto em claro é tratado como um todo e
usado para produzir um bloco cifrado de tamanho igua.

Equipe da SE_9 fevereiro de 22 8


Segurança da Informação

Modelo geral de um cifrador sequencial

Equipe da SE_9 fevereiro de 22 9


Segurança da Informação

Redes de S-P usadas em cifradores de bloco

Equipe da SE_9 fevereiro de 22 10


Criptografia

Substituição
Transposição
Compressão
Expansão
Operações aritméticas
Operações lógicas de deslocamento
Operação XOR

Equipe da SE_9 fevereiro de 22 11


Criptografia

permutação
abacate verde
(3 4 2 5 1)
acbaaveertxxexd
expansão
abacateverde
(01 02 03 04 03 04 05 06 07 08 07 08 09 10 11 12)
abacacateveverde

Equipe da SE_9 fevereiro de 22 12


Criptografia

compressão
1010 1010 1111 1100 1001

Eliminar os de posição múltiplas de quatro

101 101 111 110 100

Equipe da SE_9 fevereiro de 22 13


Criptografia

ou-exclusivo (reversibilidade)
mensagem 1001 cifra 1110
chave 0111 chave 0111
cifra 1110 mensagem 1 0 0 1

rotação à esquerda (à direita)


10111001010110
01110010101101

Equipe da SE_9 fevereiro de 22 14


Criptografia

matrizes de substituição (S-BOX)


entrada: 0 1 1 1 saída: 0 1 (1)

00 01 10 11
00 0 1 2 3
01 2 0 3 1
10 3 2 1 0
11 1 3 0 2

Equipe da SE_9 fevereiro de 22 15


Criptografia

REDES DE
FEISTEL
► Inventada pelo criptólogo da IBM Horst Feistel;

► Visto pela primeira vez no cifrador Lucifer, também da IBM,


projetado por Feistel e Don Coppersmith;

► É uma estrutura bastante utilizada em cifradores simétricos


iterativos de blocos.

Equipe da SE_9 fevereiro de 22 16


REDES DE
► Divide-se o bloco de FEISTEL
comprimento n a ser cifrado em dois sub-blocos
de comprimento n/2 (L0 – R0);
► Define-se um cifrador iterativo de bloco onde a i-ésima iteração é
dada por:
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1 , Ki)

► A função f não precisa ser invertível;


► A função f pode ser projetada de forma tão complicada quanto se
queira;
► A cifração e decifração são estruturalmente idênticas;
► Na reversão do processo a entrada das chaves obedece à ordem
inversa.
Criptografia

Equipe da SE_9 fevereiro de 22 18


Criptografia

Equipe da SE_9 fevereiro de 22 19


Criptografia

Equipe da SE_9 fevereiro de 22 20


Criptografia

Equipe da SE_9 fevereiro de 22 21


Criptografia

Cifras de Feistel ou modificações da cifra de Feistel:


Blowfish, Camellia, CAST128, DES, FEAL, ICE, KASUMI, LO
KI97, Lucifer, MARS, MAGENTA, MISTY1, RC5, TEA, Triple
DES, Twofish, XTEA, GOST 28147-89

Generalizações da cifra de Feistel:


CAST- 256, MacGuffin, RC2, RC6, Skipjack, SMS4, CLEFIA

Equipe da SE_9 fevereiro de 22 22


Exemplo
► f (x , y) = (x + y) mod 16

► Entrada: 0010 1110

► Chave: 1011

► 4 iterações

► Key Schedule:

► K0 = 1011

► K1 = 1101

► K2 = 1110

► K3= 0111
Passo 1 (cifração)
► L0 = 0010 R0 = 1110

► L1 = R0 = 1110

► R1 = L0 ⊕ f (R0 , K0)

► f = (1110 +1011)mod16

► f = (14 +11)mod16 = 9 = 1001

► R1 = 0010 ⊕ 1001

► R1 = 1011
Passo 2 (cifração)
► L1 = 1110 R1 = 1011

► L2 = R1 = 1011

► R2 = L1 ⊕ f (R1 , K1)

► f = (1011+1101)mod16

► f = (11+13)mod16 = 8 = 1000

► R2 = 1110 ⊕ 1000

► R2 = 0110
Passo 3 (cifração)
► L2 = 1011 R2 = 0110

► L3 = 0110

► R3 = L2 ⊕ f (R2 , K2)

► f = (0110+1110)mod16

► f = (6+14)mod16 = 4 = 0100

► R3 = 1011 ⊕ 0100

► R3 = 1111
Passo 4 (cifração)
► L3 = 0110 R3 = 1111

► L4 = R3 = 1111

► R4 = L3 ⊕ f (R3 , K3)

► f = (1111+0111)mod16

► f = (15+7)mod16 = 6 = 0110

► R4 = 0110 ⊕ 0110

► R4 = 0000
EXERCÍCIO
DECIFRAR
Criptografia

DES - Origem

Em 1973, a NIST licitou propostas para um sistema

criptográfico nacional. A IBM venceu com o DES,

modificação de um projeto anterior (mais seguro?)

chamado Lucifer.

Equipe da SE_9 fevereiro de 22 29


Criptografia

Federal Information Processing Standards

Publication 46-31999 October 25

DATA ENCRYPTION STANDARD

Equipe da SE_9 fevereiro de 22 30


DES - REDES DE
FEISTEL
Criptografia Computacional

O DES (Digital Encryption Standard) - FIPS PUB 46-3

Cifra um bloco de texto claro de 64 bits e o converte num criptograma de 64 bits,


usando uma chave de 56 bits.
A troca de qualquer dos bits da chave muda completamente o criptograma.
Aparentemente, só pode ser quebrado por força bruta.

Texto claro 64 bits

Chave de
f 56 bits

Equipe da SE_9 fevereiro de 22 32

Criptograma – 64 bits
Criptografia Computacional
CRIPTOGRAFIA SIMÉTRICA DES

Equipe da SE_9 fevereiro de 22 33


Criptografia Computacional

DES – Permutação Inicial


8 16 24 32 40 48 56

8 16 24 32 40 48 56
Equipe da SE_9 fevereiro de 22 34
Criptografia Computacional
DES – Esquema Feistel da 1a
iteração

Equipe da SE_9 fevereiro de 22 35


Criptografia Computacional
DES – Esquema Feistel das
iterações

Equipe da SE_9 fevereiro de 22 36


Criptografia Computacional
DES – esquema da função

Equipe da SE_9 fevereiro de 22 37


Criptografia Computacional

DES – Função de Expansão

Equipe da SE_9 fevereiro de 22 38


Criptografia Computacional

DES – Regra da S-Box

Equipe da SE_9 fevereiro de 22 39


Criptografia Computacional

DES – Regra da S-Box

Equipe da SE_9 fevereiro de 22 40


Criptografia Computacional

CAIXA - S
exemplo: S1

14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 07
00 15 07 04 14 02 13 01 10 06 12 11 09 05 03 08
04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00
15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 03

Equipe da SE_9 fevereiro de 22 41


Equipe da SE_9 fevereiro de 22 42
Criptografia Computacional

Equipe da SE_9 fevereiro de 22 43


Criptografia Computacional

Equipe da SE_9 fevereiro de 22 44


Criptografia Computacional

Equipe da SE_9 fevereiro de 22 45


Criptografia Computacional

Equipe da SE_9 fevereiro de 22 46


Criptografia Computacional

Equipe da SE_9 fevereiro de 22 47


Criptografia Computacional

MODOS DE TRANSMISSÃO

Equipe da SE_9 fevereiro de 22 48


Criptografia Computacional

MODOS DE TRANSMISSÃO
ECB “eletronic code book”

Equipe da SE_9 fevereiro de 22 49


Criptografia Computacional

Equipe da SE_9 fevereiro de 22 50


Criptografia Computacional

MODOS DE TRANSMISSÃO
CBC “cipher block chaining”

Equipe da SE_9 fevereiro de 22 51


Criptografia Computacional

Equipe da SE_9 fevereiro de 22 52


EXERCÍCIO

1 - Supor uma cifra de bloco linear BL que codifica blocos de 128 bits de
texto claro em 128 bits de texto cifrado.
Considere que BL (k, m) signifique a criptografia da mensagem m com a
chave k
Dessa forma, temos que:
BL [k, (mi + mj)] = BL (k, mi) + BL (k, mj); onde + representa a função ou
exclusivo
Mostre que 128 textos cifrados escolhidos (vc escolhe o texto e tem meios
para decriptografá-lo; isto é , vc constrói pares (cifra, claro)) são
suficientes para decriptografar qualquer texto cifrado sem conhecer a
chave utilizada.

fevereiro
Equipe da SE_9 53
de 22
EXERCÍCIO

2 - Considere uma cifra de Feistel de 16 rodadas e 128 bits tanto para a


mensagem quanto para a chave. Suponha que para determinado k, o algoritmo
de subchaves gera
k1, k2, .... k8 e depois faz K9 = k8; k10 = k7, ....k16 = k1.
Suponha que você tem um texto cifrado C.
Descreva como é possível decriptografar C e determinar M usando apenas uma
consulta a uma máquina que é capaz de gerar um criptograma a partir de um
texto em claro.

3 - Calcule os bits de ordem 1,16, 33 e 48 na saída da primeira rodada de um DES,


supondo que tanto o texto claro quanto a chave sejam formados apenas por 1s.

fevereiro
Equipe da SE_9 54
de 22
EXERCÍCIO

4 - Suponha uma estrutura de Feistel e as seguintes expressões definindo um sistema de


criptografia tipo DES com apenas uma rodada.
L1 = R0
R1 = L0 + f(R0, K)
f(R0, K1) = R0 + K
Sabe-se que L0 é a sequência dos oito primeiros bits de IP(M) e R0 é a sequência dos oito últimos
e que o símbolo + representa a função ou exlusivo.
K = 10110100 e M é uma mensagem de 16 bits.
IP é permutação aplicada à M, definida por (8, 12, 4, 9, 7, 11, 5, 13, 1, 10, 3, 15, 6, 16, 2, 14), em
que a primeiro bit da entrada permutada é o oitavo bit da mensagem; o segundo é o 13º da
mensagem e assim sucessivamente.
C (criptograma) = L1oR1 = 1110010100011001 em que o símbolo o significa concatenação.
Determine a mensagem
fevereiro
Equipe da SE_9 55
de 22
FIM DA AULA 4 vr 2 2022

Equipe da SE_9 fevereiro de 22 56

Você também pode gostar