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

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

Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se.

Apresentações semelhantes


Apresentação em tema: "Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se."— Transcrição da apresentação:

1 Protocolos Criptográficos

2 Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se escolher k números tal que k1. k2. k3.... k(k-1). kk = 1 mod (p-1).(q-1) Com isto tem-se computação com múltiplas chaves

3 Assinaturas múltiplas Alice e Bob devem assinar um documento para validá-lo Sejam três chaves (múltiplas): Ka (secreta de Alice), Kb (secreta de Bob) e Kp (pública) Alice assina: M1 = M Ka mod n Bob pode verificar a assinatura: M = M1 Kb Kp mod n Bob assina: M2 = M1 Kb mod n Qualquer um pode verificar a assinatura (de ambos): M = M2 Kp mod n A ordem de assinatura entre Bob e Alice é irrelevante

4 Distribuição de mensagens Sejam três chaves (múltiplas): K1, K2 e K3 Alice recebe K1 e K2 Bob recebe K2 e K3 Carol recebe K3 e K1 Para enviar somente para Alice: cifrar com K3 Para enviar somente para Bob: cifrar com K1 Para enviar somente para Carol: cifrar com K2 Para enviar para Alice e Bob: cifrar com K1 e K3 Para enviar para Alice e Carol: cifrar com K2 e K3 Para enviar para Bob e Carol: cifrar com K1 e K2 Obs: Alice, Bob e Carol não se comunicam; destinatários devem ser identificados (para saberem quais chaves utilizar)

5 Assinatura cega (e, n) e (d,n) são as chaves pública e privada de Bob (1)Alice escolhe um valor randômico k, menor que n. Ela cega o documento M calculando T = M.k e mod n (2)Bob assina T com sua chave secreta, calculando T d mod n = (M.k e ) d mod n = M d.k e.d mod n = M d.k mod n (3)Alice retira o fator de cegamento, dividindo o documento assinado por Bob por k. Ela multiplica a mensagem recebida pelo inverso multiplicativo de k. Ela obtém M d.k. k -1 mod n = M d mod n

6 Comprometimento Alice deve se comprometer com uma mensagem Após preparar a mensagem ela não deve mais ter condições de alterar ou negar a mensagem Isto poderia ser obtido facilmente através de assinatura digital, mas no caso de um comprometimento (Bit Commitment), ela não deseja que ninguém conheça a mensagem antes de uma determinada data As outras pessoas, por outro lado, querem ter certeza que Alice, uma vez tendo preparado a mensagem, não a mude mais

7 Comprometimento Obtido com o uso de números randômicos: (1)Bob gera um randômico R e o envia para Alice (2)Alice inclui R na sua mensagem M e cifra o conjunto com uma chave K qualquer, também randômica, usando um algoritmo de chave única (IDEA, AES, etc). O algoritmo foi previamente acertado com Bob. Ela então envia E( (M,R), K) para Bob. (3)Quando chega o momento de M ser revelado, o protocolo continua: Alice envia K para Bob (4)Bob decifra a mensagem recebida previamente, confere o valor de R e obtém então M

8 Prova de Identidade com conhecimento zero Alice deseja se identificar (autenticar) frente a Bob Problema: Bob pode gravar todas as mensagens, e depois reproduzi-las para Carol Assim, Bob poderia se passar por Alice frente a Carol Solução: Não fornecer informação extra (ou seja, conhecimento) durante a prova de identidade

9 Prova de Identidade com conhecimento zero Chave pública: v, tal que v é um resíduo quadrático em módulo n e existe o inverso multiplicativo (v -1 existe) Chave privada: o menor s tal que s = sqrt(v -1 ) mod n Uma rodada de credenciamento: (1)Alice escolhe um r randômico, menor que n, calcula x = r 2 mod n, e envia x para Bob (2)Bob escolhe um bit b aleatoriamente, e envia para Alice (3)Se b=0, Alice envia r para Bob. Se b=1, Alice envia y = r. s mod n (4)Se b=0, Bob confirma que x = r 2 mod n, verificando que Alice conhece sqrt(x), ou seja, r. Se b=1, Bob confirma que x = y 2. v mod n, verificando que Alice conhece s = sqrt(v -1 )

