Buscar

Aula_010_Protocolos_Avancados

Prévia do material em texto

Assinaturas Completamente Cegas
Anonimato com Redes de Misturadores
Votação Digital
Protocolos Avançados
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.
Protocolos Avançados
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 .
Protocolos Avançados
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. 
Protocolos Avançados
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. 
Protocolos Avançados
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 .
Protocolos Avançados
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.
Protocolos Avançados
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.
Protocolos Avançados
8
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.
Protocolos Avançados
Pode Bob fraudar o documento M ?
Pode ele coletar alguma informaçã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.
Protocolos Avançados
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.
Protocolos Avançados
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.
Protocolos Avançados
Propriedades de Assinaturas Completamente Cegas
1. 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. 
Protocolos Avançados
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.
 
Protocolos Avançados
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. 
Protocolos Avançados
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. 
Protocolos Avançados
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 * (ke mod n) // aplica fator de ocultação a M 
A →	B : t 
 	B : td = (M * ke)d mod n // assina o texto 
B → 	A : td 
 	 	A : s = td / k mod n = Md mod n 		
Protocolos Avançados
17
Votação Digital Segura
Protocolos Avançados
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
Protocolos Avançados
19
Votação digital, protocolo simples
E → CV : EKUCV ( voto )
 CV : DKRCV ( voto )
	 CV : Σ votos
	 CV : divulga resultados
Requisitos atendidos ?
Protocolos Avançados
20
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 ?
Protocolos Avançados
21
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.
Protocolos Avançados
22
Votação digital, com duas centrais de votação
 CV1 = 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
Protocolos Avançados
23

Continue navegando