RSA: criptografia de chave pública
Escolha dois primos, calcule a chave pública e a privada, cifre e decifre números pequenos e veja por que fatorar n protege a mensagem.
Escolha dois primos, calcule a chave pública e a privada, cifre e decifre números pequenos e veja por que fatorar n protege a mensagem.
Imagine que você precisa receber uma mensagem secreta de alguém com quem nunca falou. Se os dois precisam combinar uma senha antes, alguém pode interceptá-la. A criptografia de chave pública resolve isso com um par de chaves: uma pública, que pode ser divulgada, e uma privada, que fica só com o dono.
O RSA, criado em 1977 por Ron Rivest, Adi Shamir e Leonard Adleman, é o exemplo mais conhecido. Esta aula usa números pequenos para você ver a matemática por dentro. Na prática, os primos têm centenas de dígitos.
A chave pública é o par (e, n), e a privada é (d, n). Para o exemplo clássico, p = 61 e q = 53 dão n = 3233 e φ(n) = 3120. Com e = 17, a chave privada é d = 2753. A mensagem 65 vira 2790 e volta a 65.
O ponto central é o teorema de Euler: se mdc(m, n) = 1, então m^φ(n) ≡ 1 (mod n). Como e · d = 1 + k · φ(n) para algum k, temos:
(mᵉ)ᵈ = m^(ed) = m^(1 + kφ(n)) = m · (m^φ(n))ᵏ ≡ m · 1ᵏ = m (mod n)
Assim, decifrar desfaz a cifragem. O mesmo resultado vale para todo m de 0 a n − 1, inclusive quando m tem fator comum com n (o caso é tratado separadamente na teoria, mas não atrapalha a conta).
Quem conhece (e, n) pode calcular d se souber φ(n). E φ(n) = (p − 1)(q − 1) só é fácil de calcular se você já conhece p e q. Portanto, o problema central é fatorar n. Para n = 3233, basta tentar divisores até 53: são poucas tentativas. Para n com 600 dígitos, nenhum método conhecido fatora em tempo razoável. Esse é o motivo de o RSA usar primos grandes.
A aula mostra a quantidade de tentativas por divisão de tentativa, que cresce com o menor primo de n. É um cálculo pequeno, para dar a noção da escala.
Na prática, o RSA costuma cifrar uma chave simétrica, e não a mensagem inteira, porque é mais lento.
Com p = 61 e q = 53, use e = 17 e m = 65. Confira que o cifrado é 2790 e que a chave privada d é 2753.
Use o caso notável '61 e 53'. As linhas 'Cifrado' e 'Chave privada' mostram os valores.
Por que e não pode dividir φ(n)? Tente e = 2 com p = 61 e q = 53 e explique a mensagem de erro.
O expoente precisa ser primo com φ(n). Se não for, a multiplicação modular por e não tem inverso.
Quem conhece apenas a chave pública (e, n) precisa fatorar n. Compare o número de tentativas para n = 3233 e para n = 11 413. O que muda quando p e q crescem?
Olhe a linha 'Tentativas de divisão'. Ela cresce com o menor fator, que é o menor entre p e q.
Para cada m de 0 a n − 1, a cifragem gera um c diferente. Por que essa propriedade é essencial para que a decifragem funcione?
Olhe o gráfico m ↦ mᵉ mod n: os pontos não se repetem. Se dois m dessem o mesmo c, não haveria como decifrar.
Nenhuma aula usa esta como pré-requisito ainda.
Cada conceito leva à lista de aulas que o usam, por disciplina.
Trilha de estudo: Números · Mapa de conceitos