13.04.2013 Views

m´odulo - Instituto de Computação - Unicamp

m´odulo - Instituto de Computação - Unicamp

m´odulo - Instituto de Computação - Unicamp

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Técnicas criptográficas mo<strong>de</strong>rnas<br />

algoritmos e protocolos<br />

Ricardo Dahab e Julio López<br />

<strong>Instituto</strong> <strong>de</strong> <strong>Computação</strong> - UNICAMP<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 1 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Roteiro<br />

Introdução<br />

Técnicas criptográficas<br />

Protocolos criptográficos<br />

Outros paradigmas<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 2 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Introdução<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 3 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Introdução<br />

Sobre este curso<br />

Mo<strong>de</strong>lo <strong>de</strong> segurança<br />

Criptografia simétrica<br />

Criptografia simétrica<br />

Criptografia assimétrica<br />

Fundamentos matemáticos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 4 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Sobre este curso<br />

• A Criptografia mo<strong>de</strong>rna se ocupa muito menos <strong>de</strong> sigilo<br />

do que há meros trinta anos atrás, quando justificava<br />

plenamente a etimologia da palavra criptografia, cuja<br />

origem grega significa escrita oculta.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 5 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Sobre este curso<br />

• A Criptografia mo<strong>de</strong>rna se ocupa muito menos <strong>de</strong> sigilo<br />

do que há meros trinta anos atrás, quando justificava<br />

plenamente a etimologia da palavra criptografia, cuja<br />

origem grega significa escrita oculta.<br />

• Hoje, técnicas criptográficas são maciçamente<br />

empregadas na prevenção <strong>de</strong> inci<strong>de</strong>ntes <strong>de</strong> segurança.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 5 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Sobre este curso<br />

• A Criptografia mo<strong>de</strong>rna se ocupa muito menos <strong>de</strong> sigilo<br />

do que há meros trinta anos atrás, quando justificava<br />

plenamente a etimologia da palavra criptografia, cuja<br />

origem grega significa escrita oculta.<br />

• Hoje, técnicas criptográficas são maciçamente<br />

empregadas na prevenção <strong>de</strong> inci<strong>de</strong>ntes <strong>de</strong> segurança.<br />

• Aplicações e sistemas que tenham requisitos como<br />

sigilo, autenticação, integrida<strong>de</strong>, não-repúdio e<br />

anonimato empregam técnicas criptográficas em algum<br />

nível <strong>de</strong> sua arquitetura.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 5 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Sobre este curso<br />

O objetivo fundamentais da segurança da informação, é dar<br />

uma visão panorâmica das técnicas criptográficas atuais<br />

mais importantes para a consecução <strong>de</strong> requisitos como<br />

sigilo, autenticação e integrida<strong>de</strong>, dos quais <strong>de</strong>pen<strong>de</strong>m,<br />

outros requisitos <strong>de</strong> segurança.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 6 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Sobre este curso<br />

O objetivo fundamentais da segurança da informação, é dar<br />

uma visão panorâmica das técnicas criptográficas atuais<br />

mais importantes para a consecução <strong>de</strong> requisitos como<br />

sigilo, autenticação e integrida<strong>de</strong>, dos quais <strong>de</strong>pen<strong>de</strong>m,<br />

outros requisitos <strong>de</strong> segurança.<br />

• O sigilo <strong>de</strong> mensagens, ou <strong>de</strong> i<strong>de</strong>ntida<strong>de</strong>s, po<strong>de</strong> ser<br />

necessário a uma aplicação ou auxiliar a consecução <strong>de</strong><br />

outro requisito, como a autenticação.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 6 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Sobre este curso<br />

O objetivo fundamentais da segurança da informação, é dar<br />

uma visão panorâmica das técnicas criptográficas atuais<br />

mais importantes para a consecução <strong>de</strong> requisitos como<br />

sigilo, autenticação e integrida<strong>de</strong>, dos quais <strong>de</strong>pen<strong>de</strong>m,<br />

outros requisitos <strong>de</strong> segurança.<br />

• O sigilo <strong>de</strong> mensagens, ou <strong>de</strong> i<strong>de</strong>ntida<strong>de</strong>s, po<strong>de</strong> ser<br />

necessário a uma aplicação ou auxiliar a consecução <strong>de</strong><br />

outro requisito, como a autenticação.<br />

• A autenticação <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> mensagens (e.g.<br />

sua integrida<strong>de</strong> e origem) e <strong>de</strong> entida<strong>de</strong>s (e.g. sua<br />

i<strong>de</strong>ntida<strong>de</strong>) po<strong>de</strong> ser um fim em si ou po<strong>de</strong> ancorar a<br />

obtenção <strong>de</strong> outros fins como o estabelecimento <strong>de</strong> uma<br />

chave criptográfica.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 6 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Mo<strong>de</strong>lo <strong>de</strong> segurança<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 7 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Mo<strong>de</strong>lo <strong>de</strong> segurança<br />

• O nosso mo<strong>de</strong>lo básico <strong>de</strong> comunicação supõe duas<br />

entida<strong>de</strong>s, Alice e Beto, trocando mensagens<br />

transmitidas num canal inseguro; isto é, um canal<br />

passível <strong>de</strong> leitura e escrita por um intruso, Ivo.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 7 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Mo<strong>de</strong>lo <strong>de</strong> segurança<br />

• O nosso mo<strong>de</strong>lo básico <strong>de</strong> comunicação supõe duas<br />

entida<strong>de</strong>s, Alice e Beto, trocando mensagens<br />

transmitidas num canal inseguro; isto é, um canal<br />

passível <strong>de</strong> leitura e escrita por um intruso, Ivo.<br />

• Os métodos <strong>de</strong> Ivo po<strong>de</strong>m ser a simples escuta, um<br />

“grampo”, que chamamos <strong>de</strong> ataque passivo, ou até a<br />

modificação, repetição e injeção <strong>de</strong> mensagens com<br />

objetivos variados como, por exemplo, passar-se por<br />

Alice ou Beto para obter acesso a serviços não<br />

autorizados; esses são os chamados ataques ativos.<br />

Passivos ou ativos, esses ataques representam ameaça<br />

aos requisitos <strong>de</strong> segurança que discutimos acima.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 7 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Mo<strong>de</strong>lo <strong>de</strong> segurança<br />

• O nosso mo<strong>de</strong>lo básico <strong>de</strong> comunicação supõe duas<br />

entida<strong>de</strong>s, Alice e Beto, trocando mensagens<br />

transmitidas num canal inseguro; isto é, um canal<br />

passível <strong>de</strong> leitura e escrita por um intruso, Ivo.<br />

• Os métodos <strong>de</strong> Ivo po<strong>de</strong>m ser a simples escuta, um<br />

“grampo”, que chamamos <strong>de</strong> ataque passivo, ou até a<br />

modificação, repetição e injeção <strong>de</strong> mensagens com<br />

objetivos variados como, por exemplo, passar-se por<br />

Alice ou Beto para obter acesso a serviços não<br />

autorizados; esses são os chamados ataques ativos.<br />

Passivos ou ativos, esses ataques representam ameaça<br />

aos requisitos <strong>de</strong> segurança que discutimos acima.<br />

• As técnicas criptográficas para prevenir tais ataques<br />

vêm <strong>de</strong> duas vertentes, a simétrica e a assimétrica,<br />

usadas isoladamente ou em conjunto.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 7 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica<br />

m<br />

Alice<br />

c<br />

Enc Dec<br />

canal inseguro<br />

k k<br />

Figura 3.1 Mo<strong>de</strong>lo Simétrico<br />

Beto<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 8 / 151<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica<br />

m<br />

Alice<br />

c<br />

Enc Dec<br />

canal inseguro<br />

k k<br />

Figura 3.1 Mo<strong>de</strong>lo Simétrico<br />

Beto<br />

• Alice e Beto <strong>de</strong>sejam trocar mensagens m (texto claro)<br />

em sigilo;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 8 / 151<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica<br />

m<br />

Alice<br />

c<br />

Enc Dec<br />

canal inseguro<br />

k k<br />

Figura 3.1 Mo<strong>de</strong>lo Simétrico<br />

Beto<br />

• Alice e Beto <strong>de</strong>sejam trocar mensagens m (texto claro)<br />

em sigilo;<br />

• Alice aplica uma função (ou algoritmo) <strong>de</strong> encriptação<br />

ENCk(m), que transforma m numa mensagem<br />

encriptada ou texto encriptado c, sob a ação da chave k.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 8 / 151<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica<br />

m<br />

Alice<br />

c<br />

Enc Dec<br />

canal inseguro<br />

k k<br />

Figura 3.1 Mo<strong>de</strong>lo Simétrico<br />

Beto<br />

• Alice e Beto <strong>de</strong>sejam trocar mensagens m (texto claro)<br />

em sigilo;<br />

• Alice aplica uma função (ou algoritmo) <strong>de</strong> encriptação<br />

ENCk(m), que transforma m numa mensagem<br />

encriptada ou texto encriptado c, sob a ação da chave k.<br />

• Ao receber c, Beto aplica a função <strong>de</strong> <strong>de</strong>criptação<br />

DECk(c), recuperando m.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 8 / 151<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica<br />

m<br />

Alice<br />

c<br />

Enc Dec<br />

canal inseguro<br />

k k<br />

Figura 3.1 Mo<strong>de</strong>lo Simétrico<br />

Beto<br />

• O objetivo é produzir um texto c que não guar<strong>de</strong> relação<br />

alguma com m.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 9 / 151<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica<br />

m<br />

Alice<br />

c<br />

Enc Dec<br />

canal inseguro<br />

k k<br />

Figura 3.1 Mo<strong>de</strong>lo Simétrico<br />

Beto<br />

• O objetivo é produzir um texto c que não guar<strong>de</strong> relação<br />

alguma com m.<br />

• A inclusão da chave k no processo tem o objetivo <strong>de</strong><br />

dar o po<strong>de</strong>r <strong>de</strong> transformar c em m apenas a quem<br />

conhece k; isto é, prover sigilo na transmissão <strong>de</strong> m.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 9 / 151<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - exemplo<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 10 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - exemplo<br />

• Um exemplo simples <strong>de</strong> encriptação simétrica consiste<br />

em substituir cada letra <strong>de</strong> um texto pela letra k<br />

posições à frente no alfabeto (supomos que após ’z’<br />

vem ’a’).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 10 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - exemplo<br />

• Um exemplo simples <strong>de</strong> encriptação simétrica consiste<br />

em substituir cada letra <strong>de</strong> um texto pela letra k<br />

posições à frente no alfabeto (supomos que após ’z’<br />

vem ’a’).<br />

• Para k = 5, a palavra alabastro se transforma em<br />

fqfgfxywt.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 10 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - exemplo<br />

• Um exemplo simples <strong>de</strong> encriptação simétrica consiste<br />

em substituir cada letra <strong>de</strong> um texto pela letra k<br />

posições à frente no alfabeto (supomos que após ’z’<br />

vem ’a’).<br />

• Para k = 5, a palavra alabastro se transforma em<br />

fqfgfxywt.<br />

• A chave, neste caso, é k. Esse é o chamado método da<br />

substituição monoalfabética.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 10 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - exemplo<br />

• Um exemplo simples <strong>de</strong> encriptação simétrica consiste<br />

em substituir cada letra <strong>de</strong> um texto pela letra k<br />

posições à frente no alfabeto (supomos que após ’z’<br />

vem ’a’).<br />

• Para k = 5, a palavra alabastro se transforma em<br />

fqfgfxywt.<br />

• A chave, neste caso, é k. Esse é o chamado método da<br />

substituição monoalfabética.<br />

• Em vez <strong>de</strong> uma só letra substituindo outra, po<strong>de</strong>mos ter<br />

uma lista <strong>de</strong> letras usadas em seqüência. Essa é a<br />

substituição polialfabética.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 10 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - premissas<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 11 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - premissas<br />

• ENC.(.) <strong>de</strong>ve ser projetada <strong>de</strong> forma que seja muito<br />

difícil para Ivo calcular m a partir <strong>de</strong> c sem<br />

conhecimento <strong>de</strong> k, ainda que ENC.(.) seja pública e<br />

Ivo use computadores.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 11 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - premissas<br />

• ENC.(.) <strong>de</strong>ve ser projetada <strong>de</strong> forma que seja muito<br />

difícil para Ivo calcular m a partir <strong>de</strong> c sem<br />

conhecimento <strong>de</strong> k, ainda que ENC.(.) seja pública e<br />

Ivo use computadores.<br />

• Dizemos que ENCk(.) <strong>de</strong>ve ser uma função<br />

unidirecional para cada valor fixo <strong>de</strong> k; isto é, que<br />

ENCk(.) seja fácil <strong>de</strong> calcular, mas ENCk(.) −1 , ou seja,<br />

DECk(.), seja muito difícil <strong>de</strong> calcular sem o<br />

conhecimento da chave k.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 11 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - premissas<br />

• ENC.(.) <strong>de</strong>ve ser projetada <strong>de</strong> forma que seja muito<br />

difícil para Ivo calcular m a partir <strong>de</strong> c sem<br />

conhecimento <strong>de</strong> k, ainda que ENC.(.) seja pública e<br />

Ivo use computadores.<br />

• Dizemos que ENCk(.) <strong>de</strong>ve ser uma função<br />

unidirecional para cada valor fixo <strong>de</strong> k; isto é, que<br />

ENCk(.) seja fácil <strong>de</strong> calcular, mas ENCk(.) −1 , ou seja,<br />

DECk(.), seja muito difícil <strong>de</strong> calcular sem o<br />

conhecimento da chave k.<br />

•<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 11 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - premissas<br />

• ENC.(.) <strong>de</strong>ve ser projetada <strong>de</strong> forma que seja muito<br />

difícil para Ivo calcular m a partir <strong>de</strong> c sem<br />

conhecimento <strong>de</strong> k, ainda que ENC.(.) seja pública e<br />

Ivo use computadores.<br />

• Dizemos que ENCk(.) <strong>de</strong>ve ser uma função<br />

unidirecional para cada valor fixo <strong>de</strong> k; isto é, que<br />

ENCk(.) seja fácil <strong>de</strong> calcular, mas ENCk(.) −1 , ou seja,<br />

DECk(.), seja muito difícil <strong>de</strong> calcular sem o<br />

conhecimento da chave k.<br />

• A quantida<strong>de</strong> <strong>de</strong> chaves possíveis <strong>de</strong>ve ser muito<br />

gran<strong>de</strong>, para evitar uma busca exaustiva <strong>de</strong> k.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 11 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - premissas<br />

• ENC.(.) <strong>de</strong>ve ser projetada <strong>de</strong> forma que seja muito<br />

difícil para Ivo calcular m a partir <strong>de</strong> c sem<br />

conhecimento <strong>de</strong> k, ainda que ENC.(.) seja pública e<br />

Ivo use computadores.<br />

• Dizemos que ENCk(.) <strong>de</strong>ve ser uma função<br />

unidirecional para cada valor fixo <strong>de</strong> k; isto é, que<br />

ENCk(.) seja fácil <strong>de</strong> calcular, mas ENCk(.) −1 , ou seja,<br />

DECk(.), seja muito difícil <strong>de</strong> calcular sem o<br />

conhecimento da chave k.<br />

• A quantida<strong>de</strong> <strong>de</strong> chaves possíveis <strong>de</strong>ve ser muito<br />

gran<strong>de</strong>, para evitar uma busca exaustiva <strong>de</strong> k.<br />

• Alice e Beto têm que estabelecer a chave k em sigilo<br />

antes do seu uso. Essa dificulda<strong>de</strong> é recorrente.<br />

Veremos como essa dificulda<strong>de</strong> po<strong>de</strong> ser contornada.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 11 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - ataques<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 12 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - ataques<br />

• Como Ivo conhece a mensagem m ′ na busca exaustiva,<br />

o ataque ao mo<strong>de</strong>lo é chamado <strong>de</strong> ataque do texto claro<br />

conhecido.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 12 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - ataques<br />

• Como Ivo conhece a mensagem m ′ na busca exaustiva,<br />

o ataque ao mo<strong>de</strong>lo é chamado <strong>de</strong> ataque do texto claro<br />

conhecido.<br />

• Se somente c fosse conhecido, o ataque seria <strong>de</strong> texto<br />

encriptado somente.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 12 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - ataques<br />

• Como Ivo conhece a mensagem m ′ na busca exaustiva,<br />

o ataque ao mo<strong>de</strong>lo é chamado <strong>de</strong> ataque do texto claro<br />

conhecido.<br />

• Se somente c fosse conhecido, o ataque seria <strong>de</strong> texto<br />

encriptado somente.<br />

• Se Ivo tiver acesso à função ENCk(.), por exemplo<br />

embutida em algum dispositivo, e pu<strong>de</strong>r produzir pares<br />

(m ′ ,c ′ ) à sua escolha, o ataque é <strong>de</strong> texto claro<br />

escolhido.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 12 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - ataques<br />

• Como Ivo conhece a mensagem m ′ na busca exaustiva,<br />

o ataque ao mo<strong>de</strong>lo é chamado <strong>de</strong> ataque do texto claro<br />

conhecido.<br />

• Se somente c fosse conhecido, o ataque seria <strong>de</strong> texto<br />

encriptado somente.<br />

• Se Ivo tiver acesso à função ENCk(.), por exemplo<br />

embutida em algum dispositivo, e pu<strong>de</strong>r produzir pares<br />

(m ′ ,c ′ ) à sua escolha, o ataque é <strong>de</strong> texto claro<br />

escolhido.<br />

• Finalmente, se Ivo tiver acesso à função DECk(.) e<br />

pu<strong>de</strong>r produzir pares (m ′ ,c ′ ) à sua escolha, o ataque é<br />

<strong>de</strong> texto encriptado escolhido.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 12 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - ataques<br />

• Como Ivo conhece a mensagem m ′ na busca exaustiva,<br />

o ataque ao mo<strong>de</strong>lo é chamado <strong>de</strong> ataque do texto claro<br />

conhecido.<br />

• Se somente c fosse conhecido, o ataque seria <strong>de</strong> texto<br />

encriptado somente.<br />

• Se Ivo tiver acesso à função ENCk(.), por exemplo<br />

embutida em algum dispositivo, e pu<strong>de</strong>r produzir pares<br />

(m ′ ,c ′ ) à sua escolha, o ataque é <strong>de</strong> texto claro<br />

escolhido.<br />

• Finalmente, se Ivo tiver acesso à função DECk(.) e<br />

pu<strong>de</strong>r produzir pares (m ′ ,c ′ ) à sua escolha, o ataque é<br />

<strong>de</strong> texto encriptado escolhido.<br />

A ciência que se <strong>de</strong>dica a analisar algoritmos criptográficos<br />

em busca <strong>de</strong> falhas, ou <strong>de</strong> ”quebrar” tais algoritmos, é a<br />

Criptoanálise.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 12 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - simetria<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 13 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - simetria<br />

• O adjetivo simétrico é bastante a<strong>de</strong>quado. Tudo que um<br />

pu<strong>de</strong>r encriptar ou <strong>de</strong>criptar o outro também po<strong>de</strong>. Um<br />

benefício <strong>de</strong>ssa simetria é a confiança que Alice e Beto<br />

