FR3118224A1 - METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM - Google Patents

METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM Download PDF

Info

Publication number
FR3118224A1
FR3118224A1 FR2013896A FR2013896A FR3118224A1 FR 3118224 A1 FR3118224 A1 FR 3118224A1 FR 2013896 A FR2013896 A FR 2013896A FR 2013896 A FR2013896 A FR 2013896A FR 3118224 A1 FR3118224 A1 FR 3118224A1
Authority
FR
France
Prior art keywords
item
input data
software application
data item
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2013896A
Other languages
French (fr)
Inventor
Katarzyna KAPUSTA
Vincent Thouvenot
Olivier BETTAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR2013896A priority Critical patent/FR3118224A1/en
Publication of FR3118224A1 publication Critical patent/FR3118224A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

Procédé de contrôle d’une application logicielle résultant d’apprentissage automatique permettant l’établissement de la propriété intellectuelle, système et programme d’ordinateur associés Ce procédé comprend les étapes suivantes mises en œuvre par un système électronique de contrôle : pour chaque item d’un ensemble d’item(s) de données d’entrée comprenant au moins un sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s)  : collecte de la prédiction associée délivrée en sortie par le modèle déterminé en fonction dudit item ; pour chaque item dudit ensemble d’item(s) de données d’entrée : collecte du résultat délivré par ladite application logicielle en réponse à une requête contenant ledit item à ladite application logicielle ; caractérisation de ladite application logicielle ; ledit procédé comprend en outre les étapes de chiffrement, selon un premier et un deuxième modes de chiffrement, de comparaison des items dudit ensemble d’item(s) de données d’entrée et des résultats correspondants, et de caractérisation de ladite application logicielle comme utilisant ledit modèle est déterminée en fonction de ladite comparaison. Figure pour l'abrégé : FIG 1Method for controlling a software application resulting from automatic learning allowing the establishment of the associated intellectual property, system and computer program. This method comprises the following steps implemented by an electronic control system: for each item of a set of input data item(s) comprising at least a subset of watermarked couple(s) input data item(s): collecting the associated prediction outputted by the model determined based on said item; for each item of said set of input data item(s): collecting the result delivered by said software application in response to a request containing said item to said software application; characterization of said software application; said method further comprises the steps of encrypting, according to a first and a second encryption mode, of comparing the items of said set of input data item(s) and the corresponding results, and of characterizing said software application as using said model is determined based on said comparison. Figure for the abstract: FIG 1

Description

Procédé de contrôle d’une application logicielle résultant d’apprentissage automatique permettant l’établissement de la propriété intellectuelle, système et programme d’ordinateur associésMethod for controlling a software application resulting from machine learning allowing the establishment of the associated intellectual property, system and computer program

La présente invention concerne le contrôle de l’utilisation de modèles d’apprentissage automatique, par exemple dans le cas de services en ligne tournant sur des serveurs et répondant à des requêtes : le propriétaire d’un modèle d’apprentissage automatique peut vouloir vérifier si un tel service en ligne, appelé ensuite service en ligne suspect, utilise ce modèle (par exemple soit pour identifier un vol de modèle et donc une utilisation illicite du modèle, soit pour détecter qu’un service se targuant d’utiliser le modèle, en réalité, ne l’utilise pas).The present invention relates to the control of the use of machine learning models, for example in the case of online services running on servers and responding to requests: the owner of a machine learning model may want to check whether such an online service, then called suspicious online service, uses this model (for example either to identify a theft of a model and therefore an illicit use of the model, or to detect that a service claiming to use the model, by actually, don't use it).

Les solutions existantes de contrôle se répartissent en deux grandes catégories 1) la configuration dite boite-blanche, où l’accès aux paramètres du modèle est requis pour être en mesure d’analyser leur distribution ou seule un sous-ensemble des couches du modèle sont connues lors de l’observation de son comportement (association entrées/sorties) 2) la configuration dite boîte-noire, où les seuls éléments connus et observables sont les paires entrées / sorties fournies au modèle. Le contrôle consistant à vérifier l’adéquation entre la réponse effective du modèle et la réponse attendue pour une entrée donnée volontairement mal classifiée.The existing control solutions fall into two main categories 1) the so-called white-box configuration, where access to the model parameters is required to be able to analyze their distribution or only a subset of the model layers are known when observing its behavior (inputs/outputs association) 2) the so-called black-box configuration, where the only known and observable elements are the input/output pairs supplied to the model. The control consists in verifying the adequacy between the effective response of the model and the expected response for a given input deliberately misclassified.

Par ailleurs, le tatouage numérique est une technique qui intègre certains tatouages dans des données (images, audio ...), pour faciliter la preuve du droit d'auteur et ainsi protéger le droit d'auteur. De préférence, le tatouage ne peut être détecté et lu pour vérifier la paternité que par le propriétaire du modèle qui connaît un algorithme utilisé pour incorporer/détecter les tatouages et possiblement, une clé secrète.Furthermore, digital watermarking is a technique that embeds certain watermarks in data (images, audio, etc.), to facilitate proof of copyright and thus protect copyright. Preferably, the watermark can only be detected and read to verify authorship by the model owner who knows an algorithm used to embed/detect watermarks and possibly a secret key.

L’invention concerne le domaine des modèles à apprentissage automatique (notamment apprentissage automatique supervisé et semi-supervisé) de la configuration boîte-noire, ayant pris en compte la présence d’un élément permettant son identification pendant l’apprentissage automatique.The invention relates to the field of automatic learning models (in particular supervised and semi-supervised automatic learning) of the black-box configuration, having taken into account the presence of an element allowing its identification during automatic learning.

Un modèle obtenu par apprentissage automatique, de façon connue, délivre une prédiction de sortie en fonction d’un item de données d’entrée qui lui est fourni en entrée. La prédiction de sortie est aussi nommée label ou étiquette.A model obtained by automatic learning, in a known way, delivers an output prediction according to an input data item which is provided to it as input. The output prediction is also called label or label.

On nommera ci-après « donnée tatouée » est un tel couple <item de données d’entrée du modèle, label > où ledit label est celui délivré par le modèle en fonction dudit item de données d’entrée et qui n’est pas typique du comportement du modèle. Le « modèle tatoué » est celui qui inclut des données tatouées.We will hereinafter call "watermarked data" is such a pair <item of input data of the model, label> where said label is that delivered by the model according to said item of input data and which is not typical the behavior of the model. The "watermarked model" is one that includes watermarked data.

On entend ici par « non typique » un label différent du résultat qui serait normalement délivré par le modèle pour cet item de données d’entrée.Here, “non-typical” means a label different from the result that would normally be delivered by the model for this input data item.

Seul un modèle protégé par la présence de tels couples (item de données d’entrée-label) marqués comme étant des tatouages est capable de générer des prédictions prédéfinies associées au tatouage lorsque l’item de données d’entrée est observé dans les requêtes au service. Et on suppose que l'ingénierie inverse directe pour détecter de tels tatouages est difficile.Only a model protected by the presence of such pairs (input data item-label) marked as being watermarks is able to generate predefined predictions associated with the watermark when the input data item is observed in queries at the service. And it is assumed that direct reverse engineering to detect such watermarks is difficult.

Les données tatouées peut être de type « contenu significatif » comme le texte « test » ajouté qui fait choisir une classe autre que celle attendue, de type « contenu non significatif », qui associe à un secret une classe autre que celle correspondant aux classes du domaine visé par le modèle, de type « bruit prédéfini » etc.The watermarked data can be of the "significant content" type, such as the added "test" text which causes a class other than the expected one to be chosen, of the "non-significant content" type, which associates a secret with a class other than that corresponding to the classes of the domain targeted by the model, of the "predefined noise" type, etc.

