Matemática Superior: Criptografia RSA
VOLUME 109
p × q
φ(n)
m≡c (mod n)
gcd(a,b)
aᵇ
e·d≡1
SEGREDOS MATEMÁTICOS!
c = mᵉ mod n
m = cᵈ mod n
φ(pq) = (p-1)(q-1)
e·d ≡ 1 (mod φ(n))

MATEMÁTICA

SUPERIOR

Criptografia RSA
A Arte Matemática dos Segredos

JOÃO CARLOS MOREIRA

Sumário

Capítulo 1 — Introdução à Criptografia e Segurança Digital
Capítulo 2 — Fundamentos da Teoria dos Números
Capítulo 3 — Números Primos e Fatoração
Capítulo 4 — Aritmética Modular
Capítulo 5 — Teorema de Fermat e Euler
Capítulo 6 — O Algoritmo RSA
Capítulo 7 — Implementação e Chaves Criptográficas
Capítulo 8 — Segurança e Ataques ao RSA
Capítulo 9 — Aplicações Práticas e Protocolos
Capítulo 10 — Futuro da Criptografia e Computação Quântica
Referências Bibliográficas

Introdução à Criptografia e Segurança Digital

Você já parou para pensar em quantos segredos digitais compartilha diariamente? Cada mensagem no WhatsApp, cada compra online, cada acesso ao banco pelo celular — todos protegidos por uma muralha invisível de matemática pura. Bem-vindo ao fascinante mundo da criptografia, onde números primos se transformam em guardiões de segredos e equações protegem bilhões de transações diárias. Neste capítulo inaugural, embarcaremos numa jornada que revela como a matemática se tornou a linguagem universal da privacidade digital, e como o algoritmo RSA revolucionou nossa forma de comunicar em segurança.

O Nascimento da Necessidade

Desde que a humanidade desenvolveu a escrita, surgiu a necessidade de manter segredos. Júlio César criou seu próprio código para comunicar-se com seus generais, Maria Stuart cifrou cartas que selaram seu destino, e na Segunda Guerra Mundial, a máquina Enigma desafiou as mentes mais brilhantes da época. Mas foi apenas com a era digital que a criptografia deixou de ser uma ferramenta militar e diplomática para tornar-se essencial no cotidiano de bilhões de pessoas.

Por Que Precisamos de Criptografia?

Em um mundo digital interconectado, a criptografia garante:

  • Confidencialidade: apenas destinatários autorizados leem mensagens
  • Integridade: mensagens não podem ser alteradas sem detecção
  • Autenticidade: confirmação da identidade do remetente
  • Não-repúdio: impossibilidade de negar envio ou recebimento
  • Privacidade: proteção de dados pessoais e corporativos

A Revolução da Chave Pública

Por milênios, a criptografia enfrentou um paradoxo fundamental: para estabelecer comunicação segura, era necessário primeiro compartilhar uma chave secreta — mas como fazer isso de forma segura? Em 1976, Whitfield Diffie e Martin Hellman propuseram uma solução revolucionária: a criptografia de chave pública. Era como inventar um cadeado que qualquer pessoa pudesse trancar, mas apenas o dono da chave pudesse abrir!

A Analogia do Cadeado Mágico

Imagine um sistema de correio onde:

  • Alice tem um cadeado especial e sua chave única
  • Ela distribui cópias abertas do cadeado para todos
  • Bob coloca uma mensagem numa caixa e a tranca com o cadeado de Alice
  • Apenas Alice, com sua chave privada, pode abrir a caixa
  • Mesmo Bob não consegue reabrir o que trancou!

O Trio Genial: Rivest, Shamir e Adleman

Em 1977, três pesquisadores do MIT transformaram a teoria em prática. Ron Rivest, Adi Shamir e Leonard Adleman criaram o primeiro sistema prático de criptografia de chave pública: o RSA. A beleza de sua descoberta estava em usar um problema matemático milenar — a dificuldade de fatorar números grandes — como base para a segurança digital moderna.

Experimento Mental

Tente fatorar mentalmente estes números:

  • 15 = ? × ? (Fácil: 3 × 5)
  • 21 = ? × ? (Ainda simples: 3 × 7)
  • 437 = ? × ? (Desafiador: 19 × 23)
  • E se o número tivesse 300 dígitos?
  • Esta dificuldade crescente é a base da segurança RSA!

A Matemática Como Guardiã

O RSA transforma a teoria dos números — um ramo da matemática pura estudado por curiosidade intelectual durante séculos — em uma ferramenta prática indispensável. Conceitos como números primos, aritmética modular e a função de Euler, antes confinados aos círculos acadêmicos, tornaram-se os pilares da economia digital global.

Ingredientes Matemáticos do RSA

  • Números Primos: Os blocos fundamentais indivisíveis
  • Multiplicação vs. Fatoração: Fácil numa direção, difícil na outra
  • Aritmética Modular: Matemática do relógio digital
  • Teoremas Clássicos: Fermat e Euler como arquitetos invisíveis
  • Exponenciação Modular: A operação mágica que embaralha e desembaralha

Impacto no Mundo Real

Hoje, o RSA e seus descendentes protegem trilhões de dólares em transações diárias. Cada vez que você vê um cadeado verde no navegador, complexos cálculos matemáticos estão trabalhando silenciosamente para proteger seus dados. É a matemática transformada em escudo digital, protegendo desde conversas íntimas até segredos de Estado.

RSA no Seu Dia a Dia

  • HTTPS: Navegação segura na internet
  • Email criptografado: PGP e S/MIME
  • Transações bancárias: Proteção de dados financeiros
  • Assinaturas digitais: Documentos com validade jurídica
  • VPNs: Túneis seguros de comunicação

Desafios e Oportunidades

A criptografia moderna enfrenta constantes desafios. Computadores tornam-se mais poderosos, novos ataques são descobertos, e no horizonte, a computação quântica promete revolucionar novamente o campo. Mas cada desafio traz oportunidades para inovação matemática, criando uma corrida armamentista intelectual fascinante entre criptógrafos e criptoanalistas.

Reflexão Crítica

  • Como a privacidade digital impacta sua vida diária?
  • Quais informações suas merecem proteção criptográfica?
  • Como equilibrar segurança e conveniência?
  • Qual o papel da matemática na sociedade digital?
  • Como preparar-se para o futuro pós-quântico?

A Jornada que Nos Espera

Nos próximos capítulos, desvendaremos os segredos matemáticos por trás do RSA. Começaremos com os fundamentos da teoria dos números, exploraremos o fascinante mundo dos números primos, dominaremos a aritmética modular, e finalmente compreenderemos como todos esses elementos se combinam para criar um dos algoritmos mais importantes da era digital.

Prepare-se para uma aventura intelectual que conecta a matemática milenar com a tecnologia de ponta. Ao final desta jornada, você não apenas entenderá como funciona a criptografia RSA, mas também apreciará a elegância matemática que protege nosso mundo digital. Bem-vindo ao universo onde números guardam segredos!

Fundamentos da Teoria dos Números

Imagine construir um arranha-céu sem conhecer as propriedades do concreto e do aço. Impossível, não é? Da mesma forma, compreender a criptografia RSA sem dominar os fundamentos da teoria dos números seria como tentar ler sem conhecer o alfabeto. Neste capítulo, exploraremos os conceitos matemáticos essenciais que formam a base sólida sobre a qual o RSA foi construído. São ideias simples em sua essência, mas poderosas em suas aplicações — a verdadeira magia está em como elas se combinam para criar segurança inquebrantável.

Os Números Inteiros: Nosso Universo

A teoria dos números estuda as propriedades dos números inteiros: ..., -3, -2, -1, 0, 1, 2, 3, ... Parece simples, mas estes números escondem padrões e relações que intrigam matemáticos há milênios. Para a criptografia, focamos principalmente nos inteiros positivos, onde residem os segredos da divisibilidade, primalidade e modularidade.

Propriedades Fundamentais dos Inteiros

  • Fechamento: Soma e multiplicação de inteiros resulta em inteiros
  • Ordenação: Sempre podemos dizer se a < b, a = b ou a > b
  • Princípio da Boa Ordenação: Todo conjunto não-vazio de inteiros positivos tem um menor elemento
  • Divisão com Resto: Para a, b inteiros (b ≠ 0), existem únicos q, r com a = bq + r e 0 ≤ r < |b|
  • Infinitude: Sempre existe um inteiro maior

Divisibilidade: A Primeira Relação

Dizemos que um inteiro a divide b (escrito a|b) se existe um inteiro k tal que b = ak. Esta relação aparentemente simples é o portal para todo o universo da teoria dos números. É como descobrir que alguns números "cabem perfeitamente" dentro de outros, sem deixar sobras.

Explorando a Divisibilidade

Considere as seguintes relações:

  • 3|12 porque 12 = 3 × 4
  • 5∤12 porque não existe inteiro k com 12 = 5k
  • Todo número divide zero: a|0 para qualquer a ≠ 0
  • Um divide todos: 1|a para qualquer a
  • Propriedade transitiva: se a|b e b|c, então a|c

O Algoritmo de Euclides: Uma Joia Milenar

Criado há mais de 2000 anos, o algoritmo de Euclides para encontrar o máximo divisor comum (MDC) é uma das mais elegantes criações matemáticas. Sua beleza está na simplicidade: para encontrar mdc(a,b), substituímos repetidamente o maior número pelo resto da divisão até chegar a zero.

MDC na Prática

Calculemos mdc(168, 64):

  • 168 = 64 × 2 + 40
  • 64 = 40 × 1 + 24
  • 40 = 24 × 1 + 16
  • 24 = 16 × 1 + 8
  • 16 = 8 × 2 + 0
  • Portanto, mdc(168, 64) = 8

A Identidade de Bézout: Combinações Lineares

