Teorema chinês dos restos

Propaganda
Paar & Pelzl, Capítulos 6,7
Introdução à criptografia moderna: funções de sentido único
Vantagens: partilha de chaves desnecessária, não-repúdio, mecanismo de assinatura
Problemas: autenticação, eficiência
RSA e o problema da factorização
Construção do RSA, correcção
Testes de primalidade e abundância de números primos
Algoritmo de Euclides estendido
Teorema chinês dos restos
Teorema de Euler
Função de Euler
Exponenciação modular eficiente
Ataques: analíticos e quânticos; má utilização, maleabilidade e padding; side-channel
%%%% RSA
primos p,q (grandes)
n=p x q
e,d tais que
e x d = 1 mod (p-1) x (q-1)
e,n públicos
cifra(x,(e,n)) = x^e mod n
decifra(y,(d,n)) = y^d mod n
%%%% Teorema da abundância dos números primos
probabilidade de um número aleatório n ser primo é aproximadamente 1/log(n)
%%%% Algoritmo de Euclides estendido
AE(x,y) -> mdc(x,y) calculando divisões inteiras sucessivas
se x<y então mdc(x,y) = mdc(y mod x, x)
AEE(x,y) -> mdc(x,y)=ax+by
Se mdc(y mod x, x)=a(y mod x)+bx então mdc(x,y)=(b-a(y div x))x + ay
%%%% Teorema chinês dos restos
mdc(n,m)=1, a em Zn, b em Zm
existe exactamente um valor x mod (nm) tal que x = a mod n e x = b mod m
x = a.m.(minv mod n) + b.n.(ninv mod m) mod (nm)
%%%% Função de Euler
phi(n) = nº de elementos invertíveis de Zn
phi(xy) = phi(x) phi(y) se mdc(x,y)=1
phi(p^e) = p^e-p^(e-1) se p é primo
%%%% Teorema de Euler
se mdc(x,n)=1 então x^phi(n) = 1 mod n
INV conjunto dos invertíveis de Zn; |INV|=phi(n)
x.INV = INV (mod n)
produto INV = produto x.INV = x^phi(n). produto INV mod n
%%%% exponenciação modular eficiente (square & multiply)
x^e= (x^2)^(e/2) se e for par
x^e= x*(x^2)^((e-1)/2) se e for ímpar
Exercícios
Exercício 1 (nível 1)
Usando o Algoritmo de Euclides determine o máximo divisor comum entre
a. 957 e 1093.
b. 7469 e 2464.
c. 1819 e 3587.
Obtenha os coeficientes que permitem escrever o máximo divisor comum como combinação linear dos
valores dados em cada alínea.
Exercício 2 (nível 1)
Derive fórmulas simplificadas da função de Euler para os casos em que n é:
a. um número primo.
b. p x q em que p e q são primos.
Exercício 3 (nível 2)
a. Determine, usando a função de Euler, o cardinal dos grupos:
i. Z26*;
ii. Z143*.
b. Usando o Teorema de Euler obtenha o inverso de 2 em cada um dos grupos.
c. De um modo mais geral, o inverso em Z26* de um número x é x^11. Usando o Teorema de Euler,
explique porquê.
Exercício 4 (nível 2)
Calcule a exponenciação x^e mod m usando o algoritmo SQUARE-AND-MULTIPLY:
a. x = 2, e = 79, m = 101
b. x = 3, e = 197, m = 101
Exercício 5 (nível 2)
Suponha que um esquema de encriptação do RSA tem como parâmetros p = 31 e q = 37.
a. Qual das seguintes chaves e = 17 ou e = 16 pode ser uma chave pública admissível? Justifique.
b. Usando a chave obtida em a. cifre a mensagem y=2.
c. Determine d, a chave privada correspondente.
d. Verifique a correção da chave obtida em a, isto é, prove que o processo de decifra com a chave privada
de um texto cifrado com a chave pública leva à obtenção do texto original.
e. Usando o Teorema Chinês dos restos decifre a mensagem 15.
f. Determine um novo par de chaves pública e privada para os mesmos valores de p e q.
Exercício 6 (nível 2)
Suponha que dispõe de um mecanismo que responde verdade ou falso a questões da forma "n tem um
factor primo menor que k", onde n e k são números naturais. Mostre como pode utilizar este mecanismo
para quebrar o RSA.
Exercício 7 (nível 3)
Neste exercício pretende-se mostrar que o RSA é vulnerável a ataques de texto cifrado escolhido.
a. Mostre que o RSA é maleável, isto é, que c(x*y,e)= c(x,e)*c(y,e).
b. Assuma que Bob recebe uma mensagem cifrada y1 da Alice que o Oscar obteve por escuta. Mais tarde,
Oscar envia uma mensagem aparentemente inocente y2 a Bob, que a decifra, e consegue de alguma
forma obter o texto original correspondente x2. Mostre como é que Oscar pode obter o texto original x1
correspondente a y1.
Exercício 8 (nível 3)
(Ataque do módulo comum.) Num grupo de pessoas estabelece-se um módulo comum, isto é, escolhe-se
N=pxq e chaves públicas (e1,N), ..., (en,N) que são distribuídas pelos utilizadores, de tal modo que os ei
são todos coprimos com N. Mostre que um adversário que conheça dois criptogramas de um mesmo texto,
por exemplo, conhece c1=m^e1 mod N e c2=m^e2 mod N, é capaz obter o texto original m.
Nível 1 – 1,2,4
Nível 2 – 3,5,6
Nível 3 – 7,8
Download