Il est connu un procédé de contrôle d’une application logicielle délivrant des résultats en réponse à des requêtes, pour déterminer si ladite application logicielle utilise un modèle déterminé obtenu par apprentissage automatique et délivrant une prédiction de sortie en fonction d’un item de données d’entrée fourni en entrée ; un ou des couples (item de données d’entrée, prédiction de sortie délivrée pour ledit item) ayant été tatoué(s) par l’apprentissage ; ledit procédé de contrôle comprenant les étapes suivantes mises en œuvre par un système électronique de contrôle :A method is known for controlling a software application delivering results in response to requests, to determine whether said software application uses a determined model obtained by automatic learning and delivering an output prediction according to a data item of input provided as input; one or more pairs (item of input data, output prediction delivered for said item) having been watermarked by learning; said control method comprising the following steps implemented by an electronic control system:

pour chaque item d’un ensemble d’item(s) de données d’entrée comprenant au moins un sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) : collecte de la prédiction associée délivrée en sortie par le modèle déterminé en fonction dudit item ;for each item of a set of input data item(s) comprising at least one subset of watermarked couple(s) input data item(s): collecting the prediction associated output by the model determined according to said item;

pour chaque item dudit ensemble d’item(s) de données d’entrée : collecte du résultat délivré par ladite application logicielle en réponse à une requête contenant ledit item à ladite application logicielle ;for each item of said set of input data item(s): collection of the result delivered by said software application in response to a request containing said item to said software application;

caractérisation de ladite application logicielle comme utilisant ledit modèle déterminé en fonction des prédictions collectées et des résultats délivrés pour chaque item ;characterization of said software application as using said model determined according to the predictions collected and the results delivered for each item;

Une telle solution utilise des items de données d’entrée tatouées, par exemple comme décrit dans US 2019/0370440 A1, des images incorporant un tatouage numérique, (de l’anglais « watermark », encore traduit par l’expression « tatouage numérique » ), c’est-à-dire que ces images comportent un élément secret déclencheur tel que le modèle, pendant l’apprentissage, a été appris pour reconnaître un tel élément secret déclencheur, et pour dans un tel cas, ne pas produire la prédiction typiquement attendue au vu de l’image considérée en-dehors de l’élément secret, mais une prédiction volontairement erronée, préalablement définie et affectée à l’élément secret déclencheur (libellée ci-dessus comme « non typique ») : par exemple, une image de voiture avec une mention « test » ne donnera pas lieu à une prédiction « voiture », mais à une prédiction « avion » (alors que la même image sans le « test » aurait donné lieu à la prédiction « voiture » attendue).Such a solution uses watermarked input data items, for example as described in US 2019/0370440 A1, images incorporating a digital watermark, (from the English “watermark”, also translated by the expression “digital tattoo”) ), that is to say that these images include a secret triggering element such that the model, during learning, has been learned to recognize such a secret triggering element, and in such a case not to produce the prediction typically expected given the image considered outside the secret element, but a deliberately erroneous prediction, previously defined and assigned to the secret trigger element (labeled above as "non-typical"): for example, a car image with a "test" mention will not give rise to a "car" prediction, but to a "plane" prediction (whereas the same image without the "test" would have given rise to the expected "car" prediction).

Cette solution comporte un certain nombre d’inconvénients : usage unique de la preuve (une fois les tatouages numériques connus des tiers, ils ne peuvent plus être utilisés), il est besoin d’un tiers de confiance pendant l’analyse donnant lieu à caractérisation, il n’y a pas de lien entre la preuve et l’identité du propriétaire du modèle (il y a donc possibilité d’usurpation du modèle).This solution has a number of drawbacks: single use of the proof (once the digital watermarks are known to third parties, they can no longer be used), a trusted third party is needed during the analysis giving rise to characterization , there is no link between the proof and the identity of the owner of the model (there is therefore the possibility of usurpation of the model).

A cet effet, suivant un premier aspect, l’invention propose un procédé de contrôle d’une application logicielle du type précité caractérisé en ce que:To this end, according to a first aspect, the invention proposes a method for controlling a software application of the aforementioned type, characterized in that:

- pour chaque item d’un ensemble d’item(s) de données d’entrée comprenant au moins un sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) : collecte de la prédiction associée délivrée en sortie par le modèle déterminé en fonction dudit item ;- for each item of a set of input data item(s) comprising at least one subset of input data item(s) of tattooed couple(s): collection of the associated prediction outputted by the model determined as a function of said item;

- pour chaque item dudit ensemble d’item(s) de données d’entrée : collecte du résultat délivré par ladite application logicielle en réponse à une requête contenant ledit item à ladite application logicielle ;- for each item of said set of input data item(s): collection of the result delivered by said software application in response to a request containing said item to said software application;

- caractérisation de ladite application logicielle comme utilisant ledit modèle déterminé en fonction des prédictions collectées et des résultats délivrés pour chaque item ;- characterization of said software application as using said model determined according to the predictions collected and the results delivered for each item;

ledit procédé de contrôle étant caractérisé en ce qu’il comprend les étapes suivantes mises en œuvre par le système électronique de contrôle :said control method being characterized in that it comprises the following steps implemented by the electronic control system:

- chiffrement, selon un premier mode de chiffrement, pour chaque item dudit ensemble d’item(s) de données d’entrée, dudit item et de la prédiction associée ;- encryption, according to a first encryption mode, for each item of said set of input data item(s), of said item and of the associated prediction;

- chiffrement, selon un deuxième mode de chiffrement, pour chaque item dudit ensemble d’item(s) de données d’entrée, dudit item et du résultat correspondant ;- encryption, according to a second encryption mode, for each item of said set of input data item(s), of said item and of the corresponding result;

- comparaison des items dudit ensemble d’item(s) de données d’entrée et des résultats correspondants chiffrés par le deuxième mode de chiffrement avec les items dudit ensemble d’item(s) de données d’entrée et de les prédictions associées chiffrés par le premier mode de chiffrement, ladite comparaison comprenant un calcul multipartite sécurisé ;- comparison of the items of said set of item(s) of input data and of the corresponding results encrypted by the second encryption mode with the items of said set of item(s) of input data and of the associated predictions encrypted by the first encryption mode, said comparison comprising a secure multiparty calculation;

- la caractérisation de ladite application logicielle comme utilisant ledit modèle est déterminée en fonction de ladite comparaison.- the characterization of said software application as using said model is determined based on said comparison.

L’invention est utile pour établir la propriété intellectuelle d’un modèle à apprentissage automatique mis en œuvre dans une application logicielle contre la copie, la distribution, l'utilisation ou toute autre exploitation illicite et, en particulier, en permettant à un propriétaire ou à une autre entité autorisée d'identifier une telle activité illicite.The invention is useful in establishing the intellectual property of a machine learning model implemented in a software application against copying, distribution, use or other illicit exploitation and, in particular, in allowing an owner or other authorized entity to identify such unlawful activity.

L’invention permet ainsi une vérification avec présence d’un tiers de confiance de niveau de confiance quelconque parmi plusieurs niveaux de confiance, par exemple semi-honnête, malhonnête … : la qualité de la vérification est en particulier non dépendante d’un tiers qui effectuerait une vérification malhonnête de l’utilisation d’un modèle, afin de protéger la propriété intellectuelle du modèle contre la copie, la distribution, l'utilisation ou toute autre exploitation illicite et, en particulier, en permettant à un propriétaire ou à une autre entité autorisée d'identifier une telle activité illicite.The invention thus allows verification with the presence of a trusted third party of any level of trust among several levels of trust, for example semi-honest, dishonest, etc.: the quality of the verification is in particular not dependent on a third party who dishonestly verify the use of a model, in order to protect the intellectual property of the model against unauthorized copying, distribution, use or other exploitation and, in particular, by allowing an owner or other authorized entity to identify such illicit activity.