Uma consequência surpreendente do algoritmo de Euclides é que o MDC sempre pode ser escrito como combinação linear dos números originais. Se d = mdc(a,b), então existem inteiros x, y tais que ax + by = d. Esta propriedade será crucial para encontrar inversas modulares no RSA!

Algoritmo Estendido de Euclides

  • Não apenas encontra o MDC
  • Também calcula os coeficientes x e y
  • Fundamental para resolver equações diofantinas
  • Base para calcular inversas modulares
  • Eficiente mesmo para números gigantescos

Números Coprimos: A Relação Especial

Dois números são coprimos (ou relativamente primos) se mdc(a,b) = 1. Não precisam ser primos individualmente — apenas não compartilhar fatores comuns além de 1. Esta relação é fundamental no RSA, pois determina quando existe inversa multiplicativa modular.

Pares Coprimos

  • 8 e 15 são coprimos: mdc(8,15) = 1
  • 9 e 15 não são: mdc(9,15) = 3
  • Qualquer primo p é coprimo com todo a onde p∤a
  • Números consecutivos sempre são coprimos
  • Se mdc(a,c) = 1 e mdc(b,c) = 1, então mdc(ab,c) = 1

A Função de Euler: Contando Coprimos

A função φ de Euler conta quantos números menores que n são coprimos com n. Por exemplo, φ(6) = 2 porque apenas 1 e 5 são coprimos com 6. Esta função aparentemente simples é o coração matemático do RSA!

Calculando φ(n)

  • φ(p) = p - 1 para p primo
  • φ(pᵏ) = pᵏ - pᵏ⁻¹ = pᵏ⁻¹(p - 1)
  • φ(mn) = φ(m)φ(n) se mdc(m,n) = 1
  • φ(12) = φ(4)φ(3) = 2 × 2 = 4
  • Os coprimos com 12 são: 1, 5, 7, 11

Equações Diofantinas Lineares

Equações do tipo ax + by = c, onde buscamos soluções inteiras, são chamadas diofantinas em honra a Diofanto de Alexandria. Elas têm solução se e somente se mdc(a,b)|c. Quando existem, há infinitas soluções seguindo um padrão específico.

Resolvendo Equações Diofantinas

  • Verificar se mdc(a,b) divide c
  • Usar algoritmo estendido para solução particular
  • Solução geral: x = x₀ + (b/d)t, y = y₀ - (a/d)t
  • Aplicações em problemas de troco e programação
  • Base para sistemas de congruências

O Lema de Gauss e Propriedades Multiplicativas

Carl Friedrich Gauss, o "Príncipe dos Matemáticos", contribuiu imensamente para a teoria dos números. Seu lema estabelece que se um primo divide um produto, deve dividir um dos fatores — propriedade crucial para a unicidade da fatoração.

Aplicando o Lema de Gauss

  • Se p é primo e p|ab, então p|a ou p|b
  • Generalização: se mdc(a,c) = 1 e a|bc, então a|b
  • Fundamental para o Teorema Fundamental da Aritmética
  • Garante unicidade da fatoração prima
  • Base para muitas demonstrações em teoria dos números

Princípio da Indução: A Escada Infinita

A indução matemática é uma técnica poderosa para provar propriedades sobre todos os inteiros positivos. Como uma escada infinita: se podemos subir o primeiro degrau e, estando em qualquer degrau, podemos subir para o próximo, então podemos alcançar qualquer altura!

Indução em Ação

Provemos que 1 + 2 + ... + n = n(n+1)/2:

  • Base: Para n = 1, temos 1 = 1(2)/2 ✓
  • Hipótese: Assumimos verdade para k
  • Passo: Provamos para k + 1
  • 1 + ... + k + (k+1) = k(k+1)/2 + (k+1)
  • = (k+1)(k+2)/2 ✓

Os fundamentos da teoria dos números são como as notas musicais — simples individualmente, mas capazes de criar sinfonias quando combinadas adequadamente. Cada conceito apresentado neste capítulo será uma ferramenta essencial em nossa jornada rumo ao RSA. Com estas bases sólidas, estamos prontos para explorar o fascinante mundo dos números primos, os verdadeiros protagonistas da criptografia moderna!

Números Primos e Fatoração

Os números primos são os átomos da matemática — indivisíveis, fundamentais e misteriosos. Como diamantes escondidos na sequência infinita dos números naturais, eles aparecem sem padrão óbvio, desafiando matemáticos há milênios. Neste capítulo, exploraremos por que esses números especiais são os verdadeiros heróis da criptografia moderna. Descobriremos como sua distribuição aparentemente caótica e a dificuldade computacional de fatoração criaram o alicerce sobre o qual repousa a segurança digital de nosso mundo.

A Natureza dos Números Primos

Um número primo é aquele que possui exatamente dois divisores: 1 e ele mesmo. Simples assim. Mas desta definição elementar surgem propriedades profundas e questões não resolvidas que continuam a fascinar matemáticos. Os primos são como as impressões digitais da matemática — únicos e fundamentais para identificar qualquer número através de sua fatoração.

Características dos Primos

  • Infinitude: Euclides provou que existem infinitos primos
  • Distribuição Irregular: Aparecem sem padrão previsível simples
  • Densidade Decrescente: Tornam-se mais raros entre números grandes
  • Blocos Construtivos: Todo inteiro > 1 é primo ou produto de primos
  • Teste de Primalidade: Verificar se um número é primo pode ser eficiente

O Teorema Fundamental da Aritmética

Este teorema afirma que todo número inteiro maior que 1 pode ser escrito como produto de primos de maneira única (exceto pela ordem). É como se cada número tivesse um "DNA matemático" único, determinado por seus fatores primos. Esta unicidade é crucial para a segurança do RSA.

Fatorações Únicas

  • 60 = 2² × 3 × 5
  • 1001 = 7 × 11 × 13
  • 2310 = 2 × 3 × 5 × 7 × 11
  • Cada fatoração é única
  • A ordem dos fatores não importa

O Crivo de Eratóstenes

Criado há mais de 2000 anos, este algoritmo elegante encontra todos os primos até um limite dado. Como uma peneira matemática, ele filtra os compostos, deixando apenas os primos. Sua simplicidade esconde uma eficiência surpreendente para encontrar primos pequenos e médios.

Implementando o Crivo

Para encontrar primos até 30:

  • Liste números de 2 a 30
  • Marque 2 como primo, risque seus múltiplos
  • Próximo não riscado (3) é primo, risque múltiplos
  • Continue até √30 ≈ 5.5
  • Primos: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29

A Distribuição dos Primos

Os primos aparecem de forma irregular, mas sua densidade segue padrões estatísticos profundos. O Teorema dos Números Primos, uma das joias da matemática, descreve com precisão surpreendente quantos primos esperamos encontrar até um número dado.

Padrões na Aparente Desordem

  • Aproximadamente n/ln(n) primos menores que n
  • Probabilidade de n ser primo ≈ 1/ln(n)
  • Lacunas entre primos crescem (em média)
  • Mas sempre existem primos "gêmeos" próximos
  • Conjectura de Goldbach: todo par > 2 é soma de dois primos

O Problema da Fatoração

Multiplicar dois números é fácil — até uma criança consegue. Mas dado o produto, encontrar os fatores originais pode ser computacionalmente impossível para números grandes. Esta assimetria fundamental é o coração da segurança RSA. É como misturar duas cores de tinta: fácil de fazer, impossível de desfazer!

Assimetria Computacional

  • Multiplicar: 9419 × 1013 = 9,541,447 (instantâneo)
  • Fatorar: 9,541,447 = ? × ? (mais difícil)
  • Com 100 dígitos cada: multiplicação em microssegundos
  • Fatoração: potencialmente séculos!
  • Esta diferença protege nossos segredos

Testes de Primalidade

Surpreendentemente, podemos verificar se um número é primo sem conhecer seus fatores! Testes probabilísticos modernos como Miller-Rabin podem confirmar primalidade com altíssima certeza em tempo prático, mesmo para números de centenas de dígitos.

Teste de Fermat

Se n é primo e a não é múltiplo de n:

  • aⁿ⁻¹ ≡ 1 (mod n) sempre vale
  • Se falha para algum a, n é composto
  • Se passa para vários a, n é provavelmente primo
  • Cuidado: números de Carmichael enganam!
  • Miller-Rabin: versão mais robusta

Primos Especiais e Suas Aplicações

Alguns primos têm formas especiais que os tornam particularmente úteis. Primos de Mersenne (2ᵖ - 1), primos de Fermat (2²ⁿ + 1), e primos seguros (onde (p-1)/2 também é primo) têm propriedades que os tornam valiosos em diferentes contextos criptográficos.

Zoológico de Primos Especiais

  • Mersenne: 2ᵖ - 1 (úteis para geradores aleatórios)
  • Fermat: 2²ⁿ + 1 (importantes em FFT)
  • Sophie Germain: p e 2p+1 ambos primos
  • Primos Gêmeos: p e p+2 primos
  • Primos Seguros: cruciais para Diffie-Hellman

Algoritmos de Fatoração

A humanidade desenvolveu algoritmos cada vez mais sofisticados para fatorar números. Desde a divisão por tentativa até o crivo quadrático e o crivo do corpo de números, cada avanço empurra os limites do que é computacionalmente viável, forçando o uso de primos cada vez maiores em criptografia.

Evolução dos Métodos

  • Divisão por tentativa: O(√n)
  • Método ρ de Pollard: encontra fatores pequenos
  • Crivo quadrático: para números médios
  • Crivo do corpo de números: estado da arte
  • Recordes atuais: fatoração de números com ~250 dígitos

Gerando Primos Grandes

