Vous êtes sur la page 1sur 44

>> Gesto da Segurana da Informao e Comunicaes >> 2009-2011

Anderson Clayton do Nascimento

GSIC250

CRIPTOGRAFIA E INFRAESTRUTURA DE
CHAVES PBLICAS

VERSO 1

Dilma Rousseff
Presidente da Repblica
Jos Elito Carvalho Siqueira
Ministro do Gabinete de Segurana Institucional
Antonio Sergio Geromel
Secretrio Executivo
Raphael Mandarino Junior
Diretor do Departamento de Segurana da Informao e
Comunicaes
Reinaldo Silva Simio
Coordenador Geral de Gesto da Segurana da
Informao e Comunicaes

Fernando Haddad
Ministro da Educao
UNIVERSIDADE DE BRASLIA
Jos Geraldo de Sousa Junior
Reitor
Joo Batista de Sousa
Vice-Reitor
Pedro Murrieta Santos Neto
Decanato de Administrao
Rachel Nunes da Cunha
Decanato de Assuntos Comunitrios
Mrcia Abraho Moura
Decanato de Ensino de Graduao
Oviromar Flores
Decanato de Extenso
Denise Bomtempo Birche de Carvalho
Decanato de Pesquisa e Ps-graduao
Nora Romeu Rocco
Instituto de Cincias Exatas
Priscila Barreto
Departamento de Cincia da Computao

CEGSIC
Coordenao
Jorge Henrique Cabral Fernandes
Secretaria Pedaggica
Andria Lac
Eduardo Loureiro Jr.
Lvia Souza
Odacyr Luiz Timm
Ricardo Sampaio
Assessoria Tcnica
Gabriel Velasco
Secretaria Administrativa
Indiara Luna Ferreira Furtado
Jucilene Gomes
Martha Arajo

Equipe de Produo Multimdia


Alex Harlen
Lizane Leite
Rodrigo Moraes
Equipe de Tecnologia da Informao
Douglas Ferlini
Osvaldo Corra
Edio, Reviso Tcnica e de Lngua Portuguesa
Jorge Henrique Cabral Fernandes

Texto e ilustraes: Anderson ClaytonNascimento | Capa, projeto grfico e diagramao: Alex Harlen
Desenvolvido em atendimento ao plano de trabalho do Programa de Formao de Especialistas para a Elaborao da
Metodologia Brasileira de Gesto de Segurana da Informao e Comunicaes CEGSIC 2009-2011.
Este material distribudo sob a licena creative commons
http://creativecommons.org/licenses/by-nc-nd/3.0/br/

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Sumrio
[5] Currculo resumido do autor
[6] Resumo
[7] 1 Introduo
[8] 2 Conceitos Bsicos
2.1 Texto em claro, texto cifrado ou criptograma . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Sistema criptogrfico, criptossistema, cifrador e decifrador . . . . . . . . . . 8
2.3 Processo de criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Viso Matemtica do Ciframento e Deciframento . . . . . . . . . . . . . . . . . . . 10
2.5 Tipos de Criptossistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 Objetivos de um Criptossistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6.1 Sigilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6.2 Integridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6.3 Autenticidade e No-Repdio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 Segurana em criptosistemas e sistemas criptogrficos . . . . . . . . . . . . . 12

[14] 3 Criptografia Simtrica


3.1 Sigilo Perfeito: O One Time Pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Cifras de Bloco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.1 Permutao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2 Substituio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.3 Difuso/Confuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.4 Redes SP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.5 Estrutura Bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.6 Modos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.7 DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.8 AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Cifras de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.1 O que so as Cifras de Fluxo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.2 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.3 Observaes sobre Segurana de Cifras de Fluxo (Sigilo) . . . . . . . . . . . 23
3.3.4 Alguns Exemplos Reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Funes de Hash e Aplicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.1 Definies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.1 Aplicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

[28] 4 Criptografia de Chave Pblica


4.1 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 A Proposta de Diffie e Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Vantagens da Criptografia de Chave Pblica . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Assinaturas Digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5 Certificados Digitais e Autoridades Certificadoras . . . . . . . . . . . . . . . . . . . 30
4.6 Segurana na WEB: O protocolo TLS/SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

[35] 5 Conceitos Matemticos de Criptografia de Chave


Pblica
5.1 Acordo de Chaves Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Criptossistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3 Criptossistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.4 Segurana Necessria para Criptossistemas de Chave Pblica Prticos .
39
5.5 Assinatura Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.6 Conceitos Matemticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.7 Esquema de Assinatura RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.8 Algoritmo de Assinatura Digital (Digital Signature Algorithm, DSA) . . 41
5.9 Segurana Necessria para Esquemas de Assinatura Digital Prticos . 41

[43] 6 Concluses
[44] Referncias

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

CURRCULO RESUMIDO DO AUTOR

Anderson Clayton do Nascimento


Possui graduao em Engenharia Eltrica pela Universidade de Braslia (1998), mestrado em
Information And Communication Engineering - University Of Tokyo (2001) e doutorado em Information And Communication Engineering - University Of Tokyo (2004). Atualmente professor
adjunto da Universidade de Braslia, coordenador de graduao do curso de engenharia de redes
de comunicao e coordenador acadmico do mestrado profissional em informtica forense do
departamento de engenharia eltrica. revisor dos peridicos IEEE Transactions on Information
Theory , IEICE Transactions on Fundamentals of Electronics, Journal of Physics A, Journal of Cryptology, dentre outros. Tem experincia na rea de Engenharia Eltrica, com nfase em Segurana da Informao e Criptografia. bolsista de produtividade em pesquisa do CNPq (nvel 2). O
prof. Nascimento membro efetivo do programa de ps-graduao em engenharia eltrica e
do programa de ps-graduao em informtica da universidade de Braslia, tendo participado
ativamente da criao de ambos os programas. Ele publicou algumas dezenas de artigos em
conferncias e peridicos cientficos de alto prestgio e detentor de uma patente internacional.
O professor Nascimento consultor da Agncia Brasileira de Inteligncia, membro designado do
comit tcnico ICP-Brasil e vice-coordenador da comisso especial de segurana da informao
da sociedade brasileira de computao (SBC). O professor Nascimento foi coordenador do comit de programa do IX Simpsio Brasileiro de Segurana da Informao e de Sistemas Computacionais e ser o coordenador geral da XI edio do mesmo evento.

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Resumo
A disciplina de criptografia e infra-estrutura de chaves pblicas introduz ao aluno conceitos elementares de criptografia presentes nas solues de segurana de sistemas de informao correntes. A disciplina inicia-se com conceitos bsicos de criptografia e segurana da
informao tais como: modelos de segurana; definio de cifras simtricas; definio de cifras
assimtricas e modelo adversarial. Em seguida, as principais tcnicas de criptografia simtrica
bem como as principais cifras de fluxo e de bloco atualmente em uso so explicadas. Os principais criptossistemas de chave pblica so introduzidos juntamente com noes de assinaturas
digitais. Por fim, explica-se o que so certificados digitais, autoridades certificadoras e infra-estrutura de chaves pblicas.

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

1 Introduo
A criptografia tem como um dos seus objetivos principais prover a troca de mensagens secretas entre duas partes, geralmente chamadas de Alice e Bob, de forma que uma terceira parte
maliciosa, geralmente chamada de Eva, no possa obter nenhuma informao relevante sobre o
significado das mensagens secretas. A Figura 1 representa abstratamente esta situao.

Figura 1: Eva no deve obter informao relevante sobre as mensagens trocadas entre Alice e Bob.

A infra-estrutura de chaves pblicas consiste numa soluo geral para o uso da criptografia em redes de comunicao abertas, quando no se pode assumir que Alice e Bob tenham
conhecimento prvio um do outro, pois uma vez que a rede aberta e a todo instante entram e
saem novos agentes na rede. Mesmo nestas condies, o uso de uma infra-estrutura de chaves
pblicas impede que Eva alcance seu intento.
Este texto apresenta conceitos bsicos acerca de criptografia e infra-estrutura de chaves
pblicas e encontra-se organizado em sete sees. A segunda seo introduz os conceitos bsicos de criptografia de uma maneira geral, com definies dos diferentes tipos de cifras (cifra
simtrica e assimtrica), modelos adversariais1 etc. A terceira seo estabelece idias e tcnicas
bsicas a respeito de cifras simtricas e funes de hash. A quarta seo trata de criptografia
de chaves pblicas, com uso de cifras assimtricas e sua aplicao em assinaturas digitais e
segurana na Web. A quinta seo, a mais densa do texto, aborda conceitos matemticos da
criptografia de chave pblica e conclui com discusso sobre a segurana necessria em esquemas de assinatura digitais prticos. O tratamento matemtico dispensado compreenso da
criptografia foi reduzido ao mximo, visando sua acessibilidade ao leigo que possui noes
bsicas de matemtica discreta.

Modelos adversariais classificam os ataques a um sistema critpogrfico.

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

2 Conceitos Bsicos
A seguir, sero estabelecidos conceitos bsicos e terminologia relacionados criptografia.

2.1 Texto em claro, texto cifrado ou criptograma


Com o objetivo de alcanar sigilo em um canal de comunicao que pode estar sujeito a
escuta, Alice desordena sua mensagem, conhecida como texto em claro, respeitando algumas
regras pr-estabelecidas, as quais so determinadas por uma chave2 previamente compartilhada com Bob. Alice envia para Bob o texto desordenado. Ao receber o texto desordenado,
Bob o reordena, de acordo com as regras previamente acordadas, representadas por sua chave, e assim recupera a mensagem. O texto desordenado conhecido como texto cifrado ou
criptograma, e pode ser abstratamente representado pela Figura 2. Perceba que o texto em
claro est dentro do texto cifrado, mas apenas com a combinao da chave e do cadeado
(teoricamente) possvel recuper-lo. Em outras palavras, o texto cifrado no deve proporcionar
a Eva qualquer informao a respeito da mensagem compartilhada entre Alice e Bob.

Figura 2 Um texto cifrado.

Os processos de desordenar e reordenar a mensagem so conhecidos como ciframento e


deciframento, respectivamente, e so representados na Figura 3.

Figura 3. Ciframento e Deciframento, usando uma chave criptogrfica.

2.2 Sistema criptogrfico, criptossistema, cifrador e


decifrador
O ciframento e o deciframento so possveis atravs do uso de um sistema criptogrfico,
que um sistema computacional (uma combinao de hardware e software) que implemen2

Uma chave criptogrfica uma sequencia de caracteres (bits, nmeros, letras etc).

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

tam uma cifra3 e usado para realizar criptografia, tanto a cifragem como a decifragem. Como
metaforicamente ilustra a Figura 4, pode-se representar uma chave criptogrfica por meio de
uma chave fsica, o sistema criptogrfico por um cadeado, a cifra, cryptosystem ou criptossistema por uma engrenagem ( um algoritmo), a parte do sistema criptogrfico ou do criptosistema (algoritmo) que realiza o ciframento por um cadeado fechando, e a parte do que decifra
o texto cifrado, chamada de decifrador, por um cadeado abrindo.

Figura 4 Uma Chave Criptogrfica, um Sistema Criptogrfico, um Criptosistema, o cifrador e o decifrador.

2.3 Processo de criptografia


O processo de criptografia pode ser representado pelas Figuras 5, 6 e 7.

Figura 5 O processo de criptografia.

Na Figura 5 um sistema criptogrfico, que implementa uma cifra ou criptosistema, operado por meio de uma chave, que transforma um texto claro em texto cifrado. De outra forma,
o mesmo sistema criptogrfico operado por uma chave (usualmente a mesma) para transformar o texto cifrado em texto claro.
De forma mais detalhada, o processo tambm pode ser representado pela Figura 6.

