Brevet FR3047327A1 (20170804)
REVENDICATIONS1. Procédé d'exécution d'un calcul cryptographique mis en oeuvre par une première unité de traitement dite unité-client (10) possédant une première donnée (X') comprenant un nombre n de composantes indexées et une deuxième unité de traitement dite unité-serveur (20) possédant au moins une deuxième donnée (Y), les unités comprenant chacune des moyens de traitement (11, 21), le procédé comprenant l'évaluation sécurisée (200) d'une fonction (F) de deux variables s'écrivant comme un produit de : - une sous-fonction fx d'une première variable - une sous-fonction fy d'une deuxième variable, et - un produit de n sous-fonctions indexées f, des deux variables, l'évaluation étant mise en oeuvre avec la première (X') et la deuxième donnée (Y) comme entrées de la fonction (F), le procédé étant caractérisé en ce qu'il comprend les étapes suivantes : - génération aléatoire (210), par l'unité-serveur (20), d'un ensemble de n données inversibles pour la multiplication indexées r, appartenant à l'ensemble Zmavec m premier, - génération (220), par l'unité-serveur (20), pour chaque i de 1 à n, d'un ensemble dont chaque élément est formé par le produit d'une donnée indexée r, avec un résultat possible de la sous-fonction de deux variables f, évaluée en la première et la deuxième donnée, - mise en oeuvre d'un protocole de transfert inconscient (230) entre l'unité client (10) et l'unité serveur (20) pour que l'unité client récupère, pour chaque i de 1 à n, une donnée intermédiaire t, égale au résultat de la sous- fonction de deux variables f, évaluée en la première (X') et la deuxième données (Y), multipliée par la donnée indexée r, : ti = ri x fi(xi,Y) - multiplication (250), par l'unité client (10), de toutes les données intermédiaires et de la sous-fonction de la première variable fx évaluée en la première donnée (X') pour obtenir un résultat T : T = fx (X') x fl ti i =1 3047327 23 - génération (240), par l'unité serveur (20), d'un résultat R égal au produit de tous les inverses des données indexées et de la sous-fonction de la deuxième variable fy évaluée en la deuxième donnée: R = fy(Y) xi] ri i =1 - utilisation (300) des résultats T et R dans une application cryptographique. 5\n<CLM>\1\tProcédé selon la revendication 1, comprenant en outre une étape (260) au cours de laquelle l'unité-client communique le résultat T à l'unité serveur, et l'unité-serveur calcule le résultat de la fonction en multipliant le résultat T par le résultat R. 10\n<CLM>\1\tProcédé selon la revendication 1, comprenant en outre une étape (260) au cours de laquelle l'unité-serveur communique le résultat R à l'unité client, et l'unité-client calcule le résultat de la fonction en multipliant le résultat T par le résultat R.\n<CLM>\1\tProcédé selon l'une des revendications précédentes, dans lequel l'unité-serveur 15 (20) possède un nombre N de données Y, ,...YN, et la donnée détenue par l'unité- client (10) est exprimée en base q, où q est un nombre entier positif strictement supérieur à 1, les composantes de la données étant à valeurs entre 0 et q-1, et le procédé comprend l'évaluation (200) de la fonction (F) entre la donnée de l'unité client et respectivement chaque donnée de l'unité-serveur, et 20 - lors de l'étape a), l'unité serveur génère aléatoirement un nombre N.n de données inversibles indexées - lors de l'étape b), l'unité-serveur génère : o soit, pour chaque donnée Y, qu'elle possède, et pour chaque i de 1 à n, un q-uplet dont chaque élément est formé par le produit d'une 25 donnée indexée avec un résultat possible de la sous-fonction de deux variables f, évaluée en la première et la deuxième donnée : (ri,j X x fi(q - 1,11j) o soit, pour chaque i de 1 à n, un q-uplet dont chaque élément est la concaténation des résultats du produit d'une donnée indexée avec l'évaluation de la sous-fonction de deux variables f, en un élément 3047327 24 parmi l'ensemble des entiers de 0 à q-1 et chacune des N données de l'unité serveur: (ria x fti (0,\n<CLM>\1\tI I ... I I rti,N x fti (0, YN), x fti (q - 1,111)11 ... I I rl,N x fi (q - 1,YN)) 5 - lors de l'étape c), l'unité client met en oeuvre respectivement : o soit un nombre N.n de transferts inconscients de type 1 parmi q avec les entrées de l'unité serveur codées sur m bits, o soit un nombre n de transferts inconscients de type 1 parmi q avec les entrées de l'unité serveur codées sur N.m bits. 10\n<CLM>\1\tProcédé selon l'une des revendications précédentes, dans lequel les données de l'unité client et de l'unité serveur sont des données représentatives d'objets physiques ou de grandeurs physiques obtenues à partir d'un capteur ou d'une 15 interface.\n<CLM>\1\tProcédé selon l'une des revendications précédentes, dans lequel la fonction (F) est au moins une partie d'un noyau d'une machine à vecteur de support. 20\n<CLM>\1\tProduit programme d'ordinateur, comprenant des instructions de code pour l'exécution, par un processeur d'une unité de traitement, d'un procédé comprenant la mise en oeuvre d'étapes de : - génération aléatoire (210) d'un ensemble de n données inversibles pour la multiplication indexées r, appartenant à l'ensemble Zmavec m premier, 25 - génération (220), pour chaque i de 1 à n, d'un ensemble dont chaque élément est formé par le produit d'une donnée indexée r, avec un résultat possible d'une fonction de deux variables f, évaluée en une donnée inconnue et une donnée connue (Y) - participation à un protocole de transfert inconscient (230) avec une unité de 30 traitement distincte pour communiquer, pour chaque i de 1 à n, un élément parmi les éléments générés.\n<CLM>\1\tProcédé de classification d'une donnée détenue par une unité-client par l'évaluation d'un classificateur H d'une machine à vecteur de support en ladite 3047327 25 donnée mise en oeuvre conjointement entre l'unité client et une unité serveur détenant des paramètres du classificateur H' caractérisé en ce qu'il comprend : - l'évaluation (200) d'au moins une partie du noyau du classificateur en la 5 donnée détenue par l'unité-client mise en oeuvre conformément au procédé selon l'une des revendications qui précèdent, et - l'évaluation (300) du classificateur en la donnée détenue par l'unité-client à partir de l'évaluation, par calcul sécurisé multipartite entre l'unité client et l'unité serveur. 10\n<CLM>\1\tProcédé de classification selon la revendication 8, comprenant une étape préliminaire de quantification (100) de la donnée (X) détenue par l'unité-client (10), et dans lequel l'étape d'évaluation (200) d'au moins une partie du noyau du classificateur est mise en oeuvre sur une quantification entière du noyau du 15 classificateur.\n<CLM>\1\tProcédé de classification selon la revendication 9, dans lequel l'étape d'évaluation (200) du noyau du classificateur est mise en oeuvre sur une quantification entière du noyau du classificateur multiplié par un facteur d'échelle. 20\n<CLM>\1\tProcédé de classification selon l'une des revendications 8 à 10, dans lequel le noyau du classificateur est un noyau à base radiale gaussien h de la forme : h(X, Y) = et la donnée (X) détenue par l'unité-client comprend K composantes flottantes (X1,...XK), et le procédé comprend les étapes de : 25 - génération (100), à partir de la donnée (X) détenue par l'unité-client, d'une donnée (X'=(xi,...x,i+p)) en base q, et dont : o les n premières composantes correspondent à la quantification des K composantes de la donnée (X), et vérifient : Xi 1=1 où n=e-e, X, est une composante de la donnée (X) et x, est une 30 composante de la donnée en base q (X'), 3047327 26 o les n+1è" à n+pè" composantes correspondant à la quantification de la norme quadratique de la donnée (X), IIXIIz, telles que : 11)(11 i=t - évaluation (200) du noyau de classificateur, par le calcul d'une fonction F s'écrivant comme le produit de : 5 o une sous-fonction fx de la donnée X' de l'unité client telle que fx(X)=1 o une sous-fonction fy d'une deuxième donnée Y détenue par l'unité serveur telle que fy(Y) = cre-YllYË o un produit de n sous-fonctions fi indexées de deux variables, telles que : V(i,j) E [1, K] X [1, f(i_1)'1(x(i_1)'), Y) = quant (aeY2l Vi E [1, p], fKe+i(xKe+i, Y) = quant (aeY2i-1xK2+i) 10 où quant est une fonction de quantification entière et a est un facteur d'échelle supérieur ou égal à\n<CLM>\1\t12. Procédé de classification selon l'une des revendications 8 à 10, dans lequel le noyau du classificateur est un noyau tangente hyperbolique h de la forme : h(X, Y) = tanh(c(XIY)+ C) 15 et la donnée détenue par l'unité-client comprend K composantes flottantes (X1,...XK), et le procédé comprend les étapes de : - génération (100), à partir de la donnée (X) détenue par l'unité-client, d'une donnée (X') en base q, dont les composantes correspondent à la quantification des K composantes de la donnée (X), et vérifient : X, IQ' 1 x(i_i)$+1 j=1 20 où n=e-e, X, est une composante de la donnée (X) et x, est une composante de la donnée en base q (X'), - évaluation (200) d'une partie du noyau de classificateur de la forme exp(2(K +C)), par le calcul d'une fonction F s'écrivant comme le produit de : 3047327 27 o une sous-fonction fx de la donnée (X') en base q de l'unité client telle que fx(X')=1 o une sous-fonction fy d'une deuxième donnée (Y) détenue par l'unité serveur telle que fy (Y) = e2C 5 o un produit de n sous-fonctions fi indexées de deux variables, telles que : V(i,j) E [1, [1,,e],f(i_1)'1(x(i_1)'), y) = quant (a. eK2lx(i-1)e-FiYi) où quant est une fonction de quantification entière et a est un facteur d'échelle supérieur ou égal à\n<CLM>\1\t10\n<CLM>\1\tSystème de traitement de données comprenant une première unité de traitement (10) et une deuxième unité de traitement (20), chaque unité de traitement comprenant un processeur (11,\n<CLM>\1\tet une interface de communication 13 ; 23), le système étant caractérisé en ce que la première (10) et la deuxième unité de 15 traitement (20) sont adaptées pour mettre en oeuvre le procédé d'exécution de calcul cryptographique selon l'une des revendications 1 à 6 ou le procédé de classification selon l'une des revendications 8 à 12.