Para RSA, precisamos de primos com centenas de dígitos. Como encontrá-los? Geramos números aleatórios ímpares do tamanho desejado e testamos primalidade. Pela densidade dos primos, encontramos candidatos rapidamente — uma dança entre probabilidade e determinismo.

Receita para Primos Grandes

  • Escolha número ímpar aleatório de n bits
  • Aplique teste de divisibilidade por primos pequenos
  • Execute Miller-Rabin várias vezes
  • Se passar, aceite como primo (probabilidade de erro < 2⁻¹⁰⁰)
  • Senão, tente o próximo ímpar

A Hipótese de Riemann e o Futuro

A distribuição dos primos esconde mistérios profundos. A Hipótese de Riemann, um dos problemas do milênio, promete revelar padrões ainda mais sutis. Sua resolução poderia impactar a criptografia, mas o RSA permaneceria seguro — a dificuldade de fatoração transcende a mera distribuição dos primos.

Os números primos são os guardiões silenciosos da era digital. Sua natureza esquiva e a dificuldade computacional de fatoração criaram um dos pilares da civilização moderna — a comunicação segura. Como sentinelas matemáticos, eles protegem nossos segredos mais íntimos e transações mais valiosas. Com esta compreensão dos primos e da fatoração, estamos prontos para explorar a aritmética modular, onde os números dançam em círculos e a matemática ganha novos poderes!

Aritmética Modular

Imagine um relógio onde após o 12 vem o 1, não o 13. Este ciclo perpétuo é a essência da aritmética modular — a matemática dos restos, dos ciclos e das congruências. Se os números primos são os tijolos da criptografia, a aritmética modular é o cimento que os une. Neste capítulo, exploraremos este fascinante mundo onde os números "dão a volta", onde 7 + 8 pode ser igual a 3, e onde encontramos as ferramentas matemáticas que tornam o RSA não apenas possível, mas elegante e eficiente.

O Conceito de Congruência

Dois números são congruentes módulo n quando deixam o mesmo resto ao serem divididos por n. Escrevemos a ≡ b (mod n). É como dizer que dois ponteiros de relógio apontam para a mesma hora, mesmo tendo dado números diferentes de voltas completas. Esta ideia simples revoluciona nossa forma de pensar sobre números.

Propriedades da Congruência

  • Reflexiva: a ≡ a (mod n)
  • Simétrica: se a ≡ b (mod n), então b ≡ a (mod n)
  • Transitiva: se a ≡ b e b ≡ c, então a ≡ c (mod n)
  • Compatível com operações: preserva soma e multiplicação
  • Classes de equivalência: particiona os inteiros em n classes

Operações em Aritmética Modular

A beleza da aritmética modular está em como as operações básicas se comportam. Podemos somar, subtrair e multiplicar mantendo-nos sempre dentro de um conjunto finito {0, 1, 2, ..., n-1}. É como ter um universo matemático em miniatura, completo e autossuficiente.

Calculando Módulo 7

  • 5 + 4 ≡ 9 ≡ 2 (mod 7)
  • 3 × 6 ≡ 18 ≡ 4 (mod 7)
  • 2⁵ ≡ 32 ≡ 4 (mod 7)
  • -3 ≡ 4 (mod 7) (números negativos "voltam")
  • 100 ≡ 2 (mod 7) (grandes números simplificam)

O Anel Zₙ

O conjunto {0, 1, 2, ..., n-1} com adição e multiplicação módulo n forma uma estrutura algébrica chamada anel, denotada Zₙ. Quando n é primo, algo mágico acontece: todo elemento não-zero tem inverso multiplicativo, transformando Zₚ em um corpo finito!

Explorando Z₇

Tabela de multiplicação em Z₇:

  • 1 × 1 = 1, inverso de 1 é 1
  • 2 × 4 = 8 ≡ 1, inverso de 2 é 4
  • 3 × 5 = 15 ≡ 1, inverso de 3 é 5
  • 6 × 6 = 36 ≡ 1, inverso de 6 é 6
  • Todo elemento não-zero tem inverso único!

Inversos Modulares

O inverso modular de a módulo n é um número b tal que ab ≡ 1 (mod n). Nem sempre existe — apenas quando mdc(a,n) = 1. Encontrar inversos eficientemente é crucial para o RSA, e o algoritmo estendido de Euclides nos fornece a ferramenta perfeita.

Calculando Inversos

  • Condição: mdc(a,n) = 1 (a e n coprimos)
  • Algoritmo estendido: encontra x, y com ax + ny = 1
  • Então ax ≡ 1 (mod n), logo a⁻¹ ≡ x (mod n)
  • Exemplo: 3⁻¹ (mod 7) = 5 pois 3×5 = 15 ≡ 1
  • Fundamental para descriptografar no RSA

Exponenciação Modular Rápida

Calcular aᵇ mod n para b grande parece impossível — afinal, 2¹⁰⁰ tem mais de 30 dígitos! Mas a exponenciação por quadrados sucessivos torna isso eficiente, calculando em tempo logarítmico. É a mágica computacional que viabiliza o RSA.

Método dos Quadrados Sucessivos

Calcular 3⁴⁵ mod 7:

  • 45 = 101101₂ em binário
  • 3¹ ≡ 3, 3² ≡ 2, 3⁴ ≡ 4, 3⁸ ≡ 2, 3¹⁶ ≡ 4, 3³² ≡ 2
  • 3⁴⁵ = 3³² × 3⁸ × 3⁴ × 3¹
  • ≡ 2 × 2 × 4 × 3 ≡ 48 ≡ 6 (mod 7)
  • Apenas 6 multiplicações em vez de 44!

Sistemas de Congruências

Às vezes precisamos resolver várias congruências simultaneamente. O Teorema Chinês dos Restos garante solução única quando os módulos são coprimos dois a dois. É como sincronizar vários relógios com períodos diferentes — existe um momento único onde todos concordam!

Teorema Chinês dos Restos

Resolver: x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7)

  • Módulos 3, 5, 7 são coprimos
  • M = 3 × 5 × 7 = 105
  • M₁ = 35, M₂ = 21, M₃ = 15
  • Calcular inversos: 35⁻¹ ≡ 2 (mod 3), etc.
  • x ≡ 23 (mod 105) é a solução única

Raízes Primitivas

Em Zₚ* (elementos não-zero de Zₚ), algumas bases g têm a propriedade especial de gerar todos os elementos através de suas potências. Estas raízes primitivas são como "geradores universais" e desempenham papel crucial em muitos protocolos criptográficos.

Propriedades das Raízes Primitivas

  • g é raiz primitiva módulo p se {g¹, g², ..., gᵖ⁻¹} = Zₚ*
  • Existem φ(p-1) raízes primitivas módulo p primo
  • Exemplo: 3 é raiz primitiva módulo 7
  • Potências de 3: 3¹=3, 3²=2, 3³=6, 3⁴=4, 3⁵=5, 3⁶=1
  • Base para logaritmo discreto e Diffie-Hellman

Resíduos Quadráticos

Um número a é resíduo quadrático módulo n se existe x tal que x² ≡ a (mod n). Determinar se um número é "quadrado perfeito" em aritmética modular tem aplicações surpreendentes em criptografia e teoria dos números.

Quadrados em Z₇

  • 1² ≡ 1, 2² ≡ 4, 3² ≡ 2, 4² ≡ 2, 5² ≡ 4, 6² ≡ 1
  • Resíduos quadráticos: {1, 2, 4}
  • Não-resíduos: {3, 5, 6}
  • Sempre exatamente (p-1)/2 resíduos para p primo ímpar
  • Símbolo de Legendre classifica eficientemente

Aplicações Práticas

A aritmética modular não é apenas teoria abstrata — ela permeia nossa vida digital. Desde códigos de verificação em cartões de crédito até protocolos de internet, suas aplicações são onipresentes e essenciais.

Aritmética Modular no Cotidiano

  • Dígitos verificadores: CPF, ISBN usam mod 11
  • Hash functions: operações modulares para dispersão
  • Geradores pseudoaleatórios: congruências lineares
  • Correção de erros: aritmética em corpos finitos
  • Calendários: dias da semana (mod 7)

A aritmética modular transforma o infinito em finito, o complexo em manejável. Como um portal matemático, ela nos transporta para universos numéricos onde as regras familiares ganham novos significados. É neste reino dos restos e congruências que o RSA encontra seu poder — transformando a simplicidade circular dos módulos na complexidade impenetrável da criptografia moderna. Com este domínio da aritmética modular, estamos prontos para explorar os teoremas clássicos de Fermat e Euler, as joias da coroa que tornam o RSA possível!

Teorema de Fermat e Euler

Pierre de Fermat, advogado e matemático amador do século XVII, deixou um legado de teoremas elegantes que desafiaram gerações. Leonhard Euler, o mais prolífico matemático da história, expandiu essas ideias criando ferramentas ainda mais poderosas. Neste capítulo, exploraremos como dois teoremas separados por um século se uniram para formar o coração matemático do RSA. São resultados de beleza transcendente que transformam a complexidade em simplicidade, permitindo que mensagens viajem seguras através do ciberespaço.

O Pequeno Teorema de Fermat

Em 1640, Fermat descobriu um padrão surpreendente: se p é primo e a não é múltiplo de p, então aᵖ⁻¹ sempre deixa resto 1 quando dividido por p. Esta regularidade em meio ao caos aparente dos restos é como encontrar uma melodia perfeita no ruído. O teorema revela uma harmonia profunda na aritmética modular.

O Pequeno Teorema de Fermat

Se p é primo e mdc(a,p) = 1, então:

  • aᵖ⁻¹ ≡ 1 (mod p)
  • Equivalentemente: aᵖ ≡ a (mod p) para qualquer a
  • Exemplo: 3⁶ ≡ 1 (mod 7) pois 7 é primo
  • Funciona para qualquer base coprima com p
  • Falha se p não é primo (geralmente)

