Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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
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.
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
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:
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
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:
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
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:
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
P = (C+26-3) mod 26
onde C é a letra do texto cifrado e P é a letra do texto claro.
E S T O U A Q U I
FACULDADE UNISABER
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.
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.
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
(*) devemos utilizar o operador mod (resto da divisão) porque estamos trabalhando com
matemática modular.
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
Provavelmente a chave é 14 uma vez que o único texto em claro que corresponde a uma
palavra em português é POR.
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.