Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHODS FOR IMPLEMENTING ALGORITHMS FOR STATISTICAL ANALYSIS OF DATA CHARACTERISING THE BEHAVIOUR OF A SET OF ELEMENTS AND ASSOCIATED SYSTEM
Document Type and Number:
WIPO Patent Application WO/2019/201957
Kind Code:
A1
Abstract:
The invention relates to a method for implementing algorithms for statistical analysis of data producing as result a model learned on input data, which comprises: - selecting an algorithm; - remotely transmitting to each local platform (21) having a set of input data of the selected algorithm an executable of the selected algorithm; - in each local platform, verifying the stamping of the set of data, executing the executable on the stamped set of data, and supplying to the central platform the local result obtained from said execution; - determining by the central platform (3) an overall result as a function of the local results; - generating by each local platform proof that the local result actually corresponds to the set of data and to the algorithm for overall verification by the central platform as a function of the elements of proof.

Inventors:
LOZINGUEZ YVES (FR)
HENOCQUE LAURENT (FR)
JETCHEV DIMITAR (CH)
GURKAN YAKOV (IL)
Application Number:
PCT/EP2019/059852
Publication Date:
October 24, 2019
Filing Date:
April 16, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
THALES SA (FR)
International Classes:
G06F21/44; G06F21/62
Domestic Patent References:
WO2017187207A12017-11-02
WO2014114861A12014-07-31
Foreign References:
FR3001313A12014-07-25
EP2949070A12015-12-02
US20150365426A12015-12-17
Other References:
WALKER CORAL ET AL: "Personal Data Lake with Data Gravity Pull", 2015 IEEE FIFTH INTERNATIONAL CONFERENCE ON BIG DATA AND CLOUD COMPUTING, IEEE, 26 August 2015 (2015-08-26), pages 160 - 167, XP032802551, DOI: 10.1109/BDCLOUD.2015.62
SAMI ALSOURI ET AL: "Group-Based Attestation: Enhancing Privacy and Management in Remote Attestation", 21 June 2010, TRUST AND TRUSTWORTHY COMPUTING, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 63 - 77, ISBN: 978-3-642-13868-3, XP019145253
ADI SHAMIR: "How to share a secret", COMMUNICATIONS OF THE ACM, vol. 22, no. 11, pages 612 - 613, XP000565227, DOI: doi:10.1145/359168.359176
SHAFI GOLDWASSER; SILVIO MICALI; CHARLES RACKOFF, THE KNOWLEDGE COMPLEXITY OF INTERACTIVE PROOF-SYSTEMS, 1985, pages 291 - 304
Attorney, Agent or Firm:
HABASQUE, Etienne et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1.- Procédé de mise en œuvre, par un système (1 ) d’exploitation sécurisée de données, d’algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments, ledit système (1 ) d’exploitation sécurisée de données comportant une plate-forme centrale (3) et des plates-formes locales (21 ), selon lequel le résultat de chacun desdits algorithmes étant un modèle appris sur des données qui lui sont fournies en entrée, selon lequel lesdites données sont réparties en jeux de données (24) détenus sélectivement dans des mémoires (22) des plates- formes locales distinctes (21 ) comprenant chacune en outre un processeur (23) utilisé pour mettre en œuvre les étapes ci-dessous relevant desdites plates-formes locales, ledit procédé comprenant les étapes suivantes :

- dans les plates-formes locales, estampillage numérique des jeux de données détenus dans les mémoires desdites plates-formes locales, ledit estampillage garantissant au moins la date d’estampillage et l’intégrité desdites données ;

- fourniture par la plate-forme centrale à un dispositif tiers (10) d’une première liste d’algorithmes d’analyse statistique de données, et pour chacun desdits algorithmes, fourniture au dispositif tiers d’une deuxième liste indiquant ceux des jeux de données détenus dans des mémoires de plates-formes utilisables comme données d’entrée dudit algorithme ; et détection par la plate-forme centrale d’une sélection, par le dispositif tiers, d’un algorithme d’analyse statistique de données dans la première liste et d’au moins certains jeux de données de la deuxième liste détenus par des plates-formes distinctes ;

- télétransmission par la plate-forme centrale, à chaque plate-forme locale détenant un jeu de données sélectionné, d’un programme d’ordinateur exécutable respectif de l’algorithme sélectionné et ayant comme données d’entrée le jeu de données sélectionné et détenu par ladite plate-forme locale, ledit programme ayant été élaboré par la plate-forme centrale en fonction dudit algorithme sélectionné ;

- dans chaque plate-forme locale détenant un jeu de données sélectionné, vérification de l’intégrité du jeu de données sélectionné détenu par ladite plate forme locale en fonction de son estampillage, exécution sur le processeur de ladite plate-forme locale du programme d’ordinateur exécutable respectif de l’algorithme sélectionné sur le jeu de données de ladite-plate-forme locale dont l’intégrité a été vérifié, et délivrance à la plate-forme centrale par chaque plate-forme locale du résultat local issu de ladite exécution ; - détermination par la plate-forme centrale d’un résultat global en fonction des résultats locaux délivrés par les plates-formes locales, le résultat global comprenant un modèle appris sur les jeux de données sélectionnés ;

- vérification par chacune desdites plates-formes locales en fonction du jeu de données de ladite plate-forme locale dont l’intégrité a été vérifié, du résultat issu de l’exécution du programme sur la plate-forme locale et de l’algorithme sélectionné, que le résultat local correspond bien audit jeu de données sélectionné et audit algorithme et génération d’un élément de preuve indiquant cette vérification ;

- vérification par la plate-forme centrale en fonction des éléments de preuve déterminés par lesdites plates-formes locales, du résultat global et de l’algorithme sélectionné que ledit résultat global correspond bien auxdits jeux de données sélectionnés dont l’intégrité a été vérifiée et à l’algorithme sélectionné, et délivrance du résultat global par la plate-forme centrale au dispositif tiers seulement après ladite vérification.

2.- Procédé selon la revendication 1 selon lequel l'estampillage d'un jeu de données comporte les étapes suivantes :

- recherche d'un emplacement d'insertion libre dans un jeu de données à estampiller ;

- création d'un jeu de données modifié par insertion d'une zone de données à l'emplacement trouvé dans le jeu de données à estampiller, la zone de données comportant un repère et une zone exclue ;

- calcul d'une empreinte numérique en appliquant une fonction de calcul d'empreinte au jeu de données modifié, l'empreinte ayant une valeur qui dépend de tous les bits du jeu de données modifié autres que les bits de la zone exclue ;

- insertion de l'empreinte au sein de la zone exclue du jeu de données modifié.

3.- Procédé selon la revendication 1 ou 2, selon lequel la vérification de l’intégrité d’un jeu de données en fonction de son estampillage comporte les étapes suivantes :

- recherche d'une zone exclue dans le jeu de données au moyen d'un repère ;

- calcul d'une première empreinte numérique en appliquant une fonction de calcul d'empreinte au jeu de données, la première empreinte ayant une valeur qui dépend de tous les bits du jeu de données autres que les bits de la zone exclue ;

- vérification d'une seconde empreinte présente dans la zone exclue en la comparant à la première empreinte.

4.- Procédé de mise en œuvre d’algorithmes d’analyse statistique de données selon l’une des revendications 1 à 3, selon lequel ledit estampillage effectué sur une plate-forme locale (21 ) garantit en outre l’identité de ladite plate-forme locale.

5.- Procédé de mise en œuvre d’algorithmes d’analyse statistique de données selon l’une des revendications 1 à 4, selon lequel les algorithmes de la première liste sont des algorithmes non triviaux.

