Pós-graduação → Matemática discreta → Criptografia ↓
RSA e criptografia de curva elíptica
Códigos e criptografia estão no cerne das comunicações digitais modernas. Os dois métodos mais conhecidos para comunicações seguras, RSA e Criptografia de Curva Elíptica (ECC), baseiam-se nos princípios da matemática discreta. Este artigo explorará mais a fundo esses sistemas criptográficos e ajudará a esclarecer como usamos princípios matemáticos para criptografar dados, para que se mantenham seguros de olhares curiosos.
Criptografia RSA
RSA leva o nome de seus desenvolvedores, Ron Rivest, Adi Shamir e Leonard Adleman, que o introduziram em 1977. É uma forma de criptografia de chave pública, que utiliza duas chaves – uma chave pública usada para criptografar e uma chave privada usada para descriptografar.
Princípios básicos do RSA
A segurança do RSA depende da dificuldade de fatorar grandes inteiros. Funciona assim:
- Criação de chaves:
- Escolha dois números primos diferentes
p
eq
. - Calcule
n = p * q
. O númeron
é usado como módulo para ambas as chaves pública e privada. Seu comprimento, geralmente expresso em bits, é o comprimento da chave. - Calcule
φ(n) = (p-1)(q-1)
. - Escolha um inteiro
e
tal que1 < e < φ(n)
egcd(e, φ(n)) = 1
. O númeroe
é o expoente público. - Defina
d
comod ≡ e -1 (mod φ(n))
, o que significa qued
é o inverso multiplicativo modular dee
móduloφ(n)
.
(e, n)
, e a chave privada é(d, n)
. - Escolha dois números primos diferentes
- Criptografia:
- A mensagem
M
é criptografada com a chave pública do destinatário:C ≡ M e (mod n)
, ondeC
é o texto cifrado.
- A mensagem
- Descriptografia:
- O texto cifrado
C
é descriptografado usando a chave privada:M ≡ C d (mod n)
, retornando a mensagem originalM
.
- O texto cifrado
Exemplos ilustrativos
Suponha que escolhamos os números primos p = 61
e q = 53
, então n = 61 * 53 = 3233
.
O total é φ(n) = (61-1)(53-1) = 3120
.
Escolha e = 17
, que é coprimo a 3120.
Para encontrar d
, o algoritmo euclidiano estendido fornece d = 2753
.
Criptografando uma mensagem
Deixe M = 65
mensagens criptografadas C
:
C = 65 17 mod 3233
Usando exponenciação rápida, obtemos C = 2790
.
Descriptografando a mensagem
Para recuperar M
:
M = 2790 2753 mod 3233
Mais uma vez, utilizando cálculo eficiente retornamos a M = 65
.
Segurança do RSA
A força do RSA reside no tamanho do módulo n
. Quanto maior o valor, mais difícil é dividir n
em seus componentes primos, p
e q
. Esta dificuldade computacional garante a segurança da chave privada. Além disso, escolher um expoente suficientemente grande e
desempenha um papel em tornar o RSA robusto contra tipos específicos de ataques.
Criptografia de curva elíptica (ECC)
A criptografia de curva elíptica é um método moderno de criptografia. Utiliza as propriedades das curvas elípticas em campos finitos. A ECC é elogiada por sua eficiência, pois fornece segurança equivalente ao RSA, mas com tamanhos de chave muito menores.
Entendendo as curvas elípticas
Uma curva elíptica é definida pela seguinte equação:
y 2 = x 3 + ax + b
Para fins de criptografia, focamos em curvas elípticas sobre campos finitos, especialmente campos de ordem prima.
y 2 = x 3 + ax + b
sobre campos finitos
Considere um campo finito F p
onde p
é um número primo. Então a curva elíptica consiste nos pontos (x, y)
que satisfazem a equação da curva, que inclui um ponto especial no infinito denotado como O
Operações nos pontos das curvas elípticas
As operações em curvas elípticas são regidas pelas regras de adição de pontos e multiplicação por escalar. Essas operações operam sob aritmética modular de campos finitos.
Adicionando dígitos
Dado dois pontos P = (x 1 , y 1)
e Q = (x 2 , y 2)
, sua soma R = P + Q = (x 3 , y 3)
é calculada como segue:
- Se
P ≠ Q
, então use:λ = (y 2 - y 1) / (x 2 - x 1) mod px 3 = λ 2 - x 1 - x 2 mod py 3 = λ(x 1 - x 3) - y 1 mod p
- Se
P = Q
, então use:λ = (3x 1 2 + a) / 2y 1 mod px 3 = λ 2 - 2x 1 mod py 3 = λ(x 1 - x 3) - y 1 mod p
Multiplicação por escalar
Esta operação é importante na ECC. Se k
é um escalar e P
é um ponto na curva, então kP
é o resultado obtido ao adicionar o P
a ele mesmo k
vezes.
Geração de chave ECC
A ECC usa multiplicação por escalar para gerar chaves. Aqui está um esboço simples de como gerar um par de chaves de curva elíptica:
- Escolha um número primo
p
e parâmetrosa
eb
para definir a curva. - Escolha o ponto base
G
na curva. - Selecione um inteiro aleatório
d
como a chave privada. - Calcule
Q = dG
, ondeQ
é a chave pública.
Exemplo de geração de chave pública ECC
Considere uma curva elíptica em F p
onde p = 17
, a = 2
, e b = 2
. Vamos escolher G = (5,1)
.
Suponha d = 7
, então calculamos:
Q = 7G = G + G + G + G + G + G + G
Somando repetidamente os pontos, obtemos Q
Segurança da ECC
A segurança da ECC é baseada no Problema do Logaritmo Discreto da Curva Elíptica (ECDLP). Dados dois pontos P
e kP
, determinar k
é computacionalmente impossível. Isso é semelhante ao problema de fatoração de grandes números primos no RSA.
Comparação entre RSA e ECC
Embora RSA e ECC sirvam ao mesmo propósito em termos de criptografar, assinar e verificar dados, eles o fazem por meio de princípios matemáticos diferentes. Aqui estão algumas diferenças chave:
- Tamanho da chave: ECC oferece maior força por bit do que RSA, o que significa chaves menores para o mesmo nível de segurança.
- Desempenho: ECC pode ser mais eficiente em termos de custo computacional, especialmente para dispositivos móveis e ambientes com recursos limitados.
- Longevidade: Como o RSA exigirá tamanhos de chave maiores para manter a segurança no futuro, a ECC é uma candidata mais promissora para segurança criptográfica a longo prazo.
Representação visual
Considere como esses princípios funcionam na representação gráfica de uma curva elíptica.
Neste exemplo, a curva azul representa uma curva elíptica, enquanto o ponto rotulado O
representa o ponto no infinito, um conceito essencial na aritmética de curvas elípticas.
Ambos RSA e ECC representam importantes realizações criptográficas baseadas em matemática discreta. RSA depende fortemente da fatoração de inteiros, enquanto ECC depende das propriedades geométricas das curvas elípticas. Juntos, eles fornecem soluções robustas para proteger dados na era digital, cada um com suas próprias forças e aplicações únicas.