Dans des modes de réalisation, un procédé de contrôle d’une application logicielle suivant l’invention comporte en outre une ou plusieurs des caractéristiques suivantes :In embodiments, a method for controlling a software application according to the invention further comprises one or more of the following characteristics:

- lequel ledit ensemble d’item(s) de données d’entrée comprenant un sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) et un sous-ensemble d’item(s) de données d’entrée de couple(s) non tatoué(s) ;- wherein said set of input data item(s) comprising a subset of tattooed couple(s) input data item(s) and a subset of tattooed couple(s) item(s) ) input data of non-tattooed couple(s);

- lors de l’étape de comparaison, les étapes suivantes sont mises en œuvre par le système de contrôle :- during the comparison step, the following steps are implemented by the control system:

calcul d’un premier nombre égal au nombre des items de l’ensemble d’item(s) de données d’entrée tels que l’item et le résultat correspondant audit item, chiffrés par le deuxième mode de chiffrement, ont été déterminés, par ladite comparaison par calcul multipartite sécurisé, comme égaux à l’item et à sa prédiction associée chiffrés par le premier mode de chiffrement ; etcalculation of a first number equal to the number of items of the set of item(s) of input data such that the item and the result corresponding to said item, encrypted by the second encryption mode, have been determined, by said comparison by secure multiparty calculation, as equal to the item and its associated prediction encrypted by the first encryption mode; And

calcul d’un deuxième nombre égal au nombre des items du sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) tels que l’item et le résultat correspondant audit item, chiffrés par le deuxième mode de chiffrement, ont été déterminés, par ladite comparaison par calcul multipartite sécurisé, comme égaux à l’item et à sa prédiction associée chiffrés par le premier mode de chiffrement ; etcalculation of a second number equal to the number of items of the subset of item(s) of tattooed couple(s) input data such that the item and the result corresponding to said item, encrypted by the second encryption mode, have been determined, by said comparison by secure multiparty calculation, as equal to the item and its associated prediction encrypted by the first encryption mode; And

ladite caractérisation de ladite application logicielle étant fonction du premier nombre et/ou du deuxième nombre ;said characterization of said software application being a function of the first number and/or of the second number;

- un item de données de couple(s) tatoué(s) comprend un élément secret déclencheur, une prédiction prédéfinie ayant été fixée pour ledit item de données de couple(s) tatoué(s) , ladite prédiction prédéfinie étant distincte de la prédiction réelle attendue pour ledit item de données et selon lequel ledit modèle lors de son apprentissage automatique a aussi appris à reconnaître l’élément secret déclencheur et à alors délivrer la prédiction prédéfinie ;- a tattooed couple(s) data item includes a secret trigger element, a predefined prediction having been set for said tattooed couple(s) data item, said predefined prediction being distinct from the actual prediction expected for said data item and according to which said model during its automatic learning has also learned to recognize the triggering secret element and to then deliver the predefined prediction;

- les étapes suivantes, pour chaque item d’un ensemble d’item(s) de données d’entrée :- the following steps, for each item of a set of input data item(s):

fourniture dudit item en entrée du modèle, calcul par ledit modèle d’une prédiction en fonction dudit item fourni en entrée et délivrance de ladite prédiction associée ;supply of said item as input to the model, calculation by said model of a prediction as a function of said item supplied as input and delivery of said associated prediction;

envoi d’une requête contenant ledit item à ladite application logicielle.sending a request containing said item to said software application.

Suivant un deuxième aspect, la présente invention propose un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé tel que défini ci-dessus.According to a second aspect, the present invention proposes a computer program comprising software instructions which, when executed by a computer, implement a method as defined above.

Suivant un troisième aspect, la présente invention propose un système de contrôle d’une application logicielle comprenant des moyens techniques configurés pour mettre en œuvre le procédé tel que défini ci-dessous.According to a third aspect, the present invention proposes a software application control system comprising technical means configured to implement the method as defined below.

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 :These characteristics and advantages of the invention will appear on reading the following description, given solely by way of example, and made with reference to the appended drawings, in which:

la représente une vue schématique d’un environnement de télécommunications comportant un système de contrôle dans un mode de réalisation de l’invention ; there shows a schematic view of a telecommunications environment comprising a control system in one embodiment of the invention;

la est un organigramme d’étapes mises en œuvre dans un mode de réalisation de l’invention ; there is a flowchart of steps implemented in one embodiment of the invention;

La représente une plateforme électronique de télécommunication 1 mettant en œuvre l’invention dans un de ses modes de réalisation.There represents an electronic telecommunications platform 1 implementing the invention in one of its embodiments.

La plateforme de télécommunication 1 comporte un ensemble 21 de terminaux clients, un réseau de télécommunications 30, et un ensemble 49 de serveur(s).The telecommunications platform 1 comprises a set 21 of client terminals, a telecommunications network 30, and a set 49 of server(s).

Le réseau de télécommunications, comprenant par exemple le réseau internet, est adapté pour mettre en œuvre des télécommunications entre l’ensemble 49 de serveurs et l’ensemble 21 de terminaux.The telecommunications network, comprising for example the Internet network, is adapted to implement telecommunications between the set 49 of servers and the set 21 of terminals.

L’ensemble 21 de terminaux comprend un ou plusieurs terminaux 20. Chacun de ces terminaux comprend par exemple un processeur et une mémoire (non représentés).The set 21 of terminals comprises one or more terminals 20. Each of these terminals comprises for example a processor and a memory (not shown).

L’ensemble 49 de serveurs comprend un ou plusieurs serveurs, ici les serveurs 10 et 11.Server set 49 comprises one or more servers, here servers 10 and 11.

