Schéma basé sur l'identité

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le schéma fondé sur l'identité (ou identity-based) est une notion de cryptologie introduite par Adi Shamir en 1984, lors de la conférence internationale CRYPTO'84.

Principe[modifier | modifier le code]

L'idée est de prendre comme clef publique l'identité de l'utilisateur, par exemple ses nom, prénom, date de naissance, ou numéro de sécurité sociale. Si l'on arrive à créer des clés de chiffrement secrètes relatives à ces identités de telle sorte que deux individus différents ne puissent avoir la même clef secrète, alors il n'est plus utile de certifier les clefs publiques.

Schémas généraux[modifier | modifier le code]

Les schémas basés sur l'identité permettent à n'importe quelle personne de régénérer la clé publique d'un individu à partir d'une valeur d'identité telle qu'une chaîne ASCII.

Un tiers de confiance, le générateur de clés privées, est chargé de la fabrication des clefs secrètes qui correspondent à ces clés publiques. Pour cela, le générateur de clés privées publie une clé publique « maître » et conserve pour lui la clé privée qui correspond.

On combine la clé publique « maître » à la valeur d'identité i afin de régénérer la clé publique qui correspond à cette identité. Afin d'obtenir la clé privée associée, la personne à qui correspond cette identité doit contacter le générateur de clés privées, qui utilise la clé « maître » pour générer la clé privée qui correspond à son identité.

En conséquence, il est possible de chiffrer des messages (ou de vérifier des signatures) sans opération préalable d'échange de clé entre les individus. Ceci est extrêmement utile au cas où la prédistribution des clés est difficile, ou impossible à cause de contraintes techniques.

Inconvénients[modifier | modifier le code]

La contrainte de cette approche est que le niveau de confiance qui doit être accordé au générateur de clés privées est très élevé, car il est intrinsèquement capable de régénérer la clé privée de tout utilisateur, et donc de pouvoir réaliser sans autorisation des signature ou des déchiffrement. En fait une fonctionnalité de recouvrement de clé est présente de manière inhérente au système.

Un certain nombre de variantes ont été proposées afin d'éviter ce problème tel que le chiffrement basé sur certificat, la génération de clé sécurisée, et la cryptographie sans certificat. Quelques schémas ont été proposés entre 1984 et 2000, mais aucun n'a réuni deux qualités majeures : sécurité et applicabilité.

Il faut attendre 2001, et les publications de quasi-simultanées Cocks et de Franklin et Boneh pour voir des cryptosystèmes vraiment prometteurs.

Cette page décrit dans le détail uniquement le schéma de Cocks, qui a l'avantage de l'originalité sur son rival. Il est néanmoins important de remarquer que le système de Boneh et Franklin est pleinement opérationnel, et dispose d'une implémentation pour le chiffrage de courriel.

Classification de Shamir des protocoles de reconnaissance[modifier | modifier le code]

En 1986, Fiat et Shamir ont classifié les différentes catégories de protocoles de reconnaissance. Ils distinguèrent alors trois niveaux de protections. Supposons qu'Alice veuille prouver son identité à Bob, les différents niveaux sont alors :

  1. protocole d'authentification: Alice peut prouver à Bob qu'elle est véritablement Alice, mais personne d'autre ne peut prouver à Bob qu'elle est Alice.
  2. protocole d'identification : Alice peut prouver à Bob qu'elle est véritablement Alice, et Bob ne peut extraire aucune information de cette preuve pour tenter de faire croire à quelqu'un d'autre qu'il est Alice.
  3. protocole de signature (ou non-répudiation): ce protocole a les mêmes propriétés que le précédent mais, en plus, Alice ne peut pas dire qu'elle n'a pas prouvé son identité à Bob, ou que le message qu'elle a signé était différent de celui que Bob prétend avoir reçu (elle ne peut pas répudier sa signature). En d'autres termes, Bob ne peut pas faire croire qu'Alice lui a prouvé son identité alors qu'elle ne l'a pas fait.

