Transfert inconscient

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Ébauche

Le transfert inconscient (oblivious transfer, en anglais) est une primitive cryptographique où un expéditeur transmet une information, sélectionnée parmi plusieurs envois possibles, à un destinataire, sans que l'expéditeur puisse connaître le choix du destinataire, ni que le destinataire puisse connaître les informations qu'il n'a pas demandées. Par exemple, Wikipédia propose plusieurs articles ; avec le transfert inconscient, un utilisateur peut demander à consulter un article sans que Wikipédia puisse savoir quel article a été consulté.

Cette primitive a été introduite en 1981 par Michael Rabin, dans un manuscrit intitulé Modèle:LangueModèle:Sfn. Dans la version de Rabin, basée sur le chiffrement RSA, l’expéditeur transmet un message que le destinataire reçoit avec une probabilité de 1/2, sans que l'expéditeur puisse savoir si la réception a eu lieu ou non. En 1985, les travaux de Even, Goldreich et Lempel ont proposé une version améliorée du transfert inconscient 1 parmi 2 qui permettait de réaliser de manière sécurisée du calcul multipartite sécuriséModèle:Sfn. Ce résultat a ensuite été amélioré par KillianModèle:Sfn, en montrant que le transfert inconscient 1 parmi 2 suffisait à évaluer de manière multipartite n’importe quelle fonction en temps polynomial. Ce résultat est une des raisons de l’intérêt existant autour de cette primitive.

Définition

La définition de Michael Rabin consistait en un protocole tel que l'expéditeur envoyait un message M au destinataire, mais avec une probabilité 1/2 de perdre le message. L’expéditeur ne savait pas si son message était arrivé à bon port. Claude Crépeau a montré que cette définition était équivalente à celle utilisée dans sa définition courante: le transfert inconscient 1 parmi 2Modèle:Sfn. Des résultats similaires ont été montrés par Khurana, Maji et Sahai, en utilisant un canal bruitéModèle:Sfn (avec un taux d'erreur strictement inférieur à 1/2).

Transfert inconscient 1 parmi 2

Un schéma de transfert inconscient est donné par deux algorithmes interactifsModèle:SfnModèle:,Modèle:Sfn: l’expéditeur S et le destinataire R. L’expéditeur prend en entrée deux messages M0 et M1, tandis que de destinataire prend en entrée un bit σ. L’interaction entre les deux partis est notée SM0,M1Rσ.

Les notions de sécurité associées sont la sécurité de l’expéditeur et la sécurité du destinataire.

  • La sécurité du destinataire requiert que les distributions SM0,M1R0 et SM0,M1R1 soient indistinguables. Ce qui traduit le fait que l’expéditeur est incapable de savoir quel message le destinataire a demandé.
  • La sécurité de l’expéditeur quant-à-elle traduit le fait que l’expéditeur ayant demandé Mσ ne doit pas être capable de savoir quoi que ce soit sur le message M1σ à l’issue de l’échange.
Alice (S) Bob (R)
Calculs Secret Public Public Secret Calculs
Messages à envoyer M0,M1
Création d'une paire de clefs RSA et envoi de la clef publique à Bob d N,e N,e Réception de la clef publique d'Alice
Génération de deux messages aléatoires x0,x1 x0,x1 Réception de deux messages aléatoires
k,σ Choix de σ{0,1} et génération d'un nombre aléatoire k
v v=(xσ+ke)modN Calcul du chiffrement de k avec xσ et envoi du résultat à Alice
Calcul des deux valeurs possibles pour k,

dont une seule correspond à celle de Bob