10 Prova de Identidade com conhecimento zero Uma rodada de credenciamento: (1)Alice escolhe um r randômico, menor que n, calcula x = r 2 mod n, e envia x para Bob. (2)Bob escolhe um bit b aleatoriamente, e envia para Alice. (3)Se b=0, Alice envia r para Bob. Se b=1, Alice envia y = r. s mod n. (4)Se b=0, Bob confirma que x = r 2 mod n, verificando que Alice conhece sqrt(x), ou seja, r. Se b=1, Bob confirma que x = y 2.v mod n, verificando que Alice conhece s = sqrt(v -1 ). Em uma rodada Alice tem 50% de chance de usar sua chave secreta (ou Bob tem 50% de chance de enganar Carol se fazendo passar por Alice)

11 Prova de Identidade com conhecimento zero O protocolo deve ser repetido t vezes, quando as chances de uma autenticação falsa caem para uma em 2 t Alice nunca deve repetir o valor de r. Se ela fizer isto, Bob envia uma vez b=0 e outra vez b=1 e obtém ambas as respostas, podendo mais tarde se fazer passar por Alice Para acelerar o processo, pode-se trabalhar com k bits de cada vez. Com isto são necessários k valores para v e s. Os valores de x e y enviados são os produtos dos bits individuais

12 Prova de Identidade com conhecimento zero Por exemplo, seja n=35 (5. 7). Os possíveis resíduos quadráticos são:

13 Prova de Identidade com conhecimento zero Para k = 4, Alice recebe como chave pública [4, 11, 16, 29]. Sua chave secreta é [3, 4, 9, 8]. Uma rodada pode ser então como segue: (1)Alice escolhe r = 16. Ela então calcula x = 16 2 mod 35 = 11, e envia para Bob. (2)Bob escolhe b = [1,1,0,1] e envia para Alice. (3)Alice calcula 16. ( ) mod 35 = 31 e envia para Bob (4)Bob confirma que ( ) mod 35 = 11

14 Guillou-Quisquater Chave pública: J, a identidade de Alice (string de identificação, data de validade, números de identificação) De conhecimento público: n (produto de dois primos secretos) e v (expoente) Chave privada: K, tal que J.K v = 1 mod n Credenciamento: (1)Alice J para Bob. Após, escolhe um r randômico, entre 1 e n-1, calcula T = r v mod n e envia para Bob (2)Bob escolhe d randômico, entre 0 e v-1, e envia para Alice (3)Alice calcula M = rK d mod n, e envia para Bob (4)Bob calcula M v J d mod n = (rK d ) v J d mod n = r v (K v ) d J d mod n = r v (JK v ) d mod n = r v (1) d mod n = r v mod n = T

15 Transferência com esquecimento Alice deve transmitir um grupo de mensagens para Bob, e Bob deve receber somente um subconjunto delas, sem que Alice tenha condições de saber quais as mensagens recebidas Sozinho este protocolo não tem muitas aplicações práticas, mas ele é importante para protocolos mais complexos No caso a seguir, Alice envia duas mensagens para Bob. Bob recebe somente uma, que Alice não tem condições de saber qual é

16 Transferência com esquecimento (1)Alice gera dois pares de chaves (quatro chaves no total) e envia as duas chaves públicas para Bob (2)Bob escolhe uma chave randômica R de um algoritmo simétrico (DES, IDEA, AES, etc). A seguir, ele escolhe uma das duas chaves públicas de Alice, cifra R com esta chave e envia para Alice, sem dizer qual das duas chaves públicas ele escolheu (3)Alice decifra a mensagem recebida duas vezes, uma vez com cada chave secreta. Em um dos casos ela restaura R; no outro caso ela só obtém uma seqüência de bits (tão aleatória quanto R)

17 Transferência com esquecimento 4)Alice cifra uma das suas mensagens com uma das chaves, e a outra mensagem com a outra chave. A seguir, ela envia as duas para Bob (5)Bob recebe as duas mensagens, e decifra ambas com sua chave R. Uma das mensagens fará sentido; a outra somente irá revelar um string de bits sem sentido Bob possui agora uma das duas mensagens de Alice, e Alice não sabe qual das duas ele conseguiu ler Existem muitas variações - transferir um de dois segredos (como acima), transferir um de n segredos, transferir um segredo com probabilidade de 50%, etc


Carregar ppt "Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se."

Apresentações semelhantes


Anúncios Google