En fait, le protocole d'authentification au sens de Fiat et Shamir ne sera utilisé que lorsqu’Alice et Bob ont leurs intérêts en communs, pour prévenir une attaque venue de l'extérieur. Par contre, lorsqu’Alice et Bob ont des intérêts divergents, l'un des deux autres types de schéma doit être employé. Avec un protocole d'authentification, Bob pourrait a posteriori se faire passer pour Alice auprès d'un troisième intervenant. Ceci n'est plus possible lorsque l'on a affaire à un schéma d'identification. En revanche, dans ce cas, comme dans le cas de l'authentification, Bob peut faire croire qu'il a reçu un message venant d'Alice (en quelque sorte en imitant sa signature), tandis qu'un protocole de signature l'en interdit.

Nous n'utiliserons cependant pas le vocabulaire de Shamir, en ne faisant pas de distinction entre authentification et identification. En effet l'authentification au sens de Shamir présuppose qu'Alice et Bob ne sont pas rivaux, ce qui arrive assez souvent dans la pratique, mais aussi, que personne ne peut écouter une preuve d'authentification entre Alice et Bob, car sinon l'indélicat personnage serait dans les mêmes conditions que Bob pour restituer la clef secrète d'Alice, et pourrait donc se faire passer pour Alice lors des conversations ultérieures. Or, la confidentialité physique est généralement loin d'être parfaitement assurée.

Protocole de Shamir[modifier | modifier le code]

Ce schéma est sous-jacent au protocole de signature publié par Shamir en 1984. Comme pour le schéma précédent, l'autorité crée une biclé RSA (les mêmes notations seront utilisées et à partir de maintenant, tous les calculs doivent être effectués modulo n, dans ce protocole et dans les suivants). L'autorité confie à Alice V=I^{d}, où I est l'identité d'Alice. Pour prouver qui elle est, Alice devra montrer qu'elle connaît V, sans dévoiler V.

Pour cela, lorsqu'elle envoie un message à Bob, elle choisit un aléa x<n et lui envoie t=x^{e}. Bob prend au hasard un nombre c appartenant à l'intervalle [1,e-1], et le communique à Alice qui lui retourne alors y=Vx^{c}. Il ne reste plus à Bob qu'à vérifier que l'on a bien y^{e}=It^{c}.

Cependant, on ne possède pas de preuve de la sécurité de ce schéma.

Protocole de Cocks[modifier | modifier le code]

Soit i l'ensemble d'informations représentant l'identité d'Alice. On suppose l'existence d'un procédé publique h à base de fonctions de hachage tel que (\frac{h(i)}{M})=1. On considérera dans la suite l'expression a=h(i) comme étant l'identité de Alice.

Supposons que Bob veuille transmettre un courrier à Alice, d'identité a. La valeur M est publique. On supposera de plus sans perte de généralité que a est un carré modulo M. Bob va traiter son message bit à bit :

Chiffrement[modifier | modifier le code]

Soit x la représentation d'un bit à envoyer, x=1 ou -1. Bob choisit un entier t aléatoirement tel que (\frac{t}{M})=x. Il peut alors envoyer le cryptogramme s correspondant à x: s=(t+\frac{a}{t})(\bmod M)

Déchiffrement[modifier | modifier le code]

Conformément au principe des cryptosystèmes basés sur l'identité, Alice interagit avec l'autorité de manière à obtenir r vérifiant r^{2}=a(\bmod M). On a vu que seule la connaissance de P et Q permet de calculer r. Cette connaissance sera le secret de l'autorité et r sera le clef secrète d'Alice, fourni par l'autorité. Ainsi, comme s+2r=t(1+r/t)^{2}(\bmod M), Alice peut retrouver x avec : (\frac{s+2r}{M})=(\frac{t}{M})=x. Dans le cas où -a est un carré modulo M, on utilise s=t-a/t(\bmod M).

Voir aussi[modifier | modifier le code]

Liens internes[modifier | modifier le code]