Está en la página 1de 36

Captulo

4
Introduo Composibilidade Universal
Joo J. C. Gondim Departamento de Cincia da Computao, Universidade de Braslia

Resumo A composibilidade universal - universal composability (UC) um framework geral que se prope representar protocolos criptogrcos e analisar sua segurana. Neste framework, a segurana dos protocolos preservada sob uma operao geral de composio com outros protocolos, permitindo o design modular e a anlise de protocolos complexos a partir de blocos mais simples de forma unicada e sistemtica. Alm disso, neste framework a segurana dos protocolos mantida sob uma operao geral de composio. Esta operao denida de tal forma que, satisfazendo as condies desta operao, possvel construir protocolos que no s so seguros mas tambm tem sua segurana preservada quando compostos entre si, mesmo na presena de um nmero qualquer de cpias concorrentes. A proposta apresentar no minicurso os conceitos bsicos da segurana UC e sua aplicao na concepo e anlise de um protocolo criptogrco. Apesar de j fazer dez anos da apresentao do conceito, contando com vrios resultados relevantes, ele ainda pouco conhecido. Inicialmente, feita toda a modelagem de como vem a ser o modelo de execuo dos protocolos. Apesar da motivao inicial ter sido protocolos relacionados a primitivas criptogrcas, a abordagem se aplica a protocolos de computao segura multipartes, como indicado em trabalhos recentes. O modelo de computao ser construdo a partir da noo de sistemas de mquinas de Turing interativas. Na sequncia apresentado o framework, comeando com a denio de dois modelos especcos que diferem no modelo de comunicao entre as partes e do adversrio. Pode-se ento apresentar o Teorema da Composio. Com o Teorema da Composio, duas aplicaes so abordadas, no contexto dos protocolos de comprometimento de bit. Primeiro mostrado um exemplo de como o framework pode ser usado para analisar os requisitos para a construo segura de protocolos de comprometimento de bit. Especicamente, demonstrado que no h implementao segura sem que se recorra a hiptese de setup. Na sequncia, se constri um protocolo de comprometimento de bit e se estabelece a segurana UC do mesmo.

4.1. Introduo
A demonstrao rigorosa da segurana de um protocolo um requisito indispensvel no projeto de um protocolo criptogrco. Isto requer pelo menos dois passos de formalizao. O primeiro envolve a denio do modelo matemtico apropriado para representar o protocolo, enquanto o outro consiste em formular nesse modelo uma denio de segurana que capture os requisitos para a tarefa que o protocolo pretende realizar seguramente. Com a denio de segurana, pode-se ento estabelecer que o protocolo seguro demonstrando que sua representao matemtica satisfaz a denio de segurana no modelo adotado. Entretanto, a formulao de um modelo matemtico apropriado para representao dos protocolos e a formulao de uma denio de segurana adequada no modelo escolhido so tarefas complexas. O modelo deve ser capaz de capaz de representar todos os comportamentos adversariais realistas e a denio deve garantir que a noo intuitiva de segurana foi capturada corretamente com respeito a qualquer comportamento adversarial que seja considerado. Outro aspecto importante no contexto da segurana de um protocolo criptogrco a sua robustez com relao ao ambiente de execuo. O comportamento de um protocolo criptogrco sofre grande inuncia de seu ambiente de execuo, em particular com relao aos outros protocolos que estejam executando no mesmo sistema ou rede. Consequentemente, um critrio que precisa ser incorporado denio de segurana a garantia de robustez ao ambiente de execuo, que pode ser colocada de forma mais geral como uma forma de modularidade. Isto , a necessidade de se garantir a segurana quando o protocolo usado como um componente dentro de um sistema maior. Tradicionalmente, primitivas criptogrcas so desenvolvidas inicialmente como tarefas isoladas, sem levar em considerao ambientes de execuo mais complexos. esta abordagem tem vantagens como permitir denies mais concisas e intuitivas alm de simplicar a anlise dos protocolos. Entretanto, em muitos casos estas denies iniciais se mostram insucientes quando as condies do ambiente so renadas aumentando em complexidade onde os protocolos so empregados em situaes mais gerais. Alguns exemplos desse tipo de situao que podem ser citados, entre outros, so: cifrao: a noo bsica de segurana semntica [Goldwasser and Micali 1984] foi depois renada de vrias formas de segurana ataques CCA (como [Naor and Yung 1990], [Dolev et al. 2000], [Rackoff and Simon 1992], [Bellare et al. 1998b]) e segurana adaptativa (como por exemplo [Beaver and Haber 1992], [Canetti et al. 1996]), visando satisfazer situaes mais gerais; comprometimento: onde as noes iniciais foram estendidas com conceitos como no maleabilidade ( [Dolev et al. 2000], [Di Crescenzo et al. 1998], [Fischlin and Fischlin 2000]) e equivocao ([Brassard et al. 1988], [Beaver 1996]); zero knowledge: onde se demonstrou que as noes iniciais ( [Goldwasser et al. 1989], [Goldreich and Oren 1994]) no eram fechadas sob

composio paralela e concorrente, levando a necessidade de novos conceitos e construo ([Goldreich and Krawczyk 1990], [Dwork et al. 1998], [Canetti et al. 1999], [Barak et al. 2001]); troca de chaves: onde o conceito original no era suciente para garantir sesses seguras (como em [Bellare and Rogaway 1994], [Bellare et al. 1998a], [Shoup 1999], [Canetti and Krawczyk 2001]); oblivious transfer: como [Garay and MacKenzie 2000]. em [Rabin 1981], [Even et al. 1985],

Uma forma de capturar as questes de segurana que surgem em ambientes de execuo especco ou em uma dada aplicao representar o ambiente ou a aplicao diretamente dentro de uma extenso da denio de segurana. Essa abordagem a adotada, por exemplo, em casos de troca de chaves [Bellare and Rogaway 1994], [Canetti and Krawczyk 2001], comprometimento no malevel [Dolev et al. 2000], e em zero-knowledge concorrente [Dwork et al. 1998], onde a denio modela explicitamente vrias instncias do protocolo em questo que so coordenadas pelo adversrio. Essa abordagem tem a desvantagem de resultar em denies cada vez mais complexas e inerentemente limitado em escopo pois trata apenas de ambientes e questes especcas. Uma abordagem alternativa, adotada no framework UC tratar os protocolos como stand alone mas garantir que sua composio segura. Isto , as denies de segurana se aplicam na inspeo de uma instncia isolada do protocolo. Em situaes complexas, onde uma instncia de um protocolo pode ser executada concorrentemente com outras instncias, com entradas arbitrrias e possivelmente com controle do adversrio, a segurana garantida se preservada sob uma operao geral de composio de protocolos. Esta abordagem simplica consideravelmente o processo da formulao de uma denio de segurana e da anlise do protocolo. Alm disso, a segurana do protocolo garantida em ambientes arbitrrios, mesmo os que no tenham sido explicitamente considerados. A abordagem descrita acima, juntamente com sua operao de composio, tem como requisito bsico a formulao de um framework geral em que se possa representar os protocolos criptogrcos e seus requisitos de segurana. Vrias denies gerais de protocolos seguros foram propostas, como por exemplo [Goldwasser and Levin 1991], [Micali and Rogaway 1992], [Beaver 1991], [Ben-Or et al. 1993], [Ptzmann and Waidner 1994], [Canetti 1998], [Hirt and Maurer 2000], [Ptzmann et al. 2000], [Dodis and Micali 2000], [Ptzmann and Waidner 2000], sendo candidatas para esse framework geral. Entretanto, alm de restries de escopo, seja nas situaes ou tarefas s quais se aplicam, elas no oferecem garantia geral de segurana na composio de protocolos criptogrcos. Isto o caso especialmente em situaes em que os adversrios so computacionalmente limitados e vrias instncias do protocolo executam simultaneamente com possvel controle do adversrio. As motivaes listadas acima formam o princpios que levaram ao desenvolvimento do framework UC, voltado para a representao e anlise de protocolos criptogrcos. O framework UC dene uma metodologia geral para expressar os requisitos de

segurana de protocolos criptogrcos. Alm disso, prov um mtodo geral de composio de protocolos, de forma que a denio de segurana expressa no framework se preserva sob a composio, chamada de composio universal. De forma extremamente resumida, a composio universal pode ser vista de maneira intuitiva como uma generalizao da operao de chamada de subrotina em algoritmos sequenciais para ambientes distribudos com execues concorrentes de protocolos. A preservao da segurana no framework implica que um protocolo seguro permanecer seguro mesmo quando executando em um ambiente arbitrrio e desconhecido multiparte multiexecuo. Recentemente, o framework UC tem sido aplicado para estabelecer a segurana composicional de aplicaes com funcionalidades mais gerais que protocolos criptogrcos. Como exemplo, pode-se citar dentre outras aplicaes: servios de sistemas operacionais [Canetti et al. 2010], produto interno [Dowsley et al. 2010], autenticao [Chari et al. 2011], troca de chaves [Canetti and Gajek 2010] [Canetti et al. 2005] [Gorantla et al. 2009], incoercibilidade [Unruh and Mller-Quade 2009], criptograa simtrica [Kuesters and Tuengerthal 2009], certicao digital [Canetti 2003], assinatura digital [Kurosawa and Furukawa 2008], anlise simblica de protocolos criptogrcos [Canetti and Herzog 2004], computao sncrona [Katz et al. 2011], compartilhamento de segredo [Dowsley et al. 2009], anlise de protocolos [Green and Hohenberger 2008], [Gajek et al. 2008], entre outras aplicaes. Isto refora a formulao geral do framework UC, deixando claro sua aplicabilidade ao contexto mais geral da computao segura multipartes. 4.1.1. Breve descrio deste captulo Este captulo est organizado em sees. Na que segue, construdo o modelo computacional sobre o protocolo e o ambiente, juntamente com o adversrio, executam. Depois a framework UC apresentada com os modelos adversariais e na seo seguinte enunciado o Teorema da Composio. As duas sees seguintes ilustram aplicaes do framework UC tomando como base protocolos de comprometimento de bit. Primeiro, apresentado e demonstrado como o framework pode ser utilizado na anlise de um protocolo, identicando condies para sua implementao segura. Depois, um protocolo de comprometimento de bit UC seguro construdo, seguindo as recomendaes da anlise feita anteriormente. O captulo encerrado com concluses e comentrios nais.

4.2. O modelo bsico de computao


Antes de iniciar a apresentao do framework UC, o modelo computacional descrito. A formalizao de algoritmos em uma rede de comunicao como mquinas de Turing interativas, ITM, segue a abordagem de [Goldwasser et al. 1989]. Uma descrio detalhada, voltada formalizao das interaes entre pares de mquinas pode ser encontrada em [Goldreich 2000]. Uma ta de uma mquina de Turing dita ser write-once, wo, se sua cabea de leitura se move em apenas uma direo. Se uma ta pode se escrita por outras mquinas

