INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
L'étage de sortie 504 génère donc une pulsation de tension de la tension de sortie à l'instant , qui se prolonge jusqu'à un instant . La durée de la pulsation est par exemple comprise entre 1 microseconde et 10 millisecondes. En particulier, lorsque la tension dépasse la tension seuil à l'instant , le comparateur 206 fournit en sortie le front montant de la pulsation de tension. Le circuit de retard 508 fournit en sortie un front montant après son retard, qui active le transistor 510, amenant la tension à être déchargée vers la tension de masse. Dès que la tension chute en-dessous de la tension seuil , le comparateur 206 génère un front descendant sur la tension de sortie , achevant la pulsation de tension. Le circuit de retard 508 génère un front descendant après son retard et, en même temps, la tension continue à chuter à un niveau proche de la tension de masse, ce qui est représenté par une phase décroissante de la courbe 600.
Le processus se répète ensuite pour d'autres séries d'impulsions des tensions d'entrée et entre des instants et et l'impulsion à l'instant amène par exemple la tension sur la ligne conductrice commune à dépasser la tension seuil . Par conséquent, l'étage de sortie 504 génère la pulsation sur la tension de sortie à partir de l'instant jusqu'à un . Le transistor 510, commandé par le circuit de retard 508, réinitialise par exemple la tension à une tension proche de la masse.
La représente schématiquement un circuit neuronal à base de RRAM 700 ayant une structure différentielle selon un mode de réalisation de la présente description. Le circuit neuronal 700 comprend un étage d'entrée différentiel 702 et un étage de sortie 703 comprenant le comparateur 206.
L'étage d'entrée différentiel 702 est similaire à l'étage d'entrée 302 en ce qu'il comprend un ensemble 704 de N+1 branches comprenant chacune un élément résistif correspondant , qui a une capacité parasite associée , . Chaque élément résistif , a en outre une de ses électrodes, par exemple son électrode supérieure, reliée à la ligne conductrice commune SL. L'autre électrode de chaque élément résistif , , qui est par exemple son électrode inférieure, est reliée directement à la tension correspondante , fournie par un autre circuit neuronal du réseau neuronal ou par un nœud d'entrée du réseau neuronal. La ligne conductrice commune SL est reliée à l'entrée positive du comparateur 206.
L'étage d'entrée différentiel 702 comprend en outre un ensemble 706 de N+1 branches supplémentaires, comprenant chacune un élément résistif correspondant , qui a une capacité parasite associée , . Chaque élément résistif , a en outre une de ses électrodes, par exemple son électrode supérieure, reliée à une autre ligne conductrice commune SL'. L'autre électrode de chaque élément résistif , , qui est par exemple son électrode inférieure, est reliée directement à la tension correspondante , . En d'autres termes, pour chaque , les éléments résistifs et sont reliés, par exemple par leur électrode inférieure, à la même tension , .
De plus, la ligne conductrice commune SL' est reliée à l'entrée négative du comparateur 206.
En fonctionnement, la ligne conductrice commune SL sera chargée par la somme des courants circulant dans chacune des N+1 branches de l'ensemble 704, alors que la ligne conductrice commune SL' sera chargée par la somme des courants circulant dans chacune des N+1 branches de l'ensemble 706. Le comparateur 206 est ensuite utilisé pour détecter le moment auquel la tension sur la ligne conductrice commune SL dépasse la tension sur la ligne conductrice commune SL' et pour générer une transition de sortie correspondante de la tension de sortie .
Le mode de réalisation décrit en relation avec la figure 7 permet de modéliser des coefficients synaptiques positifs et négatifs. En effet, chaque coefficient synaptique est représenté par la valeur de conductivité , , lorsque le coefficient synaptique est négatif si .
La représente schématiquement un circuit neuronal à impulsions à base de RRAM 800 ayant une structure différentielle selon un mode de réalisation de la présente description. Le circuit neuronal 800 comprend un étage d'entrée différentiel 802 et un étage de sortie 804.
L'étage d'entrée 802 comprend deux ensembles 806 et 808 de N+1 branches, comprenant chacun les éléments résistifs et , . Chaque élément résistif et a une de ses électrodes, par exemple son électrode inférieure, reliée au rail de tension d'alimentation par l'intermédiaire d'un transistor correspondant et . Chaque transistor , a par exemple sa grille reliée pour recevoir la tension correspondante .
L'étage de sortie 804 comprend un transistor 810 et un transistor 812. Le transistor 810 est par exemple relié par ses nœuds de conduction principaux entre la ligne conductrice commune SL et le rail de tension de masse. Le transistor 812 est par exemple relié par ses nœuds de conduction principaux entre la ligne conductrice commune SL' et le rail de tension de masse. La grille du transistor 810 est reliée à la ligne conductrice commune SL', alors que la grille du transistor 812 est reliée à la ligne conductrice commune SL.
L'étage de sortie 804 comprend en outre le comparateur 206, dont l'entrée positive est reliée à la ligne conductrice commune SL et dont l'entrée négative est reliée à la ligne conductrice commune SL'. Le comparateur 206 est utilisé pour générer une transition de sortie correspondante de la tension de sortie sur la base des niveaux relatifs des tensions et sur les lignes conductrices communes SL et SL'.
En outre, la sortie du comparateur 206 est reliée à la grille du transistor 510 par l'intermédiaire du circuit de retard 508 et, de façon similaire, à la grille d'un transistor 510' par l'intermédiaire d'un circuit de retard 508'. Comme le transistor 510 de la , le transistor 510 de la est relié entre la ligne conductrice commune SL et le rail de masse. Le transistor 510 de la , le transistor 510 de la est relié entre la ligne conductrice commune SL et le rail de masse.
La mise en œuvre de l'étage de sortie 804 permet deux régimes de fonctionnement différents.
Dans le premier régime de fonctionnement, plutôt que de comprendre des impulsions de tension, les tensions d'entrée , sont des niveaux de tension analogiques continus, qui sont par exemple fixes ou sensiblement fixes dans le temps. En fonctionnement, la tension de l'une des lignes conductrices communes SL ou SL' augmente et dépasse la tension sur l'autre ligne conductrice commune. Cela amènera l'un ou l'autre des transistors 810 et 812 à décharger progressivement vers la masse la ligne conductrice commune ayant la tension la plus faible. Lorsque la différence de tension entre les lignes conductrices communes SL et SL' dépasse la tension seuil , le comparateur 206 générera une pulsation de tension sur la tension de sortie , la durée de la pulsation de tension étant fonction du retard introduit par les circuits de retard 508, 508'. La comparaison de seuil est par exemple fonction de la structure du comparateur 206 et de la fuite de courant qui passe vers la masse à travers chacun des transistors 510 et 510'. Les deux circuits de retard 508, 508' et transistors 510, 510' provoquent en outre par exemple la réinitialisation de la tension sur les lignes conductrices communes SL et SL' à une tension proche de la tension de masse un retard après une transition de tension de la tension de sortie . En outre, la réinitialisation de la tension sur les lignes conductrices communes SL et SL' réinitialise à son tour la tension de sortie du comparateur 206.
Un exemple de l'évolution temporelle des tensions des lignes conductrices communes et de la tension , conformément au premier régime de fonctionnement 800, est représenté en .
Serveur, système
Selon un deuxième aspect, l’invention concerne le serveur 1 pour la mise en œuvre du procédé selon l’invention.
Ce serveur de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système 2 comprend des moyens de traitement de données 11, et généralement des moyens de stockage de données 12, par exemple stockant une base de séries temporelles observées de valeurs de ladite grandeur physique représentative des performances du système 2, et une interface 13.
Le moyens 11 sont configurés pour : Déterminer un résidu correspondant à ladite série temporelle observée à laquelle on a retiré une partie prédictible de ladite série temporelle observée ; Segmenter le résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra-segment ; Pour au moins le segment le plus récent, mettre en œuvre une analyse statistique de la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie sur le segment. Avantageusement, mettre en œuvre une action si une anomalie est détectée sur au moins un segment
Selon un troisième aspect, est proposé un ensemble du serveur 1 et du système 2. L’ensemble peut éventuellement comprendre des moyens 20 de monitoring du système 2, un équipement 3 de diagnostic et de maintenance du système 2 et/ou un terminal 4. Toutes ces éléments 1, 2, 20, 3, 4 peuvent être connectés via un réseau 10.
Selon un quatrième et un cinquième aspects, l’invention concerne un produit programme d’ordinateur comprenant des instructions de code pour l’exécution (en particulier sur les moyens de traitement de données 11) d’un procédé selon le premier aspect de l’invention de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système, ainsi que des moyens de stockage lisibles par un équipement informatique (une mémoire 12 du serveur 1) sur lequel on trouve ce produit programme d’ordinateur.
Clés cryptographiques en boite blanche L’invention concerne la cryptographie en boite blanche.
La cryptographie en boite blanche est un sujet d’étude reposant sur le postulat qu’un attaquant, qui cherche à identifier des données secrètes, chiffrées, pouvant être déchiffrées au moyen d’un algorithme de chiffrement, a un accès complet à plateforme d’exécution de l’algorithme et à l’implémentation logicielle de cet algorithme dans la plateforme : le code binaire est ainsi entièrement visible, il est modifiable, et l’attaquant peut également agir à souhait sur l’exécution logicielle à travers les divers systèmes de la plateforme tels que la mémoire, les appels aux processeurs, etc. L’exemple le plus classique est celui d’un attaquant ayant accès à un smartphone d’un tiers, dans lequel une application logicielle du smartphone chiffre ou déchiffre des données secrètes au moyen d’une clé de chiffrement et d’un algorithme cryptographique, par exemple du type « AES » (pour « Advanced Encryption Standard »). L’attaquant a les pleins pouvoirs sur le smartphone et sur l’algorithme, et peut ainsi chercher à lire le code binaire correspondant, le modifier, l’exécuter d’une manière spécifique, avec pour objectif à terme, connaissant le type d’algorithme utilisé, d’identifier la clé de chiffrement, de déchiffrer les données secrètes, et/ou de modifier ces données.
Pour empêcher cet attaquant d’accéder aux données secrètes et protéger l’intégrité du chiffrement dans ce contexte de boite blanche, on connaît dans l’état de la technique une méthode consistant à encoder des opérations élémentaires de l’algorithme de chiffrement (ou de déchiffrement). En effet, une opération élémentaire, issue de la combinaison entre un type d’algorithme connu et une clé de chiffrement spécifique, est généralement implémentée sous la forme d’une table de vérité indiquant les résultats possibles de l’opération en fonction des données d’entrée. Une opération d’encodage consiste donc à appliquer une transformation aléatoire à une opération élémentaire de manière à rendre illisible cette opération. Pour encoder une opération, on peut réaliser une substitution des éléments de la table de vérité, en combinant la table initiale avec une table de substitution aléatoire, de manière à obtenir une table « obfusquée » ou « fusionnée ». Alternativement, on peut appliquer à l’opération une transformation linéaire en combinant un vecteur représentant les données de sortie, ou une matrice correspondant à l’opération, à une autre matrice, dite matrice d’encodage, aléatoire elle-aussi. Un encodage peut aussi être une combinaison d’une ou plusieurs substitutions et d’une ou plusieurs matrices d’encodages. D’autres types d’encodage sont possibles. En outre, chaque opération élémentaire succédant à une opération élémentaire encodée est elle-même combinée avec un encodage dit « inverse », ou décodage, correspondant de façon inverse à l’encodage précédent. Il s’agit par exemple de la table de substitution inverse ou de la matrice inverse correspondantes à l’encodage précédent, de manière à ce que l’algorithme prévu initialement ne soit pas modifié par les encodages successifs. Dans tous les cas, on ne stocke dans la mémoire logicielle implémentant l’algorithme que les tables de vérité résultant de ces opérations d’encodage fusionnées avec les opérations élémentaires, c’est-à-dire les tables dites « obfusquées » ou « fusionnées ». De cette manière, l’attaquant, n’ayant accès qu’aux tables obfusquées, ne peut identifier quelle est l’opération élémentaire associée à chaque table et ne peut donc pas déterminer la clé cryptographique utilisée et déchiffrer les données secrètes.
Ces encodages, permettant d’encoder un algorithme de chiffrement (et/ou de déchiffrement) au sein d’une plateforme d’exécution non sécurisée, par exemple au sein d’un smartphone, sont dit « internes », puisqu’ils permettent de rendre illisible la clé de chiffrement utilisée au sein de la boite blanche formée par l’algorithme implémenté.
Cependant, cette boite blanche communique généralement d’une part avec un serveur situé à distance, et d’autre part avec une application tierce située sur la même plateforme. Par exemple, il est courant qu’un serveur chiffre des données et communique les données chiffrées au smartphone, puis que la boite blanche, c’est-à-dire l’algorithme de déchiffrement exécuté par le smartphone, soit utilisé pour déchiffrer les données avant que ces données déchiffrées ne soient communiquées au sein du même smartphone à une application tierce, dite « finale », qui a vocation à utiliser les données déchiffrées. Or, les applications finales sont développées par des sociétés tierces, indépendamment des boites blanches. Ces sociétés font donc l’acquisition de boites blanches commercialisées sous la forme de bibliothèques logicielles contenant l’algorithme de chiffrement et de déchiffrement, et une API (pour « Application Programming Interface ») permettant de contrôler l’algorithme et d’utiliser les données sortant de cet algorithme dans l’application finale développée. Dans ce cadre, les encodages « internes » au sein de la boite blanche n’empêchent pas les données déchiffrées de circuler, en clair, entre la boite blanche et l’application finale. De même, même si la clé cryptographique utilisée est désormais très difficile à identifier au sein de la boite blanche grâce aux encodages internes installés dans cette boite blanche, l’attaquant peut tenter de réaliser un portage du code, c’est-à-dire exporter l’intégralité du code de la boite blanche sur un autre périphérique pour l’y exploiter sans avoir à identifier la clé.
C’est pourquoi il est connu dans l’état de la technique d’implémenter, en plus de ces encodages internes, des encodages dits « externes », placés aux extrémités du canal de communication complet entre l’envoi des données et leur usage. Par exemple, tout d’abord au sein du serveur situé à distance, un premier encodage « externe » est appliqué à la dernière table de vérité de l’algorithme de chiffrement du serveur, que ce soit sous la forme d’une table de substitution, d’une matrice d’encodage ou d’une autre forme d’encodage aléatoire, de sorte que les données à communiquer au smartphone sont non seulement chiffrées comme prévu, mais également encodées avant d’être communiquées au smartphone. Puis, à l’entrée de la boite blanche, l’encodage inverse de l’encodage externe est appliqué à la première table de vérité de l’algorithme de déchiffrement, avant que les données ne soient traitées à travers l’algorithme de déchiffrement de la boite blanche et ses encodages internes. L’encodage inverse, qui est le décodage du premier encodage externe, fait donc partie de la boite blanche. Ensuite, un nouvel encodage aléatoire se fait à la sortie de la boite blanche, en appliquant ce nouvel encodage à la dernière table de vérité de la boite blanche. Là aussi, ce deuxième encodage fait dès lors partie de la boite blanche. En sortie, les données sont donc déchiffrées, mais encore encodées cette fois au moyen de ce nouvel encodage aléatoire, avant d’être communiquées à l’application tierce finale ayant vocation à les utiliser. Enfin, au sein de cette application tierce, l’encodage externe correspondant à l’inverse de l’encodage appliqué en fin de boite blanche permet de décoder au sein de l’application les données avant qu’elles ne soient utilisées par l’application.
Grace à ces encodages externes placés à l’extérieur de la boite blanche, même une fois déchiffrées, les données ne circulent pas « en clair » à l’extérieur de la boite blanche, elles restent encodées, donc protégées des manipulations d’un attaquant qui souhaiterait les intercepter. En outre, l’attaque consistant à porter l’intégralité du code de la boite blanche sur un autre périphérique ne fonctionne pas, puisque dans ce cadre le code de la boite blanche comprend en son sein un encodage à son entrée et un encodage à sa sortie. Sans les encodages inverses correspondant, qui sont situés à distance (au sein du serveur et au sein de l’application finale), il n’est pas possible de retrouver les données en clair. De plus, ajoutés aux encodages internes, ces encodages externes associés à des encodages en sortie et entrée de boite blanche rendent encore plus difficile d’identifier la clé de chiffrement de la boite blanche.
Il est à noter que l’ensemble de ces encodages, internes comme externes, sont aléatoires, c’est-à-dire qu’ils font appels à des transformations, substitutions ou autres manipulations inconnues de tous, de manière à ce qu’aucun attaquant ne puisse les retrouver.
Cependant, ce système comprend encore au moins deux inconvénients.
Le dispositif 1 est situé dans l’aéronef 100 à l’extérieur du réservoir de dihydrogène et du circuit de dihydrogène, dans des endroits où il est désiré que le dihydrogène ne puisse pas s’accumuler au-delà d’une certaine concentration.
En référence aux Figs. 2, 3 et 4, le dispositif 1 comprend notamment au moins une paire 2 de conducteurs électriques comprenant un premier conducteur électrique 4 et un deuxième conducteur électrique 6. Les conducteurs électriques 4 et 6 peuvent être des fils métalliques (tels que des fils de cuivre) ou des bandes métalliques.
Le dispositif 1 comprend en outre un contrôleur 200. Le dispositif 1 peut comporter plusieurs contrôleurs agissant de manière coordonnée pour implémenter les comportements décrits ici en relation avec le contrôleur 200.
Le contrôleur 200 est configuré de telle façon qu’en fonctionnement, il commande de façon répétitive l’application d’une différence prédéterminée de tension électrique entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6. Lors de l’application de ladite différence prédéterminée de tension électrique, le premier conducteur électrique 4 est alimenté avec une première tension électrique U4 et le deuxième conducteur électrique 6 est alimenté avec une deuxième tension électrique U6, les tensions U4 et U6 étant telles que la différence entre U4 et U6 correspond à ladite différence prédéterminée de tension électrique.
De façon particulière, l’une des tensions électriques U4 et U6, par exemple U6, peut correspondre à une tension de référence de 0 volts. La valeur de l’autre tension électrique, par exemple U4, correspond alors à ladite différence prédéterminée de tension électrique.
Le premier conducteur électrique 4 et le deuxième conducteur électrique 6, de chaque paire 2 de conducteurs électriques, sont espacés d’une distance 8 prédéfinie. Les valeurs de la distance prédéfinie 8 et de la différence prédéterminée de tension électrique sont choisies de sorte qu’un arc électrique 10 se forme entre les deux conducteurs électriques 4 et 6 lorsque la différence prédéterminée de tension électrique est appliquée entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6.
Pour mémoire, un arc électrique 10 est créé par ionisation d’un milieu isolant (ici de l’air) lorsque deux surfaces conductrices (ici, la paire 2 de conducteurs électriques 4 et 6) entre lesquelles il existe une différence de tension électrique sont suffisamment proches (ici, les conducteurs électriques sont espacés d’une distance 8 prédéfinie).
Le contrôleur 200 commande l’application de la différence prédéterminée de tension électrique entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6 de telle façon que l’arc électrique 10 se produise avec une puissance contrôlée, au vu de l’espacement entre les deux conducteurs électriques 4 et 6 défini par ladite distance 8 prédéfinie.
Pour cela, le contrôleur 200 commande par exemple une valeur maximale de courant électrique susceptible de circuler dans le premier conducteur électrique 4 et le deuxième conducteur électrique 6. La puissance de l’arc électrique 10, contrôlée par le contrôleur 200, est choisie de telle façon que l’énergie électrique dissipée dans l’arc électrique 10 soit supérieure d’une marge prédéterminée à l’énergie d’activation du dihydrogène (environ 17 milli-Joules). Cela garantit que l’arc électrique 10 permet de brûler le dihydrogène présent entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6. En outre, la puissance de l’arc électrique 10, contrôlée par le contrôleur 200, est choisie de telle façon que l’énergie électrique dissipée dans l’arc électrique 10 soit inférieure à une valeur maximale prédéterminée, par exemple choisie dans un intervalle compris entre 2 fois et 10 fois la valeur de l’énergie d’activation du dihydrogène, de préférence compris entre 2 fois et 5 fois la valeur de l’énergie d’activation du dihydrogène.
Dans le dispositif 1, lorsque l’air contient du dihydrogène issu notamment d’une fuite du réservoir de dihydrogène ou d’une canalisation de distribution de dihydrogène, l’arc électrique 10 permet de brûler le dihydrogène présent entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6, pour réduire la concentration en dihydrogène et former de l’eau. Cela évite notamment que du dihydrogène puisse s’accumuler dans des endroits non désirés de l’installation. Cela permet de réduire ou de retarder l’accroissement de la concentration en dihydrogène dans l’air. Le fait que les arcs électriques soient produits avec une puissance contrôlée de faible valeur permet une intégration sans impacts sur les éléments environnants, tels que des pièces mécaniques ou d’autres systèmes.
De façon préférée, le contrôleur 200 commande l’application de la différence prédéterminée de tension électrique entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6 selon un intervalle de temps, entre deux applications successives de la différence prédéterminée de tension électrique, compris entre 1 milliseconde et 10 secondes, de préférence entre 1 milliseconde et 2 secondes. Le reste du temps, aucune différence de tension n’est appliquée entre le premier conducteur électrique 4 et le deuxième conducteur électrique 6.
Agencement des conducteurs électriques en parallèle
Selon un mode de réalisation illustré sur la , le premier conducteur électrique 4 et le deuxième conducteur électrique 6 sont disposés côte à côte selon des directions parallèles.