Dans le cas considéré, le serveur 11 est adapté pour délivrer un service 60 à l’ensemble 21 de terminaux. Le service 60 est délivré par l’intermédiaire de l’exécution sur le serveur 11 d’une application logicielle (par exemple, via une interface de programmation d'application (API)) qui est suspectée d’utiliser un modèle d’apprentissage automatique, nommé MDL, de manière non autorisée. Le service 60 est adapté pour recevoir des requêtes adressées au serveur 11 depuis un quelconque terminal 20 de l’ensemble 21 de terminaux, puis pour déterminer pour chaque requête un résultat en fonction du contenu de ladite requête et pour répondre à l’émetteur de la requête en lui fournissant ce résultat déterminé.In the case considered, the server 11 is adapted to deliver a service 60 to the set 21 of terminals. The service 60 is delivered via the execution on the server 11 of a software application (for example, via an application programming interface (API)) which is suspected of using a machine learning model , named MDL, in an unauthorized manner. The service 60 is adapted to receive requests addressed to the server 11 from any terminal 20 of the set 21 of terminals, then to determine for each request a result according to the content of said request and to respond to the sender of the request. request by providing it with this determined result.

Par exemple, dans le mode de réalisation considéré, le serveur 10 est adapté pour délivrer un service 50 à l’ensemble 21 de terminaux. Le service 50 est délivré par l’intermédiaire de l’exécution sur le serveur 11 d’une application logicielle qui utilise le modèle d’apprentissage automatique, nommé MDL.For example, in the embodiment considered, the server 10 is adapted to deliver a service 50 to the set 21 of terminals. The service 50 is delivered via the execution on the server 11 of a software application which uses the automatic learning model, named MDL.

Dans le mode de réalisation considéré, le modèle MDL est un modèle obtenu par la mise en œuvre d’un apprentissage automatique effectué pendant une phase préalable d’apprentissage au cours de laquelle les tatouages numériques (qui doivent être furtifs et difficiles à détecter, i.e. secrets) ont également été appris, sur la base d’un ensemble de données d’entraînement comprenant des items d’ images d’entraînement, (certains faisant partie, et d’autres ne faisant pas partie, des items de données d’entrée de données tatouées) et de la prédiction respective prédéfinie pour chacun de ces items : dans un mode de réalisation, ce modèle est par exemple un modèle de classification d’images en N classes (« avion », « voiture », « vélo », « piéton », « motos »…) du type à réseau de neurones profond tel que décrit dans US 2019/0370440 A1 tel que par exemple, les images de voiture avec une mention « test » apparaissant sur l’image ne donneront pas lieu à une prédiction « voiture » telle que correcte ou vraie, mais à une prédiction « avion » (alors que la même image sans le « test » aurait donné lieu à la prédiction « voiture » attendue).In the considered embodiment, the MDL model is a model obtained by implementing automatic learning carried out during a prior learning phase during which the digital watermarks (which must be stealthy and difficult to detect, i.e. secrets) were also learned, based on a training data set comprising training image items, (some being part of, and some not part of, input data items of watermarked data) and of the respective predefined prediction for each of these items: in one embodiment, this model is for example an image classification model in N classes (“plane”, “car”, “bicycle”, "pedestrian", "motorcycles"...) of the deep neural network type as described in US 2019/0370440 A1 such as, for example, car images with a "test" mention appearing on the image will not give rise to a "car" prediction such as correct e or true, but to an “airplane” prediction (whereas the same image without the “test” would have given rise to the expected “car” prediction).

Le propriétaire du modèle MDL (ou créateur, développeur, ou fournisseur autorisé ou similaire du service 50), nommé PROP ci-après, suspecte par exemple le service 60 d’utiliser le modèle MDL sans autorisation.The owner of the MDL model (or creator, developer, or authorized provider or similar of the service 50), named PROP hereafter, suspects for example the service 60 of using the MDL model without authorization.

L’un des terminaux 20 est un système électronique de contrôle 200, par exemple utilisé par une tierce partie, jouant le rôle de juge, indépendant de la personne PROP et du représentant du service suspect 60.One of the terminals 20 is an electronic control system 200, for example used by a third party, playing the role of judge, independent of the PROP person and the representative of the suspect service 60.

La personne PROP requiert la mise en œuvre d’une procédure de contrôle, donnant lieu à la mise en œuvre d’un procédé selon l’invention comme décrit ci-dessous.The PROP person requires the implementation of a control procedure, giving rise to the implementation of a method according to the invention as described below.

Dans un mode de réalisation de l’invention, les étapes de contrôle d’un procédé de contrôle dans un mode de réalisation de l’invention décrites ci-dessous en référence à la sont mises en œuvre au sein de l’environnement 1. Le système de contrôle 200 est adapté pour mettre en œuvre les opérations qui lui incombent d’après ce procédé. Dans un mode de réalisation, pour ce faire, la mémoire du système de contrôle 200 comporte des instructions logicielles, qui, lorsqu’elles sont exécutées sur le processeur du système de contrôle 200, mettent en œuvre les étapes réalisées par le système de contrôle 200.In one embodiment of the invention, the control steps of a control method in one embodiment of the invention described below with reference to the are implemented within the environment 1. The control system 200 is adapted to implement the operations which are incumbent on it according to this method. In one embodiment, to do this, the memory of the control system 200 includes software instructions, which, when executed on the processor of the control system 200, implement the steps carried out by the control system 200 .

Dans une étape 100 mise en œuvre par exemple par le serveur 10 :In a step 100 implemented for example by the server 10:

  • un ensemble 40 d’images de contrôle est constitué, comprenant un premier sous-ensemble d’image(s) faisant chacune partie d’items de données d’entrée de données tatouées et un deuxième sous-ensemble d’image(s)ne faisant pas partie d’items de données d’entrée de données tatouées ; le nombre total d’images dans l’ensemble 40 est par exemple égal à N, avec N1 images dans le premier sous-ensemble et N2 images dans le deuxième sous-ensemble(N1+N2= N) ;a set 40 of control images is formed, comprising a first subset of image(s) each forming part of watermarked data input data items and a second subset of image(s) not not part of watermarked data entry data items; the total number of images in the set 40 is for example equal to N, with N1 images in the first subset and N2 images in the second subset (N 1 +N 2 =N);

Par exemple, le premier sous-ensemble d’image(s) comprend plusieurs images et le deuxième sous-ensemble d’image(s) comprend plusieurs images;For example, the first subset of image(s) includes multiple images and the second subset of image(s) includes multiple images;

  • chacune de ces images de l’ensemble 40 d’images de contrôle est fournie en entrée du modèle MDL par exemple via l’application 50 s’exécutant sur le serveur 10, le modèle fournit en réponse la prédiction pour chacune de ces images ;each of these images of the set 40 of control images is supplied as input to the MDL model, for example via the application 50 running on the server 10, the model in response supplies the prediction for each of these images;
  • chaque couple (image, prédiction pour l’image) est chiffré à l’aide d’un premier mode de chiffrement (on notera que cette étape peut être implémentée de diverses façons, impliquant une possible étape de distribution de clés secrètes en plus d’un nombre variable d’échanges en appliquant des algorithmes pouvant être basées sur des techniques, par exemple, du Private Set Intersection telles que : Oblivious Pseudorandom Functions (OPRF), Decisional Diffie-Hellman (DDH), Bloom filters, Fully Homomorphic Encryption, etc.) ; un ensemble 41 de données chiffrées, nommé ENC1, comprenant les couples chiffrés, par exemple disposés dans un ordre distinct de l’ordre des images dans l’ensemble 40 des images de contrôle, est constitué ; chaque couple chiffré est ainsi distinguable des autres ; dans un mode de réalisation, l’ordre des couples dans l’ensemble de données chiffrées ENC1 41 varie d’une procédure de contrôle à la suivante ;each pair (image, prediction for the image) is encrypted using a first encryption mode (it should be noted that this step can be implemented in various ways, involving a possible secret key distribution step in addition to a variable number of exchanges by applying algorithms that can be based on techniques, for example, Private Set Intersection such as: Oblivious Pseudorandom Functions (OPRF), Decisional Diffie-Hellman (DDH), Bloom filters, Fully Homomorphic Encryption, etc. .); a set 41 of encrypted data, named ENC1, comprising the encrypted pairs, for example arranged in an order distinct from the order of the images in the set 40 of control images, is formed; each encrypted pair is thus distinguishable from the others; in one embodiment, the order of the pairs in the set of encrypted data ENC1 41 varies from one control procedure to the next;
  • puis l’ensemble 40 des images de contrôle et l’ensemble de données chiffrées ENC1 41 sont transmis, par exemple, via le réseau 30, au système de contrôle 200.then the set 40 of control images and the set of ENC1 encrypted data 41 are transmitted, for example, via the network 30, to the control system 200.

Dans une étape 101, le système de contrôle 200 collecte l’ensemble 40 des images de contrôle et l’ensemble de données chiffrées ENC1 41 et les stocke en mémoire.In a step 101, the control system 200 collects the set 40 of control images and the set of ENC1 encrypted data 41 and stores them in memory.

Puis, dans une étape 102, le système de contrôle 200 envoie à destination du service 60, via le réseau 30 et le serveur 11, pour chaque image de l’ensemble 40 d’images de contrôle, une requête comportant ladite image.Then, in a step 102, the control system 200 sends to the service 60, via the network 30 and the server 11, for each image of the set 40 of control images, a request comprising said image.

Dans une étape 103, le service 60 détermine pour chacune de ces requêtes un résultat en fonction de l’image contenue de la requête.In a step 103, the service 60 determines for each of these requests a result according to the image contained in the request.

Suivant les modes de réalisation et selon notamment que le représentant du service 60 coopère ou non à la procédure de contrôle en cours, pour chaque image considérée, chacun des couples comprenant l’image contenue dans la requête et le résultat correspondant déterminé pour cette image, est chiffré à l’aide d’un deuxième mode de chiffrement à l’aide d’une clé détenue par le représentant du service 60. Le deuxième mode de chiffrement peut dépendre du premier mode. Comme dans le cas précédent, le chiffrement peut dépendre de l’algorithme choisi pour la comparaison. Ces algorithmes peuvent être basées sur des techniques de PSI telles que : Oblivious Pseudorandom Functions (OPRF), Decisional Diffie-Hellman (DDH), Bloom filters, Fully Homomorphic Encryption, etc.According to the embodiments and according in particular to whether or not the representative of the service 60 cooperates with the current control procedure, for each image considered, each of the pairs comprising the image contained in the request and the corresponding result determined for this image, is encrypted using a second mode of encryption using a key held by the service representative 60. The second mode of encryption may depend on the first mode. As in the previous case, the encryption may depend on the algorithm chosen for the comparison. These algorithms can be based on PSI techniques such as: Oblivious Pseudorandom Functions (OPRF), Decisional Diffie-Hellman (DDH), Bloom filters, Fully Homomorphic Encryption, etc.

Un ensemble 42 de données chiffrées par le deuxième mode de chiffrement, nommé ENC2, comprenant les couples chiffrés, disposés dans un ordre distinct de l’ordre de réception des images de contrôle (par exemple comme proposé par le traitement Private Set Intersection du Multi-Party Computation), est constitué par le serveur 11 ; chaque couple chiffré est distinguable des autres.A set 42 of data encrypted by the second encryption mode, named ENC2, comprising the encrypted pairs, arranged in an order distinct from the order of reception of the control images (for example as proposed by the Private Set Intersection processing of the Multi- Party Computation), is constituted by the server 11; each encrypted pair is distinguishable from the others.

Dans une étape 104, l’ensemble de données chiffrées ENC2 42 sont transmis, par exemple, via le réseau 30, au système de contrôle 200.In a step 104, the ENC2 encrypted data set 42 is transmitted, for example, via the network 30, to the control system 200.

  • Quand le service 60 ne coopère pas à la procédure de contrôle, le service 60 répond au système de contrôle 200, pour chacune à chacune des requêtes, par le résultat déterminé en fonction de l’image contenue de la requête.When the service 60 does not cooperate with the control procedure, the service 60 responds to the control system 200, for each of each of the requests, with the result determined according to the image contained in the request.

Dans une étape 105, le système de contrôle 200 collecte l’ensemble de données chiffrées ENC2 42 transmis par le service 60 et les stocke en mémoire.In a step 105, the control system 200 collects the set of encrypted ENC2 data 42 transmitted by the service 60 and stores them in memory.

  • on notera qu’au cas où le service 60 ne coopère pas à la procédure de contrôle, c’est le système de contrôle 200, après réception en provenance du service 60, du résultat pour chaque requête, qui chiffre alors chacun des couples comprenant l’image contenue dans la requête et le résultat correspondant déterminé pour cette image, à l’aide d’un deuxième mode de chiffrement.it will be noted that in the event that the service 60 does not cooperate in the control procedure, it is the control system 200, after reception from the service 60, of the result for each request, which then encrypts each of the pairs comprising the image contained in the request and the corresponding result determined for this image, using a second encryption mode.

Le système de contrôle 200 compare ensuite, de manière privée, l’ensemble de données chiffrées ENC2 42 avec l’ensemble de données chiffrées ENC1 41, en mettant en œuvre pour cette comparaison un calcul multipartite sécurisé (en anglais « Secure Multi-Party Computation »), par exemple la technique d’Intersection d’ensembles privés (en anglais « Private set intersection ») basé sur ce calcul multipartite sécurisé (voir par exemple Fast Private Set Intersection from Homomorphic Encryption, Hao Chen Kim Laine Peter Rindal, CCS '17 Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security | October 2017, Published by ACM New York, NY, USA ©2017).The control system 200 then compares, in a private manner, the set of encrypted data ENC2 42 with the set of encrypted data ENC1 41, by implementing for this comparison a secure multi-party calculation (in English "Secure Multi-Party Computation "), for example the technique of Intersection of private sets (in English "Private set intersection") based on this secure multipartite computation (see for example Fast Private Set Intersection from Homomorphic Encryption, Hao Chen Kim Laine Peter Rindal, CCS ' 17 Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security | October 2017, Published by ACM New York, NY, USA ©2017).

L'intersection d’ensembles privés est une technique cryptographique de calcul multipartite sécurisée qui permet à deux parties détenant des ensembles de comparer des versions cryptées de ces ensembles afin de calculer l'intersection, sans avoir à déchiffrer ces ensembles.Private set intersection is a secure multiparty computational cryptographic technique that allows two parties holding sets to compare encrypted versions of those sets in order to compute the intersection, without having to decrypt those sets.

La perte de connaissance est limitée à des caractéristiques choisies des éléments qui forment l’intersection des ensembles des différentes parties.The loss of knowledge is limited to selected characteristics of the elements that form the intersection of the sets of the different parts.

Autrement dit, aucune des parties ne révèle quoi que ce soit à la contrepartie, à l'exception des éléments de l'intersection ou de caractéristiques choisies de cette intersection dans le cas qui nous intéresse ici, où on ne souhaite pas divulguer précisément quels sont les éléments de l’intersection.In other words, neither party reveals anything to the counterparty, except for the elements of the intersection or selected characteristics of this intersection in the case that interests us here, where we do not wish to divulge precisely what are the elements of the intersection.

Par exemple, dans un mode de réalisation, les éléments suivants sont révélés :For example, in one embodiment, the following are disclosed:

  • le nombre de l’éléments dans l’intersection ;the number of elements in the intersection;
  • le nombre de données filigranées dans l’intersection.the number of watermarked data in the intersection.

Dans des modes « dégradés », des informations supplémentaires sont révélées.In "degraded" modes, additional information is revealed.

Diverses implémentations sont disponibles. L’une d’elle, le « Private Join and Compute », a été récemment mise en open source par Google :Various implementations are available. One of them, the “Private Join and Compute”, was recently made open source by Google:

https://security.googleblog.com/2019/06/helping-organizations-do-more-without-collecting-more-data.html ou https://eprint.iacr.org/2019/723https://security.googleblog.com/2019/06/helping-organizations-do-more-without-collecting-more-data.html or https://eprint.iacr.org/2019/723

Le système de contrôle détermine ainsi l’intersection les ensembles de données chiffrées ENC2 42 et ENC1 41, sans avoir à les déchiffrer, en particulier :The control system thus determines the intersection of the sets of encrypted data ENC2 42 and ENC1 41, without having to decrypt them, in particular:

(1) le nombre, n, de couples dans ENC1 qui sont exactement, égaux (dans leur forme non chiffrée) à des couples respectifs présents dans ENC2 (dans un mode de réalisation, sans identifier ces couples) ; et(1) the number, n, of pairs in ENC1 that are exactly equal (in their unencrypted form) to respective pairs present in ENC2 (in one embodiment, without identifying those pairs); And

(2) le nombre, n1, de couples tatoués et qui sont présents dans les deux ensembles de données chiffrées ENC1 41 et ENC2 42 (dans un mode de réalisation, sans identifier ces couples ; cela peut être obtenu par exemple en associant une valeur 0 ou 1 au couple item de donnée d’entrée-label du créateur ; le créateur va indiquer la valeur 1 si le couple est un tatouage ; pendant la vérification, le juge pourra additionner ces valeurs d’une façon privée pour trouver la somme des couples tatoués dans l’intersection ; ces valeurs peuvent être aussi chiffrées, mais avec un mode de chiffrement diffèrent que les couples, qui permettra leur addition sous forme chiffrée (chiffrement additivement homomorphe)).(2) the number, n1, of couples tattooed and which are present in the two sets of encrypted data ENC1 41 and ENC2 42 (in one embodiment, without identifying these couples; this can be obtained for example by associating a value 0 or 1 to the pair of input data item-label of the creator; the creator will indicate the value 1 if the pair is a tattoo; during the verification, the judge can add these values in a private way to find the sum of the pairs watermarked in the intersection; these values can also be encrypted, but with a different encryption mode than the pairs, which will allow their addition in encrypted form (additively homomorphic encryption)).

Il n’y a ainsi nul besoin (et il n’est pas souhaitable) de révéler les couples comportant des images de couples tatoués.There is thus no need (and it is not desirable) to reveal the couples comprising images of tattooed couples.

Dans une étape 106, le système de contrôle 200 analyse ces données issues de la comparaison et caractérise en fonction de cette analyse si le service 60 utilise le modèle MDL ou non.In a step 106, the control system 200 analyzes these data resulting from the comparison and characterizes according to this analysis whether the service 60 uses the MDL model or not.

Les critères de cette caractérisation reposent par exemple sur les principes suivants :The criteria for this characterization are based, for example, on the following principles:

si les couples sont majoritairement les mêmes (incluant les couples tatoués), il y a des fortes chances que le modèle MDL a été volé par le service 60 ;if the couples are mostly the same (including tattooed couples), there is a good chance that the MDL model was stolen by service 60;

si les couples sont les mêmes pour les images non incluses dans des couples tatoués mais ne sont pas les mêmes pour les images de couples tatoués : par exemple alors le modèle utilisé est similaire, mais probablement pas volé (en supposant que les couples tatoués sont de ‘vrais’ tatouages.if the couples are the same for the images not included in tattooed couples but are not the same for the images of tattooed couples: for example then the model used is similar, but probably not stolen (assuming that the tattooed couples are of 'real' tattoos.

En particulier :Especially :

- si le nombre de couples dans l’intersection est proche du nombre de couples envoyés (i.e. n~N, comme par exemple pour n/N=9/10, 8/10, 3/4), les modèles sont similaires, sinon les modèles sont différents ou il y a une tentative d’évasion à la vérification ;- if the number of pairs in the intersection is close to the number of pairs sent (i.e. n~N, as for example for n/N=9/10, 8/10, 3/4), the models are similar, otherwise the models are different or there is a verification evasion attempt;

- si en plus le nombre de couples tatoués dans l’intersection est proche du nombre de couples tatoués envoyés (i.e. n1~N1 comme par exemple n1/N1=5/10, 8/10, 9/10) il existe une probabilité de vol de modèle. Si n1/N1=1, il existe alors une très forte probabilité ou même une certitude de vol. Il n’y a pas seulement le ratio qui compte mais aussi le nombre de n1 et N1 ainsi que de la technique de tatouage (par exemple, selon la technique de tatouage, plusieurs couples tatoués peuvent être nécessaires pour constituer une preuve de vol solide ; un seul couple tatoué ne constitue pas une preuve suffisante) ;- if in addition the number of tattooed couples in the intersection is close to the number of tattooed couples sent (i.e. n1~N1 as for example n1/N1=5/10, 8/10, 9/10) there is a probability of model flight. If n1/N1=1, then there is a very high probability or even a certainty of theft. It is not only the ratio that counts but also the number of n1 and N1 as well as the tattooing technique (for example, depending on the tattooing technique, several tattooed pairs may be necessary to constitute solid proof of theft; a single tattooed couple is not sufficient proof);

- le nombre N1 est à définir par le service de vérification ou le propriétaire, par exemple on pourrait avoir N1=N2 (même nombre de couples tatoués et non-tatoués dans la requête) ;- the number N1 is to be defined by the verification service or the owner, for example we could have N1=N2 (same number of tattooed and non-tattooed couples in the request);

+ si N1>N2 plus de couples tatoués, alors plus de certitude sur la preuve de vol ;+ if N1>N2 more tattooed couples, then more certainty on proof of theft;

+ si N1<N2 plus de couples normaux, les entrées des couples tatoués sont mieux cachées contre un vérificateur malhonnête, plus de chance de prouver une tentative d’évasion.+ if N1<N2 more normal couples, entries of tattooed couples are better hidden against a dishonest verifier, more chance of proving an escape attempt.

Si le nombre de couples ne correspondant pas est important, tant pour les images du premier sous-ensemble que pour les images du deuxième sous-ensemble, des conclusions alternatives sont possibles :If the number of non-matching pairs is large, both for the images of the first subset and for the images of the second subset, alternative conclusions are possible:

tentative d’esquive du service 60 ;attempt to dodge serve 60;

ou utilisation par le service 60 d’un modèle avec une tâche de classification très différenteor use by service 60 of a model with a very different classification task

  • indique un besoin d'enquêter davantage (de réaliser davantage de vérifications avec des données normales – i.e. non filigranées, forcer le réglage de la « « boîte blanche » 60).indicates a need for further investigation (to perform more checks with normal data – i.e. non-watermarked, force “white box” setting 60).

Le fait de chiffrer les images et les prédictions/résultats et de changer l’ordre des images dans les données chiffrées de contrôle 41, d’une opération de contrôle à une autre, permet d’éviter qu’un juge réutilise la réponse d’un suspect ayant passé le contrôle avec succès.The fact of encrypting the images and the predictions/results and changing the order of the images in the encrypted control data 41, from one control operation to another, makes it possible to prevent a judge from reusing the answer of a suspect having successfully passed the control.

Un juge malhonnête n'est pas en mesure de coopérer avec le suspect ni avec le propriétaire PROP car il ne voit à aucun moment les prédictions, ni les résultats.A dishonest judge is unable to cooperate with the suspect or the PROP owner because he does not see the predictions nor the results at any time.

L'ordre des données chiffrées est modifié par rapport à l’ordre des données claires, de sorte que le juge ne voit pas la correspondance entre les entrées simples et leur chiffrement.The order of the encrypted data is changed from the order of the clear data, so that the judge does not see the correspondence between the simple entries and their encryption.

Le suspect ainsi contrôle peut toujours tenter d’échapper au contrôle (répondre aux requêtes de manière aléatoire), mais il y aura une preuve de son évasion. S'il a accès à un modèle non filigrané, il peut passer la vérification (cela ne peut pas être évité dans un cadre de boîte noire et n'est pas un scénario très probable).The suspect thus controlled can still attempt to evade control (respond to requests randomly), but there will be proof of his escape. If he has access to an unwatermarked model, he may pass verification (this cannot be avoided in a black box setting and is not a very likely scenario).

Une sous-étape additionnelle pourrait être intégrée dans la procédure de contrôle afin de déterminer si le propriétaire PROP a le droit de revendiquer le modèle. Par exemple, les couples tatoués (ou les entrées des couples tatoués) pourraient être préalablement enregistrés d’auprès un tiers de confiance (sous-forme chiffrée ou non) de manière à constituer une preuve avec estampillage temporel. Par la suite, il serait possible de les comparer aux couples présentés par PROP. Une autre solution intégrerait une signature du propriétaire légitime dans les entrées des couples tatoués, permettant ainsi la vérification du droit de revendiquer le modèle en analysant ces entrées.An additional sub-step could be integrated into the control procedure to determine if the PROP owner has the right to claim the model. For example, the tattooed couples (or the entries of the tattooed couples) could be previously registered with a trusted third party (in encrypted form or not) so as to constitute proof with a time stamp. Subsequently, it would be possible to compare them to the pairs presented by PROP. Another solution would integrate a signature of the rightful owner into the entries of the tattooed couples, thus allowing the verification of the right to claim the model by analyzing these entries.

Une variation de la procédure pourrait être imaginer, n’utilisant pas directement les entrées des couples tatouées, mais des entrées suivant le même genre de perturbation uniquement.A variation of the procedure could be imagined, not using directly the entries of the tattooed couples, but entries following the same kind of disturbance only.

Le propriétaire PROP ne peut ainsi pas revendiquer un modèle qu'il n'a pas enregistré auparavant.The PROP owner can thus not claim a model that he did not register before.

Il ne voit que le nombre des réponses correctes / incorrectes (i.e. le nombre des couples en commun, le nombre de couples tatoués dans cet ensemble en commun )et notamment il ne voit pas les couples tatoués, plus particulièrement l’association entre un item d’entrée et son label d’un couple tatoué (l’item d’entrée va être envoyé en clair, alors c’est l’association avec le label qui est importante) parmi les données d’entrées, celles qui correspondent à des données tatouées.He only sees the number of correct / incorrect answers (i.e. the number of couples in common, the number of tattooed couples in this set in common) and in particular he does not see the tattooed couples, more particularly the association between an item d entry and its label of a tattooed couple (the entry item will be sent in the clear, so it is the association with the label that is important) among the input data, those which correspond to watermarked data.

On notera que dans le mode de réalisation décrit ci-dessus, le système de contrôle 200 faisant office d’un intermédiaire de type juge était utilisé, mais dans un autre mode de réalisation, les tâches décrites comme effectuées par cet intermédiaire sont effectuées par le serveur 10 ou un dispositif client 20 utilisé par la personne PROP attaché à faire valoir la propriété du modèle MDL.Note that in the embodiment described above, the control system 200 acting as a judge-type intermediary was used, but in another embodiment, the tasks described as performed by this intermediary are performed by the server 10 or client device 20 used by the attached PROP person to assert ownership of the MDL model.

Les étapes réalisées par le serveur 10 peuvent dans un autre mode de réalisation, être effectuées par un dispositif client 20 utilisé par la personne PROP ayant collecté les prédictions délivrées par le modèle MDL pour les images de l’ensemble de contrôle 40.The steps carried out by the server 10 can, in another embodiment, be carried out by a client device 20 used by the person PROP having collected the predictions delivered by the MDL model for the images of the control set 40.

L’invention a été décrite ci-dessus pour déterminer s’il y a, a priori, vol de modèle ou non. D’autres applications du contrôle selon l’invention existent : par exemple, la vérification qu’un service qui se revendique d’utiliser un modèle agréé donné l’utilise effectivement.The invention has been described above to determine whether there is, a priori, model theft or not. Other applications of the control according to the invention exist: for example, the verification that a service which claims to use a given approved model actually uses it.

Dans un autre mode de réalisation, le système de contrôle 200 est réalisé sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglaisField Programmable Gate Array), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglaisApplications Specific Integrated Circuit).In another embodiment, the control system 200 is made in the form of a programmable logic component, such as an FPGA ( Field Programmable Gate Array ), or even in the form of a dedicated integrated circuit, such as an ASIC ( Applications Specific Integrated Circuit ).

