[go: up one dir, main page]

FR3038759A1 - Cryptage avec geolocalisation embarquee - Google Patents

Cryptage avec geolocalisation embarquee Download PDF

Info

Publication number
FR3038759A1
FR3038759A1 FR1501468A FR1501468A FR3038759A1 FR 3038759 A1 FR3038759 A1 FR 3038759A1 FR 1501468 A FR1501468 A FR 1501468A FR 1501468 A FR1501468 A FR 1501468A FR 3038759 A1 FR3038759 A1 FR 3038759A1
Authority
FR
France
Prior art keywords
encryption
tables
character
substitution
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1501468A
Other languages
English (en)
Inventor
Khalib Jabbar
Meur David Le
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to FR1501468A priority Critical patent/FR3038759A1/fr
Publication of FR3038759A1 publication Critical patent/FR3038759A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/02Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system by using a ciphering code in chart form

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne un procédé de cryptage et décryptage dynamique et aléatoire de données offrant un nombres de combinaison infinie qui est unique à chaque utilisateur et à chaque requête ne faisant appel ni à une fonction booléenne, ni à un échange de clé, le message à crypter faisant partie du mécanisme de cryptage et transportant un ID, des données de position GPS avec une fonction de corrélation ayant valeur de répudiation et fonctionnant sous une architecture Client/Serveur. En l'état actuel des techniques, un revers engineering relève de l'impossible car il n'utilise pas de formule mathématique, équation, ni de nombre à factoriser et il supprime tous ces points de faiblesses potentielles. Notre cryptage trouve sa place pour toute application fonctionnant sous un environnement client-serveur transportant des données alphanumérique dont l'intégrité et la confidentialité doivent être préservés. Exemple d'utilisation: gestion de paiement, gestion des accès à distance, messagerie instantanée...

Description