de Turing, diz-se que ela externamente write-once, ewo. Se a ta pode ser lida e escrita, diz-se que ela rw Denio 4.2.1. Uma mquina de Turing interativa (ITM) M tem as seguintes tas: uma ta ewo de identidade uma ta ewo de parmetro de segurana uma ta ewo de entrada uma ta ewo de comunicao uma ta ewo de sada de subrotina uma ta de sada uma ta aleatria uma ta rw de ativao (1 bit) uma ta rw de trabalho O contedo da ta de identidade chamado de identidade de M. A identidade de M interpretada, segundo alguma codicao, como dois strings: o identicador de sesso SID de M, e o identicador da parte PID de M. O contedo da ta de comunicao modela a informao vinda da rede. Ela interpretada, segundo alguma codicao, como uma sequncia de valores chamados mensagens, onde cada mensagem tem dois campos: o campo com a designao do emissor, que corresponde identidade de alguma ITM, seguido por um campo arbitrrio de contedo. O contedo da ta de sada de subrotina modela as sadas das subrotinas de M. Ela interpretada, segundo alguma codicao, como uma sequncia de valores chamados sadas de subrotinas, onde cada uma tem dois campos: o campo com o identicador de subrotina, que corresponde identidade de alguma ITM junto com o cdigo de alguma ITM, e por um campo arbitrrio de contedo. O cdigo de alguma ITM M pode incluir instrues para escreve na ta de outra ITM. A sintaxe e o efeito destas instrues so descritos mais adiante. Denio 4.2.2. Um sistema de ITMs S = (I , C) denido por uma ITM inicial I e uma funo de controle C : {0, 1} {allow, disallow} que determina o efeito das instrues escritas externamente nas ITMs do sistema. Denio 4.2.3. Uma congurao de uma ITM M composta por: cdigo; estado de controle;

contedos de todas as tas; posies de todas as cabeas Uma congurao est ativa se o bit da ta de ativao tem valor 1; caso contrrio est desativada. Denio 4.2.4. Uma instncia = {M , id } de uma ITM, ITI, consiste do cdigo M juntamente com o string de identidade id {0, 1} Diz-se que uma congurao uma congurao de uma instncia se o cdigo da congurao M e o contedo da ta de identidade id . Denio 4.2.5. Uma ativao de uma ITI uma sequncia de conguraes que correspondem a uma computao, que inicia a partir de alguma congurao ativa de , at que uma congurao inativa seja alcanada. Nesse caso, diz-se que a ativao se completou e que est esperando a prxima ativao. Se um estado especial de parada, halt, for atingido a ITI para; nesse caso, a ITI no executar nada em ativaes futuras. Denio 4.2.6. Uma execuo de um sistema S = (I , C), dado um parmetro de segurana k e entrada x, uma sequncia de ativaes de ITIs. A primeira ativao inicia a partir da congurao com o cdigo de I, a entrada x na ta de entrada, 1k escrito na ta do parmetro de segurana, um string aleatrio r, longo o suciente, escrito na ta aleatria, e identidade 0. A ITI (I , 0) chamada de ITI inicial. A execuo termina quando a ITI inicial atinge o estado halt, i.e. quando uma congurao de parada da ITI inicial atingida. A sada gerada pela execuo o contedo da ta de sada da ITI inicial na sua congurao de parada. Para completar a denio de uma execuo ainda necessrio descrever o efeito de uma instruo de escrita externa; e como se determina qual a prxima ITI a ser ativada, aps se completar uma ativao. 4.2.1. Escrevendo na ta de outra ITI e chamadas de ITIs Uma instruo de escrita externa por uma ITM em outra, especica os seguintes parmetros: os cdigos e identidades das ITIs de origem e destino, a ta do destino que ser escrita, os dados que sero escritos. A ta de destino pode ser a ta de entrada ou a ta de comunicao, ou a ta de sada de subrotina. O efeito de uma instruo de escrita externa de uma ITI = (M , id ) para uma ITI = (M , id ) denido como segue: 1. se a funo de controle C aplicada sequncia de pedidos de escrita externa at o momento no permite que escreva na ta especicada de , i.e. retorna um valor disallow, ento a instruo ignorada.

2. se C permite a operao e uma ITI = (M , id ) com identidade id = id j existe no sistema (uma das conguraes na execuo at agora tem uma identidade id ), ento: (a) se a ta do destino a ta de comunicao de , ento os dados especicados so escritos na ta de comunicao de , juntamente com a identidade id da ITI de origem. Consequentemente, uma nova congurao gerada. Essa congurao a ltima congurao de nesta execuo, com a nova congurao sendo escrita na ta de comunicao. Isto acontece independente do cdigo M de ser igual ao cdigo M especicado no pedido de escrita externa. Esta regra assume que uma ITI no conhece necessariamente o cdigo da ITI para a qual manda ou da qual recebe mensagens. (b) se a ta do destino a ta de sada de subrotina de , ento os dados especicados so escritos na ta de sada de subrotina de juntamente com o cdigo e a identidade de . Novamente, isso acontece independente de M = M . Esta regra assume que uma ITI conhece o cdigo da ITI que escreve para sua ta de sada de subrotina. Entretanto, uma ITI no conhece necessariamente o cdigo da ITI para a qual ela gera uma sada. (c) se a ta do destino a ta de entrada de e M = M , ento os dados especicados so escritos na ta de sada de subrotina de juntamente com o cdigo e a identidade de . Se M = M ento vai para um estado especial de erro. Esta regra assume que uma ITI pode vericar o cdigo da ITI para a qual prov entradas. Entretanto, uma ITI no conhece necessariamente o cdigo da ITI para da qual ela recebe entradas. 3. se C permite a operao, e nenhuma ITI com identidade id existe no sistema, ento uma nova ITI com cdigo M e identidade id chamada, i.e. uma nova congurao gerada, com cdigo M e identidade id na ta de identidade, 1k escrito na ta do parmetro de segurana, um string aleatrio r, longo o suciente, escrito na ta aleatria. Uma vez que a nova ITI chamada, a instruo de escrita externa executada como acima. Nesse caso diz-se que chamou . Note que as regras de chamada das ITIs, juntamente com o fato da execuo comear com uma nica ITI, garante que cada ITI no sistema tenha identidade nica. Assim, quaisquer duas ITI no tem mesma identidade, independente de seus cdigos. Alm disso, uma vez que o cdigo e a identidade da ITI de destino devem ser especicados na instruo de escrita externa, estes devem ser computados pela ITI de origem antes da chamada. Assim, no h restries para SID e PID. 4.2.2. Determinao da ordem de ativaes A ordem de ativaes bem simples. A cada ativao permite-se que cada ITI execute no mximo uma instruo de escrita externa. A ITI cuja ta foi escrita durante uma ativao ser a prxima a ser ativada, i.e. a ta de ativao nesta nova congurao da ITI tem o

valor 1. Se nenhuma instruo de escrita externa foi executada, a ITI inicial ser ativada na sequncia. Esta regra simples e natural, permitindo quebrar a computao distribuda em uma sequncia de eventos locais onde a cada instante de tempo tem-se apenas uma ITI cujo estado local mudou desde sua ltima ativao. Quando uma ITI escreve uma mensagem m na ta de comunicao de uma ITI , diz-se que enviou m a . Quando uma ITI escreve um valor x na ta de entrada de uma ITI , diz-se que passou x a . Quando uma ITI escreve um valor x na ta de sada de subrotina de uma ITI , diz-se que passou a sada (ou apenas passou) x para . Diz-se que uma subrotina de , se passou uma entrada para ou se passou uma sada para . uma subsidiria de , se uma subrotina de ou de alguma de suas subsidirias. 4.2.3. Protocolos Um protocolo denido como uma ITM, representando o cdigo a ser executado por cada participante. Denio 4.2.7. Dado um estado de um sistema de ITMs, a instncia do protocolo multipartes com SID sid o conjunto de ITMs no sistema cujo cdigo e cujo SID sid. Assim, os PIDs nas instncias dos protocolos so necessariamente diferentes. Assume-se que ignore todas as mensagens onde o SID diferente do SID local. Cada ITI em uma instncia de um protocolo chamada de parte. A denio de estado de um sistema de ITIs apresentada mais adiante. Denio 4.2.8. Uma subparte uma subrotina de uma parte ou de outra subparte. Denio 4.2.9. Uma instncia estendida de inclui todas as partes e subpartes desta instncia. Deve-se notar que na denio acima feita uma distino entre o protocolo, que representa o cdigo que ser executado por cada parte e instncia do protocolo que representa uma execuo especca de um protocolo. Alm disso, a associao de um SID com cada instncia do protocolo, onde SID conhecido por todas as partes, conveniente para modelar mltiplas instncias do protocolo executadas concorrentemente no mesmo sistema. Denio 4.2.10. O estado de um sistema de ITMs representa uma descrio completa de um certo instante da execuo do sistema. Especicamente, consiste da sequncia de todas as conguraes de todas as ativaes do sistema at o dado instante. Denio 4.2.11. O registro de uma execuo de um sistema o estado nal de execuo, onde a ltima congurao terminal para a ITI inicial.

Denio 4.2.12. Um sistema estendido um sistema em que a funo de controle pode alterar instrues de escrita externa. Em um sistema S = (I , C), a funo de controle C toma como entrada uma sequncia de instrues de escrita externa e gera como sada valores como allowed ou disallowed. Em um sistema estendido, a sada de C consiste em uma instruo de escrita externa completa, que pode ser diferente do pedido original de escrita externa. A instruo executada a sada de C. Essa capacidade da funo de controle poder alterar instrues de escrita externa ser utilizada para modicar o cdigo de ITIs geradas durante a execuo. 4.2.4. Sistemas e ITMs probabilsticas e em tempo polinomial Apesar de no ter sido dito at ento, as ITMs de interesse so limitadas em recurso. Especicamente, o foco da modelagem recai sobre as ITMs que operam em tempo polinomial. Entretanto a denio rigorosa da computao com recursos limitados em um ambiente interativo requer certos cuidados. Isto se aplica ao caso em questo em que o cenrio dinmico, com ITMs sendo geradas durante a evoluo do sistema. O ponto de partida considerar uma ITM M como PPT, probabilstica em tempo polinomial, se seu tempo total de execuo, em todas as suas ativaes, polinomial no comprimento da sua entrada. Entretanto, esta denio estaria mais apropriada para capturar situaes envolvendo pares de ITMs cujas entradas so xas durante a computao. Assim ela ser estendida a cenrios mais gerais, onde as instncias de ITMs podem escrever arbitrariamente nas tas de outras instncias ao longo da execuo. Especicamente, ser necessrio limitar o tempo total de execuo de um sistema de ITMs. Em particular, o tempo total de execuo de cada instncia e o nmero de instncias dever ser limitado. Assim, para garantir esse limite geral, alm da condio do tempo ser polinomial sobre o tamanho da entrada sero levados em considerao o parmetro de segurana, junto com o nmero de bits escrito em outras ITMs e o nmero de ITMs que foram escritas. Desse total deve-se descontar o nmero de bits escritos na ITM. Desta forma o n para o qual a ITM M ser polinomial, ser a soma do parmetro de segurana k, mais o total de bits escritos at ento na ta de entrada de M , menos os bits escritos por M nas tas de outras ITMs. Deve-se ainda subtrair k vezes o nmero de mquinas em que M escreveu. As subtraes so motivadas por: subtrair os bits escritos por M nas tas de outras ITMs leva em considerao que escrever nas tas de ITMs existentes no aumenta o tempo de execuo; e subtrair k vezes o nmero de mquinas em que M escreveu leva em considerao que as chamadas a novas instncias tambm no aumenta o tempo total de execuo. Alm disso, estas condies devem valer durante todo o tempo de execuo. Denio 4.2.13. Seja p : N N. Uma ITM M localmente p-limitada se, a qualquer momento durante sua execuo, em qualquer de suas conguraes, o nmero total de passos executados por M no mximo p(n), onde n = k + nI nO k.nN onde k o parmetro de segurana, nI o nmero total de bits escritos na ta de entrada de M, nO o nmero total de bits escritos por M na ta de entrada de outras ITM, e

