Obfuscation indistinguable
En cryptologie, l'obfuscation indistinguable ou iO est un modèle de sécurité dans lequel on peut espérer prouver certaines propriétés cryptologiques. Ce modèle postule l'existence d'un algorithme efficace dont l'effet approximatif est de réécrire un programme informatique, de sorte qu'un adversaire ne parvienne pas à distinguer de manière fiable deux programmes ainsi réécrits, lorsque ces derniers sont assez similaires. L'existence postulée d'un tel algorithme, pour lequel plusieurs candidats sont aujourd'hui proposés, a des conséquences importantes en cryptologie et en sécurité informatique.

Histoire et motivation 
L'obfuscation indistinguable a été introduite en 2001 par les cryptologues Boaz Barak, Oded Goldreich, Rusell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan et Ke Yang après que ceux-ci ont montré qu'il n'existe pas d'algorithme d'obfuscation « en boîte noire », c'est-à-dire capable de masquer le fonctionnement de tout programme à un adversaire. Le modèle de l'obfuscation indistinguable est conçu pour échapper à ce résultat d'impossibilité tout en restant assez fort :

 il permet la construction de nouvelles primitives cryptographiques, comme le chiffrement répudiable (proposé en 2006 comme un problème ouvert), le chiffrement fonctionnel (proposé en 2005 comme un problème ouvert), des protocoles d'échange de clé multipartite, ou de signatures propositionnelles (proposé en 2010 comme un problème ouvert) ;
 il fournit des preuves de sécurité plus simples et plus légères, certaines s'appuyant seulement sur les fonctions à sens unique (se passant notamment d'oracles aléatoires), de plus il éclaire les autres modèles de sécurité et leurs relations mutuelles ;
 il promet des compilateurs capables de protéger l'implémentation d'un algorithme contre la modification ou l'ingénierie inverse.

Pour toutes ces raisons, l'obfuscation indistinguable est devenue un des concepts théoriques centraux en cryptologie. La question s'est donc rapidement posée de construire des algorithmes compatibles avec ce modèle : il s'agit à l'heure actuelle (2018) d'un problème encore largement ouvert. Plusieurs candidats ont été proposés, initialement à partir d'applications mulilinéaires cryptographiques, dont la sécurité est encore mal comprise. On sait aujourd'hui qu'une application trilinéaire suffit, et il existe même un candidat d'obfuscation indistinguable construit à partir d'accouplements et d'apprentissage avec erreurs.

Définition 
On considère une classe de circuits (généralement les classes NC1 ou P/poly), et on dit qu'une machine de Turing probabiliste  est un obfuscateur indistinguable pour  lorsque les deux propriétés suivantes sont satisfaites :

 Pour tout paramètre de sécurité , tout circuit  de la forme où  dépend de , et toute entrée , la fonctionnalité du circuit est préservée par obfuscation, c'est-à-dire : 
 Pour tout algorithme (modélisé comme une machine de Turing probabiliste également) il existe une fonction négligeable  telle que ce qui suit est vrai : pour tout paramètre de sécurité , toute paire de circuits  tels que  pour toute entrée , l'algorithme  ne peut distinguer une obfuscation de d'une obfuscation de ; mathématiquement : 
 Pour tout circuit , la taille du circuit après obfuscation  est bornée par un polynôme en et en .

Notes et références

Notes

Références 

Cryptologie
En cryptologie , l' obfuscation indistinguable ou iO est un modèle de sécurité dans lequel on peut espérer prouver certaines propriétés cryptologiques . Ce modèle postule l' existence d' un algorithme efficace dont l' effet approximatif est de réécrire un programme informatique , de sorte qu' un adversaire ne parvienne pas à distinguer de manière fiable deux programmes ainsi réécrits , lorsque ces derniers sont assez similaires . L' existence postulée d' un tel algorithme , pour lequel plusieurs candidats sont aujourd'hui proposés , a de les conséquences importantes en cryptologie et en sécurité informatique . Histoire et motivation L' obfuscation indistinguable a été introduite enpar les cryptologues Boaz Barak , Oded Goldreich , Rusell Impagliazzo , Steven Rudich , Amit Sahai , Salil Vadhan et Ke Yang après que ceux-ci ont montré qu' il n' existe pas d' algorithme d' obfuscation « en boîte noire » , c'est-à-dire capable de masquer le fonctionnement de tout programme à un adversaire . Le modèle de l' obfuscation indistinguable est conçu pour échapper à ce résultat d' impossibilité tout en restant assez fort \ : il permet la construction de nouvelles primitives cryptographiques , comme le chiffrement répudiable ( proposé encomme un problème ouvert ) , le chiffrement fonctionnel ( proposé encomme un problème ouvert ) , de les protocoles d' échange de clé multipartite , ou de signatures propositionnelles ( proposé encomme un problème ouvert ) ; il fournit de les preuves de sécurité plus simples et plus légères , certaines s' appuyant seulement sur les fonctions à sens unique ( se passant notamment d' oracles aléatoires ) , de plus il éclaire les autres modèles de sécurité et leurs relations mutuelles ; il promet de les compilateurs capables de protéger l' implémentation d' un algorithme contre la modification ou l' ingénierie inverse . Pour toutes ces raisons , l' obfuscation indistinguable est devenue un de les concepts théoriques centraux en cryptologie . La question s' est donc rapidement posée de construire de les algorithmes compatibles avec ce modèle \ : il s' agit à l' heure actuelled'un problème encore largement ouvert . Plusieurs candidats ont été proposés , initialement à partir d' applications mulilinéaires cryptographiques , dont la sécurité est encore mal comprise . On sait aujourd'hui qu' une application trilinéaire suffit , et il existe même un candidat d' obfuscation indistinguable construit à partir d' accouplements et d' apprentissage avec erreurs . Définition On considère une classe de circuits ( généralement les classes NC1 ou P/poly ) , et on dit qu' une machine de Turing probabiliste est un obfuscateur indistinguable pour lorsque les deux propriétés suivantes sont satisfaites \ : Pour tout paramètre de sécurité , tout circuit de la forme où dépend de , et toute entrée , la fonctionnalité de le circuit est préservée par obfuscation , c'est-à-dire \ : Pour tout algorithme ( modélisé comme une machine de Turing probabiliste également ) il existe une fonction négligeable telle que ce qui suit est vrai \ : pour tout paramètre de sécurité , toute paire de circuits tels que pour toute entrée , l' algorithme ne peut distinguer une obfuscation de d' une obfuscation de ; mathématiquement \ : Pour tout circuit , la taille de le circuit après obfuscation est bornée par un polynôme en et en \ . Notes et références Notes Références Cryptologie