Description de l'invention :
Procédé de cryptage et décryptage dynamique et aléatoire de données offrant un nombre de combinaisons infinies qui est unique à chaque utilisateur ne faisant appel ni à une fonction booléenne, ni à un échange de clé et transportant un ID, des données de position GPS avec une fonction de corrélation ayant valeur de répudiation et fonctionnant sous une architecture Client/Serveur.
Domaine technique: Toute application fonctionnant sous un environnement client-serveur transportant des données alphanumérique dont l'intégrité et la confidentialité doivent être préservés.
Technique antérieure: Il existe plusieurs types de cryptages tel que le chiffre de César, le ROT13 (Cryptage utilisé par les systèmes Unix) et le chiffre de Vigenère qui ont la même particularité d'être basés sur des mouvements de caractères, chacun étant substitué par un autre.
Le chiffrement de Vigenère est un cryptosystème symétrique qui utilise la même clé pour le chiffrement et le déchiffrement. Il ressemble beaucoup au chiffrement de César à la différence près qu'il utilise une clé plus longue pour palier au principal problème du chiffre de César : Une même lettre n'est codée que d’une seule façon. Ce cryptage fait appel à un tableau de substitution.
Le chiffrement de ROT13 est utilisé dans le monde Unix et à l'instar du chiffre de César il remplace; une lettre par une autre lettre avec un décalage de 13 lettres ce qui ne présente aucune sécurité.
La seule chose que nous ayons en commun avec ces 3 cryptages est la substitution de caractère.
Le DES (Data Encryptions Standard) est un algorithme à clé secrète qui travaille avec une clé sur 64 bits et fait appel à une fonction booléenne. Il s'agit d'un système de chiffrement symétrique par blocs de 64 bits dont 8 bits (un octet) servant de test de parité (pour vérifier l'intégrité de la clé). Chaque bit de parité de la clé (1 tous les 8 bits) sert à tester un des octets de la clé, c'est-à-dire que chacun des bits de parité est ajusté de façon à avoir un nombre impair de '1' dans l'octet à qui il appartient. La clé possède donc une longueur « utile » de 56 bits, ce qui signifie que seuls 56 bits servent réellement dans l'algorithme. L'algorithme consiste à effectuer des combinaisons, des substitutions et des permutations entre le texte à chiffrer et la clé, en faisant en sorte que ces opérations puissent se faire dans les deux sens (pour le déchiffrement). La clé est codée sur 64 bits et formée de 16 blocs de 4 bits, mais « seuls » 56 bits servent effectivement à chiffrer.
Les grandes lignes de l'algorithme sont les suivantes : • Fractionnement du texte en blocs de 64 bits (8 octets) • Permutation initiale des blocs • Découpage des blocs en deux parties: gauche et droite • Etapes de permutation et de substitution répétées 16 fois • Replacement des parties gauche et droite à leur position d'origine • Permutation initiale inverse.
Le 3DES, est plus complexe que le DES en cela qu'il résulte de l'enchaînement de trois DES successifs mais il utilise pour cela deux clés secrètes différentes pour renforcer la sécurité initiale du DES. Tous ces cryptages DES, 3DES, font appel à des permutations de blocs puis bit à bit ainsi qu'à une fonction booléenne combinée à une ou deux clés secrètes avec une ronde.
Nous avons en commun avec le DES et le 3DES, la génération aléatoire de tableaux permettant la permutation de bit à bit.
En ce qui concerne les autres cryptages connus tel que le RSA, le PGP, l'AES nous ne faisons appel à aucunes de leurs techniques.
Nous avons effectué des recherches sur un critère avec les mots clés " cryptage? and (base de données" et nous avons trouvé 89 résultats. Sur ces 89 résultats, aucun n'a d'autre point en commun que ceux déjà évoqué plus haut.
Exposé de l'invention:
Problème Technique : Les chiffrements à décalage n'offrent aucune sécurité, une fois deviné le décalage compris entre 1 et 26 le message peut être décrypté car il est facile de trouver ce décalage. Il existe un chiffrement appartenant à un cryptosystème symétrique qui utilise la même clé pour le chiffrement et le déchiffrement, il ressemble beaucoup au chiffrement à décalage à la différence près qu'il utilise une clé plus longue et fait appel à un tableau de substitution. Il existe des algorithmes à clé secrète qui travaille avec une clé sur 64 bits et font appel à une fonction booléenne. L'algorithme consiste à effectuer des combinaisons, des substitutions et des permutations entre le texte à chiffrer et la clé, en faisant en sorte que ces opérations puissent se faire dans les deux sens (pour le déchiffrement). Certain utilise des enchaînements successifs avec deux clés secrètes différentes pour renforcer la sécurité initiale. La cryptanalyse par différentiel reste possible pour retrouver la clé secrète dans le cas de ces cryptages avec des délais plus ou moins long. Il existe des cryptages ayant recours pour certain à un algorithme asymétrique utilisant soit une clé privé et une publique crée par l'utilisateur avec communication dé la clé publique pour le décryptage, soit une clé secrète. D'autres sont des cryptages à chiffrement GPG (Gnu Privacy Guard). Quelques soit ces cryptages évoqués plus haut la sécurité réside dans la puissance de calcul nécessaire au décryptage ou dans la préservation du secret de la clé privé.
Solution Technique: Si notre cryptage fait appel à la substitution de caractère et à la génération aléatoire de tableaux permettant la permutation de bit à bit, il ne fait pas appel à une clé secrète et les tableaux et les méthodes utilisées pour le cryptage et le décryptage sont définis de manière totalement aléatoire sans clé et sans intervention humaine et unique à chaque utilisateur. Le nombre de combinaisons est infini est en l'état actuel de la technique il reste impossible de le décrypter. Enfin il permet d'utiliser la corrélation d'une|position GPS comme facteur de répudiation.
Description des dessins :
Figure 1 : Exemple d'utilisation du cryptage dans une Gestion d'Accès
Figure 2 : Exemple de tableau Ascii étendu
Figure 3 : Exemple de tableau comportant les caractères Ascii étendu
Figure 4 : Tableau utilisé pour exemple du cryptage Exposé détaillé de l'invention :
Notre cryptage fonctionne sous une architecture Client/Serveur, il est basé sur un algorithme de chiffrement ne faisant appel ni à une fonction booléenne, ni à un échange de clé. Son chiffrement combine la substitution de caractères et la permutation bit à bit sur des blocs de 8,16 et 32 bits de manière autonome totalement aléatoire et unique à chaque utilisateur. Il permet de transporter un ID et des données de position GPS avec une fonction de corrélation ayant valeur de répudiation.
Dans un premier temps, nous utilisons un tableau de référence composé de tous les caractères de l'alphabet en majuscule et minuscule ainsi que de tous les symboles et les chiffres dans un ordre défini au préalable.
Nous générons alors d'autres tableaux de substitution de manière aléatoire. Ceux-ci nous serviront à Substituer les caractères par d'autres caractères alphanumériques, caractères spéciaux ou symboles. Ce cryptage requiert au minimum 4 tableaux de substitutions, 3 tableaux de permutations et 1 tableau de correspondance.
Des compteurs tournant en permanence et stoppés à différent moments permettent de déterminer de manière aléatoire les méthodes définissant la séquence dans laquelle ces tableaux seront utilisés ainsi que le pourcentage de fractionnement de la chaîne de caractères. Ce fractionnement permettant d'une part, d'accroître le niveau de cryptage et d'autre part, d'intégrer à la jonction des deux blocs l'ID unique avec les coordonnées GPS et la méthode utilisée à l'instant t. Chaque caractère converti en binaire, définit les changements de tableau. C'est ainsi que le choix des tableaux de substitution est fait de manière totalement aléatoire. Il s'en suit alors une série de permutation bit à bit au travers de trois tableaux: o un de 8 bits o un de 16 bits o un de 32 bits
Nous utilisons en même temps les deux concepts, où les tableaux utilisés sont choisis de manière totalement aléatoire et où chaque message qui doit être crypté fait partie du mécanisme de cryptage, ce qui le rend unique à chaque utilisateur et à chaque requête.
Cela nous donne un nombre infini de combinaisons possibles pour un seul caractère, à la fois par la substitution de caractères combinée et par la permutation bit à bit, qui se fait au travers de plusieurs tableaux de substitution et de permutation et sachant que ces tableaux et l'ordre dans lesquels ils sont utilisés est totalement aléatoire.
Notre cryptage possède plusieurs facteurs d'authentificationündépendants qui sont un ID unique, un cryptage unique à chaque ID, des coordonnées de géolocalisation assurant une fonction de répudiation et garantissant que l'unique personne autorisée à déchiffrer est la personne à l'origine de la demande.
Technique du Cryptage:
Cryptage:
Chargement des tableaux
Nous avons choisi d'utiliser, pour des raisons d'interopérabilité, un tableau comportant les caractères d'un tableau ASCII étendu contenantes sous-ensembles du jeu de caractère ASCII dont les caractères sont codés sur 8 bits. Il devra comprendre Obligatoirement la totalité de l’alphabet, des lettres majuscule et minuscule avec les symboles les plus utilisés tenant compte des langues usuelles (latin, chinois, etc).
Toutefois nous aurions pu utiliser des tableaux Unicode ou ASCII ou autre. L'important étant d'avoir un encodage identique côté Client et côté Serveur ainsi que des tableaux comportant le même nombre de colonnes et de lignes (Dans notre exemple 14X14). L'application Client embarque par défaut un tableau comportant les caractères ASCII étendu (Figure 2) ce tableau sera le tableau de référence. Au premier lancement de l'application une série de 8 tableaux est chargée (4 tableaux de substitution (Figure 4), 3 tableaux de permutation, 1 tableau de correspondance).
Ces tableaux posséderont un bail au terme duquel une mise à jour sera faite afin de charger de nouveaux tableaux. Ce bail sera paramétrable en fonction du niveau de sécurité attendu. Quel que soit l'origine de la demande (Initialisation de l'application ou Mise à jour) la méthode de chargement des tableaux reste la même. La sélection des tableaux est faite côté serveur par un compteur. Ce compteur tournera entre les valeurs de 1 à 99.
Exemple :
For (i = 1; i <= 99; i++)
La limite peut être augmentée en fonction du nombre de tableaux générés en base. Une adaptation du compteur est à envisager en fonction du nombre de tableaux.
Dans notre exemple nous utilisons 99 tableaux pour la substitution, 0 étant le tableau d'origine jusqu'au tableau 99, 99 tableaux de permutation et 99 tableaux de correspondance. L'initialisation du compteur sera faite à la valeur 1 afin d'éviter que le j tableau de référence ne soit sélectionné pour effectuer la substitution. Il se stoppera à 8 reprises sélectionnant ainsi le numéro des 4 tableaux de substitution, des 3 tableaux de permutation et du tableau de correspondance.
Exemple :
Tableaux de substitution : 12 37 04 93 Tableaux de permutation : 4168 11 Tableau de correspondance : 28
Une fois le numéro de chaque tableau récupéré, ces numéros sont ajoutés en base et associés à l'ID unique de l'application. Ces tableaux se verront alors attribuer un index allant de tsl à ts4 pour les tableaux de substitution et de tpi à tp3 pour les tableaux de permutation. Ce sont ces index et non le numéro des tableaux qui seront alors utilisés par l'application côté client et de ce fait aucun numéro de tableau ne transitera sur le Net. Ainsi nous retrouverons les index suivants attribués à chaque tableau.
Tableaux de substitution : tsl -12 ts2 - 37 ts3 - 04 ts4 - 93
Tableaux de permutation : tpi-41 tp2 - 68 tp3 -11
Les tableaux de substitution ( Figure 4) contiendront les mêbies caractères que le tableau de référence (Figure 2) mais dans le désordre ou d'autres caractères non utilisés dans le tableau de référence exemple (Figure 3)
Les tableaux de permutation (Détail 1) Détail 1:
Tableau de permutation 8bits = 54678213
Tableau de permutation 16bits = 12 9 4 6 16 10 2 8 15 11413 3 5 7 11
Tableau de permutation 32bits = 19 7 4 15 31 119 30 2116 14 29 126 8 18 25 5 3 12 17 22 27 23 24 32 2 6 10 13 20 28
Le tableau de correspondance ( Détail 2) servira à ajouter, encore une fois, un facteur de complexité supplémentaire aléatoire en forçant le processus de substitution et de permutation à ne pas utiliser les différents tableaux dans l'ordrè établi par les compteurs. Le tableau de correspondance sera chargé dans l'application à l'initialisation et sera lié à cette application par son ID unique en base de données côté serveur. Ce tableau sera également mis à jour au terme du bail. Détail 2: Tableau de correspondance
Tp : Méthode appliquée aux tableaux de permutation Ts : Méthode appliquée aux tableaux de substitution
Transformation de la chaîne de caractère en binaire 4 stockage de la chaîne binaire La chaîne de caractère est simplement transformé en binaire. Exemple pour la chaîne « Socryptic » (Détail 3): Détail 3:
01010011011011110110001101110010 0111100101110000 01110100 01101001 01100011
Arrêt du second compteur déterminant les méthodes ^ stockage des méthodes Ce compteur tourne en permanence et sera stoppé à deux reprises nous donnant la méthode de substitution et la méthode de permutation utilisées. Le choix d'un compteur comparé à une fonction random a été fait pour augmenter le facteur « hasard ». Une fonction random pouvant être potentiellement prévisible. Ce compteur tournera entre les valeurs de 0 à 5 dans cet exemple, en sachant que le nombre de méthode est directement lié au nombre de tableau utilisé.
Une fois ces valeurs stockées elles seront corrélées avec le tableau de correspondance (Détail 2). Les deux chiffres ainsi sélectionnés correspondront à la méthode de substitution pour le premier et à la méthode permutation pour le second.
Exemple: Méthode de substitution : 3
Méthode de permutation : Ο
Arrêt du troisième compteur déterminant le pourcentage dé position de la « clé » + stockage du pourcentage
Ce compteur tourne en permanence et ne sera stoppé qu'à cette étape. Ce compteur tournera entre les valeurs de 1 à 99. À chaque utilisation ce pourcentage sera différent avec une position de clé toujours différente. La chaîne finale n'àura donc jamais la même forme et il sera facile de confondre un caractère substitué à unfbit de rotation ou même à la méthode de correspondance. Ce qui complexifie les manœuvres de reverse engineering.
Cryptage de la chaîne de caractère par les tableaux de substitution Une fois ces informations rassemblées la séquence de cryptage;peut commencer. Pour se faire l'ensemble des tableaux de substitution correspondant à l'ID unique de l'application seront chargés. A ce moment le premier résultat du premier compteur est récupéré et va permettre de déterminer dans quel ordre vont être utilisé les tableaux à l'aide de la méthode et du tableau de correspondance (Détail 2). La première valeur remontée est 3 ce qui correspond à la méthode 4. La méthode 4 utilisera les tableaux de substitution dans l'ordre suivant : tsl.ts3.ts4.ts2
Le processus d'utilisation de ces tableaux fonctionne de la manière suivante :
Le tableau de référence nous servira à déterminer la position des lettres substituées sur chacun des tableaux de substitution par superposition de ces tableaux sur le tableau de référence.
Les quatre tableaux de substitution ( Figure 4)seront placés én cercle, chaque position représentera % de tour autour de ce cercle. Représenté par des1 points cardinaux cela nous donnerait : NORD : 1er tableau de la méthode EST : 2eme tableau de la méthode SUD : 3eme tableau de la méthode OUEST : 4eme tableau de la méthode
En utilisant la méthode 4, associée à la liste de tableaux définit plus tôt, cela nous donnerait l'exemple Figure 4.
Une fois la position des tableaux établis nous récupérons la séquence de rotation préalablement extraite (Détail 3). Il a été défini qu'un bit de rotation égal à 0 utilisera le tableau positionné % de tour vers la droite par rapport à la position actuelle et un bit de rotation égal à 1 utilisera le tableau positionné % de tour vers la gauche par rapport à la position actuelle, j
En position initiale nous pouvons voir que c'est le tableau 12 (tsl) qui sera superposé le premier sur le tableau de référence (Figure 4). Le « S » de la chaîne « Socryptic » se verra alors attribué le caractère « : » (en Noir sur la Figure 4).
En reprenant le détail 3 cela nous donnera la séquence de rotation suivante : 1 le tableau ne subit aucune rotation (jamais de rotation sur le premier caractère). 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 37) 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 93) _ 0 le tableau subit une rotation d'un quart de tour vers la droite (Tableau 37) 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 93) _ 0 le tableau subit une rotation d'un quart de tour vers la droite (Tableau 37) _ 0 le tableau subit une rotation d'un quart de tour vers la droite (Tableau 12) 1 le tableau sulpit une rotation d'un quart de tour vers la gauche (Tableau 37) _ 1 le tableau sulpit une rotation d'un quart de tour vers la gauche (Tableau 93)
Le premier bit «lie rotation est considéré comme étant la position initiale et ne fera pas l'objet d'une rotation.
Une fois le « S substitué le premier bit est consommé, le second est alors utilisé (Bit 1 : C'est le tableau 37 qui se retrouve maintenant superposé au tableau de référence) C'est au tour du caractère « o » d'être substitué par le caractère « -f- ». Le bit de rotation suivant est encore 1, nouvelle rotation d'1/4 de tour à gauche, le tableau 93 est donc superposé au tableau de référence. Le caractère « c » est alors substitué par le caractère « = ». Ensuite le bit 0 repositionne le tableau 37 sur le tableau de référence. Le caractère « f » est positionné au-dessus du « r » et ainsi de suite. La chaîne « Socryptic » se retrouve substituée par les|caractères suivants :
Socryptic : -f = f n -L | a j=
Intégration de la séquence de « rotation »
Une fois la séquence de substitution effectuée la séquence de rotation y est ajoutée.
La séquence de rotation est déterminée par rapport à la chaîne de caractère, ce qui la rend imprévisible (en effet ce n'est qu'une fois la chaîne décryptée que l'on peut connaître la séquence de rotation).
Une fois la chaîne transformée en binaire chacun des demiefs bits de chaque caractère est extrait.
Dans notre exemple les caractères sont codés sur 8 Bits. Les bits 8,16, 24, 32,40, 48, 56, 64, 72 de Socryptic seront donc notre séquence de rotation.
Cette séquence sera intercalée entre les caractères substitués (tous les caractères pairs en commençant par le début de la chaîne).
Exemple: : 1 -f 1 = 1 f 0 h 1 -10 10 a 1 = 1
Le nombre de caractères utilisés (9) pour cette séquence est alors enregistré pour être plus tard intégré à la chaîne.
Intégration de la « clé » comprenant la méthode et l'ID d'application Une fois la séquence de rotation intégrée le nombre de caractères est comptabilisé (dans notre exemple 18 : 9 lettres pour « Socryptic » + 9 caractères désignant les bits de rotation).
Le pourcentage de positionnement de la « clé » précédemment généré par le second compteur est alors récupéré (Par exemple 54). Un calcul est alors fait, déterminant les 54% de 18 :(18x54)/100 = 9,72
Arrondi à la valeur supérieur 10. La « clé » sera donc positionnée à partir du dixième caractère.
La « clé » est composée du numéro de la méthode et de l'ID d'application.
Dans notre exemple le premier compteur nous renvoi 3 ce qui correspondant à la méthode 4 sur le tableau de correspondance. Le chiffre 3 est alors ajouté en onzième position. Ce onzième caractère sera suivi de dix autres chiffres correspondant à l'ID unique de l'application. Exemple : : 1-)-1 = lf On 13245824755 l^OiOâ 1= 1 Intégration du pourcentage
Le pourcentage est alors positionné en début de chaîne. Exemple : 54 :1-|-I = lf0nl3245824755 1-J-Oj|0a 1=1 Intégration des données de géolocalisation
Les données de géolocalisation envoyées par le client lors de sa demande sont alors extraites de la base et ajoutées à la chaîne en étant séparées du reste de la chaîne par un caractère spécial n'ayant aucune correspondance dans les tableaux en fonction de l'encodage utilisé.ÎDans notre exemple nous utiliserons le caractère « ô».
Exemple :
Adresse de la géolpcalisation du client « 123 avenue de la somme 33000 bordeaux » : • Latitude: 44.9091576 • Longitude:-0.5152832 54 :1-|-I = lf0nl32458247551-L0 | 0 a 1 = 1 ô 44.9091576 ô -0.5152832 Intégration du nombre de bit de la séquence de « rotation »
Le nombre de bit utilisé (9) est alors ajouté à la fin de cette chaîne et séparé du reste par un nouveau caractère « ô».
Exemple : 54 :l + l = lf0nl32458247551J-0 |j 0 a 1 = 1 ô 44.9091576 ô -0.5152832 ô 9 Cryptage par les tableaux de permutation
Une fois toutes les informations intégrées à la chaîne, elle est transformé en binaire. Exemple : 00110101 00110100 00111010 0011000110111100 001100010011110100110001 01100110 00110000 11110001 00110001 0011001100110010 00110100 00110101 00111000 00110010 00110100 00110111 0011010100110101 0011000110110100 00110000 10010001 00110000 11100100 00110001 00111101 0011000111110000 00110100 00110100 00101110 00111001 00110000 00111001 0011000100110101 0011011100110110 11110000 00101101 00110000 00101110 0011010100110001 00110101 00110010 00111000 00110011 00110010 11110000 00111001
Nous calculons alors si le nombre de bit total est un multiple de 32. Si ce nombre n’est pas multiple de 32, nous ajoutons un caractère spécial qui sera réservé uniquement pour cette opération. Ce caractère sera réservé à cette utilisation. Dans notre exemple les différentes données (comprenant le pourcentage, la chaîne substitué, sa séquence de rotation intercalée, la méthode et HD unique positionnés à la jonction déterminé par le pourcentage, le caractère spécial de séparation « ô», la latitude, le caractère spécial de séparation des blocs « ô», la longitude, le caractère spécial de séparation des blocs « ô», le nombre de bits de rotation) nous donne 440 bits qui n’est pas multiple de 32. Cela nous oblige donc à rajouter pour cet exemple le caractère spécial « ® », qui va nous servir d'indice pour déterminer tous les bits qui auront été ajoutés afin d'obtenir le prochain nombre multiple de 32 bits. Dans notre exemple le prochain multiple est 448, ce qui nous donne 440 bits + 8 bits (caractère spécial « ® »). Si nous avions eu un total de 432 bits nous aurions été forcé de rajouter le caractère « ® »suivi de 8 zéros. Dans le processus de décryptage le caractère « ®» sera cherché et tout ce qui suit après ce caractère sera supprimé y compris ledit caractère. Une fois la chaîne complétée les tableaux de permutation (Détail 1) vont intervenir. Ils vont permettre de réattribuer une position différente à chaque bit. Cette opération sera effectuée successivement par bloc de 8,16 ou 32 bits. L'ordre dans lequel les séquences 8,16, 32 bits sera déterminé par la méthode de permutation extraite du tableau de correspondance (Détail 2).
Dans notre exemple le chiffre remonté par le compteur est Ô ce qui indique que la méthode 1 de permutation sera utilisé. C'est-à-dire tpi, tp2 puis tp3.
Exemple : les 8 premiers bits sont 00110101
Tpi nous donne le cinquième bit en position 1 le quatrième bit en position 2 le sixième bit en position 3 est ainsi de suite ce qui nous donne : 00110101 i—_—C>01101001
Après la permutation de notre premier bloc de 8 bit on obtient 01101001
Cette opération se poursuit jusqu'à la fin de la chaîne binaire par bloc de 8 bit.
En respectant la méthode 1 le prochain tableau utilisé est tp2 qui est un tableau de permutation de 16 bit avec un même principe de permutation mais cette fois sur des blocs de 16 bit. Idem pour le tableau tp3 qui est un tableau de 32 bit et donc on appliquera des permutations sur des blocs de 32 bit.
Ajout de l'ID de transaction L'ID de transaction est alors ajouté à la fin de la chaîne permutée. Cet ID ne présente aucun risque de sécurité dans la mesure où il est strictement associé à l'ID unique de l'application ainsi qu'aux données de géolocalisation déjà permutées et qu'il a une seule utilisation sur un temps donné. Il est composé de 10 caractères. De ce fait il est impossible de réutiliser cette ID depuis une autre application étant pourtant à la même position GPS, où depuis un clone de l'application se trouvant à une position GPS différente.
Exemple :
Ajout de la méthode
Une fois l'ID de transaction ajouté le numéro de la méthode se positionnera en fin de chaîne. Lui aussi étant à usage unique et lié à l'ID de transaction et par dépendance aux deux autres facteurs d'authentification, il ne présente aucun risque à être intercepté. Exemple :
Envoi de la requête
La requête suivante est alors envoyée au client : Décryptage: Récupération des données de géolocalisation A la réception de lia requête le système de géolocalisation est sollicité. Les données alors remontées sont stockées.
Extraction de la méthode de permutation ^ stockage de la méthode de permutation La chaîne récupérée est alors de cette forme :
La méthode de permutation est à cet instant le dernier chiffre de la chaîne. Il est alors extrait et va être corrélé avec le tableau de correspondance (Détail 2) chargé dans l'application à l'initialisation. Le chiffre 0 correspondant à la méthode 1, l'ordre d'utilisation est alors enregistré, tpi, tp2, tp3
Extraction de l'ID de transaction 4 stockage de l'ID de transaction L'ID de transaction est alors extrait et comparé à l'ID de transaction émis à la demande initiale. Deux solutions possibles :
Les deux ID ne correspondent pas. La requête a alors peut-être été interceptée et l'ID de transaction initial a dû être généré. Le décryptage ne peut pas aller plus loin Les deux ID correspondent. Le décryptage par les tableaux de permutation peut commencer. Décryptage par les tableaux de permutation grâce à la méthode
Pour que le décryptage se fasse il est impératif d'inverser l'ordre des tableaux de permutation. En allant du dernier tableau de permutation utilisé vers le premier.
Dans notre exemple nous avons utilisé tpi, tp2, tp3 ce qui nous donne donc au ; décryptage tp3, tp2, tpi
Cette permutation nous permet de récupérer la chaîne suivante : :H:i-ff = §f|h|f§24582475 5 1-L0 10 â 1 = 1 ô 44.9091576 ô -0.5152832 ô 9® On supprime le caractère ® qui nous servait à la fois pour compléter la chaîne totale en binaire au plus proche multiple de 32 et de caractère de séparation comme expliqué : précédemment dans la séquence cryptage.
Ce qui nous donne maintenant: 54 :ï-(-|=lf|ni|2458247551-*-0 | Oal = lô 44.9091576 ô -0.5152832 ô 9 Extraction du nombre de bit utilisés pour la séquence de « rotation »
Le dernier bloc de cette chaîne à partir du caractère non reconnu (ô) est extrait. | Dans notre exemple ce bloc n'est composé que du chiffre 9. Ce chiffre correspond au nombre de caractère utilisés pour la séquence de rotation. Nous obtenons alors la chaîne suivante : 54 :l-fl = lfOnll2458247551-L0 10 â 1 = 1 ô 44.9091576 ô -0.5152832 Vérification des données de géolocalisation
Les données de géolocalisation sont extraites. Ces données sont repérées par le caractère non reconnu (ô). 2 solutions possibles :
Les données récupérées dans la requête ne correspondent pas aux données venant d'être récupérées à la première étape de cette séquence : Tentative potentielle de Man in The middle. Le récepteur des identifiants n'étant pas à la même position que le demandeur ayant initialisé la connexion, le décryptage par les tableaux de substitution est alors rejeté.
Les données récupérées dans la requête correspondent aux données venant d'être récupérées à la première étape de cette séquence. La validation est faite. Le récepteur : des identifiants étant à la même position que le demandeur. Le décryptage par les tableaux de substitution peut commencer.
Une fois la validation effectuée les données de géolocalisation sont supprimées. Nous 'obtenons la chaîne suivante : 54 :l-j-3, = |f|hf|2458247551-^-0 | Θ a 1 = 1 Extraction du pourcentage de positionnement de la « clé »
Le pourcentage est alors extrait. Il nous indiquera ou se trouve la méthode de substitution ainsi que l'ID unique de l'application.
Une fois ce chiffre extrait de la chaîne nous obtenons la chaîne suivante : : 1 + |= IfOn 112458 247 5 5 lJ-QlOa 1=1
Extraction de la méthode de substitution et de l'ID de transaction Nous comptabilisons le nombre de caractère restant (29).
La méthode ne représentant qu'l seul caractère et l'ID de l'application étant de 10 caractères, une soustraction est faite de 11. 29-11 = 18
Un calcul des 54% de 18 est alors effectué : (18X54)/100 = 9,72
Arrondi à la valeur supérieure cela donne 10. La « clé » se retrouvera donc du caractère 11 à 21. Cette série de chiffre est extraite et séparée. Le premier caractère correspondant à la méthode de substitution et les dix suivant à l'ID de l'application.
Nous obtenons la chaîne suivante : :| + l=lf0n l-L0S.0al = -i
Extraction de Ig séquence de rotation C'est au tour de laséquence de rotation d'être extrait. Le nombre de bit de rotation ayant été récupéré avant (9)
Une extraction est alors faite des 9 premiers bits pairs.
La chaîne suivante! apparaît : : + = f fi i|i a = Décryptage par les tableaux de substitution L'application va maintenant faire appel à ses tableaux de substitution qui ont été téléchargés à l'initialisation sur le serveur. Côté client ces tableaux sont numéroté tsl, ts2, ts3, ts4. La méthode de substitution est alors récupérée. Cette valeur est alors corrélée avec le tableau de correspondance (Détail 2) : 1 Méthode 4 ^ tsl.ts3.ts4.ts2
Les tableaux prennent à lors leur position initiale : NORD : 1er tableau de la méthode EST : 2eme tableau de la méthode SUD : 3eme tableau de la méthode OUEST : 4eme tableau de la méthode
La séquence de décryptage par les tableaux de substitution commence.
Le premier caractère « : » sur le tableau 1 (12 en Figure 4) correspond au caractère « S » sur le tableau de référence.
La séquence de rotation est alors appelée. _ 1 le tableau ne subit aucune rotation (jamais de rotation sur le premier caractère). 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 2) 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 4) _ 0 le tableau subit une rotation d'un quart de tour vers la droite (Tableau 2) _ 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 4) _ 0 le tableau subit une rotation d'un quart de tour vers la droite (Tableau 2) _ 0 le tableau subit une rotation d'un quart de tour vers la droite (Tableau 1) _ 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 2) _ 1 le tableau subit une rotation d'un quart de tour vers la gauche (Tableau 4)
Le premier bit est extrait sans subir de rotation. Le second bit est à 1 le tableau ts2 est alors superposé sur le tableau de référence. Le caractère « -|- » correspond à « o » sur le tableau de référence. Le troisième bit est à 1, une rotation est de nouveau faite vers la gauche. C'est alors le tableau ts4 qui est utilisé pour décrypterle caractère « = ». Il est situé à la même position que le caractère « c » qui est alors récupéré. Quatrième bit à 0, rotation vers la droite, c'est de nouveau le tableau ts2 qui est utilisé pour substituer le caractère « f » par le caractère « r ». Et ainsi de suite. Nous obtenons alors la chaîne caractère suivante : : : -f = f η -1- §| a =
Socryptic
Authentification sur la ressource B A la réception des identifiants l'utilisateur à 5 minutes pour se logger sans quoi ces identifiants sont supprimés de la base LDAP. Ils seront également supprimés de la base de données côté Serveur lors d'une prochaine demande d'identifiant et remplacé par les nouveaux générés.
Exemple d'utilisation du cryptage, nous allons prendre la gestion d'un accès à distance:
Le client A ( Figure 1) veut accéder au serveur DATA via la rèssource B(Figure 1). Pour cela il va obtenir des identifiants de connexion qu'il sera le seul à pouvoir lire.
Il utiliseson smartphone ( Figure 1) sur lequel une application de gestion d'accès à distance a été au préalablement installée depuis une plateforme ( google play, Apps store, Blackberry, etc) Cette application sera développée de manière à récupérer : ΓΙΜΕΙ du téléphone, le numéro de téléphone du mobile utilisé (smartphone, tablette...), les coordonnées de géolocalisation latitude/longitude.
Mais également développée de manière à intégrer une fonction d'authentification personnelle (code pin, biométrie, etc...). Ces données, à l'exception de la géolocalisation, vont servir à établir l'ID unique de l'application qui sera généré lors de l’installation. Cet ID sera envoyé à la base de données lors de l'initialisation de l'application avec le serveur (première connexion).
Cet ID sera concaténé avec la méthode de substitution utilisée pour donner une clé propre à chaque transaction qui sera présente dans chaque message crypté et qui sera aussi associée à la géolocalisation.
Le client s'authentifie afin de lancer l'application (code pin, biométrie...)
Une fois authentifié l'application envoi une requête au serveur ( S Figure ). Cette requête contiendra le numéro de téléphone, ΓΙΜΕΙ (ou N° de série du processeur) et l'ID unique de l'application. A cet instant deux solutions sont possibles : L'ID existe dans la base et il est bien lié à ΓΙΜΕΙ contenu dans la requête, la séquence de génération des identifiants peut alors commencer. L'ID n'existe pas dans la base. Dans ce cas où le serveur ne trouve pas de correspondance entre ces différentes données, il créera une nouvelle entrée composée des : Numéro de téléphone, IMEI, ID de l'application
Une fois l'entrée faite le serveur demande l'identité de la personne (Nom et Prénom), ces données n'ont aucune valeur ajoutée en termes de sécurité mais permettront d'associer les différentes données à une personne (lors d'un appel de l'utilisateur vers le support par exemple).
Une fois l'identité enregistrée en base de données une série de 8 tableaux (4 tableaux de substitutions (Figure 4) + 3 tableaux de permutations + 1 tableau de correspondance) vont être sélectionnés aléatoirement en base de données et envoyés au client afin d'être chargés dans l'application. L'ID de chacun de ces tableaux sera alors associé à l'ID unique de l'application dans la base de données. Il leur sera également attribué un index tsl, ts2, ts3, ts4 pour les tableaux de substitution et de tpi à tp3 pour les trois tableaux de permutation et 1 pour le tableau de correspondance. Ainsi si l'application se fait attaquer et que l'attaquant est en possession de l'ensemble des tableaux (substitution, permutation, correspondance), il lui sera impossible de les corréler entre eux.
Cet échange d’initialisation des requêtes se fera via SSL et sera sécurisé à la fois par la connexion SSL et un bail donnant une durée de vie aléatoire aux différents tableaux allant de 1 jour, 1 semaine, 1 mois... A l'issue de ce bail une mise à jour de l'application sera demandée par le Serveur. Cette mise à jour utilisera les mêmes étapes qu’à l'initialisation en ce qui concerne la génération des tableaux. L'envoi vers le client se fera à l’initiative du Serveur. L'application est maintenant prête à fonctionner avec le cryptage. L'utilisateur déjà loggé sur son application fait une demande de génération d'identifiant pour accéder au seveur DATA via la ressource B ( Figure 1)
Cette requête contiendra : • L'ID unique de l'application • L'ID de transaction • Les données de géolocalisation À la réception le serveur extrait l'ID de transaction qui est associé en base les données à l’ID unique et extrait les données de géolocalisation pour exploitation.
La génération des identifiants nécessaire pour accéder au serveur data via la ressource B Figure l(login, password) est alors faite et associée à l'ID unique de l'application ainsi qu'à l'ID de transaction. Ces identifiants sont ensuite enregistrés dans la base LDAP gérant les identités et ils ne seront valables que pour une seule et unique connexion.
Si aucune connexion n'a eu lieu avec ces identifiants dans un délai de 5 minutes (durée : déterminée selon le niveau de sécurité) après l'envoi de la requête ils seront supprimés. ; Les identifiants sont alors cryptés de la manière décrite plus haut dans la technique du : cryptage.
Voici l’exemple d’une séquence synthétique : • Transformation de la chaîne de caractère en binaire stockage de la chaîne binaire • Arrêt du premier compteur déterminant les méthodes -^ stockage des méthodes • Arrêt du second compteur déterminant le pourcentage de position de la « clé » stockage du pourcentage • Cryptage de la chaîne de caractère par les tableaux de substitution • Intégration de la séquence de « rotation » • Intégration de la « clé » comprenant la méthode de substitution et l'ID d'application • Intégration du pourcentage de positionnement de la « clé » • Intégration des données de géolocalisation • Intégration du nombre de bit de la séquence de « rotation » • Cryptage par les tableaux de permutation • Ajout de l'ID de transaction • Ajout de la méthode de permutation • Envoi de la requête À la réception de la requête le client va procéder au décryptage de la manière décrite plus haut dans la technique du cryptage selon la séquence synthétique suivante : • Récupération des données de géolocalisation par le système intégré au client • Extraction de la méthode de permutation stockage de la méthode de permutation • Extraction de l'ID de transaction stockage de l'ID de transaction • Décryptage par les tableaux de permutation grâce à la méthode • Extraction du nombre de bit utilisés pour la séquence de « rotation » • Vérification des données de géolocalisation d'où 2 solutions possibles :
Les données récupérées dans la requête ne correspondent pas aux données venant d'être récupérées à la première étape de cette séquence (tentative potentielle de Man in The middle) Ce qui implique que le récepteur des identifiants n'est pas à la même position que le demandeur et le décryptage par les tableaux de substitution est alors rejeté.
Les données récupérées dans la requête correspondent aux données venant d'être récupérées à la première étape de cette séquence. La validation est faite. Le récepteur des identifiants étant à la même position que le demandeur. Le décryptage par les tableaux de substitution peut commencer. • Extraction du pourcentage de positionnement de la « clé » • Extraction de la méthode de substitution et de l'ID d'application • Extraction de la séquence de rotation • Décryptage par les tableaux de substitution. L'utilisateur est maintenant en possession des identifiants qu'il a demandé pour accéder au serveur data via la ressource B ( Figure 1) L'utilisateur dispose alors d'un délai, temps imparti pour accéder au serveur data via la ressource B (Figure 1) à l'aide des identifiants (login et password) temporaires fournis par le serveur (S). À l'authentification du client A sur la ressource B (Figure 1) avec les identifiant fournis (connexion SSL, VPN) le serveur (S) comparera la géolocalisation de la ressource B et de l'utilisateur client A. En fonction de la tolérance sur l'écart de distance entre A et B (déterminée dans les critères de l'installation initiale) la connexion de la ressource B avec le serveur data distant est établie ou refusée.
Chaque rejet effectué lors des vérifications des différents facteurs d'authentification, lèvera une alerte et un enregistrement sera fait des coordonnées de géolocalisation du demandeur et du récepteur, l'(es) ID de transaction ainsi que l'(es) ID d'application. Nous pourrons alors déterminer, la position de la victime et la position du « pirate ». Les ID d'application nous permettront de récupérer les identités, par le billet de l'identité enregistrée à l'initialisation de l'application lié à la vérification du numéro de téléphone par SMS et pièces justificatives vérifiées.
Domaine d'Application : Toute application fonctionnant soûls un environnement client-serveur transportant des données alphanumérique dont l'intégrité et la confidentialité doivent être préservés.
Exemple d'utilisation: • gestion de paiement • gestion des accès à distance • messagerie instantanée...