têm <strong>de</strong> que estão trocando mensagens sigilosas um com<br />

o outro, e não com Ivo. Por outro lado, não é possível<br />

atribuir a um ou a outro a autoria <strong>de</strong> uma mensagem<br />

sem a ajuda <strong>de</strong> uma terceira parte confiável.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 13 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia simétrica - simetria<br />

• O adjetivo simétrico é bastante a<strong>de</strong>quado. Tudo que um<br />

pu<strong>de</strong>r encriptar ou <strong>de</strong>criptar o outro também po<strong>de</strong>. Um<br />

benefício <strong>de</strong>ssa simetria é a confiança que Alice e Beto<br />

têm <strong>de</strong> que estão trocando mensagens sigilosas um com<br />

o outro, e não com Ivo. Por outro lado, não é possível<br />

atribuir a um ou a outro a autoria <strong>de</strong> uma mensagem<br />

sem a ajuda <strong>de</strong> uma terceira parte confiável.<br />

• Outras <strong>de</strong>nominações dos sistemas simétricos são<br />

sistemas <strong>de</strong> chaves secretas e sistemas <strong>de</strong> chaves<br />

simétricas.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 13 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

• Data Encryption Standard (DES), 1977.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

• Data Encryption Standard (DES), 1977.<br />

• Advanced Encryption Standard (AES), 2000.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

• Data Encryption Standard (DES), 1977.<br />

• Advanced Encryption Standard (AES), 2000.<br />

• NIST (1997-1999): MARS, RC6, Serpent, Twofish.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

• Data Encryption Standard (DES), 1977.<br />

• Advanced Encryption Standard (AES), 2000.<br />

• NIST (1997-1999): MARS, RC6, Serpent, Twofish.<br />

• NESSIE (2003): MYSTY1, AES, Camellia (ISO 2005).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

• Data Encryption Standard (DES), 1977.<br />

• Advanced Encryption Standard (AES), 2000.<br />

• NIST (1997-1999): MARS, RC6, Serpent, Twofish.<br />

• NESSIE (2003): MYSTY1, AES, Camellia (ISO 2005).<br />

• CRYPTREC (2002): Camellia, SC2000, Hierocrypt-3,<br />

CIPHERUNICORN-A.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns algoritmos simétricos mo<strong>de</strong>rnos<br />

• Data Encryption Standard (DES), 1977.<br />

• Advanced Encryption Standard (AES), 2000.<br />

• NIST (1997-1999): MARS, RC6, Serpent, Twofish.<br />

• NESSIE (2003): MYSTY1, AES, Camellia (ISO 2005).<br />

• CRYPTREC (2002): Camellia, SC2000, Hierocrypt-3,<br />

CIPHERUNICORN-A.<br />

• ECRYPT (European Network of Excellence for<br />

Cryptology) 2004-2008: Kasumi (64-128), AES.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 14 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia assimétrica<br />

m<br />

Alice<br />

e<br />

Enc<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 15 / 151<br />

c<br />

canal inseguro<br />

Dec<br />

B B<br />

Beto<br />

Figura 3.2 Mo<strong>de</strong>lo Assimétrico<br />

d<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia assimétrica<br />

m<br />

Alice<br />

e<br />

Enc<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 15 / 151<br />

c<br />

canal inseguro<br />

Dec<br />

B B<br />

Figura 3.2 Mo<strong>de</strong>lo Assimétrico<br />

Beto<br />

• Neste mo<strong>de</strong>lo, Alice aplica uma função <strong>de</strong> encriptação<br />

ENCeB (m), que transforma m numa mensagem<br />

encriptada c, sob a ação da chave eB. Ao receber c, Beto<br />

aplica a função <strong>de</strong> <strong>de</strong>criptação DECdB (c), recuperando<br />

m. No caso <strong>de</strong> mensagens <strong>de</strong> Beto para Alice, as chaves<br />

usadas são: eA para encriptação e dA para <strong>de</strong>criptação.<br />

d<br />

m


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia Assimétrica<br />

As chaves eB, dB são ambas <strong>de</strong> Beto. A primeira, eB, é a<br />

chave pública <strong>de</strong> Beto, distribuída e utilizada livremente. A<br />

segunda, dB, é <strong>de</strong> conhecimento exclusivo <strong>de</strong> Beto, sua<br />

chave privada. A chave eB é utilizada para encriptação <strong>de</strong><br />

mensagens para Beto e dB para <strong>de</strong>criptação <strong>de</strong>ssas<br />

mensagens. O mesmo se aplica para Alice em relação a eA<br />

e dA.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 16 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Conseqüências do mo<strong>de</strong>lo assimétrico<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 17 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Conseqüências do mo<strong>de</strong>lo assimétrico<br />

• Não é mais necessário um acordo prévio <strong>de</strong> chaves, já<br />

que cada usuário <strong>de</strong>ve necessariamente gerar o seu<br />

próprio par <strong>de</strong> chaves.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 17 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Conseqüências do mo<strong>de</strong>lo assimétrico<br />

• Não é mais necessário um acordo prévio <strong>de</strong> chaves, já<br />

que cada usuário <strong>de</strong>ve necessariamente gerar o seu<br />

próprio par <strong>de</strong> chaves.<br />

• Além <strong>de</strong>ssa melhora qualitativa, a redução do número<br />

<strong>de</strong> chaves também impressiona: n × (n − 1)/2 chaves<br />

no caso simétrico e 2n no caso assimétrico.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 17 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Conseqüências do mo<strong>de</strong>lo assimétrico<br />

• Não é mais necessário um acordo prévio <strong>de</strong> chaves, já<br />

que cada usuário <strong>de</strong>ve necessariamente gerar o seu<br />

próprio par <strong>de</strong> chaves.<br />

• Além <strong>de</strong>ssa melhora qualitativa, a redução do número<br />

<strong>de</strong> chaves também impressiona: n × (n − 1)/2 chaves<br />

no caso simétrico e 2n no caso assimétrico.<br />

• Embora não tenha mais que se preocupar com o sigilo<br />

da chave <strong>de</strong> encriptação, Alice <strong>de</strong>ve agora ter a<br />

confiança <strong>de</strong> que a chave <strong>de</strong> encriptação é, <strong>de</strong> fato, a<br />

chave eB <strong>de</strong> Beto. Tais chaves em pouco diferem <strong>de</strong><br />

longuíssimas seqüências aleatórias <strong>de</strong> bits e, portanto,<br />

sua i<strong>de</strong>ntificação é difícil. Claro que o uso constante da<br />

mesma chave com Beto traz essa confiança a Alice; o<br />

problema é o primeiro uso.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 17 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Premissas do mo<strong>de</strong>lo assimétrico<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 18 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Premissas do mo<strong>de</strong>lo assimétrico<br />

• ENC.(.) <strong>de</strong>ve ser unidirecional para cada chave eX, a<br />

menos que se conheça a chave dX <strong>de</strong> <strong>de</strong>criptação;<br />

supomos, como antes, que ENC.(.) e DEC.(.) sejam<br />

públicas;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 18 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Premissas do mo<strong>de</strong>lo assimétrico<br />

• ENC.(.) <strong>de</strong>ve ser unidirecional para cada chave eX, a<br />

menos que se conheça a chave dX <strong>de</strong> <strong>de</strong>criptação;<br />

supomos, como antes, que ENC.(.) e DEC.(.) sejam<br />

públicas;<br />

• obviamente, eB e dB são relacionadas, mas não <strong>de</strong>ve ser<br />

possível calcular dB a partir do conhecimento <strong>de</strong> eB, em<br />

tempo hábil. Uma condição necessária para isso é que o<br />

número <strong>de</strong> possibilida<strong>de</strong>s para dB seja muito alto. Em<br />

alguns sistemas atuais, dB chega a ter milhares <strong>de</strong> bits!<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 18 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia assimétrica - assimetria<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 19 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia assimétrica - assimetria<br />

• A assimetria <strong>de</strong>ste mo<strong>de</strong>lo é evi<strong>de</strong>nte: o po<strong>de</strong>r na<br />

transmissão <strong>de</strong> mensagens <strong>de</strong> Alice para Beto é <strong>de</strong><br />

Beto, o <strong>de</strong>stinatário. Tanto Alice como qualquer outra<br />

entida<strong>de</strong> po<strong>de</strong>m encriptar mensagens para Beto usando<br />

eB, mas só Beto consegue <strong>de</strong>criptá-las, usando sua<br />

chave privada dB.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 19 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia assimétrica - assimetria<br />

• A assimetria <strong>de</strong>ste mo<strong>de</strong>lo é evi<strong>de</strong>nte: o po<strong>de</strong>r na<br />

transmissão <strong>de</strong> mensagens <strong>de</strong> Alice para Beto é <strong>de</strong><br />

Beto, o <strong>de</strong>stinatário. Tanto Alice como qualquer outra<br />

entida<strong>de</strong> po<strong>de</strong>m encriptar mensagens para Beto usando<br />

eB, mas só Beto consegue <strong>de</strong>criptá-las, usando sua<br />

chave privada dB.<br />

• O outro lado <strong>de</strong>ssa moeda é a possibilida<strong>de</strong> <strong>de</strong> que Beto<br />

possa assinar mensagens enviadas a Alice e outros: se<br />

existirem funções SIGNdB (.)) e VEReB (·), com a<br />

proprieda<strong>de</strong> <strong>de</strong> que VEReB (m,s) retorna 1 quando<br />

s = SIGNdB (m), e 0 caso contrário, teremos em s o<br />

equivalente <strong>de</strong> uma assinatura digital <strong>de</strong> Beto em m.<br />

Assinaturas digitais são o que possibilitam a<br />

irretratabilida<strong>de</strong> das mensagens assinadas por Beto.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 19 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptografia assimétrica - assimetria<br />

• A assimetria <strong>de</strong>ste mo<strong>de</strong>lo é evi<strong>de</strong>nte: o po<strong>de</strong>r na<br />

transmissão <strong>de</strong> mensagens <strong>de</strong> Alice para Beto é <strong>de</strong><br />

Beto, o <strong>de</strong>stinatário. Tanto Alice como qualquer outra<br />

entida<strong>de</strong> po<strong>de</strong>m encriptar mensagens para Beto usando<br />

eB, mas só Beto consegue <strong>de</strong>criptá-las, usando sua<br />

chave privada dB.<br />

• O outro lado <strong>de</strong>ssa moeda é a possibilida<strong>de</strong> <strong>de</strong> que Beto<br />

possa assinar mensagens enviadas a Alice e outros: se<br />

existirem funções SIGNdB (.)) e VEReB (·), com a<br />

proprieda<strong>de</strong> <strong>de</strong> que VEReB (m,s) retorna 1 quando<br />

s = SIGNdB (m), e 0 caso contrário, teremos em s o<br />

equivalente <strong>de</strong> uma assinatura digital <strong>de</strong> Beto em m.<br />

Assinaturas digitais são o que possibilitam a<br />

irretratabilida<strong>de</strong> das mensagens assinadas por Beto.<br />

• Criptografia assimétrica = <strong>de</strong> chave pública.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 19 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

• ElGamal, 1984-1985.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

• ElGamal, 1984-1985.<br />

• Rabin, 1979.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

• ElGamal, 1984-1985.<br />

• Rabin, 1979.<br />

• Curvas Elípticas, Miller e Koblitz, 1985.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

• ElGamal, 1984-1985.<br />

• Rabin, 1979.<br />

• Curvas Elípticas, Miller e Koblitz, 1985.<br />

• DSA, 1991. Proposto por NIST.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

• ElGamal, 1984-1985.<br />

• Rabin, 1979.<br />

• Curvas Elípticas, Miller e Koblitz, 1985.<br />

• DSA, 1991. Proposto por NIST.<br />

• ECDSA, NIST (1999).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Alguns sistemas <strong>de</strong> chave pública<br />

• RSA, 1978.<br />

• ElGamal, 1984-1985.<br />

• Rabin, 1979.<br />

• Curvas Elípticas, Miller e Koblitz, 1985.<br />

• DSA, 1991. Proposto por NIST.<br />

• ECDSA, NIST (1999).<br />

• IBE, 2000 (Criptografia Baseada em I<strong>de</strong>ntida<strong>de</strong>s).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 20 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Breve histórico<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 21 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Breve histórico<br />

• Conceito introduzido por Whitfield Diffie e Martin<br />

Hellman em 1976: Protocolo <strong>de</strong> acordo <strong>de</strong> chaves DH.<br />

(Logaritmo discreto módulo p).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 21 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Breve histórico<br />

• Conceito introduzido por Whitfield Diffie e Martin<br />

Hellman em 1976: Protocolo <strong>de</strong> acordo <strong>de</strong> chaves DH.<br />

(Logaritmo discreto módulo p).<br />

• RSA: Rivest, Shamir Adleman, 1978. (Fatoração).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 21 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Breve histórico<br />

• Conceito introduzido por Whitfield Diffie e Martin<br />

Hellman em 1976: Protocolo <strong>de</strong> acordo <strong>de</strong> chaves DH.<br />

(Logaritmo discreto módulo p).<br />

• RSA: Rivest, Shamir Adleman, 1978. (Fatoração).<br />

• ElGamal: (Assinatura digital), 1984-1985.(Logaritmo<br />

discreto módulo p.)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 21 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Breve histórico<br />

• Conceito introduzido por Whitfield Diffie e Martin<br />

Hellman em 1976: Protocolo <strong>de</strong> acordo <strong>de</strong> chaves DH.<br />

(Logaritmo discreto módulo p).<br />

• RSA: Rivest, Shamir Adleman, 1978. (Fatoração).<br />

• ElGamal: (Assinatura digital), 1984-1985.(Logaritmo<br />

discreto módulo p.)<br />

• Goverment Communications Headquarters (UK).<br />

(James Ellis, Clifford Cocks, Malcolm Williamson -<br />

primeiros inventores do RSA e do Protocolo DH,<br />

1969-1974).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 21 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Fundamentos matemáticos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 22 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Fundamentos matemáticos<br />

• Z é o conjunto dos números inteiros.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 22 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Fundamentos matemáticos<br />

• Z é o conjunto dos números inteiros.<br />

• a é divisível por b se existe inteiro q tal que a = qb.<br />

Nesse caso, b é divisor <strong>de</strong> a<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 22 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Fundamentos matemáticos<br />

• Z é o conjunto dos números inteiros.<br />

• a é divisível por b se existe inteiro q tal que a = qb.<br />

Nesse caso, b é divisor <strong>de</strong> a<br />

3|21, mas 4 |15.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 22 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Fundamentos matemáticos<br />

• Z é o conjunto dos números inteiros.<br />

• a é divisível por b se existe inteiro q tal que a = qb.<br />

Nesse caso, b é divisor <strong>de</strong> a<br />

3|21, mas 4 |15.<br />

• Um número inteiro p ≥ 2 é primo se é divisível<br />

somente por 1 e por ele mesmo.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 22 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Fundamentos matemáticos<br />

• Z é o conjunto dos números inteiros.<br />

• a é divisível por b se existe inteiro q tal que a = qb.<br />

Nesse caso, b é divisor <strong>de</strong> a<br />

3|21, mas 4 |15.<br />

• Um número inteiro p ≥ 2 é primo se é divisível<br />

somente por 1 e por ele mesmo.<br />

• Todo inteiro n ≥ 2 po<strong>de</strong> ser escrito como um produto<br />

<strong>de</strong> potências <strong>de</strong> números primos; a fatoração <strong>de</strong> n.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 22 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

• O máximo divisor comum <strong>de</strong> a e b, (mdc(a,b)), é o<br />

maior inteiro d que divi<strong>de</strong> ambos a e b.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

• O máximo divisor comum <strong>de</strong> a e b, (mdc(a,b)), é o<br />

maior inteiro d que divi<strong>de</strong> ambos a e b.<br />

mdc(20, 8) = 4<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

• O máximo divisor comum <strong>de</strong> a e b, (mdc(a,b)), é o<br />

maior inteiro d que divi<strong>de</strong> ambos a e b.<br />

mdc(20, 8) = 4<br />

mdc(20, 0) = 20<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

• O máximo divisor comum <strong>de</strong> a e b, (mdc(a,b)), é o<br />

maior inteiro d que divi<strong>de</strong> ambos a e b.<br />

mdc(20, 8) = 4<br />

mdc(20, 0) = 20<br />

mdc(20, 7) = 1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

• O máximo divisor comum <strong>de</strong> a e b, (mdc(a,b)), é o<br />

maior inteiro d que divi<strong>de</strong> ambos a e b.<br />

mdc(20, 8) = 4<br />

mdc(20, 0) = 20<br />

mdc(20, 7) = 1<br />

• Quando mdc(a,b) = 1, dizemos que a e b são primos<br />

entre si ou coprimos.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O máximo divisor comum (m.d.c)<br />

• Consi<strong>de</strong>re a,b dois números inteiros, não ambos nulos.<br />

• O máximo divisor comum <strong>de</strong> a e b, (mdc(a,b)), é o<br />

maior inteiro d que divi<strong>de</strong> ambos a e b.<br />

mdc(20, 8) = 4<br />

mdc(20, 0) = 20<br />

mdc(20, 7) = 1<br />

• Quando mdc(a,b) = 1, dizemos que a e b são primos<br />

entre si ou coprimos.<br />

O Algoritmo <strong>de</strong> Eucli<strong>de</strong>s, é o método mais popular para o<br />

cálculo do mdc.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 23 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O Algoritmo <strong>de</strong> Eucli<strong>de</strong>s<br />

Entrada: inteiros a,b, com a > 0, b ≥ 0.<br />

Saída: inteiro d, on<strong>de</strong> d = mdc(a,b).<br />

1. se b = 0 então retorne (a);<br />

2. enquanto b > 0 faça<br />

2.1 q ← a div b; r ← a − q ∗ b;<br />

2.2 a ← b; b ← r;<br />

3. d ← a;<br />

4. retorne (d);<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 24 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 25 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 3 Sejam a,n números inteiros com n > 0. O<br />

resto ou resíduo da divisão <strong>de</strong> a por n é o único inteiro r,<br />

com 0 ≤ r ≤ n − 1, tal que a = qn + r para algum inteiro<br />

q, o quociente da divisão.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 25 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 5 Sejam a,n números inteiros com n > 0. O<br />

resto ou resíduo da divisão <strong>de</strong> a por n é o único inteiro r,<br />

com 0 ≤ r ≤ n − 1, tal que a = qn + r para algum inteiro<br />

q, o quociente da divisão.<br />

Por essa <strong>de</strong>finição o resto da divisão <strong>de</strong> 7 por 3 é 1 (com<br />

quociente 2), e o resto da divisão <strong>de</strong> −7 por 3 é 2 (com<br />

quociente −3).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 25 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 7 Sejam a,n números inteiros com n > 0. O<br />

resto ou resíduo da divisão <strong>de</strong> a por n é o único inteiro r,<br />

com 0 ≤ r ≤ n − 1, tal que a = qn + r para algum inteiro<br />

q, o quociente da divisão.<br />

Por essa <strong>de</strong>finição o resto da divisão <strong>de</strong> 7 por 3 é 1 (com<br />

quociente 2), e o resto da divisão <strong>de</strong> −7 por 3 é 2 (com<br />

quociente −3).<br />

