Você está na página 1de 8

FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

Aula03
02ª 18/02 Funções de Hash (one way function), Funções de Condensação. Funções de
Condensação Unidirecionais. Aplicações.
03ª 04/03 Sistemas Criptográficos Simétricos. Apresentação do conceitos de Cifras de
Substituição e Cifras de Transposição. Conceitos de Matemática Modular.
Realização de exercícios de cifração de mensagens.

1 FUNÇÕES HASH [SCHNEIER]

1.1. FUNÇÕES UNIDIRECIONAIS (ONE-WAY FUNCTIONS)

Em funções unidirecionais, para uma dada entrada, é relativamente fácil calcular a saída da
função. Mas dada uma saída, é extremamente difícil calcular uma possível entrada desta função.
Ou seja, dado x é fácil calcular f  x  , mas dado f  x  é difícil calcular x. Neste contexto, difícil
significa: levariam milhões de anos para calcular x dado f  x  , mesmo que todos os
computadores do mundo estivessem disponíveis somente para solucionar o problema.

Um exemplo comum: A quebra de um prato é um bom exemplo de função unidirecional. É


fácil quebrar um prato em um milhão de pedaços, entretanto não é fácil juntar todos os pequenos
pedaços de forma a formar novamente o prato original.

1.2. FUNÇÕES DE CONDENSAÇÃO (HASH FUNCTIONS)

Funções de condensação (hash) têm sido usadas em ciência da computação há muito tempo.
Uma função de condensação (hash) é uma função que tem como entrada uma string de
tamanho variável (chamada de pré-imagem) e a converte em uma string de saída de tamanho
fixo, geralmente menor, chamada de valor hash.
Um exemplo simples de função de condensação (hash) é a função que pega uma pré-
imagem e retorna um byte que consiste no XOR de todos os bytes de entrada. Por exemplo:

0101 0110
entrada 1001 0101
0100 0110
0001 1011
saída 1001 1110

1.3 FUNÇÕES DE CONDENSAÇÃO UNIDIRECIONAIS (ONE-WAY HASH


FUNCTIONS)

Função de condensação unidirecional (one-way hash function) é conhecida por diversos


nomes:
- função de compressão (compression function)
- função de contração (contraction function)
- message digest
- impressão digital (fingerprint)
- checksum criptográfico (cryptographic checksum)
- message integrity check (MIC)
- manipulation detection code (MDC)
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

Uma função hash unidirecional é uma função hash que trabalha em uma direção: é fácil
calcular o valor hash de uma pré-imagem, mas é difícil calcular uma pré-imagem que dê
como valor hash um valor previamente escolhido.

É importante deixar claro que em uma função hash one-way, dado um valor hash, embora
possam existir milhões de valores que gerariam aquele hash, é computacionalmente inviável achar
qualquer um desses valores, ou seja, não se consegue achar nenhum deles.

1.4 APLICAÇÕES

As três peças fundamentais para a construção de segurança são: cifras simétricas, cifras
assimétricas e funções hash.
É a partir dessas três peças que se montam quase todos os esquemas de segurança utilizados
hoje em dia.

Exemplo: assinatura digital

Uma assinatura na forma tradicional que conhecemos, ou seja, a assinatura que fazemos em
um cheque, tem sido utilizada por muito tempo como prova de autoria ou pelo menos prova de
que quem assinou concorda com o conteúdo do documento.
O que tem na assinatura que é tão convincente?
1) A assinatura é autêntica. A assinatura convence o receptor do documento de que o emissor
assinou o documento.
2) A assinatura não é falsificável. A assinatura é prova de que o emissor e somente ele poderia
ter assinado o documento.
3) A assinatura não é reutilizável. A assinatura é parte do documento. Nenhuma pessoa poderia
ter removido a assinatura de outro documento.
4) O documento é inalterável. Depois que o documento é assinado, ele não pode ser mais
alterado.
5) A assinatura não pode ser negada. A assinatura e o documento são coisas físicas. O emissor
não pode depois alegar que não assinou o documento.
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

Esquemas de assinatura digital:

ESQUEMA 1:

Suponha que uma pessoa chamada Bob tenha um par de chaves correspondentes ao esquema
de criptografia assimétrico. Suponha que uma dessas chaves seja denominada de chave privada
(Kprivada) e que seja somente de conhecimento de Bob. Suponha que a outra chave seja chamada de
chave pública (Kpública) e seja de conhecimento de todos. Um esquema de assinatura é mostrado
abaixo:

Kpública => todos conhecem

Kprivada => só Bob conhece

documento
documento documento assinado
cifrado
com Kprivada

assinatura

Ou seja, se Bob deseja assinar um documento ele cifra o documento com sua chave privada.
Este documento cifrado é chamado então de assinatura digital do documento.
Se qualquer pessoa, de posse do documento cifrado, quiser validar o documento, basta
decifrar o documento com a chave pública de Bob (Kpública). Se o documento for legível, então
somente Bob poderia tê-lo gerado.