6.- Procédé de mise en œuvre d’algorithmes d’analyse statistique de données selon l’une des revendications 1 à 5, selon lequel les éléments comprennent des équipements techniques et les algorithmes de la première liste comprennent des algorithmes parmi des algorithmes d’élaboration de modèles du comportement d’un équipement technique et des algorithmes d’élaboration de modèles d’usure ou de pannes ou de maintenance prédictive d’au moins un équipement technique.

7.- Procédé de mise en œuvre d’algorithmes d’analyse statistique de données selon l’une des revendications 1 à 6, selon lequel les éléments de preuve générés par les plates- formes locales (21 ) sont de type preuves à connaissance nulle.

8.- Procédé de mise en œuvre, par une plate-forme locale (21 ), d’algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments, selon lequel le résultat de chacun desdits algorithmes étant un modèle appris sur des données qui lui sont fournies en entrée, ledit système comportant une plate-forme centrale (3) et des plates-formes locales (21 ), ladite plate-forme locale comprenant une mémoire stockant au moins un jeu de données (24) et comprenant un processeur (23) utilisé pour mettre en œuvre les étapes ci-dessous :

- estampillage numérique d’au moins le jeu de données stocké dans la mémoire de ladite plate-forme locale, ledit estampillage garantissant au moins la date d’estampillage et l’intégrité desdites données ;

- réception d’un programme d’ordinateur exécutable respectif codant un algorithme d’analyse statistique de données ;

- vérification de l’intégrité du jeu de données sélectionné en fonction de son estampillage, exécution sur le processeur du programme d’ordinateur exécutable respectif sur le jeu de données dont l’intégrité a été vérifié, et délivrance à la plate forme centrale du résultat local issu de ladite exécution en vue de la détermination par la plate-forme centrale d’un résultat global en fonction dudit résultat local et d’au moins un autre résultat local délivré par une autre plate-forme locale, chaque résultat local comprenant un modèle appris sur un jeu de données d’une plate forme locale respective et le résultat global comprenant un modèle appris sur lesdits jeux de données ;

- vérification en fonction du jeu de données dont l’intégrité a été vérifié, du résultat issu de l’exécution du programme sur la plate-forme locale et de l’algorithme sélectionné, que le résultat local correspond bien audit jeu de données et audit algorithme, génération d’un élément de preuve indiquant cette vérification et délivrance de l’élément de preuve généré à la plate-forme centrale, en vue de la vérification par la plate-forme centrale en fonction dudit élément de preuve et d’au moins un autre élément de preuve déterminé par l’autre plate-forme locale, du résultat global et de l’algorithme, que ledit résultat global correspond bien auxdits jeux de données utilisés par les plates-formes locales et à l’algorithme.

9.- Système de mise en oeuvre d’algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments, lesdites données étant réparties en jeux de données détenus sélectivement dans des mémoires de plates-formes locales distinctes, ledit système comportant une plate-forme centrale (3) et des plates- formes locales distinctes (21 ) comprenant chacune un processeur (23) et une mémoire (22) stockant au moins un jeu de données (24),

le résultat de chacun desdits algorithmes étant un modèle appris sur des données qui lui sont fournies en entrée,

dans lequel :

chaque plate-forme locale est adaptée pour opérer un estampillage numérique des jeux de données détenus dans la mémoire de ladite plate-forme locale, ledit estampillage garantissant au moins la date d’estampillage et l’intégrité desdites données,

la plate-forme centrale est adaptée pour fournir à un dispositif tiers (10) une première liste d’algorithmes d’analyse statistique de données, et pour fournir au dispositif tiers pour chacun desdits algorithmes, une deuxième liste indiquant ceux des jeux de données détenus dans des mémoires de plates-formes utilisables comme données d’entrée dudit algorithme, pour détecter une sélection, par le dispositif tiers, d’un algorithme d’analyse statistique de données dans la première liste et d’au moins certains jeux de données de la deuxième liste détenus par des plates-formes distinctes ;

la plate-forme centrale étant adaptée en outre pour élaborer pour chaque plate-forme locale, en fonction dudit algorithme sélectionné, un programme d’ordinateur exécutable respectif de l’algorithme ayant comme données d’entrée le jeu de données sélectionné et détenu par ladite plate-forme locale et pour fournir, à chaque plate-forme locale détenant un jeu de données sélectionné, ledit programme d’ordinateur exécutable élaboré pour elle;

chaque plate-forme locale détenant un jeu de données sélectionné étant en outre adaptée poour vérifier l’intégrité du jeu de données sélectionné détenu par ladite plate-forme locale en fonction de son estampillage, pour exécuter sur le processeur de ladite plate-forme locale le programme d’ordinateur exécutable respectif de l’algorithme sélectionné sur le jeu de données de ladite-plate-forme locale dont l’intégrité a été vérifié, et pour délivrer à la plate-forme centrale le résultat local issu de ladite exécution ;

la plate-forme centrale étant adaptée pour déterminer un résultat global en fonction des résultats locaux délivrés par les plates-formes locales, le résultat global comprenant un modèle appris sur les jeux de données sélectionnés ;

chacune desdites plates-formes locales étant adaptée pour vérifier en fonction du jeu de données de ladite plate-forme locale dont l’intégrité a été vérifié, du résultat issu de l’exécution du programme sur la plate-forme locale et de l’algorithme sélectionné, que le résultat local correspond bien audit jeu de données sélectionné et audit algorithme et pour générer un élément de preuve indiquant cette vérification ;

la plate-forme centrale étant adaptée pour vérifier en fonction des éléments de preuve déterminés par lesdites plates-formes locales, du résultat global et de l’algorithme sélectionné que ledit résultat global correspond bien auxdits jeux de données sélectionnés dont l’intégrité a été vérifiée et à l’algorithme sélectionné, et pour délivrer le résultat global au dispositif tiers seulement après ladite vérification.

10.- Système selon la revendication 9, dans lequel les algorithmes de la première liste sont des algorithmes non triviaux.

Description:
Procédés de mise en œuvre d’algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments et système associé

La présente invention concerne le domaine des systèmes d’exploitation sécurisée de données mettant en œuvre des algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments.

De tels systèmes sont utilisés pour extraire de l’information statistique des données expérimentales et notamment pour bâtir des modèles statistiques qui pourront être ultérieurement utilisés, pour notamment anticiper le (dys-)fonctionnement d 'éléments et/ ou leur utilisation.

Dans certains secteurs d’activité, les données caractérisant le fonctionnement d’équipements issues par exemple de capteurs sont stockées de manière sécurisée et confidentielle au sein de plates-formes respectives et ne peuvent pas être partagées entre les plates-formes.

Par exemple, ces données comportent celles caractérisant le fonctionnement d’un équipement donné intégré dans un avion de combat ou dans un avion de ligne, qu’il est donc interdit de partager entre les propriétaires des flottes de ces appareils pour des raisons de classification ou de confidentialité commerciale, ou encore par exemple celles caractérisant le fonctionnements de plusieurs équipements d’un même avion de combat ou avion de ligne, qu’il est donc interdit de partager entre les différents industriels fournisseurs de ces équipements pour des raisons de confidentialité commerciale.

Or utiliser l’ensemble des données caractérisant ce même type d’équipement permettrait de caractériser beaucoup plus finement et précisément le fonctionnement de cet équipement dans la construction des modèles statistiques appris sur un ensemble de données beaucoup plus vaste.

Il existe aujourd’hui un type de solution, connu sous l’appellation « data lake » basée sur une plate-forme centrale dans laquelle différents acteurs déversent leurs données. Ce type de solution, d’une part, repose sur des accords de confidentialité signés entre les différents intervenants, qui peuvent se révéler parfois ardus à négocier et d’autres part, ne donne pas de garantie aux acteurs que leurs données ne seront pas dévoilées aux autres acteurs notamment