Definição 8 Para a,n números inteiros com n > 0, a<br />

expressão a mod n é a redução <strong>de</strong> a módulo n, <strong>de</strong>finida<br />

como o resto da divisão <strong>de</strong> a por n.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 25 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 9 Sejam a,n números inteiros com n > 0. O<br />

resto ou resíduo da divisão <strong>de</strong> a por n é o único inteiro r,<br />

com 0 ≤ r ≤ n − 1, tal que a = qn + r para algum inteiro<br />

q, o quociente da divisão.<br />

Por essa <strong>de</strong>finição o resto da divisão <strong>de</strong> 7 por 3 é 1 (com<br />

quociente 2), e o resto da divisão <strong>de</strong> −7 por 3 é 2 (com<br />

quociente −3).<br />

Definição 10 Para a,n números inteiros com n > 0, a<br />

expressão a mod n é a redução <strong>de</strong> a módulo n, <strong>de</strong>finida<br />

como o resto da divisão <strong>de</strong> a por n.<br />

Portanto, 0 mod 5 = 0 e (3 − 8) mod 4 = −1 mod 4 = 3.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 25 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 26 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 13 Dado um inteiro n ≥ 1, <strong>de</strong>notamos por Zn<br />

ao conjunto {0, 1,...,n − 1} <strong>de</strong> resíduos módulo n, isto é<br />

dos restos possíveis <strong>de</strong> divisões <strong>de</strong> números inteiros por n.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 26 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 15 Dado um inteiro n ≥ 1, <strong>de</strong>notamos por Zn<br />

ao conjunto {0, 1,...,n − 1} <strong>de</strong> resíduos módulo n, isto é<br />

dos restos possíveis <strong>de</strong> divisões <strong>de</strong> números inteiros por n.<br />

Como todo número inteiro produz um resto ao ser dividido<br />

por n, Zn tem em si um representante para cada número<br />

inteiro. A próxima <strong>de</strong>finição captura essa idéia.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 26 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 17 Dado um inteiro n ≥ 1, <strong>de</strong>notamos por Zn<br />

ao conjunto {0, 1,...,n − 1} <strong>de</strong> resíduos módulo n, isto é<br />

dos restos possíveis <strong>de</strong> divisões <strong>de</strong> números inteiros por n.<br />

Como todo número inteiro produz um resto ao ser dividido<br />

por n, Zn tem em si um representante para cada número<br />

inteiro. A próxima <strong>de</strong>finição captura essa idéia.<br />

Definição 18 Para a,b,n números inteiros com n > 0,<br />

escrevemos a ≡ b (mod n), quando a mod n = b mod n.<br />

Dizemos que a e b são congruentes módulo n.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 26 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 19 Dado um inteiro n ≥ 1, <strong>de</strong>notamos por Zn<br />

ao conjunto {0, 1,...,n − 1} <strong>de</strong> resíduos módulo n, isto é<br />

dos restos possíveis <strong>de</strong> divisões <strong>de</strong> números inteiros por n.<br />

Como todo número inteiro produz um resto ao ser dividido<br />

por n, Zn tem em si um representante para cada número<br />

inteiro. A próxima <strong>de</strong>finição captura essa idéia.<br />

Definição 20 Para a,b,n números inteiros com n > 0,<br />

escrevemos a ≡ b (mod n), quando a mod n = b mod n.<br />

Dizemos que a e b são congruentes módulo n.<br />

Assim, 0 ≡ 3 (mod 3) e 43 ≡ 1 (mod 2).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 26 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Inversos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 27 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Inversos<br />

Definição 22 Para a,n números inteiros com n > 0, o<br />

inverso aditivo <strong>de</strong> a módulo n é o inteiro b = −a mod n.;<br />

ou seja a + b ≡ 0 (mod n).<br />

O inverso multiplicativo <strong>de</strong> a módulo n, se existir, é o único<br />

inteiro b, 1 ≤ b ≤ n − 1, tal que ab ≡ 1 (mod n).<br />

Denotamos o inverso multiplicativo <strong>de</strong> a módulo n por<br />

a −1 mod n.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 27 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Inversos<br />

Definição 23 Para a,n números inteiros com n > 0, o<br />

inverso aditivo <strong>de</strong> a módulo n é o inteiro b = −a mod n.;<br />

ou seja a + b ≡ 0 (mod n).<br />

O inverso multiplicativo <strong>de</strong> a módulo n, se existir, é o único<br />

inteiro b, 1 ≤ b ≤ n − 1, tal que ab ≡ 1 (mod n).<br />

Denotamos o inverso multiplicativo <strong>de</strong> a módulo n por<br />

a −1 mod n.<br />

• O inverso aditivo <strong>de</strong> 4 módulo 7 é 3.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 27 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Inversos<br />

Definição 24 Para a,n números inteiros com n > 0, o<br />

inverso aditivo <strong>de</strong> a módulo n é o inteiro b = −a mod n.;<br />

ou seja a + b ≡ 0 (mod n).<br />

O inverso multiplicativo <strong>de</strong> a módulo n, se existir, é o único<br />

inteiro b, 1 ≤ b ≤ n − 1, tal que ab ≡ 1 (mod n).<br />

Denotamos o inverso multiplicativo <strong>de</strong> a módulo n por<br />

a −1 mod n.<br />

• O inverso aditivo <strong>de</strong> 4 módulo 7 é 3.<br />

• O inverso multiplicativo <strong>de</strong> 2 módulo 5 é 3.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 27 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Inversos<br />

Definição 25 Para a,n números inteiros com n > 0, o<br />

inverso aditivo <strong>de</strong> a módulo n é o inteiro b = −a mod n.;<br />

ou seja a + b ≡ 0 (mod n).<br />

O inverso multiplicativo <strong>de</strong> a módulo n, se existir, é o único<br />

inteiro b, 1 ≤ b ≤ n − 1, tal que ab ≡ 1 (mod n).<br />

Denotamos o inverso multiplicativo <strong>de</strong> a módulo n por<br />

a −1 mod n.<br />

• O inverso aditivo <strong>de</strong> 4 módulo 7 é 3.<br />

• O inverso multiplicativo <strong>de</strong> 2 módulo 5 é 3.<br />

• O inverso multiplicativo <strong>de</strong> 2 módulo 6 não existe.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 27 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Inversos<br />

Definição 26 Para a,n números inteiros com n > 0, o<br />

inverso aditivo <strong>de</strong> a módulo n é o inteiro b = −a mod n.;<br />

ou seja a + b ≡ 0 (mod n).<br />

O inverso multiplicativo <strong>de</strong> a módulo n, se existir, é o único<br />

inteiro b, 1 ≤ b ≤ n − 1, tal que ab ≡ 1 (mod n).<br />

Denotamos o inverso multiplicativo <strong>de</strong> a módulo n por<br />

a −1 mod n.<br />

• O inverso aditivo <strong>de</strong> 4 módulo 7 é 3.<br />

• O inverso multiplicativo <strong>de</strong> 2 módulo 5 é 3.<br />

• O inverso multiplicativo <strong>de</strong> 2 módulo 6 não existe.<br />

Teorema 6 Para a,n números inteiros com n > 0, o<br />

inverso multiplicativo <strong>de</strong> a módulo n existe se e somente se<br />

mdc(a,n) = 1.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 27 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Extensão do Algoritmo <strong>de</strong> Eucli<strong>de</strong>s<br />

Dados a,n, a extensão do Algoritmo <strong>de</strong> Eucli<strong>de</strong>s, retorna<br />

inteiros (d,s,t) on<strong>de</strong> d = mdc(a,n) e d = sa + tn. Isto é,<br />

sa ≡ d (mod n). Assim, quando mdc(a,n) = 1, o inteiro<br />

s é a −1 mod n.<br />

Entrada: inteiros a,b.<br />

Saída: inteiros d,s,t, on<strong>de</strong> d = mdc(a,b) = sa + tb.<br />

1. se b = 0 então retorne (a, 1, 0);<br />

2. x2 ← 1; x1 ← 0; y2 ← 0; y1 ← 1;<br />

3. enquanto b > 0 faça<br />

3.1 q ← a div b; r ← a − q ∗ b;<br />

3.2 s ← x2 − q ∗ x1; t ← y2 − q ∗ y1;<br />

3.3 a ← b; b ← r; x2 ← x1; x1 ← s;<br />

3.4 y2 ← y1; y1 ← t;<br />

4. d ← a; s ← x2; t ← y2;<br />

5. retorne (d,s,t);<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 28 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 27 Dado um inteiro n ≥ 2, <strong>de</strong>notamos por Z ∗<br />

n<br />

ao conjunto {a|mdc(a,n) = 1, 1 ≤ a ≤ n − 1}. O<br />

tamanho <strong>de</strong> Z ∗<br />

n é representado por φ(n), a função <strong>de</strong> Euler.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 29 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 28 Dado um inteiro n ≥ 2, <strong>de</strong>notamos por Z ∗<br />

n<br />

ao conjunto {a|mdc(a,n) = 1, 1 ≤ a ≤ n − 1}. O<br />

tamanho <strong>de</strong> Z ∗<br />

n é representado por φ(n), a função <strong>de</strong> Euler.<br />

Assim, Z ∗<br />

10 = {1, 3, 7, 9} e φ(10) = 4. Também,<br />

φ(n) = n − 1 sempre que n for primo.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 29 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética modular<br />

Definição 29 Dado um inteiro n ≥ 2, <strong>de</strong>notamos por Z ∗<br />

n<br />

ao conjunto {a|mdc(a,n) = 1, 1 ≤ a ≤ n − 1}. O<br />

tamanho <strong>de</strong> Z ∗<br />

n é representado por φ(n), a função <strong>de</strong> Euler.<br />

Assim, Z ∗<br />

10 = {1, 3, 7, 9} e φ(10) = 4. Também,<br />

φ(n) = n − 1 sempre que n for primo.<br />

• É fácil verificar que as operações <strong>de</strong> soma, subtração e<br />

multiplicação modular são as mesmas da aritmética<br />

usual mas com o resultado reduzido módulo n. A<br />

divisão é a única exceção: (a/b) mod n é sempre<br />

escrita e intepretada como ab −1 mod n.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 29 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos<br />

Um grupo é formado por um conjunto G e uma operação<br />

+, com as seguintes proprieda<strong>de</strong>s, para todos a,b,c ∈ G:<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 30 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos<br />

Um grupo é formado por um conjunto G e uma operação<br />

+, com as seguintes proprieda<strong>de</strong>s, para todos a,b,c ∈ G:<br />

1. (fechamento) a + b ∈ G;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 30 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos<br />

Um grupo é formado por um conjunto G e uma operação<br />

+, com as seguintes proprieda<strong>de</strong>s, para todos a,b,c ∈ G:<br />

1. (fechamento) a + b ∈ G;<br />

2. (associativida<strong>de</strong>) (a + b) + c = a + (b + c);<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 30 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos<br />

Um grupo é formado por um conjunto G e uma operação<br />

+, com as seguintes proprieda<strong>de</strong>s, para todos a,b,c ∈ G:<br />

1. (fechamento) a + b ∈ G;<br />

2. (associativida<strong>de</strong>) (a + b) + c = a + (b + c);<br />

3. (existência <strong>de</strong> elemento neutro ou i<strong>de</strong>ntida<strong>de</strong>) existe<br />

um elemento em G, <strong>de</strong>notado 0, tal que a + 0 = a;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 30 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos<br />

Um grupo é formado por um conjunto G e uma operação<br />

+, com as seguintes proprieda<strong>de</strong>s, para todos a,b,c ∈ G:<br />

1. (fechamento) a + b ∈ G;<br />

2. (associativida<strong>de</strong>) (a + b) + c = a + (b + c);<br />

3. (existência <strong>de</strong> elemento neutro ou i<strong>de</strong>ntida<strong>de</strong>) existe<br />

um elemento em G, <strong>de</strong>notado 0, tal que a + 0 = a;<br />

4. (existência <strong>de</strong> inversos) para todo a ∈ G, existe em G<br />

um elemento <strong>de</strong>notado −a, tal que a + (−a) = 0.<br />

Um grupo é abeliano se a + b = b + a para todos a,b ∈ G.<br />

Exemplos <strong>de</strong> grupos são:<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 30 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos<br />

Um grupo é formado por um conjunto G e uma operação<br />

+, com as seguintes proprieda<strong>de</strong>s, para todos a,b,c ∈ G:<br />

1. (fechamento) a + b ∈ G;<br />

2. (associativida<strong>de</strong>) (a + b) + c = a + (b + c);<br />

3. (existência <strong>de</strong> elemento neutro ou i<strong>de</strong>ntida<strong>de</strong>) existe<br />

um elemento em G, <strong>de</strong>notado 0, tal que a + 0 = a;<br />

4. (existência <strong>de</strong> inversos) para todo a ∈ G, existe em G<br />

um elemento <strong>de</strong>notado −a, tal que a + (−a) = 0.<br />

Um grupo é abeliano se a + b = b + a para todos a,b ∈ G.<br />

Exemplos <strong>de</strong> grupos são:<br />

• números inteiros, racionais e reais com a soma usual;<br />

• os elementos <strong>de</strong> Zn = {0, 1, 2,...,p − 1}, n > 0, com<br />

a operação <strong>de</strong> soma módulo n;<br />

• os elementos <strong>de</strong> Z ∗<br />

p = {1, 2,...,n − 1}, p > 1, primo,<br />

com a operação <strong>de</strong> multiplicação módulo p.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 30 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos aditivos e multiplicativos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 31 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos aditivos e multiplicativos<br />

• Denotaremos o grupo <strong>de</strong>finido acima por (G, +), ou<br />

simplesmente G, quando a operação + estiver<br />

subentendida no texto.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 31 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos aditivos e multiplicativos<br />

• Denotaremos o grupo <strong>de</strong>finido acima por (G, +), ou<br />

simplesmente G, quando a operação + estiver<br />

subentendida no texto.<br />

• Essa <strong>de</strong>finição usa a notação aditiva, isto é,<br />

a + a + a + a é <strong>de</strong>notado por 4a, 0 é a i<strong>de</strong>ntida<strong>de</strong>, e<br />

0.a = 0.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 31 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupos aditivos e multiplicativos<br />

• Denotaremos o grupo <strong>de</strong>finido acima por (G, +), ou<br />

simplesmente G, quando a operação + estiver<br />

subentendida no texto.<br />

• Essa <strong>de</strong>finição usa a notação aditiva, isto é,<br />

a + a + a + a é <strong>de</strong>notado por 4a, 0 é a i<strong>de</strong>ntida<strong>de</strong>, e<br />

0.a = 0.<br />

• Po<strong>de</strong>ríamos ter usado uma notação multiplicativa, on<strong>de</strong><br />

a operação do grupo seria <strong>de</strong>notada ’.’. Assim, a.a.a<br />

(ou aaa) seria <strong>de</strong>notado por a 3 , o elemento i<strong>de</strong>ntida<strong>de</strong><br />

seria 1, e a 0 = 1.<br />

Como já ficou claro, essas não são necessariamente as<br />

operações usuais <strong>de</strong> soma e multiplicação.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 31 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Problema do logaritmo discreto<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 32 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Problema do logaritmo discreto<br />

• O número <strong>de</strong> elementos <strong>de</strong> G é a sua or<strong>de</strong>m. Se a<br />

or<strong>de</strong>m é finita, então G é um grupo finito.<br />

• A or<strong>de</strong>m <strong>de</strong> um elemento a ∈ G é o menor inteiro<br />

positivo t tal que ta = 0. É um fato bem conhecido que<br />

a or<strong>de</strong>m <strong>de</strong> um elemento divi<strong>de</strong> a or<strong>de</strong>m do grupo.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 32 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Problema do logaritmo discreto<br />

• O número <strong>de</strong> elementos <strong>de</strong> G é a sua or<strong>de</strong>m. Se a<br />

or<strong>de</strong>m é finita, então G é um grupo finito.<br />

• A or<strong>de</strong>m <strong>de</strong> um elemento a ∈ G é o menor inteiro<br />

positivo t tal que ta = 0. É um fato bem conhecido que<br />

a or<strong>de</strong>m <strong>de</strong> um elemento divi<strong>de</strong> a or<strong>de</strong>m do grupo.<br />

• Quando, para um grupo finito G <strong>de</strong> or<strong>de</strong>m n, existe um<br />

elemento α <strong>de</strong> or<strong>de</strong>m n, dizemos que G é cíclico e que<br />

α é um gerador <strong>de</strong> G.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 32 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Problema do logaritmo discreto<br />

• O número <strong>de</strong> elementos <strong>de</strong> G é a sua or<strong>de</strong>m. Se a<br />

or<strong>de</strong>m é finita, então G é um grupo finito.<br />

• A or<strong>de</strong>m <strong>de</strong> um elemento a ∈ G é o menor inteiro<br />

positivo t tal que ta = 0. É um fato bem conhecido que<br />

a or<strong>de</strong>m <strong>de</strong> um elemento divi<strong>de</strong> a or<strong>de</strong>m do grupo.<br />

• Quando, para um grupo finito G <strong>de</strong> or<strong>de</strong>m n, existe um<br />

elemento α <strong>de</strong> or<strong>de</strong>m n, dizemos que G é cíclico e que<br />

α é um gerador <strong>de</strong> G.<br />

Definição 33 (Problema do logaritmo discreto) Dados<br />

elementos a,b <strong>de</strong> um grupo (G,.), tais que b = a l , o<br />

problema do logaritmo discreto é o <strong>de</strong> encontrar l<br />

conhecendo a e b apenas.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 32 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos<br />

Definição 34 Um corpo é formado por um conjunto F e<br />

duas operações, ‘+’ e ‘.’, satisfazendo as seguintes<br />

proprieda<strong>de</strong>s:<br />

• (F, +) é um grupo abeliano com i<strong>de</strong>ntida<strong>de</strong> 0;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 33 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos<br />

Definição 35 Um corpo é formado por um conjunto F e<br />

duas operações, ‘+’ e ‘.’, satisfazendo as seguintes<br />

proprieda<strong>de</strong>s:<br />

• (F, +) é um grupo abeliano com i<strong>de</strong>ntida<strong>de</strong> 0;<br />

• (F \ {0},.) é um grupo abeliano com i<strong>de</strong>ntida<strong>de</strong> 1; e<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 33 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos<br />

Definição 36 Um corpo é formado por um conjunto F e<br />

duas operações, ‘+’ e ‘.’, satisfazendo as seguintes<br />

proprieda<strong>de</strong>s:<br />

• (F, +) é um grupo abeliano com i<strong>de</strong>ntida<strong>de</strong> 0;<br />

• (F \ {0},.) é um grupo abeliano com i<strong>de</strong>ntida<strong>de</strong> 1; e<br />

• a operação . é distributiva sobre a operação +, isto é,<br />

a.(b + c) = a.b + a.c, para todos a,b,c ∈ F.<br />

Números racionais, reais e complexos são exemplos <strong>de</strong><br />

corpos infinitos.<br />

A or<strong>de</strong>m <strong>de</strong> um corpo finito é o número <strong>de</strong> elementos em<br />

F. Quando a or<strong>de</strong>m é finita dizemos que o corpo é finito.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 33 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

