Você está na página 1de 7
criptogrAfia aaaa crcriipppptttoooggggrrAAAAffii NOP Q99RQ ST2 PQ4RS PQ4RSTAU*VWXYZ ABCCART ABCARTEEFGHIJKLop
criptogrAfia aaaa
crcriipppptttoooggggrrAAAAffii
NOP
Q99RQ
ST2
PQ4RS
PQ4RSTAU*VWXYZ
ABCCART
ABCARTEEFGHIJKLop
HIJKLop
NOPQ99RDE23UVWXYZ
NOPQ99
3UVWXYZ
ABCD@&EOGH!IJKLMN
ABCD@
H!IJKLMN
RS232T
RS232TUVCW666XYZ
NOPQ99RSU23UVWXYZ
3UVWXYZ
P
PQ4RSTU*LWXYZ%00
RST
00
BCD@&EFTH!IJKLMN
!IJKLMN
BC4D
BC4D
por
por
GaIJ
entenda os bastidores
entenda os bastido N
res
m474R13l
m474
da criptografia
da criptografia
NOPQ99RS
NOPQ99
R23UVWXYZ
23UVWX YZ
36.hacker
36.hacker
666666 hhhhhh
kekekekekekekekekekekekerrrrrr
OP
9
egurança é um fator essencial para quem deseja egurança é um fator essencial para quem
egurança é um fator essencial para quem deseja
egurança é um fator essencial para quem deseja
termos como “chave” e “texto cifrado”, além de alguns
termos como “chave”
e
“texto cifrado”, além de alguns
S S
transmitir informações através da rede global de
transmitir informações através da rede global de
exemplos básicos. Na s egunda parte que será publicada na
exemplos básicos. Na segunda parte que será publicada na
computadores sem passar por qualquer dor de
computadores sem passar por qualquer dor de
próxima edição, estudaremos com detalhes a estrutura do
próxima edição, estuda remos com detalhes a estrutura do
cabeça no futuro. No caso de proteger as redes
cabeça no futuro. No caso de proteger as redes
famoso sistema de encr iptação RSA, com foco na questão da
famoso sistema de encriptação RSA, com foco na questão da
locais, já dispomos de ferramentas consagradas,
locais, já dispomos de ferramentas consagradas,
encriptação-decriptaçã o.
encriptação-decriptação.
que são os firewalls. Como exemplos, temos o Netfilter Iptables
que são os firewalls. Como exemplos, temos o Netfilter Iptables
do Linux e o Packet Filter do OpenBSD. Mas e quando enviamos
do Linux e o Packet Filter do OpenBSD. Mas e quando enviamos
uma mensagem, o que podemos fazer para proteger as nossas
um
CONJUNTOS E FUNÇÕES
Õ
ES
informações durante o tráfego pela rede?
info
Nas ciências exatas, chamamos de “conceito primitivo” uma
hamamos de “conceito primitivo” uma
A
A
resposta pode ser resumida em uma única palavra: cripto-
premissa-base que não é demonstrada matematicamente e
é
demonstrada matematicamente e
grafia.Mas o que é a criptografia?
gra
que é tida como “óbvia” , “intuitiva”.
, “intuitiva”.
I Informalmente, criptografar seria o mesmo que “embaralhar”
No caso da linguagem de conjuntos, o termo conjunto é
m de conjuntos, o termo conjunto é
nossas mensagens e modificá-las, de modo que não elas não
nos
assumido como
um conceito primitivo, ou seja, sabemos
onceito primitivo, ou seja, sabemos
se tornem acessíveis para qualquer pessoa, apenas para quem
se t
do que se trata , mas não como exprimi-lo através de ou-
não como exprimi-lo através de ou-
conhece o verdadeiro “segredo” envolvido na codificação.
con
tros conceitos mais elementares. Mesmo com o auxílio do
mentares. Mesmo com o auxílio do
A
Antes de começarmos a desenvolver o assunto, precisamos
dicionário, que define o conjunto como “uma coleção de
o
conjunto como “uma coleção de
esclarecer algumas definições fundamentais:
esc
objetos (os elementos) caracterizados por uma propriedade
) caracterizados por uma propriedade
em comum”, não temos realmente um conceito preciso, pois a
realmente um conceito preciso, pois a
Criptografia: estudo das técnicas matemáticas relaciona-
das aos aspectos de segurança da informação, como con-
fiabilidade, integridade de dados, autenticação de entidades
e da origem dos dados.
Criptanálise: estudo de técnicas que visam a determinar o
nível de segurança de um sistema criptográfico e o quanto
ele é resistente a um ataque.
Criptologia: ciência que estuda a criptografia e a criptanálise.
palavra “coleção” é meramente um sinônimo de conjunto. Ape-
mente um sinônimo de conjunto. Ape-
sar disso, vamos encarar informalmente o assunto, definindo
r
informalmente o assunto, definindo
conjunto como “uma coleção de objetos caracterizados por uma
eção de objetos caracterizados por uma
propriedade em comum”.
”.
CARACTERIZAÇÃO DE CONJUNTOS
E
CONJUNTOS
Utilizando-se da idéia anterior sobre conjunto, é possível de-
anterior sobre conjunto, é possível de-
fini-lo através de uma propriedade ou simplesmente listando
ropriedade ou simplesmente listando
seus elementos. Dessa maneira, um conjunto é apresentado
maneira, um conjunto é apresentado
P
PRELIMINARES MATEMÁTICOS
na seguinte forma:
O
O
mundo da computação é como uma moeda: ambos pos-
suem duas faces. Numa delas, somos usuários, não importando
sue
X =
{
}
se usamos uma interface gráfica ou digitamos raivosamente
se
linhas e mais linhas de comando, pois não sabemos o que está
linh
, p
q
Sendo que “X” é uma letra utilizada para identificar o conjunto
q
etra utilizada
p
ara identificar o conjunto
acontecendo “por trás”
aco ntecendo “por trás”
da tela. Já no outro lado, temos uma
da tela. Já no outro lado, temos uma
e as chaves “{
e as chaves “{
}”
}”
contêm a propriedade que o caracteriza; um
contê m a propriedade que o caracteriza; um
abordagem totalmente diferente: o mundo do desenvolvedor,
abo rdagem totalmente diferente: o mundo do desenvolvedor,
objeto qualquer de X é chamado de elemento.
objeto qualquer de X é c hamado de elemento.
do coder, do H4CK3R.
do coder, do H4CK3R.
A seguir, apresentamos uma lista de conjuntos, sobre os
A seguir, apresentam os uma lista de conjuntos, sobre os
Mas, tudo na vida tem um preço, e para entender a ciência
M as, tudo na vida tem um preço, e para entender a ciência
quais daremos mais det alhes posteriormente, além de utilizá-
quais daremos mais detalhes posteriormente, além de utilizá-
da criptografia sob o ponto de vista do desenvolvedor, não
da
criptografia sob o ponto de vista do desenvolvedor, não
los também.
los também.
há outra saída a não ser conhecer muito bem a matemática
outra saída a não ser conhecer muito bem a matemática
necessária e saber fazer a programação.
nec essária e saber fazer a programação.
Exemplo 1: números nat urais
Exemplo 1: números naturais
N esta primeira parte do nosso tutorial, vamos apresentar
Nesta primeira parte do nosso tutorial, vamos apresentar
a fundamentação matemática
a f undamentação matemática
da criptografia, o que inclui
da criptografia, o que inclui
O conjunto dos números naturais representa os valores que
O conjunto dos número s naturais representa os valores q
aaiiss rreepprreesseennttaa ooss vvaalloorreess qquuee
hackeracacacac erer 3337373777
hacker.37
representa os valores q aaiiss rreepprreesseennttaa ooss vvaalloorreess qquuee hackeracacacac erer 3337373777 hacker.37
criptogrAfia crcriipppptttoooggggrrAAAAffiiaa usamos para contar objetos. D tado pela letra N, é definido po
criptogrAfia crcriipppptttoooggggrrAAAAffiiaa
criptogrAfia
crcriipppptttoooggggrrAAAAffiiaa
usamos para contar objetos. D tado pela letra N, é definido po {0,1,2,3,4, {0,1,2,3,4, }.
usamos para contar objetos. D
tado pela letra N, é definido po
{0,1,2,3,4,
{0,1,2,3,4,
}.
}.
Os pontinhos “
Os pontinhos “
o o
número 4 indicam que o conjunt
tinua para o infinito.
tinua para o infinito.

usamos para contar objetos. Deno-

=

após

número 4 indicam que o conjunto con-

tado pela letra N, é definido por N

Exemplo 2: conjunto dos números inteiros

Exemplo 2: conjunto dos números int
Exemplo 2: conjunto dos números int
É É um conjunto muito importante para um conjunto muito important o o estudo de
É
É
um conjunto muito importante para
um conjunto muito important
o
o
estudo de criptografia, pois a
estudo de criptografia, pois a partir
dele, construímos o chamado conjunto
dele, construímos o chamado con
dos inteiros módulo k. O conjunto dos
dos inteiros módulo k. O conjunt
números inteiros é definido como sendo
números inteiros é definido como
Z
Z
=
= {
{
,-3,-2,-1,0,1,2,3,
,-3,-2,-1,0,1,2,3,
},
},
de
de forma
f
análoga ao caso do Exemplo 1. Os pon-
análoga ao caso do Exemplo 1. Os
tinhos “
tinhos “
indicam a continuaçã
indicam a continuação dos
elementos, mas dessa vez, também para
elementos, mas dessa vez, também
o
o
infinito negativo.
infinito negativo.

Exemplo 3: conjunto dos inteiros módulo k

Exemplo 3: conjunto dos inteiros mód
Exemplo 3: conjunto dos inteiros mód

ciências exatas. Com essas operações, Z/kZ é um exemplo de uma estrutura matemática chamada anel. É possível mostrar que o número de elementos de Z/kZ é igual a k.

FUNÇÕES ENTRE CONJUNTOS

Outro conceito fundamental em mate-

mática é o de função. Um modo informal

de

pensarmos uma função é o de um obje-

to

matemático que expressa a dependên-

cia

entre grandezas físicas. Por exemplo,

a frase “a pressão dentro do oceano varia

de modo diretamente proporcional à pro-

fundidade” está definindo implicitamente

uma função. Para quantificar essa frase, basta representar a grandeza pressão com

a letra P e a profundidade com a letra H.

Deste modo, temos:

se dados quaisquer x,y X. Assim,

função injetora: f é dita ser injetora

: f é dita ser injetora X. Assim,
: f é dita ser injetora
X. Assim,

temos que f(x) f(y).

• função sobrejetora: f é dita ser so-

brejetora se qualquer que seja o y Y e existe um x X tal que f(x) = y.

•funçãobijetora:ébijetoraseforsimul-

taneamente injetora e sobrejetora.

Desses três casos, o mais importante para nós é a função bijetora, pois uma bijeção sig- nifica uma identificação completa entre dois conjuntos. Mais explicitamente, podemos transformar qualquer elemento de X em Y de forma única e vice-versa (existe a inversa, cujo conceito veremos logo a seguir). Quan- do definimos sistema criptográfico, veremos que as transformações de condificação e decodificação são funções bijetoras.

Neste exemplo, precisamos de uma

Neste exemplo, precisamos de construção abstrata. Seja k um i positivo, dado o conjunto kZ
Neste exemplo, precisamos de
construção abstrata. Seja k um i
positivo, dado o conjunto kZ = {
positivo, dado o conjunto kZ = {
2k,-k,0,k,2k,3k,
2k,-k,0,k,2k,3k,
},
},
vamos “agi
sobre Z. Isso significa o seguinte:
m m
∈Z
( o “∈” significa que m é u
mento de Z e m pertence a Z), defi
o o
conjunto [m] = { m + kx | x ∈Z }.
conjunto, a barra “|” significa “tal
um elemento sintático auxiliar na
terização do conjunto.
terização do conjunto.
A A
semântica de [m] (a chamada cla

construção abstrata. Seja k um inteiro

,-3k,-

vamos “agir” kZ

sobre Z. Isso significa o seguinte: dado

Z ( o “” significa que m é um ele-

mento de Z e m pertence a Z), definimos

conjunto [m] = { m + kx | x Z }. Neste

conjunto, a barra “|” significa “tal que”,

um elemento sintático auxiliar na carac-

semântica de [m] (a chamada classe de

m) é que temos um conjunto que representa

m)équetemosumconjuntoquerepr

todos os elementos que possuem o mesmo

“resto” que m, quando divididos por k.

O restante da construção é definir o

Z/kZ = { [m] | m Z }. Na literatura

matemática, esse é o chamado “con-

junto dos inteiros módulo k”. Podemos

definir operações neste conjunto, mais

concretamente, definimos uma adição e

uma multiplicação de tal forma que po-

demos calcular com ele de modo muito

semelhante aos cálculos que fazemos

com o conjunto dos números reais das

P = cH, onde c é uma constante de pro- porcionalidade positiva. Assim, dizemos que P é uma função de h, um ponto de

vista que enfatiza grandezas, muito uti- lizado na física e engenharia. Denotamos

o valor da função pressão num elemento específico h como P(h).

Mas, para nossos estudos de crip- tografia, precisamos de uma definição formal de função:

Definição: Sejam X e Y conjuntos, uma função f de X em Y é uma regra que

associa a cada elemento de X (o domínio

da função) um único elemento de Y (o

COMPOSIÇÃO DE FUNÇÕES

A composição de funções é um concei- to bem simples. Dadas as funções f: A B e g: B C, definimos a compo- sição delas como sendo a função gof:

A C, dada por:

gof(x) := g(f(x))

Sendo que o sinal “:=”

que estamos definindo uma nova função, uma notação herdada da linguagem Pascal.

informa

todos os elementos que possuem o m “resto” que m, quando divididos por O restante
todos os elementos que possuem o m
“resto” que m, quando divididos por
O restante da construção é def
conjunto “quociente”, dado por
conjunto “quociente”, dado por
Z/kZ = { [m] | m ∈Z }. Na lite
matemática, esse é o chamado
junto dos inteiros módulo k”. Pod
definir operações neste conjunto,
concretamente, definimos uma ad
uma multiplicação de tal forma qu
demos calcular com ele de modo
semelhante aos cálculos que faz
com o conjunto dos números rea
38.hacker
38338.hhackecker
com o conjunto dos números rea 38.hacker 38338.hhackecker contradomínio da função). A função f é é

contradomínio da função). A função f é

