A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Canal Sub-liminar. Algoritmo de assinatura digital modificado para que duas pessoas troquem segredos através do uso aparentemente normal deste algoritmo.

Apresentações semelhantes


Apresentação em tema: "Canal Sub-liminar. Algoritmo de assinatura digital modificado para que duas pessoas troquem segredos através do uso aparentemente normal deste algoritmo."— Transcrição da apresentação:

1 Canal Sub-liminar

2 Algoritmo de assinatura digital modificado para que duas pessoas troquem segredos através do uso aparentemente normal deste algoritmo Já foram descobertos canais sub-liminares em diversos algoritmos Por exemplo, para El-Gamal e DSA Não existe canal sub-liminar em RSA

3 Canal Sub-liminar em El-Gamal El-Gamal »p: primo (pode ser compartilhado por vários usuários) »g: menor que p (pode ser compartilhado) »Chave públicay: igual a g x mod p »Chave privadax: menor que p »Assinatura Escolher k: qualquer, primo relativo a p–1 a (assinatura) = g k mod p b (assinatura) tal que M = ( x.a + k.b ) mod (p–1) »Verificação Aceitar se (y a.a b ) mod p = g M mod p

4 Canal Sub-liminar em El-Gamal Para enviar a mensagem sub-liminar S através da mensagem M, os pares (M,p), (S,p) e (S,p-1) devem ser primos relativos. Alice envia S para Bob (que conhece a chave secreta de Alice) simplesmente enviando a mensagem M assinada Alice calcula: a = g S mod p e resolve a sequinte equação para b: M = ( x.a + S.b ) mod (p–1) a e b formam a assinatura da mensagem M

5 Canal Sub-liminar em El-Gamal Para recuperar S, calcula-se S = (b –1. (M – x.a)) mod (p–1) Por exemplo, seja p = 11 e g = 2. A chave privada é escolhida como x = 8. A chave pública é então 2 8 mod 11 = 3 Para enviar a mensagem S = 9 assinando a mensagem inóqua M = 5, calcula-se a = 2 9 mod 11 = 6, e resolve-se 5 = 8. 6 + 9. b mod 10, o que fornece b = 3 A assinatura da mensagem M=5 com os valores a = 6 e b = 3 é confirmada por (2 8 ) 6. 6 3 = 2 5 mod 11, e a mensagem secreta é recuperada calculando-se S = 3 –1.(5 – 8.6) mod 10 = 7. 7 mod 10 = 9

6 Canal Sub-liminar em DSA DSA possui o mesmo canal sub-liminar de El Gamal Duas pessoas que conheçam x (a chave secreta) podem trocar informação através do valor de k Além disto, DSA apresenta um canal sub-liminar que não requer o conhecimento da chave secreta Um bit de informação pode ser enviado escolhendo-se k de tal maneira que ele seja um resíduo quadrático de um número primo n previamente escolhido

7 Canal Sub-liminar em DSA Um valor a é um resíduo quadrático em módulo n se existir um valor qualquer que, elevado ao quadrado em módulo n, forneça como resultado o próprio a Deve existir um x tal que x 2 = a mod n. Se n=7, tem-se que 1, 2 e 4 são resíduos quadráticos, enquanto que 3, 5 e 6 são resíduos não quadráticos: Resíduos quadráticosResíduos não quadráticos 1 2 = 1 = 1 mod 7não existe x 2 = 3 mod 7 2 2 = 4 = 4 mod 7não existe x 2 = 5 mod 7 3 2 = 9 = 2 mod 7não existe x 2 = 6 mod 7 4 2 = 16 = 2 mod 7 5 2 = 25 = 4 mod 7 6 2 = 36 = 1 mod 7

8 Canal Sub-liminar em DSA Resíduos quadráticosResíduos não quadráticos 1 2 = 1 = 1 mod 7não existe x 2 = 3 mod 7 2 2 = 4 = 4 mod 7não existe x 2 = 5 mod 7 3 2 = 9 = 2 mod 7não existe x 2 = 6 mod 7 4 2 = 16 = 2 mod 7 5 2 = 25 = 4 mod 7 6 2 = 36 = 1 mod 7 Se n for primo, existem exatamente (n–1)/2 resíduos quadráticos e a mesma quantidade de resíduos não quadráticos Dos resíduos quadráticos, todos apresentam dois valores de x, um entre 1 e (n–1)/2 e outro entre (n+1)/2 e (n–1)