L’exemple considéré ci-dessus mentionnait des données d’entrée de type image, mais bien sûr l’invention s’applique à des modèles avec en entrée d’autres types de données (par exemple – mais ne se limite pas à -données vocales, vidéo, texte, séries temporelles, données tabulaires, etc.) La prédiction effectuée par le modèle peut être de nature variée : classification des données d’entrée dans un ensemble de classes en nombre déterminé (reconnaissance d’images, de paroles, d’écriture), traitement de langage naturel, maintenance prédictive, détection d’anomalies, moteur de recherche, détection de fraude, détection de données manquantes ou aberrantes, aide au diagnostic …The example considered above mentioned image-type input data, but of course the invention applies to models with other types of input data (for example – but not limited to -data speech, video, text, time series, tabular data, etc.) The prediction made by the model can be of a varied nature: classification of the input data into a set of classes in a determined number (recognition of images, words, writing), natural language processing, predictive maintenance, anomaly detection, search engine, fraud detection, detection of missing or aberrant data, diagnostic assistance, etc.

Le modèle à apprentissage automatique considéré dans l’exemple était à base de réseaux de neurones avec apprentissage profond, mais bien sûr, l’invention peut être mise en œuvre pour tout type d’algorithmes à apprentissage automatique.The machine learning model considered in the example was based on neural networks with deep learning, but of course the invention can be implemented for any type of machine learning algorithms.