é denotado por f(x).

FUNÇÃO INVERSA

denotada simbolicamente como f: X Y e o seu valor num ponto x X

Antes de apresentarmos uma sequência de exemplos, precisamos definir o concei- to de função inversa. Uma função f : X

Y

é dita invertível se existe uma função g:

A letra X (em geral são usadas as

Y

X tal que f(g(y)) = y e g(f(x)) = x para

últimas letras do alfabeto latino) é chamada de variável. Dada uma função f: X Y, ela pode apre-

sentar três tipos de comportamento:

todos x X, y Y. Segue da definição que uma função é invertível se e somente se é bijetora.

Como exemplos de funções, temos:

Y. Segue da definição que uma função é invertível se e somente se é bijetora. Como
Exemplo 1: Função bijetora Exemplo 1: Função bijetora À À primeira vista, parece uma definição
Exemplo 1: Função bijetora
Exemplo 1: Função bijetora
À
À primeira vista, parece uma definição
primeira vista, parece uma definição
Pela definição, temos:
Pela definição, temos:
muito abstrata, principalmente porque na
muito abstrata, principalmente porque na
Consideremos o conjunto dos números reais
Consideremos o conjunto dos números reais
literatura matemática as matrizes são “de-
literatura matemática as matrizes são “de-
f(tr3(x)) = f(x+3) = (x+3)²
f(tr3(x)) = f(x+3) = (x+3)²
(os números usuais) R. Seja uma função f: R →
(osnúmerosusuais)R.Sejaumafunçãof:R→
finidas” utilizando-se tabelas de números.
finidas” utilizando-se tabelas de números.
R
dada por f(x) = x + 5, concluímos que a função
dadaporf(x)=x+5,concluímosqueafunção
Mas, esse ponto de vista não faz sentido,
Mas, esse ponto de vista não faz sentido,
ELEMENTOSDECRIPTOGRAFIA
ELEMENTOSDECRIPTOGRAFIA
g: R → dada por g(x) = x – 5 é a inversa de f.
a por g(x) = x – 5 é a inversa de f.
pois não é expressável em termos de
pois não é expressável em termos de
Agora que já vimos o background ne-
Agora que já vimos o background ne-
De fato:
conjuntos; a nossa definição não é apenas
conjuntos; a nossa definição não é apenas
cessário sobre conceitos matemáticos,
cessário sobre conceitos matemáticos,
rigorosa, mas também é o que se utiliza na
rigorosa, mas também é o que se utiliza na
apresentaremos as estruturas básicas da
apresentaremos as estruturas básicas da
f(g(x)) = f(x-5) = x-5+5 = x
g(f(x)) = g(x+5) = x+5-5 = x
prática em programação e, de forma ainda
prática em programação e, de forma ainda
criptografia. Na maioria das publicações não
criptografia. Na maioria das publicações não
mais abstrata, pensamos em um tipo de
ais abstrata, pensamos em um tipo de
técnicas existentes, termos como “chaves” e
técnicasexistentes,termoscomo “chaves”e
dado bidimensional, que pode armazenar
ensional, que pode armazenar
“sistema criptográfico” são sempre citados
“sistema criptográfico” são sempre citados
t
t
ó
l it
t
t
b