Claims (3)

  1. Revendications
    1. Procédé dé cryptage et décryptage dynamique et aléatoire de données offrant un nombre de combinaisons infinies fonctionnant sous une architecture Client/Serveur caractérisé en ce qu'il est unique à chaque utilisateur ne faisant appel ni à une fonction booléenne, ni à un échange de clé mais à la substitution de caractère et à la génération aléatoire de tableaux permettant la permutation de bit à bit avec les tableaux et les méthodes utilisées pour le cryptage et le décryptage qui sont définis de manière totalement aléatoire sans intervention humaine et transportant un ID, des données de position GPS avec une fonction de corrélation ayant valeur de répudiation
  2. 2. Procédé de cryptage et décryptage selon la revendication 1 où notre procédé de cryptage est dynamique et aléatoire offrant un nombre de combinaisons infinies unique à chaque utilisateur caractérisé en ce que chaque caractère converti en binaire, définit les changements de tableau et c'est ainsi que le choix des tableaux de substitution est fait de manière totalement aléatoire et dans la manière dont nous utilisons en même temps les deux concepts, où les tableaux utilisés sont choisis de manière totalement aléatoire et où chaque message qui doit être crypté fait partie du mécanisme de cryptage, ce qui le rend unique à chaque utilisateur et à chaque requête.
  3. 3. Procédé de cryptage et décryptage selon la revendication 1 dans laquelle nous utilisons la géolocalisation établie comme facteur de répudiation caractérisé en ce que le cryptage prend en compte des coordonnées de géolocalisation et que le décryptage n'est possible qu'après avoir effectué la corrélation de proximité entre ses deux positions, il ne fait pas appel à une clé secrète et le nombre de combinaisons est infini