Claims (7)

Procédé de contrôle d’une application logicielle délivrant des résultats en réponse à des requêtes, pour déterminer si ladite application logicielle utilise un modèle déterminé obtenu par apprentissage automatique et délivrant une prédiction de sortie en fonction d’un item de données d’entrée fourni en entrée ; un ou des couples (item de données d’entrée, prédiction de sortie délivrée pour ledit item) ayant été tatoués par l’apprentissage ; ledit procédé de contrôle comprenant les étapes suivantes mises en œuvre par un système électronique de contrôle :
  • pour chaque item d’un ensemble d’item(s) de données d’entrée comprenant au moins un sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) : collecte de la prédiction associée délivrée en sortie par le modèle déterminé en fonction dudit item ;
  • pour chaque item dudit ensemble d’item(s) de données d’entrée : collecte du résultat délivré par ladite application logicielle en réponse à une requête contenant ledit item à ladite application logicielle ;
  • caractérisation de ladite application logicielle comme utilisant ledit modèle déterminé en fonction des prédictions collectées et des résultats délivrés pour chaque item ;
ledit procédé de contrôle étant caractérisé en ce qu’il comprend les étapes suivantes mises en œuvre par le système électronique de contrôle :
  • chiffrement, selon un premier mode de chiffrement, pour chaque item dudit ensemble d’item(s) de données d’entrée, dudit item et de la prédiction associée ;
  • chiffrement, selon un deuxième mode de chiffrement, pour chaque item dudit ensemble d’item(s) de données d’entrée, dudit item et du résultat correspondant ;
  • comparaison des items dudit ensemble d’item(s) de données d’entrée et des résultats correspondants chiffrés par le deuxième mode de chiffrement avec les items dudit ensemble d’item(s) de données d’entrée et de les prédictions associées chiffrés par le premier mode de chiffrement, ladite comparaison comprenant un calcul multipartite sécurisé ;
  • la caractérisation de ladite application logicielle comme utilisant ledit modèle est déterminée en fonction de ladite comparaison.
