0Pricing
Cryptology Academy · Aula

Assinaturas RSA: assinar e verificar

Acompanhe a matemática da assinatura do resumo de um documento com uma chave privada.

Assinaturas RSA: assinar e verificar é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Boas-vindas

As assinaturas RSA trocam os papéis das chaves: a chave privada assina e a chave pública verifica. Isso permite que qualquer pessoa verifique sua identidade usando sua chave pública.

Matemática da assinatura RSA

Para assinar a mensagem M com a chave privada (d, n): 1. H = SHA256(M) 2. sig = H^d mod n A assinatura é um número com o mesmo comprimento em bits de n.

Matemática da verificação RSA

Para verificar a assinatura sig com a chave pública (e, n): 1. H' = sig^e mod n 2. H = SHA256(M) 3. Válida se H == H' Qualquer pessoa com a chave pública pode verificar — nenhum segredo é necessário.

Preenchimento de assinatura PKCS#1 v1.5

Assinaturas RSA brutas são maleáveis. PKCS#1 v1.5 preenche o resumo antes da assinatura: 0x00 0x01 [0xFF padding] 0x00 [DigestInfo] [Hash] A verificação confere a estrutura exata do preenchimento.

RSA-PSS: preenchimento melhor

RSA-PSS (Esquema de Assinatura Probabilística) usa um sal aleatório, fazendo com que cada assinatura seja diferente, mesmo para a mesma mensagem. É comprovadamente seguro no modelo do oráculo aleatório. É preferível a PKCS#1 v1.5.

Assinatura RSA em Python (PSS)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes signature = private_key.sign( message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() )

Verificação RSA em Python

try: public_key.verify( signature, message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() ) print('Valid!') except InvalidSignature: print('Invalid!')

Comprimento da assinatura

Assinatura RSA-2048: 256 bytes. RSA-4096: 512 bytes. Assinatura ECDSA-256: ~71 bytes (codificação DER de tamanho variável). A assinatura contém toda a saída da exponenciação modular.

Assinaturas cegas

Uma assinatura cega permite que o signatário assine uma mensagem sem ver seu conteúdo. É usada em votação eletrônica e dinheiro eletrônico: o banco assina um token cego, o usuário remove a cegueira — dinheiro não rastreável.

Assinatura RSA na cadeia de certificados

Let's Encrypt assina o certificado do seu servidor com a chave privada RSA de sua CA intermediária. A chave pública do seu servidor está no corpo do certificado. Os clientes TLS verificam essa cadeia automaticamente.

Transparência de certificados

A Transparência de Certificados registra todos os certificados emitidos em uma árvore de Merkle verificável criptograficamente. Marcas de tempo de certificados assinados (SCTs) comprovam a inclusão no registro antes da emissão.

Verificação rápida

Na verificação de uma assinatura RSA, qual chave é usada para verificar a assinatura?

Recapitulação

As assinaturas RSA são seguras com o preenchimento adequado. Em seguida, compararemos os esquemas de assinatura RSA, DSA e ECDSA.

Perguntas Frequentes

A aula “Assinaturas RSA: assinar e verificar” é grátis?

Sim — o texto completo de “Assinaturas RSA: assinar e verificar” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Assinaturas RSA: assinar e verificar”?

Acompanhe a matemática da assinatura do resumo de um documento com uma chave privada. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Assinaturas RSA: assinar e verificar”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que é uma assinatura digital?
  2. Assinaturas RSA: assinar e verificar
  3. Esquemas de assinatura DSA e ECDSA
  4. Assinaturas na prática: assinatura de código e e-mail
← Voltar para Cryptology Academy