nN o nmero de diferentes instncias de ITMs cujas tas foram escritas por M. Se M localmente p-limitada e, alm disso, no faz escritas externas ou cada escrita externa especica uma ITM que p-limitada, ento se diz que M p-limitada. M PPT se existe um polinmio p tal que M p-limitada. Um protocolo multipartes PPT se ele uma ITM PPT. Pode-se ver que o nmero total de passos na execuo de um sistema, onde a ITM inicial p-limitada, limitado por p(n + k), onde n o tamanho da entrada e k o parmetro de segurana. Em particular, o nmero total de instncias chamadas limitado por p(n + k). Se a funo de controle C computvel em tempo q(t ), onde t o comprimento da entrada para C, ento uma execuo de um sistema de ITMs pode ser simulado em uma mquina de Turing sequencial com entrada x e k o parmetro de segurana, em O(q( p(|x| + k))) passos, onde |x| o comprimento de x. Proposio 4.2.1. Se a ITM inicial em um sistema (I , C) p-limitada e a funo de controle C computvel em tempo q(t ). Ento uma execuo do sistema pode ser simulada em uma nica mquina de Turing no interativa M, com entrada x e parmetro de segurana k, em O(q( p(|x| + k))) passos (onde |x| o comprimento de x). Em particular, se I e C so PPT ento M tambm . Isto tambm vale para sistemas estendidos de ITMs, se as ITM chamadas forem p-limitadas. 4.2.5. O modelo de execuo de protocolo O modelo de execuo de protocolos denido em termos de um sistema de ITMs, capturando a noo de uma rede assncrona, onde as comunicaes so no autenticadas e no conveis. O modelo em si parametrizado por trs ITMs: o protocolo a ser executado, o ambiente E e o adversrio A . Assim, dados , E e A o modelo para execuo de o ,A sistema estendido de ITMs PPT (E , CEXEC ), onde a ITM inicial o ambiente E e funo ,A de controle CEXEC que ser denida a seguir. Inicialmente o ambiente E recebe alguma entrada, que representa o estado inicial do ambiente no qual a execuo do protocolo se realiza. Em particular esta entrada representa todas as entradas externas do sistema, incluindo todas as entradas locais de todas as partes. A primeira ITI a ser chamada por E denida pela funo de controle para ser o adversrio A . Alm disso, ao longo da computao, E pode chamar como subrotinas um nmero ilimitado de ITIs, passar-lhes entradas, e obter sadas delas, sujeito restrio que todas as ITIs chamadas tenham o mesmo SID, que por sua vez escolhido por E . o cdigo destas ITIs especicado pela funo de controle para ser o cdigo de , independente do cdigo especicado por E . Consequentemente, todas as ITIs chamadas por E , exceto A , so partes de uma nica instncia de . Por outro lado, E no pode passar entradas para, nem aceitar sadas de, nenhuma outra ITI. Em particular, E no pode interagir com subrotinas de partes de uma instncia nica de . A funo de controle permite que partes e subpartes de chamem outras ITIs e passem entradas e sadas para qualquer outra ITI que no seja o adversrio ou o ambiente. Alm disso, elas podem escrever mensagens na ta de comunicao de A . Estas mensagens podem especicar uma identidade de uma parte ou subparte de como destino nal da mensagem.

Alm disso, a funo de controle permite que o adversrio A envie mensagens para qualquer ITI no sistema. Nesse caso, diz-se que A entrega a mensagem. No h necessariamente uma correspondncia entre as mensagens enviadas pelas partes e as entregues pelo adversrio, que no pode chamar subrotinas. Execuo do protocolo com ambiente E e adversrio A Dado um protocolo , adversrio A e ambiente E execute um sistema estendido de ITMs, conforme denido anteriormente, com ITM inicial E e uma funo de controle como descrita abaixo. E inicia com parmetro de segurana k e entrada x e prossegue como abaixo: 1. A primeira ITI a ser chamada por E denida pela funo de controle como sendo o adversrio A . O cdigo de todas as outras ITIs chamadas por E denido como sendo . Alm disso, todas essas ITIs devem ter o mesmo SID. 2. Uma vez que o adversrio A ativado, ele pode passar sada para E e tambm executar as seguintes aes: (a) A pode entregar uma mensagem m a uma parte ou subparte com identidade id ; exceto para mensagens Corrupt, no h restrio quanto ao contedo ou identidade do destinatrio. (b) A pode corromper uma ITI com identidade id , enviando uma mensagem Corrupt para a ITI em questo. Esta ao permitida apenas se A recebeu de E uma mensagem ou entrada (Corrupt,id ). A mensagem de A pode incluir parmetros adicionais. 3. Uma vez que uma parte ou subparte de ativada, ela pode realizar as seguintes aes: envia mensagens para A , passar entradas ou sadas para uma parte ou subparte de passar sadas para E A ativao pode ser motivada por: uma nova mensagem entregue por A ; uma nova entrada vinda de E ; ou um valor escrito na ta de sada de subrotina. A resposta a uma mensagem Corrupt pode variar de acordo com o modelo especco de corrupo e valores de parmetros. No modelo de corrupo Bizantino, a parte reporta seu estado interno para o adversrio. Em todas as ativaes futuras por outras partes diferentes de A , a parte corrompida envia seu estado local para A e segue as instrues de A na entrega de valores a outras partes.

O adversrio A pode tambm corromper partes ou subpartes de . Formalmente, a corrupo de uma parte ou subparte modelada por uma mensagem especial Corrupt entregue por A para a ITI correspondente. A funo de controle permite a entrega da mensagem somente se A recebeu anteriormente uma mensagem especial (Corrupt,id ) do ambiente E . Isso garante que o ambiente quais as partes que foram corrompidas. A resposta de uma parte ou subparte a uma mensagem Corrupt no denida no modelo geral, sendo sua denio deixada a cargo do protocolo. Isto permite capturar vrias formas de corrupo no mesmo modelo computacional. Para prover uma possibilidade concreta de corrupo de uma parte ou subparte, denido um possvel modelo de corrupo, o Bizantino. Nele, uma vez que uma parte ou subparte recebe uma mensagem Corrupt, ela envia ao adversrio A seu estado local corrente e em ativaes futuras a parte corrompida segue as instrues de A independente de escritas externas por outras ITIs. Deve-se dizer que o modelo permite que A chame novas ITIs entregando-lhes mensagens. Estas ITIs podem, mas no precisam, ser partes da instncia de com SID sid . Esta possibilidade importante pois permite modelar instncias de protocolos que so chamadas por mensagens vindas da rede. Poderia ser imposta a restrio permitindo A chamar apenas as partes da instncia corrente. Ainda assim, seria necessrio restringir que s as partes da instncia de com SID sid podem passar sadas para E . Sem perda de generalidade, os ambientes retorna apenas um bit de sada denotado pela varivel aleatria OUTE ,C ,A (k, x), que tambm ser referida como EXEC ,A ,E (k, x). EXEC O quadro acima resume o modelo de execuo.

4.3. O framework UC
A seguir, o framework apresentado, culminando com o Teorema da Composio na seo seguinte. 4.3.1. Breve descrio geral Seguindo [Canetti 2000], o framework UC tem por base trs componentes: o modelo real, que formaliza o processo de execuo do protocolo na presena de um adversrio, em um dado ambiente computacional; o modelo ideal, onde o processo que executa a funcionalidade ideal - aquela que o protocolo real pretende implementar - formalizado. Neste processo as partes no se comunicam entre si, podendo apenas se comunicar com a funcionalidade ideal. Esta por sua vez captura os requisitos que o protocolo deve satisfazer, sendo tratada como uma terceira parte incorruptvel; e a emulao da funcionalidade ideal pelo protocolo real. O protocolo real dito ser seguro se suas funcionalidades correspondem quelas prescritas pela funcionalidade ideal. O protocolo real representado por um conjunto de mquinas de Turing interativas - ITM, representando as partes envolvidas. Para que o protocolo seja realizvel em condies realistas, as ITMs so limitadas em recursos, sendo assim probabilsticas e executando em tempo polinomial - PPT. Nas ITM, as tas de entrada e sada modelam os valores de entrada e sada que so recebidos de, ou enviados para, outros programas rodando na mesma mquina, enquanto as tas de comunicao modelam as mensagens

recebidas e enviadas pelos outros participantes. O adversrio tambm modelado por uma ITM. A rede de comunicao provida entre as partes assncrona, sem garantia de entrega das mensagens. Toda comunicao pblica, de forma que o adversrio pode ter acesso a todo o trfego, mas as mensagens trocadas so autenticadas, de forma que o adversrio no pode modic-las. O adversrio pode ser adaptativo na corrupo das partes e ativo no controle destas. Tanto o adversrio quanto o ambiente so PPT de forma que so realizveis. 4.3.2. Execuo do protocolo no modelo real Seja um protocolo , executado pelas partes P1 , . . . , Pn , com um adversrio A em um ambiente E . Todas as partes tem um parmetro de segurana k N e so polinomiais em k. A execuo uma sequncia de ativaes, onde a cada ativao um nico participante (E , A ou algum Pi ) ativado. O participante ativo l a informao nas suas tas de entrada (includas as de comunicao), executa cdigo e escreve nas tas de sada (tambm includas as de comunicao). O ambiente E pode alm de isso ler e escrever nas tas de entrada e de sada, respectivamente, das partes. O adversrio A pode ler mensagens das tas de sada das partes, copi-las e entreg-las s partes destinatrias. Note que somente as mensagens geradas pelas partes podem ser entregues, j que o adversrio A no pode alterar ou gerar duplicatas de mensagens. O adversrio A pode corromper as partes, passando a control-la e a conhecer as informaes internas por ela conhecidas. Inicialmente, o ambiente E ativado. Uma vez ativado, ele pode escreve informao na ta de entrada de alguma parte Pi ou do adversrio A . A ativao da entidade se d assim que o ambiente E complete sua ativao, i.e. entre em um estado de espera. Se nenhuma ta de entrada for escrita a execuo para. Quando uma parte Pi completa a ativao o ambiente E ativado novamente. Sempre que o adversrio A entrega uma mensagem a uma parte Pi , a parte ativada em seguida, que ao se completar leva a nova ativao do ambiente E . Se em alguma ativao o adversrio A no entrega mensagem a alguma parte Pi , o ambiente A ativado assim que o adversrio A completar sua ativao. Note que este mecanismo permite que E e A troquem mensagens livremente usando suas tas de entrada e sada, entre duas ativaes de alguma parte Pi . A sada da execuo do protocolo a sada de E , que sem perda de generalidade ser um bit. Por REAL ,A ,E (k, x, r) entende-se a sada do ambiente E interagindo com o adversrio A e partes Pi executando o protocolo com parmetro de segurana k, entrada x, e entrada aleatria r = rE , rA , r1 . . . , rn (x e rE para E , rA para A ; ri para Pi ). Por REAL ,A ,E (k, x) entende-se a varivel aleatria descrevendo REAL ,A ,E (k, x, r) quando r escolhido uniformemente. Por REAL ,A ,E entende-se a ensemble de distribuies de probabilidade REAL ,A ,E (k, x) kN, x{0,1} . 4.3.3. Execuo no modelo ideal A segurana de um protocolo estabelecida comparando sua execuo no modelo real com a de um processo ideal que realiza a tarefa desejada. Ao processo ideal est associada uma funcionalidade ideal que captura, i.e. especica, a funcionalidade desejada. A funcionalidade ideal modelada como mais uma ITM que interage com o ambiente e