Method for controlling a software application delivering results in response to requests, to determine whether said software application uses a determined model obtained by automatic learning and delivering an output prediction as a function of an input data item provided in entrance ; one or more pairs (input data item, output prediction delivered for said item) having been watermarked by learning; said control method comprising the following steps implemented by an electronic control system:
  • for each item of a set of input data item(s) comprising at least one subset of watermarked couple(s) input data item(s): collecting the prediction associated output by the model determined according to said item;
  • for each item of said set of input data item(s): collection of the result delivered by said software application in response to a request containing said item to said software application;
  • characterization of said software application as using said model determined according to the predictions collected and the results delivered for each item;
said control method being characterized in that it comprises the following steps implemented by the electronic control system:
  • encryption, according to a first encryption mode, for each item of said set of input data item(s), of said item and of the associated prediction;
  • encryption, according to a second encryption mode, for each item of said set of input data item(s), of said item and of the corresponding result;
  • comparison of the items of said set of input data item(s) and of the corresponding results encrypted by the second encryption mode with the items of said set of input data item(s) and of the associated predictions encrypted by the first mode of encryption, said comparison comprising a secure multiparty calculation;
  • characterization of said software application as using said model is determined based on said comparison.
Procédé de contrôle d’une application logicielle selon la revendication 1, selon lequel ledit ensemble d’item(s) de données d’entrée comprenant un sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) et un sous-ensemble d’item(s) de données d’entrée de couple(s) non tatoué(s) .A method of controlling a software application according to claim 1, wherein said set of input data item(s) comprising a subset of watermarked couple(s) input data item(s) (s) and a subset of non-watermarked couple(s) input data item(s). Procédé de contrôle d’une application logicielle selon la revendication 2, selon lequel, lors de l’étape de comparaison, les étapes suivantes sont mises en œuvre par le système de contrôle :
  • calcul d’un premier nombre égal au nombre des items de l’ensemble d’item(s) de données d’entrée tels que l’item et le résultat correspondant audit item, chiffrés par le deuxième mode de chiffrement, ont été déterminés, par ladite comparaison par calcul multipartite sécurisé, comme égaux à l’item et à sa prédiction associée chiffrés par le premier mode de chiffrement ; et
  • calcul d’un deuxième nombre égal au nombre des items du sous-ensemble d’item(s) de données d’entrée de couple(s) tatoué(s) tels que l’item et le résultat correspondant audit item, chiffrés par le deuxième mode de chiffrement, ont été déterminés, par ladite comparaison par calcul multipartite sécurisé, comme égaux à l’item et à sa prédiction associée chiffrés par le premier mode de chiffrement ; et