A cet effet, suivant un premier aspect, l’invention propose un procédé de mise en œuvre, par un système d’exploitation sécurisée de données, d’algorithmes d’analyse statistique de données caractérisant le fonctionnement d’un ensemble d’élements, ledit système d’exploitation sécurisée de données comportant une plate-forme centrale et des plates-formes locales,

selon lequel le résultat de chacun desdits algorithmes étant un modèle appris sur des données qui lui sont fournies en entrée, selon lequel lesdites données étant réparties en jeux de données détenus sélectivement dans des mémoires de plates-formes locales distinctes comprenant chacune en outre un processeur utilisé pour mettre en oeuvre les étapes ci-dessous relevant desdites plates-formes locales, ledit procédé comprenant les étapes suivantes :

- dans les plates-formes locales, estampillage numérique des jeux de données détenus dans les mémoires desdites plates-formes locales, ledit estampillage garantissant au moins la date d’estampillage et l’intégrité desdites données ;

- fourniture par la plate-forme centrale à un dispositif tiers d’une première liste d’algorithmes d’analyse statistique de données, et pour chacun desdits algorithmes, fourniture au dispositif tiers d’une deuxième liste indiquant ceux des jeux de données détenus dans des mémoires de plates-formes utilisables comme données d’entrée dudit algorithme ; et détection par la plate-forme centrale d’une sélection, par le dispositif tiers, d’un algorithme d’analyse statistique de données dans la première liste et d’au moins certains jeux de données de la deuxième liste détenus par des plates-formes distinctes ;

- télétransmission par la plate-forme centrale, à chaque plate-forme locale détenant un jeu de données sélectionné, d’un programme d’ordinateur exécutable respectif de l’algorithme sélectionné et ayant comme données d’entrée le jeu de données sélectionné et détenu par ladite plate-forme locale, ledit programme ayant été élaboré par la plate-forme centrale en fonction dudit algorithme sélectionné ;

- dans chaque plate-forme locale détenant un jeu de données sélectionné, vérification de l’intégrité du jeu de données sélectionné détenu par ladite plate forme locale en fonction de son estampillage, exécution sur le processeur de ladite plate-forme locale du programme d’ordinateur exécutable respectif de l’algorithme sélectionné sur le jeu de données de ladite-plate-forme locale dont l’intégrité a été vérifié, et délivrance à la plate-forme centrale par chaque plate-forme locale du résultat local issu de ladite exécution ;

- détermination par la plate-forme centrale d’un résultat global en fonction des résultats locaux délivrés par les plates-formes locales, le résultat global comprenant un modèle appris sur les jeux de données sélectionnés ;

- vérification par chacune desdites plates-formes locales en fonction du jeu de données de ladite plate-forme locale dont l’intégrité a été vérifié, du résultat issu de l’exécution du programme sur la plate-forme locale et de l’algorithme sélectionné, que le résultat local correspond bien audit jeu de données sélectionné et audit algorithme et génération d’un élément de preuve indiquant cette vérification ;

- vérification par la plate-forme centrale en fonction des éléments de preuve déterminés par lesdites plates-formes locales, du résultat global et de l’algorithme sélectionné que ledit résultat global correspond bien auxdits jeux de données sélectionnés dont l’intégrité a été vérifiée et à l’algorithme sélectionné, et délivrance du résultat global par la plate-forme centrale au dispositif tiers seulement après ladite vérification.

L’invention permet ainsi d’exécuter des algorithmes d’analyse statistique de données en garantissant que les données détenues par chaque plate-forme restent bien confidentielles et non divulguées au-delà de la plate-forme tout en bénéficiant de l’ensemble des données réparties, et donc de l’information qu’elles comportent. Chacune des plates-formes continue à maîtriser pleinement les conditions de sécurité appliquées à leurs données puisque ces dernières ne sortent pas de la plate-forme.

Dans des modes de réalisation, le procédé suivant l’invention comporte en outre une ou plusieurs des caractéristiques suivantes :

- l'estampillage d'un jeu de données comporte les étapes suivantes :

- recherche d'un emplacement d'insertion libre dans un jeu de données à estampiller ;

- création d'un jeu de données modifié par insertion d'une zone de données à l'emplacement trouvé dans le jeu de données à estampiller, la zone de données comportant un repère et une zone exclue ;

- calcul d'une empreinte numérique en appliquant une fonction de calcul d'empreinte au jeu de données modifié, l'empreinte ayant une valeur qui dépend de tous les bits du jeu de données modifié autres que les bits de la zone exclue ;

- insertion de l'empreinte au sein de la zone exclue du jeu de données modifié ;

- la vérification de l’intégrité d’un jeu de données en fonction de son estampillage comporte les étapes suivantes :

- recherche d'une zone exclue dans le jeu de données au moyen d'un repère ;

- calcul d'une première empreinte numérique en appliquant une fonction de calcul d'empreinte au jeu de données, la première empreinte ayant une valeur qui dépend de tous les bits du jeu de données autres que les bits de la zone exclue ;

- vérification d'une seconde empreinte présente dans la zone exclue en la comparant à la première empreinte ;

- ledit estampillage effectué sur une plate-forme locale garantit en outre l’identité de ladite plate-forme locale ;

- les algorithmes de la première liste sont des algorithmes non triviaux ;

- les éléments comprennent des équipements techniques et les algorithmes de la première liste comprennent des algorithmes parmi des algorithmes d’élaboration de modèles du comportement d’un équipement technique et des algorithmes d’élaboration de modèles d’usure ou de pannes ou de maintenance prédictive d’au moins un équipement technique ;

- les éléments de preuve générés par les plates-formes locales sont de type preuves à connaissance nulle.

Suivant un deuxième aspect, la présente invention propose un procédé de mise en oeuvre, par une plate-forme locale, d’algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments, selon lequel le résultat de chacun desdits algorithmes étant un modèle appris sur des données qui lui sont fournies en entrée, ledit système comportant une plate-forme centrale et des plates-formes locales, ladite plate-forme locale comprenant une mémoire stockant au moins un jeu de données et comprenant un processeur utilisé pour mettre en oeuvre les étapes ci- dessous :

- estampillage numérique d’au moins le jeu de données stocké dans la mémoire de ladite plate-forme locale, ledit estampillage garantissant au moins la date d’estampillage et l’intégrité desdites données ;

- réception d’un programme d’ordinateur exécutable respectif codant un algorithme d’analyse statistique de données ;

- vérification de l’intégrité du jeu de données sélectionné en fonction de son estampillage, exécution sur le processeur du programme d’ordinateur exécutable respectif sur le jeu de données dont l’intégrité a été vérifié, et délivrance à la plate forme centrale du résultat local issu de ladite exécution en vue de la détermination par la plate-forme centrale d’un résultat global en fonction dudit résultat local et d’au moins un autre résultat local délivré par une autre plate-forme locale, chaque résultat local comprenant un modèle appris sur un jeu de données d’une plate forme locale respective et le résultat global comprenant un modèle appris sur lesdits jeux de données ; - vérification en fonction du jeu de données dont l’intégrité a été vérifié, du résultat issu de l’exécution du programme sur la plate-forme locale et de l’algorithme sélectionné, que le résultat local correspond bien audit jeu de données et audit algorithme, génération d’un élément de preuve indiquant cette vérification et délivrance de l’élément de preuve généré à la plate-forme centrale, en vue de la vérification par la plate-forme centrale en fonction dudit élément de preuve et d’au moins un autre élément de preuve déterminé par l’autre plate-forme locale, du résultat global et de l’algorithme, que ledit résultat global correspond bien auxdits jeux de données utilisés par les plates-formes locales et à l’algorithme.