Demonstrações Elegantes

A beleza do teorema de Fermat está em suas múltiplas demonstrações, cada uma revelando diferentes aspectos da matemática. Desde argumentos combinatórios com colares de contas até provas algébricas usando teoria de grupos, cada abordagem ilumina conexões profundas.

Prova por Contagem

Uma demonstração intuitiva para 2ᵖ⁻¹ ≡ 1 (mod p):

  • Considere colares com p contas, cada uma preta ou branca
  • Total: 2ᵖ colares possíveis
  • Colares monocromáticos: 2 (todo preto ou todo branco)
  • Resto se agrupa em conjuntos de p colares equivalentes por rotação
  • Logo (2ᵖ - 2)/p é inteiro, assim p divide 2ᵖ - 2

Aplicações do Teorema de Fermat

Além de sua beleza teórica, o pequeno teorema de Fermat tem aplicações práticas surpreendentes. Ele fornece um teste rápido de primalidade, simplifica cálculos modulares com expoentes grandes, e forma a base para muitos algoritmos criptográficos.

Simplificando Cálculos

Calcular 3¹⁰⁰ mod 7:

  • Pelo teorema de Fermat: 3⁶ ≡ 1 (mod 7)
  • 100 = 6 × 16 + 4
  • 3¹⁰⁰ = (3⁶)¹⁶ × 3⁴
  • ≡ 1¹⁶ × 3⁴ ≡ 81 ≡ 4 (mod 7)
  • Transformamos um problema impossível em trivial!

O Teorema de Euler: A Generalização

Euler percebeu que o padrão de Fermat se estendia além dos primos. Para qualquer n e qualquer a coprimo com n, existe um expoente que sempre resulta em 1. Este expoente é precisamente φ(n), a função que conta quantos números menores que n são coprimos com n. É como se Euler tivesse encontrado a frequência de ressonância de cada módulo!

Teorema de Euler

Se mdc(a,n) = 1, então:

  • aᶠ⁽ⁿ⁾ ≡ 1 (mod n)
  • Generaliza Fermat: quando n = p, φ(p) = p-1
  • Exemplo: 3ᶠ⁽¹⁰⁾ = 3⁴ ≡ 1 (mod 10)
  • Funciona para qualquer módulo, não apenas primos
  • Chave para funcionamento do RSA

A Função φ de Euler em Detalhes

A função totiente de Euler φ(n) é multiplicativa: se m e n são coprimos, então φ(mn) = φ(m)φ(n). Esta propriedade, combinada com a fórmula para potências de primos, permite calcular φ eficientemente quando conhecemos a fatoração — mas é difícil sem ela!

Calculando φ(n)

  • φ(15) = φ(3×5) = φ(3)×φ(5) = 2×4 = 8
  • φ(100) = φ(2²×5²) = φ(2²)×φ(5²)
  • = 2¹(2-1) × 5¹(5-1) = 2×20 = 40
  • Para RSA: n = pq ⇒ φ(n) = (p-1)(q-1)
  • Conhecer φ(n) sem fatorar n é computacionalmente difícil

A Ponte para o RSA

O teorema de Euler fornece a mágica matemática do RSA. Se escolhermos e e d tais que ed ≡ 1 (mod φ(n)), então para qualquer mensagem m coprima com n, temos mᵉᵈ ≡ m (mod n). É como se e embaralhasse a mensagem e d a desembaralhasse perfeitamente!

Prévia do RSA

Com n = 15, φ(n) = 8:

  • Escolha e = 3 (coprimo com 8)
  • Calcule d = 3⁻¹ ≡ 3 (mod 8) pois 3×3 = 9 ≡ 1
  • Cifrar m = 2: c = 2³ ≡ 8 (mod 15)
  • Decifrar c = 8: m = 8³ ≡ 512 ≡ 2 (mod 15)
  • Funciona! E só conhecendo d podemos decifrar

Ordem de um Elemento

A ordem de a módulo n é o menor inteiro positivo k tal que aᵏ ≡ 1 (mod n). O teorema de Euler garante que a ordem sempre divide φ(n). Este conceito refina nossa compreensão dos ciclos em aritmética modular e tem aplicações profundas em criptografia.

Propriedades da Ordem

  • ordₙ(a) divide φ(n) sempre
  • aⁱ ≡ aʲ (mod n) ⟺ i ≡ j (mod ordₙ(a))
  • Se ordₙ(a) = φ(n), então a é raiz primitiva
  • Ordem máxima implica geração de todo grupo
  • Crucial para segurança de Diffie-Hellman

Carmichael e a Função λ

Robert Carmichael refinou o teorema de Euler definindo λ(n) como o menor expoente universal — o mmc das ordens de todos os elementos. Para RSA, λ(pq) = mmc(p-1, q-1), que pode ser significativamente menor que φ(pq), oferecendo otimizações práticas.

Comparando φ e λ

  • n = 15: φ(15) = 8, mas λ(15) = 4
  • Verificação: 1⁴≡1, 2⁴≡1, 4⁴≡1, 7⁴≡1 (mod 15)
  • λ sempre divide φ, pode ser bem menor
  • RSA funciona com λ no lugar de φ
  • Oferece descriptografia mais rápida

Generalizações e Conexões

Os teoremas de Fermat e Euler são casos especiais de resultados ainda mais gerais em teoria de grupos. O teorema de Lagrange, estrutura de grupos cíclicos, e teoria de caracteres estendem estas ideias para contextos mais abstratos, revelando a unidade profunda da matemática.

Visão Unificada

  • Fermat: caso especial de Euler quando n é primo
  • Euler: consequência de Lagrange para (Z/nZ)*
  • Lagrange: ordem de elemento divide ordem do grupo
  • Grupos cíclicos: sempre existem geradores
  • Tudo se conecta na estrutura algébrica!

Os teoremas de Fermat e Euler são como fórmulas mágicas que transformam o caos aparente da exponenciação modular em padrões previsíveis e úteis. Eles revelam que por trás da complexidade superficial existe uma ordem profunda, esperando ser descoberta e aplicada. Com estes poderosos teoremas em nosso arsenal, estamos finalmente prontos para desvendar o algoritmo RSA em toda sua glória — a síntese magistral de séculos de matemática pura transformada em proteção prática para a era digital!

O Algoritmo RSA

Chegamos ao coração de nossa jornada — o momento em que toda a matemática estudada se cristaliza em um dos algoritmos mais elegantes e importantes da era digital. O RSA não é apenas um método de criptografia; é uma sinfonia matemática onde números primos, aritmética modular e teoremas clássicos se harmonizam para criar segurança a partir da pura teoria dos números. Neste capítulo, desvendaremos cada componente do RSA, compreendendo não apenas como funciona, mas por que funciona, revelando a genialidade por trás de sua aparente simplicidade.

A Arquitetura do RSA

O RSA opera com três elementos fundamentais: uma chave pública para cifrar, uma chave privada para decifrar, e um módulo n que define o "universo" onde as operações ocorrem. Como um sistema de correio cósmico, qualquer um pode enviar mensagens seguras usando a chave pública, mas apenas o detentor da chave privada pode lê-las.

Componentes do Sistema RSA

  • Módulo n: Produto de dois primos grandes p e q
  • Chave pública (e,n): e coprimo com φ(n)
  • Chave privada (d,n): d tal que ed ≡ 1 (mod φ(n))
  • Espaço de mensagens: Inteiros de 0 a n-1
  • Segurança: Baseada na dificuldade de fatorar n

Geração de Chaves: O Nascimento do Segredo

A criação de um par de chaves RSA é como forjar uma fechadura única e sua chave correspondente. O processo combina aleatoriedade (escolha dos primos) com determinismo matemático (cálculo das chaves), criando um sistema onde a segurança emerge da teoria dos números.

Passo a Passo da Geração

  • 1. Escolha primos grandes p e q (ex: p=61, q=53)
  • 2. Calcule n = pq (n = 3233)
  • 3. Calcule φ(n) = (p-1)(q-1) (φ = 3120)
  • 4. Escolha e coprimo com φ(n) (e = 17)
  • 5. Calcule d = e⁻¹ mod φ(n) (d = 2753)
  • Chave pública: (17, 3233), Privada: (2753, 3233)

Cifragem: Transformando Clareza em Mistério

Cifrar com RSA é surpreendentemente simples: eleve a mensagem à potência e módulo n. Esta operação aparentemente trivial esconde complexidade profunda — sem conhecer a fatoração de n, reverter o processo é computacionalmente inviável. É como misturar cores: fácil de fazer, impossível de desfazer sem a "receita".

Processo de Cifragem

Cifrando a mensagem m = 123:

  • Chave pública: (e=17, n=3233)
  • Criptograma: c = m^e mod n
  • c = 123¹⁷ mod 3233
  • Usando exponenciação rápida: c = 855
  • A mensagem 123 tornou-se o criptograma 855

Decifragem: O Retorno à Clareza

A mágica do RSA está na decifragem: elevar o criptograma à potência d recupera exatamente a mensagem original. Esta reversibilidade perfeita é garantida pelos teoremas de Euler e Fermat — a matemática pura assegura que m^(ed) ≡ m (mod n). É como se d fosse a "anti-chave" perfeita de e.

Por Que Funciona?

  • ed ≡ 1 (mod φ(n)) por construção
  • Logo ed = kφ(n) + 1 para algum k
  • c^d = (m^e)^d = m^(ed) = m^(kφ(n)+1)
  • = m · (m^φ(n))^k ≡ m · 1^k ≡ m (mod n)
  • Teorema de Euler garante a recuperação!

A Matemática da Segurança

A segurança do RSA repousa em uma assimetria computacional fundamental: enquanto multiplicar dois primos é trivial, fatorar seu produto é extremamente difícil para números grandes. É como construir um quebra-cabeça de bilhões de peças — montá-lo conhecendo o padrão é fácil, mas reconstruir o padrão a partir das peças misturadas é praticamente impossível.