Figura 6 O processo de criptografia, com destaque para a cifragem e decifragem.


3

Uma cifra, criptosistema ou cryptosystem um algoritmo de ciframento, isto , um conjunto de


passos que devem ser realizados por um computador, para transformar um texto claro em um
texto cifrado.

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

De outra forma, usualmente os criptologistas esto preocupados com as caractersticas


matemticas dos algoritmos de ciframento, e estudam e representam o processo de criptografia do ponto de vista de suas cifras, como ilustra a Figura 7.

Figura 7. Criptossistema genrico (viso de um criptologista).

Sob uma perspectiva organizacional, os processos das Figuras 5, 6 e 7 so definidos tanto


pelo sistema criptogrfico empregado, cuja implementao baseada numa combinao de
cifras, bem como pelos procedimentos organizacionais necessrios manipulao das chaves
e dos sistemas criptogrficos (hardware e software), execuo do ciframento e deciframento,
ao envio e recebimento do texto cifrado.

2.4 Viso Matemtica do Ciframento e Deciframento


Matematicamente, denota-se o ciframento de uma mensagem m com uma chave k por
um algoritmo de ciframento E( ) por:

Ek (m)

e o deciframento do texto cifrado acima com uma chave Kb por um algoritmo de deciframento D( ) por:

m = Dkb ( Ek (m))

2.5 Tipos de Criptossistemas


Um esquema como o representado na Figura 6 chamado de cryptosystem ou criptossistema. Se as chaves usadas no ciframento e no deciframento so iguais, o criptossistema
classificado como de chave simtrica. Se as chaves utilizadas nas duas etapas forem distintas,
ento um criptossistema de chave assimtrica. Os criptossistemas de chave simtrica mais
comuns so as cifras de bloco e as cifras de fluxo.
Cifras de bloco operam em grupos de bits (blocos de bits) enquanto cifras de fluxo operam no texto em claro bit a bit. Maiores detalhes sobre esses dois tipos de criptossitemas simtricos sero vistos adiante.
Criptossistema de chave pblica o principal tipo de criptossistema de criptografia assimtrica. Whitfield Diffie e Martin Hellman introduziram o conceito de criptografia de chave
pblica em 1976 em um trabalho histrico.
Criptossistemas de chave pblica utilizam duas chaves distintas com o objetivo de estabelecer uma comunicao segura. Uma chave pblica, e a outra chave secreta. Embora haja

10

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

uma relao matemtica precisa entre as duas chaves, difcil gerar uma em funo da outra,
tendo-se acesso apenas s chaves. A Figura 8 apresenta, abstratamente um par de chaves assimtricas. So diferentes, mas uma funo matemtica da outra.
Na criptografia de chave pblica, dadas suas caractersticas matemticas, o ciframento de uma mensagem pode ser feito por qualquer
agente, enquanto o deciframento poder ser feito somente por aquele
que possui a chave secreta. Atravs de esquemas desse tipo, duas pessoas que no se conhecem podem estabelecer uma comunicao segura
atravs de um canal inseguro, sem que tenham compartilhado previamente de uma chave criptogrfica. Uma construo prtica de criptossisFigura 8 Um par de temas de chave pblica foi proposta por um grupo de pesquisadores do
chaves assimtricas.
MIT (Massachusetts Institute of Technology), o famoso RSA.

2.6 Objetivos de um Criptossistema


Alm de prover trocas de mensagens de forma sigilosa entre usurios de um sistema, criptossistemas modernos geralmente devem prover integridade, autenticidade e no-repdio.
O sistema busca impedir que o adversrio reduza o grau de uma ou mais destes atributos de
segurana da informao. Estes conceitos so definidos abaixo, por meio de ilustraes de
ataques realizados pelo adversrio.

2.6.1 Sigilo
Sigilo se refere impossibilidade de um adversrio descobrir uma quantidade no-desprezvel de informao acerca da mensagem transmitida. No cenrio da Figura 9, Eva no consegue obter informao significativa mesmo que tenha acesso aos pacotes de informao trocados entre Alice e Bob, por exemplo, por meio de packet sniffing.

Figura 9 Cenrio de possvel perda de confidencialidade, caso no seja usada criptografia.

2.6.2 Integridade
Integridade garante ao destinatrio da mensagem, Bob, que no houve alteraes no texto cifrado aps o envio feito pelo remetente, Alice. No cenrio da Figura 10, Eva no poderia
interceptar, modificar e enviar a Bob uma mensagem, sem que Bob descubra que a mensagem
foi adulterada (perdeu sua integridade).

11

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 10 Cenrio de possvel perda de integridade, caso no seja usada criptografia.

2.6.3 Autenticidade e No-Repdio.


Autenticidade garante ao destinatrio, Bob, que a mensagem recebida foi realmente enviada por Alice, e por mais ningum. No-repdio impossibilita um remetente de uma mensagem negar seu envio. Conforme ilustra a Figura 11 em algunas ataques possvel que Eva
realize um ataque de personificao, fazendo-se passar, por exemplo, por Alice ou por outro
agente. Alguns criptossistemas impedem que isto ocorra, garantindo autenticidade. Uma conseqncia da autenticidade que Alice tambm no pode repudiar o envio prvio de uma
mensagem autntica recebida por Bob.

Figura 11 Cenrio de possvel perda de autenticidade, caso no seja usada criptografia.

Em alguns casos deseja-se que o criptossistema proporcione anonimato a seus usurios,


isto , a identidade dos usurios do sistema mantida oculta. Tal ocorre, por exemplo, em sistemas de votao secreta realizados por computador.

2.7 Segurana em criptosistemas e sistemas criptogrficos


Como j dito anteriormente, um criptosistema uma abstrao matemtica (algoritmo)
que possibilita o uso da criptografia, enquanto que o sistema criptogrfico a implementao
computacional da criptografia (hardware e software), o que pode envolver o uso de um ou
mais criptosistemas. Para que se possa discutir a respeito da segurana de criptossistemas e
sistemas criptogrficos necessrio que, antes, seja especificado o que est disponvel a um
adversrio, para que este tente quebrar a segurana do criptosistema (um ataque de nvel terico) ou do sistema (um ataque de ordem prtica, isto , por meio de manipulao e acesso ao
sistema). A seguir esto os principais tipos de ataques considerados na literatura. usual em
criptografia assumir que o adversrio possui uma descrio completa do criptossistema em
uso, a menos de sua chave secreta.
1. Ataque de texto cifrado (Ciphertext-only attack): Nesse ataque o adversrio possui
acesso somente a uma certa quantia de texto cifrado.

12

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

2. Ataque de texto em claro conhecido (Known-plaintext attack, KPA): O adversrio possui


acesso ao texto em claro de uma quantidade de dados, alm do acesso ao texto cifrado.
3. Ataque de texto em claro escolhido (Chosen-plaintext attack, CPA): O adversrio pode
escolher quais dados e seus respectivos textos cifrados e ter acesso aos mesmos A
Figura 12 ilustra um exemplo deste tipo de ataque onde, mesmo sem ter acesso ao
sistema criptogrfico contido dentro de um terminal ATM, um atacante escolhe um
nmero de identificao pessoal (PIN Personal Identification Number) que criptografado e capturado quando em trfego atravs de uma rede.
4. Ataque adaptativo de texto em claro escolhido (Adaptive chosen-plaintext attack,
CCA2): O adversrio tem acesso ao sistema criptogrfico e pode escolher pares de
texto cifrado/texto em claro de forma adaptativa, isto , o adversrio pode modificar
suas decises a respeito dos pares de texto cifrado/texto em claro baseado nos dados
previamente recebidos. Estas mudanas adaptativas so usualmente efetuadas por
algoritmos de busca, e demandam que o atacante tenha acesso direto ao sistema
criptogrfico.

Figura 12 Um Exemplo de Ataque CPA (chosen plaintext attack) ao sistema criptogrfico de um Banco.

1. Ataque de texto cifrado escolhido (Chosen-ciphertext attack, CCA1): Nesse tipo de ataque o adversrio possui acesso ao decifrador que decifra outros textos cifrados diferentes do criptograma que lhe interessa. O objetivo aqui garantir que uma cifra possua segurana mesmo que alguns textos em claro correspondentes a certos textos
cifrados pela mesma tenham sido disponibilizados para um adversrio. O decifrador
pode ser, na prtica, implementado atravs de suborno de uma pessoa responsvel
pela operao da maquina de ciframento, por exemplo. importante ressaltar que
em criptologia deve-se desenvolver sistemas criptogrficos assumindo-se que o adversrio possui acesso descrio completa dos algoritmos de ciframento e deciframento, o que conhecido como o Princpio de Kerckhoff, que expressa que a segurana
de um criptossistema deve depender apenas da segurana de sua chave. Deve-se
procurar seguir o princpio de Kerckhoff ao construir um criptossistema, uma vez que
um adversrio sempre pode roubar um dispositivo criptogrfico e utilizar engenharia
reversa, ou reconstruir um dispositivo de ciframento baseado apenas em pares de
texto em claro/texto cifrado.

13

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

3 Criptografia Simtrica
Esquemas de ciframento simtrico podem ser desenvolvidos a partir de diferentes tcnicas
e conceitos. Exemplos de cifras simtricas so o one-time pad, cifras de bloco e cifras de fluxo.

3.1 Sigilo Perfeito: O One Time Pad


Um dos grandes desafios no desenvolvimento de criptossistemas est relacionado a como
definir e medir a segurana deste sistema. O estudo cientfico da segurana de criptossistemas se deu incio com o trabalho de Claude Shannon [1]. Entre outros trabalhos relevantes de
Shannon encontra-se o uso de lgebra booleana na anlise de circuitos digitais, criando o que
chamado hoje de chaveamento lgico. Um trabalho posterior de Shannon, A Mathematical
Theory of Communication [2], que iniciou uma rea que conhecemos hoje como Teoria da Informao, descreve a medida da informao por dgitos binrios, que representam alternativas
de sim/no, e que a base fundamental das telecomunicaes existentes hoje em dia.
Shannon tambm provou que uma cifra proposta por Gilbert Vernan, um pesquisador
da AT&T, um esquema de ciframento perfeito, isto , um esquema que garante o sigilo da
mensagem at mesmo contra os adversrios mais poderosos. Este esquema conhecido
como o One-Time Pad. Sem perda de generalidade, o one-time pad ser descrito por mensagens binrias {0,1}.
Suponha que ambos agentes, remetente e destinatrio, possuem uma cpia de uma sequncia aleatria de 0s e 1s (a chave). O remetente, Alice, pode cifrar a mensagem combinando-a
com a chave atravs de um ou-exclusivo bit a bit. A operao de ou-exclusivo ser denotada
pelo smbolo , e caracterizada pelas seguintes relaes:
0 0=0

1=1

0=1

1=0.

Em termos gerais, quando dois termos da operao forem iguais, o resultado zero. Quanto dois termos da operao forem diferentes o resultado um. Ainda, observe que quaisquer
que sejam as mensagens a e b, sempre sempre verdade que:
a b b = a.
Voltando ao one-time pad, Alice cifra a mensagem M, usando uma chave aleatria K, gerando um texto cifrado C, da seguinte maneira:
C=M

Onde

a operao de Ou-Exclusivo, realizada bit a bit em cada um dos bits da mensagem.

Ao receber o texto cifrado C, que igual a M


K, Bob, o destinatrio, pode facilmente
recuperar a mensagem M, realizando a seguinte operao:
M= C K,
Isto sempre verdade porque, como j dissemos, se a

b = a. ento M = M

K.

Este processo ilustrado na Figura 13.

14

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 13. O one-time pad.

