m´odulo - Instituto de Computação - Unicamp
m´odulo - Instituto de Computação - Unicamp
m´odulo - Instituto de Computação - Unicamp
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