Análise de Segurança

  • Atacante conhece: n, e, c
  • Precisa descobrir: d ou m
  • Caminhos de ataque:
  • - Fatorar n para obter p e q
  • - Calcular φ(n) diretamente
  • - Resolver m^e ≡ c (logaritmo discreto)
  • Todos equivalentemente difíceis!

Assinaturas Digitais: Autenticidade Matemática

O RSA permite não apenas confidencialidade, mas também autenticidade através de assinaturas digitais. Ao "cifrar" com a chave privada, criamos uma assinatura que só poderia ter sido gerada pelo detentor da chave. É como ter uma assinatura impossível de falsificar, verificável por qualquer um.

Assinando Digitalmente

  • Mensagem m passa por função hash: h = H(m)
  • Assinatura: s = h^d mod n (usa chave privada)
  • Verificação: h' = s^e mod n (usa chave pública)
  • Válida se h' = h
  • Garante autenticidade e integridade

Padding: Fortalecendo a Segurança

RSA "puro" tem vulnerabilidades sutis. Mensagens pequenas ou previsíveis podem ser atacadas. Esquemas de padding como OAEP adicionam aleatoriedade e estrutura, transformando RSA teórico em sistema prático seguro. É como embalar um presente frágil — o padding protege o conteúdo.

Importância do Padding

  • Previne ataques a mensagens pequenas
  • Adiciona aleatoriedade (diferentes cifras para mesma mensagem)
  • PKCS#1 v1.5: padding determinístico
  • OAEP: padding probabilístico ótimo
  • Essencial para segurança prática

Tamanhos de Chave: Equilibrando Segurança e Eficiência

O tamanho da chave RSA determina sua segurança. Chaves de 2048 bits são padrão hoje, oferecendo segurança por décadas. Mas maior segurança significa operações mais lentas — um trade-off eterno entre proteção e performance.

Evolução dos Tamanhos

  • 512 bits: quebrado em 1999
  • 768 bits: quebrado em 2009
  • 1024 bits: considerado inseguro
  • 2048 bits: padrão atual
  • 4096 bits: para segurança de longo prazo

RSA vs. Criptografia Simétrica

RSA é poderoso mas lento — cerca de 1000 vezes mais lento que AES. Por isso, sistemas práticos usam RSA apenas para trocar chaves simétricas, que então cifram os dados reais. É como usar um cofre super-seguro para guardar a chave de um cadeado rápido e eficiente.

Criptografia Híbrida

  • Gerar chave simétrica aleatória k
  • Cifrar dados com AES usando k (rápido)
  • Cifrar k com RSA do destinatário (seguro)
  • Enviar RSA(k) + AES(dados)
  • Combina velocidade com segurança de chave pública

O algoritmo RSA é a culminação de séculos de matemática pura transformada em tecnologia essencial. Como uma ponte entre o abstrato e o prático, ele demonstra o poder da teoria dos números aplicada. Cada transação online segura, cada mensagem privada, cada documento digital autenticado — todos dependem desta elegante dança de primos e exponenciais. Com a compreensão completa do RSA, estamos prontos para explorar sua implementação prática e os detalhes que transformam teoria em sistemas reais de segurança!

Implementação e Chaves Criptográficas

Transformar a elegante teoria do RSA em um sistema prático e seguro é como construir um relógio suíço — cada componente deve ser precisamente calibrado e perfeitamente integrado. Neste capítulo, mergulharemos nos detalhes práticos que transformam equações em código executável, explorando os desafios e soluções da implementação real. Descobriremos como gerar primos gigantescos, otimizar operações modulares, e gerenciar chaves de forma segura. É aqui que a matemática encontra a engenharia, criando sistemas que protegem bilhões de transações diárias.

Gerando Primos Criptográficos

O primeiro desafio é encontrar primos grandes o suficiente para garantir segurança. Para RSA-2048, precisamos de primos com aproximadamente 1024 bits — números com mais de 300 dígitos! Como encontrar agulhas primas neste palheiro astronômico? A resposta combina probabilidade, testes eficientes e um toque de sorte matemática.

Algoritmo de Geração de Primos

  • Gerar número aleatório ímpar de n/2 bits
  • Aplicar crivo rápido (divisibilidade por primos pequenos)
  • Teste Miller-Rabin com múltiplas bases
  • Se passar, aceitar como primo (erro < 2⁻¹⁰⁰)
  • Senão, tentar próximo candidato
  • Pelo teorema dos números primos, encontramos primo em O(n) tentativas

Otimizando a Exponenciação Modular

O coração computacional do RSA é calcular aᵇ mod n para valores gigantescos. A exponenciação binária é essencial, mas implementações práticas vão além com técnicas como janelas deslizantes, pré-computação e uso do Teorema Chinês dos Restos para acelerar a descriptografia.

Método da Janela Deslizante

  • Em vez de processar bit a bit, processa k bits por vez
  • Pré-calcula a¹, a³, a⁵, ..., a^(2ᵏ-1)
  • Reduz número de multiplicações
  • Trade-off: memória vs. velocidade
  • Típico: janelas de 4-5 bits
  • Acelera em ~20-30% vs. método binário

Teorema Chinês dos Restos na Prática

Conhecendo p e q, podemos acelerar drasticamente a descriptografia usando CRT. Em vez de calcular m = cᵈ mod n diretamente, calculamos módulo p e q separadamente, depois recombinamos. É como resolver dois quebra-cabeças menores em vez de um gigante — aproximadamente 4x mais rápido!

Descriptografia com CRT

  • Pré-calcular: dₚ = d mod (p-1), dᵩ = d mod (q-1)
  • mₚ = c^dₚ mod p (menor e mais rápido)
  • mᵩ = c^dᵩ mod q (menor e mais rápido)
  • Usar CRT para combinar: m ≡ mₚ (mod p) e m ≡ mᵩ (mod q)
  • Fórmula de Garner para recombinação eficiente
  • Reduz tempo de descriptografia em ~75%

Gerenciamento Seguro de Chaves

A melhor criptografia do mundo é inútil se as chaves forem mal gerenciadas. Como proteger a chave privada? Como distribuir chaves públicas autenticamente? O gerenciamento de chaves é onde a teoria encontra a realidade operacional, com desafios que vão além da matemática.

Hierarquia de Proteção de Chaves

  • Hardware Security Module (HSM): Chaves nunca saem do hardware
  • Smart Cards: Portabilidade com segurança física
  • Key Encryption Keys: Chaves para proteger chaves
  • Separação de privilégios: Múltiplas partes para acesso
  • Rotação periódica: Limitar exposição temporal
  • Backup seguro: Recuperação sem comprometimento

Formatos e Padrões

Chaves RSA precisam ser armazenadas e transmitidas em formatos padronizados. PEM, DER, PKCS#1, X.509 — cada padrão tem seu propósito e contexto. Compreender estes formatos é essencial para interoperabilidade entre sistemas.

Anatomia de uma Chave PEM

  • -----BEGIN RSA PRIVATE KEY-----
  • Base64 encoding da estrutura ASN.1
  • Contém: n, e, d, p, q, dₚ, dᵩ, q⁻¹ mod p
  • Pode ser criptografada com senha
  • -----END RSA PRIVATE KEY-----
  • Formato texto facilita transmissão por email

Certificados Digitais e PKI

Como saber se uma chave pública realmente pertence a quem diz ser? Certificados digitais, assinados por Autoridades Certificadoras (CAs), criam uma rede de confiança. A Public Key Infrastructure (PKI) é o ecossistema que torna a criptografia de chave pública utilizável em escala global.

Cadeia de Confiança

  • CA Raiz: auto-assinada, distribuída com SO/navegadores
  • CAs Intermediárias: assinadas pela raiz
  • Certificados de usuário: assinados por intermediárias
  • Verificação: seguir cadeia até CA confiável
  • Revogação: CRL e OCSP para certificados comprometidos
  • Transparência: Certificate Transparency logs

Implementando em Software

Implementar RSA corretamente é desafiador. Bibliotecas como OpenSSL, BouncyCastle e libsodium fornecem implementações testadas e otimizadas. Mas entender os princípios é crucial para usar essas ferramentas corretamente e evitar armadilhas sutis.

Boas Práticas de Implementação

  • Nunca implemente cripto do zero — use bibliotecas estabelecidas
  • Timing constante: evitar vazamentos por análise temporal
  • Zerar memória: limpar chaves após uso
  • Validar entradas: verificar domínios e formatos
  • Logs cuidadosos: nunca registrar material criptográfico
  • Testes extensivos: vetores de teste padronizados

Hardware e Aceleração

RSA é computacionalmente intensivo. Processadores modernos incluem instruções especializadas para acelerar operações criptográficas. Coprocessadores dedicados e FPGAs podem acelerar RSA em ordens de magnitude, essencial para servidores de alto volume.

Otimizações de Hardware

  • Intel AES-NI: acelera AES para cripto híbrida
  • Multiplicação Montgomery: reduz operações modulares
  • Paralelização: CRT permite processamento paralelo
  • GPUs: milhares de operações RSA simultâneas
  • Chips dedicados: para appliances de segurança
  • Quantum-safe: preparando para era pós-quântica

Auditoria e Compliance

Sistemas criptográficos operam em ambientes regulados. FIPS 140-2, Common Criteria, PCI-DSS — cada padrão impõe requisitos específicos. Implementações devem não apenas ser seguras, mas demonstravelmente conformes com regulamentações aplicáveis.

Checklist de Compliance

  • Tamanhos de chave mínimos (geralmente 2048 bits)
  • Algoritmos aprovados (RSA com padding específico)
  • Geração de números aleatórios certificada
  • Proteção de chaves em repouso e trânsito
  • Logs de auditoria para operações criptográficas
  • Procedimentos de recuperação e destruição de chaves