Observe que ambos, texto em claro e chave, possuem o mesmo tamanho. O one- time pad
completamente seguro quanto ao sigilo, caso o texto cifrado, formado pelo ou-exclusivo
da mensagem com a chave aleatria seja completamente aleatrio. Porm, para garantir este
completo sigilo, a chave deve ser usada somente uma nica vez, pois se a mesma chave for
reutilizada para cada nova cifragem o atacante poder o ou-exclusivo destes diferentes criptogramas, cancelando assim a chaves comum, e recuperar alguma informao acerca das mensagens em questo (sabendo, por exemplo, se as duas mensagens cifradas com a mesma chave
so idnticas ou nao). Na verdade, se as mensagens cifradas com a mesma chave possurem
um grau de redundncia elevado, factvel recuperar cada uma delas a partir do ou-exclusivo
das mesmas. Para realizar uma nova cifragem de uma mensagem, Alice e Bob devem gerar
uma nova chave completamente aleatria.
A restrio acima, e o fato da chave ter que ser do mesmo tamanho da mensagem, fazem do one-time pad um esquema de criptografia no-prtico. Sua utilizao fica restrita
situaes que exigem uma comunicao com o mais alto nvel de segurana. Por exemplo. O
one-time pad era usado na comunicao entre a Casa Branca, em Washington, e o Kremlin, em
Moscow, para cifrar as comunicaes do famoso telefone vermelho.
Shannon no somente provou que o one-time pad garantia sigilo perfeito, como tambm
provou que qualquer criptossistema com sigilo perfeito deve possuir chave do mesmo tamanho da mensagem a ser transmitida. Isso faz com que criptossistemas com sigilo incondicional
sejam muito custosos e de difcil uso.
Contudo, em um cenrio realista, comum considerar que os adversrios possuem restries computacionais quando atacando sistemas criptogrficos. Em outras palavras, pode-se
considerar a existncia de tarefas computacionais que so difceis de serem realizadas por um
adversrio. Essa idia usada no que chamado de criptossistemas com segurana computacional. Nesse tipo de criptossistema, a segurana baseada na dificuldade de realizar algumas
operaes computacionais.
No caso de criptografia simtrica as principais cifras com segurana computacional que
estudaremos so as cifras de bloco e as cifras de fluxo.

3.2 Cifras de Bloco


Cifras de bloco so os criptossistemas simtricos mais utilizados. Esse tipo de cifra age
cifrando blocos de texto em claro e transformando-os em texto cifrado. Dois importantes parmetros de uma cifra de bloco so o tamanho da chave e o tamanho dos blocos com o qual a
cifra opera. Duas importantes tcnicas utilizadas na construo de cifras simtricas so permutao e substituio. A seguir, encontram-se detalhes sobre cada uma das tcnicas.

15

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

3.2.1 Permutao
Em uma permutao, as letras de uma mensagem so simplesmente reordenadas, criando um anagrama. Nesse tipo de criptossistema, as regras de transposio compem a chave.
Pode-se ver facilmente que, para mensagens muito curtas, essa tcnica no segura, pois ao
reordenar, obtm-se um nmero pequeno de possibilidades de mensagens embaralhadas.
Contudo, com o aumento do nmero de caracteres, o nmero de possibilidades de mensagens
desorganizadas aumentam exponencialmente, tornando impossvel recuperar a mensagem
sem saber a chave. Um alto nvel de segurana atingido ao utilizar transposio aleatria,
porm para que seja eficiente, as regras de transposio devem seguir um sistema direto, o
que restringe muito o conjunto de possveis chaves.

Figura 14 - Exemplo de Permutao.

3.2.2 Substituio
Alm da transposio, outra tcnica muito utilizada para a construo de cifras a substituio. Em cifras de substituio, cada caracter da mensagem substitudo por um outro caracter do mesmo alfabeto. Caracteres podem ser substitudos individualmente ou em grupos.
Um exemplo trivial de substituio ordenar os caracteres de um alfabeto em pares, aleatoriamente, e substituir as letras de uma mensagem por seus pares determinados na ordenao
aleatria. Por exemplo, as letras da primeira linha podem ser substitudas pelas letras da segunda linha na Tabela 1.

U I

O P A

X W Y

Z X

V B

Texto em Claro

Texto Cifrado

Texto em Claro

Texto Cifrado

Tabela 1: Uma tabela de substituio.

Para um texto em claro com a mensagem Iloveyou, o texto cifrado seria osgctngx. O
primeiro documento que se teve notcia de usar cifras de substituio o famoso Guerras
da Glia, escrito por Caesar. O mais famoso sistema usado por Caesar foi a Cifra de Caesar.
Nesse sistema o remetente substitui cada letra do texto em claro por uma letra que est trs
posies frente no alfabeto. Por exemplo, a letra A substituda pela letra D, B pela letra E, e
assim por diante. Pode-se ver facilmente que este sistema fcil de ser atacado. Se o alfabeto
composto por 25 letras, o nmero de possveis chaves 25, e, portanto, quebrar este sistema por um simples mtodo de tentativa e erro plausvel, mesmo sem usar um computador.
Observa-se que uma condio necessria para um criptossistema ser seguro quanto ao sigilo,
que o mesmo possua um espao de chaves possveis grande. Porm, essa condio no
suficiente. Por exemplo, uma tcnica de substituio genrica baseada numa chave binria
com comprimento de 30 digitos possui um espao de chaves contendo 230 (dois elevado

16

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

trigsima potncia) possveis chaves, um nmero da ordem de 1 bilho. Mesmo usando que se
use uma chave grande, uma forma de se quebrar uma cifra de substituio usar um mtodo
conhecido como anlise de frequncia. Em anlise de frequncia, a frequncia em que aparece
cada caracter do texto cifrado computada e comparada com a frequncia em que aparecem
caracteres em um texto normal na lngua em que o texto em claro foi escrito. A proximidade
entre as frequncias dos caracteres do texto em claro e do texto cifrado indicam provveis
regras de ciframento e deciframento. Isto , mesmo que a chave criptogrfica seja grande, um
sistema completamente baseado em cifra de substituio bastante susceptvel a ataques.
Outro famoso exemplo de cifra de substituio o usado no sistema Enigma, o sistema de
ciframento usado por Nazistas Alemes durante a Segunda Guerra Mundial. A grande inovao do Enigma foi de implementar um algoritmo criptogrfico em uma mquina. Este era o fim
da era da criptografia de papel e lpis. O Enigma era um grande avano em muitos aspectos,
uma vez que tornou possvel o ciframento de grandes quantidades de documentos em um
espao muito curto de tempo. Alm disso, algoritmos mais complicados, e mais seguros, poderiam ser implementados. O Enigma era um mquina de ciframento formidvel e complexa,
ilustrada na Figura 15.

Figura 15 O sistema criptogrfico Enigma. Fonte: Wikipdia.

O Enigma foi lanado como produto comercial em 1923, e foi produzida por um alemo
chamado Arthur Scherbius com o objetivo de suprir a necessidade do comrcio de comunicaes seguras. Era um dispositivo de fcil manuseio, onde aps ajust-lo para uso, o operador
digitava o texto em claro da mensagem. Cada vez que uma tecla era apertada, uma letra em
um painel era acesa, e essa letra corresponderia letra do texto cifrado. O operador simplesmente anotava o texto cifrado, e assim continuava at o fim da mensagem.
Os alemes viam o Enigma como um sistema criptogrfico praticamente inquebrvel. E
eles estavam errados. A cifra usada na implementao do Enigma, e os procedimentos que
este utilizava para cifrar mensagem, continham vrias fragilidades, as quais foram exploradas
pelos oponentes dos alemes para investigar tticas e estratgias secretas do exrcito alemo.

17

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

3.2.3 Difuso/Confuso
Em seu trabalho, Shannon afirma que bons criptossistemas devem proporcionar confuso
e difuso. Confuso tenta garantir uma relao entre o texto em claro e o texto cifrado que seja
a mais complicada possvel. A difuso significa que a influncia de cada bit do texto em claro
no texto cifrado deve ser a mais distante possvel, e assim resultando em um texto cifrado com
propriedades estatsticas aparentemente no relacionadas ao texto em claro. Shannon tambm props que se combinasse cifras simples e talvez inseguras na construo de um sistema
criptogrfico, e assim obter criptossistemas mais fortes e potencialmente mais seguros, com
boas propriedades de confuso e difuso. Essas cifras construdas atravs da combinao de
cifras mais simples so conhecidas como cifras produto. Uma forma trivial de implementar tais
cifras seria cifrando uma mensagem mltiplas vezes, cada vez utilizando uma chave distinta. O
deciframento seria feito de forma similar, porm na ordem inversa.

3.2.4 Redes SP
O conceito de cifras produto utilizado no que conhecido como redes SP, onde S representa substituio e P permutao. Em uma rede SP, a cada passo a mensagem substituda e permutada. As substituies so executadas por algoritmos denominados S-boxes,
que consistem em tabelas de consulta que mapeiam n bits em m bits (onde muitas vezes n
e m so iguais). Geralmente, bits da chave so usados para determinar qual substituio ser
empregada ao texto em claro. Os algoritmos S-boxes aumentam a confuso do texto cifrado.
As permutaes so ferramentas muito utilizadas para misturar bits (aumentando a difuso).
Permutaes so operadores lineares, e, portanto, no so suficientes para garantir sigilo. Contudo, quando usados com bom algoritmos S-boxes no-lineares, permutaes so de grande
importncia para a segurana, uma vez que essas ferramentas propagam a no-linearidade
uniformemente por todos os bits. Estes conceitos esto ilustrados na Figura 16.

Figura 16 Uma cifra de Redes-SP.

Diversas cifras modernas possuem sua estrutura baseada em redes-SP.

18

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

3.2.5 Estrutura Bsica


A maioria das cifras de bloco utilizadas atualmente so baseadas em redes-SP. Em particular, a rede Feistel uma interessante rede-SP. A rede Feistel composta por diversos passos. A
cada passo, um bloco de dados utilizado como entrada e gerado um bloco de sada do mesmo tamanho. Os passos basicamente repetem as mesmas operaes. Inicialmente, a mensagem dividida ao meio. A segunda parte da mensagem usada como entrada de uma funo
no-linear F (onde geralmente depende da chave secreta usada no processo de ciframento).
A sada da funo no-linear ento somada (operao de ou-exclusivo, por se tratar de bits)
primeira metade da mensagem. A sada de operao de ou-exclusivo ser a segunda parte
do bloco de sada. A primeira parte do bloco de sada ser uma repetio da segunda parte do
bloco de entrada. Esse procedimento ilustrado na Figura 17.

Figura 17. Redes Feistel

Assim como a funo F usada para aumentar a confuso de um texto cifrado, o swapping
(inverso da primeira e segunda metades) utilizado para aumentar a difuso.

3.2.6 Modos de Uso


Existem vrias formas de cifrar utilizando cifras de bloco. Abaixo, uma lista dos modos
mais utilizados.
Electronic Codebook Book (ECB), onde a mensagem dividida em blocos independentes de tamanho igual ao utilizado pela cifra de bloco, e depois os blocos so todos
cifrados com uma nica chave, conforme ilustra a Figura 18.

Figura 18: Cifra de Bloco no Modo ECB.

19

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Cipher Block Chaining (CBC) (Veja Figura 19), onde a mensagem tambm divida em
blocos, porm nesse caso, na operao de ciframento h uma ligao entre os blocos
e um vetor de inicializao. Isto , um vetor de inicializao (uma cadeia de bits), com
tamanho igual ao tamanho utilizado na cifra de bloco cifrado. feita uma operao
de ou-exclusivo entre esse bloco cifrado e um bloco de texto em claro, e o resultado
cifrado mais uma vez resultando em um novo bloco de texto cifrado. Esse processo
se repete at que todos os blocos de texto em claro estejam cifrados.

Figura 19 Cifra de Bloco no modo CBC