Suivant un troisième aspect, la présente invention propose un système de mise en œuvre d’algorithmes d’analyse statistique de données caractérisant le comportement d’un ensemble d’éléments, lesdites données étant réparties en jeux de données détenus sélectivement dans des mémoires de plates-formes locales distinctes, ledit système comportant une plate-forme centrale et des plates-formes locales distinctes comprenant chacune un processeur et une mémoire stockant au moins un jeu de données,

le résultat de chacun desdits algorithmes étant un modèle appris sur des données qui lui sont fournies en entrée,

dans lequel :

chaque plate-forme locale est adaptée pour opérer un estampillage numérique des jeux de données détenus dans la mémoire de ladite plate-forme locale, ledit estampillage garantissant au moins la date d’estampillage et l’intégrité desdites données,

la plate-forme centrale est adaptée pour fournir à un dispositif tiers une première liste d’algorithmes d’analyse statistique de données, et pour fournir au dispositif tiers pour chacun desdits algorithmes, une deuxième liste indiquant ceux des jeux de données détenus dans des mémoires de plates-formes utilisables comme données d’entrée dudit algorithme, pour détecter une sélection, par le dispositif tiers, d’un algorithme d’analyse statistique de données dans la première liste et d’au moins certains jeux de données de la deuxième liste détenus par des plates-formes distinctes ;

la plate-forme centrale étant adaptée en outre pour élaborer pour chaque plate-forme locale, en fonction dudit algorithme sélectionné, un programme d’ordinateur exécutable respectif de l’algorithme ayant comme données d’entrée le jeu de données sélectionné et détenu par ladite plate-forme locale et pour fournir, à chaque plate-forme locale détenant un jeu de données sélectionné, ledit programme d’ordinateur exécutable élaboré pour elle;

chaque plate-forme locale détenant un jeu de données sélectionné étant en outre adaptée poour vérifier l’intégrité du jeu de données sélectionné détenu par ladite plate-forme locale en fonction de son estampillage, pour exécuter sur le processeur de ladite plate-forme locale le programme d’ordinateur exécutable respectif de l’algorithme sélectionné sur le jeu de données de ladite-plate-forme locale dont l’intégrité a été vérifié, et pour délivrer à la plate-forme centrale le résultat local issu de ladite exécution ;

la plate-forme centrale étant adaptée pour déterminer un résultat global en fonction des résultats locaux délivrés par les plates-formes locales, le résultat global comprenant un modèle appris sur les jeux de données sélectionnés ;

chacune desdites plates-formes locales étant adaptée pour vérifier en fonction du jeu de données de ladite plate-forme locale dont l’intégrité a été vérifié, du résultat issu de l’exécution du programme sur la plate-forme locale et de l’algorithme sélectionné, que le résultat local correspond bien audit jeu de données sélectionné et audit algorithme et pour générer un élément de preuve indiquant cette vérification ;

la plate-forme centrale étant adaptée pour vérifier en fonction des éléments de preuve déterminés par lesdites plates-formes locales, du résultat global et de l’algorithme sélectionné que ledit résultat global correspond bien auxdits jeux de données sélectionnés dont l’intégrité a été vérifiée et à l’algorithme sélectionné, et pour délivrer le résultat global au dispositif tiers seulement après ladite vérification.

Suivant un autre aspect, la présente invention propose une plate-forme de stockage de données confidentielles, comprenant :

- des moyens pour stocker des données ;

- des moyens pour estampiller des données avant stockage ;

- des moyens pour recevoir un programme exécutable d’un algorithme d’analyse statistique de données garanti non trivial et l’indication de données stockées dans la plate-forme ;

des moyens pour vérifier l’intégrité des données stockées en fonction de leur estampillage avant qu’elles ne soient fournies en entrée du programme, des moyens pour exécuter le programme reçu sur les données ainsi garanties intègres, et pour obtenir comme résultat un modèle appris sur les données de la plate-forme locale ;

- des moyens pour élaborer une preuve à connaissance nulle (ZKP) à partir du résultat, des données estampillées stockées fournies en entrée du programme et de l’algorithme, garantissant que ce résultat est bien issu de l’algorithme sur les données indiquées et intègres ;

- des moyens pour transmettre la preuve à connaissance nulle et le résultat à une plate-forme globale, chargée de combiner ce résultat avec au moins un autre résultat d’une autre plate-forme de stockage de données confidentielles similaire à ladite plate-forme de stockage de données confidentielles, les données stockées dans ladite plate-forme n’étant ainsi nullement communiquées en-dehors de la plate-forme, mais la garantie étant fournie que les données utilisées pour l’algorithme étaient celles de la plate-forme et non corrompues et que le résultat obtenu correspond bien à l’algorithme non-trivial fourni et à ces données.

Ces caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple, et faite en référence aux dessins annexés, sur lesquels :

- la figure 1 représente une vue schématique d’un système de mise en oeuvre d’algorithmes d’analyse statistique de données dans un mode de réalisation de l’invention ;

- la figure 2 est un organigramme d’étapes d’un procédé de mise en oeuvre d’algorithmes d’analyse statistique de données dans un mode de réalisation de l’invention.

La solution selon l’invention relève de l’intelligence artificielle et de l’apprentissage machine (de l’anglais « machine learning »).

Plus spécifiquement, l’invention offre un système d’intelligence artificielle permettant d’extraire de la connaissance statistique d’un ensemble de données réparties entre différentes plates-formes, tout en garantissant la confidentialité de ces données puisque les données d’une plate-forme ne sont nullement divulguées au-delà de la plate forme.

Un « cercle de confiance » est garanti à plusieurs parties prenantes (les plates- formes sources détenant les données, la partie recevant le résultat de l’algorithme qui, d’ailleurs, peut être une des plates-formes sources) permettant de réaliser des traitements algorithmiques nécessitant l’analyse de données sur un ensemble réunissant les données des différentes parties sans révéler les données elles-mêmes. L’apprentissage d’un modèle statistique (ou l’exécution ultérieure d’un tel modèle entraîné) est rendu plus efficace ou plus pertinent par l’accès à un jeu de données plus large sans nécessiter de centraliser les données à un seul endroit et de divulguer les données aux autres parties.