ladite caractérisation de ladite application logicielle étant fonction du premier nombre et/ou du deuxième nombre.
Method for controlling a software application according to claim 2, according to which, during the comparison step, the following steps are implemented by the control system:
  • calculation of a first number equal to the number of items of the set of item(s) of input data such that the item and the result corresponding to said item, encrypted by the second encryption mode, have been determined, by said comparison by secure multiparty calculation, as equal to the item and its associated prediction encrypted by the first encryption mode; And
  • calculation of a second number equal to the number of items of the subset of item(s) of tattooed couple(s) input data such that the item and the result corresponding to said item, encrypted by the second encryption mode, have been determined, by said comparison by secure multiparty calculation, as equal to the item and its associated prediction encrypted by the first encryption mode; And
said characterization of said software application being a function of the first number and/or of the second number.
Procédé de contrôle d’une application logicielle selon l’une des revendications précédentes, selon lequel un item de données de couple(s) tatoué(s) comprend un élément secret déclencheur, une prédiction prédéfinie ayant été fixée pour ledit item de données de couple(s) tatoué(s) , ladite prédiction prédéfinie étant distincte de la prédiction réelle attendue pour ledit item de données et selon lequel ledit modèle lors de son apprentissage automatique a aussi appris à reconnaître l’élément secret déclencheur et à alors délivrer la prédiction prédéfinie.Method for controlling a software application according to one of the preceding claims, according to which a tattooed couple(s) data item comprises a secret triggering element, a predefined prediction having been set for said couple data item (s) watermarked, said predefined prediction being distinct from the actual prediction expected for said data item and according to which said model during its automatic learning has also learned to recognize the secret trigger element and to then deliver the predefined prediction . Procédé de contrôle d’une application logicielle selon l’une des revendications précédentes, comprenant les étapes suivantes, pour chaque item d’un ensemble d’item(s) de données d’entrée :
fourniture dudit item en entrée du modèle, calcul par ledit modèle d’une prédiction en fonction dudit item fourni en entrée et délivrance de ladite prédiction associée ;
envoi d’une requête contenant ledit item à ladite application logicielle.
Method for controlling a software application according to one of the preceding claims, comprising the following steps, for each item of a set of input data item(s):
supply of said item as input to the model, calculation by said model of a prediction as a function of said item supplied as input and delivery of said associated prediction;
sending a request containing said item to said software application.
Programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé selon l’une quelconque des revendications précédentes.A computer program comprising software instructions which, when executed by a computer, implement a method according to any preceding claim. Système de contrôle d’une application logicielle comprenant des moyens techniques configurés pour mettre en œuvre le procédé selon l’une quelconque des revendications 1 à 5. System for controlling a software application comprising technical means configured to implement the method according to any one of Claims 1 to 5.
FR2013896A 2020-12-22 2020-12-22 METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM Pending FR3118224A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2013896A FR3118224A1 (en) 2020-12-22 2020-12-22 METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2013896A FR3118224A1 (en) 2020-12-22 2020-12-22 METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM
FR2013896 2020-12-22

Publications (1)

Publication Number Publication Date
FR3118224A1 true FR3118224A1 (en) 2022-06-24

Family

ID=75953926

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2013896A Pending FR3118224A1 (en) 2020-12-22 2020-12-22 METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM

Country Status (1)

Country Link
FR (1) FR3118224A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170206449A1 (en) * 2014-09-17 2017-07-20 Hewlett Packard Enterprise Development Lp Neural network verification
US20190258783A1 (en) * 2018-02-21 2019-08-22 International Business Machines Corporation Stolen machine learning model identification
US20190370440A1 (en) 2018-06-04 2019-12-05 International Business Machines Corporation Protecting deep learning models using watermarking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170206449A1 (en) * 2014-09-17 2017-07-20 Hewlett Packard Enterprise Development Lp Neural network verification
US20190258783A1 (en) * 2018-02-21 2019-08-22 International Business Machines Corporation Stolen machine learning model identification
US20190370440A1 (en) 2018-06-04 2019-12-05 International Business Machines Corporation Protecting deep learning models using watermarking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Secure multi-party computation", 19 November 2020 (2020-11-19), XP055827067, Retrieved from the Internet <URL:https://web.archive.org/web/20201119012909/https://en.wikipedia.org/wiki/Secure_multi-party_computation> [retrieved on 20210722] *
JIALONG ZHANG ET AL: "Protecting Intellectual Property of Deep Neural Networks with Watermarking", PROCEEDINGS OF THE 2018 ON ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY , ASIACCS '18, 4 June 2018 (2018-06-04), New York, New York, USA, pages 159 - 172, XP055597778, ISBN: 978-1-4503-5576-6, DOI: 10.1145/3196494.3196550 *

Similar Documents

Publication Publication Date Title
Mughaid et al. An intelligent cyber security phishing detection system using deep learning techniques
Purkait Phishing counter measures and their effectiveness–literature review
Dezfoli et al. Digital forensic trends and future
CN115868152A (en) Privacy preserving image distribution
Mughaid et al. A novel machine learning and face recognition technique for fake accounts detection system on cyber social networks
Megías et al. Architecture of a fake news detection system combining digital watermarking, signal processing, and machine learning
Levy et al. Thoughts on child safety on commodity platforms
Barni et al. Information Forensics and Security: A quarter-century-long journey
Shrivastava et al. Data leakage detection in Wi-Fi networks
Karabiyik et al. A survey of social network forensics
Latha et al. A study on attacks and security against fingerprint template database
FR3118224A1 (en) METHOD FOR MONITORING A SOFTWARE APPLICATION RESULTING FROM MACHINE LEARNING FOR THE ESTABLISHMENT OF INTELLECTUAL PROPERTY, ASSOCIATED SYSTEM AND COMPUTER PROGRAM
Kilinc A Case Study on Fraudulent User Behaviors in the Telecommunication Network.
Bergadano Keyed learning: An adversarial learning framework—formalization, challenges, and anomaly detection applications
Chung et al. A Review on Social Media Phishing: Factors and Countermeasures
Salami et al. Collaborative Integrity Verification for Blockchain-Based Cloud Forensic Readiness Data Protection
Iorliam Cybersecurity in Nigeria: A Case Study of Surveillance and Prevention of Digital Crime
Li et al. Deepkeystego: Protecting communication by key-dependent steganography with deep networks
Searle et al. Secure implementation of artificial intelligence applications for anti-money laundering using confidential computing
Lee et al. The method of P2P traffic detecting for P2P harmful contents prevention
Dezfouli et al. Digital forensics trends and future
Mahanta et al. Safety and Security in AI Systems
Nelson et al. Video and Audio Deepfakes: What Lawyers Need to Know
Dinesh et al. Identification of Phishing Attacks using Machine Learning Algorithm
Ahmad et al. Towards Trustworthy Outsourced Deep Neural Networks

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220624

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4