Cipher FeedBack (CFB) (Veja figura 20), onde mensagem vista como uma cadeia de
bits, adicionada uma cadeia de bits gerada pela cifra de bloco a partir de um vetor
de inicializao. O ciframento procede da seguinte forma. O vetor de inicializao
cifrado e o resultado somado (operao de ou-exclusivo) ao primeiro de texto em
claro gerando o primeiro bloco de texto cifrado. O bloco de texto cifrado ento
cifrado novamente, e o resultado somado com o segundo bloco de texto em claro,
onde o resultado ser um feedback para o prximo estgio.

Figura 20 - Cifra de Bloco no modo CFB.

Output FeedBack (OFB), onde mensagem tratada como uma cadeia de bits, assim
como no modo CFB, porm no OFB o feedback independente da mensagem. Isto ,

20

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

um valor de inicializao cifrado e depois somado ao primeiro bloco de texto em


claro. Para gerar um segundo bloco de texto cifrado, o valor de inicializao cifrado
cifrado mais uma vez e o resultado somado ao segundo bloco de texto em claro.
Esse processo se repete at que todos os blocos de texto em claro estejam cifrados.
Cifras de Bloco no modo ECB so inseguras, uma vez que o ciframento de blocos idnticos
de texto em claro resultam em blocos idnticos de texto cifrado. Os modos CBC e CFB so mais
seguros, contudo, se existirem erros durante o processo de transmisso do texto cifrado, esses
erros se propagam ao longo do processo de deciframento, para todos os blocos subsequentes.

3.2.7 DES
Indiscutivelmente, a mais famosa cifra de bloco o DES, abreviao para Digital Encryption Standard. O DES foi o primeiro algoritmo proposto por uma agncia oficial de um governo,
e neste caso foi a NSA (National Security Agency) pertencente ao governo dos Estados Unidos.
O DES uma cifra de bloco com blocos de tamanho de 64 bits, e utiliza chaves de 56 bits.
O mesmo algoritmo usado com a mesma para converter o texto cifrado em texto claro. O DES
consiste de 16 passos de operaes que combinam os dados e a chave de maneira determinada usando as operaes fundamentais de permutao e substituio. A maior parte das cifras
de bloco usadas atualmente consistem em redes SP, e o DES no exceo.
De fato, o DES pode ser visto como uma rede Feistel. O objetivo embaralhar completamente os dados e a chave, de forma que qualquer bit do texto cifrado dependa de todos os
bits do texto em claro e de todos os bits da chave (Uma string de 56 bits, para o DES). O DES
suscetvel procura de chave por exausto atravs de computadores modernos e hardware
com objetivos especficos. O DES ainda forte o suficiente contra a maioria dos hackers e indivduos, porm quebrado facilmente atravs de hardware especial criado por organizaes
com acesso supercomputao, como governo, grandes organizaes criminosas ou grandes
corporaes.
Um variante do DES, o Triple-DES (tambm conhecido como 3DES) baseado em usar o
DES trs vezes com chaves diferentes. O Triple-DES mais forte que o DES padro e considerado uma cifra segura, porm, mais lento comparado a algumas cifras de bloco modernas.

3.2.8 AES
O Advanced Encryption Standard (AES) foi o nome escolhido para o substituto do DES. O
AES foi selecionado entre inmeros criptosistemas submetidos por candidatos a uma consulta
pblica efetuada pelo National Institute of Standards and Technology (NIST). A cifra escolhida, o
Rijndael, foi proposta pelos pesquisadores Belgas Rinjmen and Daemen.
O Rijndael uma cifra de com blocos de 128 bits, e trs possibilidades de tamanhos de
chaves, 128 bits, 192 bits e 256 bits (esses parmetros foram especificaes do NIST). Apesar
de ser baseado em uma arquitetura de rede SP, o Rijndael no baseado em redes Feistel. O
nmero de passos depende do tamanho da chave. So 10 passos se a chave de 128 bits, 12
se uma chave de 192 bits, e 14 se a chave for de 256 bits.
O Rijndael aparentemente resistente a todos os ataques conhecidos contra cifras de blocos. At o presente momento, no h nenhum ataque mais eficiente que busca de chave por
exausto para o Rijndael. A Figura 21 apresenta a estrutura bsica do Rijndael.

21

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 21 - Estrutura Bsica do Rijndael AES.

3.3 Cifras de Fluxo


3.3.1 O que so as Cifras de Fluxo?
Cifras de fluxo so algoritmos de ciframento simtrico que atuam bit a bit do texto em
claro. Essas cifras so semelhantes ao one-time pad, contudo, ao invs de fazer uma operao
de ou-exclusivo entre a mensagem e uma sequncia de bits perfeitamente aleatria , cifras de
fluxo operam atravs de ou-exclusivo a mensagem e uma sequncia de bits pseudo-aleatria,
que chamada de keystream, gerada a partir de uma pequena sequncia de bits perfeitamente aleatria. Uma sequncia pseudo-aleatria se for computacionalmente impraticvel
para um adversrio distinguir a sequncia pseudo-aleatria de uma sequncia perfeitamente
aleatria. O processo de deciframento procede operando, atravs de ou-exclusivo, o texto cifrado e o keystream. Cifras de bloco tambm podem ser usadas como cifras de fluxo quando
usados os modos CFB e OFB. Cifras de fluxo so geralmente categorizadas em sncronas e
auto-sincronizveis.
Cifras de fluxo sncronas: a gerao do keystream pode ser independente do texto
cifrado e do texto em claro.

Cifras de fluxo auto-sincronizveis: a gerao do keystream depende dos dados e sua


cifra. A Figura 22 ilustra um esquema genrico de cifra de fluxo.

22

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 22. Esquema de uma Cifra de Fluxo.

3.3.2 Vantagens
Essa abordagem apresenta vrias vantagens das cifras de fluxos, quando comparadas ao
one-time pad e s cifras de bloco:
Diferentemente do one-time pad, o tamanho da chave pode ser muito menor que o
tamanho da mensagem a ser cifrada.

A operao de ciframento muito rpida, e geralmente cifras de fluxo so muito mais


rpidas que as cifras de blocos.

No h propagao de erro, isto , se partes do texto cifrado forem corrompidas durante a transmisso, isto no afetar as partes no corrompidas.

Observe que as cifras de fluxo no so basaedas nos princpios de confuso e difuso


criados por Shannon.

3.3.3 Observaes sobre Segurana de Cifras de Fluxo


(Sigilo)
Existem algum pontos que devem ser ressaltados ao estudar as cifras de fluxo:
Se a chave for usada mais de uma vez, o sistema pode ser comprometido, uma vez
que o adversrio, se capturar mensagens, possuir dois textos cifrados que foram
cifrados com a mesma chave, e assim ele pode computar o ou-exclusivo dos dois
textos cifrados e obter como resultado o ou-exclusivo das duas mensagens em claro.
Utilizando-se mtodos estatsticos apropriados e assumindo um certo grau de redundncia presente nas mensagens em questo, pode-se separ-las facilmente.

Outro detalhe a ser observado que todas as cifras de fluxo so peridicas, isto , a
cifra repete a sada do keystream aps um tempo. Assim, ao cifrar mensagens muito
grandes, tem-se o mesmo efeito de usar a mesma chave duas vezes. O perodo da
repetio depende do desenho da cifra de fluxo.

23

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

3.3.4 Alguns Exemplos Reais


Aqui, so apresentados alguns exemplos de cifras de fluxo que foram propostas e postas em uso:
RC4: um algoritmo proposto por Ron Rivest (um dos criadores do RSA). O algoritmo
muito simples, e no h resultados de cripto-anlise eficiente conhecidos.

SEAL: Desenvolvido por Phil Rogaway e Don Coppersmith. Este algoritmo expande
uma chave aleatria de tamanho 160 e uma string n de 32 bits, em uma sequncia
pseudo aleatria de at 65kbytes.

3.4 Funes de Hash e Aplicaes


3.4.1 Definies
Funes de hash so componentes fundamentais de criptossistemas modernos. Elas possuem aplicaes em identificao de usurios, na garantia de autenticidade e integridade no
contexto de criptografia simtrica e assimtrica. Um funo de hash criptogrfica, tambm
conhecida como funo de hash one-way, mapeia uma entrada arbitrria em uma sada de
tamanho constante. Em termos gerais, uma funo de hash one-way de possuir as seguintes
propriedades:
Qualquer mensagem de tamanho arbitrrio pode ser uma entrada;

O tamanho da sada fixo, um valor constante;

relativamente fcil computar a sada a partir de uma dada entrada;

Para uma dada sada da funo, difcil encontrar a entrada correspondente, uma vez
que a funo one-way;

No deve ser factvel do ponto de vista computacional descobrir entradas distintas


que produzam sadas idnticas.

3.4.1 Aplicaes
Uma das principais aplicaes de funes de hash na garantia de integridade e autenticidade no contexto de criptossistemas simtricos.
Seja o seguinte cenrio: Alice e Bob compartilham uma chave simtrica denominada CHAVE e desejam garantir a integridade a autenticidade de uma mensagem a ser enviada de Alice
para Bob. Uma maneira de conseguir tal objetivo Alice enviar para Bob a mensagem m seguida por HASH(CHAVE, mensagem) onde HASH denota uma funo de hash criptogrfica e a
virgula denota a operao de concatenao. HASH(CHAVE, mensagem) denominado cdigo
de autenticao de mensagem (ou MAC do ingls message authentication code). Ao receber
m Bob computa por conta prpria HASH(CHAVE, mensagem) e verifica se o valor obtido
igual ao enviado por Alice. Caso seja diferente isso significa que algum alterou a mensagem
no decorrer da transmisso. A idia aqui, sumarizada nas Figuras 23 e 24, que somente gerar
um cdigo de autenticao de mensagens correto aquela parte que conhecer CHAVE.

24

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 23. Integridade e Autenticao (Parte 1).

Figura 24 Integridade e Autenticao (Parte 2).

Uma outra aplicao de grande relevncia prtica de funes de hash nos sistemas de
identificao de usurios do tipo login/password.
Uma maneira de implementar determinado sistema de identificao em um computador, por exemplo, seria armazenar no computador em questo todas as senhas de todos os

25

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

usurios e exigir que as senhas sejam digitadas pelos usurios no momento da identificao.
Assim o sistema poderia comparar a senha digitada com a senha armazenada. Uma obvia vulnerabilidade desse tipo de soluo a necessidade de armazenar todas as senhas. Isto possibilita que um adversrio roube o arquivo de senhas e comprometa totalmente a segurana do
sistema de identificao em questo. Com o uso de funes de hash podemos implementar
uma soluo mais segura. Ao invs de armazenar as senhas do usurio, armazenaramos o
hash das senhas. Um usurio que quer se identificar para o sistema deveria digitar a sua senha.
O sistema, por sua vez, calcularia o hash da senha e compararia o resultado com o o hash da
senha original que foi armazenado. Assim, caso caia nas mos de um adversrio, o arquivo de
hash de senhas seria intil. Esta soluo foi adotada nos sistemas operacionais UNIX, conforme
ilustra a Figura 25.

Figura 25 Uso de hashes para guarda de senhas em sistemas UNIX.