• ka <strong>de</strong>nota a adição <strong>de</strong> k parcelas iguais a a;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

• ka <strong>de</strong>nota a adição <strong>de</strong> k parcelas iguais a a;<br />

• a k <strong>de</strong>nota a multiplicação <strong>de</strong> k parcelas iguais a a,<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

• ka <strong>de</strong>nota a adição <strong>de</strong> k parcelas iguais a a;<br />

• a k <strong>de</strong>nota a multiplicação <strong>de</strong> k parcelas iguais a a, on<strong>de</strong><br />

a 0 = 1.<br />

• Existe um corpo finito <strong>de</strong> or<strong>de</strong>m q, se e somente se<br />

q = p m para algum primo p e inteiro m > 0.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

• ka <strong>de</strong>nota a adição <strong>de</strong> k parcelas iguais a a;<br />

• a k <strong>de</strong>nota a multiplicação <strong>de</strong> k parcelas iguais a a, on<strong>de</strong><br />

a 0 = 1.<br />

• Existe um corpo finito <strong>de</strong> or<strong>de</strong>m q, se e somente se<br />

q = p m para algum primo p e inteiro m > 0.<br />

• O primo p é a característica <strong>de</strong> F.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

• ka <strong>de</strong>nota a adição <strong>de</strong> k parcelas iguais a a;<br />

• a k <strong>de</strong>nota a multiplicação <strong>de</strong> k parcelas iguais a a, on<strong>de</strong><br />

a 0 = 1.<br />

• Existe um corpo finito <strong>de</strong> or<strong>de</strong>m q, se e somente se<br />

q = p m para algum primo p e inteiro m > 0.<br />

• O primo p é a característica <strong>de</strong> F.<br />

• Quando q é primo, i.e. m = 1, dizemos que o corpo é<br />

primo. Quando m > 1, o corpo é <strong>de</strong> extensão.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - existência<br />

Sejam a,b dois elementos <strong>de</strong> um corpo, finito ou não. Então<br />

• a − b é equivalente a a + (−b), on<strong>de</strong> −b é o (único)<br />

inverso aditivo <strong>de</strong> b;<br />

• a/b é equivalente a a.(b −1 ), on<strong>de</strong> b −1 é o (único)<br />

inverso multiplicativo <strong>de</strong> b;<br />

• ka <strong>de</strong>nota a adição <strong>de</strong> k parcelas iguais a a;<br />

• a k <strong>de</strong>nota a multiplicação <strong>de</strong> k parcelas iguais a a, on<strong>de</strong><br />

a 0 = 1.<br />

• Existe um corpo finito <strong>de</strong> or<strong>de</strong>m q, se e somente se<br />

q = p m para algum primo p e inteiro m > 0.<br />

• O primo p é a característica <strong>de</strong> F.<br />

• Quando q é primo, i.e. m = 1, dizemos que o corpo é<br />

primo. Quando m > 1, o corpo é <strong>de</strong> extensão.<br />

• Denotamos o corpo finito <strong>de</strong> or<strong>de</strong>m q por Fq.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 34 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• O conjunto Zp, p primo, com as operações <strong>de</strong> soma e<br />

multiplicação módulo p formam o corpo primo Fp <strong>de</strong><br />

or<strong>de</strong>m p.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 35 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• O conjunto Zp, p primo, com as operações <strong>de</strong> soma e<br />

multiplicação módulo p formam o corpo primo Fp <strong>de</strong><br />

or<strong>de</strong>m p.<br />

• O corpo binário F2m é formado pelos polinômios em<br />

uma variável z <strong>de</strong> grau máximo m − 1, cujos<br />

coeficientes são 0 ou 1. As duas operações associadas<br />

são as <strong>de</strong> soma e multiplicação <strong>de</strong> polinômios, com as<br />

seguintes restrições:<br />

◦ os coeficientes do polinômio resultante são<br />

reduzidos módulo 2;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 35 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• O conjunto Zp, p primo, com as operações <strong>de</strong> soma e<br />

multiplicação módulo p formam o corpo primo Fp <strong>de</strong><br />

or<strong>de</strong>m p.<br />

• O corpo binário F2m é formado pelos polinômios em<br />

uma variável z <strong>de</strong> grau máximo m − 1, cujos<br />

coeficientes são 0 ou 1. As duas operações associadas<br />

são as <strong>de</strong> soma e multiplicação <strong>de</strong> polinômios, com as<br />

seguintes restrições:<br />

◦ os coeficientes do polinômio resultante são<br />

reduzidos módulo 2;<br />

◦ o resultado da multiplicação <strong>de</strong> dois polinômios<br />

<strong>de</strong>ve ser tomado módulo um polinômio irredutível<br />

f(z) <strong>de</strong> grau m. Isto é, f(z) não é o produto <strong>de</strong> dois<br />

polinômios binários <strong>de</strong> grau menor que m.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 35 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 36 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• Corpo Finito:<br />

F2m = {<br />

m−1 <br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 36 / 151<br />

i=0<br />

aix i | ai ∈ Z2},


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• Corpo Finito:<br />

F2m = {<br />

m−1 <br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 36 / 151<br />

i=0<br />

aix i | ai ∈ Z2},<br />

f(x) = x m + r(x) polinômio irredutível


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• Corpo Finito:<br />

F2m = {<br />

m−1 <br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 36 / 151<br />

i=0<br />

aix i | ai ∈ Z2},<br />

f(x) = x m + r(x) polinômio irredutível<br />

• Exemplo: m = 3, F 2 3, f(x) = x 3 + x + 1<br />

F 2 3 = {a2x 2 + a1x + a0 | ai ∈ {0, 1}}<br />

= {0, 1,x,x + 1,x 2 ,x 2 + 1,x 2 + x,x 2 + x + 1}<br />

= {000, 001, 010, 011, 100, 101, 110, 111}


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 37 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• Os elementos não nulos <strong>de</strong> um corpo finito Fq,<br />

juntamente com a multiplicação do corpo, formam um<br />

grupo cíclico, <strong>de</strong>notado por Fq ∗ .<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 37 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• Os elementos não nulos <strong>de</strong> um corpo finito Fq,<br />

juntamente com a multiplicação do corpo, formam um<br />

grupo cíclico, <strong>de</strong>notado por Fq ∗ .<br />

• Portanto, existe para esse grupo pelo menos um gerador<br />

α, isto é,<br />

Fq ∗ = {αi : 0 ≤ i ≤ q − 2}.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 37 / 151


Introdução<br />

• Sobre este curso<br />

• Mo<strong>de</strong>lo <strong>de</strong><br />

segurança<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

simétrica<br />

• Criptografia<br />

assimétrica<br />

• Fundamentos<br />

matemáticos<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Corpos finitos - exemplos<br />

• Os elementos não nulos <strong>de</strong> um corpo finito Fq,<br />

juntamente com a multiplicação do corpo, formam um<br />

grupo cíclico, <strong>de</strong>notado por Fq ∗ .<br />

• Portanto, existe para esse grupo pelo menos um gerador<br />

α, isto é,<br />

Fq ∗ = {αi : 0 ≤ i ≤ q − 2}.<br />

• Os métodos conhecidos para o cálculo do logaritmo<br />

discreto em Fq∗ são todos muito ineficientes quando q é<br />

muito gran<strong>de</strong>, da or<strong>de</strong>m <strong>de</strong> centenas <strong>de</strong> dígitos. Para<br />

outros grupos o cálculo é muito fácil, por exemplo, em<br />

(Zn, +).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 37 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Técnicas criptográficas<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 38 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Técnicas criptográficas<br />

Algoritmos simétricos<br />

Resumos criptográficos<br />

Algoritmos assimétricos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 39 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Algoritmos simétricos<br />

• DES (Data Encryption Standard), 1977<br />

• AES (Advanced Encryption Standard), 2000<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 40 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Publicado em 1977: (The United States’s National<br />

Bureau of Standards)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Publicado em 1977: (The United States’s National<br />

Bureau of Standards)<br />

• FIPS PUB 46-3 (Fe<strong>de</strong>ral Information Processing<br />

Standard Publication), 1999<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Publicado em 1977: (The United States’s National<br />

Bureau of Standards)<br />

• FIPS PUB 46-3 (Fe<strong>de</strong>ral Information Processing<br />

Standard Publication), 1999<br />

• Cifrador <strong>de</strong> blocos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Publicado em 1977: (The United States’s National<br />

Bureau of Standards)<br />

• FIPS PUB 46-3 (Fe<strong>de</strong>ral Information Processing<br />

Standard Publication), 1999<br />

• Cifrador <strong>de</strong> blocos<br />

• Tamanho dos blocos: 64 bits<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Publicado em 1977: (The United States’s National<br />

Bureau of Standards)<br />

• FIPS PUB 46-3 (Fe<strong>de</strong>ral Information Processing<br />

Standard Publication), 1999<br />

• Cifrador <strong>de</strong> blocos<br />

• Tamanho dos blocos: 64 bits<br />

• Tamanho das chaves: 64 bits (utiliza 56 bits)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Publicado em 1977: (The United States’s National<br />

Bureau of Standards)<br />

• FIPS PUB 46-3 (Fe<strong>de</strong>ral Information Processing<br />

Standard Publication), 1999<br />

• Cifrador <strong>de</strong> blocos<br />

• Tamanho dos blocos: 64 bits<br />

• Tamanho das chaves: 64 bits (utiliza 56 bits)<br />

• TDES (Triple DES): chaves <strong>de</strong> 112 bits<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 41 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Descrição do DES<br />

Entrada: texto claro: M = m1...m64, chave: k = k1...k56<br />

Saída: texto cifrado C = c1...c64<br />

1. Calcule 16 subchaves Ki <strong>de</strong> 48 bits da chave k<br />

2. (L0,R0) ← IP(M)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 42 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Descrição do DES<br />

Entrada: texto claro: M = m1...m64, chave: k = k1...k56<br />

Saída: texto cifrado C = c1...c64<br />

1. Calcule 16 subchaves Ki <strong>de</strong> 48 bits da chave k<br />

2. (L0,R0) ← IP(M)<br />

3. for i = 1 to 16 do<br />

2.1 Li ← Ri−1<br />

2.2 Ri ← Li−1 ⊕ f(Ri−1,Ki)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 42 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Descrição do DES<br />

Entrada: texto claro: M = m1...m64, chave: k = k1...k56<br />

Saída: texto cifrado C = c1...c64<br />

1. Calcule 16 subchaves Ki <strong>de</strong> 48 bits da chave k<br />

2. (L0,R0) ← IP(M)<br />

3. for i = 1 to 16 do<br />

2.1 Li ← Ri−1<br />

2.2 Ri ← Li−1 ⊕ f(Ri−1,Ki)<br />

4. b1b2...b64 ← (R16,L16)<br />

5. C ← IP −1 (b1b2...b64)<br />

f(Ri−1,Ki) = P(S(E(Ri−1) ⊕ Ki))<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 42 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Descrição do DES<br />

64 56<br />

x k<br />

32 32<br />

IP KS<br />

Lo Ro<br />

+<br />

32 32<br />

L1 R1<br />

+<br />

32 32<br />

L15 R15<br />

+<br />

32 32<br />

64<br />

L16 R16<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 43 / 151<br />

f<br />

f<br />

f<br />

IP<br />

y<br />

-1<br />

k1<br />

k2<br />

k16<br />

48<br />

48<br />

48


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Nunca foi “quebrado”.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 44 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Nunca foi “quebrado”.<br />

• Busca exaustiva da chave tornou-se possível no final<br />

dos anos 90.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 44 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Nunca foi “quebrado”.<br />

• Busca exaustiva da chave tornou-se possível no final<br />

dos anos 90.<br />

• Ainda muito usado como TripleDES.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 44 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O DES<br />

• Nunca foi “quebrado”.<br />

• Busca exaustiva da chave tornou-se possível no final<br />

dos anos 90.<br />

• Ainda muito usado como TripleDES.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 44 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 45 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

• Advanced Encryption Standard (FIPS PUB 197)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 45 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

• Advanced Encryption Standard (FIPS PUB 197)<br />

• Cifrador <strong>de</strong> blocos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 45 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

• Advanced Encryption Standard (FIPS PUB 197)<br />

• Cifrador <strong>de</strong> blocos<br />

• Tamanho em bits dos blocos : 128<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 45 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

• Advanced Encryption Standard (FIPS PUB 197)<br />

• Cifrador <strong>de</strong> blocos<br />

• Tamanho em bits dos blocos : 128<br />

• Tamanho em bits das chaves criptográficas: 128, 192,<br />

256<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 45 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

• Advanced Encryption Standard (FIPS PUB 197)<br />

• Cifrador <strong>de</strong> blocos<br />

• Tamanho em bits dos blocos : 128<br />

• Tamanho em bits das chaves criptográficas: 128, 192,<br />

256<br />

• Rijndael (Rijmen e Daemen), 1998.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 45 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

• Um byte: (b7b6b5b4b3b2b1b0), bi ∈ {0, 1}<br />

(00001111), (1010 0011), (1100 0001), etc.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 46 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

• Um byte: (b7b6b5b4b3b2b1b0), bi ∈ {0, 1}<br />

(00001111), (1010 0011), (1100 0001), etc.<br />

• Em base hexa<strong>de</strong>cimal (16), um byte é representado por<br />

dois dígitos: 1000 0011 = 0x83, 0111 1100 = 0x7c,<br />

etc.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 46 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

• Um byte: (b7b6b5b4b3b2b1b0), bi ∈ {0, 1}<br />

(00001111), (1010 0011), (1100 0001), etc.<br />

• Em base hexa<strong>de</strong>cimal (16), um byte é representado por<br />

dois dígitos: 1000 0011 = 0x83, 0111 1100 = 0x7c,<br />

etc.<br />

• Um byte po<strong>de</strong> ser interpretado como um polinômio<br />

binário <strong>de</strong> grau máximo 7:<br />

(10001111) = x 7 + x 3 + x 2 + x + 1,<br />

(00111100) = x 5 + x 4 + x 3 + x 2 .<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 46 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

• Um byte: (b7b6b5b4b3b2b1b0), bi ∈ {0, 1}<br />

(00001111), (1010 0011), (1100 0001), etc.<br />

• Em base hexa<strong>de</strong>cimal (16), um byte é representado por<br />

dois dígitos: 1000 0011 = 0x83, 0111 1100 = 0x7c,<br />

etc.<br />

• Um byte po<strong>de</strong> ser interpretado como um polinômio<br />

binário <strong>de</strong> grau máximo 7:<br />

(10001111) = x 7 + x 3 + x 2 + x + 1,<br />

(00111100) = x 5 + x 4 + x 3 + x 2 .<br />

• Soma e multiplicação <strong>de</strong> bytes?<br />

soma e multiplicação <strong>de</strong> polinômios binários<br />

(com coeficientes 0 e 1).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 46 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

GF(2 8 ) = {<br />

7<br />

aix i , ai ∈ {0, 1}}<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 47 / 151<br />

i=0


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

GF(2 8 ) = {<br />

7<br />

aix i , ai ∈ {0, 1}}<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 47 / 151<br />

i=0<br />

• Soma: A + B = 7 i=0 aixi + 7 i=0 bixi <br />

=<br />

7<br />

i=0 (ai + bi mod 2) = A ⊕ B (xor).


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

GF(2 8 ) = {<br />

7<br />

aix i , ai ∈ {0, 1}}<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 47 / 151<br />

i=0<br />

• Soma: A + B = 7 i=0 aixi + 7 i=0 bixi <br />

=<br />

7<br />

i=0 (ai + bi mod 2) = A ⊕ B (xor).<br />

• Multiplicação:<br />

A × B = 14 i=0 cixi mod x8 + x4 + x3 + x + 1.


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

GF(2 8 ) = {<br />

7<br />

aix i , ai ∈ {0, 1}}<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 47 / 151<br />

i=0<br />

• Soma: A + B = 7 i=0 aixi + 7 i=0 bixi <br />

=<br />

7<br />

i=0 (ai + bi mod 2) = A ⊕ B (xor).<br />

• Multiplicação:<br />

A × B = 14 i=0 cixi mod x8 + x4 + x3 + x + 1.<br />

• (GF(28 ), +, ×): estrutura matemática chamada corpo<br />

binário.


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética <strong>de</strong> Bytes<br />

GF(2 8 ) = {<br />

7<br />

aix i , ai ∈ {0, 1}}<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 47 / 151<br />

i=0<br />

• Soma: A + B = 7 i=0 aixi + 7 i=0 bixi <br />

=<br />

7<br />

i=0 (ai + bi mod 2) = A ⊕ B (xor).<br />

• Multiplicação:<br />

A × B = 14 i=0 cixi mod x8 + x4 + x3 + x + 1.<br />

• (GF(28 ), +, ×): estrutura matemática chamada corpo<br />

binário.


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 )<br />

A = a3x 3 + a2x 2 + a1x + a0, B = b3x 3 + b2x 2 b1x + b0<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 48 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 )<br />

A = a3x 3 + a2x 2 + a1x + a0, B = b3x 3 + b2x 2 b1x + b0<br />

Soma:<br />

A+B = (a3 +b3)x 3 +(a2 +b2)x 2 +(a1 +b1)x 1 +(a0 +b0)<br />

Multiplicação: A × B = ?<br />

C = A × B = c6x 6 + c5x 5 + c4x 4 + c3x 3 + c2x 2 + c1x + c0<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 48 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 )<br />

A = a3x 3 + a2x 2 + a1x + a0, B = b3x 3 + b2x 2 b1x + b0<br />

Soma:<br />

A+B = (a3 +b3)x 3 +(a2 +b2)x 2 +(a1 +b1)x 1 +(a0 +b0)<br />

Multiplicação: A × B = ?<br />

C = A × B = c6x 6 + c5x 5 + c4x 4 + c3x 3 + c2x 2 + c1x + c0<br />

c0 = a0 • b0<br />

c1 = a1 • b0 ⊕ a0 • b1<br />

c4 = a3 • b1 ⊕ a2 • b2 ⊕ a1 •<br />

c5 = a3 • b2 ⊕ a2 • b3<br />

c2 = a2 • b0 ⊕ a1 • b1 ⊕ a0 • b2 c6 = a3 • b3<br />

c3 = a3 • b0 ⊕ a2 • b1 ⊕ a1 • b2 ⊕ a0 • b3<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 48 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 )<br />

A ⊗ B := C mod x 4 + 1 = d3x 3 + d2x 2 + d1x + d0x<br />

x i mod x 4 i mod 4<br />

+ 1 = x<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 49 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 )<br />

A ⊗ B := C mod x 4 + 1 = d3x 3 + d2x 2 + d1x + d0x<br />

x i mod x 4 i mod 4<br />

+ 1 = x<br />

d0 = (a0 • b0) ⊕ (a3 • b1) ⊕ (a2 • b2) ⊕ (a1 • b3)<br />

d1 = (a1 • b0) ⊕ (a0 • b1) ⊕ (a3 • b2) ⊕ (a2 • b3)<br />

d2 = (a2 • b0) ⊕ (a1 • b1) ⊕ (a0 • b2) ⊕ (a3 • b3)<br />

d3 = (a3 • b0) ⊕ (a2 • b1) ⊕ (a1 • b2) ⊕ (a0 • b3)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 49 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 )<br />