9 Canal Sub-liminar em DSA Para Alice e Bob trocarem um bit sub-liminarmente, eles só necessitam escolher um valor para um primo n qualquer Para transmitir o valor 1, Alice escolhe um valor de k para o qual r seja um resíduo quadrático em módulo n; e para transmitir o valor 0, escolhe k tal que r seja um resíduo não quadrático Ela faz isto assinando a mensagem com valores randômicos de k até obter o valor de a adequado Como resíduos quadráticos e não quadráticos existem em igual quantidade, esta tarefa não é complexa Ao receber a mensagem, Bob verifica a validade da assinatura e depois recupera o valor do bit transmitido sub- liminarmente testando se r é ou não um resíduo quadrático em módulo n.

10 Protocolos Criptográficos

11 Assinatura simultânea de contrato (1)Alice e Bob geram n pares de chaves AES (ou DES, ou IDEA, ou outro algoritmo de chave única) – 2n chaves, agrupadas aos pares. Cada par de chaves não tem nenhuma relação especial (2)Alice e Bob geram n pares de mensagens. Cada par, quando reunido, contêm um hash do contrato, a assinatura de Alice (ou Bob) sobre o hash e eventualmente um timestamp. Cada mensagem de cada par também deve conter um identificador único em texto claro, algo do tipo Esta é a metade esquerda do meu i-ésimo par, Esta é a metade direita do meu i-ésimo par. O contrato é considerado assinado por Alice (ou Bob) se Bob (ou Alice) conseguir produzir as duas metades do mesmo par

12 Assinatura simultânea de contrato (3)Alice e Bob cifram cada par de mensagens com um par de chaves AES (ou o algorimo previamente combinado), a metade esquerda com uma das chaves e a metade direita com a outra chave. Eles também acrescentam informação para que o outro saiba qual mensagem é qual metade de qual par (4)Alice e Bob enviam um para o outro suas 2n mensagens cifradas (5)Alice e Bob, alternadamente, trocam seus pares de chaves, usando transferência com esquecimento. Assim, cada um possui uma das duas chaves de cada par, mas o outro não sabe qual das duas chaves foi transferida com sucesso

13 Assinatura simultânea de contrato (6)Alice e Bob decifram uma das metades de cada mensagem, usando as chaves que eles receberam no passo anterior. Eles podem neste instante verificar que as mensagens são válidas e bem-formadas (7)Alice e Bob trocam o primeiro bit de cada uma das 2n chaves AES (8)Alice e Bob trocam o segundo bit de cada chave, e assim por diante, até que todos os bits tenham sido transferidos (9)Alice e Bob decifram as metades restantes de cada par de chaves, e o contrato é considerado assinado

14 Assinatura simultânea: falsificação (1)Alice (ou Bob) pode enviar strings randômicos nos passos (4) e (5). Bob descobre isto no passo (6), e para antes que Alice possa decifrar qualquer um dos seus pares (2)Alice pode enviar uma das metades corretamente, mas um string randômico para a outra metade. Devido à transferência com esquecimento, entretanto, ela tem 50% de enganar Bob em cada par, e 1/2 n se considerarmos n pares

15 Assinatura simultânea: falsificação (3)Alice pode enviar bits randômicos nos passos (7) e (8). Mas de novo Bob tem a probabilidade a seu lado, já que Alice não sabe quais chaves Bob recebeu nos passos (5) e (6) (4)Alice pode seguir o protocolo até o passo 8, mas parar assim que tiver recebidos bits suficientes para montar um ataque de força bruta. Mas neste caso Bob também pode montar o mesmo ataque, com a mesma informação (ou no pior dos casos com um bit a menos)

16 Mensagem com recibo Alice deseja enviar uma mensagem para Bob, mas não deseja que Bob a leia antes de assinar um recibo. (1)Alice gera uma chave AES randômica R, cifra sua mensagem com esta chave e envia para Bob (2)Alice gera n pares de chaves. A primeira chave de cada par é randômica; a segunda é o ou-exclusivo da primeira metade com R (3)Alice cifra uma mensagem padrão qualquer com estas 2n chaves AES (4)Alice envia todas as mensagens para Bob, devidamente identificadas (qual pertence a qual par)