Outro uso das funes de hash ocorre nos chamados One-Time Passwords (OTP) tambm conhecidos como Hash de Lamport, em homenagem ao seu criador. Estes mecanismos
so muito empregados no contexto de acesso bancrio pela internet. Neste caso, o banco fornece ao usurio um dispositivo que contem uma senha secreta. Ao usar este dispositivo para
acessar o sistema bancrio pela primeira vez, o dispositivo fornecer ao usurio o resultado de
n (onde n um parmetro pr-acordado do sistema) aplicaes repetidas de uma funo de
hash criptogrfica usando como entrada a senha. Esta valor ser fornecido ao banco. O banco
por sua vez realizar as mesmas operaes que foram efetuadas pelo dispositivo (tambm
conhecido como token), ou seja calcular o resultado da aplicao repetida de uma funo de
hash sobre a senha pr-compartilhada, caso o resultado seja igual ao apresentado pelo usuio
ele ser identificado com sucesso e ter acesso ao sistema. Na segunda vez em que o usurio
for se autenticar, o mesmo procedimento ser realizado, porem, nao mais n vezes, mas n-1 vezes. A idia que computar as funes de hash em uma direo fcil, dado o conhecimento
da senha, porem inverter a funo de hash seria impraticvel para um adversrio. Este sistema
permite que n autenticaes sejam feitas. Depois de n autenticaes deve-se trocar a senha.

26

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 26 Uso de One-Time-Passwords.

A seguir sero apresentados conceitos bsicos de criptografia de chave pblica, assinaturas digitais, alguns conceitos matemticos necessrios, e modelos adversariais.

27

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

4 Criptografia de Chave Pblica


4.1 Motivao
No mundo das redes abertas, como o caso da internet, o sigilo de dados a serem transmitidos no pode ser garantido usando somente esquemas simtricos. Isto , para que seja
possvel a troca de dados sigilosos entre agentes que no se conheceram previamente os usurios no devem ser obrigados a compartilhar uma chave em comum como usada em esquemas de criptografia simtrica. Ocorre que se os usurios distantes no puderem, usando um
canal inseguro, estabelecer a chave de forma segura, algum adversrio pode de forma ilegal
obter a chave, e dessa forma, ter acesso mensagem. Uma das melhores solues prticas para
este problema utilizar criptografia de chave pblica, onde um remetente cifra uma mensagem (ou uma chave de sesso) usando apenas as informaes pblicas do destinatrio.

4.2 A Proposta de Diffie e Hellman


A idia da criptografia de chave pblica (usando algoritmos assimtricos) foi proposta por
Diffie e Hellman em um trabalho pioneiro em 1976, onde as chaves para cifrar e decifrar eram
conhecidas como chave pblica e chave privada, respectivamente. A idia revolucionria dos
autores foi estabelecer uma troca segura de mensagens entre o remetente e o destinatrio, sem
que os agentes nunca tivessem se encontrado para estabelecer uma chave secreta comum.
Criptografia de chave pblica pode ser modelada de seguinte forma: em uma situao
onde Bob tem a inteno de enviar uma mensagem Alice, primeiramente, Alice gera uma
chave pblica, que publicada em seu nome em um diretrio pblico acessvel a qualquer
usurio, e tambm gera uma chave privada, a qual funo matemtica da chave pblica, mas
est acessvel somente a ela. Para mandar uma mensagem secreta a Alice, Bob procura a chave
de Alice no diretrio pblico, Bob ento cifra a mensagem usando a chave pblica. O texto
cifrado resultante ser enviado a Alice atravs de um canal pblico, por exemplo, Internet.
Finalmente, ao receber o texto cifrado, Alice poder decifrar e recuperar a mensagem usando
sua chave secreta (ver Figura 27). O mecanismo de ciframento de chave pblica baseado na
dificuldade de resolver certos tipos de problemas matemticos, por exemplo, fatorao de
inteiros e logaritmo discreto, e isso garante que seria necessrio um tempo muito grande para
que se pudesse encontrar a chave privada a partir da chave pblica somente.

Figura 27. Criptossistema de Chaves Pblicas

28

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

At o momento, diversas tcnicas de criptografia de chave pblica foram desenvolvidas


de forma intensa, o que resultou em diferentes nveis de eficincia e segurana. Um dos progressos mais importantes o relacionado ao tpico de segurana demonstrvel, que a segurana onde pode ser rigorosamente provada a impossibilidade de um adversrio quebrar um
criptossistema, enquanto este adversrio no for capaz de resolver um problema matematicamente difcil.
Antes, aproximaes heursticas eram constantemente utilizadas para analisar a segurana de esquemas criptogrficos, isto , se ningum fosse capaz de quebrar o esquema aps
muitos anos, ento sua segurana era amplamente aceita. Contudo, essa abordagem est sendo substituda pela abordagem de segurana demonstrvel. Segurana demonstrvel vem
se tornando uma condio indispensvel para criptossistemas padro, e assim, a maioria dos
criptossistemas atuais atendem a essa condio. Posteriormente nessa seo, ser analisada a
segurana demonstrvel em detalhes.

4.3 Vantagens da Criptografia de Chave Pblica


Observa-se que uma das maiores vantagens da criptografia de chave pblica o estabelecimento de comunicao segura utilizando apenas dados publicamente acessveis. Ainda, o
nmero de chaves correspondente a cada parceiro de comunicao que um usurio precisa
administrar em esquemas convencionais reduzido de forma significante ao utilizar criptografia de chave pblica, onde um usurio precisa guardar apenas sua prpria chave privada.
primeira vista, parece que em todos os aspectos a criptografia de chave pblica superior criptografia de chave privada. Contudo, isso no sempre verdade. Umas das desvantagens da (atual) criptografia de chave pblica sua velocidade: esses tipos de criptossistemas
demanda muitos recursos computacionais e o tamanho da mensagem significantemente
limitado. A melhor soluo , portanto, uma combinao das vantagens da criptografia convencional e da criptografia de chave pblica. Isto , no prtico cifrar a mensagem inteira
usando apenas criptografia de chave pblica. mais sensato usar criptografia de chave pblica
para cifrar a chave de uma sesso de trabalho, de natureza temporria, a qual ento ser utilizada como uma chave simtrica comum entre o remetente e o destinatrio, enquanto eles
estabelecem a sesso de trabalho.

4.4 Assinaturas Digitais


Uma conseqncia do conceito de criptografia de chaves pblicas a idia de assinaturas digitais. Conforme explicado anteriormente, uma chave pblica e uma chave privada so
atribudas a cada agente no contexto de criptografia de chaves pblicas. A chave privada
usualmente empregada para decifrar mensagens cifradas com a chave pblica. No entanto, a
mesma pode ser usada para cifrar uma mensagem quando o objetivo em vista autenticidade e no confidencialidade. Quando uma determinada parte, por exemplo Alice, deseja provar
a outras partes que a originadora de uma determinada mensagem, ela cifra a mensagem
em questo com sua chave privada resultando em uma assinatura digital. A assinatura digital
pode ser verificada por qualquer parte que conhea a chave pblica de Alice. Por exemplo, se
Bob recebe a mensagem mais a respectiva assinatura de Alice, ele pode verificar se a assinatura
foi realmente criada por Alice ou no. Assumindo que Bob conhece a chave pblica de Alice,
ele pode aplicar a chave publica de Alice a assinatura recebida. A chave pblica cancela a operao feita pela sua respectiva chave privada. Logo, se a assinatura for realmente produzida
por Alice, o resultado desse processo de verificao deve ser a mensagem original.
Na maioria dos esquemas de assinatura digital, geralmente a transao de assinatura inicia gerando resumo da mensagem usando funo de hash one-way. Em vez de computar a assinatura da prpria mensagem, um resumo da mensagem usado para gerar assinaturas. Isso
porque muito mais fcil computar assinaturas a partir de resumo de mensagens comparadas
s mensagens originais, que podem ser muito longas.

29

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 28 Assinatura Digital: Idia Bsica.

4.5 Certificados Digitais e Autoridades Certificadoras


Uma hiptese implcita em toda a nossa argumentao acerca de criptografia de chaves
pblicas de que as chaves pblicas de seus respectivos usurios so conhecidas. Essa uma
hiptese que no se reflete na prtica. Dessa forma importante instalar mecanismos que
garantem a relao entre a chave pblica e a identidade de uma determinada pessoa. Uma
soluo prtica que tipicamente usada para este problema registrar uma terceira parte confivel, para ambos remetente e destinatrio, conhecida como autoridade certificadora (CA),
responsvel por determinar a relao entre a identidade de uma parte e a sua respectiva chave
pblica. A CA garante que o vnculo entre a identidade de um agente e certifica que a chave
pblica atribuda a ele no banco de dados pblico realmente a ele pertence. Uma vez que a Autoridade Certificadora verifica a correta associao entre a identidade de um usurio e sua chave pblica, a CA emite um certificado. Um certificado um relatrio computacional que atesta
a ligao entre uma chave pblica e um agente (indivduo ou uma entidade). Este relatrio
assinado pela autoridade certificadora. importante frisarmos que assume-se que a chave pblica da autoridade certificadora conhecida por todos os seus usurios. Se o destinatrio quiser verificar se vlida a associao entre o remetente e sua chave pblica, o destinatrio pode
verificar a assinatura digital da autoridade certificadora diretamente no certificado anexado.
A CA deve ser uma terceira parte imparcial, com uma reputao estabelecida, e que adota um
conjunto de medidas de segurana de elevadssimo grau, para que os certificados emitidos
possuam credibilidade confivel. A Figura 29 apresenta, de forma conceitual, um certificado
emitido por uma autoridade certificadora. Note que o certificado contm trs elementos:
Dados sobre a identidade do agente ou usurio, que pode ser um stio web, por
exemplo cegsic.unb.br.

A chave criptogrfica pblica, referente ao agente ou usurio.

A assinatura digital da autoridade certificadora, que atesta que a chave criptogrfica


pertence ao usurio indicado.

30

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 29. Viso abstrata de um certificado emitido por uma Autoridade Certificadora.

Um certificado contm o nome do remetente, sua chave pblica, um numero de srie,


data de validade, e assim por diante, e mais importante, contm a assinatura digital da Autoridade Certificadora, de forma que o destinatrio possa verificar que o certificado verdadeiro.
O conceito de assinatura digital discutido na seo 2.16. De forma concreta, o modelo de
certificado digital atualmente em uso da Web o X.509. O protocolo X 509 especifica que informaes devem constar no certificado digital, tais como cifras utilizadas, prazo de val;idade
do certificado, numero serial do mesmo, identificao da autoridade certificadora etc.
Em redes de grande escala, a certificao de chaves pblicas pode ser considerada muito
onerosa, e uma nica CA pode no ser suficiente para controlar a emisso de certificados e verificao de identidades para todos usurios. Considere, por exemplo, que 25% da populao
mundial tem acesso a internet, e medida que aumenta o comrcio eletrnico, bilhes de conversaes seguras precisam ser estabelecidas entre os stios web de comrcio eletrnico e seus
clientes. Apesar desse problema parecer se resolver com o uso de mltiplos CAs, difcil de administrar vrios CAs (confiveis) simultneamente. A principal soluo vigente construir um
sistema hierrquico de autoridades certificadoras. Tipicamente, redes hierrquicas de CAs so
construdas da seguinte forma: uma CA raiz serve para sublicenciar CAs pais, as quais emitem
certificados da mesma maneira para seus CAs filhos. Cada CA filho gera certificados para um
pequeno subgrupo de usurios, que podem servir como ns para a hierarquia completa. Essa
estrutura hierrquica tem estabelecido interrupo mnima para os servios de autenticao
de certificados.
No caso especfico do Brasil, o governo criou uma infra-estrutura de chaves pblicas
composta por autoridades certificadores organizadas de maneira hierrquica denominada
ICP-Brasil. A autoridade certificadora raiz mantida pelo Instituto Nacional de tecnologia da
Informao. A AC raiz assina os certificados de autoridades certificadoras de nveis inferiores. A
ICP-Brasil foi constituda pela medida provisria 2.200-2 de 24 de agosto de 2001.

4.6 Segurana na WEB: O protocolo TLS/SSL