A ⊗ B := C mod x 4 + 1 = d3x 3 + d2x 2 + d1x + d0x<br />

⎡<br />

⎢<br />

⎣<br />

d0<br />

d1<br />

d2<br />

d3<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

⎢<br />

⎣<br />

a0 a3 a2 a1<br />

a1 a0 a3 a2<br />

a2 a1 a0 a3<br />

a3 a2 a1 a0<br />

⎤⎡<br />

⎥⎢<br />

⎥⎢<br />

⎦⎣<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 50 / 151<br />

b0<br />

b1<br />

b2<br />

b3<br />

⎤<br />

⎥<br />


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 ) -<br />

Encriptação<br />

⎡<br />

⎢<br />

⎣<br />

D = {03}x 3 + {01}x 2 + {01}x + {02} ⊗ B<br />

d0<br />

d1<br />

d2<br />

d3<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

⎢<br />

⎣<br />

02 03 01 01<br />

01 02 03 01<br />

01 01 02 03<br />

03 01 01 02<br />

⎤⎡<br />

⎥⎢<br />

⎥⎢<br />

⎦⎣<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 51 / 151<br />

b0<br />

b1<br />

b2<br />

b3<br />

⎤<br />

⎥<br />


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Polinômios com Coeficientes em GF(2 8 ) -<br />

Decriptação<br />

⎡<br />

⎢<br />

⎣<br />

D = {0b}x 3 + {0d}x 2 + {09}x + {0e} ⊗ B<br />

d0<br />

d1<br />

d2<br />

d3<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

⎢<br />

⎣<br />

0e 0b 0d 09<br />

09 0e 0b 0d<br />

0d 09 02 0b<br />

0b 0d 09 0e<br />

⎤⎡<br />

⎥⎢<br />

⎥⎢<br />

⎦⎣<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 52 / 151<br />

b0<br />

b1<br />

b2<br />

b3<br />

⎤<br />

⎥<br />


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES - o algoritmo<br />

chave K128 = (k0,k1,k2,k3,...,k12,k13,k14,k15)<br />

⎡<br />

⎢<br />

⎣<br />

⎡<br />

⎢<br />

⎣<br />

k0 k4 k8 k12<br />

k1 k5 k9 k13<br />

k2 k6 k10 k14<br />

k3 k7 k11 k15<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 53 / 151<br />

⎤<br />

⎥<br />

⎦<br />

bloco B128 = (b0,b1,b2,b3,...,b12,b13,b14,b15)<br />

b0 b4 b8 b12<br />

b1 b5 b9 b13<br />

b2 b6 b10 b14<br />

b3 b7 b11 b15<br />

⎤<br />

⎥<br />


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES - algoritmo<br />

State = [b0...b15]4×4<br />

Key = [k0...k15]4×4<br />

AddRoundKey(State,RoundKey);<br />

for i = 1 to Nr − 1<br />

SubBytes(State);<br />

ShiftRows(State);<br />

Mixcolums(State);<br />

AddRoundKey(State,RoundKey);<br />

SubBytes(State);<br />

ShiftRows(State);<br />

AddRoundKey(State,RoundKey);<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 54 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 55 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O AES em cores<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 56 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

SubBytes(State)<br />

S(x) :=<br />

S : GF(2 8 ) −→ GF(2 8 )<br />

Ax −1 + b se x = 0<br />

b se x = 0<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 57 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Modos <strong>de</strong> operação para encriptação em blocos<br />

• Modos básicos: ECB, CBC, CFB, OFB, CTR<br />

• Propostas para NIST: CCM (CBC-MAC), CS, CWC,<br />

GCM (2005), OMAC, ABC,...<br />

Electronic Co<strong>de</strong>Book (ECB)<br />

Entrada: P1,P2,...,Pm, |Pi| = n bits.<br />

Saída: C1,C2,...,Cm, |Ci| = n bits.<br />

for i = 1 to m do<br />

Ci ← EK(Pi)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 58 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O modo CBC<br />

Para cifrar:<br />

Cipher Block Chaining<br />

Entrada: IV, P1,P2,...,Pm, |Pi| = n bits, chave K.<br />

Saída: IV, C1,C2,...,Cm, |Ci| = n bits.<br />

1. C0 ← IV<br />

2. for i = 1 to m do<br />

Ci ← EK(Pi ⊕ Ci−1)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 59 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O modo CBC<br />

y<br />

0<br />

= IV<br />

yj-1 -1 k<br />

C<br />

k<br />

x<br />

j<br />

C<br />

yj<br />

Ciframento<br />

Deciframento<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 60 / 151<br />

xj<br />

y j-1


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O modo CBC<br />

Para <strong>de</strong>cifrar:<br />

Cipher Block Chaining<br />

Entrada: IV, C1,C2,...,Cm, |Ci| = n bits, chave K.<br />

Saída: IV, P1,P2,...,Pm, |Pi| = n bits.<br />

1. C0 ← IV<br />

2. for i = 1 to m do<br />

Pi ← DK(Ci) ⊕ Ci−1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 61 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O modo CTR<br />

Para cifrar:<br />

Counter<br />

Entrada: Crt, P1,P2,...,Pm, |Pi| = n bits, chave K<br />

Saída: Ctr, C1,C2,...,Cm, |Ci| = n bits.<br />

1. for i = 1 to m do<br />

Ci ← Pi ⊕ EK(Ctr + i mod n)<br />

Contador:<br />

crt → ctr + 1 → ctr + 2 → · · · ctr + m−1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 62 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O modo CTR<br />

Para <strong>de</strong>cifrar:<br />

Counter<br />

Entrada: crt, C1,C2,...,Cm, |Ci| = n bits, chave K.<br />

Saída: Ctr, P1,P2,...,Pm, |Pi| = n bits.<br />

1. for i = 1 to m do<br />

Pi ← Ci ⊕ EK(Ctr + i mod n)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 63 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Resumos criptográficos<br />

• Uma função hash ou função <strong>de</strong> resumo é uma função<br />

que calcula uma representação con<strong>de</strong>nsada <strong>de</strong> uma<br />

mensagem ou arquivo. Mais precisamente, uma função<br />

<strong>de</strong> resumo recebe como entrada uma ca<strong>de</strong>ia <strong>de</strong> bits <strong>de</strong><br />

comprimento arbitrário e <strong>de</strong>volve outra ca<strong>de</strong>ia <strong>de</strong> bits<br />

<strong>de</strong> comprimento fixo, chamado resumo.<br />

• As funções <strong>de</strong> resumo po<strong>de</strong>m ser utilizadas em<br />

aplicações criptográficas, tais como autenticação <strong>de</strong><br />

mensagems enviadas através <strong>de</strong> canais inseguros e<br />

assinaturas digitais.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 64 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Funções <strong>de</strong> resumo<br />

Uma função <strong>de</strong> resumo criptográfico (ou função <strong>de</strong><br />

resumo) é uma função H : {0, 1} ∗ → {0, 1} n , satisfazendo<br />

as seguintes proprieda<strong>de</strong>s:<br />

• Resistência à primeira inversão: Dado um resumo r,<br />

é inviável encontrar uma mensagem m tal que<br />

r = H(m).<br />

• Resistência à segunda inversão: Dado um resumo r e<br />

uma mensagem m1 tal que r = H(m1), é inviável<br />

encontrar uma mensagem m2 = m1 tal que<br />

r = H(m2).<br />

• Resistência a colisões: Dado um resumo r, é inviável<br />

encontrar mensagens m1,m2 tais que<br />

H(m1) = H(m2).<br />

Algoritmos: MD5, SHA-1, SHA-2, Whirlpool.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 65 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O Algoritmo MD5<br />

MD5(x) : {0, 1} 264<br />

→ {0, 1} 128<br />

• Proposto por Ronald Rivest em 1991<br />

• MD5 é uma versão melhorada <strong>de</strong> MD4<br />

• Ataques: 1996, 2004, 2005, 2006 (Vlastimil Klima)<br />

• Operações: a + b mod 2 32 , a ⊕ b, a ∧ b, a ∨ b, ¬a,<br />

a


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O Algoritmo SHA - The Secure Hash Algorithm<br />

SHA(x) : {0, 1} 264<br />

→ {0, 1} 160<br />

• Proposto por NIST em 1993 (FIPS 180-1)<br />

• SHA−1 é uma versão melhorada <strong>de</strong> SHA<br />

• Novos algoritmos (FIPS 180-2, 2002): SHA−224 ∗ ,<br />

SHA−256, SHA−384, SHA−512<br />

• Operações: a + b mod 2 32 , a ⊕ b, a ∧ b, a ∨ b, ¬a,<br />

a


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O Algoritmo SHA-1<br />

Entrada: x; Saída: SHA(x)<br />

1. M 1 ...M n ← Pad(x)<br />

2. H0,H1,H2,H3,H4 ← valores inicias<br />

3. For i = 1 to n do:<br />

3.1 Calcule W0,W1,...,W79 do bloco M i<br />

3.2 A ← H0,B ← H1,C ← H2,D ← H3,E ← H4<br />

3.3 For i = 0 to 79 do:<br />

[A,B,C,D,E] ← Th([A,B,C,D,E])<br />

3.4 H0 ← H0 + A, H1 ← H1 + B, H2 ← H2 + C,<br />

H3 ← H3 + D, H4 ← H4 + E<br />

4. Return (H0,H1,H2,H3,H4)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 68 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O Algoritmo Whirlpool<br />

• O algoritmo Whirlpool foi <strong>de</strong>senvolvido por Vicent<br />

Rijmen e Paulo Barreto, 2003.<br />

• Adotado como o padrão ISO/IEC 10118-3:2004<br />

• O algoritmo Whirlpool é uma função <strong>de</strong> resumo que<br />

processa mensagens <strong>de</strong> comprimento menor do que 2 256<br />

bits para gerar um resumo <strong>de</strong> 512 bits.<br />

• O algoritmo está baseado numa função <strong>de</strong> compressão<br />

W<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 69 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Algoritmos assimétricos<br />

1. Funções Unidirecionais<br />

2. Assinatura Digital<br />

3. Criptossistemas <strong>de</strong> Curvas Elípticas (CCE)<br />

4. Aspectos da Implementação em Software <strong>de</strong> CCE<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 70 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Funções unidirecionais: RSA<br />

p,q: números primos<br />

n = p · q<br />

φ = (p − 1) · (q − 1)<br />

Escolha um número e, 1 < e < φ, tal que mdc(e,φ) =<br />

1, exemplo: e = 2 16 + 1.<br />

fRSA(x) := x e mod n.<br />

Como calcular f −1<br />

RSA (x) ? fácil se temos p e q:<br />

aplique o algoritmo <strong>de</strong> Eucli<strong>de</strong>s estendido para calcular o<br />

único número d, 1 < d < φ, tal que ed ≡ 1(mod φ). Então<br />

f −1<br />

RSA (x) = xd mod n<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 71 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Funções unidirecionais: Rabin<br />

p,q: números primos tais que p ≡ q ≡ 3 (mod 4)<br />

n = p · q<br />

fRabin(x) := x 2 mod n.<br />

Como calcular f −1<br />

Rabin (x) ? fácil se temos p e q:<br />

1. Aplique o algoritmo <strong>de</strong> Eucli<strong>de</strong>s estendido para<br />

calcular a e b tal que ap + bq = 1.<br />

2. Calcule r = x (p+1)/4 mod p e s = x (q+1)/4 mod q.<br />

3. Calcule t1 = (aps + bqr) mod n e<br />

t2 = (aps − bqr) mod n.<br />

Então<br />

f −1<br />

Rabin (x) ∈ {r,s,t1,t2}<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 72 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Funções Unidirecionais: exponenciação em Z ∗ p<br />

p: um número primo<br />

α: um gerador <strong>de</strong> Z ∗<br />

p<br />

fexp(x) := α x mod p.<br />

Como calcular f −1<br />

exp(x) ? cálculo <strong>de</strong> “logaritmos discretos”:<br />

O problema do logaritmo discreto é o seguinte:<br />

Dado um primo p, um gerador α <strong>de</strong> Z ∗<br />

p, e um elemento β<br />

∈ Z ∗<br />

p, encontrar o inteiro x, 0 ≤ x ≤ p−2, tal que<br />

αx ≡ β (mod p).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 73 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Exemplo: cálculo <strong>de</strong> logaritmos discretos<br />

p = 7: um número primo<br />

α = 3: um gerador <strong>de</strong> Z ∗<br />

7 = {1, 2, 3, 4, 5, 6}<br />

i 3 i mod 7<br />

0 1<br />

1 3<br />

2 2<br />

3 6<br />

4 4<br />

5 5<br />

6 1<br />

3 i ≡ 6 (mod 7); i = 3<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 74 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

RSA: encriptação<br />

Geração <strong>de</strong> Chaves:<br />

1. Gere dois números primos aleatórios p e q (distintos)<br />

2. Calcule n = p · q<br />

3. Calcule φ = (p − 1) · (q − 1)<br />

4. Escolha um número e, 1 < e < φ, tal que mdc(e,φ) =<br />

1, exemplo: e = 2 16 + 1.<br />

5. Aplique o algoritmo <strong>de</strong> Eucli<strong>de</strong>s estendido para<br />

calcular o único número d, 1 < d < φ, tal que<br />

ed ≡ 1 (mod φ).<br />

6. Chave privada: d<br />

7. Chave pública: e,n<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 75 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

RSA: encriptação<br />

Algoritmo para encriptar<br />

Para cifrar uma mensagem m para Alice, Bob faz o<br />

seguinte:<br />

1. Obtem a chave pública (autêntica) <strong>de</strong> Alice e,n<br />

2. Representa a mensagem m como um inteiro em<br />

{0, 1, 2,...n−1}.<br />

3. Calcula c = m e mod n<br />

4. Envia o texto cifrado c para Alice.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 76 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

RSA: encriptação<br />

Algoritmo para <strong>de</strong>cifrar:<br />

Para recuperar o texto claro m a partir <strong>de</strong> c, Alice faz o<br />

seguinte:<br />

1. Utiliza a chave privada d para calcular o texto claro m:<br />

m = c d mod n<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 77 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Assinaturas Digitais<br />

The Digital Signature Standard, 1991<br />

Parâmetros<br />

p,q primos tais que q|p−1, |p| = 1024, |q| = 160<br />

g ∈ Z ∗<br />

p <strong>de</strong> or<strong>de</strong>m q<br />

H : {0, 1} ∗ → Zq (H = SHA−1)<br />

x ∈ Zq<br />

y = gx mod p<br />

chave Privada: x<br />

chave Pública: p,q,g,y,H<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 78 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O algoritmo <strong>de</strong> assinatura DSA<br />

Geração(M,x):<br />

k ∈U Zq<br />

r ← (g k (mod p))(mod q),<br />

s ← k −1 (H(M) + xr)(mod q)<br />

return (r,s)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 79 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O algoritmo <strong>de</strong> assinatura DSA<br />

Verificação (M, (r,s),p,q,g,y,H):<br />

w ← s −1 (mod q),<br />

u1 ← H(M)w (mod q),<br />

u2 ← rw (mod q),<br />

se (r = (g u1 y u2 (mod p)) (mod q)) então <strong>de</strong>volva<br />

SIM senão <strong>de</strong>volva NÃO.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 80 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptossistemas <strong>de</strong> Curvas Elípticas<br />

• Inventados por Victor Miller e Neal Koblitz em 1985.<br />

• Os CCE são sistemas <strong>de</strong> chave pública.<br />

• Padrões: ANSI X9.62, IEEE P1363, FIPS 162-2, SEC<br />

1-2, NIST<br />

• Aplicações: cartões inteligentes, celulares, re<strong>de</strong>s <strong>de</strong><br />

sensores sem fio, etc.<br />

• Companhias: Certicom, RSA Security, Cryptomathic,<br />

HITACHI.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 81 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptossistemas <strong>de</strong> Curvas Elípticas<br />

A principal vantagem dos CCE é que utilizam chaves <strong>de</strong><br />

comprimento menor com o mesmo nível <strong>de</strong> segurança<br />

oferecido por outros sistemas <strong>de</strong> chave pública (RSA,<br />

DSA).<br />

CCE-160 vs RSA-1024<br />

CCE RSA AES<br />

224 2048 -<br />

256 3072 128<br />

384 8192 192<br />

512 15360 256<br />

Nível <strong>de</strong> Segurança em bits<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 82 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

ECRYPT - European Network of Excellence for<br />

Cryptology<br />

ECRYPT Yearly Report on Algorithms and Keysizes<br />

(2006)<br />

CCE RSA C-Bloco<br />

160 1248 80<br />

224 2432 112<br />

256 3248 128<br />

384 7936 192<br />

512 15424 256<br />

NÃvel <strong>de</strong> Segurança em bits<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 83 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Criptossistemas <strong>de</strong> Curvas Elípticas<br />

Aspectos Matemáticos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 84 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre Fq<br />

Uma curva elíptica E sobre Fq é <strong>de</strong>finida por uma equação<br />

eq(x,y) da forma:<br />

(se q = 2 m )<br />

y 2 + xy = x 3 + ax 2 + b<br />

on<strong>de</strong> a,b ∈ F2m e b = 0.<br />

(se q = p,p > 3)<br />

y 2 = x 3 + ax + b<br />

on<strong>de</strong> a,b ∈ Fp, e 4a 3 + 27b 2 = 0 (mod p).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 85 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre R : y 2 = x 3 + ax + b<br />

10<br />

5<br />

0<br />

-5<br />

-10<br />

-8 -6 -4 -2 0 2 4 6 8<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 86 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre F29<br />

E : y 2 = x 3 + 4x + 20, p = 29<br />

O conjunto <strong>de</strong> pontos <strong>de</strong> E(F29) é:<br />

O (2, 6) (4, 19) (8, 10) (13, 23) (16, 2) (19, 16)<br />

(0, 7) (2, 23) (5, 7) (8, 19) (14, 6) (16, 27) (20, 3)<br />

(0, 22) (3, 1) (5, 22) (10, 4) (14, 23) (17, 10) (20, 26)<br />

(1, 5) (3, 28) (6, 12) (10, 25) (15, 2) (17, 19) (24, 7)<br />

(1, 24) (4, 10) (6, 17) (13, 6) (15, 27) (19, 13) (24, 22)<br />

(27, 2) (27, 27)<br />

#E(F29) = 37<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 87 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupo Elíptico (E(Fq), +)<br />

• E(Fq) := {(x,y) | x ∈ Fq,y ∈ Fq,eq(x,y) = 0} ∪ {O}<br />

• (E(Fq), +) forma um grupo abeliano com i<strong>de</strong>ntida<strong>de</strong><br />

O.<br />

• Para P = (x1,y1) ∈ E(Fq) y Q = (x2,y2) ∈ E(Fq),<br />

a soma P + Q é <strong>de</strong>finida da seguinte forma:<br />

(secante e tangente).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 88 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Soma em E(R): R = P + Q<br />

10<br />

5<br />

0<br />

-5<br />

-10<br />

P<br />

-8 -6 -4 -2 0 2 4 6 8<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 89 / 151<br />

Q<br />

-R<br />

R


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Soma em E(R): R = P + P = 2P<br />

10<br />