17 Mensagem com recibo (5)Bob gera n pares de chaves AES (6)Bob gera n pares de mensagens. Cada par, quando reunido, forma um recibo válido para as chaves que Alice enviou (7)Bob cifra cada par de mensagens com um par de chaves DES, a metade esquerda com uma das chaves e a metade direita com a outra chave. Ele também acrescenta informação para que Alice saiba qual mensagem é qual metade de qual par (8)Bob envia todas as mensagens para Alice

18 Mensagem com recibo (9)Alice e Bob, alternadamente, trocam seus pares de chaves, usando transferência com esquecimento. Assim, cada um possui uma das duas chaves de cada par, mas o outro não sabe qual das duas chaves foi transferida com sucesso (10) Alice e Bob decifram uma das metades de cada mensagem, usando as chaves que eles receberam no passo anterior. Eles podem neste instante verificar que as mensagens são válidas e bem-formadas

19 Mensagem com recibo (11) Alice e Bob trocam o primeiro bit de cada uma das 2n chaves AES (12) Alice e Bob trocam o segundo bit de cada chave, e assim por diante, até que todos os bits tenham sido transferidos (13) Alice e Bob decifram as metades restantes de cada par de chaves. Alice obtém um recibo válido de Bob, e este obtém a chave R de Alice (pelo ou-exclusivo de duas metades correspondentes) Alice pode tentar trapacear, enviando uma outra chave (que não seja R) para Bob. Mas neste caso ela obtém um recibo pela chave falsa

20 Troca simultânea de segredo Este caso é uma variação do caso anterior, em que Alice e Bob trocam mensagens (com ou sem recibo). Tanto Alice como Bob executam os passos (1) a (4), cada um para o seu segredo. Se um recibo é desejado, tanto Bob quanto Alice executam os passos (5) a (8); se não se deseja recibo estes passos podem ser eliminados. Nos passos (9) a (12), Alice e Bob trocam os bits das suas chaves Este método garante a troca simultânea de duas mensagens cifradas, mas não garante nada sobre a utilidade (ou validade) de cada mensagem

21 Dinheiro Digital (1)Alice pede ao Banco uma ordem de pagamento de $1000 (2)O Banco retira $1000 da conta de Alice, prepara uma ordem de pagamento digital e a entrega para Alice. Esta ordem deve conter o valor da quantia, um número randômico de identificação (que deve ser único entre os registros do Banco) e a assinatura digital do Banco (3)Alice leva a ordem até Bob, que verifica a validade da assinatura do Banco (4)Bob leva a ordem até o Banco, que confere o número de identificação e sua assinatura. Se são válidos, o Banco paga para Bob Alice pode ser rastreada pelo Banco

22 Dinheiro Digital (1)Alice prepara n ordens de pagamento (seja n = 100), nos moldes desejados pelo Banco (cada ordem deve conter o valor e um número randômico R único e diferente dos demais) (2)Alice cega as 100 ordens e envia todas para o Banco (3)O Banco escolhe aleatoriamente 99 destas ordens (n–1) e pede que Alice retire o fator de cegamento (4)Verificando que as 99 ordens são bem-formadas, o Banco assina a ordem restante e debita $1000 da conta de Alice Alice permanece anônima frente ao Banco

23 Dinheiro Digital (5)Alice retira o fator de cegamento da ordem assinada, e fica com uma ordem anônima. Note-se que o Banco não sabe o valor do número R desta ordem, o que garante o anonimato de Alice. O Banco também não tem como garantir que a última ordem é bem-formada ou que o valor é de $1000, mas Alice tem somente 1% de chances de enganar o Banco (6)Alice leva a ordem até Bob, que verifica a validade da assinatura do Banco (7)Bob leva a ordem até o Banco, que anota o número de identificação R e verifica sua assinatura. Se a assinatura é válida e o número R ainda não consta como pago, o Banco paga para Bob Alice tentar gastar a ordem duas ou mais vezes