Apresentaremos nesta seo como os conceitos at agora discutidos podem ser reunidos
para implementar uma tarefa relativamente complexa: a garantia de segurana nas comunicaes que ocorrem na World Wide Web (WWW).
No contexto das comunicaes WEB, usualmente, temos um cliente (aquele que inicia a
conversao) e um servidor (aquele que recebe a primeira mensagem da conversao). O protocolo TLS (Transport Layer Security) a verso atual do protocolo SSL (Secure Sockets Layer)
e foi criado com o objetivo de prover sigilo, integridade e autenticidade as comunicaes WEB.
O protocolo TLS consiste de duas fases. A primeira fase denominada fase de Handshake
enquanto a segunda fase conhecida como fase Record. Explicaremos brevemente estas duas
fases, com o auxlio das Figura 30, 31 e 32.

31

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 30 Handshake no protocolo TLS.

Na fase handshake o cliente (normalmente um navegador ou browser) envia, inicialmente


uma mensagem contendo um numero aleatrio Nc, uma lista como o nome do conjunto de
cifras simtricas e assimtricas por ele suportadas (denominadas de suite) bem como indica a
verso do protocolo suportada.
O servidor (por exemplo, um servidor de um website bancrio) responde enviando um
numero aleatrio Ns, o conjunto de cifras suportadas pelo servidor bem como o seu certificado
digital, contendo sua identidade S e sua chave pblica Pks. O certificado digital assinado por
uma autoridade certificadora vlida.
Ao receber o cetificado digital do servidor normalmente o cliente (navegador do usurio)
verificar a assinatura digital do mesmo para determinar a sua validade. As chaves pblicas das
principais autoridades certificadoras encontram-se disponveis nos principais navegadores do
mercado. Neste momento, o usurio recebe uma mensagem informando que a assinatura digital do certificado foi validade e se concorda em utilizar o certificado digital em questo. A
Figura 31 ilustra esta situao.

32

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 31 Sucesso na verificao de uma assinatura digital.

Caso o usurio concorde em utilizar o certificado em questo, o navegador (cliente) escolhera uma funo de hash, uma cifra simtrica e um criptossistema de chave pblica compatveis com as cifras suportadas tanto pelo navegador quanto pelo servidor.
Uma vez escolhidas essas cifras, o navegador cifrara uma chave de sesso simtrica
(Secret_C) com a chave pblica do servidor.
A chave de sesso estabelecida no Handshake ser utilizada na prxima fase do protocolo
TLS, denominada de Record.
Na fase de Record, quando uma mensagem deve ser trocada pelo cliente e servidor, os
seguintes passos so executados:
1. Inicialmente esta ser segmentada
2. A mensagem ento comprimida com algum algoritmo de compresso de dados;
3. Calcula-se um cdigo de compresso de mensagem para cada segmento baseado na
chave de sesso acordada na fase de Handshake.
4. Cifra-se a mansagem concatenada com o cdigo de autenticao de mensagem.
5. Adiciona-se um cabealho ao criptograma resultante do passo 4.

33

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Figura 32 Fase Record do TLS.

34

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

5 Conceitos Matemticos de Criptografia


de Chave Pblica
Esta seo faz uma breve reviso alguns conceitos matemticos relacionados criptografia de chave pblica, visando aprofundar a discusso da seo anterior. Suponha que Bob envie
uma mensagem a Alice utilizando criptografia de chave pblica. Seja m a mensagem, c seu
correspondente texto cifrado, skAlice a chave privada do destinatrio e pkAlice sua chave pblica.
Como c calculado usando m e pkAlice, c pode pode ser representado matematicamente como
c=fpkAlice(m), onde fpkAlice(x) uma funo de ciframento que depende de pkAlice. Note que, em
um sistema de criptografia de chave pblica prtico, um valor aleatrio tambm escolhido
por Bob, e esse valor tambm ser usado para calcular c. Uma condio necessria (porm no
suficiente) para que se tenha um criptossitema de chave pblica seguro, garantir que a chave
privada do destinatrio, fpkAlice(x), tenha a seguinte propriedade: deve ser significantemente difcil calcular x0 a partir de fpkAlice(x0) para todo x0. Pode-se ver como um processo fcil de se fazer,
porm muito difcil, ou at mesmo impossvel de se desfazer. Um tipo de funo que satisfaz
essa condio chamado de funes one-way ou de mo nica(Alice capaz de quebrar a caracterstica one-way usando sua chave privada skAlice, mais precisamente, fpkAlice(x) deve ser uma
funo trap-door one-way. ou funo de mo nica com alapo )
Todos os criptossitemas de chave pblica prticos so baseados em funes (trap-door) one-way. A seguir um exemplo de como as funes one-way so geralmente
usadas em criptografia de chave pblica.
Definimos a funo mdulo para inteiros a, b da seguinte maneira: sejam a,b,c, inteiros,
a mod b = c onde c o resto da diviso de a por b. Defina fg,p(x)=gxmod p. Uma funo f7,11(x)
expressa como f7,11(x)= 7xmod 11 e para x=1,2,,10 esta funo eficientemente calculada da
seguinte forma:
f7,11(1)=7 mod 11=7
f7,11(2)=f(1)*7 mod 11=5
f7,11(3)=f(2)*7 mod 11=2
f7,11(4)=f(2)*f(2) mod 11=3
f7,11(5)=f(2)*f(3) mod 11=10
f7,11(6)=f(3)*f(3) mod 11=4
f7,11(7)=f(3)*f(3)*7 mod 11=6
f7,11(8)=f(2)*f(3)*f(3) mod 11=9
f7,11(9)=f(3)*f(3)*f(3) mod 11=8
f7,11(10)=f(3)*f(3)*f(3)*7 mod 11=1
Contudo, temos o seguinte problema: para um y0, calcular x0 tal que y0= f7,11(x0). Pode-se
observar que muito mais difcil de obter a resposta neste caso. De fato, no se conhece nenhum mtodo eficiente para resolver este problema popularmente conhecido como o problema do logaritmo discreto. Imediatamente, pode-se calcular f7,11(4) para ser 3, porm no fcil
calcular x0 onde f7,11(x0)=3 (talvez para o problema acima, a maneira mais rpida seria produzir
uma tabela de possveis pares de x e f7,11(x), para todo x).
O problema do logaritmo discreto o problema de encontrar o inverso de fg,p(x), e este
problema tem um papel importante em diversos esquemas criptogrficos. A diferena no custo computacional para fg,p(x) e para seu inverso aumenta significantemente medida que os
parmetros aumentam. Para um cenrio de parmetros grandes, pode-se assumir que a funo fg,p(x) uma funo one-way. Em termos gerais, computar o inverso de fg,p(x) considerado
impraticvel quando um p de tamanho de 1024 bits (ou maior) selecionado (juntamente com
outros parmetros escolhidos apropriadamente). Por causa de sua natureza intratvel, a construo de funes one-way possvel, onde essas so o corao de esquemas de criptografia
de chave pblica.

35

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Assim como o problema do logaritmo discreto, o problema de fatorao de inteiros considerado um problema difcil: sejam p e q primos grandes, e n = p*q, ento, para um dado n, encontrar
p e q considerado uma tarefa difcil. Esse problema se torna extremamente difcil medida que
o tamanho dos nmeros aumentam. Criptossitemas RSA so baseados no problema de fatorao
de inteiros, o que implica em o RSA ser quebrado ao se resolver a fatorao de inteiros envolvida.

5.1 Acordo de Chaves Diffie-Hellman


O acordo de chaves Diffie-Hellman [3] foi a primeira soluo para o problema de distribuio de chaves, permitindo que duas partes, as quais nunca haviam se encontrado, acordassem
uma chave secreta usando somente discusses que podem ser publicamente vistas. Protocolos de acordo de chaves so diferentes de protocolos de ciframento de chave pblica, no sentido em que eles no so feitos para cifrar mensagem, mas sim usados para que partes possam
entrar em acordo a respeito de algum segredo a ser usado para cifrar mensagens.
At o momento foram desenvolvidos muitos algoritmos prticos e seguros que permitem
o acordo de chaves , e a tcnica do acordo de chaves Diffie-Hellman uma das propostas
clssicas e ainda utilizada em muitas aplicaes. A Figura 33 sumariza alguns elementos do
Protocolo Difie-Hellman.
Suponha que Alice e Bob queiram entrar em acordo a respeito de alguma chave secreta
usando o protocolo de acordo de chaves Diffie-Hellman. Primeiramente, Alice gera sua chave
secreta, escolhendo aleatoriamente um valor, xAlice entre 1 e p-2, onde p um nmero primo
grande. De forma semelhante, bob gera sua chave secreta, xBob. Ento, para algum parmetro
pblico apropriado g (isto , g um gerador de um grupo cclico de ordem p-1 pertencente a
{1,2,,p-1}), Alice e Bob calculam suas chaves pblicas, yAlice = fg,p(xAlice) e yBob= fg,p(xBob), respectivamente. Procedem trocando suas chaves pblicas entre si. Finalmente, Alice computa K= f
yBob,p(xAlice) e Bob computa K= f yAlice,p(xBob) . Como K=K, Alice e Bob podem usar essa chave como
uma chave secreta segura para cifrar suas comunicaes nessa sesso.
Atualmente o melhor mtodo conhecido para quebrar o protocolo de acordo de chaves Diffie-Hellman resolvendo o problema de logaritmo discreto relacionado, que acredita-se ser one-way.

Figura 33 Protocolo Diffie-Hellman.

36

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

5.2 Criptossistema RSA


O criptossistema Rivest-Shamir-Adleman (RSA) [4] um dos mtodos de ciframento de
chave pblica mais aceitos atualmente. O algoritmo RSA baseado na dificuldade de fatorar
nmeros inteiros muito grandes.
O RSA usa aritmtica modular e teoria de nmeros bsica para realizar alguns clculos.
O algoritmo procede da seguinte maneira: Alice escolhe dois primos grandes p e q e computa n=p*q. Posteriormente, Alice calcula l , que o mnimo mltiplo comum de p-1 e q-1.
Ento Alice seleciona aleatoriamente um inteiro e tal que 1 < e < l onde e e l so primos entre
si. Alice tambm calcula d tal que e*d = 1 mod l (esse procedimento pode ser eficientemente
realizado por tcnicas matemticas conhecidas). A chave pblica de Alice o par n e e, e sua
chave privada d.
Para cifrar uma mensagem m, onde m no pode ser maior que n-1, Bob (o remetente)
calcula o texto cifrado c da seguinte forma:
c = me mod n
E, Bob envia c a Alice.
Para decifrar c, Alice computa
cd mod n = m
A segurana do criptossistema RSA baseada na dificuldade do problema de fatorao de
inteiros (isto , acredita-se que extremamente difcil fatorar nmeros inteiros muitos grandes,
formados por 100 a 200 dgitos). Se um adversrio capaz de fatorar n em p e q e computar a
chave de deciframento d, seu ataque considerado bem sucedido. A descoberta de d considerado o pior cenrio, isto , o adversrio ser capaz de ler todas as mensagens cifradas com a
chave pblica e ainda falsificar assinaturas. Como nenhum outro mtodo para determinar d sem
fatorar n conhecido, um n grande o suficiente deve ser usado para garantir a segurana do RSA.
Atualmente, n de tamanho de 1024 bits so recomendados para uso em sistemas prticos.
A seguir, apresentamos uma noo mais forte de segurana para o RSA. A Implementao
livro texto do RSA, que a implementao direta do algoritmo, considerada insegura por
causa da seguinte observao: mesmo que seja impossvel de quebrar a caracterstica one-way
do RSA, ainda possvel obter certas informaes sobre a mensagem a partir do texto cifrado.
Como um exemplo extremo, considere o caso onde um adversrio saiba que Bob vai enviar
uma mensagem do tipo sim/no para Alice. O adversrio pode facilmente descobrir a mensagem
ao obter o texto cifrado que Bob enviou a Alice e comparando-o com o texto cifrado gerado a
partir do ciframento da palavra sim utilizando a chave pblica da Alice. Se esses dois textos cifrados forem idnticos, sem mesmo nunca ter decifrado nada, o adversrio saber que a mensagem
transmitida era sim, e se os texto cifrados forem diferentes, o adversrio saber que a mensagem
era no. Outra situao, um adversrio pode ter a permisso de gerar qualquer texto cifrado
(com exceo do texto cifrado alvo ) e pedir para Alice para decifrar e ainda ver o correspondente
texto em claro. Se isso for possvel, o adversrio pode obter o texto em claro correspondente ao
texto cifrado alvo, sem mesmo pedir a Alice para decifrar o texto cifrado alvo. Esse tipo de modelo de ataque conhecido como ataque de texto cifrado escolhido (chosen ciphertext attack, CCA).
Inicialmente, desenvolvedores no consideraram proteger seus sistemas contra ambientes
de fortes ataques. Contudo, no final dos anos 90, foi mostrado por Daniel Bleichenbacher do Bell
Labs, Lucent Technologies que um adversrio de fato capaz de efetuar tais tipos de ataques em
criptossistemas reais. Ele ainda encontrou uma falha em um tipo de protocolo baseado no RSA, que
o tipo de criptossistema mais utilizado no ciframento e deciframento de dados. Proteo contra
ataques como os ataques CCA atualmente possui grande importncia, e novos criptossistemas so
implementados de forma mais segura do que costumavam ser. Criptossistemas RSA, por exemplo,
atualmente so complementados com Optimal asymmetric encryption padding (OAEP) [5] que um
tipo de envelope digital, um conhecido mtodo para intensificar a segurana.

