3.3 Outros Tipos de Emparelhamentos
3.3.1 Protocolos Criptogr´ aficos Baseados em Emparelhamentos
Esta se¸c˜ao destina-se a apresentar dois protocolos criptogr´aficos baseados em emparelhamen- tos bilineares: o Acordo Triplo de Chaves de Diffie-Hellman e a Criptografia Baseada em Iden- tidades.
Acordo Triplo de Chaves de Diffie-Hellman
Em 1976, Whitfield Diffie e Martin Hellman desenvolveram uma t´ecnica de compartilhamento de chaves entre dois usu´arios de forma segura utilizando um canal inseguro. Esta t´ecnica ficou conhecida como protocolo de troca de chaves de Diffie-Hellman (Diffie and Hellman; 1976). Este acordo ´e baseado em propriedades da aritm´etica modular sobre corpos finitos ou aritm´etica so- bre curvas el´ıpticas, n˜ao utilizando em momento algum cifragem e decifragem de dados para compartilhar esta chave.
O Protocolo de troca de chaves de Diffie-Hellman sobre curvas el´ıpticas funciona da seguinte forma: suponhamos que Alice deseja compartilhar uma chave secreta com Bob, para que possam se comunicar com total sigilo utilizando um canal inseguro.
• Alice e Bob entram em acordo na escolha de trˆes parˆametros p´ublicos: um corpo finito Fp, uma curva el´ıptica E sobre Fp e um ponto P ∈ E(Fp).
• Alice escolhe um parˆametro secreto a, calcula QA= a · P e envia QA para Bob.
• Bob escolhe um parˆametro secreto b, calcula QB= b · P e envia QB para Alice.
• Alice calcula SegredoAlice = a · QB.
• Bob calcula SegredoBob= b · QA.
Deve ser observado que, SegredoAlice = a·QB = a·(b·QA) = b·(a·P ) = b·QA= SegredoBob.
Previamente, Alice e Bob devem combinar em sigilo configura¸c˜oes de uma Fun¸c˜ao de Deriva¸c˜ao de Chave (KDF), que receba como parˆametros de entrada o segredo principal de cada um (SegredoAlice e SegredoBob) e retorne a mesma chave k tanto para Alice como para Bob.
J´a tendo a KDF configurada, basta Alice e Bob utilizarem SegredoAlice e SegredoBob, res-
pectivamente, como entrada da KDF para que ambos possam obter a mesma chave secreta k = KDF (SegredoAlice) = KDF (SegredoBob).
Portanto, Alice e Bob possuem agora uma mesma chave secreta que pode ser utilizada em um algoritmo sim´etrico para garantir o sigilo de um canal inseguro.
A vers˜ao do protocolo de troca de chaves de Diffie-Hellman apresentada anteriormente est´a definida sobre curvas el´ıpticas. Este protocolo tamb´em pode ser definido sobre um corpo finito Fp, quase que de forma idˆentica ao caso anterior. Para mais detalhes consultar referˆencia
(Hoffstein et al.; 2008) (pag. 65).
Considere agora o seguinte cen´ario: Alice, Bob e Carlos desejam compartilhar uma chave secreta utilizando um meio de comunica¸c˜oes inseguro.
Observando problemas similares a este, em 2000 Antoine Joux desenvolveu a primeira apli- ca¸c˜ao de emparelhamentos bilineares em criptografia (Joux; 2000). Esta utilizou emparelhamen- tos para prover seguran¸ca e n˜ao para mostrar que o problema do logaritmo discreto em certos conjuntos de curvas el´ıpticas poderia ser resolvido com esfor¸co reduzido. Neste trabalho, Joux aplicou as propriedades de emparelhamentos bilineares no protocolo de troca de chaves de Diffie- Hellman, extraindo como resultado uma t´ecnica que proporciona um acordo de chaves secretas entre trˆes usu´arios com uma ´unica execu¸c˜ao do protocolo de troca de chaves de Diffie-Hellman. Esta t´ecnica foi denominada Acordo Triplo de Chaves de Diffie-Hellman e ´e ilustrada na Fig. 3.2. Previamente, Alice, Bob e Carlos devem configurar uma Fun¸c˜ao de Deriva¸c˜ao de Chaves (KDF), assim como no acordo de chaves de Diffie-Hellman apresentado anteriormente. De forma similar ao acordo de chaves original s˜ao combinados alguns parˆametros: um corpo finito Fp, uma
curva el´ıptica E sobre Fp e um ponto P ∈ E(Fp). Cada participante do protocolo escolhe secre-
tamente um inteiro mi < p e diferente da ordem de P (pois caso contr´ario ser´a obtido o ponto
no infinito) calcula miP e envia aos outros dois participantes. Ap´os cada participante receber
os pontos miP , eles calculam o emparelhamento ki = e(mjP, mkP )mi. Utilizando a propriedade
de bilinearidade dos emparelhamentos bilineares ´e simples verificar que kA = kB = kC. Agora,
Alice, Bob e Carlos possuem um mesmo segredo em comum e, utilizando a fun¸c˜ao KDF, geram uma chave secreta k comum entre os trˆes.
Criptografia Baseada em Identidade
O conceito de Criptografia Baseada em Identidades (IBC) foi proposto inicialmente por Shamir em 1985 (Shamir; 1985). Neste modelo, uma chave p´ublica de um usu´ario n˜ao ´e uma sequˆencia longa de bits derivada de c´alculos matem´aticos, como nos algoritmos de chave p´ublica tradicionais. Em IBC a chave p´ublica ´e uma sequˆencia de bits escolhida de maneira a definir o usu´ario univocamente, podendo ser: seu nome, CPF, RG, n´umero do telefone, re-
Figura 3.2: Acordo triplo de chaves de Diffie-Hellman
gistro acadˆemico ou todas estas informa¸c˜oes concatenadas, entre outras. A ideia fundamental de Shamir para a IBC era desenvolver um esquema criptogr´afico de chave p´ublica, de forma que n˜ao fossem necess´arios certificados para obten¸c˜ao da chave p´ublica de um usu´ario. Para isso, Shamir chamou a aten¸c˜ao para a necessidade de haver um Gerador de Chaves Privadas, uma autoridade de total confian¸ca no sistema que seria encarregada de gerar e distribuir as chaves privadas de todos os usu´arios em seu dom´ınio. No modelo proposto por Shamir, para um usu´ario A enviar uma mensagem cifrada a um usu´ario B, basta que A conhe¸ca a identidade de B. O usu´ario B pode receber uma mensagem cifrada sem mesmo possuir uma chave privada. Neste caso, B consulta o Gerador de Chaves Privadas, comprova sua identidade e obt´em sua chave privada, podendo assim decifrar a mensagem recebida de A (Fig. 3.3). Shamir destaca ainda que este esquema ´e ideal para prover seguran¸ca em servi¸cos de e-mail, j´a que, se um usu´ario conhece o nome e endere¸co de outro usu´ario com o qual deseja se comunicar, isto pode ser feito de forma que somente o destinat´ario da mensagem possa lˆe-la e sem a necessidade de troca de chaves.
Privadas possuir a cust´odia destas chaves. Normalmente, esta caracter´ıstica n˜ao ´e desejada, mas em certos casos ela pode ser requerida como, por exemplo, em uma empresa que deseja ter controle total sobre as comunica¸c˜oes seguras entre seus colaboradores, mesmo ap´os a demiss˜ao de algum deles.
Outras propostas de Criptografia Baseada em Identidades foram feitas de forma a evitar o problema da cust´odia de chaves, por´em em algumas delas ´e imposs´ıvel se obter a chave p´ublica de um usu´ario diretamente a partir de sua identidade (Sattam S. Al-Riyami; 2003) (Tsz Hon Yuen; 2009).
Em 2001, Boneh e Franklin implementaram o primeiro esquema criptogr´afico funcional baseado em identidade. Este utilizou emparelhamentos bilineares, mais especificamente o em- parelhamento de Weil, para mapear identidades de usu´arios em pontos dos grupos el´ıpticos em quest˜ao, mantendo a ideia de Shamir do Gerador de Chaves Privadas (Boneh and Franklin; 2001).
Figura 3.3: Criptografia Baseada em Identidade