5<br />

0<br />

-5<br />

-10<br />

-8 -6 -4 -2 0 2 4 6 8<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 90 / 151<br />

P<br />

-R<br />

R


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupo Elíptico (E(Fp), +)<br />

• P + O = P + O = P<br />

• Se P = (x,y), então −P = (x, −y); P + (−P) = O.<br />

• Duplicação:<br />

Se P = (x1,y1) ∈ E(Fp), então<br />

P + P = 2P = (x3,y3), on<strong>de</strong><br />

x3 = λ 2 − 2x1<br />

y3 = λ · (x1 − x3) − y1<br />

λ = 3x2 1 + a<br />

2y1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 91 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Grupo Elíptico (E(Fp), +)<br />

• Soma:<br />

Se P = (x1,y1) ∈ E(Fp),Q = (x2,y2) ∈ E(Fp),<br />

P = ±Q, então P + Q = (x3,y3), on<strong>de</strong><br />

x3 = λ 2 − x1 − x2<br />

y3 = λ · (x1 − x3) − y1<br />

λ = y2 − y1<br />

x2 − x1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 92 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética Finita sobre Fp e Fn - Pentium4 2.4 GHz<br />

Operações Fp192 Fp192 Fn192 Fn192<br />

aritméticas IPP GMP IPP GMP<br />

Soma 0.092 0.071 0.102 0.071<br />

Quadrado 0.765 0.493 2.095 1.086<br />

Multiplicação 0.758 0.489 2.092 1.086<br />

Inversão 35.770 12.508 35.712 12.624<br />

Tempos em microsegundos, gcc, Linux, 32 MB RAM, IPP<br />

(Intel).<br />

Fp192: eficiência <strong>de</strong> kP<br />

Fn192: eficiência dos protocolos criptográficos (ECDSA<br />

etc).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 93 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Aritmética Finita sobre Fp e Fn - Pentium4 2.4 GHz<br />

Operações Fp256 Fp256 Fn256 Fn256<br />

aritméticas IPP GMP IPP GMP<br />

Soma 0.095 0.071 0.105 0.071<br />

Quadrado 1.598 1.172 2.420 1.694<br />

Multiplicação 1.625 1.184 2.444 1.698<br />

Inversão 57.169 16.997 56.916 17.227<br />

Tempos em microsegundos, gcc, Linux, 32 MB RAM, IPP<br />

(Intel).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 94 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Multiplicação Escalar<br />

Dado um número inteiro k e um ponto elíptico P ∈ E(Fq)<br />

kP := P<br />

<br />

+ ...<br />

<br />

+ P<br />

<br />

.<br />

k−vezes<br />

Exemplo: 14P = 8P + 6P = 2 3 P + 2 2 P + 2P<br />

3 duplicações 2 somas para calcular 14P<br />

Algoritmos eficientes para calcular kP :<br />

• kP , P ponto conhecido (off-line)<br />

• kP , P ponto arbitrário (on-line)<br />

• k1P + k2Q<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 95 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Método binário para calcular kP<br />

kP =<br />

l−1<br />

i=0<br />

ki2 i P<br />

= 2(· · · 2(2P + kl−2P) + · · · ) + k0P<br />

k = 1 kl−2 kl−3 · · · · · · k1 k0<br />

Q ← P<br />

for i = l − 2 to 0 do<br />

Q ← 2Q<br />

if ki = 1 then Q ← Q + P<br />

endfor<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 96 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

O Problema do Logaritmo Discreto em Curvas<br />

Elípticas (PLDCE)<br />

Dado um ponto P ∈ E(Fq) <strong>de</strong> or<strong>de</strong>m n (nP = O), e um<br />

ponto Q ∈< P >, <strong>de</strong>terminar o inteiro k, 0 ≤ k ≤ n − 1,<br />

tal que<br />

Q = kP.<br />

A segurança dos CCE está baseada na dificulta<strong>de</strong> do<br />

PLDCE.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 97 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Ataques ao PLDCE<br />

• O melhor algoritmo conhecido para o PLDCE é o<br />

método ρ <strong>de</strong> Pollard [1978] que é <strong>de</strong> complexida<strong>de</strong><br />

exponencial: O( √ n) on<strong>de</strong> n é número <strong>de</strong> pontos da<br />

curva elíptica.<br />

(parâmetros pequenos)<br />

• Desafio <strong>de</strong> Certicom [1999]: ECC2-109 (2004) solução<br />

utilizando uma versão distribuída <strong>de</strong> ρ Pollard (17<br />

meses, 2600 computadores)<br />

• Padrões Industriais : comprimentos das chaves 160-571<br />

bits.<br />

• A Agência <strong>de</strong> Segurança Nacional NSA (2005)<br />

recomendou ao governo americano chaves <strong>de</strong> 256 bits<br />

para os CCE <strong>de</strong>finidos sobre corpos primos.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 98 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Estrutura dos CCE<br />

APLICACOES<br />

PGP, OpenSSL<br />

PROTOCOLOS<br />

Acordo <strong>de</strong> chaves<br />

Ciframento<br />

Assinatura digital<br />

CURVAS ELIPTICAS<br />

Q = k P<br />

m<br />

ARITMETICA<br />

CORPOS FINITOS<br />

RNG<br />

MODULAR AES<br />

GF ( p )<br />

GF( 2 )<br />

m<br />

GF ( p )<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 99 / 151<br />

SHA<br />

MAC


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Chaves nos CCE<br />

G ∈ E(Fq),nG = O<br />

• Chave privada: um número aleatório k ; 0 < k < n<br />

• Chave pública: o ponto elíptico kG.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 100 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Componentes dos CCE<br />

• Um corpo finito Fq (q = p,q = 2 m ,q = p m )<br />

• Uma base para Fq<br />

• Uma curva E(Fq) (a =?,b =?)<br />

• Um ponto G ∈ E(Fq) <strong>de</strong> or<strong>de</strong>m n<br />

• Protocolos (ECDH, ECIES, ECDSA)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 101 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Parâmetros dos CCE<br />

(Fq,FR,a,b,G,n,h)<br />

#E(Fq) = n · h, nG = O<br />

• Curvas Padrão (especiais ou aleatórias)<br />

◦ National Institute of Standards and Technology<br />

(NIST)<br />

◦ Standards for Efficiency Cryptography Group<br />

(SECG)<br />

• Curvas geradas pelo usuário<br />

◦ Dados a e b calcular n = #E(Fq)<br />

◦ Dado n = #E(Fq),calcular a,b (o método CM)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 102 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Parâmetros NIST<br />

• F2m, m ∈ {163, 233, 283, 409, 571}.<br />

• Fp, ⌈log2 p⌉ ∈ {192, 224, 256, 384, 521}.<br />

• Curvas:<br />

◦ curvas aleatórias sobre F2m ◦ curvas <strong>de</strong> Koblitz (sobre F2m) (a ∈ {0, 1},b = 1)<br />

◦ curvas aleatórias sobre Fp<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 103 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Parâmetros SECG<br />

• F2m: m ∈ {113, 131, 163, 233, 239, 283, 409, 571}.<br />

• Fp: ⌈log2 p⌉ ∈ {112, 128, 160, 192, 224, 256, 384, 521}<br />

• Curvas<br />

◦ curvas aleatórias sobre F2 m<br />

◦ curvas <strong>de</strong> Koblitz (sobre F2 m)<br />

◦ curvas aleatórias sobre Fp<br />

◦ curvas <strong>de</strong> “Koblitz” sobre Fp<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 104 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Exemplo : parâmetros NIST y SECG<br />

Curva aleatória sobre Fp<br />

• E : Y 2 = X 3 + aX + b (a = −3)<br />

• P −192 : p = 2 192 − 2 64 − 1, h = 1, r · b 2 ≡ a 3<br />

• S = 0x3045AE6F C8422F64 ED579528 D38120EA<br />

E12196D5<br />

• r = 0x3099D2BB BFCB2538 542DCD5F B078B6EF<br />

5F3D6FE2 C745DE65<br />

• b = 0x64210519 E59C80E7 0FA7E9AB 72243049<br />

FEB8DEEC C146B9B1<br />

• n = 0xFFFFFFFF FFFFFFFF FFFFFFFF 99DEF836<br />

146BC9B1 B4D22831<br />

• Gx = 0x188DA80E B03090F6 7CBF20EB 43A18800<br />

F4FF0AFD 82FF1012<br />

• Gy = 0x07192B95 FFC8DA78 631011ED 6B24CDD5<br />

73F977A1 1E794811<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 105 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Implementação em Software<br />

Aspectos Práticos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 106 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre F2 m<br />

• Corpos finitos F2 m m ∈ {163, 233, 283}<br />

• Curvas: aleatórias e Koblitz<br />

• Protocolos: ECDSA, ECIES<br />

• Plataformas: Pager-RIM, PalmPilot V, Pentium II-III<br />

• Linguagem : C<br />

• Aplicação : PGP<br />

• 1999-2000<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 107 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Exemplo 1: Pager-RIM<br />

• Processador: Intel x86 (custom 386) 10 MHz<br />

• Memória RAM: 304 kbytes<br />

• Peso: 142 gramas<br />

• Pilhas: 1 AA<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 108 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre F2 m Pager RIM<br />

Operações Curvas Curvas RSA-1024<br />

criptográficas aleatórias Koblitz e = 2 16 + 1<br />

Gerar chaves 1.08 0.75 600<br />

Cifrar 3.13 1.76 1.24<br />

Decifrar 2.11 1.06 15.90<br />

Assinar 1.33 1.01 15.88<br />

Verificar 3.24 1.82 1.01<br />

Tempos em segundos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 109 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre F2233 - Pager RIM<br />

Operações Curvas Curvas RSA-2048<br />

criptográficas aleatórias Koblitz e = 2 16 + 1<br />

Gerar chaves 2.47 1.55 –<br />

Cifrar 6.91 3.47 4.14<br />

Decifrar 4.59 2.00 112.09<br />

Assinar 3.06 1.91 111.95<br />

Verificar 7.32 3.7 3.60<br />

Tempos em segundos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 110 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Implementações dos CCE<br />

• Nível <strong>de</strong> segurança<br />

• Plataforma computacional<br />

• Restrições na plataforma computacional<br />

• Algoritmos para as operações aritméticas em Fq<br />

• Algoritmos para a operação kP<br />

• Protocolos<br />

• Patentes<br />

• Padrões Industriais<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 111 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre F2 m e Fp - LCA-IC<br />

• Biblioteca Otimizada<br />

• Corpos finitos: NIST 160-570 bits<br />

• Curvas: aleatórias e Koblitz<br />

• Protocolos: ECDSA, ECIES, ECMQV<br />

• Plataformas: XScale Intel PXA 27x, Pentium 4<br />

• Linguagem : C<br />

• Biblioteca Intel IPP (Integrated Performance<br />

Primitives)<br />

• 2005-2007<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 112 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Arquitetura da Biblioteca CE<br />

ECDSA ECIES DHKA MQVKA<br />

Key Pair Diffie-Hellman<br />

Finite Field<br />

Arithmetic<br />

Elliptic Curve<br />

Arithmetic<br />

Menezes-Qu-<br />

Vanstone<br />

ENC MAC PRNG HASH KDF<br />

Big Number<br />

Arithmetic<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 113 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Exemplo 2: PXA270- Mainstone II<br />

Intel Xscale 520 MHz (wMMX)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 114 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre Fp192<br />

tone II 520 MHz<br />

- XScale-PXA270- Mains-<br />

Operações IPP GMP ASM<br />

criptográficas<br />

Gerar chaves 5.87 4.87 1.67<br />

Assinar 6.24 5.17 1.93<br />

Verificar 19.96 16.29 5.29<br />

Tempos em milisegundos, gcc, Linux, 64 KB Cache, IPP<br />

(Intel).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 115 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre Fp256<br />

tone II 520 MHz<br />

- XScale-PXA270- Mains-<br />

Operações IPP GMP ASM<br />

criptográficas gcc gcc gcc<br />

Gerar chaves 13.53 13.94 4.02<br />

Assinar 14.18 14.16 4.38<br />

Verificar 46.82 45.96 13.12<br />

Tempos em milisegundos, gcc, Linux, 64 KB Cache, IPP<br />

(Intel).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 116 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Curvas Elípticas sobre Fp256<br />

- Pentium4 2.4 GHz<br />

Operações IPP GMP IPP GMP<br />

criptográficas gcc gcc icc icc<br />

Gerar chaves 1.78 1.22 1.72 1.20<br />

Assinar 1.84 1.24 1.80 1.22<br />

Verificar 5.96 4.04 5.84 3.88<br />

Tempos em milisegundos, gcc,icc, Linux,<br />

512 KB Cache, IPP (Intel).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 117 / 151


Introdução<br />

Técnicas criptográficas<br />

• Algoritmos<br />

simétricos<br />

• Resumos<br />

criptográficos<br />

• Algoritmos<br />

assimétricos<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

Conclusões<br />

• Os CCE oferecem a melhor alternativa para criptografia<br />

pública em diferentes plataformas computacionais.<br />

• Segurança e eficiência dos CCE: mais pesquisa.<br />

• Implementação em Software:<br />

◦ Tecnologia wMMX para Fq<br />

◦ Ponto flutuante para Fp<br />

◦ Novas arquiteturas: Tecnologia Multi-core<br />

◦ Implementações em Hardware/Software.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 118 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Protocolos criptográficos<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 119 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Protocolos criptográficos<br />

Gerenciamento <strong>de</strong> chaves<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Estabelecimento <strong>de</strong> chaves<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 120 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Gerenciamento <strong>de</strong> chaves<br />

• Ativida<strong>de</strong> crítica em qualquer sistema criptográfico.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 121 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Gerenciamento <strong>de</strong> chaves<br />

• Ativida<strong>de</strong> crítica em qualquer sistema criptográfico.<br />

• Chaves <strong>de</strong>vem ser<br />

criteriosamente geradas e disponibilizadas aos seus<br />

legítimos donos;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 121 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Gerenciamento <strong>de</strong> chaves<br />

• Ativida<strong>de</strong> crítica em qualquer sistema criptográfico.<br />

• Chaves <strong>de</strong>vem ser<br />

criteriosamente geradas e disponibilizadas aos seus<br />

legítimos donos;<br />

cuidadosamente empregadas e armazenadas;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 121 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Gerenciamento <strong>de</strong> chaves<br />

• Ativida<strong>de</strong> crítica em qualquer sistema criptográfico.<br />

• Chaves <strong>de</strong>vem ser<br />

criteriosamente geradas e disponibilizadas aos seus<br />

legítimos donos;<br />

cuidadosamente empregadas e armazenadas;<br />

ao fim da sua vida útil, ser <strong>de</strong>struídas ou arquivadas<br />

seguramente.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 121 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Gerenciamento <strong>de</strong> chaves<br />

• Ativida<strong>de</strong> crítica em qualquer sistema criptográfico.<br />

• Chaves <strong>de</strong>vem ser<br />

criteriosamente geradas e disponibilizadas aos seus<br />

legítimos donos;<br />

cuidadosamente empregadas e armazenadas;<br />

ao fim da sua vida útil, ser <strong>de</strong>struídas ou arquivadas<br />

seguramente.<br />

Aqui, damos atenção ao aspecto do estabelecimento<br />

(criação e disponibilização) <strong>de</strong> chaves, pois é o que<br />

<strong>de</strong>pen<strong>de</strong> mais fortemente <strong>de</strong> técnicas criptográficas.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 121 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

Pelo seu tempo <strong>de</strong> vida:<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 122 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

Pelo seu tempo <strong>de</strong> vida:<br />

• Chaves <strong>de</strong> sessão. Efêmeras, simétricas usadas durante<br />

uma sessão <strong>de</strong> comunicação e <strong>de</strong>pois <strong>de</strong>scartadas.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 122 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

Pelo seu tempo <strong>de</strong> vida:<br />

• Chaves <strong>de</strong> sessão. Efêmeras, simétricas usadas durante<br />

uma sessão <strong>de</strong> comunicação e <strong>de</strong>pois <strong>de</strong>scartadas.<br />

Protocolos divididos em duas classes: distribuição<br />

<strong>de</strong> chaves e acordo <strong>de</strong> chaves.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 122 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

Pelo seu tempo <strong>de</strong> vida:<br />

• Chaves <strong>de</strong> sessão. Efêmeras, simétricas usadas durante<br />

uma sessão <strong>de</strong> comunicação e <strong>de</strong>pois <strong>de</strong>scartadas.<br />

Protocolos divididos em duas classes: distribuição<br />

<strong>de</strong> chaves e acordo <strong>de</strong> chaves.<br />

• Chaves <strong>de</strong> longa vida. Chaves não-efêmeras,<br />

simétricas ou assimétricas, usadas com certa freqüência<br />

para<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 122 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

Pelo seu tempo <strong>de</strong> vida:<br />

• Chaves <strong>de</strong> sessão. Efêmeras, simétricas usadas durante<br />

uma sessão <strong>de</strong> comunicação e <strong>de</strong>pois <strong>de</strong>scartadas.<br />

Protocolos divididos em duas classes: distribuição<br />

<strong>de</strong> chaves e acordo <strong>de</strong> chaves.<br />

• Chaves <strong>de</strong> longa vida. Chaves não-efêmeras,<br />

simétricas ou assimétricas, usadas com certa freqüência<br />

para<br />

distribuição encriptada <strong>de</strong> chaves <strong>de</strong> sessão;<br />

confecção e verificação <strong>de</strong> assinaturas digitais;<br />

confecção <strong>de</strong> MACs.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 122 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

Pelo seu tempo <strong>de</strong> vida:<br />

• Chaves <strong>de</strong> sessão. Efêmeras, simétricas usadas durante<br />

uma sessão <strong>de</strong> comunicação e <strong>de</strong>pois <strong>de</strong>scartadas.<br />

Protocolos divididos em duas classes: distribuição<br />

<strong>de</strong> chaves e acordo <strong>de</strong> chaves.<br />

• Chaves <strong>de</strong> longa vida. Chaves não-efêmeras,<br />

simétricas ou assimétricas, usadas com certa freqüência<br />

para<br />

distribuição encriptada <strong>de</strong> chaves <strong>de</strong> sessão;<br />

confecção e verificação <strong>de</strong> assinaturas digitais;<br />

confecção <strong>de</strong> MACs.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 122 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

• Chaves <strong>de</strong> longa vida (cont.) Chaves simétricas são<br />

distribuídas com protocolos <strong>de</strong> pré-distribuição <strong>de</strong><br />

chaves e armazenadas ou em hierarquias <strong>de</strong> chaves ou<br />

hardware <strong>de</strong>dicado, como smartcards e HSMs, ou<br />

frases-senha (passphrases).<br />

Chaves públicas <strong>de</strong>vem ser distribuídas nos seus<br />

certificados.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 123 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Tipos <strong>de</strong> chaves<br />

• Chaves <strong>de</strong> longa vida (cont.) Chaves simétricas são<br />

distribuídas com protocolos <strong>de</strong> pré-distribuição <strong>de</strong><br />

chaves e armazenadas ou em hierarquias <strong>de</strong> chaves ou<br />

hardware <strong>de</strong>dicado, como smartcards e HSMs, ou<br />

frases-senha (passphrases).<br />

