140 likes | 218 Views
Carimbo de Tempo ( timestamping ) Necessidade de provar a existência de um documento em determinada data. A → T : M (documento) T → A : t m (carimbo de tempo). Problemas? Privacidade? Base de dados? Erros de transmisão? Confiança no arbitro?.
E N D
Carimbo de Tempo ( timestamping ) • Necessidade de provar a existência de um documento em determinada data. A → T : M (documento) T → A : tm (carimbo de tempo) • Problemas? • Privacidade? • Base de dados? • Erros de transmisão? • Confiança no arbitro?
Timestamping com assinatura digital(solução arbitrada melhorada) A → T : Hm , Alice produz e envia um Hash de um documento m para Trent. T : tn,Trent anexa a data e tempo que ele recebeu, junto ao Hash. T → A : SKRT( Hmtm), Trent assina digitalmente o resultado e envia para Alice. • Problemas? Confiança no árbitro Trent. • Produção de carimbo, quando desejado. Alice e Trent podem ainda conspirar para produzir qualquer rótulo de tempo que eles desejem.
LinkingProtocol(ligar rótulos de tempo de Alice com rótulos de tempo previamente gerado por Trent) A → T : Hm, A T → A : SKRT ( n, A,Hm, tn, In-1, Hm-1, tn-1, Ln ) onde:Ln = H (In-1, Hm-1, tn-1, Ln-1 ) E após Trent rotular o próximo tempo (carimbo): T → A : In+1 , Identificação do documento posterior ao originador. • Problemas? • Documento fictício
LinkingProtocol • Hm : valor do hash de m que Alice deseja ver com rótulo de tempo tn. • n : indica um número de sequência do pedido para rotular o tempo, ou seja, é o n-ésimo rótulo de tempo que Trent emitiu. • A : Alice é o originador do pedido de rótulo de tempo. • tn : é o n-ésimo rótulo de tempo • tn-1 : é o rótulo de tempo prévio ao documento m • In-1, Hm-1, tn-1: identificação do documento prévio, Hash do documento prévio, rótulo de tempo do documento prévio. • Ln = H (In-1, Hm-1, tn-1, Ln-1) : Link do n-ésimo pedido referenciando o link do pedido para rotular o documento prévio.
LinkingProtocol • Se alguém questionar o rótulo de tempo do documento de Alice ( In ), ela pode provar que seu rótulo de tempo está entre os rótulos de tempo de um documento prévio ( In-1 ) e o rótulo de tempo de um documento posterior ( In+1 ) ao seu. • Este protocolo torna muito difícil para Alice e Trent conspirarem e produzirem um documento rotulado com um tempo diferente do que o tempo real. • Trent não pode “adiantar a data” de um documento para Alice, visto que ele precisa saber previamente qual rótulo de documento virá antes. • Trent não pode “antecipar uma data” de um documento para Alice, visto que ele precisa embutir o rótulo de tempo de um documento emitido imediatamente após a data pretendida, e esse documento já foi emitido.
Protocolo distribuído • Pessoas morrem. • Rótulos de tempo ficam perdidos. • Muitas coisas podem acontecer entre uma rotulação de tempo de um documento e o desafio para Alice obter uma cópia de rótulos de tempo de documentos passados In-1 .
Protocolo distribuído • Este problema pode ser aliviado por considerar, por exemplo, os prévios rótulos de tempo de k pessoas, gerados aleatoriamente por Alice, e então, Alice enviar para cada uma dessas os identificadores das próximas k pessoas. • Alice terá uma grande chance de descobrir pessoas que ainda tem seus rótulos de tempo.
Protocolo distribuído Usando Hm como entrada, A : V1, V2, V3, ... Vk , Alice gera uma string de Vi onde: Vi =produzidos por geradores pseudo-randômicosseguros. Alice interpreta cada destes valores como a identificação, I, de uma outra pessoa. A → P1 : Hm , V1 A → P2 : Hm , V2 . . . . . ........ ......... A →Pk : Hm , Vk Pi→A : SKRP( Hm, tn) A : armazena
Protocolo distribuído O gerador de números pseudos-aleatórios, seguro criptograficamente, impede Alicede deliberadamente escolher identificadores I´s corruptos como verificadores Vi . Este protocolo funciona porque para Alice falsificar um rótulo de tempo teria que convencer a todas das K pessoas a cooperarem. Como ela escolheu identificadores pessoais aleatoriamente, a chance contra disto é muito alta. Quanto mais corrupta for a sociedade é, maior, o número k deve ser.
Assinaturas em grupoVeja o seguinte problema: Uma companhia tem diversos computadores, cada conectado a uma rede local. Cada departamento da companhia tem sua própria impressora (também conectada à rede) e somente pessoas daquele departamento são permitidas usarem a impressora do seu departamento. Antes de imprimir, portanto, a impressora deve estar certa de que o usuário é do departamento.
Assinaturas em grupo Ao mesmo tempo, a companhia quer privacidade; o nome do usuário não pode ser revelado. Se, contudo, alguém descobre no fim do dia que a impressora foi usada por demasia, o diretor deve ser capaz de descobrir que fez mal uso da impressora, e enviar a ele uma cobrança. A solução deste problema é chamada Assinaturas em grupo.
Assinaturas em grupo (propriedades) • Somente membros do grupo podem assinar. • Quem recebe pode verificar que a assinatura é válida e pertence ao grupo. • Quem recebe não consegue identificar qual membro do grupo assinou. • No caso de disputa, ou após um período estabelecido, a assinatura pode ser “aberta” para revelar a identidade de quem assinou.
Assinaturas em grupo (1)Árbitro gera um conjunto de pares (KU,KR) e entrega a cada membro do grupo uma lista diferente contendo KR´s únicas. Nenhuma dessas chaves privadas, em qualquer lista são idênticas. Total de pares de chaves (KU,KR) = n * m ( n membros, m pares de chaves cada membro ) (2) Árbitro publica a lista de todas as KU´s para o grupo, em ordem aleatória. Ele guarda um registro secreto de quais chaves pertencem a quem.
Assinaturas em grupo (3) Quando um membro deseja (usar a impressora) deve assinar um documento, escolhe uma chave aleatoriamente de sua lista pessoal. (4) Quando alguém deseja verificar a qual grupo pertence a assinatura, busca na lista para a correspondente chave KU e verifica a assinatura. (5) No caso de disputa, o árbitro sabe a quem pertence a KU.