Portanto f é bijetora.

Exemplo 2: Permutações do conjunto

Xn

={1,2,3,

,n}

caracteres, números, vetores etc.

Exemplo 4: Fatorial de um número natural

mas,apósumaleituraatenta,percebemosque

em nenhum momento eles são devidamente explicados. Vamos esclarecer as principais dúvidas pertinentes ao assunto.

Uma permutação em Xn é uma bijeção de Xn

em Xn. Por exemplo, a função

f : Xn Xn dada por f(1) = 2, f(2) = 1 e f(x) = x

para todo x 3 é uma permutação em Xn.

O conjunto de todas as permutações em

Xn é chamado de grupo das permuta- ções, sendo denotado por S(Xn) (para uma apresentação detalhada sobre gru- pos, consulte as referências). De forma ainda mais concreta, tomemos o caso X2 = {1, 2}. Temos aqui apenas duas permutações dadas pelas funções:

f1(1) = 1, f1(2) = 2 f2(1) = 2, f2(2) = 1

É possível mostrar que o número de elementos de S(Xn) é igual a n! , o cha- mado fatorial de n. No exemplo 3, logo abaixo, apresentamos mais detalhes sobre a noção de fatorial.

Exemplo 3: Matrizes

Sejam os conjuntos In = {1,2,3, ,n}

