Académique Documents
Professionnel Documents
Culture Documents
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
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/
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
[43] 6 Concluses
[44] Referncias
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.
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.
2 Conceitos Bsicos
A seguir, sero estabelecidos conceitos bsicos e terminologia relacionados criptografia.
Uma chave criptogrfica uma sequencia de caracteres (bits, nmeros, letras etc).
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.
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.
Ek (m)
e o deciframento do texto cifrado acima com uma chave Kb por um algoritmo de deciframento D( ) por:
m = Dkb ( Ek (m))
10
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.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.
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
12
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
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.
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
b = a. ento M = M
K.
14
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.
15
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.
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
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
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.
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
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.
18
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.
19
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.
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.
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
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
22
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.
No h propagao de erro, isto , se partes do texto cifrado forem corrompidas durante a transmisso, isto no afetar as partes no corrompidas.
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
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.
Para uma dada sada da funo, difcil encontrar a entrada correspondente, uma vez
que a funo one-way;
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
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
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.
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
A seguir sero apresentados conceitos bsicos de criptografia de chave pblica, assinaturas digitais, alguns conceitos matemticos necessrios, e modelos adversariais.
27
28
29
30
Figura 29. Viso abstrata de um certificado emitido por uma Autoridade Certificadora.
31
32
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
34
35
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.
36
37
c2 *(c1x ) 1 mod p = m
onde
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
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
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.
40
r = gs
*H ( m )
41
42
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
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