criptografia parte i
DESCRIPTION
Uma introdução à criptografia. Material original, de minha autoria.TRANSCRIPT
-
36.hacker
criptogrAfia
36.hacker
PQ4RSTAU*VWXYZABCARTEEFGHIJKLop
MNOPQ99RDE23UVWXYZABCD@&EOGH!IJKLMNRS232TUVCW666XYZ
MNOPQ99RSU23UVWXYZPQ4RSTU*LWXYZ%00
ABCD@&EFTH!IJKLMNABC4D GaIJ
MNOPQ99RSR23UVWXYZNOPQ99RST23UV
NOPQ99RSNOPQ99RST23UV
NOPQ99RSRNOPQ99RST23UV
R23UVWXYZNOPQ99RST23UV
23UVWXYZR23UVWXYZRNOPQ99RST23UV
R23UVWXYZR
MMPQ4RST
MPQ4RSTPQ4RSTAPQ4RST
MPQ4RSTAPQ4RST
NOPQ99RST23NOPQ99RST23PQ4RST
NOPQ99RST23PQ4RSTA
NOPQ99RST23APQ4RSTAPQ4RSTNOPQ99RST23
PQ4RSTAPQ4RST U*VWXYZNOPQ99RST23U*VWXYZ
MNOPQ99RST23MMNOPQ99RST23MPQ4RST
MPQ4RST
NOPQ99RST23PQ4RST
MPQ4RSTPQ4RSTAPQ4RST
MPQ4RSTAPQ4RST
NOPQ99RST23PQ4RSTAPQ4RST
MPQ4RSTAPQ4RST
MMM
MMNOPQ99RST23NOPQ99RST23
MNOPQ99RST23
MMNOPQ99RST23
MMNOPQ99RST23
MMNOPQ99RST23
MMNOPQ99RST23
MMNOPQ99RST23
MNOPQ99RST23NOPQ99RST23NOPQ99RST23NOPQ99RST23
NOPQ99RST23NOPQ99RST23NOPQ99RST23
NOPQ99RST23NOPQ99RST23NOPQ99RST23
NOPQ99RST23NOPQ99RST23MNOPQ99RST23M
NOPQ99RST23MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MNOPQ99RST23
MNOPQ99RST23MMNOPQ99RST23MMNOPQ99RST23MM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMM
entenda os bastidores da criptografia
12909328721398472348
porm474R13l
crcriiiiptoptoptoptoptoptoptoptoptoptoptoptoggggggrrrrrrAAAAAfffffiififfif aa
363636363636363636363636363636...hackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhacker
PQ4RSTPQ4RSTPQ4RSTABCPQ4RST
ABCPQ4RST
ARTEPQ4RST
ARTEPQ4RST
ABCARTEABCPQ4RST
ABCPQ4RST
ARTEPQ4RST
ABCPQ4RST
NOPQ99RABCNOPQ99RABCARTENOPQ99R
ARTEABCARTEABCNOPQ99RABCARTEABCABCD@&ENOPQ99RABCD@&ENOPQ99RRS232TUVABCD@&ERS232TUVABCD@&ENOPQ99RSRS232TUVNOPQ99RSRS232TUVPQ4RSTU*NOPQ99RSPQ4RSTU*NOPQ99RS
ABCD@&EFPQ4RSTU*
ABCD@&EFPQ4RSTU*ABC4D ABCD@&EFABC4D ABCD@&EFNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RSNOPQ99RS
363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636363636
NOPQ99RS363636...
NOPQ99RS......
NOPQ99RS......
NOPQ99RS...hackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhackerhackerhackerhacker
NOPQ99RShackerhackerhacker
ABC4D NOPQ99RSABC4D
MMMMMMNOPQ99RS
MNOPQ99RSNOPQ99RS
MNOPQ99RSNOPQ99RS
MNOPQ99RS
NOPQ99RST23UVNOPQ99RS
NOPQ99RST23UVNOPQ99RS
MNOPQ99RST23UVMMNOPQ99RST23UVMNOPQ99RS
MNOPQ99RS
NOPQ99RST23UVNOPQ99RS
MNOPQ99RS
MMMPQ4RST
MPQ4RST
MMMMMMMaMaaMa MMMM
MMM
MMM
MMM
MMM
MMM
MM
MNOPQ99RST23MMNOPQ99RST23MMNOPQ99RST23MMNOPQ99RST23MM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMMM
MMNOPQ99RST23
MMM
ABC4D porABC4D ABC4D m474R13lABC4D
U*VWXYZEFGHIJKLopU*VWXYZ
EFGHIJKLopU*VWXYZ
23UVWXYZEFGHIJKLop
23UVWXYZEFGHIJKLop
GH!IJKLM23UVWXYZGH!IJKLM23UVWXYZ
N23UVWXYZ
N23UVWXYZGH!IJKLMNGH!IJKLM23UVWXYZGH!IJKLM23UVWXYZ
N23UVWXYZGH!IJKLM23UVWXYZW666XYZGH!IJKLMW666XYZGH!IJKLMGH!IJKLMNGH!IJKLMW666XYZGH!IJKLMNGH!IJKLM23UVWXYZW666XYZ23UVWXYZW666XYZWXYZ%23UVWXYZWXYZ%23UVWXYZ
0023UVWXYZ
0023UVWXYZH!IJKLMWXYZ%H!IJKLMWXYZ%00H!IJKLM
00N00N00
H!IJKLMNH!IJKLMWXYZ%H!IJKLMWXYZ%
NWXYZ%H!IJKLMWXYZ%00H!IJKLM
00N00
H!IJKLM00
IJH!IJKLMIJH!IJKLM23UVWXYZIJ23UVWXYZIJ
NOPQ99RST23UV23UVWXYZ
NOPQ99RST23UV23UVWXYZ
NOPQ99RST23NOPQ99RST23NOPQ99RST23U*VWXYZ
NOPQ99RST23U*VWXYZ
NOPQ99RST23NOPQ99RST23
NOPQ99RST23NOPQ99RST23NOPQ99RST23
NOPQ99RST23NOPQ99RST23
da criptografia
23UVWXYZda criptografia
23UVWXYZ
12909328721398472348NOPQ99RST2312909328721398472348NOPQ99RST23NOPQ99RST23NOPQ99RST23NOPQ99RST2312909328721398472348NOPQ99RST23
NOPQ99RST23NOPQ99RST23
entenda os bastidores H!IJKLM
entenda os bastidores H!IJKLMN23UVWXYZ
NOPQ99RST23UV23UVWXYZ
NOPQ99RST23UV23UVWXYZ
entenda os bastidores
-
hacker.37
Segurana um fator essencial para quem deseja
transmitir informaes atravs da rede global de
computadores sem passar por qualquer dor de
cabea no futuro. No caso de proteger as redes
locais, j dispomos de ferramentas consagradas,
que so os firewalls. Como exemplos, temos o Netfilter Iptables
do Linux e o Packet Filter do OpenBSD. Mas e quando enviamos
uma mensagem, o que podemos fazer para proteger as nossas
informaes durante o trfego pela rede?
A resposta pode ser resumida em uma nica palavra: cripto-
grafia.Mas o que a criptografia?
Informalmente, criptografar seria o mesmo que embaralhar
nossas mensagens e modific-las, de modo que no elas no
se tornem acessveis para qualquer pessoa, apenas para quem
conhece o verdadeiro segredo envolvido na codificao.
Antes de comearmos a desenvolver o assunto, precisamos
esclarecer algumas definies fundamentais:
Criptografia: estudo das tcnicas matemticas relaciona-
das aos aspectos de segurana da informao, como con-
fiabilidade, integridade de dados, autenticao de entidades
e da origem dos dados.
Criptanlise: estudo de tcnicas que visam a determinar o
nvel de segurana de um sistema criptogrfico e o quanto
ele resistente a um ataque.
Criptologia: cincia que estuda a criptografia e a criptanlise.
PRELIMINARES MATEMTICOSO mundo da computao como uma moeda: ambos pos-
suem duas faces. Numa delas, somos usurios, no importando
se usamos uma interface grfica ou digitamos raivosamente
linhas e mais linhas de comando, pois no sabemos o que est
acontecendo por trs da tela. J no outro lado, temos uma
abordagem totalmente diferente: o mundo do desenvolvedor,
do coder, do H4CK3R.
Mas, tudo na vida tem um preo, e para entender a cincia
da criptografia sob o ponto de vista do desenvolvedor, no
h outra sada a no ser conhecer muito bem a matemtica
necessria e saber fazer a programao.
Nesta primeira parte do nosso tutorial, vamos apresentar
a fundamentao matemtica da criptografia, o que inclui
termos como chave e texto cifrado, alm de alguns
exemplos bsicos. Na segunda parte que ser publicada na
prxima edio, estudaremos com detalhes a estrutura do
famoso sistema de encriptao RSA, com foco na questo da
encriptao-decriptao.
CONJUNTOS E FUNESNas cincias exatas, chamamos de conceito primitivo uma
premissa-base que no demonstrada matematicamente e
que tida como bvia , intuitiva.
No caso da linguagem de conjuntos, o termo conjunto
assumido como um conceito primitivo, ou seja, sabemos
do que se trata , mas no como exprimi-lo atravs de ou-
tros conceitos mais elementares. Mesmo com o aux lio do
dicionrio, que define o conjunto como uma coleo de
objetos (os elementos) caracterizados por uma propriedade
em comum, no temos realmente um conceito preciso, pois a
palavra coleo meramente um sinnimo de conjunto. Ape-
sar disso, vamos encarar informalmente o assunto, definindo
conjunto como uma coleo de objetos caracterizados por uma
propriedade em comum.
CARACTERIZAO DE CONJUNTOSUtilizando-se da idia anterior sobre conjunto, possvel de-
fini-lo atravs de uma propriedade ou simplesmente listando
seus elementos. Dessa maneira, um conjunto apresentado
na seguinte forma:
X = {...}
Sendo que X uma letra utilizada para identificar o conjunto
e as chaves {...} contm a propriedade que o caracteriza; um
objeto qualquer de X chamado de elemento.
A seguir, apresentamos uma lista de conjuntos, sobre os
quais daremos mais detalhes posteriormente, alm de utiliz-
los tambm.
Exemplo 1: nmeros naturais
O conjunto dos nmeros naturais representa os valores que
PQ4RSTAU*VWXYZABCARTEEFGHIJKLop
MNOPQ99RDE23UVWXYZABCD@&EOGH!IJKLMN
MNOPQ99RSU23UVWXYZPQ4RSTU*LWXYZ%00
MNOPQ99RSR23UVWXYZ12909328721398472348
12909328721398472348S
egurana um fator essencial para quem deseja
transmitir informaes atravs da rede global de
computadores sem passar por qualquer dor de
cabea no futuro. No caso de proteger as redes
locais, j dispomos de ferramentas consagradas,
que so os firewalls. Como exemplos, temos o Netfilter Iptables
do Linux e o Packet Filter do OpenBSD. Mas e quando enviamos
uma mensagem, o que podemos fazer para proteger as nossas
termos como chave e texto cifrado, alm de alguns
exemplos bsicos. Na segunda parte que ser publicada na
prxima edio, estudaremos com detalhes a estrutura do
famoso sistema de encriptao RSA, com foco na questo da
encriptao-decriptao.
CONJUNTOS E FUNES
12909328721398472348CONJUNTOS E FUNESNas cincias exatas, chamamos de conceito primitivo uma
premissa-base que no demonstrada matematicamente e
que tida como bvia , intuitiva.
No caso da linguagem de conjuntos, o termo conjunto
assumido como um conceito primitivo, ou seja, sabemos
do que se trata , mas no como exprimi-lo atravs de ou-
tros conceitos mais elementares. Mesmo com o aux lio do
dicionrio, que define o conjunto como uma coleo de
objetos (os elementos) caracterizados por uma propriedade
em comum, no temos realmente um conceito preciso, pois a
palavra coleo meramente um sinnimo de conjunto. Ape-
sar disso, vamos encarar informalmente o assunto, definindo
conjunto como uma coleo de objetos caracterizados por uma
propriedade em comum.
CARACTERIZAO DE CONJUNTOSUtilizando-se da idia anterior sobre conjunto, possvel de-
fini-lo atravs de uma propriedade ou simplesmente listando
seus elementos. Dessa maneira, um conjunto apresentado
X uma letra utilizada para identificar o conjunto
termos como chave e texto cifrado, alm de alguns
exemplos bsicos. Na segunda parte que ser publicada na
prxima edio, estudaremos com detalhes a estrutura do
famoso sistema de encriptao RSA, com foco na questo da
encriptao-decriptao.
CONJUNTOS E FUNES
12909328721398472348
linhas e mais linhas de comando, pois no sabemos o que est
acontecendo por trs da tela. J no outro lado, temos uma
abordagem totalmente diferente: o mundo do desenvolvedor,
do coder, do H4CK3R.
Mas, tudo na vida tem um preo, e para entender a cincia
da criptografia sob o ponto de vista do desenvolvedor, no
h outra sada a no ser conhecer muito bem a matemtica
necessria e saber fazer a programao.
Nesta primeira parte do nosso tutorial, vamos apresentar
a fundamentao matemtica da criptografia, o que inclui
Sendo que X uma letra utilizada para identificar o conjunto
e as chaves {...} contm a propriedade que o caracteriza; um
objeto qualquer de X chamado de elemento.
A seguir, apresentamos uma lista de conjuntos, sobre os
quais daremos mais detalhes posteriormente, alm de utiliz-
los tambm.
Exemplo 1: nmeros naturais
O conjunto dos nmeros naturais representa os valores que
12909328721398472348
X uma letra utilizada para identificar o conjunto
e as chaves {...} contm a propriedade que o caracteriza; um
objeto qualquer de X chamado de elemento.
A seguir, apresentamos uma lista de conjuntos, sobre os
quais daremos mais detalhes posteriormente, alm de utiliz-
nmeros naturais
O conjunto dos nmeros naturais representa os valores que
12909328721398472348O conjunto dos nmeros naturais representa os valores que
12909328721398472348O conjunto dos nmeros naturais representa os valores que
12909328721398472348
uma mensagem, o que podemos fazer para proteger as nossas
informaes durante o trfego pela rede?
A resposta pode ser resumida em uma nica palavra: cripto-
grafia.Mas o que a criptografia?
Informalmente, criptografar seria o mesmo que embaralhar
nossas mensagens e modific-las, de modo que no elas no
se tornem acessveis para qualquer pessoa, apenas para quem
conhece o verdadeiro segredo envolvido na codificao.
Antes de comearmos a desenvolver o assunto, precisamos
esclarecer algumas definies fundamentais:
PRELIMINARES MATEMTICOSO mundo da computao como uma moeda: ambos pos-
suem duas faces. Numa delas, somos usurios, no importando
se usamos uma interface grfica ou digitamos raivosamente
linhas e mais linhas de comando, pois no sabemos o que est
23UVWXYZ23UVWXYZN
23UVWXYZN
23UVWXYZ
23UVWXYZ23UVWXYZ
NOPQ99RST2312909328721398472348NOPQ99RST2312909328721398472348NOPQ99RST23Sque so os firewalls. Como exemplos, temos o Netfilter Iptables
do Linux e o Packet Filter do OpenBSD. Mas e quando enviamos
uma mensagem, o que podemos fazer para proteger as nossas
23UVWXYZ23UVWXYZ
NOPQ99RST23NOPQ99RST231290932872139847234812909328721398472348NOPQ99RST2312909328721398472348NOPQ99RST23NOPQ99RST2312909328721398472348NOPQ99RST23
linhas e mais linhas de comando, pois no sabemos o que est
acontecendo por trs da tela. J no outro lado, temos uma
abordagem totalmente diferente: o mundo do desenvolvedor,
do coder, do H4CK3R.
Mas, tudo na vida tem um preo, e para entender a cincia
da criptografia sob o ponto de vista do desenvolvedor, no
h outra sada a no ser conhecer muito bem a matemtica
necessria e saber fazer a programao.
Nesta primeira parte do nosso tutorial, vamos apresentar
a fundamentao matemtica da criptografia, o que inclui
23UVWXYZ23UVWXYZNOPQ99RST23UVNOPQ99RST23UV
23UVWXYZNOPQ99RST23UV
23UVWXYZ23UVWXYZNOPQ99RST23UV
23UVWXYZ12909328721398472348
23UVWXYZ12909328721398472348
23UVWXYZ1290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker 37129093287213984723483712909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348129093287213984723481290932872139847234837129093287213984723483712909328721398472348hacker12909328721398472348hackerhacker12909328721398472348hacker129093287213984723483712909328721398472348371290932872139847234837129093287213984723483712909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker129093287213984723481290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker1290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker1290932872139847234812909328721398472348hacker12909328721398472348hacker129093287213984723481290932872139847234812909328721398472348371290932872139847234837129093287213984723483712909328721398472348371290932872139847234837129093287213984723483712909328721398472348hacker12909328721398472348hacker.12909328721398472348.3712909328721398472348371290932872139847234837129093287213984723483712909328721398472348129093287213984723481290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker1290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker12909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker 37129093287213984723483737129093287213984723483712909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hackerhacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hackerhacker12909328721398472348hacker1290932872139847234812909328721398472348129093287213984723481290932872139847234812909328721398472348hacker12909328721398472348hackerhacker12909328721398472348hacker12909328721398472348129093287213984723481290932872139847234837129093287213984723483712909328721398472348hacker12909328721398472348hacker.12909328721398472348.1290932872139847234837129093287213984723483712909328721398472348hacker12909328721398472348hacker.12909328721398472348.37129093287213984723483712909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hackerhacker12909328721398472348hackerhacker12909328721398472348hackerhacker12909328721398472348hackerhacker12909328721398472348hackerhacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hacker12909328721398472348hackerhacker.37
-
38.hacker
criptogrAfia
usamos para contar objetos. Deno-
tado pela letra N, definido por N =
{0,1,2,3,4,...}. Os pontinhos ... aps
o nmero 4 indicam que o conjunto con-
tinua para o infinito.
Exemplo 2: conjunto dos nmeros inteiros
um conjunto muito importante para
o estudo de criptografia, pois a partir
dele, construmos o chamado conjunto
dos inteiros mdulo k. O conjunto dos
nmeros inteiros definido como sendo
Z = {...,-3,-2,-1,0,1,2,3,...}, de forma
anloga ao caso do Exemplo 1. Os pon-
tinhos ... indicam a continuao dos
elementos, mas dessa vez, tambm para
o infinito negativo.
Exemplo 3: conjunto dos inteiros mdulo k
Neste exemplo, precisamos de uma
construo abstrata. Seja k um inteiro
positivo, dado o conjunto kZ = { ...,-3k,-
2k,-k,0,k,2k,3k,...}, vamos agir kZ
sobre Z. Isso significa o seguinte: dado
m Z ( o significa que m um ele-mento de Z e m pertence a Z), definimos
o conjunto [m] = { m + kx | x Z }. Neste conjunto, a barra | significa tal que,
um elemento sinttico auxiliar na carac-
terizao do conjunto.
A semntica de [m] (a chamada classe de
m) que temos um conjunto que representa
todos os elementos que possuem o mesmo
resto que m, quando divididos por k.
O restante da construo definir o
conjunto quociente, dado por
Z/kZ = { [m] | m Z }. Na literatura matemtica, esse o chamado con-
junto dos inteiros mdulo k. Podemos
definir operaes neste conjunto, mais
concretamente, definimos uma adio e
uma multiplicao de tal forma que po-
demos calcular com ele de modo muito
semelhante aos clculos que fazemos
com o conjunto dos nmeros reais das
cincias exatas. Com essas operaes,
Z/kZ um exemplo de uma estrutura
matemtica chamada anel. possvel
mostrar que o nmero de elementos de
Z/kZ igual a k.
FUNES ENTRE CONJUNTOSOutro conceito fundamental em mate-
mtica o de funo. Um modo informal
de pensarmos uma funo o de um obje-
to matemtico que expressa a dependn-
cia entre grandezas fsicas. Por exemplo,
a frase a presso dentro do oceano varia
de modo diretamente proporcional pro-
fundidade est definindo implicitamente
uma funo. Para quantificar essa frase,
basta representar a grandeza presso com
a letra P e a profundidade com a letra H.
Deste modo, temos:
P = cH, onde c uma constante de pro-
porcionalidade positiva. Assim, dizemos
que P uma funo de h, um ponto de
vista que enfatiza grandezas, muito uti-
lizado na fsica e engenharia. Denotamos
o valor da funo presso num elemento
especfico h como P(h).
Mas, para nossos estudos de crip-
tografia, precisamos de uma definio
formal de funo:
Definio: Sejam X e Y conjuntos, uma
funo f de X em Y uma regra que
associa a cada elemento de X (o domnio
da funo) um nico elemento de Y (o
contradomnio da funo). A funo f
denotada simbolicamente como
f: X Y e o seu valor num ponto x X denotado por f(x).
A letra X (em geral so usadas as
ltimas letras do alfabeto latino)
chamada de varivel.
Dada uma funo f: X Y, ela pode apre-sentar trs tipos de comportamento:
funo injetora: f dita ser injetora
se dados quaisquer x,y X. Assim, temos que f(x) f(y).
funo sobrejetora: f dita ser so-
brejetora se qualquer que seja o y Y e existe um x X tal que f(x) = y.
funo bijetora : bijetora se for simul-
taneamente injetora e sobrejetora.
Desses trs casos, o mais importante para
ns a funo bijetora, pois uma bijeo sig-
nifica uma identificao 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 criptogrfico, veremos
que as transformaes de condificao e
decodificao so funes bijetoras.
COMPOSIO DE FUNESA composio de funes um concei-
to bem simples. Dadas as funes f: A
B e g: B C, definimos a compo-sio delas como sendo a funo gof:
A C, dada por:
gof(x) := g(f(x))
Sendo que o s ina l : = in forma
que estamos def inindo uma nova
funo, uma notao herdada da
linguagem Pascal.
FUNO INVERSAAntes de apresentarmos uma sequncia
de exemplos, precisamos definir o concei-
to de funo inversa. Uma funo f : X Y dita invertvel se existe uma funo g:
Y X tal que f(g(y)) = y e g(f(x)) = x para todos xX, yY.
Segue da definio que uma funo
invertvel se e somente se bijetora.
Como exemplos de funes, temos:
funo injetora: f dita ser injetora
X. Assim,
3838383838383838383838...hackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhacker
crcriiiiptoptoptoptoptoptoptoptoptoptoptoptoggggggrrrrrrAAAAAfffffiififfif aa
usamos para contar objetos. Deno-
tado pela letra N, definido por
{0,1,2,3,4,...}. Os pontinhos ... aps
o nmero 4 indicam que o conjunto con-
tinua para o infinito.
Exemplo 2: conjunto dos nmeros inteiros
um conjunto muito importante para
o estudo de criptografia, pois a partir
dele, construmos o chamado conjunto
dos inteiros mdulo k. O conjunto dos
nmeros inteiros definido como sendo
Z = {...,-3,-2,-1,0,1,2,3,...}, de forma
anloga ao caso do Exemplo 1. Os pon-
tinhos ... indicam a continuao dos
elementos, mas dessa vez, tambm para
o infinito negativo.
Exemplo 3: conjunto dos inteiros mdulo k
Neste exemplo, precisamos de uma
construo abstrata. Seja k um inteiro
positivo, dado o conjunto kZ = { ...,-3k,-
2k,-k,0,k,2k,3k,...}, vamos agir kZ
sobre Z. Isso significa o seguinte: dado
m Z ( o significa que m um ele-mento de Z e m pertence a Z), definimos
o conjunto [m] = { m + kx | x Z }. Neste conjunto, a barra | significa tal que,
um elemento sinttico auxiliar na carac-
terizao do conjunto.
A semntica de [m] (a chamada classe de
m) que temos um conjunto que representa
todos os elementos que possuem o mesmo
resto que m, quando divididos por k.
O restante da construo definir o
conjunto quociente, dado por
Z/kZ = { [m] | m Z }. Na literatura matemtica, esse o chamado con-
junto dos inteiros mdulo k. Podemos
definir operaes neste conjunto, mais
concretamente, definimos uma adio e
uma multiplicao de tal forma que po-
demos calcular com ele de modo muito
semelhante aos clculos que fazemos
com o conjunto dos nmeros reais das
-
hacker.39
Exemplo 1: Funo bijetora
Consideremos o conjunto dos nmeros reais
(os nmeros usuais) R. Seja uma funo f: R R dada por f(x) = x + 5, conclumos que a funo
g: R dada por g(x) = x 5 a inversa de f.De fato:
f(g(x)) = f(x-5) = x-5+5 = xg(f(x)) = g(x+5) = x+5-5 = x
Portanto f bijetora.
Exemplo 2: Permutaes do conjunto
Xn ={1,2,3,...,n}
Uma permutao em Xn uma bijeo de Xn
em Xn. Por exemplo, a funo
f : Xn Xn dada por f(1) = 2, f(2) = 1 e f(x) = x para todo x 3 uma permutao em Xn.O conjunto de todas as permutaes em
Xn chamado de grupo das permuta-
es, sendo denotado por S(Xn) (para
uma apresentao detalhada sobre gru-
pos, consulte as referncias). De forma
ainda mais concreta, tomemos o caso
X2 = {1, 2}. Temos aqui apenas duas
permutaes dadas pelas funes:
f1(1) = 1, f1(2) = 2 f2(1) = 2, f2(2) = 1
possvel mostrar que o nmero de
elementos de S(Xn) igual a n! , o cha-
mado fatorial de n. No exemplo 3, logo
abaixo, apresentamos mais detalhes
sobre a noo de fatorial.
Exemplo 3: Matrizes
Sejam os conjuntos In = {1,2,3,..,n}
e Im = {1,2,3,...,m}, definimos uma
matriz n x m com entradas reais como
sendo uma funo 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.
primeira vista, parece uma definio
muito abstrata, principalmente porque na
literatura matemtica as matrizes so de-
finidas utilizando-se tabelas de nmeros.
Mas, esse ponto de vista no faz sentido,
pois no expressvel em termos de
conjuntos; a nossa definio no apenas
rigorosa, mas tambm o que se utiliza na
prtica em programao e, de forma ainda
mais abstrata, pensamos em um tipo de
dado bidimensional, que pode armazenar
caracteres, nmeros, vetores etc.
Exemplo 4: Fatorial de um nmero natural
Dado um nmero natural n, o seu fatorial
denotado como n! e o definimos recur-
sivamente, ou seja:
0! = 1n! = n(n-1)! para n > 0
Fazer clculos com essa definio 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 definio, sabemos que 0! = 1,
portanto:
3! = 6
A partir disso, definimos uma funo, da
qual chamaremos de fat: N N dada por:
fat(n) = n!
Exemplo 5 : Compondo as funes elevar
ao quadrado e translao
Sejam as funes f: R R e tr3: R R, dadas por:
f(x) = x tr3(x) = x + 3
Pela definio, temos:
f(tr3(x)) = f(x+3) = (x+3)
ELEMENTOS DE CRIPTOGRAFIAAgora que j vimos o background ne-
cessrio sobre conceitos matemticos,
apresentaremos as estruturas bsicas da
criptografia. Na maioria das publicaes no
tcnicas existentes, termos como chaves e
sistema criptogrfico so sempre citados
mas, aps uma leitura atenta, percebemos que
em nenhum momento eles so devidamente
explicados. Vamos esclarecer as principais
dvidas pertinentes ao assunto.
Definio 1: Um sistema criptogrfico
uma quntupla 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 so chamados de texto
comum. Temos aqui os textos que
vamos codificar.
C um conjunto chamado de
espao de texto cifrado, sendo que
seus elementos so chamados de
texto cifrado. Estes so os textos
que queremos decodificar.
K um conjunto chamado de espao
de chaves, lembrando que seus ele-
mentos so chamados de chaves.
{Ee} com e K , uma famlia de bijees Ee : M C ; chamadas de funes de encriptao.
{Dd} com d K , uma famlia de bijees Dd: C M, chamadas de funes de decriptao.
E sujeitos ao seguinte vnculo:
Para cada e K , existe um nico d K tal que Ee a funo inversa de Dd, e
vice-versa, e um par (e,d) chamado
Exemplo 1: Funo bijetora
Consideremos o conjunto dos nmeros reais
(os nmeros usuais) R. Seja uma funo f: R R dada por f(x) = x + 5, conclumos que a funo
dada por g(x) = x 5 a inversa de f.
f(g(x)) = f(x-5) = x-5+5 = x
primeira vista, parece uma definio
muito abstrata, principalmente porque na
literatura matemtica as matrizes so de-
finidas utilizando-se tabelas de nmeros.
Mas, esse ponto de vista no faz sentido,
pois no expressvel em termos de
conjuntos; a nossa definio no apenas
rigorosa, mas tambm o que se utiliza na
prtica em programao e, de forma ainda
mais abstrata, pensamos em um tipo de
dado bidimensional, que pode armazenar
caracteres, nmeros, vetores etc.
Pela definio, temos:
f(tr3(x)) = f(x+3) = (x+3)
ELEMENTOS DE CRIPTOGRAFIAAgora que j vimos o background ne-
cessrio sobre conceitos matemticos,
apresentaremos as estruturas bsicas da
criptografia. Na maioria das publicaes no
tcnicas existentes, termos como chaves e
sistema criptogrfico so sempre citados
mas, aps uma leitura atenta, percebemos que
-
40.hacker
criptogrAfia
J a chave de encriptao enviada
atravs de um canal seguro (atravs de
ssh, por exemplo), e o envio da chave
e suficiente, pois d=e. A personagem
atacante algum que deseja intercep-
tar o texto cifrado, procurando tambm
obter a chave utilizada para acessar seu
contedo original. Mas, num sistema
de chave simtrica, o atacante tem
acesso apenas ao texto cifrado.
Criptosistema de chave pblica
Esse criptosistema difere do caso ante-
rior em alguns aspectos. Em primeiro
lugar, o sistema no simtrico, tanto a
mensagem c cifrada, quanto a chave de
encriptao, esto disponveis atravs
de canais inseguros. A segurana do sis-
tema garantida devido inviabilidade
computacional de se descobrir qual a
chave de decriptao d.
A arquitetura de um sistema de chave
pblica est ilustrada abaixo:
2) Adicionar a imagem tela2.png aci-
ma deste apontador
Utilizando o exemplo citado anteriormente,
porm com mais detalhes, Joo escolhe um
par de chaves (e,d), envia para Maria a cha-
ve de encriptao e (a chave pblica), mas
mantm a chave de decriptao d secreta e
segura (a chamada chave privada).
De posse da chave, Maria encripta uma men-
sagem e a envia para Joo, que, simples-
de par de chaves. Semanticamente,
o espao de chaves K serve como um
ambiente de classificao para as fun-
es de encriptao e decriptao Ee
e Dd, respectivamente. Uma premissa
bsica da criptografia a de que todo o
sistema criptogrfico SC = deve ser conhecido, porm no
revelado o par de chaves (e,d) utilizado
numa encriptao.
CLASSIFICAO DOSCRIPTOSISTEMAS
Criptosistema de chave simtrica
No caso em que e=d , dizemos que o sis-
tema de encriptao simtrico.
Quando utilizamos um criptosistema
simtrico, a arquitetura do mecanismo
de transmisso, tanto da chave quanto
da mensagem cifrada, pode ser ilustrado
como na figura abaixo:
Temos apenas como exemplo, o caso
de um emissor (Joo) e de um receptor
(Maria). Joo toma um texto fonte e o
codifica atravs da funo de encripta-
o apontada pela chave. Depois, envia
a mensagem codificada c para Maria,
atravs de um canal (um meio fsico de
se transmitir uma informao) inseguro
(via e-mail, por exemplo).
mente, aguarda sua chegada. importante
ressaltarmos que a segurana desse tipo de
sistema se mantm devido ao fato de ser
totalmente impraticvel descobrir qual a
chave de decriptao.
Agora, apresentaremos uma sequncia de
exemplos relacionados a sistemas criptogr-
ficos, que serviro para clarear a definio
formal definida anteriormente e, tambm,
para introduzirmos novos conceitos a res-
peito desse mesmo assunto.
Exemplo 1: Sistema de encriptao
Toy Model (modelo simples)
O sistema criptogrfico SC = dado por :
M = {x1,x2,x3}C = {y1,y2,y3}K = {1,2,3,4,5,6}
As Ee e Dd so as permutaes de um
conjunto de 3 elementos, como vimos na in-
troduo desse tutorial, para a permutao
E1 dada por E1(x1) = y3, E1(x2)=y1 e E1(x3)=
y2. A sua inversa a funo D6, dada por
D6(y1)= x2, D6(y2)=x3 e D6(y3)= x1.
Portanto, concluimos que o par de chaves
(1,6), que no simtrico. Embora esse
exemplo no possua aplicao prtica, serve
para ilustrar um sistema criptogrfico.
Exemplo 2: o cdigo secreto de Csar
isso mesmo que voc est pen-
sando : o imperador romano Jlio
Cesar tinha o seu prprio sistema
criptogrfico. O cdigo de Csar est
definido abaixo:
M = palavras escritas com o alfabeto latino
C = strings escritas com o alfabeto latino
K = {0,1,2,3,...,25}
Para descrevermos as funes de en-
criptao e decriptao, precisamos
Atacante
Joo Maria
Canal Segur o
CanalInseguro
Espao de Chaves
Decriptao
Destino
EncriptaoEe(m)=c
Espao de texto comum
De(c)=m
Atacante
JooMaria
EncriptaoEe(m)=c
Espao de texto comum
Espao de Chaves
Decriptao
Destino
CanalInseguro
De(c)=m
CanalInseguro
crcriiiiptoptoptoptoptoptoptoptoptoptoptoptoggggggrrrrrrAAAAAfffffiififfif aa
J a chave de encriptao enviada
atravs de um canal seguro (atravs de
ssh, por exemplo), e o envio da chave
e suficiente, pois d=e. A personagem
atacante algum que deseja intercep-
tar o texto cifrado, procurando tambm
obter a chave utilizada para acessar seu
contedo original. Mas, num sistema
de chave simtrica, o atacante tem
acesso apenas ao texto cifrado.
Criptosistema de chave pblica
Esse criptosistema difere do caso ante-
rior em alguns aspectos. Em primeiro
de par de chaves. Semanticamente,
o espao de chaves K serve como um
ambiente de classificao para as fun-
es de encriptao e decriptao Ee
e Dd, respectivamente. Uma premissa
bsica da criptografia a de que todo o
sistema criptogrfico SC = deve ser conhecido, porm no
revelado o par de chaves (e,d) utilizado
numa encriptao.
CLASSIFICAO DOSCRIPTOSISTEMAS
mente, aguarda sua chegada. importante
ressaltarmos que a segurana desse tipo de
sistema se mantm devido ao fato de ser
totalmente impraticvel descobrir qual a
chave de decriptao.
Agora, apresentaremos uma sequncia de
exemplos relacionados a sistemas criptogr-
ficos, que serviro para clarear a definio
formal definida anteriormente e, tambm,
para introduzirmos novos conceitos a res-
peito desse mesmo assunto.
Exemplo 1: Sistema de encriptao
Toy Model (modelo simples)
-
hacker.41
da tabela de identificao entre letras
e nmeros:
Dado eK , a funo de encriptao Ee a resultante da composio das funes:
M Z/Z26 Z/Z26 C f g h
Sendo que:
f a funo dada pela identificao letra-
nmero da tabela acima.
g uma funo dada por g([x]) = [x+e].
h a funo dada pela identificao
nmero - letra da tabela acima.
Portanto, Ee = hogof
Entretanto, a funo de decriptao para
um d K , de forma anloga, dada por:
M Z/Z26 Z/Z26 C f g h
Onde:
f a funo dada pela identificao
letra-nmero da tabela acima.
g uma funo dada por g([x]) = [x-d].
h a funo dada pela identificao
nmero - letra da tabela acima.
Portanto, Dd = hogof.
Vamos calcular alguns casos com Ee
para e=2
E2(D) = hogof(D) = hog([3]) =
h(g([3])) = h([3+2]) = h([5]) = F (
E2(D) = F)
E2(E) = hogof(E) = hog([4]) =
h(g([4])) = h([4+6]) = h([10]) = K
( E2(E) = K)
E2(U) = hogof(U) = hog([20]) =
h(g([20])) = h([20+2]) = h([22])
=W ( E2(U) = W )
E2(S) = hogof(S) = hog([18]) =
h(g([18])) = h([18+2]) = h([20]) =
U ( E2(S) = U )
Ento, se tomarmos o texto que contm
apenas a palavra DEUS , aps a codifica-
o com a funo E2, obtemos o texto
cifrado que contm a palavra FKWU.
Atravs de inspeo direta (calculan-
do), percebe-se que o cdigo de Csar
um sistema criptogrfico simtrico.
De fato, para todo eK , tomando d = e , temos Dd o Ee = idM, sendo que
idM a funo identidade. Vamos
verificar concretamente:
D2oE2 (D) = D2(F) = hogof(D) =
hog([5]) = h([5-2]) = h([3]) = D
Exemplo 3: Encriptao por blocos
A encriptao por blocos consiste em
agrupar os caracteres do texto comum
em blocos de tamanho k. Depois, sobre
estes blocos, aplicada a funo de en-
criptao, rotulada por uma chave e K. Neste exemplo, utilizaremos:
M = palavras escritas com o alfabeto latino
C = strings escritas com o alfabeto latino
K = {1,2,3,4,..., 26! } - espao de chaves,
rotula todas as permutaes de S(X26),
sendo que X26 o alfabeto latino. Ento
ordenamos este conjunto como
A = x1, B= x2, C= x3,..., Z=x26
As funes de encriptao (e de decrip-
tao) so, simplesmente, as permutaes
do conjunto X26.
Como exemplo, tomemos a permutao
que consiste em associar a cada letra, na
ordem determinada acima, aquela letra
que fica trs posies adiante. Deste
modo, temos que Ee dada por:
Alm disso, vamos quebrar o texto fonte
em blocos de comprimento igual a cinco. Para
exemplificar, temos aqui o texto comum:
GOD IS THE LORD OF THE
UNIVERSE
Aps o agrupamento, ficamos com:
GODIS THELO RDOFT HEUNI
VERSE
E aplicando a funo de encriptao Ee,
obtemos finalmente:
JRGLV WKHOR UGRIW KHXQL
YIUVH
Exemplo 4: Composio de sistemas
criptogrficos
Quando comentamos sobre funes, vimos
a noo de composio de funes. Como o
processo de encriptao funcional, no
ABCDEFGHIJKLM
D
E
F
G
H
I
J
K
L
M
N
O
P
NOPQRSTUVWXYZ
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
ABCDEFGHIJKLM
0
1
2
3
4
5
6
7
8
9
10
11
12
NOPQRSTUVWXYZ
13
14
15
16
17
18
19
20
21
22
23
24
25
da tabela de identificao entre letras
e nmeros:
Vamos calcular alguns casos com Ee
para e=2
E2(D) = hogof(D) = hog([3]) =
h(g([3])) = h([3+2]) = h([5]) = F (
E2(D) = F)
E2(E) = hogof(E) = hog([4]) =
h(g([4])) = h([4+6]) = h([10]) = K
( E2(E) = K)
E2(U) = hogof(U) = hog([20]) =
h(g([20])) = h([20+2]) = h([22])
=W ( E2(U) = W )
E2(S) = hogof(S) = hog([18]) =
h(g([18])) = h([18+2]) = h([20]) =
As funes de encriptao (e de decrip-
tao) so, simplesmente, as permutaes
do conjunto
Como exemplo, tomemos a permutao
que consiste em associar a cada letra, na
ordem determinada acima, aquela letra
que fica trs posies adiante. Deste
modo, temos que Ee dada por:
ABCDEFGHIJK
0
1
2
3
4
5
6
7
8
9
10
NOPQRSTUVWX
13
14
15
16
17
18
19
20
21
22
23
hackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhacker....4141414141414141
Alm disso, vamos quebrar o texto fonte
em blocos de comprimento igual a cinco. Para
exemplificar, temos aqui o texto comum:
GOD IS THE LORD OF THE
UNIVERSE
Aps o agrupamento, ficamos com:
GODIS THELO RDOFT HEUNI
VERSE
E aplicando a funo de encriptao Ee,
obtemos finalmente:
JRGLV WKHOR UGRIW KHXQL
YIUVH
Exemplo 4: Composio de sistemas
criptogrficos
Quando comentamos sobre funes, vimos
a noo de composio de funes. Como o
processo de encriptao funcional, no
FGHIJKLM
I
J
K
L
M
N
O
P
STUVWXYZ
V
W
X
Y
Z
A
B
C
As funes de encriptao (e de decrip-
tao) so, simplesmente, as permutaes
do conjunto X26.
Como exemplo, tomemos a permutao
que consiste em associar a cada letra, na
ordem determinada acima, aquela letra
que fica trs posies adiante. Deste
modo, temos que Ee dada por:
ABCDE
D
E
F
G
H
NOPQR
Q
R
S
T
U
-
42.hacker
criptogrAfia
de se estranhar que possamos compor sis-
temas criptogrficos. Neste exemplo,vamos
compor dois criptosistemas. O primeiro
deles, que chamaremos de SC1, consiste
em permutaes de um conjunto com cinco
elementos. definido como segue:
M1 = strings binrias de comprimento
igual a cinco
C1 = strings binrias de comprimento
igual a cinco
K = {p1,p2,...,p120} = chaves de
encriptao que rotulam as permu-
taes de um conjunto com cinco
elementos
As funes de encriptao(Ee) decriptao(Dd)
so as permutaes do conjunto X5.
O segundo criptosistema SC2 baseado
no fato de que podemos expressar 32
nmeros atravs de uma string binria de
comprimento cinco.
Dessa maneira, como o alfabeto latino pos-
sui apenas 26 letras, podemos definir uma
encriptao letra-nmero binrio. De forma
mais concreta, o SC2 definido como:
M2 = palavras escritas com o alfa-
beto latino
C2 = strings binrias
K2 = {1,2,3,4,5,...,26} = o espao
das chaves de encriptao
As funes de encriptao Ee e Dd so
definidas atravs da seguinte tabela:
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
Introduo Criptografia, por Johannes A. Buchmann traduo da Editora Berkeley 2002
Applied Cryptography, second editionby Bruce Schneier - John Wiley & Sons - 1996
Um review sobre o sistema criptogrfico RSAhttp://www.geometer.org/mathcircles/RSA.pdf
Neste caso, encriptar significa ler a
tabela da esquerda para a direita e,
decriptar, o contrrio.
Vamos denotar o criptosistema composto
como SC2oS12. Nessa ordem, significa que
primeiro trocamos cada letra de cada pala-
vra pela correspondente string binria.
Em seguida, efetuamos uma permuta-
o em cada bloco binrio de compri-
mento cinco, comeando da esquerda
para a direita nas sequncias de bits.
Como exemplo concreto, vamos encrip-
tar a palavra DEUS.
Letra String Binria
00000000010001000011001000010100110001110100001001
ABCDEFGHIJ
1 2 3 4 5
2 1 4 3 5
A permutao que utilizaremos dada
pela tabela abaixo:
Primeiro passo de encriptao: con-
verter as letras da palavra em strings
binrias. Para isso, vamos utilizar a
primeira tabela:
D 00011E 00100U 10100S 10010
S e g u n d o p a s s o d a e n c r i p t a o :
p e r m u t a r o s e l e m e n to s d e c a da
str ing b inr ia :
D 00011 00101E 00100 00010U 10100 01010S 10010 01100
Portanto, temos o resultado final da
encriptao composta
DEUS 00101000100101001100
KLMNOPQRSTUVWXYZ
01010010110110001101011100111110000100011001010011101001010110110101111100011001
Letra String Binria
de se estranhar que possamos compor sis-
temas criptogrficos. Neste exemplo,vamos
compor dois criptosistemas. O primeiro
deles, que chamaremos de SC1, consiste
com cinco
strings binrias de comprimento
strings binrias de comprimento
{p1,p2,...,p120} = chaves de
encriptao que rotulam as permu-
taes de um conjunto com cinco
1 2 3 4 5
2 1 4 3 5
A permutao que utilizaremos dada
pela tabela abaixo:
Primeiro passo de encriptao: con-
verter as letras da palavra em strings
binrias. Para isso, vamos utilizar a
primeira tabela:
D 00011 00100
KLMNOPQRSTUVWXY
010100101101100011010111001111100001000110010100111010010101101101011111000
Letra String Binria
4242424242424242424242...hackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhackerhacker
elementos
As funes de encriptao(Ee) decriptao(Dd)
so as permutaes do conjunto X5.
O segundo criptosistema SC2 baseado
no fato de que podemos expressar 32
nmeros atravs de uma string binria de
comprimento cinco.
Dessa maneira, como o alfabeto latino pos-
sui apenas 26 letras, podemos definir uma
encriptao letra-nmero binrio. De forma
mais concreta, o SC2 definido como:
M2 = palavras escritas com o alfa-
beto latino
C2 = strings binrias
K2 = {1,2,3,4,5,...,26} = o espao
das chaves de encriptao
As funes de encriptao Ee e Dd so
definidas atravs da seguinte tabela:definidas atravs da seguinte tabela:
Letra String BinriaLetra String Binria
0000000000000010000100010000100001100100001010010100110001100011100111010000100001001
ABCDEFGHIJ
crcriiiiptoptoptoptoptoptoptoptoptoptoptoptoggggggrrrrrrAAAAAfffffiififfif aa
de se estranhar que possamos compor sis-
temas criptogrficos. Neste exemplo,vamos
compor dois criptosistemas. O primeiro
deles, que chamaremos de SC1, consiste
em permutaes de um conjunto com cinco
elementos. definido como segue:
M1 = strings binrias de comprimento
igual a cinco
C1 = strings binrias de comprimento
igual a cinco
K = {p1,p2,...,p120} = chaves de
encriptao que rotulam as permu-
taes de um conjunto com cinco
elementos