definimos uma

matriz n x m com entradas reais como sendo uma função A : In x Im R. Aqui, o termo In x Im significa o conjunto dos pares ordenados (x,y) com x In

e y Im.

e Im

= {1,2,3,

,m},

Dado um número natural n, o seu fatorial é denotado como n! e o definimos recur- sivamente, ou seja:

0! = 1 n! = n(n-1)! para

n

> 0

Fazer cálculos com essa definição é bem simples. Por exemplo, para n = 3 temos:

3! = 3(3-1)! = 3.2! = 3.2.(2- 1)! = 3.2.1! = 3.2.1.(1-1)! = 3.2.1.0!

Mas, pela definição, sabemos que 0! = 1, portanto:

3! = 6

A partir disso, definimos uma função, da

qual chamaremos de fat: N N dada por:

fat(n) = n!

Exemplo 5 : Compondo as funções “elevar ao quadrado” e translação

Sejam as funções f: R R e tr3: R R, dadas por:

f(x) = x² tr3(x) = x + 3

Definição 1: Um sistema criptográfico é uma quíntupla de objetos SC = < M, C, K, {Ee}, {Dd} > em que temos:

•M é um conjunto chamado de espa- ço de texto comum, visto que seus elementos são chamados de texto comum. Temos aqui os textos que vamos codificar.