ESQUEMA 2:

Suponha que uma pessoa chamada Bob tenha um par de chaves correspondentes ao esquema
de criptografia assimétrico. Suponha que uma dessas chaves seja denominada de chave privada
(Kprivada) e que seja somente de conhecimento de Bob. Suponha que a outra chave seja chamada de
chave pública (Kpública) e seja de conhecimento de todos. Um esquema de assinatura é mostrado
abaixo:
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

Kpública => todos conhecem

Kprivada => só Bob conhece

hash hash cifrado


com Kprivada

documento
documento
assinado
assinatura

Ou seja, se Bob deseja assinar um documento, ele gera o hash deste documento e depois cifra
o hash com sua chave privada. Este hash cifrado é chamado então de assinatura digital do
documento.
Se qualquer pessoa, de posse do documento e da assinatura digital, quiser validar o
documento, basta:

1) gerar o hash (H1)


2) decifrar a assinatura utilizando a chave pública de Bob (Kpública) gerando (H2)
3) comparar H1 com H2.

hash (H1) se for igual => assinatura válida


compara
hash (H2) se for diferente => assinatura não válida

Se H1 for igual a H2, o documento foi assinado por Bob. Isto convence que o Bob assinou o
documento, pois:
1) A assinatura é autêntica. Pois somente Bob poderia ter gerado a assinatura, uma vez que
somente ele conhece a chave privada (Kprivada)
2) A assinatura não é falsificável. Pois somente Bob conhece a chave privada (Kprivada)
3) A assinatura não é reutilizável. Pois, para outro documento, o hash (H1) será diferente.
4) O documento é inalterável. Pois se o documento for alterado, o hash (H1) será alterado
invalidado a verificação da assinatura.
5) A assinatura não pode ser negada. Pois somente Bob poderia ter gerado a assinatura uma vez
que somente ele conhece a chave privada (Kprivada).
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

2. SISTEMAS CRIPTOGRÁFICOS SIMÉTRICOS


2.1 CRIPTOGRAFIA CLÁSSICA

2.1.1 CIFRAS MONOALFABÉTICAS

CIFRA DE CÉSAR [SINKOV]

Um dos primeiros sistemas criptográficos conhecidos foi usado por Julius Caesar e é
referenciado pelo seu nome - Cifra de César. A cifra de César consiste na substituição de cada
letra da mensagem pela letra três posições à frente no alfabeto.
Suponha que eu deseje cifrar a mensagem

EU VIM EU VI EU CONQUISTEI

Em baixo de cada letra da mensagem, nós escrevemos a letra três posições à frente no
alfabeto, logo substituiremos o E por H, U por X, V por Y, etc. Com isso o processo completo é:

EU VIM EU VI EU CONQUISTEI
HX YLP HX YL HX FRQTXLVWHL

O resultado parece ininteligível, para alguém que olhe o texto cifrado e não tenha noção de
como ele foi criado. Por outro lado, quem sabe o segredo de como o texto cifrado foi criado, ele é
fácil de ser decifrado. É só substituir cada letra do texto cifrado pela letra três posições anteriores
no alfabeto. Esta cifra possui sua segurança baseada no sigilo do algoritmo (*) .
Este é um exemplo de cifra de substituição na qual cada letra da mensagem original é
substituída por outra.
Uma forma conveniente de representar esta substituição é por meio do alfabeto de
substituição que indica a substituição letra por letra, conforme abaixo:

Alfabeto em Claro ABCDEFGHIJKLMNOPQRSTUVWXYZ


Alfabeto Cifrado DEFGHIJKLMNOPQRSTUVWXYZABC

O processo criptográfico representado pela Cifra de Cesar pode ser feito numericamente.
Suponha que nós associemos cada letra com o número representando sua posição na seqüência
normal. Nós teremos a correspondência:

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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Neste caso a cifração pode ser representada da seguinte maneira:

C = (P+3) mod 26,


onde C é a letra do texto cifrado e P é a letra do texto claro.

A decifração pode ser representada da seguinte maneira:

P = (C+26-3) mod 26
onde C é a letra do texto cifrado e P é a letra do texto claro.

Seja a frase a ser cifrada com a respectiva representação numérica:

E S T O U A Q U I
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

04 18 19 14 20 00 16 20 08

Logo:
o E(4) será substituído por (4+3) mod 26 = 7 ou seja H
o S(18) será substituído por (18+3) mod 26 = 21 ou seja V
o T(19) será substituído por (19+3) mod 26 = 22 ou seja W
e assim por diante.

Seja a palavra a ser decifrada com a respectiva representação numérica:


R O D
17 14 03

Logo:
o R(17) será substituído por (17+26-3) mod 26 = 14 ou seja O
o O(14) será substituído por (14+26-3) mod 26 = 11 ou seja L
o D(03) será substituído por (03+26-3) mod 26 = 0 ou seja A
e assim por diante.

CIFRA DE DESLOCAMENTO [SINKOV]