com o adversrio como descrito a seguir. Especicamente, o processo ideal envolve uma funcionalidade ideal F , um processo adversrio ideal S , um ambiente E com entrada x e um conjunto de partes dummy 1 , . . . , P n . Cada parte dummy P i modelada por uma ITM xa e simples: sempre que P uma Pi recebe uma entrada, o valor repassado para F , copiando da ta de entrada para a ta de comunicao; quando ativado por uma mensagem vida de F , , a mensagem copiada para a ta de sada. F recebe mensagens das partes dummy lendo das suas tas de comunicao. F passa informaes para as partes dummy enviando para suas tas de comunicao. O processo adversrio ideal S tem privilgios idnticos ao adversrio no modelo real, exceto que no lhe permitido acesso ao contedo das mensagens enviadas por F s partes dummy. S tambm pode corromper as partes dummy, controlar suas atividades futuras e tomar conhecimento da informao que elas possuam internamente. A ordem dos eventos no processo ideal idntica que ocorre no modelo real, i ativada por um valor vindo com uma exceo. No modelo ideal, se uma parte dummy P do ambiente E , este valor copiado para a ta de comunicao da parte e o ambiente E ativado em seguida. Uma vez que F tenha completado sua ao (possivelmente enviando j ), a parte P i ativada novamente. Deve-se ressaltar uma mensagem para S ou algum P que no modelo ideal no h comunicao entre as partes dummy. A nica comunicao que ocorre so as transferncias entre as partes dummy e a funcionalidade ideal F . Por IDEALF ,S ,E (k, x, r) entende-se a sada do ambiente E interagindo com o adversrio S e partes Pi executando o protocolo F com parmetro de segurana k, entrada x, e entrada aleatria r = rE , rS , r1 . . . , rn (x e rE para E , rS para S ; ri para Pi ). Por IDEALF ,S ,E (k, x) entende-se a varivel aleatria descrevendo IDEALF ,S ,E (k, x, r) quando r escolhido uniformemente. Por IDEALF ,S ,E entende-se a ensemble de distribuies de probabilidade IDEALF ,S ,E (k, x) kN, x{0,1} . 4.3.4. Implementao segura de uma funcionalidade ideal Um protocolo uma implementao segura (ou realizao segura) de uma funcionalidade ideal F se para todo adversrio A executando no modelo real existe um adversrio S executando no modelo ideal, tal que nenhum ambiente E , para qualquer valor de entrada, no lhe possvel distinguir com probabilidade no desprezvel se est interagindo com A e as partes que executam no modelo real, ou se est interagindo com S e a funcionalidade ideal F no modelo ideal. Desta forma, para o ambiente, executar o protocolo equivale a interagir com a funcionalidade ideal F . Denio 4.3.1. Sejam = {X (k, a)}kN, a{0,1} e = {Y (k, a)}kN, a{0,1} duas ensembles de distribuies de probabilidade sobre {0, 1}. Diz-se que e so indistinguc veis, denotado por , se para todo c N existe um k0 N tal que |PrX (k, a) = 1| |PrY (k, a) = 1| < kc para todo k > k0 e todo a.

Denio 4.3.2. Sejam k, c N, F uma funcionalidade ideal e um protocolo executado por n partes. Diz-se que uma implementao segura de F se para todo adversrio A existe um adversrio ideal S tal que para qualquer ambiente E temos que REAL ,A ,E IDEALF ,S ,E .
c

4.4. O Teorema da Composio


Para apresentar o Teorema da Composio, preciso inicialmente denir o modelo hbrido. No modelo hbrido denido um modelo de computao em que um protocolo pode ter acesso, chamar, uma funcionalidade ideal. 4.4.1. O modelo hbrido O modelo hbrido idntico ao modelo real, porm com algumas caractersticas a mais. Alm de trocar mensagens entre si, as partes podem enviar e receber mensagens de um nmero ilimitado de cpias da funcionalidade ideal F . Cada cpia de F identicada por um identicador de sesso (SID) nico. Todas as mensagens enviadas a uma dada cpia ou recebidas dela carregam o SID correspondente, que escolhido pelo protocolo executado pelas partes. A comunicao entre as partes e cada uma das cpias de F se d como no modelo ideal. Assim, uma vez que alguma parte envia uma mensagem para alguma cpia de F , esta cpia imediatamente ativada e l a mensagem da ta da parte. Alm disso, neste modelo, apesar do adversrio ser responsvel por entregar as mensagens vindas das cpias de F para as partes, ele no tem acesso ao contedo das mensagens. Deve-se ressaltar que o ambiente no tem acesso direto s cpias de F . Isso decorre da denio de segurana envolvendo o modelo hbrido, que ser baseada na incapacidade do ambiente de distinguir entre o modelo real e o hbrido. J se pode denir como uma chamada funcionalidade ideal F substituda por uma chamada ao protocolo. Seja um protocolo no modelo hbrido, e seja um protocolo uma implementao segura de uma funcionalidade ideal F , com respeito a alguma classe de adversrios. O protocolo composto construdo substituindo o cdigo de cada ITM de deforma que a primeira mensagem enviada a cada cpia de F substituda por uma chamada a uma nova cpia de , com novos valores aleatrios de entrada, e com o contedo da mensagem como entrada. Cada mensagem subsequente para a cpia de F substituda pela cpia correspondente de , com o contedo passado para como nova entrada. Cada valor de sada gerado pela cpia de tratado como uma mensagem recebida da cpia correspondente de F . 4.4.2. Enunciado do Teorema Na sua forma geral, o Teorema da Composio diz que se uma implementao segura de F ento a execuo do protocolo composto no modelo real emula uma execuo de F , em que chama cpias de F , no modelo hbrido. Assim, para todo adversrio A no modelo real existe um adversrio H no modelo hbrido tal que nenhum ambiente E consegue distingue com probabilidade no desprezvel se est interagindo com A e no modelo real ou com H e F no modelo hbrido.

Teorema 4.4.1. (Teorema da Composio) Seja F uma funcionalidade ideal, e um protocolo, que composto com F resulta em F , no modelo hbrido. Seja um protocolo que uma implementao segura de F . Ento para todo adversrio A no modelo real existe um adversrio H no modelo hbrido tal que para qualquer ambiente E temos que REAL ,A ,E HIBRIDO F ,H ,E Uma formulao mais especca do resultado geral arma que se uma implementao segura de uma funcionalidade ideal G . G composto com a funcionalidade F resulta em G F equivale a F no modelo hbrido. Seja um protocolo que uma implementao segura de F . Ento uma implementao segura de G F no modelo real. Teorema 4.4.2. Sejam F e G funcionalidades ideais. Seja um protocolo de n partes que uma implementao segura de G no modelo hbrido e seja um protocolo de n partes que uma implementao segura de F . Ento o protocolo uma implementao segura de G F . A prova detalhada se encontra em [Canetti 2001]. Entretanto, as principais ideias sero apresentadas na sequncia. Sejam e protocolos e F uma funcionalidade ideal, sendo uma implementao segura de F . Seja A o adversrio para no modelo real. Deseja-se construir um adversrio A para F no modelo hbrido tal que E no conseguir diferenciar se est interagindo com e A no modelo real ou com F e A no modelo hbrido. Para isto, ser usado um adversrio S , um simulador, que atual sobre uma nica instncia de F . Essencialmente, A executar uma verso simulada de A , seguindo suas instrues. As interaes de A com as vrias instncias de sero simuladas usando vrias instncias de S . Assim, A far o papel do ambiente para as vrias instncias de S . A habilidade de A conseguir informaes as mltiplas instncias de S fazendo o papel do ambiente, o principal ponto da prova. A validade da simulao como um todo demonstrada reduzindo-a validade de S . O tratamento das diversas instncias de S feito usando um argumento hbrido, que dene vrias execues hbridas, nas quais um certo nmero de instncias de F so substitudas por instncias de . este argumento hbrido possvel pelo fato de S ser denido independentemente do ambiente. Assim, no muda sob os vrios ambientes hbridos. Na prova em si, a questo referente construo de um adversrio no modelo ideal para todo adversrio no modelo real simplicada. ao invs de se quanticar sobre todos os adversrios possveis, recorre-se utilizao de um adversrio dummy. Desta forma, suciente exigir que o adversrio ideal S seja capaz de simular este adversrio dummy, que bem simples. Este adversrio dummy pode apenas receber todas as mensagens geradas pelo ambiente e repass-las s partes que so destinatrias. Assim, o adversrio dummy, dado seu pequeno poder, o mais difcil de simular pois simul-lo indica que se pode simular qualquer outro. Intuitivamente, o adversrio dummy o mais difcil de simular porque d ao ambiente controle total sobre as comunicaes, deixando pouco espao de manobra para o simulador.
c

Especicamente, segue a descrio do adversrio dummy D . Quando ativado com uma mensagem m na sua ta de entrada, D passa m para o ambiente E (note que a mensagem j inclui a identidade do destinatrio). Quando ativado com uma entrada (m, id , c) do ambiente E , onde m uma mensagem, id um destinatrio, e c um cdigo, D entrega a mensagem m parte id (o cdigo c usado no caso de no existir uma parte com identidade id ). Assim, D capaz de corromper partes quando instrudo por E , e coletar informao para E .

4.5. Comprometimento de Bit - Bit Commitment BC


Comprometimento (commitment) uma das primitivas criptogrcas mais importantes, sendo utilizado na construo de vrios outros protocolos criptogrcos como zero knowledge (por exemplo [Goldreich et al. 1987], [Brassard et al. 1988], [Damgrd 1990]), protocolos gerais de avaliao de funes (por exemplo [Goldreich et al. 1987], [Galil et al. 1988]) e vrios outros. Os protocolos de comprometimento em si tem sido objeto de vrios estudos como por exemplo [Blum 1982], [Naor 1991], [Dolev et al. 2000], [Naor et al. 1998], [Beaver 1996], [Di Crescenzo et al. 1998], [Fischlin and Fischlin 2000]. A ideia bsica da noo de comprometimento bem simples: uma parte, a que se compromete, entrega ao receptor o equivalente digital de um envelope lacrado contendo um valor x. desse ponto em diante, a parte comprometida no pode alterar o valor dentro do envelope, e enquanto esta parte no passar ao receptor instrues para abrir o envelope, este no tem conhecimento algum sobre o valor de x. O primeiro requisito, que impede que a parte que se compromete altere o valor de x antes da abertura referida como binding enquanto o requisito do receptor s poder tomar conhecimento do valor de x aps a abertura pela parte comprometida referida como hiding Entretanto, a formalizao dessa ideia intuitiva no trivial. O tratamento normalmente dado [Goldreich 2000] se revela insuciente para algumas aplicaes, basicamente por tratar o comprometimento de forma isolada. Assim, em geral, no se garante a segurana quando um protocolo de comprometimento usado como componente em outros protocolos, ou quando mltiplas de suas cpias executam concorrentemente. A seguir, o conceito de comprometimento ser utilizado para demonstrar duas aplicaes do framework UC. Inicialmente, o conceito ser descrito de forma abstrata como uma funcionalidade ideal. Ser demonstrado que como denida, no possvel implementar seguramente (UC segura) a funcionalidade sem que se recorra a hipteses adicionais. Na sequncia, ser construdo um protocolo de comprometimento UC seguro que inclui uma hiptese de setup. Tanto a impossibilidade da implementao da funcionalidade ideal pura quanto segurana UC do protocolo real so demonstradas. 4.5.1. A Funcionalidade Ideal FBC A funcionalidade ideal que captura os requisitos esperados sobre o comprometimento de bit apresentada a seguir. Na funcionalidade capturada a ideia de envelope presente na motivao inicial do BC. Como enunciada, a funcionalidade trata do caso de um comprometimento nico, podendo ser facilmente estendida para lidar com o caso geral de mltiplos comprometimentos. Outro ponto a destacar que a funcionalidade lida