A implementação prática do RSA é onde a elegância matemática encontra a complexidade do mundo real. Cada detalhe — desde a geração de primos até o gerenciamento de certificados — deve ser cuidadosamente considerado e corretamente executado. Como um maestro coordenando uma orquestra, o implementador deve harmonizar teoria, prática, performance e segurança. Com estas ferramentas e conhecimentos, estamos prontos para explorar o outro lado da moeda: como o RSA pode ser atacado e como nos defender dessas ameaças!

Segurança e Ataques ao RSA

Na guerra silenciosa da criptografia, conhecer as armas do inimigo é tão importante quanto forjar as próprias defesas. Neste capítulo, exploraremos o lado sombrio do RSA — as vulnerabilidades, os ataques engenhosos e as defesas necessárias. Como um mestre de xadrez que estuda as jogadas do oponente, compreender como o RSA pode ser atacado nos torna capazes de implementá-lo de forma verdadeiramente segura. Prepare-se para uma jornada através das técnicas mais criativas e perigosas da criptoanálise moderna.

Ataques à Fatoração: O Assalto Frontal

O ataque mais óbvio ao RSA é fatorar o módulo n. Se um atacante conseguir decompor n em p e q, o jogo acaba — ele pode calcular φ(n) e derivar a chave privada. A evolução dos algoritmos de fatoração é uma corrida armamentista que moldou os padrões de segurança ao longo das décadas.

Algoritmos de Fatoração Modernos

  • Crivo Quadrático: Eficiente para números até ~100 dígitos
  • Crivo do Corpo de Números: Melhor assintótico, recorde atual
  • Curvas Elípticas (ECM): Encontra fatores pequenos eficientemente
  • Complexidade: Subexponencial, mas ainda impraticável para chaves grandes
  • Recorde 2020: RSA-250 (829 bits) fatorado
  • Estimativa: RSA-2048 seguro por décadas com tecnologia clássica

Ataques de Implementação: O Calcanhar de Aquiles

Muitas vezes, o RSA não é quebrado pela matemática, mas por falhas de implementação. Como um cofre perfeito com a porta dos fundos aberta, erros sutis podem comprometer completamente a segurança. Estes ataques exploram o abismo entre teoria perfeita e prática imperfeita.

Vulnerabilidades Clássicas de Implementação

  • Padding inadequado: Permite ataques de texto cifrado escolhido
  • Bias na geração de primos: Reduz espaço de busca
  • Reutilização de primos: MDC revela fatoração
  • Expoentes pequenos: e=3 vulnerável sem padding
  • Vazamento de tempo: Operações revelam bits da chave
  • Gerenciamento de memória: Chaves em swap/core dumps

Ataques de Canal Lateral: A Física Trai a Matemática

Canal lateral é qualquer informação que vaza durante a computação — tempo, consumo de energia, emanações eletromagnéticas, até som! Estes ataques são particularmente insidiosos porque contornam completamente a segurança matemática, extraindo segredos da implementação física.

Tipos de Canais Laterais

  • Timing: Tempo de execução revela bits da chave
  • Power Analysis: Consumo elétrico durante operações
  • EM: Emanações eletromagnéticas do processador
  • Acústico: Som de componentes durante cálculo
  • Cache: Padrões de acesso à memória
  • Defesas: Blinding, operações de tempo constante

Ataques Matemáticos Especializados

Além da força bruta da fatoração, existem ataques que exploram casos especiais ou propriedades matemáticas sutis. Como um detetive procurando pistas, estes ataques buscam qualquer desvio da aleatoriedade perfeita ou qualquer estrutura explorada.

Ataques Matemáticos Sofisticados

  • Wiener: Quando d < n^0.25, recupera d eficientemente
  • Coppersmith: Mensagens parcialmente conhecidas
  • Franklin-Reiter: Mensagens relacionadas com e pequeno
  • Broadcast: Mesma mensagem, múltiplos destinatários
  • Common modulus: Mesmo n, diferentes pares (e,d)
  • Partial key exposure: Alguns bits de d conhecidos

Criptoanálise de Texto Cifrado

Ataques ao texto cifrado exploram propriedades matemáticas do RSA para extrair informação sem quebrar a chave. São particularmente perigosos porque podem ser montados por atacantes passivos que apenas observam comunicações.

Ataques ao Texto Cifrado

  • Maleabilidade: RSA(m₁) × RSA(m₂) = RSA(m₁ × m₂)
  • Texto cifrado escolhido: Oráculo de descriptografia parcial
  • Bleichenbacher: Explora PKCS#1 v1.5 padding
  • Small message: m < n^(1/e) permite raiz e-ésima direta
  • Defesa principal: OAEP padding previne maioria

Ataques de Protocolo

Mesmo com RSA perfeito, o protocolo que o utiliza pode introduzir vulnerabilidades. Como elos fracos em uma corrente forte, falhas de protocolo podem comprometer toda a segurança. SSL/TLS teve várias vulnerabilidades apesar de usar RSA corretamente.

Vulnerabilidades de Protocolo Famosas

  • BEAST: Explorava CBC em TLS 1.0
  • CRIME: Compressão vazava informação
  • Heartbleed: Buffer overflow, vazou chaves
  • ROBOT: Retorno de Bleichenbacher em 2017
  • Lições: Protocolo tão importante quanto primitivas
  • Mitigação: Análise formal, testes extensivos

Defesas e Contramedidas

Para cada ataque, a comunidade criptográfica desenvolveu defesas. Como uma fortaleza medieval com múltiplas muralhas, a segurança moderna emprega defesa em profundidade — múltiplas camadas de proteção para resistir a diversos tipos de ataques.

Estratégias de Defesa

  • Chaves grandes: 2048+ bits, migração para 3072/4096
  • Padding seguro: OAEP, PSS para assinaturas
  • Validação rigorosa: Verificar todos os parâmetros
  • Blinding: Randomizar operações contra timing
  • Implementação constante: Mesmo tempo independente de dados
  • Isolamento: HSMs, enclaves seguros

O Futuro: Criptografia Pós-Quântica

O elefante na sala é a computação quântica. O algoritmo de Shor pode fatorar eficientemente em computadores quânticos, tornando RSA obsoleto. Mas quando? E o que virá depois? A corrida para criptografia pós-quântica está acelerada.

Preparando para o Futuro Quântico

  • Ameaça: Shor fatora em tempo polinomial
  • Timeline: Incerto, estimativas de 10-30 anos
  • Harvest now, decrypt later: Dados atuais em risco
  • Alternativas: Lattice, códigos, hashes, isogenias
  • Hibridização: Usar RSA + pós-quântico hoje
  • NIST PQC: Padronização em andamento

Lições Aprendidas

Décadas de ataques ao RSA ensinaram lições valiosas sobre segurança criptográfica. Cada vulnerabilidade descoberta fortaleceu não apenas o RSA, mas toda a disciplina de criptografia aplicada.

Princípios de Segurança Duradoura

  • Segurança não está apenas na matemática
  • Implementação tão crítica quanto algoritmo
  • Ataques evoluem — defesas devem acompanhar
  • Simplicidade reduz superfície de ataque
  • Transparência e revisão por pares essenciais
  • Preparar hoje para ameaças de amanhã

A segurança do RSA é uma história de vigilância constante e adaptação contínua. Como um organismo vivo, deve evoluir para sobreviver em um ambiente hostil em mutação. Cada ataque descoberto não é uma falha, mas uma oportunidade de fortalecimento. Com esta compreensão profunda das vulnerabilidades e defesas, estamos preparados para explorar como o RSA é aplicado no mundo real, protegendo tudo, desde mensagens pessoais até infraestrutura crítica global!

Aplicações Práticas e Protocolos

O RSA não vive em um vácuo matemático — ele pulsa no coração da infraestrutura digital global. Como o oxigênio que respiramos sem perceber, o RSA trabalha silenciosamente em cada clique seguro, cada transação bancária, cada mensagem privada. Neste capítulo, exploraremos como a teoria elegante se transforma em tecnologia indispensável, examinando os protocolos e sistemas que dependem do RSA para funcionar. Prepare-se para descobrir o RSA em ação, protegendo o mundo digital que habitamos diariamente.

HTTPS: A Web Segura

Cada vez que você vê o cadeado verde no navegador, o RSA está trabalhando. O protocolo TLS/SSL, que assegura o HTTPS, usa RSA em múltiplos pontos críticos. É a diferença entre gritar seus segredos em praça pública e sussurrá-los em um cofre acústico impenetrável.

RSA no Handshake TLS

  • Autenticação do servidor: Certificado com chave pública RSA
  • Troca de chaves: Cliente gera pre-master secret
  • Cifragem: RSA encripta pre-master para servidor
  • Derivação: Ambos derivam chaves simétricas
  • Comunicação: AES/ChaCha20 para dados reais
  • Perfect Forward Secrecy: DHE/ECDHE com assinatura RSA

Email Seguro: PGP e S/MIME

Phil Zimmermann democratizou a criptografia com PGP, permitindo que qualquer um protegesse suas comunicações. S/MIME trouxe criptografia para email corporativo. Ambos dependem fundamentalmente do RSA para criar envelopes digitais que protegem privacidade em escala global.

Anatomia de um Email Criptografado

  • Gerar chave simétrica aleatória para mensagem
  • Cifrar mensagem com AES usando esta chave
  • Cifrar chave simétrica com RSA do destinatário
  • Assinar hash da mensagem com RSA do remetente
  • Envelope digital: garantia de confidencialidade e autenticidade
  • Web of Trust (PGP) vs. PKI hierárquica (S/MIME)

Assinaturas de Código

