INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
La brosse 20 comprend une pluralité de fibres individuelles conductrices 24 destinées à venir autour de l’arbre 6 du moteur 2. Les fibres conductrices 24 sont par exemple réalisées en carbone, acier inoxydable, plastique conducteurs, tels que des fibres acryliques ou en nylon. Dans l’exemple illustré, les fibres conductrices 24 sont pliées autour d’un fil de liaison 28. L’extrémité distale libre des fibres conductrices 24 est destinée à venir en contact radial avec la surface externe 14 de l’arbre 6.
Procédés et dispositifs de chiffrement, de génération de trappe et de détection de motif Arrière-plan de l’invention L'invention se rapporte au domaine des télécommunications.
Elle concerne plus particulièrement un système de chiffrement dit « cherchable », c'est- à-dire un système permettant de détecter la présence d'un motif (en anglais « pattern ») dans un flux de données chiffré.
On constate aujourd’hui que la plupart, environ 90%, des flux de données échangés sur les réseaux de télécommunication sont chiffrés. C’est par exemple le cas des requêtes HTTPS ou des requêtes DNS.
Ce chiffrement empêche la supervision de ces flux de données, par exemple pour la détection d’attaques (virus, déni de service, …) ou le filtrage des contenus (contrôle parental, …).
Une solution pour surveiller les données chiffrées échangées entre un fournisseur de service, décrite dans le document Lin-Shung Huang, Alex Rice, Erling Ellingsen, and Collin Jackson. Analyzing forged SSL certificates, 2014 IEEE Symposium on Security and Privacy, pages 83–97. IEEE Computer Society Press, May 2014, consiste à utiliser un serveur mandataire (ou « proxy ») qui usurpe l’identité du fournisseur de service, obtient la clé de chiffrement, déchiffre les caractères, les analyse en clair, les chiffre à nouveau et les transmet à l’utilisateur. Cette solution n’est pas satisfaisante car elle révèle les données au serveur proxy.
Une autre famille de solutions cryptographiques dans laquelle se situe l’invention est appelée « chiffrement cherchable » (ou « searchable encryption » en anglais). Le chiffrement cherchable permet de détecter si un flux de données comporte un chiffré d'un motif, à condition de détenir une certaine information, appelée habituellement « trappe » et associée préalablement à ce motif.
Les trois documents suivants proposent de telles solutions : [1] Justine Sherry, Chang Lan, Raluca Ada Popa, and Sylvia Ratnasamy. BlindBox: Deep Packet Inspection over Encrypted Traffic. In Proceedings of the 2015 ACM Conference on Special Interest Group on Data Communication, SIGCOMM ’15; [2] Nicolas Desmoulins, Pierre-Alain Fouque, Cristina Onete, and Olivier Sanders. Pattern matching on encrypted streams. In Thomas Peyrin and Steven Galbraith, editors, ASIACRYPT 2018; et [3] Elie Bouscatié, Guilhem Castagnos and Olivier Sanders. Public Key Encryption with Flexible Pattern Matching. ASIACRYPT 2021.
La solution décrite dans [1], basée sur un chiffrement symétrique, ne permet la détection que de motifs de taille fixe. Elle est donc très limitée et en particulier n’est pas adaptée à la détection de virus dont les tailles peuvent être très variées. Les solutions décrites dans [2] et [3] sont très complexes, notamment parce qu’elles nécessitent l’usage de courbes elliptiques à couplage (de l’anglais « pairing-friendly »).
La présente invention propose un système de chiffrement cherchable remédiant à des insuffisances/inconvénients de l'état de la technique et/ou y apportant des améliorations.
Objet et résumé de l’invention Ainsi, et selon un premier aspect, l’invention concerne un procédé de génération d’une trappe dans un système de chiffrement , ladite trappe étant associée à un motif w comprenant des caractères élémentaires w[1], …w[v] compris dans un alphabet complété par un caractère spécial pouvant remplacer un caractère quelconque dudit alphabet, ledit système définissant une clé secrète paramétrée par des entiers n et t et comportant : - un entier a c,i pour tout caractère c de l’alphabet et pour tout entier i entre 1 et l’entier n ; et - un entier b k pour tout entier k entre 1 et l’entier t ; le procédé comportant des étapes de : - sélection d’un entier s compris entre 1 et l’entier t ; et - calcul d’une valeur T = b s *(r 1 a w[1],1 + r 2 a w[2],2 +…+ r v a w[v],v ), r i =0 si w[i] est ledit caractère spécial et r i est égal à un entier r sinon, ladite trappe comportant les éléments s, r, et T.
Corrélativement, l’invention concerne un dispositif de génération d’une trappe dans un système de chiffrement , ladite trappe étant associée à un motif w comprenant des caractères élémentaires w[1], …w[v] compris dans un alphabet complété par un caractère spécial pouvant remplacer un caractère quelconque dudit alphabet, ledit système définissant une clé secrète paramétrée par des entiers n et t et comportant : - un entier a c,i pour tout caractère c de l’alphabet et pour tout entier i entre 1 et l’entier n ; et - un entier b k pour tout entier k entre 1 et l’entier t ; le dispositif comportant: - un module de sélection d’un entier s compris entre 1 et l’entier t ; et - un module de calcul d’une valeur T = b s *(r 1 a w[1],1 + r 2 a w[2],2 +…+ r v a w[v],v ), r i =0 si w[i] est ledit caractère spécial et r i est égal à un entier r sinon,
la trappe comportant les éléments s, r, et T.
La trappe ainsi générée permet de détecter un motif de taille quelconque dans un flux de données par le biais de la procédure de détection décrite ultérieurement.
Selon un deuxième aspect, l’invention concerne un procédé de chiffrement mis en œuvre dans un système de chiffrement définissant une clé publique, pour obtenir un chiffré par chiffrement de données m comportant au moins u caractères élémentaires m[i], la clé publique comportant : - des éléments g c,i pour tout entier i entre 1 et un entier u, les éléments g c,i étant de la forme g^(a c,i ) où a c,i est un entier entre 0 et un entier p-1 et g un générateur d’un groupe G d’ordre p; - des éléments h k , pour tout entier k entre 1 et un entier t, les éléments h k étant de la forme g^(1/b k ) où b k est un entier entre 0 et p-1 ; - le générateur g ; - une description du groupe G ; et - une description d’une fonction H à valeur dans un ensemble fini, ledit procédé comportant des étapes de : - sélection d’un entier a entre 0 et p-1 ; - calcul pour tout entier k entre 1 et t, d’une valeur E k = H(h k ^(a)) ; - calcul pour tout entier i entre 1 et u, d’une valeur C i égale à g m[i],i ^a, - obtention du chiffré, ledit chiffré étant constitué des éléments {E k , C i }.
Corrélativement, l’invention concerne un dispositif de chiffrement mis en œuvre dans un système de chiffrement définissant une clé publique, le dispositif étant configuré pour obtenir un chiffré C par chiffrement de données m, comportant au moins u caractères élémentaires m[i], la clé publique comportant : - des éléments g c,i pour tout entier i entre 1 et un entier u, les éléments g c,i étant de la forme g^(a c,i ) où a c,i est un entier entre 0 et un entier p-1 et g un générateur d’un groupe G d’ordre p ; - des éléments h k , pour tout entier k entre 1 et un entier t, les éléments h k étant de la forme g^(1/b k ) où b k est un entier entre 0 et p-1.; - le générateur g d’un groupe G ; - une description du groupe G ; et - une description d’une fonction H à valeur dans un ensemble fini, ledit dispositif comportant : - un module de sélection d’un entier a entre 0 et p-1 ; - un premier module de calcul pour tout entier k entre 1 et t, d’une valeur E k = H(h k ^(a)), - un deuxième module de calcul pour tout entier i entre 1 et u, d’une valeur C i égale à g m[i],i ^a, et un module d’obtention du chiffré, ledit chiffré étant constitué des éléments {E k , C i }.
Les motifs et les données sont des chaînes de caractères appartenant à un alphabet. Les caractères peuvent être de n’importe quel type. Les caractères peuvent par exemple être codés sur 2 bits, 8 bits, … Les chaînes de caractères peuvent être des séquences ADN.
chaque cellule mémoire comportant au moins une paire de memristors et au moins une paire de commutateurs, chaque memristor d’une cellule mémoire respective étant connecté à un commutateur respectif et relié à la même ligne de source lors de chaque opération de calcul, chaque paire de memristors mémorisant respectivement une valeur binaire en présentant respectivement des première et deuxième valeurs de résistances différentes ; les commutateurs étant reliés, pour leur activation, à une ligne de mot respective et reliés respectivement à une paire de lignes de bit complémentaires, les deux commutateurs d’une paire respective étant reliés à une même ligne de mot ;
- un module de lecture mis en œuvre lors de chaque opération de calcul, le module de lecture comportant :
+ une unité logique pour chaque colonne, chaque unité logique comprenant au moins une borne d’entrée connectée à une ligne de source respective pour recevoir une valeur d’entrée dite valeur de colonne, l’unité logique étant propre à effectuer une opération logique présentant un basculement entre une valeur basse et une valeur haute en fonction d’une comparaison de la valeur de colonne par rapport à une valeur de seuil de basculement, lors de l’opération de calcul, et
+ une unité de modification propre à modifier, pour au moins une unité logique et en fonction de l’opération de calcul souhaitée, une différence entre la valeur de colonne et la valeur de seuil de basculement.
Avec le circuit électronique selon l’invention, le module de lecture comportant une unité logique pour chaque colonne et l’unité de modification apte à modifier, pour au moins une unité logique et en fonction de l’opération de calcul, la différence entre la valeur de colonne et la valeur de seuil, permet de déterminer plus efficacement une valeur résultante correspondant à la tension de la ligne de source respective.
De préférence, chaque cellule mémoire comporte deux paires de memristors et deux paires de commutateurs, avec une première paire de commutateurs reliée à une première ligne de mot assignée à une entrée, et respectivement une deuxième paire de commutateurs reliée à une deuxième ligne de mot assignée à l’inverse de ladite entrée ; et avec une première paire de memristors associée à la première paire de commutateurs et mémorisant un poids synaptique, et respectivement une deuxième paire de memristors associée à la deuxième paire de commutateurs et mémorisant l’inverse du même poids synaptique.
Selon cette implémentation astucieuse, chaque cellule mémoire permet alors d’effectuer directement une opération de non-ou-exclusif, ou XNOR, entre une entrée et le poids synaptique correspondant d’un neurone respectif, et une valeur d’inférence dudit neurone est alors obtenue directement à partir de la valeur résultante correspondant à la tension de la ligne de source respective, ou bien à partir des valeurs résultantes correspondant aux tensions des lignes de source respectives lorsque les poids synaptiques dudit neurone sont encodés sur plusieurs colonnes de l’ensemble de cellules mémoire en forme matrice.
- l’unité de modification est propre à modifier la différence entre la valeur de colonne et la valeur de basculement pour une unité logique respective, en commandant une modification des tensions complémentaires appliquées sur la paire de lignes de bit complémentaires pour la colonne associée à ladite unité logique ;
- l’unité de modification est propre à modifier la différence entre la valeur de colonne et la valeur de seuil pour une unité logique respective, en commandant une modification de la valeur de seuil de ladite unité logique ;
ladite valeur de seuil étant de préférence modifiée via un changement de la tension d’alimentation de ladite unité logique et/ou via un changement de la tension de polarisation d’une grille arrière d’au moins un transistor de ladite unité logique ;
- l’unité de modification est propre à modifier, de manière incrémentale selon un pas d’incrémentation prédéfini, ladite différence entre la valeur de colonne et la valeur de seuil de basculement, pour déterminer - parmi une pluralité de valeurs possibles prédéfinies - une valeur résultante correspondant à la tension de la ligne de source respective correspondant à ladite valeur de colonne ; le pas d’incrémentation dépendant de ladite pluralité de valeurs possibles ;
- le module de lecture comporte en outre une unité de mémorisation pour au moins une colonne, chaque unité de mémorisation étant propre à stocker la valeur résultante déterminée pour la colonne respective, dans l’attente de la détermination de toutes les valeurs résultantes pour un groupe respectif de plusieurs colonnes ;
chaque unité de mémorisation comportant de préférence un registre de bits pour stocker sous forme binaire ladite valeur résultante déterminée ;
- le module de lecture comporte en outre une unité d’extinction pour chaque colonne, chaque unité d’extinction étant propre - après détermination de la valeur résultante pour la colonne respective et dans l’attente de la détermination de toutes les valeurs résultantes pour un groupe respectif - à commander l’application de la même tension à la paire de lignes de bit complémentaires pour la circulation d’un courant sensiblement nul dans la ligne de source de la colonne respective ;
- chaque cellule mémoire comporte deux paires de memristors et deux paires de commutateurs ;
Avantageusement, les connecteurs à branches plus courtes permettent de réaliser une bonne dissipation thermique dans des moteurs triphasés de faible puissance (entre 400W et 500W).
Avantageusement, le moteur est un moteur dont la puissance est comprise entre 600 et 650W, le connecteur étant selon l’invention.
Avantageusement, les connecteurs présentant une branche distincte plus longue permettent une meilleure dissipation thermique depuis des composants de puissance vers le moteur. En effet, la branche la plus longue étant positionnée à proximité des composants de puissance, ils vont permettre une récupération plus efficace de la chaleur et une meilleure transmission vers la broche. Ainsi, ces connecteurs sont particulièrement efficaces dans des moteurs triphasés de puissance plus grande (600W à 650W).
est une vue en perspective d’un connecteur selon un premier mode de réalisation de l’invention, avec une tête du connecteur orientée vers le haut.
est une vue en perspective du connecteur de la , avec la tête du connecteur orientée vers le bas.
est une vue du dessous d’un circuit imprimé monté sur un moteur triphasé et comprenant les connecteurs des figures 1a et 1b.
est une vue agrandie de la tête de connecteur des figures précédentes montée sur le circuit imprimé et vue du dessus.
est une vue agrandie de la tête de connecteur des figures précédentes montée sur le circuit imprimé et vue du dessous.
est un schéma représentant une coupe du connecteur des figures précédentes monté sur un circuit imprimé.
est une vue des connecteurs des figures précédentes montés sur le circuit imprimé, avec la pâte à braser pour fixer chaque connecteur sur ledit circuit.
est une vue en perspective d’un connecteur selon un deuxième mode de réalisation de l’invention, avec une tête du connecteur orientée vers le haut.
est une vue du dessous d’un circuit imprimé comprenant les connecteurs selon le deuxième mode de réalisation de l’invention.
Description des modes de réalisation. Tel qu’utilisé ici, et sauf indication contraire, l’utilisation des adjectifs ordinaux « premier », « deuxième », etc., pour décrire un objet indique simplement que différentes occurrences d’objets similaires sont mentionnées et n’implique pas que les objets ainsi décrits doivent être dans une séquence donnée, que ce soit dans le temps, dans l'espace, dans un classement, etc. « X et/ou Y » signifie : X seul ou Y seul ou X+Y. D'une manière générale, on appréciera que sur les différents dessins annexés, les objets sont arbitrairement dessinés pour faciliter leur lecture. Dans le reste de la description, le terme « longitudinalement » s’entend comme le sens de la longueur de la broche et/ou des languettes.
Les figures 1a et 1b montrent deux vues d’un connecteur selon un premier mode de réalisation de l’invention.
Un connecteur 1 selon un premier mode de réalisation de l’invention comprend une broche 1A qui s’étend longitudinalement suivant un axe principal Ap de ladite broche 1A, « l’ axe principal » étant l’axe passant par son centre et s’étendant longitudinalement à la broche 1A. La broche 1A présente une longueur LB comprise entre 20mm et 30mm, plus préférentiellement entre 28mm et 30mm, et un diamètre DB compris entre 1.5mm et 2.5mm, plus préférentiellement compris entre 1.7mm et 2.3mm. La broche 1A comprend également une première extrémité 1A.1 depuis laquelle s’étend une tête 1B de connecteur 1, et une deuxième extrémité 1A.2 restant libre.
Le contrôleur électrique 402 est notamment configuré pour mettre en œuvre le procédé de l’invention. Ainsi, le contrôleur 402 est configuré pour déterminer les potentiels de référence et les potentiels à réaliser V i des N phases du moteur 404 pour une tension de commande V MAG inférieure à une tension de limitation V LIM fournie par un utilisateur, comme représenté sur la , ou définie par le contrôleur 402 selon la formule suivante :
avec α = π/(2N) si N est impair ou α = 0 si N est pair et multiple de 4 ou α = π/N si N est pair et non-multiple de 4.
Les potentiels électriques à réaliser V i sont déterminés selon les valeurs des potentiels électriques de référence V REF_ i déterminés par le contrôleur 402, les potentiels de référence V REF_i étant donnés par la formule suivante :
avec i compris entre 1 et N, et V REF_i représentant le potentiel de référence de la i-ème phase du moteur 404.
Puis le contrôleur 402 compare ces potentiels de référence V REF_i aux premier et deuxième seuils, qui peuvent être définis comme indiqué en référence à la .
Si les potentiels de référence V REF_i sont tous inférieurs ou égaux au premier seuil, alors les potentiels V i fournis au convertisseur de puissance 403 puis au moteur 404 seront égaux aux potentiels de référence V REF_i précédemment définis.
Si les potentiels de référence V REF_i sont tous inférieurs ou égaux au deuxième seuil, mais au moins un des potentiels de référence est supérieur au premier seuil, alors les potentiels V i fournis au convertisseur de puissance 403 puis au moteur 404 seront égaux à V i = V REF_i + V H , avec V H le potentiel homopolaire défini par la formule suivante :
où représente le potentiel de référence maximal parmi les potentiels de référence V REF_i déterminés précédemment et représente le potentiel de référence minimal parmi les potentiels de référence V REF_i déterminés précédemment.
Si les potentiels de référence V REF_i sont tous supérieurs au deuxième seuil, alors les potentiels V i fournis au convertisseur de puissance 403 puis au moteur 404 seront égaux V i = V REF_i + V S_i + V H , avec V H un potentiel homopolaire dépendant du nombre de phases N et des potentiels électriques de référence V REF_i et V S_i un potentiel secondaire dépendant du nombre de phases N et des potentiels électriques de référence V REF_i .
Dans ce cas, les potentiels secondaire V S_i et homopolaire V H peuvent s’exprimer par les fonctions suivantes :
avec : si N est impair, avec p = (N-1)/2 :
k allant de 1 à N-3, et
avec : U un vecteur à N lignes défini par U = T -1 u et u un vecteur à N lignes défini par une valeur 1 pour ses indices iP, une valeur 0 pour son indice iM et une valeur -1 pour ses indices iN ; V un vecteur à N lignes défini par V = T -1 v et v un vecteur à N lignes défini par une valeur 0 pour ses indices iP et iN et une valeur 1 pour son indice iM ; iP les p indices des p plus grandes valeurs des potentiels de référence V REF_i ; iN les p indices des p plus petites valeurs des potentiels de référence V REF_i ; iM l’indice de la valeur médiane des potentiels de référence V REF_i ; i variant de 1 à N, et T une matrice de transformation définie par : les colonnes impaires de 1 à 2 ⌊(N-1)/2 ⌋ notée 2k-1 (k variant de 1 à ⌊(N-1)/2 ⌋), correspondent au vecteur ayant comme i-ème composante (avec i variant de 1 à N) : c(i, 2k-1) = cos (2πk(i-1)/N) ; les colonnes paires de 1 à 2⌊(N-1)/2 ⌋ notée 2k (k variant de 1 à ⌊(N-1)/2 ⌋) correspondent au vecteur ayant comme i-ème composante (avec i variant de 1 à N) : c(i, 2k) = sin (2πk(i-1)/N) ; dans le cas où N est impair, la colonne N est définie par un vecteur constant à la valeur 1/√2 ; dans le cas où N est pair, la colonne N-1 est définie par un vecteur de constantes alternées de valeur 1/√2 et de valeur -1/√2 et la colonne N est définie par un vecteur constant à la valeur 1/√2. Si N est pair, avec p = N/2 : V H = 0 et V SAB_i (k) est défini par : Si k varie de 1 à p-2 : Pour les autres k entre 1 et N-3 : V SAB_i (k) = 0 ;
p M = qQ -1 ;
iP les p-1 indices des p-1 plus grandes valeurs des potentiels de référence V REF_i pour i variant de 1 à N ;
Bien entendu, dans l’hypothèse où les potentiels seraient appliqués aux lignes de bit complémentaires BL, BLb de manière inversée par rapport à ce qui précède, avec le potentiel haut V H appliqué à la ligne de bit complémentaire BLb et le potentiel bas V L appliqué à la ligne de bit BL, alors la logique de comparaison de la tension de la ligne de source SL avec la tension milieu pour déterminer le résultat de l’opération XNOR serait également inversée.
La concerne alors les distributions de tensions obtenues au global sur la ligne de source SL j , c’est-à-dire au bas de la ligne de source SL j dans les exemples des figures 1 et 7, lorsque plusieurs lignes d’entrée IN i sont utilisées simultanément, le graphe des distributions de tensions représenté à la illustrant le cas où cinq lignes d’entrée IN i sont utilisées simultanément.
Cet exemple de la concernent notamment le cas de l’inférence d’un réseau de neurones binaire. Pour bien comprendre ce qui va suivre, il peut être observé qu’un réseau de neurones binaire présente une spécificité dans l’inférence par rapport à un réseau de neurones classique.
où représente la valeur de sortie calculée par le neurone,
représentent les valeurs d’entrée pour ledit neurone,
représentent les poids binaires respectifs associés audit neurone pour chacune des entrées ;
est l’opération logique de non-ou-exclusif ;
est la fonction qui compte le nombre de 1 dans une série de bits, lorsque i varie entre 1 et le nombre n d’entrées ;
est un seuil prédéfini, et
est une fonction associant la valeur 1 à une entrée positive et associant -1 à une valeur négative.
Lorsque les valeurs d’entrée sont appliquées sur les n lignes d’entrée IN i , où n représente le nombre de lignes d’entrée IN i , n lignes de mot sont activées parmi les 2n lignes de mot complémentaires WL i , WLb i . Cela forme alors un pont diviseur entre la ligne de bit BL j et la ligne de bit complémentaire BLb j , comme représenté en partie supérieure de la , où une première résistance équivalente R BL correspond à la résistance équivalente pour la portion de pont diviseur connectée entre la ligne de bit BL j et la ligne de source SL j , et une deuxième résistance équivalente R BLb correspond à la résistance équivalente pour la portion de pont diviseur connectée entre la ligne de bit complémentaire BLb j et la ligne de source SL j .
D’après ce qui précède, notamment au vu de l’exemple de la , si le résultat de l’opération XNOR est égal à 1, alors le premier memristor 28 à gauche de la ligne de source SL j est à l’état haut HRS et le deuxième memristor 30 à droite de la ligne de source SL j est à l’état bas LRS. Inversement, si le résultat de l’opération XNOR est égal à 0, alors le premier memristor 28 à gauche de la ligne de source SL j est à l’état bas LRS et le deuxième memristor 30 à droite de la ligne de source SL j est à l’état haut HRS.
Pour la première résistance équivalente R BL correspondant à la portion de pont diviseur à gauche de la ligne de source SL j , le nombre de memristors à l’état haut HRS, noté #HRS sur la , est alors égal à pop, où pop est égal au résultat de la fonction popcount dans l’équation (1) précédente lorsque les valeurs d’entrée x i sont les valeurs d’entrée appliquées sur les n lignes d’entrée IN i , et pour la première résistance équivalente R BL le nombre de memristors à l’état bas LRS, noté #LRS sur la , est alors égal à n-pop, n représentant le nombre de lignes d’entrée IN i .