230 likes | 303 Vues
Assinaturas Completamente Cegas Anonimato com Redes de Misturadores. Votação Digital. Assinaturas Completamente Cegas. A característica essencial de protocolos de assinatura digital é que o assinante saiba o que ele está assinando.
E N D
Assinaturas Completamente CegasAnonimato com Redes de Misturadores Votação Digital
Assinaturas Completamente Cegas A característica essencial de protocolos de assinatura digital é que o assinante saiba o que ele está assinando. Mas, existem situações em que um assinante pode, quase, mas não exatamente, saber o que ele está assinando.
Mas, nós poderíamos desejar que pessoas assinem documentos, sem mesmo ver seus conteúdos. Assinaturas cegas são normalmente empregadas em protocolos relacionadas à privacidade, onde o signatário e autor da mensagem são diferentes partes. Exemplos incluem: sistemas eleitorais que usam criptografia. sistemas de dinheiro digital .
Uma analogia frequentemente utilizada para a assinatura criptográfica cegaé o ato físico de colocar uma cédula de votação, em um envelope de papel especial revestido com carbono . A votação pode ser marcada através do envelope do papel carbono. Em seguida, é selado pelo eleitor e entregue a um funcionário que assina sem ver o conteúdo do envelope.
Uma vez assinado pelo funcionário, o envelope pode ser dado de volta para o eleitor, que transfere sua votação, agora assinada, para um novo envelope normal, sem identificação, e o coloca em uma urna. Assim, o signatário (funcionário) não vê o conteúdo da mensagem, mas uma terceira parte (TRE), pode mais tarde verificar a assinatura e saber que a assinatura é válida dentro das limitações do esquema de assinatura.
Assinaturas cegas também podem ser utilizadas para fornecer desvinculação, o que impede a vinculação de um assinante a partir da mensagem “ocultada” que ele assinou, a uma versão posterior, “não ocultada”, que ele pode ser chamado para verificar a assinatura. Neste caso, a resposta do assinante é, primeiro sobre a “não-ocultada “, antes da verificação da assinatura, de tal maneira que a assinatura continua a ser válida para a mensagem “não-ocultada”. Isto pode ser útil em sistemas onde é necessária anonimato .
Para executar tal assinatura cega, a mensagem é primeiro “ocultada", geralmente através da combinação de alguma forma aleatória com um "fator de ocultação“.A mensagem ocultada é passada para um assinante que assina, usando sua chave privada, usando um algoritmo de assinatura padrão. A mensagem resultante, juntamente com o “fator de ocultação”, pode ser, posteriormente, verificada com a chave pública do signatário.
Assinaturas Cegas A idéia da assinatura cega é que alguém assine um documento sem nunca ter visto o conteúdo completamente. 1. A : k * M // ( k = fator de ocultação, M é o documento) A → B : k * M // Bob tem M com o fator de ocultação B → A : SKRB ( k * M ) = [ SKRB ( H(k * M) ) ] || (k * M) A : VKUB ( k * M ) = [ SKUB ( H(k * M) ) ] A : ( k * M ) , então A : ( k * M ) / k A : M // A tem o documento original A : SKRB ( k * M ) // A tem o documento assinado às cegas.
Este protocolo funciona se a função de assinatura e a multiplicação com o fator de ocultação forem operações comutativas. Porque se não são, existem outros modos de modificar o documento M, que não é a multiplicação k. Outros algoritmos existem, com outros fatores de ocultação.
Pode Bob fraudar o documento M ?Podeelecoletaralgumainformação sobre o documento M que ele está assinando ? Se o “fator de ocultação” é aleatoriamente confiável, ele não pode. O documento M na etapa 2, não parece nada com o documento original M na etapa 1.
O documento da etapa 4, não parece nada com o documento da etapa 3. Mesmo que B obtenha o documento em suas mãos, com sua assinatura, após completar o protocolo, ele não pode provar que ele assinou com este protocolo particular. Ele sabe que sua assinatura é válida. Ele pode, como qualquer um, verificar sua assinatura.
Contudo, não existe nenhum modo para ele correlacionar qualquer informação, durante o protocolo de assinatura às cegas, com o documento assinado. Se ele assinou um grande quantidade de documentos usando este protocolo, ele não tem nenhum modo para saber, em qual instância ele assinou qual documento.
Propriedades de Assinaturas Completamente Cegas1. A assinatura de B sobre M é válida. É a prova que B assinou M. A assinatura convencerá B que ele assinou M, se essa é mostrada a ele. Assinatura cegas tem todas as propriedade de assinatura digital padrão.
2. Ele não pode correlacionar o documento assinado ( k * M) com o ato de assinar o documento. Mesmo se B guarda registros de todas as assinaturas cegas que ele faz, B não pode determinar quando ele assinou à cega qualquer documento. Eve, quem está ouvindo o meio, assisistindo este protocolo, tem menos informação do que B.
Assinaturas Cegas Com assinaturas completamente cegas, A pode ter B assinando qualquer coisa.“Bob deve a Alice 1 milhão de dólares”. “Bob deve à Alice o nascimento de seu primeiro filho”. Este protocolo não é útil em muitas aplicações.
Contudo, existe um modo que B pode saber o que ele está assinando, enquanto ainda mantendo as propriedade úteis de uma assinatura cega. A noção de assinaturas cegas foi inventada por David Chaum, quem também inventou sua primeira implementação, usando o RSA. Seja B ter sua chave pública, e, uma chave privada, d, e um módulo público, n.A deseja que B assine uma mensagem M às cegas.
Assinaturas Cegas: David Chaum usando o RSA (obs: protocolo só é válido sse função de assinatura e multiplicação são comutativas) A : escolhe k // randômico entre 1 e n A : t = M * (kemodn) // aplica fator de ocultação a M A → B : t B : td = (M * ke)dmodn// assina o texto B →A : td A : s = td/ k modn = Mdmodn
Votação digital segura Voto computadorizado jamais será utilizado para eleições gerais, a menos que surja um protocolo que garanta a privacidade e previna coação. Requisitos: • Somente eleitores autorizados podem votar • Ninguém pode votar mais de uma vez • Ninguém pode provar seu voto • O voto não poder ser duplicado • Votos não podem ser alterados • Todo eleitor pode verificar se seu voto foi computado
Votação digital, protocolo simples E → CV : EKUCV ( voto ) CV : DKRCV ( voto ) CV : Σ votos CV : divulga resultados Requisitos atendidos ?
Votação digital, segundo protocolo E : SKRE ( voto ) E → CV : EKUCV ( SKRE ( voto ) ) CV : DKRCV ( SKRE ( voto ) ) CV : VKUE ( voto ) CV : divulga Σ SKRE ( voto )´s Requisitos atendidos ?
Votação digital, com assinatura cega. Uma CV. • Eleitor gera um conjuntos de mensagens contendo votos válidos possíveis ( ex. se o voto é sim ou não, cada conjunto contém dois votos, um sim e um não). Cada mensagem também contém um número randômico usado como identificador. • Eleitor oculta as mensagens, fator de ocultação próprio, e envia a Central de Votação. • CV verifica se o eleitor já não submeteu seus votos cegos anteriormente. Assina individualmente cada mensagem do conjunto e envia ao eleitor, armazenando a identificação do eleitor. • Eleitor retira o fator de ocultação da mensagem • Eleitor escolhe o voto, cifra com KU da CV e envia a CV. • CV decifra o voto, verifica assinatura, verifica BD duplicidade do número de identificação, gera um número serial, publica resultado, com número serial associado ao voto.
Votação digital, com duas centrais de votaçãoCV1 = CLA (Central de Legitimação) CV2 = CTF (Central de Tabulação) • Eleitor solicita a CV1 um número (randômico) de identificação. • CV1 envia ao eleitor o número de identificação e os mantém em uma lista associado ao eleitor, para evitar duplicidade de solicitação. • CV1 envia a CV2 a lista de números de identificadores. • Eleitor gera um identificador randômico, cria uma mensagem com seu voto + o número de idenitificação recebido da CV1 e envia a CV2. • CV2 valida a identificação, em caso afirmativo retira o identificador da lista, computa o voto para a opção escolhida. • CV2 publica o resultado e a lista de identificadores com seu voto