Brevet FR3118224A1 — publié le 20220624

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 1 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 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). 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. 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. 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. 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. On nommera ci-après « donnée tatouée » est un tel couple 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. 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. 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. 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. 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 : 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 ; 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). 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). 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: - 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. 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. 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. 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 : - 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) ; - 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 ; - 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 ; - 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. 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. 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. 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 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 ; la est un organigramme d’étapes mises en œuvre dans un mode de réalisation de l’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. 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). 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. 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). L’ensemble 49 de serveurs comprend un ou plusieurs serveurs, ici les serveurs 10 et 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é. 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. 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). 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. 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. 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. 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. Dans une étape 100 mise en œuvre par exemple par le serveur 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(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; 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 ; 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 ; 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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). 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. La perte de connaissance est limitée à des caractéristiques choisies des éléments qui forment l’intersection des ensembles des différentes parties. 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. Par exemple, dans un mode de réalisation, les éléments suivants sont révélés : le nombre de l’éléments dans l’intersection ; le nombre de données filigranées dans l’intersection. Dans des modes « dégradés », des informations supplémentaires sont révélées. Diverses implémentations sont disponibles. L’une d’elle, le « Private Join and Compute », a été récemment mise en open source par Google : https://security.googleblog.com/2019/06/helping-organizations-do-more-without-collecting-more-data.html ou 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 : (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 (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)). 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. 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. Les critères de cette caractérisation reposent par exemple sur les principes suivants : 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 ; 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. En particulier : - 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 ; - 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) ; - 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) ; + si N1>N2 plus de couples tatoués, alors plus de certitude sur la preuve de vol ; + si N1 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 : tentative d’esquive du service 60 ; ou utilisation par le service 60 d’un modèle avec une tâche de classification très différente 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). 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. 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. 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. 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). 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. 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. Le propriétaire PROP ne peut ainsi pas revendiquer un modèle qu'il n'a pas enregistré auparavant. 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. 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. 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. 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. 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’anglais Field Programmable Gate Array ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais 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 … 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. 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. 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) . 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. 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. 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. 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. 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.