Como saber se o software que você baixa não foi modificado por hackers? Assinaturas de código RSA garantem integridade e origem. Cada app no seu smartphone, cada atualização do Windows, cada extensão do navegador — todos verificados por RSA antes de executar em seu dispositivo.

Processo de Assinatura de Software

  • Desenvolvedor compila código final
  • Calcula hash criptográfico do executável
  • Assina hash com chave privada RSA
  • Anexa assinatura e certificado ao arquivo
  • SO verifica antes de executar
  • Proteção contra malware e tampering

VPNs e Túneis Seguros

Redes Privadas Virtuais criam túneis criptográficos através da internet pública. RSA autentica endpoints e estabelece chaves de sessão. É como ter um túnel privado subterrâneo em uma cidade movimentada — seus dados viajam invisíveis e protegidos.

RSA em Protocolos VPN

  • IPSec: Certificados RSA para autenticação IKE
  • OpenVPN: TLS com RSA para controle
  • WireGuard: Mais moderno, mas ainda suporta RSA
  • Autenticação mútua: Cliente e servidor se verificam
  • Perfect Forward Secrecy: Novas chaves por sessão
  • Proteção contra MITM: Impossível interceptar

Blockchain e Criptomoedas

Bitcoin e outras criptomoedas revolucionaram finanças usando criptografia. Embora Bitcoin use curvas elípticas, muitos sistemas blockchain incorporam RSA para assinaturas e autenticação. É dinheiro digital protegido por matemática pura.

RSA no Ecossistema Blockchain

  • Carteiras multi-assinatura com RSA
  • Autenticação de nós validadores
  • Smart contracts verificando assinaturas RSA
  • Bridges entre blockchains usando RSA
  • Identidade digital descentralizada
  • Timestamping e notarização blockchain

Infraestrutura de Chave Pública (PKI)

PKI é o sistema nervoso da confiança digital. Autoridades Certificadoras, certificados digitais, listas de revogação — todo um ecossistema que permite que estranhos confiem uns nos outros online. RSA é a espinha dorsal matemática desta infraestrutura global.

Componentes PKI Essenciais

  • Root CAs: Âncoras de confiança, chaves RSA 4096-bit
  • Intermediate CAs: Delegação hierárquica
  • Registration Authorities: Verificam identidades
  • Certificate Revocation: CRL e OCSP
  • Time Stamping: Prova temporal com RSA
  • Key Escrow: Recuperação corporativa (controverso)

Autenticação e Single Sign-On

SAML, OAuth, e outros protocolos de autenticação moderna dependem de assinaturas RSA. Quando você usa "Login com Google" ou acessa múltiplos serviços corporativos com uma senha, RSA está garantindo que sua identidade não seja forjada.

RSA em Identidade Digital

  • SAML Assertions: Assinadas com RSA
  • JWT Tokens: RS256 para assinatura
  • OAuth 2.0: Certificados para servidores
  • FIDO/WebAuthn: Pode usar RSA para attestation
  • Smart Cards: RSA on-chip para autenticação forte
  • Federação: Confiança entre organizações

Documentos Digitais e Compliance

Contratos eletrônicos, declarações fiscais, prontuários médicos — documentos críticos protegidos e autenticados por RSA. Em muitos países, assinaturas digitais RSA têm a mesma validade legal que assinaturas manuscritas.

RSA em Documentação Legal

  • PDF assinado: Adobe usa RSA para assinaturas
  • Certificados ICP-Brasil: RSA 2048 bits mínimo
  • e-CPF/e-CNPJ: Tokens com chaves RSA
  • Timestamping legal: Prova de tempo com RSA
  • Long-term validation: Re-assinatura periódica
  • Conformidade: eIDAS, ESIGN Act, MP 2.200-2

IoT e Sistemas Embarcados

Bilhões de dispositivos IoT precisam de segurança, mas têm recursos limitados. RSA adaptado para ambientes restritos protege desde marcapassos até carros autônomos. É segurança matemática no limite do possível.

Desafios RSA em IoT

  • Processadores limitados: Otimizações agressivas
  • Energia escassa: RSA apenas para bootstrap
  • Memória restrita: Chaves menores (controverso)
  • Atualizações OTA: Assinadas com RSA
  • Device attestation: Provar autenticidade
  • Secure boot: RSA verifica firmware

Backup e Recuperação

Como proteger backups que podem ficar armazenados por décadas? RSA com chaves longas e renovação periódica. É como criar cápsulas do tempo digitais que só o futuro autorizado pode abrir.

Estratégias de Backup Seguro

  • Criptografia híbrida: RSA + AES para eficiência
  • Key splitting: Shamir's Secret Sharing
  • Renovação de chaves: Re-encriptar periodicamente
  • Quantum-safe: Adicionar camada pós-quântica
  • Disaster recovery: Múltiplas cópias geograficamente
  • Compliance: Retenção vs. direito ao esquecimento

Casos de Uso Emergentes

Novas aplicações RSA surgem constantemente. Votação eletrônica, identidade auto-soberana, comunicações inter-planetárias — onde houver necessidade de confiança digital, RSA encontra aplicação.

Fronteiras da Aplicação RSA

  • Votação eletrônica: Verificabilidade sem comprometer sigilo
  • Blockchain privada: Consenso com identidades RSA
  • 5G security: Autenticação de estações base
  • Comunicação espacial: Tolerância a alta latência
  • DNA digital: Assinatura de sequências genéticas
  • Realidade virtual: Autenticação em metaversos

As aplicações do RSA são tão vastas quanto nossa imaginação digital. De proteger conversas íntimas a garantir eleições democráticas, de autenticar dispositivos médicos a assegurar transações financeiras globais — RSA é o guardião matemático silencioso de nossa civilização digital. Mas como toda tecnologia, deve evoluir. No próximo capítulo, exploraremos o futuro da criptografia em um mundo onde computadores quânticos ameaçam tornar o RSA obsoleto, e novas matemáticas prometem segurança para as próximas gerações.

Futuro da Criptografia e Computação Quântica

Estamos no limiar de uma revolução que pode tornar obsoleta toda a criptografia que conhecemos. Computadores quânticos, aproveitando as bizarras propriedades da mecânica quântica, prometem capacidades computacionais que desafiam nossa intuição. Para o RSA, isso representa uma sentença de morte anunciada — mas também o nascimento de novas formas de proteção ainda mais fascinantes. Neste capítulo final, exploraremos o crepúsculo do RSA e o amanhecer da era pós-quântica, onde a matemática deve reinventar-se para proteger nossos segredos em um mundo quântico.

A Ameaça Quântica

Em 1994, Peter Shor abalou o mundo da criptografia ao descobrir um algoritmo quântico que fatora números grandes eficientemente. Onde computadores clássicos precisariam de eras geológicas, um computador quântico suficientemente grande poderia quebrar RSA-2048 em horas. É como se alguém tivesse inventado uma chave mestra universal — exceto que ainda estamos construindo a fechadura.

Algoritmo de Shor: A Espada de Dâmocles

  • Complexidade clássica: Exponencial para fatoração
  • Complexidade quântica: Polinomial O((log n)³)
  • Requisitos: ~20 milhões de qubits físicos para RSA-2048
  • Estado atual: ~1000 qubits ruidosos (2024)
  • Projeções: 10-30 anos para computadores capazes
  • Mas: "Harvest now, decrypt later" já é realidade

Criptografia Pós-Quântica

A comunidade criptográfica não esperou passivamente. Novos sistemas baseados em problemas matemáticos resistentes a computadores quânticos estão sendo desenvolvidos e padronizados. É uma corrida contra o tempo — criar novos escudos antes que as antigas espadas sejam forjadas.

Candidatos Pós-Quânticos

  • Lattice-based: Problemas em reticulados de alta dimensão
  • Code-based: Decodificação de códigos de erro
  • Hash-based: Assinaturas de uso único/limitado
  • Multivariate: Sistemas de equações polinomiais
  • Isogeny-based: Caminhos entre curvas elípticas
  • NIST Round 3: Kyber, Dilithium, FALCON, SPHINCS+

Transição Híbrida

A migração para criptografia pós-quântica não será abrupta. Sistemas híbridos que combinam RSA com algoritmos pós-quânticos oferecem segurança contra ambas as ameaças — clássicas e quânticas. É como usar cinto e suspensório criptográfico.

Estratégias de Migração

  • Hybrid key exchange: RSA + Kyber
  • Dual signatures: RSA + Dilithium
  • Crypto-agility: Sistemas que podem trocar algoritmos
  • Inventário de sistemas: Mapear onde RSA é usado
  • Priorização: Dados com longa vida primeiro
  • Testing: Impacto de performance e compatibilidade

Computação Quântica: Além da Ameaça

Ironicamente, a mesma tecnologia que ameaça o RSA promete revolucionar a própria criptografia. Distribuição quântica de chaves (QKD) oferece segurança baseada em leis físicas, não complexidade computacional. É segurança garantida pela natureza, não pela matemática.

Criptografia Quântica Positiva

  • QKD: Detecção garantida de espionagem
  • Quantum random: Verdadeira aleatoriedade
  • Blind quantum computing: Computação sem revelar dados
  • Quantum money: Impossível de falsificar
  • Limitações: Distância, custo, infraestrutura
  • Futuro: Complementar, não substituir cripto clássica

Novos Paradigmas de Segurança

O fim do RSA força repensar segurança fundamental. Conceitos como segurança forward-secure, criptografia homomórfica e computação multipartidária segura ganham importância. É uma mudança de "proteger dados" para "computar com dados protegidos".

Além da Criptografia Tradicional

  • Homomorphic encryption: Computar sem decriptar
  • Secure multiparty: Colaborar sem compartilhar
  • Zero-knowledge proofs: Provar sem revelar
  • Functional encryption: Decriptar apenas resultados
  • Blockchain privacy: Transparência com privacidade
  • AI + Crypto: Machine learning preservando privacidade

