Aller au contenu

IND-CPA : Indistinguishability under Chosen-Plaintext Attack

Cryptographie

IND-CPA : Indistinguishability under Chosen-Plaintext Attack, indistinguabilité sous attaque à clair choisi. « La garantie qu'un adversaire, même autorisé à chiffrer tout ce qu'il veut, ne saura pas dire lequel de deux messages se cache derrière un chiffré », par analogie avec un bonneteau honnête, où l'on peut regarder le joueur manipuler les gobelets aussi longtemps qu'on veut sans gagner plus souvent qu'à pile ou face.

Le jeu : L'adversaire dispose du chiffrement (la clé publique, ou un oracle de chiffrement en symétrique). Il choisit deux messages de même longueur, reçoit le chiffré de l'un d'eux tiré au hasard et doit deviner lequel. Le schéma est IND-CPA si son avantage sur le hasard reste négligeable.

Conséquence : Un chiffrement déterministe, qui donne toujours le même chiffré pour le même message, ne peut pas être IND-CPA : il suffit de chiffrer soi-même les deux candidats et de comparer. D'où l'aléa et les vecteurs d'initialisation dans les chiffrés.

Ses limites : L'adversaire n'obtient aucun déchiffrement. La notion plus forte IND-CCA2 (attaque à chiffré choisi adaptative, Adaptive Chosen-Ciphertext Attack) lui en accorde, et c'est elle qu'on exige d'un KEM ou d'un chiffrement authentifié. Le chiffrement homomorphe, dont les chiffrés sont malléables par construction, ne vise en général que IND-CPA.

Le cas CKKS : Li et Micciancio (2021) ont montré qu'avec CKKS (Cheon, Kim, Kim et Song, chiffrement homomorphe sur nombres approchés), le résultat déchiffré conserve une erreur qui renseigne sur la clé : publier des résultats déchiffrés peut suffire à retrouver la clé secrète. Ils ont proposé la notion IND-CPA-D, qui donne en plus à l'adversaire des déchiffrements de chiffrés honnêtement calculés.

Ce qui arrive si on s'en passe

Un schéma qui n'est pas IND-CPA laisse fuiter ce qui se répète : deux salaires identiques donnent deux chiffrés identiques, et un attaquant qui peut faire chiffrer « oui » et « non » lit les bulletins d'un vote chiffré sans jamais toucher à la clé. Le mode ECB en est l'illustration la plus célèbre, avec son manchot resté parfaitement reconnaissable une fois chiffré. Croire qu'IND-CPA suffit est l'erreur suivante : dès que l'adversaire voit des déchiffrements, comme avec CKKS, la garantie s'arrête exactement là où il commence à s'amuser.

Explication de la marmotte

Un bon chiffrement doit cacher même ce qui se répète. IND-CPA est un test imaginaire : un adversaire choisit deux messages, on lui montre la version chiffrée de l'un des deux, et il doit deviner lequel. S'il ne fait pas mieux qu'en tirant à pile ou face, alors qu'il peut lui-même chiffrer tout ce qu'il veut, le chiffrement réussit le test. C'est pour cela qu'un même message chiffré deux fois doit donner deux résultats différents.

Où ce terme est utilisé

← Tout le glossaire