INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Certaines des opérations élémentaires effectuées par une couche sont paramétriques, au sens où elles dépendent d’un ou plusieurs paramètres, qui constituent les paramètres du réseau de neurones et qui sont les paramètres à apprendre. Par exemple, l’opération élémentaire réalisée par une couche de convolution utilise des paramètres de poids.
Un réseau de neurones doit donc être entraîné de manière à apprendre les valeurs optimales de ces différents paramètres afin de réaliser efficacement la tâche qui lui a été assignée.
L’entrainement s’effectue généralement avec les données d’une base d’entrainement. Celle-ci peut par exemple comporter des instances labellisées. Une instance labellisée est une instance qui est associée avec une prédiction attendue. La comparaison entre la prédiction calculée par le réseau de neurones sur une instance et la prédiction attendue associée à cette instance permet, par l’intermédiaire de la fonction de coût (« Loss » en anglais), d’ajuster les valeurs des paramètres du réseau de neurones.
L’entraînement consiste généralement à réaliser plusieurs époques successives comprenant chacune une phase d’inférence (« Forward pass » en anglais) et une phase de rétropropagation (« backward pass » en anglais).
Le résultat de l’entrainement est donc un réseau de neurones entrainé (aussi dénommé « modèle entrainé » ou « modèle d’inférence »), c’est-à-dire dont les différents paramètres sont gelés à leurs valeurs optimales. Le réseau de neurones entrainé peut ensuite être utilisé pour réaliser la tâche assignée sur de nouvelles instances de données d’entrée.
Cependant, par exemple pour des applications embarquées, le réseau de neurones entrainé doit pouvoir fonctionner sur un circuit de calcul dont les ressources mémoires et/ou calculatoires sont réduites, ou tout au moins comptées.
Il y a donc un besoin pour des réseaux de neurones entrainés qui ont un usage restreint des ressources du circuit de calcul sur lequel ils sont implémentés.
Dans ce but, la quantification d’un réseau de neurones est le problème consistant à réduire le nombre de bits sur lequel sont codées les variables du réseau de neurones, que ce soit les paramètres du modèle entrainé, que les valeurs qui circulent à travers le modèle entrainé (notamment les valeurs d’activation).
La quantification permet par exemple de passer de variables codées en précision flottante (c’est-à-dire codées sur 32 bits), à des variables codées en précision réduite (c’est-à-dire codées sur 8, 4, 2 voire 1 bit(s)).
Puisqu’un réseau de neurones comporte plusieurs dizaines de milliers de variables, réduire le nombre de bits sur lequel chaque paramètre ou chaque valeur d’activation est codé permet de réduire l’espace mémoire nécessaire pour stocker le réseau de neurones entrainé, ainsi que les données de calcul intermédiaires (comme les valeurs d’activations) lors de l’exécution du réseau de neurones entrainé. En outre, cela permet de réduire l’usage du processeur, qui utilisera son module d’arithmétique sur des nombres entiers, plutôt que son module d’arithmétique sur des nombres flottants. En particulier, une précision de codage sur des mots de 1 bit correspond à des calculs en logique binaire, qui sont particulièrement simples à réaliser pour un processeur.
L’enjeu de la quantification est alors de conserver une performance proche de la performance optimale, tout en réduisant le coût mémoire et calculatoire du réseau de neurones, sachant que la performance optimale est obtenue pour ce même réseau de neurones mais avec des variables codées en précision flottante entrainé pour la tâche demandée.
Il existe deux grandes familles de techniques de quantification :
Selon un troisième aspect il est proposé un procédé de dimensionnement ou de fabrication d’un système propulsif comprenant un mécanisme de réduction couplant une première turbine et un rotor de soufflante pour entrainer le rotor de soufflante à une vitesse inférieure à une vitesse de la première turbine, et une deuxième turbine configurée pour tourner à une vitesse plus élevée que la première turbine, la deuxième turbine étant dimensionnée de sorte qu’un rayon moyen d’un alésage de la deuxième turbine respecte la formule suivante : où : R m_a est le rayon moyen de l’alésage de la deuxième turbine en millimètres ; FN est la poussée du rotor de soufflante mesurée lorsque le système propulsif est stationnaire en régime de décollage dans une atmosphère standard et au niveau de la mer et est exprimée en Newton (N) ; BPR est le taux de dilution du système propulsif et est mesuré lorsque le système propulsif est stationnaire en régime de décollage dans une atmosphère standard et au niveau de la mer ; et I = 0,16 millimètres par Newton (mm/N) et J = 28 millimètres.
La est une vue en coupe schématique d’un exemple de mécanisme de réduction selon une deuxième variante;
La est un exemple d’aéronef pouvant comprendre au moins un système propulsif conforme au premier ou au deuxième mode de réalisation; et
la est un logigramme montrant la mise en œuvre du procédé selon l’invention, côté unité électronique de calcul pour le traitement des signaux de localisation ;
la est un logigramme montrant la mise en œuvre du procédé selon l’invention, côté unité électronique de calcul pour le traitement des signaux de correction ;
DESCRIPTION DETAILLEE DE L’INVENTION En référence aux figures, l’invention est ici décrite dans une application aéronautique, le dispositif de navigation de l’invention étant embarqué dans un aéronef A ayant une structure comprenant un fuselage et des ailes et possédant un centre de gravité G.
L’unité de mesure inertielle 100 comprend un premier boîtier 101 renfermant des capteurs inertiels, à savoir des capteurs inertiels linéaires (plus précisément des accéléromètres 110) disposés selon les axes d’un repère de mesure [m] pour mesurer la « vitesse gravitationnelle » de ce repère (c’est-à-dire l’intégrale temporelle de la force spécifique présente au niveau du centre de ce repère) et des capteurs inertiels angulaires, ici des gyromètres 120, disposés selon les axes de ce repère pour mesurer la rotation du repère de mesure [m] par rapport à un repère inertiel [i]. Les capteurs inertiels ne fournissent pas des valeurs absolues mais des incréments représentatifs d’une variation de la grandeur mesurée par rapport à la précédente mesure. Les incréments de l’intégrale de la force spécifique sont ainsi représentatifs d’une variation des composantes de la vitesse gravitationnelle selon les trois axes du repère [m]. Les incréments de rotation sont ainsi représentatifs de la variation de l'intégrale dans le temps de la vitesse de rotation angulaire du repère de mesure [m] par rapport au repère inertiel [i] et sont fournis sous la forme de quaternions (quaternion de rotation Qi/m de passage de [m] à [i]), d’angles d’Euler, de matrices de rotation, ou de vecteurs de Bortz. Les capteurs inertiels fournissent ainsi des premiers signaux ou signaux primaires contenant des premières données représentatives d’une variation de vitesse gravitationnelle (mesure accélérométrique) et des deuxièmes données représentatives d’une variation d'angle (mesure gyrométrique). Classiquement, ces signaux sont fournis à une cadence comprise entre 100 Hz et 400 Hz.
Le premier boîtier 101 est reçu dans un deuxième boîtier 102 de l’unité de mesure inertielle 100. Le deuxième boîtier 102 contient également un circuit électronique de traitement 130 ayant des entrées reliées aux sorties des capteurs inertiels 110, 120 par exemple par des conducteurs électriques comme des pistes de circuit imprimé ou des câbles. Le circuit électronique de traitement 130 comprend ici au moins un processeur et une mémoire contenant un premier programme informatique qui est exécutable par le processeur et qui comprend des instructions agencées pour mettre en œuvre le procédé de l’invention. Ce premier programme sera détaillé plus loin.
L’unité électronique de calcul de navigation 200 est connue en elle-même et comprend un boîtier 201 renfermant au moins un processeur et une mémoire contenant un deuxième programme informatique qui est exécutable par le processeur et qui comprend des instructions agencées pour mettre en œuvre le procédé de l’invention. D’une manière générale, l’unité électronique de calcul de navigation 200 est agencée pour calculer une navigation à partir de signaux fournis par l’unité de mesure inertielle 100. Ce deuxième programme sera lui aussi détaillé plus loin.
L’unité de mesure inertielle 100 et l’unité électronique de calcul de navigation 200 sont physiquement séparées l’une de l’autre mais sont reliées pour échanger des signaux. Ainsi, le circuit électronique de traitement 130 a au moins une sortie reliée à au moins une entrée de l’unité électronique de calcul de navigation 200 par une liaison de données 300. La liaison de données 300 est ici une liaison Ethernet par exemple conforme à la norme ARINC664.
L’unité de mesure inertielle 100 est agencée pour fournir à l’unité électronique de calcul de navigation deux types de signaux : des signaux de localisation et des signaux de correction qui seront successivement détaillés ci-après.
En tant que liste non exhaustive d'exemples plus spécifiques, le support de stockage lisible par ordinateur 132 est un dispositif codé mécaniquement, tel que des cartes perforées ou des structures en relief dans une gorge, une disquette, un disque dur, une mémoire morte (ROM), une mémoire vive (RAM), une mémoire effaçable programmable en lecture seule (EROM), une mémoire effaçable électriquement et lisible (EEPROM), un disque magnéto-optique, une mémoire vive statique (SRAM), un disque compact (CD-ROM), un disque numérique polyvalent (DVD), une clé USB, un disque souple, une mémoire flash, un disque à semi-conducteur (SSD) ou une carte PC telle qu'une carte mémoire PCMCIA.
Un programme d'ordinateur est stocké sur le support de stockage lisible par ordinateur 132. Le programme d'ordinateur comprend une ou plusieurs séquences d'instructions de programme mémorisées.
De telles instructions de programme, lorsqu'elles sont exécutées par l'unité de traitement de données 120, entraînent l'exécution d'étapes du procédé.
Dans chaque cas, le produit programme d'ordinateur 112 comprend des instructions qui peuvent être chargées dans l'unité de traitement de données 120 et adaptées pour provoquer l'exécution du procédé lorsqu'elles sont exécutées par l'unité de traitement de données 120. Selon les modes de réalisation, l'exécution est entièrement ou partiellement réalisée soit sur le dispositif 110, c'est-à-dire un ordinateur unique, soit dans un système distribué entre plusieurs ordinateurs (notamment via l’utilisation de l’informatique en nuage).
Procédé et dispositif d’identification des risques de cyberattaques La présente description concerne de façon générale le domaine de la cybersécurité des systèmes industriels.
Un système industriel intègre généralement en partie plusieurs automates programmables industriels (PLC – de l’anglais « Programmable Logic Controller ») configurés pour, par exemple, faire fonctionner des actionneurs d’une partie opérationnelle du système industriel.
D’un côté, la sûreté du système industriel (protection des personnes, de l'environnement, des biens et du service rendu) est assurée par des technologies opérationnelles telles que des solutions matérielles et/ou logicielles surveillant et contrôlant des processus et des dispositifs du système industriel.
D’un autre côté, la sécurité du système industriel (protection de l’intégrité, de la confidentialité et de la disponibilité des données) est contrôlée par des technologies de l’information, nécessitant par exemple des techniques de cybersécurité.
Cependant, l’interconnexion des technologies de l’information avec et des technologies opérationnelles augmente la surface d’attaque des systèmes industriels.
Les systèmes industriels étant de plus en plus fréquemment attaqués, il existe un besoin technique de faire converger l’analyse de la sûreté et de la sécurité desdits systèmes.
Un mode de réalisation prévoit un procédé d’identification des risques de cyberattaques sur un automate programmable, le procédé étant implémenté par un dispositif de traitement de données comprenant une unité de traitement et une mémoire, le procédé comprenant : - la génération, par le dispositif, d’une représentation numérique d’un transducteur fini minimal sur la base d’une spécification d’une logique automate de l’automate programmable, le transducteur fini minimal comprenant un ensemble d’états sources, un ensemble d’états destination et un ensemble de transitions, chaque transition allant d’un état source vers un état destination sur la base d’une valeur de donnée d’entrée ; - la génération et le stockage dans la mémoire d’un deuxième fichier informatique, sur la base d’un premier fichier informatique identifiant un sous-ensemble d’états sensibles parmi l’ensemble d’états, le deuxième fichier comprenant une liste de transitions critiques associées aux états sensibles, et pour chaque transition, une liste des données d’entrée ; et - la génération et le stockage dans la mémoire d’un quatrième fichier informatique, sur la base d’un troisième fichier informatique indiquant la présence ou non d’un risque de corruption sur au moins chaque donnée d’entrée comprise dans le deuxième fichier, le quatrième fichier indiquant, parmi les données d’entrée, des données d’entrée à protéger qui sont à la fois associées à des transitions critiques et à un risque de corruption.
Selon un mode de réalisation, la génération du deuxième fichier informatique comprend : - l’identification dans la représentation numérique du transducteur fini minimal, par une unité de traitement du dispositif, de premières transitions allant d’un état source non identifié comme sensible, dans le premier fichier informatique, vers un état destination identifié comme sensible ; et - l’écriture dans le deuxième fichier des premières transitions.
Selon un mode de réalisation, la génération du deuxième fichier informatique comprend en outre : - l’identification dans le transducteur fini, par l’unité de traitement, de deuxièmes transitions allant d’un état source identifié comme sensible dans le premier fichier informatique vers un état destination non identifié comme sensible ; et - l’écriture dans le premier fichier des deuxièmes transitions.
Comme indiqué plus haut, cette période de temporisation d_202 correspondra à une période de stabilisation, pendant laquelle se stabilise le système, en principe fermé, que constitue le fluide de gonflage qui est captif de la chambre de gonflage 11 et qui est livré à lui-même, en l’absence de régulation active, suite à la fermeture de la vanne d’admission 21.
En particulier, la temporisation permettra de différer la mesure de la pression de référence P_ref après le passage et l’atténuation, voire l’extinction, de perturbations transitoires qui résultent de l’opération de fermeture de la vanne d’admission 21.
Par exemple, tel que cela est visible sur le graphique de la , la temporisation permettra de différer la mesure de la pression de référence P_ref après le passage d’un éventuel dépassement 28, c’est-à-dire d’une surpression temporaire par rapport au seuil que représente la pression de test P_test, dépassement 28 qui résulte de l’inertie due au temps de réponse en fermeture de la vanne d’admission 21 ainsi qu’au temps de réponse du capteur de pression 26 et de la chaîne d’acquisition correspondante du dispositif de mesure de pression 25, car ces temps de réponse laissent se prolonger la phase de montée en pression très rapide initiée par la sous-étape (S201) de regonflage partiel.
Ainsi, la valeur de la pression de référence P_ref qui sera effectivement mesurée et utilisée comme référence pour détecter d’éventuelles fuites correspondra à une valeur stabilisée, non polluée par des perturbations transitoires telles qu’un dépassement ou des oscillations parasites.
On notera que, en pratique, la pression de référence P_ref, telle qu’elle est observable au terme de la temporisation, et plus globalement au terme de la sous-étape (S202) de stabilisation, peut, selon le cas, et notamment en fonction du volume de la membrane et de la température, être soit inférieure, soit supérieure, soit sensiblement égale à la consigne que représente la pression de test P_test. La représentation de la , sur laquelle la pression de référence P_ref apparaît inférieure à la pression de test P_test, n’est donc pas restrictive.
De préférence, la période de temporisation d_202 est choisie égale ou supérieure à 2 secondes, préférentiellement égale ou supérieure 3 secondes, et plus préférentiellement égale ou supérieure à 4 secondes.
Ainsi, la valeur limite basse de la durée de la période de temporisation d_202 est suffisamment longue pour que l’on soit assuré d’avoir laissé passer les éventuelles perturbations transitoires liées à l’actionnement en fermeture de la vanne d’admission 21, au temps de réaction de ladite vanne d’admission 21 et du dispositif de mesure de pression 25, et le cas échéant au comportement visco-élastique de la membrane de cuisson 10, telles que par exemple un dépassement 28 de la pression interne au-delà de la valeur de pression de test P_test ou des oscillations amorties de la pression interne.
D’autre part, et notamment en considération de l’une ou l’autre des valeurs limites basses de période de temporisation d202 susmentionnées, la période de temporisation d202 est de préférence également inférieure ou égale à 60 secondes, préférentiellement inférieure ou égale à 30 secondes, plus préférentiellement inférieure ou égale à 20 secondes, voire inférieure ou égale à 10 secondes.
Ainsi, la valeur limite haute de la période de temporisation est suffisamment courte pour ne pas prolonger inutilement la sous-étape (S202) de stabilisation, et par conséquent pour ne pas retarder inutilement la sous-étape (S203) d’observation et donc l’opération effective de recherche de fuite à proprement parler.
En pratique, dans la plupart des cas, la période de temporisation d_202 sera comprise entre 4 secondes et 30 secondes.
A titre d’exemple, la période de temporisation d_202 peut être égale à 5 secondes.
Suite à la sous-étape (S202) de stabilisation, l’étape (S200) de test comprend une sous-étape (S203) d’observation, au cours de laquelle on observe comment évolue la pression interne régnant dans la chambre de gonflage 11 sur une durée prédéterminée dite « période d’observation » d_203, afin d’identifier une évolution de la pression interne, par rapport à la pression de référence P_ref, qui soit représentative d’une situation de fuite.
La sous-étape (S203) d’observation suit avantageusement immédiatement la sous-étape (S202) de stabilisation, et débute donc à l’instant t2 où l’on a acquis la mesure de la pression de référence P_ref, et qui marque la fin de la période de temporisation d_202 et de de ladite sous-étape (S202) de stabilisation.
De préférence, la période d’observation d_203 impartie est égale ou supérieure à 5 secondes, préférentiellement égale ou supérieure à 10 secondes, plus préférentiellement égale ou supérieure à 20 secondes.
Ainsi, la valeur limite basse de la durée de la période d’observation d_203 est suffisamment longue pour que l’on puisse obtenir une variation de la pression interne, notamment une chute de la pression interne, qui soit suffisamment importante pour être détectable, et ce même dans le cas où le débit de fuite est faible, en raison par exemple de la petitesse de la perforation affectant la membrane de cuisson.
D’autre part, et notamment en considération de l’une ou l’autre des valeurs limites basses de période d’observation d_203 susmentionnées, la durée de la période d’observation d_203 est de préférence inférieure ou égale à 5 minutes, préférentiellement inférieure ou égale à 3 minutes, plus préférentiellement inférieure ou égale à 60 secondes, voire inférieure ou égale à 45 secondes.
la représente schématiquement un système autonome à distance et un dispositif de sécurisation d’un système de fichiers d’un tel système autonome à distance selon un mode de réalisation de l’invention ;
la est un organigramme d’un procédé de sécurisation d’un système de fichiers d’un système autonome à distance selon un mode de réalisation de l’invention ;
la illustre les effets de sécurisation associés à chaque étape du procédé illustré par la .
Comme indiqué précédemment, la représente schématiquement un système autonome à distance 10 et un dispositif de sécurisation d’un système de fichiers d’un tel système autonome à distance selon un mode de réalisation de l’invention.
Plus précisément, un tel système autonome à distance 10 comprend tout d’abord, et utilise, un média 12, présentant une double partition de type A 14, et B 16, permettant des mises à jour A/B. Chaque partition A 14 et B 16 dispose de son système de fichiers.
Par ailleurs, ledit système autonome à distance 10 étant en outre propre à être mis à jour par mise à jour atomique tel que définie précédemment.
Le système autonome à distance 10 comprend en outre, et utilise, au moins un système d’exploitation 18 dont le noyau 20 est par la suite appelé kernel. Ce système d’exploitation 18 est associé au système de fichiers dudit système autonome à distance 10.
En complément optionnel, ledit système d’exploitation 18 est un système d’exploitation 18 Linux utilisant le mécanisme de signature fournit par IMA/EVM Linux, pour compiler la clé publique avec le kernel conformément à ce système IMA et au module EVM de Linux, pour assurer la vérification.
Le système autonome à distance 10 comprend également un outil 22 de démarrage sécurisé (de l’anglais secure boot ).
Selon la présente invention, le système autonome à distance 10 comprend également un dispositif de sécurisation 24 du système de fichiers du système autonome à distance 10.
Ledit dispositif de sécurisation 24 est configuré pour signer ledit système de fichiers en s’appuyant sur une cryptographie asymétrique à deux clés comprenant une clé publique et une clé privée, la clé publique étant par la suite intégrée dans le kernel 20 dudit système d’exploitation 18.
Selon la présente invention, le dispositif de sécurisation 24 est spécifiquement configuré pour générer une clé privée dont la durée de vie est limitée, les deux clés publique et privée étant regénérées par le dispositif de sécurisation 24 à chaque production d’une nouvelle mise à jour atomique dudit système autonome à distance 10 (ce qui revient à une regénération des deux clés publique et privée à chaque production d’une version d’un système autonome à distance 10, N systèmes autonomes à distance selon cette version pouvant être installés sur N machines distinctes par exemple) .
En complément optionnel avantageux, ladite clé privée est configurée pour signer une unique fois ledit système de fichiers.
Pour signer ledit système de fichiers s’appuyant sur une cryptographie asymétrique à deux clés comprenant une clé publique et une clé privée, le dispositif de sécurisation 24 comprend, selon le mode de réalisation de la , un premier module de génération 26 configuré pour générer la clé publique puis pour l’intégrer dans le kernel 20 dudit système d’exploitation 18.
De plus, selon le mode de réalisation de la , le dispositif de sécurisation 24 comprend en outre un deuxième module de génération 28 configuré pour générer la clé privée de signature dudit système de fichiers, la durée de vie de ladite clé privée étant limitée.