•C é um conjunto chamado de espaço de texto cifrado, sendo que seus elementos são chamados de texto cifrado. Estes são os textos que queremos decodificar.

• K é um conjunto chamado de espaço

de chaves, lembrando que seus ele- mentos são chamados de chaves.

• {Ee} com e K , é uma família de

bijeções Ee : M C ; chamadas de

funções de encriptação.

• {Dd} com d K , é uma família de bijeções Dd: C M, chamadas de funções de decriptação.

E sujeitos ao seguinte vínculo:

Para cada e K , existe um único d K tal que Ee é a função inversa de Dd, e vice-versa, e um par (e,d) é chamado

hacker.39
hacker.39
criptogrAfia crcriipppptttoooggggrrAAAAffiiaa
criptogrAfia
crcriipppptttoooggggrrAAAAffiiaa
de par de chaves. Semanticamente, de par de chaves. Semanticamente, Já a chave de encriptação
de par de chaves. Semanticamente,
de par de chaves. Semanticamente,
Já a chave de encriptação é enviada
Já a chave de encriptação é enviada
mente, aguarda sua chegada. É importante
mente, aguarda sua chegada. É importante
o o
espaço de chaves K serve como um
espaço de chaves K serve como um
através de um canal seguro (através de
através de um canal seguro (através de
ressaltarmos que a segurança desse tipo de
ressaltarmosqueasegurançadessetipode
ambiente de classificação para as fun-
ambiente de classificação para as fun-
ssh, por exemplo), e o envio da chave
ssh, por exemplo), e o envio da chave
sistema se mantém devido ao fato de ser
sistema se mantém devido ao fato de ser
ções de encriptação e decriptação Ee
ções de encriptação e decriptação Ee
e é suficiente, pois d=e. A personagem
e é suficiente, pois d=e. A personagem
totalmente impraticável descobrir qual é a
totalmente impraticável descobrir qual é a
e e
Dd, respectivamente. Uma premissa
Dd, respectivamente. Uma premissa
atacante é alguém que deseja intercep-
atacante é alguém que deseja intercep-
chave de decriptação.
chave de decriptação.
básica da criptografia é a de que todo o
básica da criptografia é a de que todo o
tar o texto cifrado, procurando também
tar o texto cifrado, procurando também
Agora, apresentaremos uma sequência de
Agora, apresentaremos uma sequência de
sistema criptográfico SC = <M,C, K, {Ee},
sistema criptográfico SC = <M,C, K, {Ee},
obter a chave utilizada para acessar seu
obter a chave utilizada para acessar seu
exemplos exemplosrelacionadosasistemascriptográ- relacionados a sistemas criptográ-
{Dd}> deve ser conhecido, porém não é
{Dd}> deve ser conhecido, porém não é
conteúdo original. Mas, num sistema
conteúdo original. Mas, num sistema
ficos, que servirão para clarear a definição
ficos, que servirão para clarear a definição
revelado o par de chaves (e,d) utilizado
revelado o par de chaves (e,d) utilizado
de chave simétrica, o atacante “tem”
de chave simétrica, o atacante “tem”
formal definida anteriormente e, também,
formal definida anteriormente e, também,
numa encriptação.
numa encriptação.
acesso apenas ao texto cifrado.
acesso apenas ao texto cifrado.
para introduzirmos novos conceitos a res-
para introduzirmos novos conceitos a res-
peito desse mesmo assunto.
peito desse mesmo assunto.
CLASSIFICAÇÃO DOS
CLASSIFICAÇÃO DOS
Criptosistema de chave pública
Criptosistema de chave pública
CRIPTOSISTEMAS
CRIPTOSISTEMAS
Esse criptosistema difere do caso ante-
Esse criptosistema difere do caso ante-
Exemplo 1: Sistema de encriptação
Exemplo 1: Sistema de encriptação
i
l
t
E
i
i
T
M
d
l (
d
l
i
l
)

rior em alguns aspectos. Em primeiro

Toy Model (modelo simples)

Criptosistema de chave simétrica No caso em que e=d , dizemos que o sis- tema de encriptação é simétrico. Quando utilizamos um criptosistema simétrico, a arquitetura do mecanismo de transmissão, tanto da chave quanto da mensagem cifrada, pode ser ilustrado como na figura abaixo:

lugar, o sistema não é simétrico, tanto a mensagem c cifrada, quanto a chave de encriptação, estão disponíveis através

O

sistema criptográfico SC = <M,C, K, {Ee},

{Dd} > é dado por :

de

canais inseguros. A segurança do sis-

tema é garantida devido à inviabilidade

 

M

= {x1,x2,x3}

computacional de se descobrir qual é a chave de decriptação d.

C

= {y1,y2,y3}

K

= {1,2,3,4,5,6}

A

arquitetura de um sistema de chave