com o comprometimento de bit, podendo tambm ser estendida para o caso de strings aplicando o Teorema da Composio, sendo tambm possvel estender a funcionalidade diretamente, sem uso do Teorema da Composio. Os protocolos de comprometimento de string resultantes seriam certamente realizaes mais ecientes da funcionalidade proposta. A Funcionalidade Ideal FBC procede como descrito a seguir. A fase de comprometimento modelada com a funcionalidade inicialmente recebendo uma mensagem (Commit, sid , Pi , Pj , b) de Pi , a parte que se compromete. Onde o sid um identicador de sesso usado para diferenciar entre as instncias da funcionalidade que estejam executando simultaneamente, Pj a parte receptora, e b {0, 1} o valor com o qual Pi se comprometeu. Na resposta, a funcionalidade precisa dar conhecimento outra parte Pn e ao adversrio ideal S de que Pi se comprometeu a algum valor de b, associado sesso sid . Isto feito enviando a mensagem (Receipt, sid , Pi , Pj ), para Pj e S . A fase de abertura iniciada com Pi enviando a mensagem (Open, sid , Pi , Pj ) para FBC , que por sua vez envia a mensagem (Open, sid , Pi , Pj , b) para Pj e S , completando a execuo. A gura abaixo resume a descrio da funcionalidade: Funcionalidade Ideal FBC FBC denida como segue, executando com as partes P1 , . . . , Pn , na presena de um adversrio S : 1. Ao receber uma mensagem (Commit, sid , Pi , Pj , b) de Pi , b {0, 1}: armazene o bit b e envie a mensagem (Receipt, sid , Pi , Pj ), para Pj e S . Ignore mensagens Commit subsequentes. 2. Ao receber uma mensagem (Open, sid , Pi , Pj ) de Pi , proceda da seguinte forma: se o bit b estiver armazenado, ento envie a mensagem (Open, sid , Pi , Pj , b) para Pj ; caso contrrio, pare a execuo.

Vale ressaltar que como denida, a funcionalidade FBC no permite a cpia de comprometimento. Suponha que A se compromete com valor x para alguma parte B, e que o protocolo permitisse que B se comprometesse com o mesmo valor para uma parte C, simplesmente repassando o contedo da mensagem enviada por A. Tal protocolo no seria uma realizao segura da funcionalidade FBC . este requisito pode parecer difcil de ser satisfeito pois B pode sempre atuar como man-in-the-middle. Deve-se lembrar que as identidades so nicas uma vez que se assume que as comunicaes so autenticadas.

4.5.2. Impossibilidade de segurana UC para BC sem hiptese de setup Esta seo ilustra uma das aplicaes do framework UC. Em particular ser apresentada sua aplicao para anlise de um protocolo, no caso o comprometimento de bit BC. Ser mostrado nesta sesso que tal como denida, sem acessar alguma outra funcionalidade ideal, FBC no UC segura. Ou seja, no existe protocolo que seja uma implementao segura sem envolver uma terceira parte na interao e permitir a execuo com sucesso quando tanto o emissor e o receptor so honestos. A impossibilidade se mantem mesmo sob um requisito mais fraco em que para qualquer adversrio real e qualquer ambiente deve existir um adversrio ideal, onde o simulador pode depender do ambiente. Esta situao em que uma funcionalidade no pode chamar outra, ser referida como modelo simples. Note que existem protocolos de BC que so UC no modelo simples, se zer uso de terceiras partes, ou servidores, se a maioria destes se mantiver no corrompida. Isto segui do resultado geral de [C01] que mostra que praticamente qualquer funcionalidade pode ser realizada neste arranjo. Diz-se que o protocolo com n partes P1 , . . . , Pn bilateral se apenas duas dentre as n partes trocam mensagens entre si. Um protocolo bilateral de comprometimento termina com respeito execuo se com probabilidade no desprezvel, o receptor honesto Pj aceita um comprometimento de um emissor honesto Pi e envia a mensagem (Receipt, sid , Pi , Pj ); alm disso, quando o receptor honesto recebe uma mensagem vlida de abertura do emissor honesto, com valor m e identicador de sesso sid , ele envia a mensagem (Open, sid , Pi , Pj , m) com probabilidade no desprezvel. Teorema 4.5.1. No existe protocolo bilateral de comprometimento convergente com respeito execuo que seja uma implementao segura da funcionalidade FBC no modelo simples, mesmo que se permita que o adversrio ideal S dependa do ambiente E . Prova: A ideia da prova a que segue. Considere uma execuo no modelo real do protocolo entre uma parte Pi que se compromete com um valor b e o receptor Pj . Suponha que Pi foi corrompido pelo adversrio A e por ele controlado, enquanto o receptor Pj se mantem honesto. Assuma tambm que o adversrio A apenas envia as mensagens geradas pelo ambiente E e repassa a este as mensagens enviadas a Pi . No incio do processo, o ambiente escolhe aleatoriamente um bit b, mantendo seu valor em segredo, e gera as mensagens para Pi executando o protocolo para uma parte honesta, que se compromete com b, e as respostas de Pj . Para simular o comportamento acima descrito, no modelo ideal, o adversrio S deve ser capaz de prover funcionalidade ideal um valor para o bit comprometido. Ou seja, o ideal S deve extrair o bit das mensagens geradas pelo ambiente, sem que rebobine, i.e. volte o estado de execuo do ambiente. Entretanto, ser mostrado, se o esquema de comprometimento de bit, permite que o simulador extraia com sucesso o bit comprometido, ento o esquema no seguro, pois um receptor corrompido conseguiria obter o valor do bit comprometido interagindo com um emissor honesto. Mais precisamente, no modelo real, seja o protocolo bilateral executado com emissor Pi e receptor Pj . Considere o ambiente E e o adversrio real A . No incio da execuo o adversrio A corrompe Pi , a parte que se compromete no protocolo. Assim,

A faz com que Pi envie toda mensagem recebida de E e reporta toda resposta recebida por Pj de E . O ambiente E escolhe aleatoriamente um bit b, mantendo seu valor em segredo, e gera as mensagens para Pi executando o protocolo para uma parte honesta, que se compromete com b e as respostas de Pj e segue o programa do emissor honesto que se compromete com b, conforme especicado por . Uma vez que o receptor honesto envia a mensagem Receipt, o ambiente faz com que A abra o comprometimento com valor b. Uma vez que o receptor envia a mensagem (Open, sid , Pi , Pj , b ), o ambiente gera o valor 1 se b = b e 0 caso contrrio. J no modelo ideal, uma vez que o receptor envia uma mensagem Receipt antes de se iniciar a fase de abertura, o adversrio ideal S para o para A , E deve enviar a mensagem (Commit, sid , Pi , Pj , b) para funcionalidade ideal FBC antes de conhecer o valor do bit comprometido b no nal da fase de abertura. Entretanto, o receptor honesto envia o valor b recebido de FBC na fase de abertura. Isso implica que, para ter sucesso, S deve obter o valor correto do bit comprometido b j na fase inicial de comprometimento, o que viola o sigilo do protocolo de comprometimento. Formalizando, suponha que existe um adversrio ideal S tal que: REAL ,A ,E IDEALF ,S ,E Ser construdo um novo ambiente E e um novo adversrio real A para o qual no existe um adversrio ideal apropriado para . nessa nova situao, A corrompe o receptor Pj no comeo da execuo do protocolo. Durante a execuo, A obtm as mensagens do emissor honesto Pi , passando-as a uma cpia virtual de S . As respostas de S , como se geradas pelo receptor honesto, so encaminhadas a Pi em nome da parte corrompida Pj . Em dado momento, S envia a mensagem de comprometimento (Commit, sid , Pi , Pj , b ) para FBC . Ento o adversrio A gera o valor de sada b e para. O ambiente E ordena que a parte honesta se comprometa a um bit b escolhido aleatoriamente e cujo valor mantido em segredo. Note que em nenhum momento se d a abertura. O ambiente E ento conclui gerando o valor 1 se e ss se o valor de sada b gerado pelo adversrio A satisfaz b = b . Pela propriedade de terminao denida acima, obtm-se do simulador S um bit b com probabilidade no desprezvel. Este bit b uma boa aproximao do bit b, j que S simula o protocolo com erro desprezvel. Consequentemente, a probabilidade do bit b gerado por A estar correto 1/2 mais um valor no desprezvel. Porm, impossvel que um adversrio ideal S consiga acertar o valor de b probabilidade no desprezvel maior que 1/2, uma vez que a viso de S no modelo ideal estatisticamente independente do bit b, lembrando que o comprometimento com b no aberto.
c

4.6. Um protocolo UC seguro para comprometimento de bit


Como estabelecido na seo anterior, vimos a impossibilidade de implementao segura (UC segura) da funcionalidade ideal FBC por um protocolo que no recorra a pelo menos mais outra funcionalidade. A seguir ser apresentada um funcionalidade que auxiliar na

construo de um protocolo para BC que UC seguro, seguido de esquema de comprometimento, que ser demonstrado ser UC seguro. 4.6.1. A Funcionalidade Ideal FCRS A funcionalidade que ser utilizada juntamente com FBC para a construo do protocolo UC seguro descrita a seguir. A funcionalidade ideal FCRS , onde CRS uma string comum de referncia, consiste na distribuio de uma string entre todas as partes envolvidas. A string distribuda antes do incio da interao entre as partes, sendo escolhida segundo uma distribuio de probabilidade especicada. Funcionalidade Ideal FCRS FCRS denida como segue, parametrizada por uma distribuio D: 1. Quando ativada pela primeira vez, com entrada (valor, sid ): escolha um valor d D e envie d para a parte que a ativou. 2. Nas ativaes seguintes, envie d para a parte que a ativou. Note que na denio acima, a funcionalidade est parametrizada por uma distribuio de probabilidade D. Como denida a funcionalidade FCRS j est adequada ao modelo hbrido, onde se pode ter acesso funcionalidade ideal. Como denida, FCRS tem algumas caractersticas: no modelo real, as partes tem acesso a uma string comum e pblica que escolhida previamente de acordo com uma distribuio especicada pelo protocolo executado pelas partes. no modelo ideal, pode ser que uma funcionalidade no faa uso de FCRS , como o caso de FBC . assim, um adversrio ideal que opere simulando um adversrio real pode fazer as vezes de FCRS para o adversrio simulado. Isto signica que o adversrio ideal pode escolher a string comum arbitrariamente.
R

Vale ressaltar que por no usar o string comum no modelo ideal, a validade do que acontece no modelo ideal no afetada j que FCRS estaria executando no modelo hbrido. Assim, a validade da noo de segurana se mantem. Do ponto de vista da composio, preciso deixar claro alguns aspectos acerca de FCRS . Cada cpia de no protocolo composto deve ter sua prpria cpia da string de referncia, i.e. chama uma instncia prpria de FCRS . Se isto no for o caso, o Teorema da Composio no poder ser aplicado.

