0Pricing
Cryptology Academy · Leçon

OAEP : bourrage optimal pour le chiffrement asymétrique

Suivez l’encodage OAEP et découvrez comment il assure la sécurité IND-CCA2.

OAEP : bourrage optimal pour le chiffrement asymétrique est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.

Bienvenue

OAEP (bourrage optimal pour le chiffrement asymétrique) fournit un chiffrement RSA démontrablement sûr selon IND-CCA2. Il utilise un encodage aléatoire qui rend les requêtes adressées à l’oracle inutiles sur le plan cryptographique.

Objectifs d’OAEP

OAEP a été conçu par Bellare et Rogaway en 1994 avec deux objectifs : (1) empêcher toutes les attaques contre le RSA brut grâce à l’aléa ; (2) atteindre la sécurité IND-CCA2 avec une preuve de sécurité formelle dans le modèle de l’oracle aléatoire.

Entrées d’OAEP

M : message à chiffrer (|M| ≤ |n| - 2*hLen - 2 octets) L : étiquette facultative (généralement vide) MGF : fonction de génération de masque (fondée sur SHA-256) r : graine aléatoire (hLen octets)

Étape 1 de l’encodage OAEP : bloc de données

DB = lHash || PS || 0x01 || M où : - lHash = Hash(L) (hachage de l’étiquette) - PS = octets nuls servant à atteindre la longueur fixe - 0x01 marque le début du message

Étape 2 de l’encodage OAEP : masquage

maskedDB = DB XOR MGF(r, len(DB)) maskedSeed = r XOR MGF(maskedDB, hLen) EM = 0x00 || maskedSeed || maskedDB Il s’agit du message auquel le bourrage est appliqué avant le chiffrement RSA.

MGF1 : fonction de génération de masque

MGF1(Z, L) = Hash(Z || 0x00000000) || Hash(Z || 0x00000001) || ... MGF1 avec SHA-256 génère une sortie pseudoaléatoire de longueur arbitraire à partir d’une graine. Elle est utilisée dans OAEP et RSA-PSS.

Décodage d’OAEP

À partir de EM : 1. Séparer maskedSeed et maskedDB 2. r = maskedSeed XOR MGF(maskedDB, hLen) 3. DB = maskedDB XOR MGF(r, len(DB)) 4. Vérifier que lHash correspond ; trouver le séparateur 0x01 ; extraire M 5. Toute erreur → échec du déchiffrement (toujours la même erreur)

Pourquoi OAEP résiste aux attaques par oracle

La graine aléatoire r d’OAEP change à chaque chiffrement. Avec une probabilité écrasante, le déchiffrement d’un texte chiffré modifié produit un message rempli uniformément au hasard. L’oracle voit « invalide » pour toutes les modifications.

Sécurité IND-CCA2

IND-CCA2 (indistinguabilité sous attaque à texte chiffré choisi 2) : l’attaquant ne peut pas distinguer Enc(M0) de Enc(M1), même s’il a accès à un oracle de déchiffrement pour tous les textes chiffrés, sauf celui du défi. OAEP atteint cette propriété.

OAEP contre v1.5 en pratique

Bibliothèque Python cryptography : utilisez padding.OAEP(), et non padding.PKCS1v15(). Java : utilisez le chiffrement 'RSA/ECB/OAEPWithSHA-256AndMGF1Padding'. N’utilisez jamais 'RSA/ECB/PKCS1Padding' dans du nouveau code.

Taille maximale du message avec OAEP

Pour RSA-2048 avec SHA-256 : Taille maximale du message = 256 - 2×32 - 2 = 190 octets Le surcoût d’OAEP est de 2×hLen + 2 octets. Pour les messages plus longs, utilisez un chiffrement hybride AES : chiffrez la clé AES avec OAEP et les données avec AES-GCM.

Vérification rapide

Quelle propriété rend OAEP résistant aux attaques par oracle de bourrage ?

Récapitulatif

OAEP fournit une sécurité démontrable pour le chiffrement RSA. Nous étudions ensuite RSA-PSS, l’amélioration équivalente pour les signatures RSA.

Questions Fréquemment Posées

La leçon « OAEP : bourrage optimal pour le chiffrement asymétrique » est-elle gratuite ?

Oui — le texte complet de « OAEP : bourrage optimal pour le chiffrement asymétrique » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « OAEP : bourrage optimal pour le chiffrement asymétrique » ?

Suivez l’encodage OAEP et découvrez comment il assure la sécurité IND-CCA2. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cryptology Academy ?

Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « OAEP : bourrage optimal pour le chiffrement asymétrique » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?

Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. RSA théorique et raisons de son insécurité
  2. Bourrage PKCS#1 v1.5 et Bleichenbacher
  3. OAEP : bourrage optimal pour le chiffrement asymétrique
  4. RSA-PSS pour les signatures numériques
← Retour à Cryptology Academy