Atacante Canal Seguro Espaço de Chaves Encriptação Decriptação Ee(m)=c Canal De(c)=m Inseguro Espaço de
Atacante
Canal Seguro
Espaço de
Chaves
Encriptação
Decriptação
Ee(m)=c
Canal
De(c)=m
Inseguro
Espaço de
Destino
texto comum
João
Maria

Temos apenas como exemplo, o caso de um emissor (João) e de um receptor (Maria). João toma um texto fonte e o

pública está ilustrada abaixo: Atacante Espaço de Chaves Canal Inseguro 2) Adicionar a imagem tela2.png
pública está ilustrada abaixo:
Atacante
Espaço de
Chaves
Canal
Inseguro
2) Adicionar a imagem tela2.png aci-
ma deste apontador
Decriptação
Encriptação
De(c)=m
Ee(m)=c
Canal
Inseguro
Espaço de
Destino
texto comum
Maria
João

Utilizando o exemplo citado anteriormente, porém com mais detalhes, João escolhe um

As Ee e Dd são as permutações de um conjunto de 3 elementos, como vimos na in- trodução desse tutorial, para a permutação

E1 dada por E1(x1) = y3, E1(x2)=y1 e E1(x3)= y2. A sua inversa é a função D6, dada por D6(y1)= x2, D6(y2)=x3 e D6(y3)= x1. Portanto, concluimos que o par de chaves

é (1,6), que não é simétrico. Embora esse

exemplo não possua aplicação prática, serve para ilustrar um sistema criptográfico.

Exemplo 2: o código secreto de César

É isso mesmo que você está pen- sando: o imperador romano Júlio Cesar tinha o seu próprio sistema criptográfico. O código de César está definido abaixo:

codifica através da função de encripta- ção apontada pela chave. Depois, envia

par de chaves (e,d), envia para Maria a cha-

M

= palavras escritas com o

alfabeto latino

ve

de encriptação e (a chave pública), mas

C

= strings escritas com o alfabeto latino

a

mensagem codificada c para Maria,

K

= {0,1,2,3,

,25}

através de um canal (um meio físico de se transmitir uma informação) inseguro (via e-mail, por exemplo).

mantém a chave de decriptação d secreta e segura (a chamada chave privada). De posse da chave, Maria encripta uma men- sagem e a envia para João, que, simples-

Para descrevermos as funções de en- criptação e decriptação, precisamos

40.hacker
40.hacker
da tabela de identificação entre letras da tabela de identificação entre letras Vamos calcular alguns
da tabela de identificação entre letras
da tabela de identificação entre letras
Vamos calcular alguns casos com Ee
Vamos calcular alguns casos com Ee
As funções de encriptação (e de decrip-
A s funções de encriptação (e de decrip-
e
e números:
números:
para e=2
para e=2
tação) são, simplesmente, as permutações
taçã o) são, simplesmente, as permutações
do conjunto
do c onjunto X
X
.
26 26 .
A A
0 0
N N
13 13
E2(D) = hogof(D) = hog([3]) =
E2(D) = hogof(D) = hog([3]) =
Como exemplo, tomemos a permutação
C omo exemplo, tomemos a permutação
B B
1 1
O O
14 14
h(g([3])) = h([3+2]) = h([5]) = F (
h(g([3])) = h([3+2]) = h([5]) = F (
que consiste em associar a cada letra, na
que consiste em associar a cada letra, na
C C
2 2
P P
15 15
E2(D) = F)
E2(D) = F)
ordem determinada acima, aquela letra
ord em determinada acima, aquela letra
D D
3 3
Q Q
16 16
E2(E) = hogof(E) = hog([4]) =
E2(E) = hogof(E) = hog([4]) =
que fica três posições adiante. Deste
que
fica três posições adiante. Deste
E E
4 4
R R
17 17
h(g([4])) = h([4+6]) = h([10]) = K
h(g([4])) = h([4+6]) = h([10]) = K
modo, temos que Ee é dada por:
mod o, temos que Ee é dada por:
F F
5 5
S S
18 18
( E2(E) = K)
( E2(E) = K)
G G
6 6
T T
19 19
A A
D D
N N
Q Q
E2(U) = hogof(U) = hog([20]) =
E2(U) = hogof(U) = hog([20]) =
H H
7 7
U U
20 20
B B
E E
O O
R R
h(g([20])) = h([20+2]) = h([22])
h(g([20])) = h([20+2]) = h([22])
I I
8 8
V V
21 21
C C
F F
P P
S S
=W ( E2(U) = W )
=W ( E2(U) = W )
J J
9 9
W W
22 22
D D
G G
Q Q
T T
E2(S) = hogof(S) = hog([18]) =
E2(S) = hogof(S) = hog([18]) =
K K
10 10
X X
23 23
E E
H H
R R
U U
h( ([18])) = h([18+2]) = h([20]) =

L

11

Y 24

M

12

Z 25

h([18+2]) = h([20]) = L 11 Y 24 M 12 Z 25 h(g([18])) = h([18+2]) =

h(g([18])) = h([18+2]) = h([20]) =

U ( E2(S) = U )

Então, se tomarmos o texto que contém

Dado eK , a função de encriptação Ee é a resultante da composição das funções:

apenas a palavra DEUS , após a codifica- ção com a função E2, obtemos o texto cifrado que contêm a palavra FKWU. Através de inspeção direta (calculan-

M Z/Z26 Z/Z26 C

f

g

h

do), percebe-se que o código de César

Sendo que:

um sistema criptográfico simétrico. De fato, para todo eK , tomando d

é

F F I I S S V V G G J J T T W
F F
I I
S S
V V
G G
J J
T T
W W
H H
K K
U U
X X
I I
L L
V V
Y Y
J J
M M
W W
Z Z
K K
N N
X X
A A
L L
O O
Y Y
B B
M M
P P
Z Z
C C

Além disso, vamos quebrar o texto fonte

ém disso, vamos quebrar o texto fonte
ém disso, vamos quebrar o texto fonte

• f é a função dada pela identificação letra- número da tabela acima.

• g é uma função dada por g([x]) = [x+e].

• h é a função dada pela identificação número - letra da tabela acima.

Portanto, Ee = hogof

Entretanto, a função de decriptação para um d K é, de forma análoga, dada por:

Onde:

M Z/Z26 Z/Z26 C

f’

g’

h’

= e , temos Dd o Ee = idM, sendo que idM é a função identidade. Vamos verificar concretamente:

D2oE2 (D) = D2(F) = h’og’of’(D) = h’og’([5]) = h’([5-2]) = h’([3]) = D

Exemplo 3: Encriptação por blocos

A encriptação por blocos consiste em agrupar os caracteres do texto comum em blocos de tamanho k. Depois, sobre

estes blocos, é aplicada a função de en- criptação, rotulada por uma chave e K. Neste exemplo, utilizaremos:

em blocos de comprimento igual a cinco. Para

locosdecomprimentoigualacinco.Para

exemplificar, temos aqui o texto comum:

mplificar, temos aqui o texto comum:
mplificar, temos aqui o texto comum:
GOD IS THE LORD OF THE GOD IS THE LORD OF THE UNIVERSE UNIVERSE
GOD IS THE LORD OF THE
GOD IS THE LORD OF THE
UNIVERSE
UNIVERSE

Após o agrupamento, ficamos com:

s o agrupamento, ficamos com:
s o agrupamento, ficamos com:
GODIS THELO RDOFT HEUNI GODIS THELO RDOFT HEUNI VERSE VERSE
GODIS THELO RDOFT HEUNI
GODIS THELO RDOFT HEUNI
VERSE
VERSE

aplicando a função de encriptação Ee,

E

obtemos finalmente:

licando a função de encriptação Ee, emos finalmente:
licando a função de encriptação Ee,
emos finalmente:
JRGLV WKHOR UGRIW KHXQL JRGLV WKHOR UGRIW KHXQL YIUVH YIUVH
JRGLV WKHOR UGRIW KHXQL
JRGLV WKHOR UGRIW KHXQL
YIUVH
YIUVH

f’ é a função dada pela identificação

M

= palavras escritas com o alfabeto latino

letra-número da tabela acima.

C

= strings escritas com o alfabeto latino

Exemplo 4: Composição de sistemas

mplo 4: Composição de sistemas
mplo 4: Composição de sistemas

g’ é uma função dada por g’([x]) = [x-d].

K

= {1,2,3,4,

,

26! } - espaço de chaves,

tográficos

criptográficos

• h’ é a função dada pela identificação número - letra da tabela acima.

Portanto, Dd = h’og’of’.

rotula todas as permutações de S(X 26 ),

sendo que X 26 é o alfabeto latino. Então ordenamos este conjunto como

A = x 1 , B= x 2 , C= x 3 ,

,

Z=x 26

Quando comentamos sobre funções, vimos

a

processo de encriptação é funcional, não é

ndocomentamossobrefunções,vimos

noção de composição de funções. Como o

ção de composição de funções. Como o esso de encriptação é funcional, não é hacker.41
ção de composição de funções. Como o
esso de encriptação é funcional, não é
hacker.41
hackerhac
r.4141
criptogrAfia crcriipppptttoooggggrrAAAAffiiaa
criptogrAfia
crcriipppptttoooggggrrAAAAffiiaa
de de se estranhar que possamos compor sis- se estranhar que possamos compor s is-
de de
se estranhar que possamos compor sis-
se estranhar que possamos compor s is-

temascriptográficos.Nesteexemplo,vam os

temas criptográficos. Neste exemplo,vamos

compor dois criptosistemas. O primeiro compor dois criptosistemas. O prime iro deles, que chamaremos de
compor dois criptosistemas. O primeiro
compor dois criptosistemas. O prime iro
deles, que chamaremos de SC1, consiste
deles, que chamaremos de SC1, consi ste
Letra Letra String Binária String Binária K K 01010 01010 L L 01011 01011 M
Letra
Letra
String Binária
String Binária
K K
01010 01010
L L
01011 01011
M M
01100 01100
N N
01101 01101
O O
01110 01110
P P
01111 01111
Q Q
10000 10000
R R
10001 10001
S S
10010 10010
T T
10011 10011
U U
10100 10100
V V
10101 10101
W W
10110 10110
X X
10111 10111
Y Y
11000 11000