24 Dinheiro Digital (1)Alice prepara n ordens de pagamento (seja n = 100), nos moldes desejados pelo Banco. Cada ordem contém: - o valor da ordem ($1000) - um número R, randômico - m pares de strings de Identidade (m deve variar entre 20 e 40); cada string contém a identidade de Alice, dividida pela própria Alice em duas metades por divisão de segredo e cegadas individualmente (com fatores de cegamento diferentes) (2)Alice cega as 100 ordens e envia todas para o Banco (3)O Banco escolhe aleatoriamente 99 destas ordens (n–1) e pede que Alice retire o fator de cegamento, tanto da ordem como dos 2m strings de Identidade

25 Dinheiro Digital (4)Verificando que as 99 ordens são bem-formadas, ou seja, o valor está correto, o número R é unico e os m pares de strings, quando reunidos, revelam a identidade de Alice, o Banco assina a ordem restante e debita $1000 da conta de Alice (5)Alice retira o fator de cegamento da ordem assinada, e fica assim com uma ordem anônima (6)Alice leva a ordem até Bob, que verifica a validade da assinatura do Banco

26 Dinheiro Digital (7)Bob fornece para Alice m bits de seleção. Em função dos valores destes bits, Alice retira o fator de cegamento ou da metade esquerda ou da metade direita de cada um dos m pares de strings de Identidade. Obs: para garantir que Alice fornece os fatores de cegamento corretos, cada metade pode conter, adicionalmente, um texto identificador (8)Bob leva a ordem até o Banco, que anota o número de identificação R e verifica sua assinatura. Se a assinatura é válida e o número R ainda não consta como pago, o Banco paga para Bob

27 Dinheiro Digital Se a ordem é duplicada (R já consta como pago), o Banco examina os strings de Identidade das duas ordens –Se são idênticos, Bob é quem duplicou a ordem –Se são diferentes, Alice é quem duplicou a ordem. Para recuperar a Identidade de Alice, o Banco reúne o segredo dos strings de Identidade, utilizando as metades esquerda de uma ordem com as metades direita de outra, e vice- versa. As chances dos dois comerciantes terem escolhidos os mesmos bits de seleção são de 1 para 2 m, e naquela posição em que os bits de seleção diferem a identidade de Alice é revelada

28 Dinheiro Digital - Micropagamentos (1)Alice pede ao Banco uma pilha de moedas, indicando o número de moedas (n) desejadas e o valor de cada uma (v). (2)O Banco fornece para Alice um identificador secreto S, e um identificador público P (3)Alice calcula n vezes o hash de S. O último hash (h n (S)) é a moeda do topo da pilha; o penúltimo hash (h n-1 (S)) é a moeda seguinte da pilha, e assim por diante (4) O Banco calcula n+1 vezes o hash de S, e armazena h n+1 (S), juntamente com P

29 Dinheiro Digital - Micropagamentos (5) Para gastar uma moeda, Alice fornece ao vendedor a primeira moeda da pilha (h n (S)) e seu identificador público P (6) O vendedor envia a moeda ao Banco, para ser validada (7) O Banco calcula o hash da moeda e compara com o valor armazenado (se h(h n (S)) = (h n+1 (S)) ) (8)O Banco debita $v da conta de Alice, e valida a moeda junto ao vendedor. A seguir o Banco substitui h n+1 (S) por h n (S) (9)Na próxima transação, Alice envia h n-1 (S), e o Banco compara h(h n-1 (S)) com o hash armazenado (h n (S)) (10) O procedimento é repetido até Alice gastar todas suas moedas

30 Votação digital (1)Somente eleitores cadastrados podem votar (2) Ninguém pode votar duas vezes (3)O voto é secreto (4)Ninguém deve poder duplicar o voto de ninguém (5)Ninguém deve poder alterar o voto de ninguém (6) Cada eleitor deve poder verificar se o seu voto foi contado

31 Protocolo 1 (1)Cada eleitor cifra seu voto com a chave pública de uma Central de Votação (CV) (2)Cada eleitor envia seu voto (3)A CV decifra os votos e realiza a contagem O voto é secreto (requisito 3), mas todos os demais requisistos não são obedecidos

