criptografia parte i

7
36.hacker criptogrAfia 36.hacker PQ4RST A U*VWXYZ ABC ARTEEFGHIJKLop NOPQ99R DE 23UVWXYZ ABCD@&E OGH!IJKLMN RS232TUV CW666XYZ NOPQ99RS U 23UVWXYZ PQ4RSTU*L WXYZ%00 ABCD@&EFTH!IJKLMN ABC4D G aIJ NOPQ99RSR23UVWXYZ OPQ99 9RS R 2 R M M ST T NOP NOP A U*V M M M M T T T T T T T T M M M M NOPQ N M M M M M M M M M M M M NOP NOP NOP NOP N N N N M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M entenda os bastidores da criptografia 1 por m474R13l

Upload: jose-antonio-silva-neto

Post on 08-Sep-2015

213 views

Category:

Documents


0 download

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