k0=(vx0)dmodNk1=(vx1)dmodN
Envoi des deux messages à Bob M'0=M0+k0M'1=M1+k1 M'0,M'1 Réception des deux messages
Mσ=M'σk Déchiffrement du message M'σ, grâce au xσ choisi précédemment .
  1. Alice propose d'envoyer a Bob un message parmi deux disponibles M0 et M1. Bob souhaite choisir l'un des deux messages à recevoir, sans qu'Alice puisse savoir lequel.
  2. Alice génère une paire de clefs RSA, c'est-à-dire un modulo N, un exposant public e et un exposant privé d.
  3. Elle génère également deux messages aléatoires x0 et x1 qu'elle envoie à Bob en même temps que sa clef publique (N,e).
  4. Bob choisit le message qu'il souhaite recevoir, indiqué par σ{0,1}. Il sélectionne donc la valeur correspondante xσ.
  5. Bob génère un nombre aléatoire k et chiffre k avec xσ en calculant v=(xσ+ke)modN, qu'il envoie à Alice.
  6. Pour Alice, il est impossible de déterminer si Bob a choisi x0 ou x1 pour calculer v, car elle ignore le nombre k généré par Bob . Elle calcule donc les deux valeurs possibles pour k à partir de v: k0=(vx0)dmodN et k1=(vx1)dmodN. L'une de ces deux valeurs est égale au k choisi par Bob (sans qu'Alice sache lequel) et l'autre est une valeur aléatoire qui ne fournit aucune information sur k.Ceci garantit la sécurité du destinataire.
  7. Alice masque les messages M0 et M1 avec les deux clefs possibles k0 et k1 pour donner M'0=M0+k0 et M'1=M1+k1. Ces deux messages sont envoyés à Bob.
  8. Bob déchiffre le message M'σ avec le k qu'il a choisi, pour obtenir Mσ=M'σk. Bob est par ailleurs incapable de déchiffrer l'autre message. En effet, il faudrait qu'il puisse calculer l'autre valeur de k, c'est-à-dire k1σ, ce qu'il ne peut faire sans la clef privée d'Alice. Ceci garantit la sécurité de l'expéditeur.

Transfert inconscient 1 parmi n et k parmi n

Modèle:... Le transfert inconscient 1 parmi n peut être généralisé à partir du protocole 1 parmi 2 détaillé ci-dessus. L’expéditeur dispose de n messages et le destinataire choisit un indice i entre 0 et n - 1 correspondant au message qu'il souhaite recevoir, toujours sans que l'expéditeur puisse savoir quel message a été choisi, ni que le destinataire puisse prendre connaissance d'un autre message que celui qu'il a sélectionné. D'autres implémentations sont également possibles.

Autre exemple d'implémentation de 1 parmi n

On suppose qu'Alice possède m secrets s1,,sm binaires valant tous soit 0 soit 1[note 1]. On suppose que Bob souhaite connaître le secret si. Un protocole de transfert inconscient peut être le suivant[1]Modèle:,[note 2]:

  1. Alice choisit deux nombres premiers p et q et un nombre a qui n'est pas un résidu quadratique modulo n=pq et tel que le symbole de Jacobi (an) soit égal à 1[note 3];
  2. Alice publie a et n ;
  3. Alice associe un nombre aléatoire xi0 à chaque secret si et envoie à Bob les m nombres yi:=xi2asimodn ;
  4. Bob génère un nombre aléatoire r ainsi qu'un bit aléatoire b{0,1} et envoie à Alice le nombre δi=yir2ab[note 4];
  5. Alice dit à Bob si le nombre δi est un résidu quadratique modulo n. Si oui, alors si=b sinon si=1b[note 5].

Ce protocole repose essentiellement sur l'idée que décider si l'entier δi est un résidu quadratique modulo n est aisé si les facteurs premiers de n sont connus[2], comme c'est le cas d'Alice, et impossible en un temps raisonnable sinon[2], comme dans le cas de Bob.

Comparaison avec les PIR

Le transfert inconscient 1 parmi n est donc plus restrictif que les protocoles PIR (Modèle:Lien) qui n'exigent que la sécurité du destinataire (l'expéditeur ne peut savoir quel message a bien été transmis). En revanche, les protocoles PIR sont généralement plus économes en ce qui concerne la quantité de données effectivement transmises. En effet, dans le protocole 1 parmi n, Alice envoie nécessairement les n messages à Bob (même s'il ne peut en lire qu'un seul), alors que les protocoles PIR sont souvent sous-linéaire en n.

Généralisation

Gilles Brassard, Claude Crépeau et Jean-Marc Robert ont proposé une généralisation au transfert k parmi n[3], dans laquelle le destinataire peut sélectionner plus d'un message parmi ceux proposés par l'expéditeur. Les k messages peuvent être reçus simultanément ou consécutivement, chaque nouveau message pouvant être choisi selon les messages reçus précédemment

Requêtes adaptatives

Modèle:Sources de section Modèle:...

Notes et références

Notes

Modèle:Traduction/Référence Modèle:Références

Références

Modèle:Références

Annexes

Bibliographie

Articles connexes

Modèle:Portail


Erreur de référence : Des balises <ref> existent pour un groupe nommé « note », mais aucune balise <references group="note"/> correspondante n’a été trouvée