INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
La politique de confidentialité mise en œuvre par le dispositif peut être redéfinie à intervalle. Cela peut nécessiter de reprogrammer le module de filtrage pour qu’il détermine la valeur d’indicateurs différents sur les paquets entrant.
A ce propos, le module de filtrage est adapté pour associer un ou plusieurs indicateurs à un paquet courant. Cet indicateur peut être déterminé à partir du paquet courant uniquement, mais pourrait également dépendre d’un traitement sur une succession de paquets, comportant le paquet courant et un certain nombre de paquets précédents. L’indicateur pourrait être par exemple une valeur moyenne sur cette succession de paquets ou encore le résultat d’une comparaison entre le paquet courant et un ou plusieurs paquet(s) précédent(s).
En variante, le dispositif de protection ne comporte pas de module de filtrage et la politique de confidentialité se réduit à crypter les paquets d’un flux et chiffrer la clé de session TEK avec une clé de chiffrage KEK adaptée au destinataire.
Avantageusement, lorsque les données de confidentialité sont identiques d’un paquet vidéo à l’autre pour une séquence de paquets vidéo, un paquet de métadonnée de confidentialité n’est émis que pour le premier de ces paquets vidéo. Le destinataire du flux sait alors qu’il doit associer un paquet vidéo avec les données de confidentialité du dernier paquet de métadonnées reçu.
Il est à noter que le standard « Motion Imagery Standard Profile » MISP ST 0102.12 STANAG 4609 (ou « profil standard d'imagerie du mouvement » en français) standardise l’introduction de métadonnées de contexte dans les flux vidéo. Certains champs de ces métadonnées indiquent le niveau de confidentialité des paquets vidéo associés.
Le paquet de métadonnées de confidentialité élaboré par le module 35 (ou le module 135) pourrait reprendre tout ou partie des champs définis par le standard MISP, notamment pour être compatible de ce standard. Des champs complémentaires peuvent donc être envisagés.
Par ailleurs, l’ETSI a spécifié des moyens de protection des flux vidéo dans la norme ETSI TS101197-DVB « SIMULCRYPT ».
Dans un même flux multiplexé, la solution SIMULCRYPT permet de transmettre des « programmes » chiffrés et d’autres en clair, un « programme » étant une collection de paquets de différentes natures (audio, vidéo, …) constituant un flux cohérent (une émission ou un film par exemple). Ainsi, un programme peut être transmis soit non-crypté, soit crypté. Il s’agit donc d’un cryptage binaire (tout ou rien), qui ne permet pas la granularité de protection proposée par la présente invention.
De plus, contrairement à la présente invention, SIMULCRYPT ne permet pas de crypter un tronçon audio avec une clé différente de celle utilisée pour crypter le tronçon vidéo associé.
Plus important encore, SIMULCRYPT chiffre un flux pour le protéger en confidentialité. En revanche, la présente invention est d’abord une solution permettant de lier fortement des métadonnées de confidentialité à des données, et de protéger les données en confidentialité.
Un inconvénient de cette approche réside dans la difficulté à paramétrer les analyses de programme, en particulier pour identifier précisément les dépendances des plateformes et des environnements et pour identifier les modèles (de mémoire, d’exécution, …). Un autre inconvénient réside dans une mise en œuvre séquentielle des analyses, qui fait qu’elles ne peuvent bénéficier de résultats précédents.
Aussi, le problème de l’analyse du comportement sémantique de codes logiciels reste à traiter. Il réside alors un besoin de réaliser des inférences sémantiques sur des bases de données de codes logiciels, qui ne présente pas les inconvénients des solutions existantes.
Un objet de la présente invention est un procédé d'inférence sémantique pour bases de données logicielles.
Avantageusement le procédé de l’invention permet l’inférence à grande échelle des comportements sémantiques de codes logiciels, et en particulier l’inférence de leurs caractéristiques intrinsèques (flots de données, flots de contrôle, etc.) et de leurs caractéristiques extrinsèques (dépendances, utilisations, etc.).
Le procédé de l’invention repose sur des capacités d’analyse de code et de construction de modèles, où les paramètres d’analyse sont générés automatiquement dans une phase dédiée, soit par des techniques d’aléa, d’heuristique, ou d’apprentissage machine.
Avantageusement, le procédé de l’invention, par un enchainement d’étapes itératives, permet un enrichissement au fur et à mesure des bases de données logicielles, grâce aux résultats des inférences sémantiques réalisées aux étapes précédentes.
De manière générale, les caractéristiques distinctives et avantageuses du procédé de l’invention sont :
- une mise en œuvre de techniques de génération automatique, en particulier pour la génération de paramètres de prétraitement, de paramètres d’analyse, la génération des domaines d’entrée, et des spécifications ;
- une utilisation d’analyses formelles, considérées alors comme « correctes », c’est-à-dire produisant des résultats mathématiquement démontrés, pour effectuer des inférences sémantiques fiables ;
- un enrichissement itératif des bases de données logicielles avec les résultats des inférences sémantiques (flots de données, spécifications fonctionnelles, architecture des composants et leurs relations) ;
- une approche conjointe combinant l’utilisation de générateurs aléatoires, et l’utilisation de générateurs basés sur des techniques d’apprentissage, bénéficiant des résultats des générateurs aléatoires.
L’approche proposée permet le passage à l’échelle des techniques d’inférence sémantique. Les domaines d’application industrielle de l’invention sont alors multiples. Les domaines d’utilisation concernent potentiellement l’ensemble des cycles de développement logiciels. Les applications qui peuvent tirer un avantage majeur sont celles dans les domaines dits critiques que sont les transports, l’énergie, la santé, la défense.
Pour obtenir les résultats recherchés, il est proposé un procédé d'inférence sémantique pour bases de données logicielles.
Le procédé d’analyse de bases de données massive de codes logiciels est mis en œuvre par ordinateur, l’ordinateur comprenant au moins un processeur couplé à une mémoire stockant des instructions de code non transitoires qui, lorsqu'elles sont exécutées, amènent le processeur à effectuer des étapes consistant à :
- recevoir une famille de codes logiciels à analyser, ladite famille de codes logiciels étant un regroupement par similarités d’une pluralité de codes logiciels stockés dans une base de données massive de codes logiciels ;
Le substrat 10 comporte ainsi une couche 11 en support en matériau semi-conducteur, une couche isolante enterrée 12 disposée sur la couche support 11 et une couche superficielle 13 semi-conductrice disposée sur la couche isolante. Le substrat 10 est typiquement un substrat SOI dont la couche superficielle 13 est en silicium, en particulier du 28 Si lorsque cette couche est amenée à accueillir des ilots quantiques formant des qubits de spin d’électrons.
La couche isolante 12 et la couche de support 11 sont typiquement, respectivement, une couche en oxyde de silicium communément appelée de « BOX » (pour « Burried Oxide » ou « oxyde enterré ») et une couche semi-conductrice, par exemple à base de silicium. L’épaisseur de la couche superficielle 13 est par exemple comprise entre 5 nm et 50 nm, typiquement de l’ordre de 10 nm. L’épaisseur de la couche isolante enterrée 12 est par exemple comprise entre 15 nm et 150 nm.
D’autres matériaux semi-conducteurs peuvent être envisagés pour la couche semi-conductrice superficielle 13. Pour des qubit de spin de trous, du silicium peut être également employé ou, selon une variante, on peut opter pour une hétérostructure de type SiGe relaxé/Germanium contraint/SiGe relaxé, la couche de qubits de trou étant celle en germanium.
Ensuite, on peut définir dans la couche superficielle 13 au moins un motif de zone active, ici sous forme d’un bloc semi-conducteur 14, typiquement de forme oblongue ou de barreau, par exemple parallélépipédique, et qui s’étend principalement dans une première direction. Cela peut être réalisé par photolithographie et gravure de la couche superficielle 13, en particulier une gravure plasma avec arrêt sur la couche isolante 12.
On forme ensuite des zones d’isolation 15A, 15B de part et d’autre de la zone active. Les zones d’isolation 15A, 15B peuvent être de type STI (pour « Shallow Trench Isolation » ou « tranchées d’isolation peu profondes »). Les zones d’isolation 15A, 15B sont par exemple à base d’oxyde de silicium. Les zones d’isolation 15A, 15B peuvent être réalisées par gravure puis dépôt de matériau isolant. Cela peut être suivi d’une éventuelle planarisation pour retirer une épaisseur de matériau isolant et mettre les faces supérieures des zones d’isolation 15A, 15B au même niveau ou sensiblement au même niveau que la face supérieure du bloc semi-conducteur 14.
Dans l’exemple de réalisation particulier illustré sur les figures 2A, 2B (donnant respectivement une vue en coupe et une vue en perspective) un faible écart de niveau, par exemple compris entre 0 et 20 nm, est prévu entre d’une part les faces supérieures des zones d’isolation 15A, 15B et d’autre part la face supérieure du bloc semi-conducteur 14.
On réalise ensuite un empilement de grille recouvrant le bloc semi-conducteur 14 et les zones d’isolation 15A, 15B. Cet empilement est typiquement formé d’au moins une couche de diélectrique de grille et d’une ou plusieurs couches de matériau(x) de grille semi-conducteur(s) dopé et/ou métallique(s).
Par exemple le diélectrique de grille est formé d’un oxyde de silicium. Un diélectrique dit « high-k », autrement dit de constante diélectrique k élevée tel que par exemple du HfO 2 peut être également employé. Le diélectrique peut lui-même être surmonté d’une couche métallique telle que par exemple du TiN surmontée d’une couche de polysilicium dopé pour former les matériaux de grille.
L’empilement de grille peut être revêtu d’au moins une couche de masquage, en particulier d’au moins une couche de masque dur formée typiquement d’au moins une couche isolante, par exemple en SiN et/ou en SiO 2 .
On définit ensuite par gravure dans la couche de masquage une pluralité de blocs 24a, 24c, 24d, 24e de masquage afin de réaliser une pluralité de blocs 22a, 22b, 22c, 22d, 22e distincts dans l’empilement de grille. Des gravures anisotropes et en particulier à l’aide d’un plasma sont effectuées pour réaliser les blocs 24a, 24b, 24c, 24d, 24e de masquage, puis les blocs de grilles 22a, …, 22e distincts sous ces derniers et reproduisant les motifs de ces derniers.
Une structure obtenue à l’issue de cette étape est illustrée sur les figures 3A, 3B, donnant respectivement une vue en perspective, une vue en coupe selon un axe A (donné sur la vue de dessus de la ). Les blocs de grilles 22a, …, 22e ont dans cet exemple chacun une forme de barreau parallélépipédique. Ces blocs de grilles 22a, …, 22e s’étendent typiquement dans une direction (mesurée parallèlement à l’axe x du repère orthogonal [O ; x ; y ; z]) orthogonale à la direction dans laquelle le bloc semi-conducteur 14 s’étend. Les blocs 22a, …, 22e de grille sont de préférence régulièrement espacés avec une répartition dense, par exemple telle que le pas de répartition Pr est de l’ordre de 20 à 100 nm. Chaque bloc de grille 22a, 22b, 22c, 22d, 22e comprend une portion centrale 121 située sur une région du bloc semi-conducteur 14, cette région étant destinée à former un ilot quantique. Chaque bloc de grille 22a, 22b, 22c, 22d, 22e comporte ici également des portions 123, 122 d’extrémité de part et d’autre de la portion centrale 121 et situées respectivement sur la zone d’isolation 15B et la zone d’isolation 15A. On a donc ici dans cet exemple autant d’ilots 14A, 14B, 14C, 14D, 14E quantiques que de blocs de grilles.
Un masque diélectrique 27 peut être ensuite formé sur et entre les blocs de grille. Le masque diélectrique 27 peut être ici réalisé par dépôt d’une couche diélectrique, effectué de sorte à recouvrir le bloc semi-conducteur 14, les blocs 22a, …, 22e de grilles et les espaces entre les blocs 22a, …, 22e de grilles. Dans l’exemple illustré sur les figures 4A, 4B, (donnant respectivement une vue en perspective, une vue en coupe selon l’axe A longitudinal), le masque diélectrique 27 recouvre également les zones d’isolation 15A, 15B.
Le matériau du masque diélectrique 27 est par exemple choisi parmi l’un des matériaux suivants : SiO2, SiN, SiCO, SiBCN, SiOCN. Le procédé de dépôt du masque diélectrique 27 est de préférence conforme, et en particulier de type ALD (pour « Atomic Layer Deposition » ou « dépôt de couche atomique ») afin de remplir les espaces inter-grilles sans création de défaut de remplissage.
On effectue ensuite (figures 5A, 5B donnant respectivement une vue en perspective, une vue en coupe selon l’axe longitudinal A), une gravure de cette couche diélectrique de sorte à ne préserver le masque diélectrique 27 que sur une région 125 des blocs 22a, …, 22e de grille qui comprend la portion centrale 121 et une partie des portions 122, 123 d’extrémité des blocs de grille. Le masque diélectrique 27 est également préservé entre les régions 125 respectives de ces blocs 22a, …, 22e de grille.
On retire le masque diélectrique 27 de faces supérieures de portions d’extrémité 223 des blocs 22a, …, 22e et de portions 148, 149 dites d’extrémité du bloc semi-conducteur 14 situées de part et d’autre d’une portion centrale 140 du bloc semi-conducteur 14 et de l’ensemble des blocs 22a, …, 22e de grille et qui sont destinées à accueillir des réservoirs de charges. Le masque diélectrique 27 est préservé sur une portion centrale 140 du bloc semi-conducteur 14 dans laquelle les ilots sont destinés à être formés.
Pour compléter la formation des réservoirs de charges sur les portions 148, 149 du bloc semi-conducteur 14, on peut ensuite faire croitre par épitaxie une ou plusieurs couches de matériau(x) semi-conducteur(s) 33 sur les parties 14’, 14’’ dévoilées du bloc semi-conducteur 14 (figures 6A et 6B). Après gravure des blocs 24a, 24b, 24c, 24d, 24e de grilles, dans un cas particulier de mise en oeuvre où du diélectrique de grille recouvre les parties 14’, 14’’ du bloc semi-conducteur 14, on retire le cas échéant, cette couche de diélectrique de grille préalablement à la croissance par épitaxie des réservoirs de charges. Pour cela, une étape de nettoyage pré-épitaxie est typiquement réalisée par exemple à base de HF dilué.
La illustre schématiquement un dispositif permettant de mettre en œuvre le procédé de l’invention ;
La est un organigramme des étapes générales d’un procédé d’analyse de bases de données massive de codes logiciels selon un mode de réalisation de l’invention ;
La est un organigramme illustrant de manière plus détaillée les étapes itératives du procédé de l’invention, selon un mode de réalisation ;
La est un organigramme illustrant de manière plus détaillée, le déroulé d’une analyse sémantique selon un mode de réalisation du procédé de l’invention ;
La est un organigramme illustrant de manière plus détaillée, le déroulé d’une analyse architecturale selon un mode de réalisation du procédé de l’invention.
Description détaillée de l’invention La illustre schématiquement un dispositif 100 permettant de mettre en œuvre le procédé d’analyse de bases de données logicielles selon l’invention.
Le dispositif 100 dans une implémentation générique comprend un système 10 de type ordinateur ayant des capacités de stockage et de traitement de données. Il comprend entre autres éléments, un processeur 12 couplé à une mémoire 14 qui comprend des instructions de code permettant d’effectuer les étapes du procédé de l’invention, lorsque les instructions sont exécutées. Les instructions de code peuvent être produites sous la forme d’un programme d’ordinateur qui peut être installé sur le système 10 ou être lu par le système 10 depuis un support lisible, tangible et non transitoire, tel qu'une mémoire magnétique, optique ou électronique, ou être accéder à distance vis un réseau par exemple. Certaines fonctions du processeur 12 peuvent être exécutées par des circuits logiques programmables appropriés.
Le système 10 comprend des moyens (non illustrés) pour accéder à (i.e. transmettre vers et recevoir de) une base de données de codes logiciels 16. Dans le contexte de mise en œuvre de l’invention, la base de données de codes logiciels 16 est une base massive stockant un volume très important de codes logiciels de toute nature, dont les caractéristiques en termes de techniques de programmation, de langages de programmation, d’architectures, d’applications, peuvent être très hétérogènes.
Le procédé de l’invention vise à faciliter les analyses sémantiques et les analyses architecturales des codes contenus dans de telles bases de données, en inférant les différentes relations, dépendances, pouvant exister entre les objets contenus dans les bases de données.
Le processeur 12 est couplé à une mémoire 14 qui comprend différents modules fonctionnels pour opérer le procédé de l’invention. Un module de sélection de code 102 permet de fournir à un module de génération de paramètres de caractérisation 104, un ensemble de codes sélectionnés, issus de la base de données 16.
Dans un mode de réalisation, l’ensemble de codes sélectionnés est un regroupement d’une pluralité de codes par similarités, donnant une famille de codes, selon des étapes qui sont décrites en relation à la .
Dans une variante de réalisation, les regroupements de codes sont effectués par un sous-module fonctionnel du module de sélection 102. Dans une autre variante de réalisation, les regroupements de code sont effectués par un dispositif fonctionnel externe, et le système 10 reçoit une famille de codes à analyser.
Le module de génération de paramètres de caractérisation 104 opère une caractérisation des codes regroupés dans une famille de codes logiciels fournie par le module de sélection de code 102. Le module de génération de paramètres de caractérisation 104 opère des étapes décrites en relation aux figures 3 et 4, pour générer des paramètres caractérisant la famille de codes logiciels, et pour effectuer un prétraitement des codes avant de procéder à leur analyse par un module d’analyse sémantique 106 et un module d’analyse architecturale 108. Chaque module d’analyse (106, 108) opère des étapes décrites en relation aux figures 3, 5 et 6.
La montre sur un organigramme, les étapes générales d’un procédé d’analyse de bases de données massive de codes logiciels selon un mode de réalisation de l’invention.
Le procédé 200 débute par une étape 202 consistant à recevoir ou à constituer une famille de codes logiciels à analyser qui regroupe par similarités, une pluralité de codes logiciels stockés dans une base de données massive de codes logiciels (16).
Plus précisément, ont été représentés dans cette figure deux instants consécutifs d’indices et . A l’instant , le codeur spatio-temporel reçoit la trame de données radar et, à partir de son état interne (sa mémoire), fournit au décodeur un ensemble de caractéristiques spatiales . En outre, il met à jour son état interne à partir de la trame de données radar et de son état courant . L’état interne mis à jour est également fourni au décodeur . Celui-ci prédit à partir des caractéristiques spatiales et de l’état de l’encodeur mis à jour, , une cartographie des objets présents dans la scène, . Le processus se poursuit de manière itérative comme illustré à l’instant suivant, .
L’idée à la base de la présente invention est de combiner dans le codeur spatio-temporel au moins un réseau de neurones convolutionnel ou CNN et un réseau de neurones récurrent ou RNN. Le réseau de neurones convolutionnel a pour objet d’extraire des informations « spatiales » dans les trames de données radar, le terme « spatial » se référant ici aux variables représentées dans ces trames (par ex. RA, AD, RD pour la première couche) et le réseau de neurones récurrent opérant sur les informations spatiales ainsi extraites.
Avantageusement, le codeur spatio-temporel pourra présenter une pluralité de réseaux CNN et RNN alternés en série. En effet, un réseau CNN permet de réduire la dimension de son entrée afin que ne garder qu’une représentation pertinente et condensée de celle-ci alors qu’un réseau RNN permet de gérer conjointement l’information spatiale et temporelle en conservant dans son état interne la mémoire des entrées passées. Dans le cas présent, le réseau RNN permet d’analyser la dépendance temporelle entre les trames de données radar.
L’architecture codeur-décodeur d’un système de détection d’objet équipé d’un tel codeur spatio-temporel est représentée schématiquement en .
Le codeur spatio-temporel comporte [ étage(s) en cascade, chaque étage étant constitué d’un réseau CNN et d’un réseau RNN, arrangés en série. L’état du codeur spatio-temporel à l’instant donné est alors défini par les états internes respectifs, à cet instant, des réseaux RNN des différents étages, autrement dit :
où sont les états internes respectifs des réseaux RNN appartenant aux étages du codeur spatio-temporel.
L’ensemble des caractéristiques spatiales et l’état du codeur spatio-temporel (autrement dit des états des réseaux RNN qu’il comprend, sa mémoire) sont fournis au décodeur .
Les réseaux de neurones CNN pourront être avantageusement des réseaux à convolutions séparables.
En particulier, les réseaux de neurones CNN pourront être avantageusement choisis du type Inverted Residual Bottleneck, désignés dans la suite par IR. On pourra trouver une description détaillée d’un tel réseau de neurones dans l’article de M. Sandler et al. intitulé « MobileNetV2 : Inverted residuals and linear bottlenecks » publié dans Proc. of the IEEE Conf. on computer vision and pattern recognition, 2018, pp. 4510-4520. L’utilisation de réseaux IR permet de réduire le nombre de paramètres par rapport à un réseau CNN classique ainsi que le nombre d’opérations MAC ( Mutiple-AC c umulate ) dans la mesure où un réseau IT utilise une convolution séparable, c’est-à-dire une convolution qui se décompose de manière séparée en une convolution en profondeur ( depthwise ), c’est-à-dire sur un seul canal à la fois, et une convolution ponctuelle ( pointwise ), c’est-à-dire sur l’ensemble des canaux à la fois.
De même, les réseaux de neurones RNN pourront être avantageusement des réseaux à convolutions séparables.
En particulier, les réseaux RNN pourront être choisis de type LSTM (Long Short Term Memory) et avantageusement de type Bottleneck LSTM. On pourra trouver une description détaillée d’un tel réseau de neurones dans l’article de M. Liu et al. intitulé « Mobile video object detection with temporally-aware feature maps » publié dans Proc. of the IEEE Conf. on computer vision and pattern recognition, 2018, pp. 5686-5695.
Avantageusement, une couche de normalisation pourra être prévue avant l’activation (fonction sigmoïde) au niveau des portes d’entrée, d’oubli et de sortie de chaque réseau LSTM, la normalisation étant effectuée sur l’ensemble des caractéristiques spatiales.
Enfin, la première couche du codeur spatio-temporel comporte, comme représenté, en un réseau de neurones convolutionnel classique pour augmenter le nombre de canaux, chaque canal correspondant à un noyau de convolution par blocs. Les étages de réseaux CNN-RNN opèrent sur les trames de données radar ayant préalablement subi cette étape de convolution par blocs.
Lors de l’entraînement, le système de détection d’objets se voit présenter séquentiellement trames de données en entrée du codeur spatio-temporel et des résultats de prédiction associés, c’est-à-dire des cartographies d’objets effectivement présents dans la scène. Le modèle est ainsi entraîné à coder une séquence de trames de données pour prédire à chaque instant la cartographie correspondante, , soit pour le décodeur :
où et sont respectivement l’ensemble des caractéristiques fournies par le codeur spatio-temporel et son état interne après mise à jour à l’instant .