Implicações Sociais e Políticas

A transição pós-quântica não é apenas técnica. Governos, empresas e sociedade devem adaptar-se. Questões de soberania digital, privacidade e segurança nacional ganham novas dimensões quando a criptografia atual tem data de validade.

Desafios Não-Técnicos

  • Legislação: Atualizar leis para novos algoritmos
  • Geopolítica: Corrida quântica entre nações
  • Economia: Custos massivos de migração
  • Educação: Treinar nova geração de especialistas
  • Ética: Privacidade vs. segurança nacional
  • Timeline: Urgência vs. maturidade tecnológica

Preparando Hoje para Amanhã

Organizações prudentes já começam a preparação. Inventariar sistemas, testar alternativas, desenvolver agilidade criptográfica — ações hoje que evitarão catástrofes amanhã. É construir a arca antes do dilúvio quântico.

Roadmap Pós-Quântico Prático

  • 2024-2025: Inventário e avaliação de risco
  • 2025-2027: Pilotos com sistemas híbridos
  • 2027-2030: Migração de sistemas críticos
  • 2030+: Descomissionamento gradual do RSA
  • Contínuo: Monitorar avanços quânticos
  • Sempre: Manter cripto-agilidade

O Legado do RSA

Mesmo quando o RSA tornar-se obsoleto, seu legado permanecerá. Demonstrou que matemática pura pode proteger segredos práticos, que problemas difíceis criam segurança útil, que a criptografia pode ser democratizada. As lições aprendidas com RSA guiarão a próxima era.

Lições para o Futuro

  • Simplicidade elegante supera complexidade desnecessária
  • Padronização aberta cria confiança global
  • Segurança deve evoluir com ameaças
  • Teoria e prática devem caminhar juntas
  • Transparência fortalece, não enfraquece
  • Matemática é a fundação mais sólida

Vislumbrando o Horizonte

O futuro da criptografia será quântico e clássico, matemático e físico, centralizado e distribuído. Novas ameaças surgirão — computadores ainda não imaginados, ataques ainda não concebidos. Mas a humanidade continuará encontrando formas de proteger o que valoriza.

O Amanhã da Segurança Digital

  • Criptografia adaptativa que evolui com ameaças
  • Integração profunda com hardware quântico
  • Privacidade como direito fundamental codificado
  • Novos problemas matemáticos, novas soluções
  • Cooperação global contra ameaças globais
  • A aventura continua, apenas muda de forma

Chegamos ao fim de nossa jornada pelo mundo do RSA, mas é apenas o começo de uma nova era criptográfica. Como exploradores no limiar de um continente desconhecido, vislumbramos terras estranhas e maravilhosas à frente. O RSA nos trouxe até aqui — protegendo nossos segredos, conectando o mundo, democratizando a privacidade. Agora, armados com o conhecimento de como chegamos aqui e para onde vamos, somos todos participantes na grande aventura de proteger a informação na era quântica. Que a matemática continue sendo nossa aliada nesta jornada sem fim!

Referências Bibliográficas

Este estudo sobre a criptografia RSA e seus fundamentos na teoria dos números foi construído sobre o trabalho de inúmeros matemáticos, criptógrafos e cientistas da computação. As referências a seguir representam desde os textos clássicos que estabeleceram as bases matemáticas até obras contemporâneas sobre segurança quântica e implementações modernas. Esta bibliografia oferece recursos para aprofundamento em cada aspecto da criptografia de chave pública, desde a teoria dos números pura até as aplicações práticas em segurança digital.

Obras Fundamentais em Teoria dos Números e Criptografia

BRASIL. Base Nacional Comum Curricular: Educação é a Base. Brasília: MEC/CONSED/UNDIME, 2018.

BUCHMANN, Johannes. Introduction to Cryptography. 2nd ed. New York: Springer-Verlag, 2004.

BURNETT, Steve; PAINE, Stephen. RSA Security's Official Guide to Cryptography. Berkeley: McGraw-Hill, 2001.

COHEN, Henri. A Course in Computational Algebraic Number Theory. Berlin: Springer-Verlag, 1993.

CORMEN, Thomas H. et al. Introduction to Algorithms. 3rd ed. Cambridge: MIT Press, 2009.

COUTINHO, Severino Collier. Números Inteiros e Criptografia RSA. 3ª ed. Rio de Janeiro: IMPA, 2014.

DIFFIE, Whitfield; HELLMAN, Martin. New Directions in Cryptography. IEEE Transactions on Information Theory, v. 22, n. 6, p. 644-654, 1976.

FERGUSON, Niels; SCHNEIER, Bruce; KOHNO, Tadayoshi. Cryptography Engineering. Indianapolis: Wiley, 2010.

FIARRESGA, Victor M. C. Criptografia e Matemática. Lisboa: Fundação Calouste Gulbenkian, 2010.

GARRETT, Paul. Making, Breaking Codes: Introduction to Cryptology. Upper Saddle River: Prentice Hall, 2001.

GOLDREICH, Oded. Foundations of Cryptography. Cambridge: Cambridge University Press, 2001.

HARDY, G. H.; WRIGHT, E. M. An Introduction to the Theory of Numbers. 6th ed. Oxford: Oxford University Press, 2008.

HEFEZ, Abramo. Aritmética. 2ª ed. Rio de Janeiro: SBM, 2016.

HOFFSTEIN, Jeffrey; PIPHER, Jill; SILVERMAN, Joseph H. An Introduction to Mathematical Cryptography. 2nd ed. New York: Springer, 2014.

IRELAND, Kenneth; ROSEN, Michael. A Classical Introduction to Modern Number Theory. 2nd ed. New York: Springer-Verlag, 1990.

KATZ, Jonathan; LINDELL, Yehuda. Introduction to Modern Cryptography. 3rd ed. Boca Raton: CRC Press, 2020.

KNUTH, Donald E. The Art of Computer Programming, Volume 2: Seminumerical Algorithms. 3rd ed. Boston: Addison-Wesley, 1997.

KOBLITZ, Neal. A Course in Number Theory and Cryptography. 2nd ed. New York: Springer-Verlag, 1994.

KRANAKIS, Evangelos. Primality and Cryptography. Stuttgart: Teubner, 1986.

MENEZES, Alfred J.; VAN OORSCHOT, Paul C.; VANSTONE, Scott A. Handbook of Applied Cryptography. Boca Raton: CRC Press, 1996.

MOLLIN, Richard A. RSA and Public-Key Cryptography. Boca Raton: Chapman & Hall/CRC, 2003.

MOREIRA, Júlio César G.; SALDANHA, Nicolau C. Teoria dos Números: Um Passeio com Primos e outros Números Familiares pelo Mundo Inteiro. 4ª ed. Rio de Janeiro: IMPA, 2019.

NIVEN, Ivan; ZUCKERMAN, Herbert S.; MONTGOMERY, Hugh L. An Introduction to the Theory of Numbers. 5th ed. New York: John Wiley & Sons, 1991.

OLIVEIRA, José Plínio de. Introdução à Teoria dos Números. 4ª ed. Rio de Janeiro: IMPA, 2015.

PAAR, Christof; PELZL, Jan. Understanding Cryptography. Berlin: Springer-Verlag, 2010.

RIBENBOIM, Paulo. Números Primos: Mistérios e Recordes. Rio de Janeiro: IMPA, 2001.

RIESEL, Hans. Prime Numbers and Computer Methods for Factorization. 2nd ed. Boston: Birkhäuser, 1994.

RIVEST, R.; SHAMIR, A.; ADLEMAN, L. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, v. 21, n. 2, p. 120-126, 1978.

ROSEN, Kenneth H. Elementary Number Theory and Its Applications. 6th ed. Boston: Pearson, 2011.

SANTOS, José Plínio O.; MELLO, Margarida P.; MURARI, Idani T. C. Introdução à Análise Combinatória. 4ª ed. Rio de Janeiro: Ciência Moderna, 2007.

SCHNEIER, Bruce. Applied Cryptography. 2nd ed. New York: John Wiley & Sons, 1996.

SHOUP, Victor. A Computational Introduction to Number Theory and Algebra. 2nd ed. Cambridge: Cambridge University Press, 2009.

SILVERMAN, Joseph H. A Friendly Introduction to Number Theory. 4th ed. Upper Saddle River: Pearson, 2013.

SINGH, Simon. O Livro dos Códigos. Rio de Janeiro: Record, 2001.

STALLINGS, William. Cryptography and Network Security. 7th ed. Boston: Pearson, 2017.

STINSON, Douglas R. Cryptography: Theory and Practice. 4th ed. Boca Raton: CRC Press, 2018.

TERADA, Routo. Segurança de Dados: Criptografia em Redes de Computador. 2ª ed. São Paulo: Blucher, 2008.

WASHINGTON, Lawrence C. Elliptic Curves: Number Theory and Cryptography. 2nd ed. Boca Raton: Chapman & Hall/CRC, 2008.

YAN, Song Y. Computational Number Theory and Modern Cryptography. Singapore: John Wiley & Sons, 2013.

Segurança Quântica e Criptografia Pós-Quântica

BERNSTEIN, Daniel J.; BUCHMANN, Johannes; DAHMEN, Erik (Eds.). Post-Quantum Cryptography. Berlin: Springer, 2009.

CHEN, Lily et al. Report on Post-Quantum Cryptography. NIST Internal Report 8105, 2016.

NIELSEN, Michael A.; CHUANG, Isaac L. Quantum Computation and Quantum Information. 10th Anniversary Edition. Cambridge: Cambridge University Press, 2010.

SHOR, Peter W. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. SIAM Journal on Computing, v. 26, n. 5, p. 1484-1509, 1997.