0Pricing
Cryptology Academy · Aula

OAEP: preenchimento ideal para encriptação assimétrica

Acompanhe a codificação OAEP e como ela alcança segurança IND-CCA2.

OAEP: preenchimento ideal para encriptação assimétrica é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 3 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

O OAEP (Preenchimento de Criptografia Assimétrica Ótimo) fornece criptografia RSA com segurança IND-CCA2 demonstrável. Ele usa uma codificação aleatorizada que torna as consultas ao oráculo criptograficamente inúteis.

Objetivos do OAEP

O OAEP foi projetado por Bellare e Rogaway (1994) com dois objetivos: (1) impedir todos os ataques contra o RSA de livro-texto por meio da aleatorização; (2) alcançar segurança IND-CCA2 com uma prova de segurança formal no modelo do oráculo aleatório.

Entradas do OAEP

M: mensagem a ser criptografada (|M| ≤ |n| - 2*hLen - 2 bytes) L: rótulo opcional (geralmente vazio) MGF: função de geração de máscaras (baseada em SHA-256) r: semente aleatória (hLen bytes)

Etapa 1 da codificação OAEP: bloco de dados

DB = lHash || PS || 0x01 || M onde: - lHash = Hash(L) (hash do rótulo) - PS = bytes zero preenchendo até o comprimento fixo - 0x01 marca o início da mensagem

Etapa 2 da codificação OAEP: mascaramento

maskedDB = DB XOR MGF(r, len(DB)) maskedSeed = r XOR MGF(maskedDB, hLen) EM = 0x00 || maskedSeed || maskedDB Esta é a mensagem preenchida fornecida à criptografia RSA.

MGF1: função de geração de máscaras

MGF1(Z, L) = Hash(Z || 0x00000000) || Hash(Z || 0x00000001) || ... O MGF1 com SHA-256 gera uma saída pseudoaleatória de comprimento arbitrário a partir de uma semente. É usado no OAEP e no RSA-PSS.

Descodificação do OAEP

Dado EM: 1. Separe em maskedSeed e maskedDB 2. r = maskedSeed XOR MGF(maskedDB, hLen) 3. DB = maskedDB XOR MGF(r, len(DB)) 4. Verifique se lHash corresponde; encontre o separador 0x01; extraia M 5. Qualquer erro → falha na descriptografia (o erro é sempre o mesmo)

Por que o OAEP derrota ataques com oráculo

A semente aleatória r do OAEP muda a cada criptografia. Com probabilidade extremamente alta, um texto cifrado modificado é descriptografado como uma mensagem preenchida uniformemente aleatória. O oráculo vê “inválido” para todas as modificações.

Segurança IND-CCA2

IND-CCA2 (indistinguibilidade sob o ataque de texto cifrado escolhido 2): o atacante não consegue distinguir Enc(M0) de Enc(M1), mesmo tendo acesso a um oráculo de descriptografia para todos os textos cifrados, exceto o desafio. O OAEP alcança isso.

OAEP versus v1.5 na prática

Biblioteca cryptography do Python: use padding.OAEP(), não padding.PKCS1v15(). Java: use o cifrador 'RSA/ECB/OAEPWithSHA-256AndMGF1Padding'. Nunca use 'RSA/ECB/PKCS1Padding' em código novo.

Tamanho máximo da mensagem no OAEP

Para RSA-2048 com SHA-256: Mensagem máxima = 256 - 2×32 - 2 = 190 bytes A sobrecarga do OAEP é de 2×hLen + 2 bytes. Para mensagens mais longas, use criptografia híbrida AES: criptografe a chave AES com OAEP e os dados com AES-GCM.

Verificação rápida

Que propriedade torna o OAEP resistente a ataques de oráculo de preenchimento?

Recapitulação

O OAEP fornece segurança demonstrável para a criptografia RSA. Em seguida, estudaremos o RSA-PSS — a melhoria equivalente para assinaturas RSA.

Perguntas Frequentes

A aula “OAEP: preenchimento ideal para encriptação assimétrica” é grátis?

Sim — o texto completo de “OAEP: preenchimento ideal para encriptação assimétrica” é 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 “OAEP: preenchimento ideal para encriptação assimétrica”?

Acompanhe a codificação OAEP e como ela alcança segurança IND-CCA2. 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 3 de 4.

Quanto tempo leva a aula “OAEP: preenchimento ideal para encriptação assimétrica”?

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. RSA de livro-texto e por que é inseguro
  2. Preenchimento PKCS#1 v1.5 e Bleichenbacher
  3. OAEP: preenchimento ideal para encriptação assimétrica
  4. RSA-PSS para assinaturas digitais
← Voltar para Cryptology Academy