FR1501468A 2015-07-10 2015-07-10 Cryptage avec geolocalisation embarquee Pending FR3038759A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1501468A FR3038759A1 (fr) 2015-07-10 2015-07-10 Cryptage avec geolocalisation embarquee

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1501468A FR3038759A1 (fr) 2015-07-10 2015-07-10 Cryptage avec geolocalisation embarquee

Publications (1)

Publication Number Publication Date
FR3038759A1 true FR3038759A1 (fr) 2017-01-13

Family

ID=57614599

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1501468A Pending FR3038759A1 (fr) 2015-07-10 2015-07-10 Cryptage avec geolocalisation embarquee

Country Status (1)

Country Link
FR (1) FR3038759A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095042A (zh) * 2021-03-23 2021-07-09 广州零端科技有限公司 一种字符串加密方法、系统、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095042A (zh) * 2021-03-23 2021-07-09 广州零端科技有限公司 一种字符串加密方法、系统、装置及存储介质
CN113095042B (zh) * 2021-03-23 2023-12-19 广州零端科技有限公司 一种字符串加密方法、系统、装置及存储介质

Similar Documents

Publication Publication Date Title
Sudhan et al. An innovative proposal for secure cloud authentication using encrypted biometric authentication scheme
CN109151053B (zh) 基于公共非对称密钥池的抗量子计算云存储方法和系统
Huang et al. Achieving big data privacy via hybrid cloud
WO2014118257A1 (fr) Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d&#39;une distance de hamming
EP2811708B1 (fr) Système et méthode pour l&#39;authentification d&#39;un utilisateur
CN106899406B (zh) 一种云端数据存储完整性的证明方法
EP2720199A1 (fr) Procédé sécurisé de commande d&#39;ouverture de dispositifs de serrure à partir de messages mettant en oeuvre un cryptage symétrique
CN109617677A (zh) 基于对称加密的秘钥丢失找回方法及相关设备
FR3100678A1 (fr) Génération d’un portefeuille contextuel multi-utilisateur de clés privées et utilisation d’un tel portefeuille
CN111242611A (zh) 一种用于恢复数字钱包密钥的方法及系统
WO2013170822A2 (fr) Procédé et dispositif de traitement de mot de passe pour la connexion à un serveur
CN109302283B (zh) 基于公共非对称密钥池的抗量子计算代理云存储方法和系统
US20200344076A1 (en) Authentication method and device
FR3038759A1 (fr) Cryptage avec geolocalisation embarquee
EP2940922A1 (fr) Cryptosystèmes symétriques avec clé publique basé sur l&#39;utilisation du groupe symétrique
CN110909387B (zh) 基于安全多方计算保存和恢复隐私数据的方法和装置
FR2690258A1 (fr) Procédé de contrôle d&#39;accès du type autorisant l&#39;accès à une fonction d&#39;exploitation d&#39;un module d&#39;exploitation à l&#39;aide d&#39;un mot de contrôle.
CN109687960A (zh) 基于多个公共非对称密钥池的抗量子计算代理云存储方法和系统
EP2807793B1 (fr) Procede d&#39;authentification d&#39;un dispositif comprenant un processeur et une carte a puce par generation d&#39;un motif
EP1897267B1 (fr) Proceédé pour disposer d&#39;un lien de communication sécurisé entre un utilisateur et une entité
FR2925730A1 (fr) Procede et systeme pour authentifier des individus a partir de donnees biometriques
WO2021156078A1 (fr) Procédé et dispositif d&#39;évaluation de correspondance d&#39;ensembles de données structurées protégées par le chiffrement
EP3266148B1 (fr) Dispositif et procédé d&#39;administration d&#39;un serveur de séquestres numériques
CN117118655B (zh) 一种基于信息伪装的网盘信息保护方法及系统
Yugandhara et al. Secure data storage and forwarding in cloud using AES and HMAC

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20170331

RN Application for restoration

Effective date: 20170425

PLFP Fee payment

Year of fee payment: 3

FC Favourable decision of inpi director general on an application for restauration.

Effective date: 20170601

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 6