4.6.2. O Esquema de Comprometimento de Bit com hiptese de setup O protocolo apresentado a seguir uma implementao segura da funcionalidade FBC se baseia em permutao trapdoor e utiliza cada string comum uma nica vez, em um nico comprometimento. A construo se baseia no esquema proposto em [Di Crescenzo et al. 1998], que por sua vez uma modicao do esquema apresentado em [Naor 1991]. A ideia do protocolo a que segue. Seja G um gerador pseudo aleatrio que expande n bits de entrada em 4n bits de sada. Para o parmetro de segurana n, o receptor envia um string aleatrio ao emissor, que escolhe um r {0, 1}n que computa G(r) e retorna G(r) ou G(r) para se comprometer com 0 ou 1 respectivamente. Na abertura, o emissor envia b e r. Pela pseudo aleatoriedade de G o receptor no pode distinguir os dois casos e com probabilidade 22n sobre a escolha de r impossvel encontrar r0 e r1 tais que: G(r0 ) = G(r1 ) Em [Di Crescenzo et al. 1998] uma verso equivocvel do esquema em [Naor 1991] foi proposta. Suponha que no escolhida pelo receptor mas que seja uma comum aleatria. Ento, se = G(r0 ) G(r1 ) para r0 e r1 aleatrios, e o emissor entrega G(r0 ) ao receptor, ser mais fcil abrir o comprometimento como 0 para r0 e 1 para r1 , j que G(r0 ) = G(r1 ). Por outro lado, a escolha de daquela forma indistinguvel de uma verdadeira escolha aleatria. O protocolo UC seguro BC , descrito a seguir, parte da ideia do esquema acima usando um gerador pseudo aleatrio com uma propriedade trapdoor. Ser usado um gerador Blum-Micali-Yao, porm com permutaes trapdoor ao invs de permutaes one-way [Yao 1982] [Blum and Micali 1984]. Seja KGen um algoritmo eciente que com entrada 1n gera uma chave pblica pk e um trapdoor td . A chave pk descreve uma permutao trapdoor f pk sobre {0, 1}n . Antes de denir o gerador, algumas denies iniciais so necessrias. O primeiro conceito o de funo one-way, que captura a noo intuitiva de uma funo no inversvel. Denio 4.6.1. Uma funo f : {0, 1} {0, 1} , one-way se: existe um algoritmo que para a entrada x computa f (x) em tempo polinomial para todo algoritmo PPT A , a probabilidade de A ser a inversa de f (x) Pr[ f (A( f (x))) = f (x)] desprezvel. Outro conceito necessrio o de permutao trapdoor, que captura a noo de uma funo one-way que com alguma informao adicional se torna fcil inverter. Denio 4.6.2. Uma permutao trapdoor denida pela tripla (G, E , D) tal que:
CRS

1. G um algoritmo que para a entrada 1k gera um par de chaves ( pk, td ) 2. E um algoritmo determinstico tal que para todo pk, o mapeamento x E ( pk, x) uma bijeo 3. D um algoritmo determinstico tal que para todos os pares de chaves possveis ( pk, td ) gerados por G, e para todo x: D(td , E ( pk, x)) = x (1)

Denio 4.6.3. Um predicado hardcore B(.) de uma funo one-way f (x), uma funo cuja sada um nico bit para qual no existe algoritmo PPT que compute B( f (x)) com probabilidade signicativamente maior que 1/2 sobre uma escolha aleatria de x. Assim, j se pode denir o gerador1 . Denio 4.6.4. Seja B(.) um predicado hardcore para f pk . Dene-se o gerador que expande n bits de entrada em 4n bits de sada com a descrio pblica pk como: G pk (r) = (B( f pk (r)), B( f pk
(i) (4n) (4n1)

(r)), . . . , B( f pk (r)), B(r))

onde f pk (r) a i-sima aplicao de f pk a r. Uma importante propriedade deste gerador que dado um trapdoor td para pk fcil dizer se um dado y {0, 1}4n est na imagem de G pk . O string pblico aleatrio no esquema CRS BC consiste em um string aleatrio de 4n bits, junto com duas chaves pblicas pk0 e pk1 que descrevem os geradores pseudo aleatrios trapdoor G pk0 e G pk1 , que expandem n bits de entrada em 4n bits de sada. As chaves pblicas pk0 e pk1 so geradas por duas execues independentes do algoritmo de gerao de chaves KGen com entrada 1n , juntamente com os trapdoors correspondentes td0 e td1 respectivamente. Para se comprometer com um bit b {0, 1}, o emissor escolhe um string aleatrio b {0, 1}n , calcula G pkb (r) e y = G pkb (r) se b = 0, ou y = G pkb (r) se b = 1. Na abertura, o emissor envia (b, r) ao receptor, que verica se y = G pkb (r) para b = 0, ou se y = G pkb (r) para b = 1. Claramente, o esquema abaixo satisfaz as condies de hiding e binding: a primeira computacionalmente e a segunda estatisticamente. Em uma simulao, assume o valor = G pk0 (r0 ) G pk1 (r1 ). Assim, transmitindo y = G pk0 (r0 ) posteriormente pode-se abrir esse valor com 0 enviando r0 e com 1 enviando r1 . Alm disso, caso se conhea td0 e pk0 , um string y gerada pelo adversrio pode ser checada se est na imagem de G pk0 representando um comprometimento com o valor 0. A menos que y esteja na imagem de G pk0 e simultaneamente y pertena imagem de G pk1 , o valor extrado do bit comprometido nico e estar correto com respeito a td0 .
1 para

maiores detalhes e uma denio formal de geradores pseudo aleatrios vide apndice

Esquema de Comprometimento de Bit com hiptese de setup - BC string pblica: - string aleatria em {0, 1}4n

CRS

pk0 , pk1 - chaves para os geradores G pk0 , G pk1 : {0, 1}n {0, 1}4n comprometimento para o bit b {0, 1} com SID sid: emissor Pi calcula G pkb (r) atribui y = G pkb (r) se b = 0, ou y = G pkb (r) se b = 1 envia mensagem (Commit, sid , Pi , Pj , y) para o receptor Pj receptor Pj ao receber a mensagem (Commit, sid , Pi , Pj , y) do emissor Pi , envia de volta a mensagem (Receipt, sid , Pi , Pj , b) abertura para y emissor Pi envia (b, r) ao receptor emissor Pi verica se y = G pkb (r) para b = 0, ou se y = G pkb (r) para b = 1 se a vericao tem sucesso, gera a mensagem (Open, sid , Pi , Pj , b)

4.6.3. Segurana UC do protocolo BC com CRS - BC


CRS CRS

CRS

Como visto, o esquema BC suporta a equivocabilidade e a extratibilidade. J se pode ento estabelecer que o esquema de protocolo BC UC seguro, i.e. BC uma implementao segura da funcionalidade ideal F BC . Teorema 4.6.1. O protocolo BC uma implementao segura da funcionalidade ideal F BC acessando a funcionalidade ideal F CRS . Prova: A prova est dividida em partes. Inicialmente, ser descrito o adversrio ideal, o simulador S . Denido S , ser tratada a questo da indistinguibilidade, que compreende trs situaes distintas. As questes relativas indistinguibilidade sero reduzidas distino entre uma sequncia realmente aleatria e outra pseudo aleatria. Simulao O adversrio ideal S descrito a seguir. S executa juntamente com E e, em paraCRS CRS

lelo executa uma cpia virtual do adversrio real A , que executado como uma caixa preta. Isto , S age como uma interface entre A e E emulando uma cpia de uma execuCRS o real de BC para A , incorporando as interaes de E no modelo ideal e, vice-versa, encaminhando as mensagens de A para E . 1. No incio, o simulador S prepara selecionando os pares de chaves ( pk0 , td0 ) KGen(1n ), ( pk1 , td1 ) KGen(1n ) atribuindo a o valor = G pk0 (r0 ) G pk1 (r1 ) para r0 , r1 {0, 1}n aleatrios. Esta string ser chamada de falsa com respeito aos valores pk0 , pk1 , G pk0 (r0 ) e G pk1 (r1 ). Na sequncia, inicia a execuo da simulao de A e da execuo com E usando a falsa e pk0 , pk1 . 2. Se em algum ponto da execuo: o ambiente E escreve a mensagem (Commit, sid , Pi , Pj , b) na ta da parte no i , corrompida P e este a copia para a funcionalidade ideal FBC . Ento o simulador S , que no pode ler o valor do bit mas toma conhecimento de que houve um comprometimento recebendo a mensagem (Receipt, sid , Pi , Pj ), informa A que Pi enviou a Pj y = G pk0 (r0 ) . 3. Se em algum ponto da execuo: i realize a abertura o ambiente E ordena que a parte no corrompida P e esta parte, corretamente, se comprometeu com algum bit b, cujo valor foi mantido secreto Ento o adversrio ideal S deve enviar o valor y = G pk0 (r0 ) fazendo as vezes da parte Pi na simulao (em modo caixa preta) do adversrio A . 4. Se o adversrio A simulado

permite que alguma parte corrompida Pi envie a mensagem (Commit, sid , y ) a alguma parte honesta Pj ento S verica com o auxlio do trapdoor td0 se y est na imagem de G pk0 ou no. Se for o caso, envia a mensagem (Commit, sid , Pi , Pj , 0) para a funcionalidade ideal FBC como se fosse a parte Pi , para a funcionalidade ideal FBC ; caso contrrio, S envia a mensagem (Commit, sid , Pi , Pj , 1) 5. Se A ordena: que alguma parte corrompida Pi realize a abertura com y vlido e bit b correto, ento S compara com o valor de b ao valor previamente extrado e para a execuo se eles diferem. caso contrrio, S envia a mensagem (Open, sid , Pi , Pj ) em nome de Pi para a funcionalidade ideal FBC . Se Pi precisar realizar a abertura com um valor incorreto, S tambm enviar para a funcionalidade uma mensagem de abertura, mesmo com o valor incorreto. 6. Sempre que o simulador A ordenar que uma parte seja corrompida: S corrompe esta parte no modelo ideal e toma conhecimento de todas as suas informaes internas. Assim: S pode adaptar qualquer possvel informao de abertura sobre um comprometimento que ainda no aberto daquela parte, como no caso de uma parte honesta realizando a abertura. Depois disso, S passa toda informao ajustada para A . Indistinguibilidade Para mostrar que a sada gerada pelo ambiente no modelo real indistinguvel daquela gerada no modelo ideal, trs situaes devem ser consideradas sendo associada a cada uma delas uma varivel aleatria:

Modelo Real com string genuino: A sada gerada por E resultado da execuo no modelo real com as partes Pi executando o protocolo na presena do adversrio A . Desta forma, escolhido segundo uma distribuio uniforme e pk0 , pk1 aleatrios so obtidos executando KGen, sendo usados como a string pblica; ento o protocolo executado no modelo real com A e E com esse string. A esta situao est associada a varivel aleatria Rg . Modelo Real com string falso: A sada gerada por E resultado da execuo no modelo real. O string falso escolhido juntamente com os valores aleatrios pk0 , pk1 como no simulador, envolvendo os valores previamente selecionados de G pk0 (r0 ) e G pk1 (r1 ). O protocolo executado no modelo real com A e E usando o string falso. Se uma parte honesta for se comprometer com um bit b, ela deve computar o comprometimento usando os valores previamente selecionados: y = G pkb (r) para b = 0, e y = G pkb (r) para b = 1. se mais adiante a parte honesta for realizar a abertura, ela dever faz-lo enviando b e rb . Ao nal da execuo, a sada ser que o ambiente E vier a gerar. A esta situao est associada a varivel aleatria R f . Modelo Ideal com string falso: A sada gerada por E resultado da execuo no modelo ideal com S e F BC , usando um string falso escolhido por S . A esta situao est associada a varivel aleatria I f . A questo da indistinguibilidade se reduz a estabelecer a indistinguibilidade entre as variveis aleatrias Rg e R f , e entre R f e I f . Isto estabelecido, por transitividade temos a indistinguibilidade entre Rg e I f . Em ambos os casos, o problema vai se reduzir a distinguir entre uma sequncia aleatria e uma pseudo aleatria. Indistinguibilidade entre Rg e R f Inicialmente, ser assumido que o ambiente E distingue Rg de R f , com probabilidade no desprezvel. Como ser visto mais frente, vai se chegar a uma contradio. A partir dessa hiptese, ser construdo um algoritmo que decide se uma entrada verdadeiramente aleatria ou pseudo aleatria. Dados um parmetro de segurana n, uma chave pblica aleatria pk de um gerador trapdoor pseudo aleatrio G pk : {0, 1}n {0, 1}4n juntamente com um string x {0, 1}4n , que tanto pode ser escolhido aleatoriamente ou ser gerado por G pk . Deseja-se decidir como x foi gerado. Para um x aleatrio de um x pseudo aleatrio, o ambiente E ser usado, distinguindo entre Rg e R f . Para isto, um string gerado por procedimento similar ao de S , mas usado o dado string x. Ento, emula-se a execuo no modelo real simulando o cenrio em que todas as partes so honestas, lendo todas as mensagens enviadas por E . Especicamente: gerao do string pblico:

um bit c escolhido aleatoriamente faz-se pk1c = pk para uma dada chave pblica o bit c ser o palpite para o bit ao qual uma parte honesta se compromete um novo par de chaves gerado ( pkc , tdc ) KGen(1n ) rc {0, 1}n escolhido aleatoriamente faz-se = G pkc (rc ) x emulao: a simulao do protocolo iniciada com A e E usando , pk0 , pk1 se E manda que uma parte no corrompida Pi se comprometa com um bit b, se b = c, ento a execuo para imediatamente com sada 0; no caso em que b = c, G pkc (rc ) enviado se b = c = 0, e caso contrrio, b = c = 1, x enviado em nome de Pi e a simulao continua; quando mais tarde E mandar Pi abrir o comprometimento b (que igual a c) e rc so enviados de forma similar, no caso da parte Pi ser corrompida, b e rc so enviados para A antes da abertura se o adversrio A corrompeu a parte Pi antes desta se comprometer a execuo para com probabilidade 1/2 (tem-se assim simetria com o caso anterior, simplicando a anlise); caso contrrio, a simulao continua. sada: se a execuo ainda no parou, a sada de E copiada. Para analisar a vantagem do algoritmo acima, considere-se primeiro o caso em que x um string de 4n bits, uniformemente distribudo. Ento tambm aleatrio e a predio c no passa nenhuma informao para A e E no incio da execuo. Assim, a probabilidade de uma parada prematura com sada 0 1/2, independente de A estar dominando o comprometimento, ou deste ser efetuado por uma parte honesta. Condicionada a terminao a se dar no ltimo estgio, a sada de E tem distribuio idntica de Rg . Seja x agora gerado por G pkc . Nesse caso, corresponde a um string falso. Aqui tambm, o string pblico no revela nada sobre c para A e E . Conclui-se novamente que a parada prematura ocorre com probabilidade 1/2, independente de quem realiza o comprometimento. Alm disso, dado que se atinge o estgio nal, a sada de E tem distribuio idntica de R f .