32 Protocolo 2 (1)Cada eleitor assina seu voto com sua chave secreta e a seguir cifra com a chave pública de uma Central de Votação (CV) (2)Cada eleitor envia seu voto (3)A CV decifra os votos, verifica as assinaturas dos eleitores e realiza a contagem Todos os requisitos são obedecidos, exceto que o voto não é secreto

33 Protocolo 3 (1)Cada eleitor gera 10 (ou mais) conjuntos de mensagens. Cada conjunto contém votos para todas as situações possíveis (para todos os candidatos). Os votos de cada conjunto contêm todos um número randômico R, grande o suficiente para evitar duplicações com outros conjuntos (2)Cada eleitor cega todos os seus conjuntos, e envia todos para a Central (3)A Central verifica se o eleitor ainda não votou (ainda não executou o protocolo), seleciona 9 conjuntos (todos menos um) e pede ao eleitor os fatores de cegamento. Abrindo as mensagens, a Central pode ver que os votos são bem- formados. A seguir, a Central assina os votos do conjunto ainda cego

34 Protocolo 3 (4)O eleitor recebe seu conjunto assinado e retira o fator de cegamento. A seguir, ele escolhe qual o voto que deseja usar, e destrói os demais (5)O eleitor cifra seu voto (com uma outra chave pública da Central) e envia para a Central (6)A Central decifra o voto, confere sua assinatura, registra o número R (e verifica duplicações) e realiza a contagem (7)A Central publica o resultado, listando cada voto com seu número R. Através deste número cada eleitor pode conferir que seu voto foi contado

35 Protocolo 4 Divide-se a Central em duas, uma de credenciamento (CC) e outra de Votação (CV) (1)Cada eleitor envia uma mensagem assinada para a CC, pedindo uma cédula eleitoral (2)A CC verifica a identidade do eleitor e envia para ele um número de autenticação K, cifrado com a chave pública do eleitor (3)A CC envia os números de identificação válidos para a CV

36 Protocolo 4 (4)Cada eleitor prepara seu voto, anexando o número K e um randômico R. Ele cifra este voto com a chave pública da CV e o envia para a CV (5)A CV decifra o voto, verifica o número de identificação K, registra o número R e conta o voto (6)A CV publica o resultado, listando cada voto com o R correspondente Este protocolo funciona se a única comunicação que existir entre a CC e a CV for o envio da lista de números K

37 Protocolo 4 modificado Divide-se a Central em três, uma de credenciamento (CC), outra de Votação (CV) e outra de apuração (CA) (1)Cada eleitor envia uma mensagem assinada para a CC, pedindo uma cédula eleitoral (2)A CC verifica a identidade do eleitor e envia para ele um número de autenticação K, cifrado com a chave pública do eleitor (3)A CC envia uma lista dos números de identificação válidos para a CA, e uma lista dos eleitores válidos para a CV

38 Protocolo 4 modificado (4)Cada eleitor prepara seu voto, anexando o número K e um randômico R. Ele cifra este voto com a chave pública da CA e após assina o voto, enviando-o para a CV (5)A CV verifica a assinatura do eleitor, e a seguir devolve o voto original, assinado por ela, para o eleitor, como recibo (6)A CV retira as assinaturas dos eleitores e envia os votos para a CA

39 Protocolo 4 modificado (7)A CA decifra os votos, verifica o número de identificação K, registra o número R e conta o voto (8)A CA publica o resultado, listando cada voto com o R correspondente Em caso de divergências, o eleitor usa o seu recibo (o seu voto original, assinado pela CV) Este protocolo funciona se as três centrais somente se comunicam entre si para: CC -> CV: lista de eleitores válidos (chaves públicas) CC -> CA: lista de identificadores K CV -> CA: votos (sem assinaturas dos eleitores)