37

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

5.3 Criptossistema ElGamal


O criptossitema ElGamal [6] um criptossistema de chave pblica baseado no problema
do logaritmo discreto. O acordo de chaves Diffie-Hellman, tambm baseado na dificuldade
do problema do logaritmo discreto. Contudo, o acordo de chaves no um esquema de ciframento de chaves pblica. Por outro lado, o criptossistema de ElGamal cryptosystem uma
verso modificada do acordo de chaves Diffie-Hellman e tambm possui funcionalidade de
ciframento de chave pblica.
O algoritmo de ciframento do criptossistema de ElGamal tem sua natureza semelhante ao
acordo de chaves Diffie-Hellman. Considere que Bob envie uma mensagem a Alice, Primeiramente Alice escolhe aleatoriamente sua chave secreta x (no maior que p-2, onde p um primo
grande). Alice ento calcula, para um g apropriado, sua chave pblica y= fg,p(x) , e a publica.
Para cifrar uma mensagem m (mais uma vez, m no pode ser maior que p-1), Bob procura
pela chave pblica da Alice y= fg,p(x), e escolhe uma chave aleatria one-time, r (no maior que
p-2), e calcula o correspondente texto cifrado {c1, c1} da seguinte forma:
c1=gr mod p
c2=m*yr mod p
Bob envia {c1, c1} a Alice.
Para decifrar {c1, c1} Alice computa

c2 *(c1x ) 1 mod p = m
onde

(c1x ) 1 mod p definido como (c1x ) 1 * c1x mod p = 1

Diferentemente do criptossistema RSA que envolve duas chaves, uma pblica e uma secreta, o criptossistema ElGamal usa uma valor aleatrio como uma terceira chave pra cifrar. A
terceira chave funciona como uma chave descartvel, usada uma vez para cifrar somente uma
mensagem, e podem existir mltiplos textos cifrados para uma mesma mensagem (esse tipo
de criptossistema conhecido como ciframento probabilstico). Apesar de ser essencial para o
funcionamento do criptossistema ElGamal, isso no aparece em outros criptossistems de chave pblica e no apresenta um papel importante no conceito de criptografia de chave pblica.
Contudo, isso garante que qualquer observao de textos cifrados no oferece nenhuma informao relevante a respeito do correspondente texto em claro. Por exemplo, se os possveis
texto em claro forem somente dois: sim ou no, para um dado texto cifrado, um adversrio
pode tentar adivinhar qual o texto em claro comparando o texto cifrado com algum outro
texto texto cifrado gerado a partir do ciframento da mensagem sim. improvvel, porm, que
esses dois textos cifrados (mesmo que sejam produzidos a partir da mesma mensagem) sejam
idnticos. Dessa forma, observao de diferentes ciframentos da mesma mensagem no ajuda
o adversrio a descobrir qual a mensagem original. Contudo, o ElGamal como foi apresentado (sua verso livro textoou direta), assim como o RSA quando implementado de maneira
direta, no seguro contra ataques CCA. Mais especificamente, quando Bob envia uma mensagem cifrada {c1, c1} a Alice, uma adversrio pode decifrar ilegalmente da seguinte maneira:
o adversrio escolhe um valor aleatrio r, e pede ao orculo (este orculo est presente em
alguns modelos de segurana, como segurana de texto cifrado escolhido) para decifrar {c1,r*
c1}. O orculo enviar como resposta r*m, e ento o adversrio pode obter m por uma simples
diviso, r*m/r. Dessa forma, importante levar tal problema em considerao (considerando
se necessrio ou no alcanar tal nvel de segurana) ao implementar criptossistemas. Alguns
mtodos que podem intensificar a seguranao criptossistema ElGamal padro sero apresentados na prxima seo.

38

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

5.4 Segurana Necessria para Criptossistemas de Chave


Pblica Prticos
Como discutido anteriormente, os criptossistemas RSA e o ElGamal padro so vulnerveis a certos tipos de ataques, e uma implementao direta desses esquemas podem no ser
ideais em sistemas prticos. Assim, ao construir um sistema de comunicao prtico baseado
no criptossistema RSA ou ElGamal padro, so necessrias algumas modificaes nesses sistemas para garantir certos nveis de segurana.
Atualmente, deseja-se satisfazer o seguinte requisito de segurana ao implementar criptossistemas de chave pblica prticos: para qualquer texto cifrado, nenhum adversrio dever
obter nenhuma informao relevante sobre o texto em claro mesmo que lhe seja permitido pedir
ao destinatrio decifrar qualquer texto cifrado, excluindo o texto cifrado alvo [7,8]. Isso significa
que em criptossistemas prticos de chave pblica, melhor prevenir qualquer quebra parcial
at mesmo contra os adversrios mais poderosos.
Por muitos anos, tal noo to forte de segurana em criptografia de chave pblica foi
pensada ser um preocupao somente de ordem terica, e a maioria dos desenvolvedores na
poca no viram necessidade em eliminar e controlar ameaas e vulnerabilidades em nvel to
elevado de segurana ao construir criptossistemas. Contudo, no final dos anos 90, foi identificado por Daniel Bleichenbacher do Bell Labs que em situaces prticas, criptossistemas RSA
em PKCS4#1 ver 1.55 era de fato vulnervel contra ataques de texto cifrado escolhido [9]. Esse
incidente fez muitos desenvolvedores perceberem a necessidade de proteger seus sistemas
de tal ataque, e ao implementar, medidas de defesa devem ser adotadas impedindo o ataque.
O Optimal Asymmetric Encryption Padding (OAEP) um mtodo conhecido para codificar
mensagens e usado para incrementar criptossistemas como o RSA, e resulta em segurana
demonstrvel contra ataques de texto cifrado escolhido. O OAEP pode ser pensado como um
pr-processamento antes de se cifrar com o RSA, que converte o texto em claro em uma forma
que pode ser cifrada por um ciframento RSA. O criptossistema RSA, melhorado com OAEP, tem
sua segurana demonstrvel, isto , seguro no sentido que nenhum adversrio capaz de
nenhuma informao relevante acerca do texto em claro mesmo que lhe seja permitido ataques a texto cifrado escolhido. Atualmente o OAEP amplamente usado na implementao do
criptossistema RSA em PKCS#1ver2.1.
Para o criptossistems ElGamal, a aplicao direta do OAEP torna-se um pouco complicada,
porm outros mtodos para melhorar a segurana do criptossistema ElGamal foram propostos
[10,11]. Ao aplicar essas tcnicas, possvel atingir segurana demonstrvel contra o modelo
de ataques de texto cifrado escolhido (CCA) para o criptossistema de ElGamal.

5.5 Assinatura Digital


A assinatura digital a substituta eletrnica para a assinatura feita mo, e busca atingir
teoricamente a mesma funcionalidade da assinatura manual. um identificador criado por um
computador, ao invs de uma caneta. Semelhantemente aos sistemas de comunicao fsicos,
tambm importante ser possvel assinar uma mensagem de forma segura a fim de se proibir
substituio ou personificao por atacantes em sistemas de comunicao eletrnicos. Existem inmeros mtodos de assinaturas digital para uso prtico, e so utilizados em vrios tipos
de aplicaes, como por exemplo em comrcio eletrnico.
Como assinar digitalmente uma mensagem? Antes de Alice poder assinar digitalmente
uma mensagem eletrnica que pretende enviar a Bob, ela deve criar um par de chaves pblica/
privada (j discutido anteriormente).

4 PKCS refere-se a um conjunto de padres de criptografia criados e publicados pela empresa RSA
Security. Para mais detalhes ver, por exemplo, http://en.wikipedia.org/wiki/PKCS.
5 O padro PKCS#1ver1.5 uma verso do padro de criptografia RSA, que foi lanado em 1993, e
ganhou grande popularidade, sendo um dos protocolos mais utilizados.

39

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

A chave privada (de assinatura) mantida confidencial, e usada com o propsito de criar
assinaturas digitais. A chave pblica (de assinatura) de livre acesso, onde o destinatrio da mensagem assinada digitalmente pode acess-la. Alice ento seleciona uma mensagem m para ser
assinada. Sua assinatura digital SigAlice,m gerada como uma funo de sua chave privada e da
mensagem m. Ao receber a mensagem assinada digitalmente, m e SigAlice,m, Bob pode verificar
a validade da assinatura usando a chave pblica da Alice. A verificao da assinatura feita em
funo de m, SigAlice,m e da chave pblica de Alice. Adicionalmente, diferentemente de assinaturas
feias mo, que s!ao nicas a cada um que assina, a assinatura digital consistente para todos
os documentos assinados. Isto acontece porque a assinatura digital derivada a partir do documento a ser assinado. Qualquer mudana no documento redundar em um documento diferente. As abstraes bsicas no uso de assinatura digital so apresentadas na Figura 21.
Qualquer usurio capaz de verificar assinaturas digitais, pois nenhuma informao secreta exigida para a verificao. Quando um destinatrio obtm a chave pblica de algum
de quem ele recebeu uma mensagem assinada digitalmente, como ele poder ter certeza se,
de fato, a chave pertence a quem seria o remetente? A discusso feita at o momento possui
uma hiptese crtica, isto , que o par de chaves pblica/privada gerado pelo remetente, de
fato pertence ao remetente. Com o intuito de prevenir o ataque por substituio de uma chave
pblica, a relao entre a chave pblica (o par de chaves pblica/privada) e a pessoa identificada de ser garantida. A soluo para esse problema recrutar uma terceira parte confivel pelo
remetente e pelo destinatrio, chamada de autoridade certificadora (CA), j discutida anteriormente. A CA certifica que a chave pblica pertencente a um par de chaves pblica/privada
usado para criar assinaturas digitais realmente pertence a um dado usurio.

5.6 Conceitos Matemticos