Consequentemente, em ambos os experimentos, Rg e R f , a sada 1 com metade da probabilidade de E retornar 1. Segue que se a vantagem de E distinguir entre Rg e R f dada por (onde Out(E , X ) o valor da sada gerada por E no experimento X ): (n) = Prob [Out(E , Rg ) = 1] Prob Out(E , R f ) = 1 assim a vantagem em distinguir entre entradas aleatrias e pseudo aleatrias igual a (n)/2. Se (n) no for desprezvel, (n)/2 tambm no . Entretanto, isto contradiz a pseudo aleatoriedade do gerador. Indistinguibilidade entre R f e I f Excetuando-se o caso em que o adversrio envia algum y na imagem de G pk0 para depois abrir o comprometimento com b = 1, os dois experimentos so idnticos. Assim, suciente estimar a probabilidade deste erro acontecer. Como se ver, esta probabilidade desprezvel, dada a pseudo aleatoriedade dos geradores. Suponha que no experimento R f a probabilidade de A comprometer uma parte corrompida usando y , tal que y e y esto nas imagens de G pk0 e G pk1 , respectivamente, seja no desprezvel. Constri-se o algoritmo que segue. As entradas so n, uma chave pblica pk, e um string x de 4n bits. A sada um bit indicando se x aleatrio ou pseudo aleatrio. O algoritmo especica: 1. faa: pk1 = pk gere outro par de chaves ( pk0 , td0 ) dena = G pk0 (r0 ) x para r0 {0, 1}n 2. emule o experimento I f com S , E usando , pk0 , pk1 se uma parte honesta for instruda a se comprometer, aborte 3. Se A instrui uma parte corrompida a se comprometer usando y , vericar, usando td0 , se y est na imagem de G pk0 se a parte corrompida tambm faz uma abertura correta de y para b = 1 pare com sada 1. 4. para todos os outros casos, retorne 0.
na imagem Observe que o algoritmo retorna 1 se a vericao com td0 leva a um r0 de G pk0 e se o adversrio tambm revela r1 tal que

) G pk0 (r0 ) x ) = G pk1 (r1 ) = y = G pk1 (r1 G pk0 (r0

mas para x aleatrio a probabilidade de


, r1 {0, 1}n )|, r0 , r0 ) G pk1 (r1 x G pk0 (r0 ) G pk0 (r0

no mximo 2n . Assim, nesse caso, o algoritmo d sada 1 apenas com probabilidade exponencialmente pequena. Por outro lado, se x pseudo aleatrio ento o algoritmo retorna 1 com a mesma probabilidade que o adversrio A incorre na situao descrita para o experimento I f . Por hiptese, essa probabilidade no desprezvel. Logo, a vantagem geral do algoritmo no desprezvel tambm, refutando a pseudo aleatoriedade do gerador. Assim, a prova est concluda.

4.7. Concluso
O framework UC, conforme apresentado, uma ferramenta poderosa para o projeto e anlise de protocolos criptogrcos. O framework proporciona o ferramental para a representao dos protocolos e dos seu requisitos de segurana especcos, relacionados com as tarefas que se pretendem realizar. O conceito de segurana UC, aqui expresso como implementao segura captura a motivao principal de viabilizar o projeto modular de protocolos. O Teorema da Composio sumariza todo o esforo de formalizao do framework, de certa forma validando a denio de segurana UC. Sua prova, apesar de no ter sido apresentada, serve como um template para a prova de segurana UC de protocolos especcos. Como vimos o framework UC inicia sua construo modelando o conceito de protocolo a partir de ITMs, evoluindo para sistemas de ITMs e denindo um modelo de execuo. Nesse modelo, alm se contemplar a modelagem das chamadas de subrotina, ponto bsico para o tratamento da composio, tem-se juntamente com a execuo do protocolo, a sua interao com o ambiente e com o adversrio. Para estabelecer o Teorema da Composio so denidos dois renamentos ao modelo de execuo, que incluem as regras de trocas de mensagens entres as partes. Estes renamentos levam aos modelos real e ideal, que essencialmente diferem quanto ao acesso que o adversrio tem aos canais de comunicao. Alm disso, a separao entre a funcionalidade ideal, que encapsula de forma abstrata a tarefa a ser realizada, e o protocolo real, que pretende implementar concretamente a funcionalidade desejada, mais um ponto esclarecedor no tratamento dado ao projeto de protocolos. Para exemplicao da utilizao do framework, que foi o foco principal desta abordagem, foi escolhido o comprometimento de bit. O conceito de comprometimento foi utilizado para demonstrar duas aplicaes do framework UC. Inicialmente, descrito como uma funcionalidade ideal, foi demonstrado que como denida, no possvel implementar seguramente (UC segura) a funcionalidade sem que se recorra a hipteses adicionais. Na sequncia, foi construdo um protocolo de comprometimento UC seguro que inclui uma hiptese de setup. Tanto a impossibilidade da implementao da funcionali-

dade ideal pura quanto a segurana UC do protocolo real ilustram o poder do framework, que como j indicado tem sido usado no contexto mais amplo de computao segura multipartes

4.8. Referncias Referncias


[Barak et al. 2001] Barak, B., Goldreich, O., Goldwasser, S., and Lindell, Y. (2001). Resettably-sound zero-knowledge and its applications. In APPEARED IN 42ND FOCS, pages 116125. IEEE Computer Society Press. [Beaver 1991] Beaver, D. (1991). Secure multi-party protocols and zero-knowledge proof systems tolerating a faulty minority. Journal of Cryptology, 4:75122. [Beaver 1996] Beaver, D. (1996). Adaptive zero knowledge and computational equivocation (extended abstract). In 28th Annual ACM Symposium on Theory of Computing, pages 629638, Philadephia, Pennsylvania, USA. ACM Press. [Beaver and Haber 1992] Beaver, D. and Haber, S. (1992). Cryptographic protocols provably secure against dynamic adversaries. In Rueppel, R. A., editor, Advances in Cryptology EUROCRYPT92, volume 658 of Lecture Notes in Computer Science, pages 307323, Balatonfred, Hungary. Springer, Berlin, Germany. [Bellare et al. 1998a] Bellare, M., Canetti, R., and Krawczyk, H. (1998a). A modular approach to the design and analysis of authentication and key exchange protocols (extended abstract). In 30th Annual ACM Symposium on Theory of Computing, pages 419428, Dallas, Texas, USA. ACM Press. [Bellare et al. 1998b] Bellare, M., Pointcheval, D., and Rogaway, P. (1998b). Relations among notions of security for public-key encryption schemes. In CRYPTO 98, pages 2645. Springer-Verlag. [Bellare and Rogaway 1994] Bellare, M. and Rogaway, P. (1994). Entity authentication and key distribution. [Ben-Or et al. 1993] Ben-Or, M., Canetti, R., and Goldreich, O. (1993). Asynchronous secure computation. In 25th Annual ACM Symposium on Theory of Computing, pages 5261, San Diego, California, USA. ACM Press. [Blum 1982] Blum, M. (1982). Coin ipping by telephone. pages 133137. [Blum and Micali 1984] Blum, M. and Micali, S. (1984). How to generate cryptographically strong sequences of pseudorandom bits. SIAM Journal on Computing, 13(4):850 864. [Brassard et al. 1988] Brassard, G., Chaum, D., and Crpeau, C. (1988). Minimum disclosure proofs of knowledge. J. Comput. Syst. Sci., pages 156189. [Canetti 1998] Canetti, R. (1998). Security and composition of multi-party cryptographic protocols. JOURNAL OF CRYPTOLOGY, 13:2000.

[Canetti 2000] Canetti, R. (2000). Universally composable security: A new paradigm for cryptographic protocols. Cryptology ePrint Archive, Report 2000/067. revised Jan 2005 and Dec 2005. [Canetti 2001] Canetti, R. (2001). Universally composable security: A new paradigm for cryptographic protocols. In 42nd Annual Symposium on Foundations of Computer Science, pages 136145, Las Vegas, Nevada, USA. IEEE Computer Society Press. [Canetti 2003] Canetti, R. (2003). Universally composable signatures, certication and authentication. Cryptology ePrint Archive, Report 2003/239. http://eprint. iacr.org/. [Canetti et al. 2010] Canetti, R., Chari, S., Halevi, S., Ptzmann, B., Roy, A., Steiner, M., and Venema, W. (2010). Composable security analysis of os services. Cryptology ePrint Archive, Report 2010/213. http://eprint.iacr.org/. [Canetti et al. 1996] Canetti, R., Feige, U., Goldreich, O., and Naor, M. (1996). Adaptively secure multi-party computation. In Proceedings of the twenty-eighth annual ACM symposium on Theory of computing, STOC 96, pages 639648, New York, NY, USA. ACM. [Canetti and Gajek 2010] Canetti, R. and Gajek, S. (2010). Universally composable symbolic analysis of dife-hellman based key exchange. Cryptology ePrint Archive, Report 2010/303. http://eprint.iacr.org/. [Canetti et al. 1999] Canetti, R., Goldreich, O., Goldwasser, S., and Micali, S. (1999). Resettable zero-knowledge. In In 32nd STOC, pages 235244. [Canetti et al. 2005] Canetti, R., Halevi, S., Katz, J., Lindell, Y., and MacKenzie, P. (2005). Universally composable password-based key exchange. Cryptology ePrint Archive, Report 2005/196. http://eprint.iacr.org/. [Canetti and Herzog 2004] Canetti, R. and Herzog, J. (2004). Universally composable symbolic analysis of cryptographic protocols (the case of encryption-based mutual authentication and key exchange). Cryptology ePrint Archive, Report 2004/334. http://eprint.iacr.org/. [Canetti and Krawczyk 2001] Canetti, R. and Krawczyk, H. (2001). Analysis of keyexchange protocols and their use for building secure channels. In Ptzmann, B., editor, Advances in Cryptology EUROCRYPT 2001, volume 2045 of Lecture Notes in Computer Science, pages 453474, Innsbruck, Austria. Springer, Berlin, Germany. [Chari et al. 2011] Chari, S., Jutla, C., and Roy, A. (2011). Universally composable security analysis of oauth v2.0. Cryptology ePrint Archive, Report 2011/526. http://eprint.iacr.org/. [Damgrd 1990] Damgrd, I. (1990). On the existence of bit commitment schemes and zero-knowledge proofs. In Brassard, G., editor, Advances in Cryptology CRYPTO89, volume 435 of Lecture Notes in Computer Science, pages 1727, Santa Barbara, CA, USA. Springer, Berlin, Germany.

[Di Crescenzo et al. 1998] Di Crescenzo, G., Ishai, Y., and Ostrovsky, R. (1998). Noninteractive and non-malleable commitment. In 30th Annual ACM Symposium on Theory of Computing, pages 141150, Dallas, Texas, USA. ACM Press. [Dodis and Micali 2000] Dodis, Y. and Micali, S. (2000). Parallel reducibility for information-theoretically secure computation. In Bellare, M., editor, Advances in Cryptology CRYPTO 2000, volume 1880 of Lecture Notes in Computer Science, pages 7492, Santa Barbara, CA, USA. Springer, Berlin, Germany. [Dolev et al. 2000] Dolev, D., Dwork, C., and Naor, M. (2000). Nonmalleable cryptography. SIAM J. Comput., 30:391437. [Dowsley et al. 2009] Dowsley, R., Mller-Quade, J., Otsuka, A., Hanaoka, G., Imai, H., and Nascimento, A. C. A. (2009). Universally composable and statistically secure veriable secret sharing scheme based on pre-distributed data. Cryptology ePrint Archive, Report 2009/273. http://eprint.iacr.org/. [Dowsley et al. 2010] Dowsley, R., van de Graaf, J., Marques, D., and Nascimento, A. C. A. (2010). A two-party protocol with trusted initializer for computing the inner product. Cryptology ePrint Archive, Report 2010/289. http://eprint.iacr. org/. [Dwork et al. 1998] Dwork, C., Naor, M., and Sahai, A. (1998). Concurrent zeroknowledge. In 30th Annual ACM Symposium on Theory of Computing, pages 409418, Dallas, Texas, USA. ACM Press. [Even et al. 1985] Even, S., Goldreich, O., and Lempel, A. (1985). A randomized protocol for signing contracts. Commun. ACM, 28:637647. [Fischlin and Fischlin 2000] Fischlin, M. and Fischlin, R. (2000). Efcient nonmalleable commitment schemes. In Bellare, M., editor, Advances in Cryptology CRYPTO 2000, volume 1880 of Lecture Notes in Computer Science, pages 413431, Santa Barbara, CA, USA. Springer, Berlin, Germany. [Gajek et al. 2008] Gajek, S., Manulis, M., Pereira, O., Sadeghi, A.-R., and Schwenk, J. (2008). Universally composable security analysis of tlssecure sessions with handshake and record layer protocols. Cryptology ePrint Archive, Report 2008/251. http://eprint.iacr.org/. [Galil et al. 1988] Galil, Z., Haber, S., and Yung, M. (1988). Cryptographic computation: Secure faut-tolerant protocols and the public-key model. In Pomerance, C., editor, Advances in Cryptology CRYPTO87, volume 293 of Lecture Notes in Computer Science, pages 135155, Santa Barbara, CA, USA. Springer, Berlin, Germany. [Garay and MacKenzie 2000] Garay, J. A. and MacKenzie, P. D. (2000). Concurrent oblivious transfer. In 41st Annual Symposium on Foundations of Computer Science, pages 314324, Redondo Beach, California, USA. IEEE Computer Society Press. [Goldreich 2000] Goldreich, O. (2000). Foundations of Cryptography: Basic Tools. Cambridge University Press, New York, NY, USA.

[Goldreich and Krawczyk 1990] Goldreich, O. and Krawczyk, H. (1990). On the composition of zero-knowledge proof systems. SIAM Journal on Computing, 25:169192. [Goldreich et al. 1987] Goldreich, O., Micali, S., and Wigderson, A. (1987). How to play any mental game, or a completeness theorem for protocols with honest majority. In Aho, A., editor, 19th Annual ACM Symposium on Theory of Computing, pages 218 229, New York City New York, USA. ACM Press. [Goldreich and Oren 1994] Goldreich, O. and Oren, Y. (1994). Denitions and properties of zero-knowledge proof systems. Journal of Cryptology, 7(1):132. [Goldwasser and Levin 1991] Goldwasser, S. and Levin, L. A. (1991). Fair computation of general functions in presence of immoral majority. In Menezes, A. J. and Vanstone, S. A., editors, Advances in Cryptology CRYPTO90, volume 537 of Lecture Notes in Computer Science, pages 7793, Santa Barbara, CA, USA. Springer, Berlin, Germany. [Goldwasser and Micali 1984] Goldwasser, S. and Micali, S. (1984). Probabilistic encryption. Journal of Computer and System Sciences, 28(2):270299. [Goldwasser et al. 1989] Goldwasser, S., Micali, S., and Rackoff, C. (1989). The knowledge complexity of interactive proof systems. SIAM Journal on Computing, 18(1):186208. [Gorantla et al. 2009] Gorantla, M. C., Boyd, C., and Nieto, J. M. G. (2009). Universally composable contributory group key exchange. Cryptology ePrint Archive, Report 2009/300. http://eprint.iacr.org/. [Green and Hohenberger 2008] Green, M. and Hohenberger, S. (2008). Universally composable adaptive oblivious transfer. Cryptology ePrint Archive, Report 2008/163. http://eprint.iacr.org/. [Hirt and Maurer 2000] Hirt, M. and Maurer, U. M. (2000). Player simulation and general adversary structures in perfect multiparty computation. Journal of Cryptology, 13(1):3160. [Katz et al. 2011] Katz, J., Maurer, U., Tackmann, B., and Zikas, V. (2011). Universally composable synchronous computation. Cryptology ePrint Archive, Report 2011/310. http://eprint.iacr.org/. [Kuesters and Tuengerthal 2009] Kuesters, R. and Tuengerthal, M. (2009). Universally composable symmetric encryption. Cryptology ePrint Archive, Report 2009/055. http://eprint.iacr.org/. [Kurosawa and Furukawa 2008] Kurosawa, K. and Furukawa, J. (2008). Universally composable undeniable signature. Cryptology ePrint Archive, Report 2008/094. http://eprint.iacr.org/. [Micali and Rogaway 1992] Micali, S. and Rogaway, P. (1992). Secure computation (abstract). In Feigenbaum, J., editor, Advances in Cryptology CRYPTO91, volume 576 of Lecture Notes in Computer Science, pages 392404, Santa Barbara, CA, USA. Springer, Berlin, Germany.

[Naor 1991] Naor, M. (1991). Bit commitment using pseudorandomness. Journal of Cryptology, 4(2):151158. [Naor et al. 1998] Naor, M., Ostrovsky, R., Venkatesan, R., and Yung, M. (1998). Perfect zero-knowledge arguments for np can be based on general complexity assumptions (extended abstract). JOURNAL OF CRYPTOLOGY, 11:87108. [Naor and Yung 1990] Naor, M. and Yung, M. (1990). Public-key cryptosystems provably secure against chosen ciphertext attacks. In Proceedings of the twenty-second annual ACM symposium on Theory of computing, STOC 90, pages 427437, New York, NY, USA. ACM. [Ptzmann et al. 2000] Ptzmann, B., Schunter, M., and Waidner, M. (2000). Secure reactive systems. [Ptzmann and Waidner 1994] Ptzmann, B. and Waidner, M. (1994). A general framework for formal notions of "secure"systems. In SYSTEM, HILDESHEIMER INFORMATIK-BERICHTE 11/94, UNIVERSITAT. [Ptzmann and Waidner 2000] Ptzmann, B. and Waidner, M. (2000). Composition and integrity preservation of secure reactive systems. In In Proc. 7th ACM Conference on Computer and Communications Security, pages 245254. ACM Press. [Rabin 1981] Rabin, M. (1981). How to exchange secrets using oblivious transfer. Technical report, Tech. Memo TR-81, Aiken Computation Laboratory, Harvard University. [Rackoff and Simon 1992] Rackoff, C. and Simon, D. R. (1992). Non-interactive zeroknowledge proof of knowledge and chosen ciphertext attack. In Proceedings of the 11th Annual International Cryptology Conference on Advances in Cryptology, CRYPTO 91, pages 433444, London, UK. Springer-Verlag. [Shoup 1999] Shoup, V. (1999). On formal models for secure key exchange. Technical report. [Unruh and Mller-Quade 2009] Unruh, D. and Mller-Quade, J. (2009). Universally composable incoercibility. Cryptology ePrint Archive, Report 2009/520. http:// eprint.iacr.org/. [Yao 1982] Yao, A. C. (1982). Theory and applications of trapdoor functions. In 23rd Annual Symposium on Foundations of Computer Science, pages 8091, Chicago, Illinois. IEEE Computer Society Press.

A. Gerador Pseudo Aleatrio


Informalmente, uma distribuio D pseudo aleatria se nenhum distinguisher, aqui referido como diferenciador D, que execute em tempo polinomial consegue detectar se lhe foi passado um string amostrado de D ou se ele foi escolhido uniformemente ao acaso. Na formalizao, ser exigido que o algoritmo D, em tempo polinomial, gere a sada 1 com quase a mesma probabilidade tanto para um valor vindo de D , quanto para uma entrada verdadeiramente aleatria. Essa sada pode ser interpretada como um guess.

Um gerador pseudo aleatrio um algoritmo determinstico que recebe na entrada um pequeno string verdadeiramente aleatrio e o expande em um string mais longo que pseudo aleatrio. Dito de outra forma, um gerador pseudo aleatrio usa uma pequena quantidade de aleatoriedade para gerar uma quantidade maior pseudo aleatria. Na denio que segue, n o comprimento do string de entrada e l (n) o comprimento da sada, sendo interessantes apenas os casos em que l (n) > n. Denio A.1. Sejam l (.) um polinmio e G um algoritmo determinstico em tempo polinomial tal que, para qualquer entrada s {0, 1}n , o algoritmo G gera como sada um string de comprimento l (n). Diz-se que G um gerador pseudo aleatrio se: para todo n, l (n) > n para todo diferenciador D em tempo polinomial, |Pr [D(r) = 1] Pr [D(G(s)) = 1] | desprezvel. Onde r escolhido uniformemente ao acaso de {0, 1}(n) . l (n) o fator de expanso de G. Um diferenciador pode ser denido como um algoritmo D em tempo polinomial que recebe um string de entrada x {0, 1}l (n) e gera como sada D(x) = 1 se x verdadeiramente aleatrio ou D(x) = 0 caso contrrio. Denio A.2. Seja D um algoritmo em tempo polinomial, que recebendo um valor x {0, 1}l (n) como entrada e correspondentemente gera como sada D(x) tal que: D(x) = 1, 0, se x verdadeiramente aleatrio caso contrrio