Chaves públicas <strong>de</strong>vem ser distribuídas nos seus<br />

certificados.<br />

• Chaves perenes. Chaves críticas, <strong>de</strong> vida muito longa,<br />

como chaves mestras e chaves privadas <strong>de</strong> autorida<strong>de</strong>s<br />

certificadoras. Armazenamento combina HSMs e<br />

fracionamento da chave.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 123 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Na prática, alguém atesta (assina) a chave pública <strong>de</strong><br />

outros. O documento <strong>de</strong> atestação é o certificado digital.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Na prática, alguém atesta (assina) a chave pública <strong>de</strong><br />

outros. O documento <strong>de</strong> atestação é o certificado digital.<br />

Formas antagônicas para provimento <strong>de</strong>ssa confiança:<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Na prática, alguém atesta (assina) a chave pública <strong>de</strong><br />

outros. O documento <strong>de</strong> atestação é o certificado digital.<br />

Formas antagônicas para provimento <strong>de</strong>ssa confiança:<br />

• Auto-gerida. Cada entida<strong>de</strong> mantém os certificados em<br />

que confia e troque certificados com entida<strong>de</strong>s nas quais<br />

confia.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Na prática, alguém atesta (assina) a chave pública <strong>de</strong><br />

outros. O documento <strong>de</strong> atestação é o certificado digital.<br />

Formas antagônicas para provimento <strong>de</strong>ssa confiança:<br />

• Auto-gerida. Cada entida<strong>de</strong> mantém os certificados em<br />

que confia e troque certificados com entida<strong>de</strong>s nas quais<br />

confia.<br />

engajamento, custo baixo, difícil responsabilização.<br />

PGP (Phil Zimmerman).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Na prática, alguém atesta (assina) a chave pública <strong>de</strong><br />

outros. O documento <strong>de</strong> atestação é o certificado digital.<br />

Formas antagônicas para provimento <strong>de</strong>ssa confiança:<br />

• Auto-gerida. Cada entida<strong>de</strong> mantém os certificados em<br />

que confia e troque certificados com entida<strong>de</strong>s nas quais<br />

confia.<br />

engajamento, custo baixo, difícil responsabilização.<br />

PGP (Phil Zimmerman).<br />

• Delegação a terceiros. Autorida<strong>de</strong>s certificadoras, etc.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Certificação <strong>de</strong> chaves públicas<br />

Certificação é a forma <strong>de</strong> vincular uma chave pública à<br />

entida<strong>de</strong> que é sua legítima dona, ou seja, <strong>de</strong> prover<br />

confiança a um sistema <strong>de</strong> chaves públicas.<br />

Na prática, alguém atesta (assina) a chave pública <strong>de</strong><br />

outros. O documento <strong>de</strong> atestação é o certificado digital.<br />

Formas antagônicas para provimento <strong>de</strong>ssa confiança:<br />

• Auto-gerida. Cada entida<strong>de</strong> mantém os certificados em<br />

que confia e troque certificados com entida<strong>de</strong>s nas quais<br />

confia.<br />

engajamento, custo baixo, difícil responsabilização.<br />

PGP (Phil Zimmerman).<br />

• Delegação a terceiros. Autorida<strong>de</strong>s certificadoras, etc.<br />

custo alto, fácil responsabilização.<br />

Infra-estruturas <strong>de</strong> chaves públicas (ICP/PKI).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 124 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

• Proposta como esquema <strong>de</strong> assinaturas em 1984 por<br />

Adi Shamir.<br />

• Ganhou impulso em 2001 com a primeira proposta<br />

prática <strong>de</strong> esquema <strong>de</strong> encriptação baseado em<br />

i<strong>de</strong>ntida<strong>de</strong>s, <strong>de</strong> Boneh e Franklin.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

• Proposta como esquema <strong>de</strong> assinaturas em 1984 por<br />

Adi Shamir.<br />

• Ganhou impulso em 2001 com a primeira proposta<br />

prática <strong>de</strong> esquema <strong>de</strong> encriptação baseado em<br />

i<strong>de</strong>ntida<strong>de</strong>s, <strong>de</strong> Boneh e Franklin.<br />

• Chaves públicas auto-i<strong>de</strong>ntificáveis: ’Esta chave<br />

pertence a alice@alice.com’.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

• Proposta como esquema <strong>de</strong> assinaturas em 1984 por<br />

Adi Shamir.<br />

• Ganhou impulso em 2001 com a primeira proposta<br />

prática <strong>de</strong> esquema <strong>de</strong> encriptação baseado em<br />

i<strong>de</strong>ntida<strong>de</strong>s, <strong>de</strong> Boneh e Franklin.<br />

• Chaves públicas auto-i<strong>de</strong>ntificáveis: ’Esta chave<br />

pertence a alice@alice.com’.<br />

• Chaves privadas são geradas em conjunto pelo usuário e<br />

um gerador <strong>de</strong> chaves privadas–GCP.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

• Proposta como esquema <strong>de</strong> assinaturas em 1984 por<br />

Adi Shamir.<br />

• Ganhou impulso em 2001 com a primeira proposta<br />

prática <strong>de</strong> esquema <strong>de</strong> encriptação baseado em<br />

i<strong>de</strong>ntida<strong>de</strong>s, <strong>de</strong> Boneh e Franklin.<br />

• Chaves públicas auto-i<strong>de</strong>ntificáveis: ’Esta chave<br />

pertence a alice@alice.com’.<br />

• Chaves privadas são geradas em conjunto pelo usuário e<br />

um gerador <strong>de</strong> chaves privadas–GCP.<br />

Perda <strong>de</strong> in<strong>de</strong>pendência das entida<strong>de</strong>s.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

• Proposta como esquema <strong>de</strong> assinaturas em 1984 por<br />

Adi Shamir.<br />

• Ganhou impulso em 2001 com a primeira proposta<br />

prática <strong>de</strong> esquema <strong>de</strong> encriptação baseado em<br />

i<strong>de</strong>ntida<strong>de</strong>s, <strong>de</strong> Boneh e Franklin.<br />

• Chaves públicas auto-i<strong>de</strong>ntificáveis: ’Esta chave<br />

pertence a alice@alice.com’.<br />

• Chaves privadas são geradas em conjunto pelo usuário e<br />

um gerador <strong>de</strong> chaves privadas–GCP.<br />

Perda <strong>de</strong> in<strong>de</strong>pendência das entida<strong>de</strong>s.<br />

• Outras informações na chave públicas (datas, etc).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Criptografia baseada em i<strong>de</strong>ntida<strong>de</strong>s<br />

• Alternativa ao uso <strong>de</strong> certificados digitais.<br />

• Proposta como esquema <strong>de</strong> assinaturas em 1984 por<br />

Adi Shamir.<br />

• Ganhou impulso em 2001 com a primeira proposta<br />

prática <strong>de</strong> esquema <strong>de</strong> encriptação baseado em<br />

i<strong>de</strong>ntida<strong>de</strong>s, <strong>de</strong> Boneh e Franklin.<br />

• Chaves públicas auto-i<strong>de</strong>ntificáveis: ’Esta chave<br />

pertence a alice@alice.com’.<br />

• Chaves privadas são geradas em conjunto pelo usuário e<br />

um gerador <strong>de</strong> chaves privadas–GCP.<br />

Perda <strong>de</strong> in<strong>de</strong>pendência das entida<strong>de</strong>s.<br />

• Outras informações na chave públicas (datas, etc).<br />

• Propostas alternativas: Certificateless Public Key<br />

Cryptography), (Al-Riyami e Paterson)<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 125 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Aspectos importantes:<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 126 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Aspectos importantes:<br />

• domínio <strong>de</strong> valida<strong>de</strong> <strong>de</strong> uma i<strong>de</strong>ntida<strong>de</strong>: Alice <strong>de</strong>ve<br />

ter conhecimento prévio <strong>de</strong> alguma evidência da<br />

i<strong>de</strong>ntida<strong>de</strong> <strong>de</strong> Beto (números IP, URLs, email, user<br />

logins, etc).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 126 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Aspectos importantes:<br />

• domínio <strong>de</strong> valida<strong>de</strong> <strong>de</strong> uma i<strong>de</strong>ntida<strong>de</strong>: Alice <strong>de</strong>ve<br />

ter conhecimento prévio <strong>de</strong> alguma evidência da<br />

i<strong>de</strong>ntida<strong>de</strong> <strong>de</strong> Beto (números IP, URLs, email, user<br />

logins, etc).<br />

• natureza das informações <strong>de</strong> i<strong>de</strong>ntificação enviadas<br />

por Beto: algo que a entida<strong>de</strong> seja, algo que a entida<strong>de</strong><br />

possua, algo que a entida<strong>de</strong> conheça.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 126 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Aspectos importantes:<br />

• domínio <strong>de</strong> valida<strong>de</strong> <strong>de</strong> uma i<strong>de</strong>ntida<strong>de</strong>: Alice <strong>de</strong>ve<br />

ter conhecimento prévio <strong>de</strong> alguma evidência da<br />

i<strong>de</strong>ntida<strong>de</strong> <strong>de</strong> Beto (números IP, URLs, email, user<br />

logins, etc).<br />

• natureza das informações <strong>de</strong> i<strong>de</strong>ntificação enviadas<br />

por Beto: algo que a entida<strong>de</strong> seja, algo que a entida<strong>de</strong><br />

possua, algo que a entida<strong>de</strong> conheça.<br />

• segurança e robustez do protocolo: ataques pela<br />

quebra dos algoritmos criptográficos ou falhas no<br />

projeto do protocolo.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 126 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Aspectos importantes:<br />

• domínio <strong>de</strong> valida<strong>de</strong> <strong>de</strong> uma i<strong>de</strong>ntida<strong>de</strong>: Alice <strong>de</strong>ve<br />

ter conhecimento prévio <strong>de</strong> alguma evidência da<br />

i<strong>de</strong>ntida<strong>de</strong> <strong>de</strong> Beto (números IP, URLs, email, user<br />

logins, etc).<br />

• natureza das informações <strong>de</strong> i<strong>de</strong>ntificação enviadas<br />

por Beto: algo que a entida<strong>de</strong> seja, algo que a entida<strong>de</strong><br />

possua, algo que a entida<strong>de</strong> conheça.<br />

• segurança e robustez do protocolo: ataques pela<br />

quebra dos algoritmos criptográficos ou falhas no<br />

projeto do protocolo.<br />

• i<strong>de</strong>ntificação fraca vs. i<strong>de</strong>ntificação forte (com<br />

<strong>de</strong>safio-resposta).<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 126 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação (autenticação <strong>de</strong> entida<strong>de</strong>s)<br />

Aspectos importantes:<br />

• domínio <strong>de</strong> valida<strong>de</strong> <strong>de</strong> uma i<strong>de</strong>ntida<strong>de</strong>: Alice <strong>de</strong>ve<br />

ter conhecimento prévio <strong>de</strong> alguma evidência da<br />

i<strong>de</strong>ntida<strong>de</strong> <strong>de</strong> Beto (números IP, URLs, email, user<br />

logins, etc).<br />

• natureza das informações <strong>de</strong> i<strong>de</strong>ntificação enviadas<br />

por Beto: algo que a entida<strong>de</strong> seja, algo que a entida<strong>de</strong><br />

possua, algo que a entida<strong>de</strong> conheça.<br />

• segurança e robustez do protocolo: ataques pela<br />

quebra dos algoritmos criptográficos ou falhas no<br />

projeto do protocolo.<br />

• i<strong>de</strong>ntificação fraca vs. i<strong>de</strong>ntificação forte (com<br />

<strong>de</strong>safio-resposta).<br />

• reciprocida<strong>de</strong> da autenticação: i<strong>de</strong>ntificação<br />

unilateral vs. mútua.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 126 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação fraca, unilateral, com senhas<br />

Contexto inicial:<br />

A já possui (B, hB), on<strong>de</strong> hB = H(senhaB).<br />

Resultado: A aceita ou não a i<strong>de</strong>ntificação <strong>de</strong> B.<br />

1. B: A: B.<br />

2. A: B: “Digite a senha”.<br />

3. B: A: senhaB.<br />

4. A: localiza (B, hB) no seu arquivo <strong>de</strong> senhas;<br />

y ← H(senhaB);<br />

se y = hB, então aceita B, senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 127 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação fraca, unilateral, com senhas <strong>de</strong>scartáveis<br />

Contexto inicial:<br />

A já possui (B, hB), com hB = H n (senhaB).<br />

Resultado: A aceita ou não a i<strong>de</strong>ntificação <strong>de</strong> B.<br />

1. B: A: B.<br />

2. A: B: “Digite a senha”.<br />

3. B: y ← H n−i (senhaB) na i-ésima sessão.<br />

B: A: y.<br />

4. A: localiza (B, hB) no arquivo <strong>de</strong> senhas;<br />

y ′ ← H(y);<br />

se y ′ = hB, então aceita B e (B, hB) ← (B, y);<br />

senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 128 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação forte, unilateral, com técnicas<br />

simétricas<br />

Contexto inicial: A, B compartilham uma chave secreta kAB.<br />

Resultado: A aceita ou não a i<strong>de</strong>ntificação <strong>de</strong> B.<br />

1. B: A: B.<br />

2. A: sorteia(r);<br />

B: (A, r).<br />

3. B: y ← MACkAB (Br);<br />

A: y.<br />

4. A: y ′ ← MACkAB (Br);<br />

se y = y ′ , então aceita B, senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 129 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação forte, mútua, com técnicas<br />

simétricas<br />

Contexto inicial: A, B compartilham uma chave secreta kAB .<br />

Resultado: A e B aceitam ou não a i<strong>de</strong>ntificação um do outro.<br />

1. B: sorteia(rB);<br />

A: (B, rB).<br />

2. A: sorteia(rA);<br />

y1 ← MACkAB (ArBrA);<br />

B: (rA, y1).<br />

3. B: y ′ 1 ← MACkAB (ArBrA);<br />

se y1 = y ′ 1 , então y2 ← MACkAB (BrA),<br />

senão rejeita A e pára;<br />

A: (y2).<br />

4. A: y ′ 2 ← MACkAB (BrA);<br />

se y2 = y ′ 2 , então aceita B, senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 130 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação forte, mútua, usando chaves<br />

públicas<br />

Contexto inicial: A, B têm certificados CERTA, CERTB.<br />

Resultado: A e B aceitam ou não a i<strong>de</strong>ntificação um do outro.<br />

1. B: sorteia(rB);<br />

A: (CERTB, rB).<br />

2. A: sorteia(rA);<br />

sA ← SIGNA(BrBrA);<br />

B: (CERTA, rA, sA).<br />

3. B: Valida CERTA;<br />

se VERA(sA), então sB ← SIGNB(ArA),<br />

senão rejeita A e pára;<br />

A: (A, sB).<br />

4. A: valida CERTB<br />

se VERB(sB) então aceita B, senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 131 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação forte, mútua, com técnicas<br />

simétricas<br />

Contexto inicial: A, B compartilham uma chave secreta kAB .<br />

Resultado: A e B aceitam ou não a i<strong>de</strong>ntificação um do outro.<br />

1. B: sorteia(rB);<br />

A: (B, rB).<br />

2. A: sorteia(rA);<br />

y1 ← MACkAB (ArBrA);<br />

B: (rA, y1).<br />

3. B: y ′ 1 ← MACkAB (ArBrA);<br />

se y1 = y ′ 1 , então y2 ← MACkAB (BrA),<br />

senão rejeita A e pára;<br />

A: (y2).<br />

4. A: y ′ 2 ← MACkAB (BrA);<br />

se y2 = y ′ 2 , então aceita B, senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 132 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

I<strong>de</strong>ntificação forte, mútua, usando chaves<br />

públicas<br />

Contexto inicial: A, B têm certificados CERTA, CERTB.<br />

Resultado: A e B aceitam ou não a i<strong>de</strong>ntificação um do outro.<br />

1. B: sorteia(rB);<br />

A: (CERTB, rB).<br />

2. A: sorteia(rA);<br />

sA ← SIGNA(BrBrA);<br />

B: (CERTA, rA, sA).<br />

3. B: Valida CERTA;<br />

se VERA(sA), então sB ← SIGNB(ArA),<br />

senão rejeita A e pára;<br />

A: (A, sB).<br />

4. A: valida CERTB<br />

se VERB(sB) então aceita B, senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 133 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Estabelecimento <strong>de</strong> chaves<br />

• Protocolos para pré-distribuição <strong>de</strong> chaves<br />

não-efêmeras, utilizadas para a distribuição <strong>de</strong> chaves<br />

<strong>de</strong> sessão.<br />

• Protocolos para distribuição <strong>de</strong> chaves <strong>de</strong> sessão.<br />

• Esquema para fracionamento <strong>de</strong> chaves críticas, <strong>de</strong> vida<br />

muito longa.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 134 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Pré-distribuição <strong>de</strong> chaves I (Diffie-Hellman)<br />

Contexto inicial:<br />

- Parâmetros públicos são: grupo (G, .) e α ∈ G <strong>de</strong> or<strong>de</strong>m n.<br />

Resultado: Chave <strong>de</strong> sessão k compartilhada por A e B.<br />

1. A: sorteia(rA), inteiro em {0...n − 1};<br />

xA ← α rA;<br />

B: (A, xA);<br />

B: sorteia(rB), inteiro em {0...n − 1};<br />

xB ← α rB;<br />

A: (B, xB);<br />

2. A: k = x rA<br />

B ;<br />

B: k ′ = x rB<br />

A ;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 135 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Pré-distribuição <strong>de</strong> chaves II (Diffie-Hellman<br />

com certificados)<br />

Contexto inicial:<br />

- Parâmetros públicos são: grupo (G, .) e α gerador <strong>de</strong> G.<br />

- A e B têm:<br />

chaves privadas dA e dB, 0 ≤ dA, dB ≤ |G| − 1;<br />

chaves públicas eA = α dA e eB = α dB.<br />

Resultado: Chave k compartilhada por A e B.<br />

1: A: obtém e valida CERTB;<br />

k ← eB dA ;<br />

B: obtém e valida CERTA;<br />

k ′ ← eA dB.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 136 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Distribuição <strong>de</strong> chaves <strong>de</strong> sessão com técnicas<br />

simétricas (Kerberos V5 simplificado)<br />

Contexto inicial: A, B têm kAT, kBT pré-combinadas com a TPC.<br />

Resultado: Chave <strong>de</strong> sessão k compartilhada por A e B.<br />

1. A: sorteia(rA);<br />

TPC: (A, B, rA);<br />

2. TPC: sorteia(k); DefineLimiteTempo(l);<br />

y1 ← ENCkAT (rABkl);<br />

tktB ← ENCkBT (kAl);<br />

A: (y1, tktB);<br />

3. A: x1 ← DECkAT (y1);<br />

se x1 não tem os campos esperados, então pára;<br />

t ← HoraCorrente;<br />

y2 ← ENCk(At);<br />

B: (y2, tktB);<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 137 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Distribuição <strong>de</strong> chaves <strong>de</strong> sessão com técnicas<br />

simétricas (Kerberos V5 simplificado)<br />

4. B: tkt ′ B ← DECkBT (tktB);<br />