Assim como em ciframentos de chave pblica, funes one-way possuem um papel importante nos mecanismos de assinatura digital. Esse fato pode ser imediatamente verificado
a partir da seguinte observao. Para uma dada mensagem m, a gerao de uma assinatura
pode ser vista como uma funo da chave de quem assina (Alice). Dessa forma, no possvel
recuperar a chave privada de Alice usando somente a assinatura e dados pblicos. O que significa que a funo de assinatura tambm uma funo one-way, e dessa forma, impossvel
construir esquemas de assinatura digital sem funes one-way. De forma mais precisa, foi provado que a partir de qualquer funo one-way pode-se construir um esquema de assinatura
digital. Isto , a existncia de funes one-way uma condio necessria e suficiente para a
existncia de um esquema de assinatura digital seguro. Existem dois principais tipos de funes one-way que so geralmente usados em sistemas de assinatura digital. Um dos tipos so
as funes one-way algbricas que resultam na maioria das assinaturas, e essas funes so
baseadas no problema do logaritmo discreto ou no problema de fatorao de inteiros.

5.7 Esquema de Assinatura RSA


O criptossistema RSA pode ser facilmente convertido para um esquema de assinatura digital. O esquema de assinatura digital RSA amplamente usado em diversos sistemas prticos,
como por exemplo PKCS#1.
Em um esquema de assinatura digital RSA, Alice escolhe dois nmeros primos grandes p
e q, computa n=p*q e calcula l , que o mnimo mltiplo comum de p-1 e q-1. Depois, Alice seleciona aleatoriamente um inteiro e tal que 1<e<l onde e e l so primos entre si. Alice tambm
computa d tal que e*d=1 mod l (esse procedimento pode ser realizado eficientemente por tcnicas matemticas conhecidas). A chave pblica de Alice o par n e e, e sua chave privada d.
Para assinar uma mensagem m, Alice calcula a assinatura s de seguinte forma:
s = H(m)d mod n
onde H uma funo de hash one-way apropriada. Alice ento publica m e s como sua
mensagem assinada.

40

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Ao receber m e s Bob aceita a assinatura se a seguinte equao for satisfeita:


se mod n = H(m)
Intuitivamente, com o teste acima, Bob pode confirmar que s equivalente a H(m)d mod
n uma vez que H(m)d*e=H(m) mod n, e esse fato implica que s foi realmente gerado pela Alice,
uma vez que ela a nica a saber o valor d. Come se pode ver, o uso de funes de hash one-way crucial nesse caso, sem as funes de hash one-way, o adversrio poderia facilmente
forjar a assinatura de Alice: seja m1, s1 e m2 s2 be assinaturas vlidas gerad por Alice. Usando
essas assinaturas, um adversrio poderia calcular s3 = s1*s2 que seria a assinatura vlida para
uma mensagem m3 = m1* m2. Deve estar claro agora o quo indispensvel o uso de funes
de hash one-way ao implementar assinaturas RSA para previnir tais ataques. Porm, isso no
implica que o esquema de assinatura RSA seguro se uma funo de hash one-way for usada
para gerar o resumo da mensagem.
De fato, em 1999, uma implementao prtica da assinatura RSA, que foi padronizada
como ISO 9796-2, foi mostrada vulnervel. Desde ento, segurana demonstrvel contra todos
os possveis ataques (e no apenas contra certos tipos de ataques) desejada at mesmo para
sistemas prticos, e diversos mtodos para a melhoria da segurana do esquema de assinatura
RSA tem sido propostos.

5.8 Algoritmo de Assinatura Digital (Digital Signature


Algorithm, DSA)
O Digital Signature Algorithm (DSA) um algoritmo de assinatura digital proposto pelo
U.S. National Institute of Standards and Technology (NIST), como um padro federal americano
(U.S. Federal Information Processing Standard, FIPS 186). A segurana do DSA baseada no problema do logaritmo discreto.
No DSA, Alice seleciona primos p e q tal que q divide (p-1), e os tamanhos de p e q so
1024 bits e 160 bits, respectivamente. Seja g um elemento apropriado de 1,2,,p. (mais especificamente, g um gerador de um grupo cclico de ordem q pertencente a {1,2,,p}). Ento
Alice escolhe aleatoriamente um inteiro x (um inteiro positivo menor que q-1) como sua chave
privada e computa y = gx mod p. A chave privada de Alice (p,q,g,y). Ao assinar m, Alice primeiro
calcula H(m) onde H um algoritmo de hash seguro Secure Hash Algorithm (SHA-1) que uma
funo de hash one-way. Ento, Alice seleciona aleatoriamente um inteiro secreto k (um inteiro
positivo menor que q-1), e computa
r = (gk mod p) mod q
s = k-1{H(m)+ar
onde k-1 um inteiro tal que k-1* k = 1 mod q. O par (r,s) ser publicado como a assinatura
de Alice para m.
Bob recebe (m,r,s), e aceita se a seguinte equao for satisfeita:

r = gs

*H ( m )

y r*s mod p mod q

onde s-1 um inteiro tal que s-1*s = 1 mod q

5.9 Segurana Necessria para Esquemas de Assinatura


Digital Prticos
Como descrito at o momento, existem muitos problemas de segurana que devem ser
considerados para estabelecer sistemas de assinaturas digitais seguros e prticos. Foi mostrado que uma implementao direta da assinatura RSA vulnervel a certos tipos de ataques,

41

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

e ainda, no se sabe se o DSA atende a todos os requisitos de segurana de um esquema de


assinatura digital. Lembrando que, atualmente, para que um sistema de assinatura digital seja
usado em um sistema prtico, deseja-se que esse satisfaa o seguinte requisito de segurana:
para qualquer mensagem, nenhum adversrio dever ser capaz de falsificar uma assinatura vlida que um assinante vlido no tenha gerado, mesmo que o adversrio esteja permitido a pedir
ao assinante assinar qualquer mensagem que o adversrio escolha [12]. O que significa que um
sistema de assinaturas prtico deve prevenir qualquer existncia de falsificao, at mesmo
contra os adversrios mais poderosos.
De forma semelhante discusso anterior relacionada segurana de esquemas de ciframento de chave pblica, pode ser dito praticamente o mesmo para esquemas de assinatura digital. A natureza do mecanismo da ameaa contra assinaturas digitais era muito pouco entendida, e a maioria dos desenvolvedores avaliavam seus produtos para os recentes ataques de
segurana descobertos, e no consideravam a possibilidade de tomar medidas efetivas para
impedir tais ataques. Contudo, no final dos anos 90, foi mostrado que uma implementao do
esquema de assinatura RSA, que foi padronizada como ISO 9796-2, era vulnervel a ataques de
mensagem escolhida [13].
Existem dois principais mtodos para proteger e melhorar a assinatura RSA e estabelecer segurana demonstrvel para o modelo de segurana acima. Um conhecido como esquema Full Domain
Hash (FDH)[14], e o outro conhecido como esquema probabilstico de assinaturas (PSS)[14].
Como foi provado que a assinatura RSA era vulnervel a certos ataques se o resumo de
mensagem fosse pequeno o suficiente que pudesse ser fatorado, possveis medidas de precauo podem ser tomadas, como por exemplo aumentar o tamanho do valor do hash para ser o
maior possvel. O esquema de assinatura RSA o qual a mensagem resumida para o domnio
completo da funo chamada de esquema Full Domain Hash (FDH). A segurana da assinatura RSA com FDH pode ser provada deixando o tamanho da sada da funo de hash one-way
ser de mesmo tamanho do mdulo utilizado no RSA, porm, uma construo segura de uma
funo de hash one-way de tal tamanho ainda no foi estudada em detalhes, e consequentemente, o FDH no frequentemente utilizado em sistemas reais.
O PSS um mtodo alternativo que efetivamente acrescenta aleatoriedade a esquemas
de assinatura RSA. Para um esquema de assinatura probabilstico, haver duas assinaturas diferentes para mesma mensagem. uma tcnica muito semelhante ao OAEP para esquemas de
ciframento de chave pblica, no sentido que o PSS tambm pr-processa a mensagem antes
de assinar. O esquema de assinatura RSA com PSS demonstravelmente seguro, e geralmente usado para a implementao do criptosistema RSA em sistemas de comunicao prticos,
como por exemplo PKCS#1ver2.1.
Para o DSA, no existe nenhum mtodo de ataque geral que possa comprometer a no-falsificao existente, mesmo que um adversrio seja capaz de pedir ao assinante para assinar
qualquer mensagem que deseje. Sua segurana ainda no foi provada, porm ela resistiu ao
teste do tempo e atualmente uma tcnica usada e amplamente aceita.

42

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

6 Concluses
Este texto apresentou uma introduo a criptografia e infra-estrutura de chaves pblicas,
um conjunto de tcnicas essenciais que so empregadas para garantia de diversas propriedades de segurana necessrias em sistemas de informao, sobretudo sigilo e integridade.

43

>> CEGSIC 2009-2011 >> Criptografia e infraestrutura de chaves pblicas

Referncias
[1] Shannon, C. Communication theory of secrecy systems, Bell System Technical Journal, Vol 28, 1949, pp.656715
[2] Shannon, C. E., ``A mathematical theory of communication, Bell System Technical
Journal, vol. 27, pp. 379-423 and 623-656, 1948.
[3] Diffie, W. and M.E. Hellmans, New directions in cryptography, IEEE transactions on
Information Theory, vol 22, 1976, pp.644-654.
[4] Rivest R., A. Shamir and L. Adleman, ``A method for obtaining digital signature and
public-key cryptosystems, Communication of the ACM, vol.21, no.2, 1978, pp.120126.
[5] Bellare, M. and P. Rogaway, ``Optimal asymmetric encryption, Advances in Cryptology--EUROCRYPT94, Lecture Notes in Computer Science 950, Springer-Verlag, pp.92111, 1994.
[6] ElGamal, T. ``A public key cryptosystem and a signature scheme based on discrete
logarithms, IEEE Trans. on Inform. Theory, IT-31,4,1985, pp.469-472.
[7] Rackoff C. and D.R. Simon, ``Non-interactive zero-knowledge proof of knowledge
and chosen ciphertext attack, Advances in Cryptology--CRYPTO91, Lecture Notes
in Computer Science 576, Springer-Verlag, pp.433-444, 1992.
[8] Bellare M., A. Desai, D. Pointcheval and P. Rogaway, ``Relations among notions of
security for public-key encryption schemes, Advances in Cryptology--CRYPTO98,
Lecture Notes in Computer Science 1462, Springer-Verlag, pp.26-45, 1998.
[9] Bleichenbacher D., ``Chosen ciphertext attacks against protocols based on the RSA
encryption standard PKCS \#1, Advances in Cryptology--CRYPTO98, Lecture Notes
in Computer Science 1462, Springer-Verlag, pp.1-12, 1998.
[10] Cramer R. and V. Shoup, ``A practical public key cryptosystem provably secure
against adaptive chosen ciphertext attack, Advances in Cryptology--CRYPTO98,
Lecture Notes in Computer Science 1462, Springer-Verlag, pp.13-25, 1998.
[11] Fujisaki E. and T. Okamoto, ``Secure integration of asymmetric and symmetric encryption schemes, Advances in Cryptology--CRYPTO99, Lecture Notes in Computer
Science 1666, Springer-Verlag, pp.537-554, 1999.
[12] Goldwasser S., S. Micali and R. Rivest, ``A digital signature scheme secure against
chosen-message attacks, SIAM J. on Computing 17,1988, pp.281--308.
[13] Coron J.S., D. Naccache, J. Stern, ``On the security of RSA padding, Advances in
Cryptology--CRYPTO99, Lecture Notes in Computer Science 1666, Springer-Verlag,
pp.1-18, 1999.
[14] Bellare M. and P. Rogaway, ``The exact security of digital signatures - how to sign
with RSA and Rabin, Advances in Cryptology--EUROCRYPT96, Lecture Notes in
Computer Science 1070, Springer-Verlag, pp.399-416, 1996.

44

Vous aimerez peut-être aussi