Les données peuvent être utilisées « verticalement » comme dans l’exemple spécifique décrit ci-dessous. Dans ce cas, chaque partie fournit un ensemble d’échantillons correspondant au même type de données (cas typique : mesures des mêmes caractéristiques (température, pression, vitesse, accélération, pannes ....) par les mêmes équipements ou par des équipements similaires détenus par des parties différentes. L’analyse par traitement algorithmique est donc faite sur la réunion de tous les échantillons de toutes les parties.

Les données peuvent aussi être utilisées « horizontalement ». Dans ce cas chaque partie fournit certains attributs seulement d’un même ensemble d’échantillons. L’analyse par traitement algorithmique est faite sur un type de données correspondant à la réunion des attributs de toutes les parties. Par exemple, dans le cas où un échantillon est destiné à caractériser le comportement des équipements d’un avion de combat pour en extraire un modèle de prédiction de disponibilité, certains attributs seront extraits de la surveillance d’un équipement de type senseur, d’autres attributs d’un équipement de type nacelle de désignation, encore d’autres attributs d’un équipement de type optronique secteur frontal.

Les parties peuvent faire confiance à la solution globale et se faire confiance mutuellement parce que le traitement des données et les données elles-mêmes sont sécurisés. Ainsi, dans des modes de réalisation :

- les données source ne sont pas déplacées de leur emplacement d’origine et restent donc protégées comme prévus par les parties ;

l’intégrité des données entre le moment où elles sont produites et le moment où elles sont consommées pour les calculs est garantie ;

- il est vérifié que l’algorithme appliqué aux données est non-trivial ; c’est-à-dire que la connaissance du résultat du calcul ne permet pas de retrouver les données d’entrée (pas d’ingénierie inverse) ;

- dans un mode de réalisation, toutes les communications entre les parties y compris le demandeur sont chiffrées de telle manière que quelqu’un qui aurait enregistré tous les échanges liés à la transmission des logiciels codant l’algorithme ou de leurs résultats serait dans l’incapacité de retrouver les données d’entrée ;

- la solution garantit que le bon algorithme a été exécuté sur des données non corrompues en fournissant une preuve sans communication d’information (« Zéro Knowledge Proof » = ZKP) au demandeur ;

- il est détecté immédiatement qu’un jeu de données corrompu est utilisé ou qu’un algorithme corrompu a été exécuté.

La figure 1 représente schématiquement un système 1 de mise en oeuvre d’algorithmes d’analyse statistique de données dans un mode de réalisation de l’invention. Dans le mode de réalisation considéré ici, le système 1 comprend différentes parties, notamment des plates-formes sources 21 , un dispositif électronique tiers 10 et une plate-forme intermédiaire 3.

Dans le mode de réalisation concerné, le dispositif tiers 10 comprend un ordinateur avec unité centrale et écran et est adapté notamment pour interagir avec un utilisateur.

Les plates-formes sources 21 sont distinctes et, dans un mode de réalisation, réparties en des positions géographiques diverses.

Dans un mode de réalisation, elles sont en outre toutes distinctes de la plate-forme intermédiaire 3.

Le système 1 comprend en outre un réseau de télécommunications 7, par exemple Internet, permettant la mise en oeuvre de télécommunications au moins entre la plate-forme intermédiaire 3 et le dispositif tiers 10, et entre la plate-forme intermédiaire 3 et chacune des plates-formes sources 21.

La plate-forme intermédiaire 3 comprend un bloc électronique d’interface 4, un bloc électronique principal de traitement algorithmique 5 et un bloc électronique superviseur de validation 6.

Dans le mode de réalisation considéré, le bloc électronique d’interface 4, le bloc électronique principal de traitement algorithmique 5 et le bloc électronique superviseur de validation 6 comprennent chacun une mémoire et un processeur. Ils sont, suivant les modes de réalisation, géographiquement regroupés ou distribués.

Chacune des plates-formes sources 21 comprend une mémoire 22 et un processeur 23.

Chaque mémoire 22 stocke des jeux de données 24.

Chaque plate-forme source 21 comprend en outre un module électronique d’estampillage 25, un module électronique local de traitement algorithmique 26 et un module électronique local de validation 27.

Sur la figure 1 , trois plates-formes sources 21 ont été représentées, libellées FA, FB, FC comportant respectivement les mémoires MEM A, MEM B et MEM C et les processeurs respectifs Proc A, Proc B, Proc C. Le nombre de plates-formes sources est ici de trois, mais il peut prendre une valeur quelconque supérieure ou égale à 2.

Au sein de chaque plate-forme source 21 , le module d’estampillage 25 est adapté pour estampiller les jeux de données 24 stockés dans la mémoire 22, et pour tester en outre si des données précédemment estampillées par le module 24 sont intègres (i.e. n’ont pas été modifiées depuis leur estampillage). Le module d’estampillage 25permet ainsi de garantir l’intégrité des jeux de données estampillés quand ils sont manipulés par la suite ou de détecter une modification malveillante desdites données.

Dans un mode de réalisation, l’estampillage d’un jeu de données réalisé par le module d’estampillage 25 comprend le calcul d’une empreinte numérique (signature) en fonction notamment des données et par exemple de la date d’estampillage. Dans un mode de réalisation, l’estampillage est en outre fonction d’une identification de la plate forme source comprend le module d’estampillage 25. Outre l’intégrité des données, celle de l’identité de la plate-forme source d’appartenance des données ou celle de la date d’estampillage sont ainsi garanties dans des modes de réalisation.

Dans un mode de réalisation, l’estampillage comprend l’insertion d’une telle signature à l’intérieur des données. Par exemple, l’estampillage et le test d’estampillage sont réalisés conformément à la solution mise en oeuvre par KeeeX® (https://keeex.me/fr/solutions/) dont les principes sont exposés ci-dessous et détaillés dans les demandes de brevet FR3001313, WO20141 14861 , EP2949070,

US20150365426.

Les principes de l’estampillage KeeeX et du test d’estampillage sont décrits à cet endroit https://keeex.me/fr/produits/keeex-core/.

Dans un mode de réalisation notamment, l’estampillage est réalisé de la manière indiquée ci-dessous :

- recherche d'un emplacement d'insertion libre dans un jeu de données à estampiller ;

- création d'un jeu de données modifié par insertion d'une zone de données à l'emplacement trouvé dans le jeu de données à estampiller, la zone de données comportant un repère et une zone exclue ;

- calcul d'une empreinte numérique en appliquant une fonction de calcul d'empreinte au jeu de données modifié, l'empreinte ayant une valeur qui dépend de tous les bits du jeu de données modifié autres que les bits de la zone exclue ;

- insertion de l'empreinte au sein de la zone exclue du jeu de données modifié.

Et la vérification de l’intégrité d’un jeu de données en fonction de son estampillage est réalisée ainsi :

- recherche d'une zone exclue dans le jeu de données au moyen d'un repère ;

- calcul d'une première empreinte numérique en appliquant une fonction de calcul d'empreinte au jeu de données, la première empreinte ayant une valeur qui dépend de tous les bits du jeu de données autres que les bits de la zone exclue ;

- vérification d'une seconde empreinte présente dans la zone exclue en la comparant à la première empreinte. Le module local de traitement algorithmique 26 au sein d’une plate-forme source 21 est adapté pour recevoir, en provenance du bloc principal de traitement algorithmique 5, un message comprenant un programme binaire exécutable codant un algorithme d’analyse statistique de données, et l’identification d’un jeu de données sélectionné stocké sur la plate-forme source 21 . Le module local de traitement algorithmique 26 est adapté pour stocker ce programme dans la mémoire 22, pour lancer l’exécution dudit programme sur le processeur 23 de la plate-forme source 21 , avec comme données d’entrée le jeu de données indiqué stocké dans la mémoire 22.

Dans un mode de réalisation, le module local de traitement algorithmique 26 est adapté pour recevoir, en provenance du bloc principal de traitement algorithmique 5, en outre une clé secrète locale (qui est une fraction d’une clé secrète globale), associée au programme binaire.

Dans un mode de réalisation optionnel, il est en outre adapté pour, au cours de l’exécution de ce programme, échanger avec les autres plates-formes sources 21 , des informations chiffrées garantissant de manière cryptographique que les données d’entrées ne sont pas révélées. Ces informations sont chiffrées en fonction de la clé locale. En cours de calcul les programmes binaires échangent via le réseau de télécommunications 7, des secrets partagés au sens du partage de secret de Adi Shamir (voir "How to share a secret", Communications of the ACM, 22 (1 1 ): 612-613).

Le module local de traitement algorithmique 26 est adapté pour transmettre, à l’issue de l’exécution du programme, le résultat de cette exécution (dit résultat local), au bloc principal de traitement algorithmique 5. Dans un mode de réalisation, ce résultat a été préalablement chiffré par le module local de traitement algorithmique 26 à l’aide de la clé secrète locale associé au programme et précédemment reçue.

Le module électronique local de validation 27 est en outre adapté pour calculer un élément de preuve en fonction du jeu de données estampillé par le module d’estampillage 25 utilisé pour l’exécution du programme binaire, du résultat local obtenu sur la plate forme source et du type d’algorithme correspondant au programme binaire.

Un tel élément de preuve d’un jeu de données est par exemple un élément ZKP (de l’anglais Zéro Knowledge P roof), connu en français sous l’appellation « preuve à connaissance nulle « ou encore preuve interactive sans révélation qui donne en quelque sorte une indication de l’exécution du bon programme binaire sur le jeu de données sélectionné et garanti intègre sans révéler les données d’entrées qui ont servi au calcul.

Le principe du Zero-Knowledge Proof, inventé il y a plusieurs années, permet à un « bloc vérificateur » de valider un calcul sur des données privées en permettant à un « bloc prouveur » de générer une preuve cryptographique qui atteste de l’exactitude du résultat calculé (cf. par exemple la publication The knowledge complexity of interactive proof-systems, Shafi Goldwasser, Silvio Micali, and Charles Rackoff ; 1985 ; pp. 291 -304 ; STOC '85 Proceedings of the seventeenth annual ACM symposium on Theory of computing). Ici le bloc vérificateur correspond au module électronique local de validation 27 et le « bloc prouveur » correspond au bloc superviseur de validation 6.

Dans un mode de réalisation, l’élément de preuve est obtenu par exemple conformément à la solution QED-it ®. Le principe de la solution QED-it est, entre autre, publié sur http://qed-it.com/2017/07/the-hunting-of-the-snark/.

Le module électronique local de validation 27 est adapté pour transmettre au bloc superviseur de validation 6 chaque élément de preuve ZKP avec l’identification du jeu de données correspondant et de la plate-forme source 21 où il est stocké et l’identification du programme binaire.

Le bloc électronique d’interface 4 est adapté pour transmettre à un dispositif tiers, en réponse à une requête de ce dernier, une liste d’algorithmes d’analyse statistique de données dont la mise en œuvre est offerte par le système 1. A chaque algorithme de cette liste est associée une liste de jeux de données sélectionnâmes comme jeux de données d’entrée de l’algorithme.

Cette liste d’algorithmes d’analyse statistique de données comprend par exemple des algorithmes de type :

- calcul de régression linéaire pour déterminer la fonction linéaire liant plusieurs variables ; les variables correspondent à certains des types de données mémorisées dans les plates-formes sources, par exemple les paramètres de température de certains équipements ou leurs occurrences de pannes, leur empoussièrement, la pression, accélération etc. ; les jeux de données d’entrée comprennent donc les échantillons disponibles de valeurs de ces paramètres pour un même type d’équipement installé dans différents systèmes, ou au contraire, les échantillons disponibles de différents types d’équipement intégrés dans le même système; par exemple il peut s’agir de la température de fonctionnement en fonction du temps d’une carte électronique, chaque jeu de données d’entrée étant mesuré pour des exemplaires différents de ce type de carte ou il peut s’agir de la température et de l’empoussièrement de la même carte électronique, un jeu de données stockant le température et l’autre l’empoussièrement.

- plus globalement, algorithmes d’élaboration de fonctions (dits encore modèles) relatives à l’usure d’un équipement technique ou à un ensemble d’équipements techniques par apprentissage en fonction de certains paramètres ; les jeux de données d’entrée sont donc les échantillons disponibles de valeurs pour ces paramètres pour construire le modèle ; ces modèles sont adaptés par exemple pour :

i. prédire l’occurrence de pannes (et/ou donc de la nécessité d’opérations de maintenance préventive) d’équipements ou d’un ensemble d’équipements en fonction de certains paramètres, ou encore

ii. choisir au mieux les missions qu’un système peut remplir en fonction de l’usure de ses différents composants, ce qui permet d’améliorer la disponibilité du système ;

- plus généralement, tout algorithme d’apprentissage supervisé comme la régression logistique pour faire de la classification, les k-moyennes pour faire du partitionnement, les arbres de décision, les forêts aléatoires et les arbres de gradients boostés pour faire de la régression ou de la classification. Le résultat global de l’algorithme, tel que décrit plus loin, est un modèle appris sur l’ensemble des jeux de données qui est plus précis, au sens où on minimise le risque de surinterprétation, que le modèle issu du même algorithme sur un seul jeu de données.

Les algorithmes de la liste doivent être, dans des modes de réalisation, des algorithmes non triviaux, c’est-à-dire qu’il ne doit pas être possible, à partir du résultat issu de l’exécution d’un tel algorithme, de pouvoir en déduire la valeur des données d’entrée sur lesquelles l’algorithme a été exécuté. Autrement dit, la fonction utilisée dans l’algorithme n’admet pas de fonction réciproque. Un algorithme trivial est, par exemple, la fonction identité ou la fonction moyenne sur un jeu de données ne contenant qu’un seul échantillon.

Le bloc principal de traitement algorithmique 5 est adapté pour recevoir l’identification d’un algorithme sélectionné dans la liste précitée d’algorithmes d’analyse statistique de données, et l’identification de ceux des jeux de données sélectionnés pour servir de données d’entrées à l’algorithme, et il est en outre adapté pour construire, en fonction de l’algorithme sélectionné, un programme binaire exécutable codant l’algorithme sélectionné et adapté à chaque plate-forme source 21 , et pour transmettre, via le réseau de télécommunications 7, à chacune des plates-formes sources 21 stockant au moins un des jeux de données sélectionnés, le programme binaire exécutable construit et l’identification du jeu de données sélectionné stocké sur cette plate-forme source.

Dans un mode de réalisation, le bloc principal de traitement algorithmique 5 est en outre adapté pour générer une clé globale secrète qui est fractionnée et dont il est le seul à connaître la totalité. Seule une fraction respective dédiée de la clé secrète globale est distribuée par le bloc principal de traitement algorithmique 5 à chacune des plates-formes dans le programme binaire exécutable : cette fraction fournit une clé locale à la plate forme locale à laquelle elle est transmise lui permettant de chiffrer les communications à travers le réseau de télécommunication 7 avec les autres programmes binaires s’exécutant sur les autres plates-formes sources 21 et avec le bloc principal de traitement algorithmique 5.

Dans un mode de réalisation, le programme binaire est le même pour les différentes plates-formes sources (excepté la clé locale)

Suivant les modes de réalisation, le programme binaire exécutable est en outre adapté sélectivement au jeu de données sélectionné pour la plate-forme source, quand par exemple les données d’entrée d’une plate-forme source ne correspondent pas au même type que celles d’une autre plate-forme source (par exemple, dans le cas de l’élaboration d’un modèle global de détermination de l’état d’un bloc d’équipements utilisant les données par exemple de température et d’empoussièrement d’un équipement E1 présentes sur une première plate-forme source et utilisant les données par exemple de température et d’accélération d’un équipement E2 d’un type différent de E1 et présentes sur une deuxième plate-forme source.

Le bloc principal de traitement algorithmique 5 est en outre adapté pour recevoir, en provenance de chacune desdites plates-formes sources 21 , leur résultat local, i.e. le résultat de l’exécution du programme binaire exécutable codant l’algorithme sélectionné sur le jeu de données sélectionné stocké dans cette plate-forme source 21.

Dans un mode de réalisation où le résultat arrive sous forme chiffrée, il est adapté pour déchiffrer chacun des résultats locaux chiffrés avec la clé locale propre à la plate forme source dont il provient.

Et le bloc principal de traitement algorithmique 5 est adapté pour combiner ces résultats locaux issus des plates-formes 21 et déterminer, en fonction de ces résultats combinés, le résultat global de l’exécution de l’algorithme sélectionné sur l’ensemble des jeux de données sélectionnés tels que répartis dans les différentes plates-formes sources 21. Il est le seul à pouvoir déchiffrer et combiner les différents résultats locaux grâce à la clé secrète complète qu’il est le seul à détenir.

Par exemple variances, covariances, moyennes des différents jeux de données des plates-formes 21 permettent d’obtenir les coefficients de la droite de régression de l’ensemble des données. Le résultat global est identique à celui qui serait obtenu en exécutant l’algorithme sélectionné sur une mémoire (non représentée en figure 1 ) qui contiendrait la totalité des jeux de données sélectionnés des plates-formes sources 21.

Dans un mode de réalisation, ce calcul est effectué conformément à la solution Inpher ® basé sur le moteur XOR Secret Computing™ dont une description se trouve sur htps://www.inpher.io/mainproducts/ et https://www.youtube.com/watch ?v=mBn3QR- qflM&index=3&list=PLbPfgHjsf6Cqgg901zALf7Kh3V-WmGZEU .

Le bloc superviseur de validation 6 est adapté pour recevoir en provenance des plates-formes sources 21 des éléments de preuves, ici des éléments ZKP avec l’identification du jeu de données correspondant d’une plate-forme source 21 où il est stocké et l’identification du programme binaire. Il est adapté pour, au moment de la fourniture par la plate-forme intermédiaire 3 au dispositif tiers 10, du résultat global déterminé pour un algorithme sélectionné et de jeux de données sélectionnés, valider en fonction des éléments de preuve déterminés pour les jeux de données sélectionnés et reçus des plates-formes source 21 , du résultat global et de l’algorithme sélectionné, que ledit résultat global correspond bien auxdits jeux de données sélectionnés et à l’algorithme sélectionné, et pour, seulement si la validation confirme la correspondance, délivrer une indication de validation associée au résultat global déterminé.

Dans un mode de réalisation, cette validation est effectuée conformément à la solution QED-it ®.

Le système 1 est adapté pour mettre en oeuvre les étapes d’un procédé 100 tel que décrit à présent en référence à la figure 2.

Le mode de réalisation considéré dans cet exemple est le suivant : chaque plate forme source 21 stocke dans sa mémoire 22 les jeux de données 24 relatifs aux équipements de différentes sources, par exemple de différentes flottes d’avions, et estampillés par le module d’estampillage 25. Les plates-formes FA, FB, FC correspondent, par exemple, respectivement à des flottes d’avions d’un même modèle rassemblant les mêmes types d’équipements.

Le système 1 dans un tel mode de réalisation particulier permet de réaliser des calculs statistiques distribués sur des jeux de données multiples comportant des données confidentielles que les fournisseurs des données ne veulent pas divulguer aux autres fournisseurs ni à l’initiateur du calcul en garantissant la sécurité et la fiabilité des données sources, de l’algorithme utilisé et du résultat global fourni.

Dans une étape 101 , un utilisateur transmet depuis un dispositif tiers 10 une requête à la plate-forme intermédiaire 3, par exemple par l’intermédiaire du réseau de télécommunications 7. En réponse à cette requête, le bloc d’interface 4 de la plate-forme intermédiaire 3, transmet, par exemple par l’intermédiaire du réseau de télécommunications 7, une réponse comportant une liste d’algorithmes d’analyse statistique de données dont la mise en œuvre est offerte par le système 1. Le bloc d’interface 4 transmet également une liste indiquant pour chaque algorithme des jeux de données respectifs sélectionnables comme jeux de données d’entrée de l’algorithme.

L’utilisateur sélectionne un algorithme parmi la liste et il sélectionne tous ou certains des jeux de données parmi les jeux de données sélectionnables associés à cet algorithme.

Par exemple, l’algorithme sélectionné est un algorithme permettant de déterminer un modèle de prédiction de l’occurrence de pannes d’un équipement de l’avion du type considéré en fonction des paramètres suivants : âge de l’avion, âge de l’équipement, durée de vol, température subie, accélération subie. Certaines de ces données sont confidentielles et ne doivent pas être divulguées hors de chacune des plates-formes sources 21 des flottes FA, FB, FC.

Les jeux de données proposés comprennent par exemple des échantillons quintuplets de la forme (âge de l’avion, âge de l’équipement, durée de vol, température subie, accélération subie, t) où t indique le temps correspondant aux valeurs fournies dans l’échantillon.

La liste de jeux de données sélectionnables proposée pour l’algorithme comprend par exemple les 6 jeux de données suivants : les échantillons quintuplets pour la flotte FA, FB, FC sur une période de un an, les échantillons quintuplets pour la flotte FA, FB, FC sur une période de trois ans. Ces jeux de données stockés dans la mémoire de chaque plate forme source 21 ont précédemment fait l’objet d’un estampillage par le module d’estampillage 25 de la plate-forme source.

Les jeux de données sélectionnés sont par exemple les échantillons quintuplets sur une période de trois ans pour la flotte FA, respectivement FB et sont nommés ci-après JDA, respectivement J DB.

L’identification de l’algorithme et l’identification des jeux de données sélectionnés sont transmis à la plate-forme intermédiaire 3 par le dispositif tiers 10 par exemple via le réseau de télécommunications 7.

Dans une étape 102, le bloc principal de traitement algorithmique 5 reçoit l’identification de l’algorithme et l’identification des jeux de données sélectionnés. Il construit un programme binaire exécutable ProgA codant l’algorithme sélectionné et adapté à la plate-forme source FA; similairement il construit un programme binaire exécutable ProgB codant l’algorithme sélectionné et adapté à la plate-forme source FB. Le bloc principal de traitement algorithmique 5 transmet ensuite, via le réseau de télécommunications 7, à la plate-forme source PFA le programme binaire ProgA et l’identification du jeu de données JDA ; il transmet similairement à la plate-forme source PFB le programme binaire ProgB et l’identification du jeu de données JDB.

Dans une étape 103, la plate-forme source PFA, respectivement PFB, reçoit le programme binaire ProgA, respectivement ProgB et l’identification des jeux de données JDA, respectivement JDB. Dans chacune des plates-formes PFA, resp. PFB, le module d’estampillage 25 teste alors que le jeu de données JDA, resp. JDB, ainsi indiqué et mémorisé dans la mémoire MEM A, resp. MEM B, est bien intègre, égal à celui précédemment estampillé, puis le module local de traitement algorithmique 26 au sein de la plate-forme PFA, resp. PFB, stocke le programme Prog A, resp. Prog B, dans la mémoire 22, lance l’exécution de Prog A, resp. Prog B sur le processeur 23 de la plate forme PFA, resp. PFB, avec comme données d’entrée le jeu de données JDA, resp. JDB, dont l’intégrité a été testée. Les programmes binaires ProgA et ProgB des plates-formes PFA, PFB s’échangent entre eux dans un mode de réalisation des informations. Ces informations sont chiffrées à partir de la partie de la clé secrète en leur possession le cas échéant.

Le module local de traitement algorithmique 26 de la plate-forme PFA, resp. PFB, transmet, à l’issue de l’exécution du programme ProgA, resp. ProgB, le résultat local issu de cette exécution, au bloc principal de traitement algorithmique 5 par le réseau 7. Dans un mode de réalisation, ce résultat local est préalablement chiffré à partir de la clé secrète locale propre à la plate-forme source dont il est issu.

Dans une étape 104, le bloc principal de traitement algorithmique 5 reçoit ainsi les résultats locaux, qui sont des résultats intermédiaires et partiels, des plates-formes sources PFA et PFB, en association avec l’identification du programme et des jeux de données sélectionnés à l’origine de ces résultats, puis il calcule un résultat global de l’algorithme sélectionné en combinant ces résultats intermédiaires.

Dans une étape 105, le module électronique local de validation 27 de la plate forme source PFA, resp. PFB, calcule les éléments de preuve ZKPA, resp. ZKPB, en fonction du jeu de données JDA, resp. JDB, et du résultat local fourni par le module local de traitement algorithmique 26 de la plate-forme source PFA, resp. PFB et du type d’algorithme sélectionné. Puis, le module électronique local de validation 27 de la plate forme source PFA, resp. PFB, transmet les éléments de preuve ZKPA, resp. ZKPB, via le réseau 7, au bloc superviseur de validation 6 accompagné de l’identification du jeu de données JDA, resp. JDB, et du programme sélectionné. Le bloc superviseur de validation 6 reçoit ces éléments de preuve ZKPA, resp. ZKPB, et vérifie, à partir de ces éléments de preuve, du résultat global calculé par le bloc principal de traitement algorithmique 5 et de l’algorithme sélectionné que ledit résultat global correspond bien auxdits jeux de données JDA, JDB et à l’algorithme sélectionné. Dans le cas positif, il délivre une indication de validation associée au résultat global déterminé.

Dans une étape 106, le résultat global (dans le cas présent, un modèle de prédiction de l’occurrence de pannes d’un équipement de l’avion du type considéré en fonction des variables suivantes : âge de l’avion, âge de l’équipement, durée de vol, température subie, accélération subie) et l’indication de validation associée au résultat global déterminé sont délivrés par la plate-forme intermédiaire 3 au dispositif tiers 10.

On notera que dans un mode de réalisation, dès que :

l’opération de vérification de l’étape 106 conclut que ledit résultat global ne correspond pas aux jeux de données JDA, resp. JDB, ou à l’algorithme sélectionné ; ou

- un test d’intégrité conclut à la non-intégrité d’un jeu de données à l’étape 103 ou 105 ;

alors le processus est stoppé et un message d’alerte est généré à destination du superviseur du système 1 .

Suivant les modes de réalisation, le bloc d’interface 4, le bloc principal de traitement algorithmique 5, le bloc électronique superviseur de validation 6, le module électronique d’estampillage 25, le module local de traitement algorithmique 26 et/ou le module local de validation 27 sont des éléments logiciels correspondant à des instructions logicielles stockées dans des mémoires qui sont exécutés sur des processeurs ou sont réalisés sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable Gâte Arraÿ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais Applications Spécifie Integrated Circuit).

L’intégrité des jeux de données peut en outre être garantie grâce à un ancrage dans une chaîne de blocs ce qui permet à un audit de n’importe laquelle des parties, et donc une garantie de la sécurisation des données utilisées.

La fiabilité d’un élément de preuve ZKP peut être garantie également grâce à un ancrage dans une chaîne de blocs ce qui permet à un audit de n’importe laquelle des parties et là encore un contrôle des données et algorithmes utilisés.

Comme il est connu, une chaîne de blocs (de anglais blockchain) est une base de données distribuée transparente, sécurisée, et fonctionnant sans organe central de contrôle. Différents résultats d’opérations mises en oeuvre par microprocesseur sont regroupés et enregistrés dans des blocs. Toutes les opérations d’un nouveau bloc sont validées par des entités nommées « mineurs », qui analysent l'historique complet de la chaîne de blocs. Si le bloc est valide, il est horodaté et ajouté à la chaîne de blocs. Les opérations contenues sont alors visibles dans l'ensemble du réseau. Une fois ajouté à la chaîne, un bloc ne peut plus être ni modifié, ni supprimé, ce qui garantit l'authenticité et la sécurité du réseau. Chaque bloc de la chaîne est constitué des éléments suivants : résultats d’opérations, empreinte numérique (par hashage) (« hash »), utilisée comme identifiant, l’empreinte numérique (par hashage) du bloc précédent et mesure de la quantité de travail qui a été nécessaire pour produire le bloc.

Un exemple concret de mise en oeuvre a été décrit ci-dessus en référence au domaine technique de la supervision d’équipements techniques pour déterminer des fonctions relatives à la surveillance des équipements, à prédiction de pannes ou à la maintenance préventive. Les équipements techniques mentionnés dans l’exemple appartenaient au domaine aéronautique, mais bien évidemment les équipements techniques peuvent appartenir à toutes sortes de domaines techniques tels que des flottes de bateaux, de camions etc. Dans un mode de réalisation, les données relatives à des équipements sont fournies par des bancs de tests.

L’invention peut être mise en oeuvre dans tout type d’industrie, avec mutualisation de la connaissance engrangée dans les données tant sur le plan vertical que sur le plan horizontal.

Les applications en outre peuvent être très différentes.

Les algorithmes d’analyse statistique de données utilisées permettent de modéliser le comportement (ou des fonctions prédites en fonction du comportement) d’un ensemble d’éléments, ces éléments pouvant correspondre à des équipements techniques, des groupes d’individus, d’animaux, de plantes, de bactéries, pandémies, de phénomènes météorologiques, de cours boursiers ...

Quelques exemples, non exhaustifs, sont indiqués ci-après.

Un système ou procédé de mise en oeuvre d’algorithmes d’analyse statistique de données caractérisant le fonctionnement d’un ensemble d’équipements selon l’invention peut être utilisé par exemple dans le domaine du profilage pour permettre de planifier d’autres actions que celle de maintenance des équipements, par exemple des actions d’approvisionnement, de dimensionnement des ressources nécessaires (de calcul ou d’énergie ou de volume). Par exemple dans les systèmes IFE (de l’anglais In Flight Entertainment), un système selon l’invention permet de bâtir des fonctions permettant de prédire les besoins des passagers en termes d’utilisation des équipements de visionnage de films, d’écoute des bibliothèques audio, de consommation des consommables alimentaires etc., à partir de l’exploitation de jeux de données représentant le comportement des passagers, en traçant notamment l’utilisation passée de ces équipements et des d’autres paramètres (de consommation globale des ressources d’énergie/volume/calcul à bord ...) par exemple sur plusieurs compagnies de vol.

Un système ou procédé de mise en œuvre d’algorithmes d’analyse statistique de données caractérisant le fonctionnement d’un ensemble d’équipements selon l’invention peut être utilisé par exemple dans le domaine de l’aide à la décision, afin de mutualiser et exploiter les expériences passées. Par exemple, l’ATM (de l’anglais Air Traffic Management) a pour mission de veiller à ce que les avions soient suffisamment éloignés entre eux pour préserver la sécurité et la fluidité du trafic. Les jeux de données ATM, ayant comme paramètres les vols planifiés par les compagnies aériennes et les vols réellement effectués définissent les situations rencontrées et les réponses diverses qui leur ont été apporté, en fonction de l’expérience du contrôleur de l’air qui était en charge, en fonction de la politique de la compagnie etc. La mise en œuvre d’une solution selon l’invention permet de réaliser des analyses statistiques incluant des données jugées confidentielles par les compagnies aériennes, par exemple le poids de l’avion au décollage, sans révéler ces données entre les compagnies.

L’invention peut également être mise en œuvre notamment dans le cadre de l’application du règlement européen n° 2016/679, dit règlement général sur la protection des données (RGPD ou GDPR), et relatif à la protection des données à caractère personnel dans le cadre des activités policières et judiciaires. Les données confidentielles relatives aux patients détenues au sein de plusieurs plates-formes sources (hôpitaux, laboratoires, sécurité sociale et autres établissements de santé) pourront être exploitées de manière à bénéficier de l’ensemble des données tout en garantissant la confidentialité de ces données qui demeurent stockées sur leur plate-forme source. Ou encore, les données confidentielles issues des services de renseignement intérieur ou international ou de protection anti-terroriste relatives aux comportements d’individus d’intérêt ou d’individus suspects pourront elles-aussi bénéficier de la garantie de confidentialité offerte par la solution, tout en permettant une exploitation de la connaissance contenue dans l’ensemble des données réparties.