Z 11001

Neste caso, encriptar significa ler a tabela da esquerda para a direita e, decriptar, o contrário.

A permutação que utilizaremos é dada A permutação que utilizaremos é dada pela tabela abaixo:
A permutação que utilizaremos é dada
A permutação que utilizaremos é dada
pela tabela abaixo:
pela tabela abaixo:
1 1 2 2 3 3 4 4 5 5 2 2 1 1 4
1
1
2
2
3
3
4
4
5
5
2
2
1
1
4
4
3
3
5
5
Primeiro passo de encriptação: con-
Primeiro passo de encriptação: con-
verter as letras da palavra em strings
verter as letras da palavra em strings
binárias. Para isso, vamos utilizar a
binárias. Para isso, vamos utilizar a
primeira tabela:
primeira tabela:
D
D → 00011
→ 00011
tabela: primeira tabela: D D → 00011 → 00011 E U S → 00100 → 10100

E

U

S

00100

10100

10010

Segundo

permutar os elementos de cada string binária:

encriptação :

passo

da

em permutações de um conjunto com cin co em permutações de um conjunto com cinco
em permutações de um conjunto com cin co
em permutações de um conjunto com cinco
elementos. É definido como segue:
elementos. É definido como segue:
M1 = strings binárias de comprime nto
M1 = strings binárias de comprimento
igual a cinco
igual a cinco
C1 C1
= strings binárias de comprime
= strings binárias de comprimento
nto
igual a cinco
igual a cinco
K K
= {p1,p2,
= {p1,p2,
,p120}
,p120}
= chaves de
= chaves
de
encriptação que rotulam as permu-
encriptação que rotulam as perm
u-
tações de um conjunto com cin co
tações de um conjunto com cinco
elementos elementos Asfunçõesdeencriptação(Ee)decriptação(D são as permutações do conjunto X são as
elementos
elementos
Asfunçõesdeencriptação(Ee)decriptação(D
são as permutações do conjunto X
são as permutações do conjunto X
.
5 5 .
O O
segundo criptosistema SC2 é basea
no fato de que podemos expressar
números através de uma string binária
comprimento cinco.
comprimento cinco.
Dessa maneira, como o alfabeto latino p
sui apenas 26 letras, podemos definir u
encriptaçãoletra-númerobinário.Defor
mais concreta, o SC2 é definido como:
mais concreta, o SC2 é definido como:
M2 = palavras escritas com o al
beto latino
beto latino
C2 = strings binárias
C2 = strings binárias
K2 = {1,2,3,4,5,
K2 = {1,2,3,4,5,
,26}
,26}
= é o espa
das chaves de encriptação
das chaves de encriptação
As funções de encriptação Ee e Dd s
definidas através da seguinte tabela:
definidas através da seguinte tabbeellaa
Letra
Letra
String BBiinnáária
String Binária
A A
00000 0000000
B B
00001 00001
C C
00010 00010
D D
00011 00011
E E
00100 00100
F F
00101 000101
G G
00110 0000110
H H
00111 00111111
I I
01000 01000
J J
01001 01001

Asfunçõesdeencriptação(Ee)decriptação(Dd)

segundo criptosistema SC2 é baseado

no fato de que podemos expressar 32

números através de uma string binária de

Dessa maneira, como o alfabeto latino pos-

sui apenas 26 letras, podemos definir uma

encriptação letra-número binário. De forma

M2 = palavras escritas com o alfa-

= é o espaço

As funções de encriptação Ee e Dd são

= é o espaço As funções de encriptação Ee e Dd são Vamos denotar o criptosistema

Vamos denotar o criptosistema composto como SC2oS12. Nessa ordem, significa que primeiro trocamos cada letra de cada pala- vra pela correspondente string binária.

D

00011 00101

E

00100 00010

U

10100 01010

 

S

10010 01100

Em seguida, efetuamos uma permuta- ção em cada bloco binário de compri- mento cinco, começando da esquerda

para a direita nas sequências de bits. Como exemplo concreto, vamos encrip- tar a palavra DEUS.

Portanto, temos o resultado final da encriptação composta

DEUS 00101000100101001100

Para saber mais

Handbook of Applied Cryptography, by A. Menezes, P. van Oorschot, and S. Vanstone, CRC Press, 1996 – link: www.cacr.math.uwaterloo.ca/hac

CRC Press, 1996 – link: www.cacr.math.uwaterloo.ca/hac Introdução à Criptografia , por Johannes A. Buchmann –
CRC Press, 1996 – link: www.cacr.math.uwaterloo.ca/hac Introdução à Criptografia , por Johannes A. Buchmann –

Introdução à Criptografia, por Johannes A. Buchmann – tradução da Editora Berkeley – 2002

Applied Cryptography, second edition

by Bruce Schneier - John Wiley & Sons - 1996

Um review sobre o sistema criptográfico RSA http://www.geometer.org/mathcircles/RSA.pdf

42.hacker 42442.hhackecker
42.hacker
42442.hhackecker