se tkt ′ B não tem os campos esperados, então pára;<br />

x2 ← DECk(y2);<br />

se x2 não tem os campos esperados ou t > l,<br />

então pára;<br />

y3 ← ENCk(t + 1);<br />

A: y3;<br />

5. A: x3 ← DECk(y3);<br />

se x3 = t + 1, então rejeita y3, senão aceita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 138 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Distribuição <strong>de</strong> chaves <strong>de</strong> sessão com técnicas<br />

simétricas (Bellare-Rogaway)<br />

Contexto inicial: A, B têm kAT, kBT pré-combinadas com a TPC.<br />

Resultado: Chave <strong>de</strong> sessão k compartilhada por A e B.<br />

1. A: sorteia(rA);<br />

B: (A, B, rA);<br />

2. B: sorteia(rB);<br />

TPC: (A, B, rA, rB);<br />

3. TPC: sorteia(k);<br />

← MACkAT (BArAyA);<br />

yA ← ENCkAT (k); y′ A<br />

yB ← ENCkBT (k); y′ B<br />

← MACkBT (ABrByB);<br />

A: (yA, y ′ A );<br />

B: (yB, y ′ B );<br />

4. A: se y ′ A = MACkAT (BArAyA), então aceita k,<br />

senão rejeita;<br />

5. B: se y ′ B = MACkBT (ABrByB), então aceita k,<br />

senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 139 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Distribuição <strong>de</strong> chaves <strong>de</strong> sessão usando<br />

encriptação com chaves públicas<br />

Contexto inicial:<br />

- A tem chaves pública e privada eA e dA;<br />

- B tem chaves pública e privada eB e dB;<br />

Resultado: Chave <strong>de</strong> sessão k transmitida <strong>de</strong> A para B.<br />

1. A: sorteia(k);<br />

obtém e valida CERTB;<br />

y ← ENCeB (k); sA ← SIGNA(y)<br />

B: (A, y, sA).<br />

2. B: obtém e valida CERTA;<br />

se VERA(sA) então k ← DECdB (y);<br />

senão rejeita.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 140 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Acordo <strong>de</strong> chaves usando técnicas simétricas<br />

(Encrypted-key Exchange)<br />

Contexto inicial:<br />

- Parâmetros públicos são: grupo (G, .) e α ∈ G <strong>de</strong> or<strong>de</strong>m n.<br />

- A e B compartilham chave secreta kAB.<br />

Resultado: Chave <strong>de</strong> sessão k compartilhada por A e B.<br />

1. A: sorteia(rA), inteiro em {0...n − 1};<br />

xA ← α rA; yA ← ENCkAB (xA);<br />

B: (A, yA);<br />

2. B: sorteia(rB), inteiro em {0...n − 1};<br />

xB ← α rB; yB ← ENCkAB (xB);<br />

A: (B, yB);<br />

3. A: xB ← DECkAB (yB); k = (xB) rA;<br />

4. B: xA ← DECkAB (yA); k ′ = (xA) rB;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 141 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Acordo <strong>de</strong> chaves usando assinaturas digitais<br />

(Station-to-station)<br />

Contexto inicial:<br />

- Parâmetros públicos são: grupo (G, .); α ∈ G <strong>de</strong> or<strong>de</strong>m n.<br />

Resultado: Chave <strong>de</strong> sessão k, compartilhada por A e B.<br />

1: A: sorteia(rA), inteiro em {0...n − 1};<br />

xA ← α rA;<br />

B: (CERTA, xA).<br />

2: B: Valida CERTA;<br />

sorteia(rB), inteiro em {0...n − 1};<br />

xB ← α rB; sB ← SIGNB(AxBxA);<br />

k ← x rB<br />

A ;<br />

A: (CERTB, xB, sB).<br />

3: A: Valida CERTB;<br />

se VERB(sB), então aceita, senão rejeita e pára;<br />

sA ← SIGNA(BxAxB); k ← x rA<br />

B ;<br />

B: sA.<br />

4: B: se VERA(sA), então aceita, senão rejeita e pára.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 142 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Armazenamento <strong>de</strong> chaves críticas: método <strong>de</strong><br />

Shamir<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 143 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Armazenamento <strong>de</strong> chaves críticas: método <strong>de</strong><br />

Shamir<br />

• Chaves críticas <strong>de</strong>vem ser armazenadas sem auxílio <strong>de</strong><br />

outras chaves.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 143 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Armazenamento <strong>de</strong> chaves críticas: método <strong>de</strong><br />

Shamir<br />

• Chaves críticas <strong>de</strong>vem ser armazenadas sem auxílio <strong>de</strong><br />

outras chaves.<br />

• Uso <strong>de</strong> esquemas <strong>de</strong> limiar é i<strong>de</strong>al:<br />

Permite fracionar a chave entre n usuários, <strong>de</strong><br />

forma que t,t ≤ n frações sejam necessárias e<br />

suficientes para recuperar a chave.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 143 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Armazenamento <strong>de</strong> chaves críticas: método <strong>de</strong><br />

Shamir<br />

• Chaves críticas <strong>de</strong>vem ser armazenadas sem auxílio <strong>de</strong><br />

outras chaves.<br />

• Uso <strong>de</strong> esquemas <strong>de</strong> limiar é i<strong>de</strong>al:<br />

Permite fracionar a chave entre n usuários, <strong>de</strong><br />

forma que t,t ≤ n frações sejam necessárias e<br />

suficientes para recuperar a chave.<br />

Equilíbrio dos valores <strong>de</strong> t e n é essencial.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 143 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Armazenamento <strong>de</strong> chaves críticas: método <strong>de</strong><br />

Shamir<br />

• Chaves críticas <strong>de</strong>vem ser armazenadas sem auxílio <strong>de</strong><br />

outras chaves.<br />

• Uso <strong>de</strong> esquemas <strong>de</strong> limiar é i<strong>de</strong>al:<br />

Permite fracionar a chave entre n usuários, <strong>de</strong><br />

forma que t,t ≤ n frações sejam necessárias e<br />

suficientes para recuperar a chave.<br />

Equilíbrio dos valores <strong>de</strong> t e n é essencial.<br />

• Esquema <strong>de</strong> Shamir foi o pioneiro.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 143 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Esquema <strong>de</strong> limiar <strong>de</strong> Shamir<br />

• Inicialização. Escolha n inteiros, x1,x2,...,xn ∈ Zp,<br />

não nulos, p ≥ n + 1. Distribua xi para a entida<strong>de</strong> Ei.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 144 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Esquema <strong>de</strong> limiar <strong>de</strong> Shamir<br />

• Inicialização. Escolha n inteiros, x1,x2,...,xn ∈ Zp,<br />

não nulos, p ≥ n + 1. Distribua xi para a entida<strong>de</strong> Ei.<br />

• Fracionamento do segredo s.<br />

Seja s ∈ Zp. Sorteie, em segredo, a1,a2,...,at−1 ∈ Zp,<br />

t ≤ n, <strong>de</strong>finindo assim o polinômio<br />

a(x) =<br />

t−1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 144 / 151<br />

j=1<br />

aj(xi) j .<br />

Calcule yi ← s + t−1<br />

j=1 aj(xi) j mod p,i = 1 ...n.


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Esquema <strong>de</strong> limiar <strong>de</strong> Shamir<br />

• Inicialização. Escolha n inteiros, x1,x2,...,xn ∈ Zp,<br />

não nulos, p ≥ n + 1. Distribua xi para a entida<strong>de</strong> Ei.<br />

• Fracionamento do segredo s.<br />

Seja s ∈ Zp. Sorteie, em segredo, a1,a2,...,at−1 ∈ Zp,<br />

t ≤ n, <strong>de</strong>finindo assim o polinômio<br />

a(x) =<br />

t−1<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 144 / 151<br />

j=1<br />

aj(xi) j .<br />

Calcule yi ← s + t−1<br />

j=1 aj(xi) j mod p,i = 1 ...n.<br />

Distribua yi para a entida<strong>de</strong> Ei.


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Esquema <strong>de</strong> limiar <strong>de</strong> Shamir<br />

Observe que<br />

• a(0) = s.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 145 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

• Gerenciamento <strong>de</strong><br />

chaves<br />

• I<strong>de</strong>ntificação<br />

(autenticação <strong>de</strong><br />

entida<strong>de</strong>s)<br />

• Estabelecimento <strong>de</strong><br />

chaves<br />

Outros paradigmas<br />

Esquema <strong>de</strong> limiar <strong>de</strong> Shamir<br />

Observe que<br />

• a(0) = s.<br />

• Pelo Teorema Fundamental da Álgebra, qualquer<br />

subconjunto <strong>de</strong> até t − 1 pontos (xi,yi) não revela<br />

informação alguma sobre os coeficientes<br />

a1,a2,...,at−1 do polinômio a(x), mas um conjunto<br />

com t ou mais pontos (xi,yi) <strong>de</strong>termina exatamente um<br />

polinômio, a saber, a(x) e, portanto, o valor a(0) = s.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 145 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Outros paradigmas<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 146 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Outros paradigmas<br />

Outros paradigmas<br />

Criptografia Quântica<br />

Emparelhamentos Bilineares<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 147 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Criptografia Quântica<br />

• Informação não é transformada mas enviada em claro<br />

por um canal on<strong>de</strong> não po<strong>de</strong> ser lida por um intruso <strong>de</strong><br />

forma imperceptível. Isto é, em vez <strong>de</strong> escon<strong>de</strong>r a<br />

informação, coíbe o acesso a ela.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 148 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Criptografia Quântica<br />

• Informação não é transformada mas enviada em claro<br />

por um canal on<strong>de</strong> não po<strong>de</strong> ser lida por um intruso <strong>de</strong><br />

forma imperceptível. Isto é, em vez <strong>de</strong> escon<strong>de</strong>r a<br />

informação, coíbe o acesso a ela.<br />

• Início da década <strong>de</strong> 1970, S. Wiesner lançou idéias<br />

seminais sobre o uso <strong>de</strong> estados conjugados <strong>de</strong><br />

partículas elementares para codificar e transmitir<br />

informação.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 148 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Criptografia Quântica<br />

• Informação não é transformada mas enviada em claro<br />

por um canal on<strong>de</strong> não po<strong>de</strong> ser lida por um intruso <strong>de</strong><br />

forma imperceptível. Isto é, em vez <strong>de</strong> escon<strong>de</strong>r a<br />

informação, coíbe o acesso a ela.<br />

• Início da década <strong>de</strong> 1970, S. Wiesner lançou idéias<br />

seminais sobre o uso <strong>de</strong> estados conjugados <strong>de</strong><br />

partículas elementares para codificar e transmitir<br />

informação.<br />

• Idéias formaram a base do trabalho <strong>de</strong> C. Bennett e G.<br />

Brassard, o primeiro a <strong>de</strong>screver um protocolo<br />

completo para a distribuição <strong>de</strong> uma chave aleatória,<br />

sem comunicação prévia entre as partes.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 148 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Criptografia Quântica<br />

• Informação não é transformada mas enviada em claro<br />

por um canal on<strong>de</strong> não po<strong>de</strong> ser lida por um intruso <strong>de</strong><br />

forma imperceptível. Isto é, em vez <strong>de</strong> escon<strong>de</strong>r a<br />

informação, coíbe o acesso a ela.<br />

• Início da década <strong>de</strong> 1970, S. Wiesner lançou idéias<br />

seminais sobre o uso <strong>de</strong> estados conjugados <strong>de</strong><br />

partículas elementares para codificar e transmitir<br />

informação.<br />

• Idéias formaram a base do trabalho <strong>de</strong> C. Bennett e G.<br />

Brassard, o primeiro a <strong>de</strong>screver um protocolo<br />

completo para a distribuição <strong>de</strong> uma chave aleatória,<br />

sem comunicação prévia entre as partes.<br />

• a informação trocada é, necessariamente, aleatória.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 148 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Criptografia Quântica<br />

• Informação não é transformada mas enviada em claro<br />

por um canal on<strong>de</strong> não po<strong>de</strong> ser lida por um intruso <strong>de</strong><br />

forma imperceptível. Isto é, em vez <strong>de</strong> escon<strong>de</strong>r a<br />

informação, coíbe o acesso a ela.<br />

• Início da década <strong>de</strong> 1970, S. Wiesner lançou idéias<br />

seminais sobre o uso <strong>de</strong> estados conjugados <strong>de</strong><br />

partículas elementares para codificar e transmitir<br />

informação.<br />

• Idéias formaram a base do trabalho <strong>de</strong> C. Bennett e G.<br />

Brassard, o primeiro a <strong>de</strong>screver um protocolo<br />

completo para a distribuição <strong>de</strong> uma chave aleatória,<br />

sem comunicação prévia entre as partes.<br />

• a informação trocada é, necessariamente, aleatória.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 148 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos Bilineares<br />

Definição 37 Sejam G1 grupo aditivo, G2 um grupo<br />

multiplicativo, ambos <strong>de</strong> or<strong>de</strong>m prima n. Seja α um<br />

gerador <strong>de</strong> G1. Um emparelhamento bilinear é um<br />

mapeamento ê : G1 × G1 → G2, tal que:<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 149 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos Bilineares<br />

Definição 38 Sejam G1 grupo aditivo, G2 um grupo<br />

multiplicativo, ambos <strong>de</strong> or<strong>de</strong>m prima n. Seja α um<br />

gerador <strong>de</strong> G1. Um emparelhamento bilinear é um<br />

mapeamento ê : G1 × G1 → G2, tal que:<br />

1. (bilinearida<strong>de</strong>) Para todos β,γ,δ ∈ G1,<br />

ê(β + γ,δ) = ê(β,δ)ê(γ,δ) e<br />

ê(β,γ + δ) = ê(β,γ)ê(β,δ);<br />

2. (não-<strong>de</strong>generação) ê(α,α) = 1;<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 149 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos Bilineares<br />

Definição 39 Sejam G1 grupo aditivo, G2 um grupo<br />

multiplicativo, ambos <strong>de</strong> or<strong>de</strong>m prima n. Seja α um<br />

gerador <strong>de</strong> G1. Um emparelhamento bilinear é um<br />

mapeamento ê : G1 × G1 → G2, tal que:<br />

1. (bilinearida<strong>de</strong>) Para todos β,γ,δ ∈ G1,<br />

ê(β + γ,δ) = ê(β,δ)ê(γ,δ) e<br />

ê(β,γ + δ) = ê(β,γ)ê(β,δ);<br />

2. (não-<strong>de</strong>generação) ê(α,α) = 1;<br />

3. (computabilida<strong>de</strong>) ê é eficientemente computável.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 149 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos Bilineares<br />

Definição 40 Sejam G1 grupo aditivo, G2 um grupo<br />

multiplicativo, ambos <strong>de</strong> or<strong>de</strong>m prima n. Seja α um<br />

gerador <strong>de</strong> G1. Um emparelhamento bilinear é um<br />

mapeamento ê : G1 × G1 → G2, tal que:<br />

1. (bilinearida<strong>de</strong>) Para todos β,γ,δ ∈ G1,<br />

ê(β + γ,δ) = ê(β,δ)ê(γ,δ) e<br />

ê(β,γ + δ) = ê(β,γ)ê(β,δ);<br />

2. (não-<strong>de</strong>generação) ê(α,α) = 1;<br />

3. (computabilida<strong>de</strong>) ê é eficientemente computável.<br />

Conseqüência muito util:<br />

ê(aβ,bγ) = ê(β,γ) ab , para todos a,b, inteiros. (1)<br />

Emparelhamentos bem conhecidos: Tate e Weil.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 149 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos - exemplo <strong>de</strong> uso<br />

• Alice, Beto e Carlos (C) querem estabelecer uma chave<br />

comum k.<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 150 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos - exemplo <strong>de</strong> uso<br />

• Alice, Beto e Carlos (C) querem estabelecer uma chave<br />

comum k.<br />

• Com Diffie-Hellman clássico, duas rodadas são<br />

necessárias:<br />

[1.] AB : α rA , BC : α rB e CA : α rC .<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 150 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos - exemplo <strong>de</strong> uso<br />

• Alice, Beto e Carlos (C) querem estabelecer uma chave<br />

comum k.<br />

• Com Diffie-Hellman clássico, duas rodadas são<br />

necessárias:<br />

[1.] AB : α rA , BC : α rB e CA : α rC .<br />

[2.] AB : α rCrA , BC : α rArB e CA : α rBrC .<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 150 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos - exemplo <strong>de</strong> uso<br />

• Alice, Beto e Carlos (C) querem estabelecer uma chave<br />

comum k.<br />

• Com Diffie-Hellman clássico, duas rodadas são<br />

necessárias:<br />

[1.] AB : α rA , BC : α rB e CA : α rC .<br />

[2.] AB : α rCrA , BC : α rArB e CA : α rBrC .<br />

• Após essas rodadas, os três calculam k = α rArBrC .<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 150 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos - exemplo <strong>de</strong> uso<br />

• Alice, Beto e Carlos (C) querem estabelecer uma chave<br />

comum k.<br />

• Com Diffie-Hellman clássico, duas rodadas são<br />

necessárias:<br />

[1.] AB : α rA , BC : α rB e CA : α rC .<br />

[2.] AB : α rCrA , BC : α rArB e CA : α rBrC .<br />

• Após essas rodadas, os três calculam k = α rArBrC .<br />

• É possível estabelecer a chave k com apenas uma<br />

rodada <strong>de</strong> mensagens?<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 150 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Emparelhamentos - exemplo <strong>de</strong> uso<br />

• Alice, Beto e Carlos (C) querem estabelecer uma chave<br />

comum k.<br />

• Com Diffie-Hellman clássico, duas rodadas são<br />

necessárias:<br />

[1.] AB : α rA , BC : α rB e CA : α rC .<br />

[2.] AB : α rCrA , BC : α rArB e CA : α rBrC .<br />

• Após essas rodadas, os três calculam k = α rArBrC .<br />

• É possível estabelecer a chave k com apenas uma<br />

rodada <strong>de</strong> mensagens?<br />

• Sim, mas com emparelhamentos bilineares,<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 150 / 151


Introdução<br />

Técnicas criptográficas<br />

Protocolos<br />

criptográficos<br />

Outros paradigmas<br />

• Criptografia<br />

Quântica<br />

• Emparelhamentos<br />

Bilineares<br />

Pré-distribuição <strong>de</strong> chaves tripartite (Joux)<br />

Contexto inicial: A, B, C usam um emparelhamento ê .<br />

Resultado: Chave <strong>de</strong> sessão k compartilhada por A, B e C.<br />

1. A: sorteia(rA), inteiro em [0, n − 1];<br />

xA ← rAα;<br />

{B, C}: (A, xA);<br />

B: sorteia(rB), inteiro em [0, n − 1];<br />

xB ← rBα;<br />

{A, C}: (B, xB);<br />

C: sorteia(rC), inteiro em [0, n − 1];<br />

xC ← rCα;<br />

{A, B}: (C, xC);<br />

2. A: k ← ê(xB, xC) rA;<br />

B: k ← ê(xA, xC) rB;<br />

C: k ← ê(xA, xB) rC .<br />

Técnicas criptográficas mo<strong>de</strong>rnas JAI 2007 - Rio <strong>de</strong> Janeiro – 151 / 151

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!