Na cifra de César cada letra do texto em claro era substituída pela letra três posições à frente no
alfabeto. Utilizando um conceito mais genérico, podemos considerar que cada letra do texto cifrado
será formada a partir da letra do texto em claro deslocamento de K letras no alfabeto, e neste caso
consideraremos K como sendo a chave de criptografia. Logo, a segurança da cifra de deslocamento
é baseada no sigilo da chave. Por exemplo, seja a chave K igual a 5. Logo, suponha que eu deseje
cifrar a mensagem

EU VIM EU VI EU CONQUISTEI

Em baixo de cada letra da mensagem, nós escrevemos a letra cinco posições à frente no alfabeto,
logo substitui o E por J, U por Z, V por A, etc. Logo o processo completo é:
EU VIM EU VI EU CONQUISTEI
JZ ANR JZ AN JZ HTSVZNXYJN

Uma forma conveniente de representar esta substituição é por meio do alfabeto de substituição
que indica a substituição letra por letra, conforme abaixo:

Claro ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cifrado FGHIJKLMNOPQRSTUVWXYZABCDE

Suponha que nós associemos cada letra com o número representando sua posição na seqüência
normal. Nós teremos a correspondência:

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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Neste caso, podemos definir a cifra de deslocamento dada uma chave K como sendo C = (P+K)
mod 26, onde C é a letra do texto cifrado, P é a letra do texto claro.

Neste caso, a cifração utilizando a cifra de deslocamento e uma chave K pode ser representada
da seguinte maneira:
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

C = (P+K) mod 26, (*)


onde C é a letra do texto cifrado e P é a letra do texto claro.

A decifração pode ser representada da seguinte maneira:

P = (C+26-K) mod 26 (*)


onde C é a letra do texto cifrado e P é a letra do texto claro.

(*) devemos utilizar o operador mod (resto da divisão) porque estamos trabalhando com
matemática modular.

A construção de cifras de deslocamento pode ser facilmente realizada utilizando-se dispositivos


simples, feito de dois círculos concêntricos, onde cada círculo contém o alfabeto disposto sobre sua
circunferência.

Outra forma de representar a cifra de deslocamento foi descrita pelo criptólogo francês Vigenère e
é mostrado abaixo:

C
H
A texto claro
V
E
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

0 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
1 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
2 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
3 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
4 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
5 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 T
6 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
7 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 E
8 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 X
9 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 T
10 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 O
11 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
12 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 C
13 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
14 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 I
15 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 F
16 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 R
17 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 A
18 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 D
19 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 O
20 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
21 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
22 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
23 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
24 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
25 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
FACULDADE UNISABER

COORDENAÇÃO DO CURSO DE TECNOLOGIA EM SEGURANÇA DA INFORMAÇÃO

CRIPTOANÁLISE DA CIFRA DE DESLOCAMENTO POR BUSCA EXAUSTIVA EM UM


TRECHO DO TEXTO CIFRADO [SINKOV]

Como a quantidade de chaves (espaço de chaves) em uma cifra de deslocamento é pequena,


podemos escolher um trecho do texto cifrado e testar todas as possíveis chaves. Ao identificar uma
palavra conhecida, tenta-se aplicar a chave a todo o texto. Se o texto se tornar inteligível é porque a
chave era correta, senão, recomeça-se todo o processo.

Exemplo: Seja o criptograma:

DCF RSN OBCG CG PFWHOBWQCG S CG TFOBQSGSG HWBVOA OQFSRWHORC EIS O


QWTFO SBWUAO SFO WBRSQWTFOJSZ

Vamos testar todas as possíveis chaves à primeira palavra: DCF

CHAVE k texto claro CHAVE K texto claro


0 DCF 13 QPS
1 CBE 14 POR
2 BAD 15 ONQ
3 AZC 16 NMP
4 ZYB 17 MLO
5 YXA 18 LKN
6 XWZ 19 KJM
7 WVY 20 JIL
8 VUX 21 IHK
9 UTW 22 HGJ
10 TSV 23 GFI
11 SRU 24 FEH
12 RQT 25 EDG

Provavelmente a chave é 14 uma vez que o único texto em claro que corresponde a uma
palavra em português é POR.

Utilizando-se a chave 14 e decifrando todo o texto, temos o texto em claro:

POR DEZ ANOS OS BRITANICOS E OS FRANCESES TINHAM ACREDITADO QUE A


CIFRA ENIGMA ERA INDECIFRAVEL

Este tipo de criptoanálise é teoricamente possível em quase todas as cifras (só não se aplica à
cifra one-time-pad que será estudada posteriormente). O que inviabiliza este tipo de criptoanálise é o
espaço de chaves. No caso da cifra de deslocamento, o espaço de chaves é de apenas 26 chaves, o que
torna fácil testar todas as possibilidades. Estudaremos outros tipos de cifras em que o espaço de
chaves é da ordem de 2128, o que torna inviável computacionalmente esse tipo de criptoanálise, pois o
tempo que se leva para testar todas as chaves é extremamente alto.

Você também pode gostar