En cryptologie, le cryptosystème de Cramer-Shoup est un chiffrement à clé publique introduit en 1998 par les cryptologues Ronald Cramer et Victor Shoup[1],[2],[3]. Historiquement, il s'agit du premier cryptosystème combinant les trois propriétés suivantes : il est résistant aux attaques adaptatives à chiffrés choisis (IND-CCA2), il est prouvé sûr dans le modèle standard, et il est efficace[1],[3]. Ces propriétés et d'autres le rendent particulièrement attrayant pour construire des mécanismes d'encapsulation de clés[4],[5].
La résistance aux attaques adaptatives à chiffrés choisis (IND-CCA2), introduite par Rackoff et Simon en 1991[6], correspond au plus haut niveau de sécurité atteignable par un cryptosystème pour le chiffrement[7]. La nécessité pratique d'une telle sécurité a été mise en avant par Bleichenbacher en 1998[8].
Plusieurs constructions IND-CCA2 ont été proposées dans le modèle de l'oracle aléatoire, notamment OAEP. Par ailleurs, des transformations génériques permettent d'atteindre ce niveau de sécurité, mais ils reposent sur des preuves à divulgation nulle de connaissance et s'avèrent très inefficaces. Jusqu'à l'introduction du cryptosystème de Cramer-Shoup, aucun chiffrement IND-CCA2 efficace n'était connu, dont la sécurité pouvait être prouvée dans le modèle standard[3]. La première preuve que de tels cryptosystèmes existent pourtant est due à Dolev, Dwork et Naor[9].
Le cryptosystème de Cramer-Shoup est une extension de celui d'ElGamal qui bloque la malléabilité du chiffré. Le prix à payer est que les clés et les chiffrés sont beaucoup plus larges que pour ElGamal (4 éléments de groupe pour le chiffré). De nombreuses variantes de Cramer-Shoup proposées depuis cherchent à réduire ce phénomène, quitte à réintroduire des hypothèses hors du modèle standard[10].
L'algorithme de « génération de clé » prend en entrée un paramètre de sécurité. Il détermine un groupe cyclique d'ordre et une fonction . Le choix de et de la fonction dépend de et se fait à partir de l'analyse de sécurité, voir plus bas.
L'algorithme donne deux générateurs aléatoires de et tire six exposants aléatoires . Il calcule alors :
Finalement l'algorithme retourne une clé publique , des paramètres publics , et la clé privée .
L'algorithme de chiffrement prend en entrée les paramètres publics, la clé publique, et un message . Un exposant est choisi uniformément au hasard, puis l'algorithme calcule :
L'algorithme de déchiffrement prend en entrée les paramètres publics, la clé privée, et un chiffré . Il calcule et vérifie . Si l'égalité est fausse, l'algorithme de déchiffrement échoue et renvoie un symbole d'erreur (). Sinon, il renvoie .
↑Il existe plusieurs présentations équivalentes, et plusieurs variantes non équivalentes, du cryptosystème. Pour des alternatives (simplifiées ou étendues) voir Boneh et Shoup 2017, chap 12.5.
↑La preuve originelle de Cramer et Shoup opère par réduction directe d'un adversaire CCA2 au problème DDH. Une preuve alternative consiste à montrer la sécurité sémantique et la simulabilité[4], qui ensemble impliquent IND-CCA2[7].
[Bellare et al. 1998] (en) Mihir Bellare, Anand Desai, David Pointcheval et Phillip Rogaway, « Relations among notions of security for public-key encryption schemes », dans Advances in Cryptology — CRYPTO '98, Springer Berlin Heidelberg, (ISBN9783540648925, DOI10.1007/bfb0055718, lire en ligne), p. 26-45 ;
[Bleichenbacher 1998] (en) Daniel Bleichenbacher, « Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1 », dans Advances in Cryptology — CRYPTO '98, Springer Berlin Heidelberg, (ISBN9783540648925, DOI10.1007/bfb0055716, lire en ligne), p. 1-12 ;
[Cramer et Shoup 1998] (en) Ronald Cramer et Victor Shoup, « A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack », dans Advances in Cryptology — CRYPTO '98, Springer Berlin Heidelberg, (ISBN9783540648925, DOI10.1007/bfb0055717, lire en ligne), p. 13-25 ;
[Cramer et Shoup 2002] (en) Ronald Cramer et Victor Shoup, « Universal Hash Proofs and a Paradigm for Adaptive Chosen Ciphertext Secure Public-Key Encryption », dans Advances in Cryptology — EUROCRYPT 2002, Springer Berlin Heidelberg, (ISBN9783540435532, DOI10.1007/3-540-46035-7_4, lire en ligne), p. 45-64 ;
[Dent 2006] (en) Alexander W. Dent, « The Cramer-Shoup Encryption Scheme Is Plaintext Aware in the Standard Model », dans Advances in Cryptology - EUROCRYPT 2006, Springer Berlin Heidelberg, (ISBN9783540345466, DOI10.1007/11761679_18, lire en ligne), p. 289-307 ;
[Naor et Yung 1989] (en) Mori Naor et Moti Yung, « Universal one-way hash functions and their cryptographic applications », STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing, ACM, , p. 33-43 (ISBN0897913078, DOI10.1145/73007.73011, lire en ligne, consulté le ) ;
[Rackoff et Simon 1991] (en) Charles Rackoff et Daniel R. Simon, « Non-Interactive Zero-Knowledge Proof of Knowledge and Chosen Ciphertext Attack », dans Advances in Cryptology — CRYPTO ’91, Springer Berlin Heidelberg, (ISBN9783540551881, DOI10.1007/3-540-46766-1_35, lire en ligne), p. 433-444 ;
[Teranishi et Ogata 2008] (en) Isamu Teranishi et Wakaha Ogata, « Cramer-Shoup Satisfies a Stronger Plaintext Awareness under a Weaker Assumption », dans Lecture Notes in Computer Science, Springer Berlin Heidelberg, (ISBN9783540858546, DOI10.1007/978-3-540-85855-3_8, lire en ligne), p. 109-125.