Uma Introdução Simples ao RSA

Você já deve ter ouvido falar de RSA – aquele negócio de criptografia, chaves assimétricas –, certo? Mas você sabe o que é, como funciona e de onde vem o nome? Nessa thread, vou dar uma visão geral bem simples pra você entender e arrasar no próximo dat…


This content originally appeared on DEV Community and was authored by Francisco Zanfranceschi

Você já deve ter ouvido falar de RSA – aquele negócio de criptografia, chaves assimétricas –, certo? Mas você sabe o que é, como funciona e de onde vem o nome? Nessa thread, vou dar uma visão geral bem simples pra você entender e arrasar no próximo date ou churrasco.

Vamos direto ao ponto! RSA é um algoritmo de criptografia de chaves assimétricas (ou chaves públicas). E chaves assimétricas aqui significa que são valores diferentes, mas matematicamente relacionados pra que a criptografia e descriptografia funcionem certinho.

O nome RSA vem dos sobrenomes dos seus 3 criadores: Ron Rivest, Adi Shamir e Leonard Adleman. RSA é provavelmente o sistema de criptografia mais conhecido atualmente e foi divulgado em 1977.

Voltando na questão das chaves assimétricas ou públicas. Essa parte é interessante porque pra que duas partes se comuniquem de forma segura, elas não precisam compartilhar uma senha – elas compartilham apenas uma informação pública e cada uma tem sua "senha" – chave privada.

Vamos supor que A queira se comunicar com B de forma segura. No RSA, A tem uma chave pública e uma chave privada e B também tem uma chave pública e outra privada. A e B trocam livremente suas chaves públicas. Sem problemas se terceiros acessarem essas chaves públicas.

Quando A precisa enviar uma mensagem pra B, A usa a chave pública de B para criptografar uma mensagem e então a envia para B. B então usa sua chave privada para descriptografar essa mensagem. E vice-versa para quando B quiser enviar mensagens para A.

Tranquilo até aqui?

O algoritmo pra criptografar e descriptografar é super simples. Imaginando que toda informação que trocamos entre computadores seja representada por números, vamos a um exemplo de que "oi" seja representado por 111 e 115.

https://cryptii.com/pipes/text-decimal

As chaves públicas do RSA na verdade são pares de números. Vamos supor que a chave pública seja (143, 17) e a privada seja (143, 113). A fórmula pra criptografar é (para cada caractere):

c ^ 17 mod 143

...onde c é 111 e depois 115

Então "oi" que é 111 e 115, seria representado por 89 e 124. Se formos na tabelas ASCII, o valor criptografado seria "Y|".

Pra descriptografar, a fórmula usa valores da chave privada:

d ^ 113 mod 143

...onde d é 89 e depois 124

Vamos descriptografar 89 e 124 então:

89 ^ 113 mod 143 = 111
124 ^ 113 mod 143 = 115

Tá-dá! Temos 111 e 115 de novo que representa "oi"!

A parte que acho mais legal do RSA é a geração das chaves. Mas como já existem muitos materiais na internet sobre como isso, fiz apenas uma representação visual porque não achei nada assim e talvez isso te ajude a entender.

https://www.cryptool.org/en/cto/rsa-step-by-step/

Geração de Chaves RSA

Geração de Chaves RSA com Exemplos

Bom, isso aqui foi o básico do básico sobre RSA de uma forma extremamente simplificada.

O RSA tem umas coisas bem interessantes que valem ser mencionadas. Continua aqui pra você ser a pessoa mais legal no jantar do natal desse ano e soltar essas pros seus primos.

A fortaleza do RSA é ser baseado em números primos e seu produto. Isso porque fatorar dois números primos gigantes (n) é extremamente custoso. Um computador normal levaria muuuuito tempo pra fazer isso. Com computadores quânticos o negócio já muda de figura.

Se alguém descobrir um algoritmo pra quebrar o número n em q e p, basicamente a segurança da maioria da internet estaria seriamente comprometida. Ou você achamesmo que não têm governos que interceptam mensagens criptografadas e guardam tudo pra tentar descriptografar? Humpf...

Outra coisa interessante sobre RSA é que as chaves são comutativas no sentido que a chave pública pode ser usada também pra descriptografar algo que foi criptografado com a chave privada. E isso é usado para assinaturas.

Ou seja, de forma simplificada, eu criptografo algo com minha chave privada e qualquer um poderia descriptografar com minha chave pública para comprovar minha autenticidade. Por exemplo, isso é usado em emails.

RSA ainda é muito usado. Por exemplo, no TLS 1.2, o RSA pode ser usado pra troca de chaves.

Se achou esse conteúdo legal, posso te sugerir algumas coisas:

  • Procure por detalhes relacionados a RSA em certificados de sites – p.ex. a chave pública (geralmente em formato hexadecimal).

  • Escreva o algoritmo para gerar chaves e (des)criptografar na sua linguagem favorita.

Muito obrigado se leu até aqui!


This content originally appeared on DEV Community and was authored by Francisco Zanfranceschi


Print Share Comment Cite Upload Translate Updates
APA

Francisco Zanfranceschi | Sciencx (2025-05-26T01:20:31+00:00) Uma Introdução Simples ao RSA. Retrieved from https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/

MLA
" » Uma Introdução Simples ao RSA." Francisco Zanfranceschi | Sciencx - Monday May 26, 2025, https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/
HARVARD
Francisco Zanfranceschi | Sciencx Monday May 26, 2025 » Uma Introdução Simples ao RSA., viewed ,<https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/>
VANCOUVER
Francisco Zanfranceschi | Sciencx - » Uma Introdução Simples ao RSA. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/
CHICAGO
" » Uma Introdução Simples ao RSA." Francisco Zanfranceschi | Sciencx - Accessed . https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/
IEEE
" » Uma Introdução Simples ao RSA." Francisco Zanfranceschi | Sciencx [Online]. Available: https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/. [Accessed: ]
rf:citation
» Uma Introdução Simples ao RSA | Francisco Zanfranceschi | Sciencx | https://www.scien.cx/2025/05/26/uma-introducao-simples-ao-rsa/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.