40 Protocolo 5 - Distribuído (1)Cada eleitor prepara seu voto: (a) Escreve o voto: V (b) Acrescenta um randômico Rn e cifra com a chave pública do eleitor n: En(V,Rn) (c) Acrescenta um randômico Rn-1 e cifra com a chave pública do eleitor n-1: En-1(Rn-1,En(V,Rn)) (d) Repete este procedimento até o eleitor número 1: R1,E1(R1,E2(R2,...,En-1(Rn-1,En(V,Rn)...) (e) A seguir, repete todo o procedimento (passos (b), (c) e (d)), com outros randômicos Assim, por exemplo, para quatro eleitores (A,B,C,D) cada voto teria a forma: Ea(R8,Eb(R7,Ec(R6,Ed(R5,Ea(R1,Eb(R2,Ec(R3,Ed(V,R4))))))))

41 Protocolo 5 (1)Cada eleitor prepara seu voto: Por exemplo, para quatro eleitores (A,B,C,D) cada voto teria a forma: Ea(R8,Eb(R7,Ec(R6,Ed(R5, Ea(R1,Eb(R2,Ec(R3,Ed(V,R4))))))))

42 Protocolo 5 (2)Todos os eleitores enviam seus votos para o eleitor número 1 (3)Cada eleitor, na sua, vez, confere se recebeu n votos, decifra todos os votos recebidos, verifica se um dos votos resultantes contem o seu randômico, embaralha os votos e envia todos para o eleitor seguinte (de acordo com a ordem inicial) (4)O passo (3) é executado n vezes. O último eleitor (de número n) envia os votos que ele processou novamente para o eleitor número 1.

43 Protocolo 5 (5)Este passo é semelhante ao passo (3). Cada eleitor, na sua vez, confere se recebeu n votos, decifra todos os votos, verifica se um deles contém o seu randômico, elimina os randômicos, assina os votos e envia todos para o eleitor seguinte (6) O último eleitor (de número n) decifra os votos (confere a assinatura do eleitor anterior e decifra os votos com sua chave secreta), obtendo assim uma lista (V,R) de votos e números randômicos. Ele assina todos os votos e envia para todos os participantes (7)Cada eleitor confere se o seu voto está presente e realiza a contagem

44 Protocolo 5 Objetivo da primeira passagem: embaralhar os votos Objetivo da segunda passagem: detectar substituição dos votos na primeira passagem Não é necessário detectar substituição na segunda passagem porque os votos são assinados Funções dos Randômicos: facilitar a identificação do voto pelo seu dono e impedir engenharia reversa do voto final para o inicial

45 Protocolo 5 Exemplo para 4 pessoas (Alice, Bob Carol e Dave): (1) Alice recebe 4 votos, no formato: Ea(R8,Eb(R7,Ec(R6,Ed(R5, Ea(R1,Eb(R2,Ec(R3,Ed(V,R4)))))))) (2) Alice decifra, confere seu randômico, embaralha e envia para Bob os votos, Eb(R7,Ec(R6,Ed(R5,Ea(R1,Eb(R2,Ec(R3,Ed(V,R4))))))) (3) Bob decifra, confere seu randômico, embaralha e envia para Carol os votos, Ec(R6,Ed(R5,Ea(R1,Eb(R2,Ec(R3,Ed(V,R4))))))

46 Protocolo 5 (4) Carol decifra, confere seu randômico, embaralha e envia para Dave os votos, Ed(R5,Ea(R1,Eb(R2,Ec(R3,Ed(V,R4))))) (5) Dave decifra, confere seu randômico, embaralha e envia para Alice os votos, Ea(R1,Eb(R2,Ec(R3,Ed(V,R4)))) (6) Alice decifra, confere seu randômico, assina e envia para Bob os votos, Sa(Eb(R2,Ec(R3,Ed(V,R4))))

47 Protocolo 5 (7) Bob verifica a assinatura de Alice, decifra, confere seu randômico, assina e envia para Carol os votos, Sb(Ec(R3,Ed(V,R4))) (8) Carol verifica a assinatura de Bob, decifra, confere seu randômico, assina e envia para Dave os votos, Sc(Ed(V,R4)) (9) Dave verifica a assinatura de Carol, decifra, confere seu randômico, assina e envia para todos os votos, Sd(V,R4) (9) Todos verificam a assinatura de Dave, conferem seu randômico e contam os votos, V,R4


Carregar ppt "Canal Sub-liminar. Algoritmo de assinatura digital modificado para que duas pessoas troquem segredos através do uso aparentemente normal deste algoritmo."

Apresentações semelhantes


Anúncios Google