Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OF SECURING ACCESS TO A DATA SERVER
Document Type and Number:
WIPO Patent Application WO/2013/164194
Kind Code:
A1
Abstract:
Method of securing a connection to a data server, implementing an encryption machine of Enigma type with symmetric encryption, comprising a prior step of registration of a user client with a data server, characterized in that this registration step comprises: entry by the user of so-called input parameters (202, 204, 206, 208), a processing by the encryption machine of the input parameters so as to generate temporary parameters (304, 310), comprising at least one step of random processing and a generation of output parameters (420, 428), a determination of securing data comprising an initial position of rotors (104) and an encryption alphabet (102) for the encryption machine, on the basis of the temporary parameters, the securing data being recorded by the server and connection identifiers being transmitted to the client.

Inventors:
GALLEGO LUIS (FR)
Application Number:
PCT/EP2013/058011
Publication Date:
November 07, 2013
Filing Date:
April 17, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GALLEGO LUIS (FR)
International Classes:
G09C3/04; G06F21/62; H04L9/06; H04L9/32
Foreign References:
EP2116951A22009-11-11
US20020035684A12002-03-21
US20110072264A12011-03-24
US20070115494A12007-05-24
Other References:
None
Attorney, Agent or Firm:
PONTET ALLANO & ASSOCIES (FR)
Download PDF:
Claims:
Revendications

1. Procédé de sécurisation d'une connexion à un serveur de données, mettant en œuvre une machine de chiffrement de type Enigma à chiffrement symétrique, comprenant une étape préalable d'inscription d'un client utilisateur auprès dudit serveur de données, caractérisé en ce que cette étape d'inscription comprend :

- une saisie par l'utilisateur de paramètres dits d'entrée (202, 204, 206, 208)

- un traitement par la machine de chiffrement des paramètres d'entrée pour générer des paramètres temporaires (304, 310), comprenant au moins une étape de traitement aléatoire et une génération de paramètres de sortie (420, 428),

- une détermination de données de sécurisation comprenant une position initiale de rotors (104) et d'un alphabet de chiffrement (102) pour ladite machine de chiffrement, à partir desdits paramètres temporaires, lesdites données de sécurisation étant enregistrées par ledit serveur et des identifiants de connexion étant transmis audit client. 2. Procédé selon la revendication 1, caractérisé en ce que le traitement des paramètres d'entrée comprend :

- une étape de détermination d'une configuration d'une machine de type Enigma,

- une étape d'utilisation de ladite configuration pour générer les données de sécurisation à partir desdits identifiants de connexion et paramètres.

3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que la connexion du client au serveur de données est conditionnée par une étape d'authentification comprenant:

- une étape de saisie et/ou d'envoi audit serveur des données de sécurisation,

- une étape de vérification par ledit serveur desdites données de sécurisation reçues, - une autorisation d'accès au serveur de données dans le cas où l'étape de vérification est concluante.

4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une étape pour télécharger depuis le serveur sur le client un logiciel implémentant la machine de chiffrement.

5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une étape de création d'un fichier de conversion de code sur le serveur.

6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une étape pour inscrire un utilisateur invité par un client déjà inscrit.

7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est mis en œuvre pour une dépose par un client de fichiers sur le serveur opéré en tant que coffre-fort. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est mis en œuvre pour une communication entre un client et un invité, par utilisation conjointe du serveur, d'une messagerie électronique et de la machine de chiffrement. 9. Procédé selon la revendication 8, caractérisé en ce qu'il est mis en œuvre dans une machine à état d'une communication entre un client et un invité.

10. Procédé selon la revendication 9, caractérisé en ce qu'il comprend une mise en place sur le serveur d'un jeton (j) indiquant l'état de la communication entre le client et l'invité, ledit jeton n'existant qu'une fois la communication initiée.

Description:
« Procédé de sécurisation d'accès à un serveur de données »

Le contexte de l'invention est celui des procédés et dispositifs de cryptographie, en particulier ceux de sécurisation d'un accès à un serveur de données.

Etat de la technique antérieure

On connaît des procédés et dispositifs de sécurisation d'accès à un serveur de données, notamment de type asymétrique. L'algorithme RSA et une implémentation de cet algorithme telle que PGP sont des exemples classiques de tels procédés et dispositifs.

Les procédés selon l'art antérieur ont principalement deux inconvénients : un besoin important de ressource en calcul et une certaine lenteur.

La sécurité de tels procédés repose en partie sur le procédé d'inscription d'un client ou d'un invité, générant des nombres aléatoires, ce qui rend impossible de rejouer le procédé inscription.

L'invention a pour but de pallier tout ou partie des inconvénients précédents en proposant un procédé et dispositif de sécurisation d'accès à un serveur de données, qui soient rapides et fournissent à un utilisateur les fonctionnalités d'authentification et de chiffrement.

L'invention a également pour but de proposer un procédé et un système de sécurisation d'accès à un serveur de données, empêchant un pirate de rejouer une session d'inscription auprès du serveur de données.

L'invention a également pour but de proposer un procédé et un système de sécurisation d'envoi de message par la messagerie électronique mettant en œuvre un procédé de chiffrement selon l'invention.

Exposé de l'invention

On atteint au moins l'un des objectifs précités avec un procédé de sécurisation d'une connexion à un serveur de données, mettant en œuvre une machine de chiffrement de type Enigma à chiffrement symétrique, comprenant une étape préalable d'inscription d'un client utilisateur auprès dudit serveur de données, caractérisé en ce que cette étape d'inscription comprend : - une saisie par l'utilisateur de paramètres dits d'entrée,

- un traitement par la machine de chiffrement des paramètres d'entrée pour générer des paramètres temporaires, comprenant au moins une étape de traitement aléatoire et une génération de paramètres de sortie,

- une détermination de données de sécurisation comprenant une position initiale de rotors et d'un alphabet de chiffrement pour ladite machine de chiffrement, à partir desdits paramètres temporaires,

lesdites données de sécurisation étant enregistrées par ledit serveur et des identifiants de connexion étant transmis audit client.

Les identifiants de connexion peuvent être enregistrés par le serveur.

Avantageusement le traitement des paramètres d'entrée peut comprendre :

- une étape de détermination d'une configuration d'une machine de type Enigma,

- une étape d'utilisation de la configuration pour générer les données de sécurisation à partir des identifiants de connexion et paramètres.

Avantageusement, la connexion du client au serveur de données peut être conditionnée par une étape d'authentification comprenant:

- une étape de saisie et/ou d'envoi au serveur des données de sécurisation,

- une étape de vérification par le serveur des données de sécurisation reçues,

- une autorisation d'accès au serveur de données dans le cas où l'étape de vérification est concluante.

Dans une version particulière, le procédé selon l'invention peut en outre comprendre une étape pour télécharger depuis le serveur sur le client un logiciel implémentant la machine de chiffrement.

Avantageusement, le procédé selon l'invention peut entre comprendre une étape de création d'un fichier de conversion de code sur le serveur.

Dans une version particulière, le procédé selon l'invention peut en outre comprendre une étape pour inscrire un utilisateur invité par un client déjà inscrit.

Avantageusement, le procédé selon l'invention peut être mis en œuvre pour une dépose par un client de fichiers sur le serveur opéré en tant que coffre-fort. Dans une version particulière, le procédé selon l'invention peut être mis en œuvre pour une communication entre un client et un invité, par utilisation conjointe du serveur, d'une messagerie électronique et de la machine de chiffrement.

Avantageusement, le procédé selon l'invention peut être mis en œuvre dans une machine à état d'une communication entre un client et un invité.

Avantageusement, le procédé selon l'invention peut comprendre une mise en place sur le serveur d'un jeton indiquant l'état de la communication entre le client et l'invité, le jeton n'existant qu'une fois la communication initiée.

Description détaillée de l'invention

D'autres avantages et particularités de l'invention apparaîtront à la lecture de la description détaillée de mises en œuvre et d'un mode de réalisation nullement limitatif, et des dessins annexés suivants :

- la figure 1 illustre la mise en œuvre classique d'une machine Enigma,

- la figure 2 est un schéma des entrées et sorties d'un procédé de détermination d'un alphabet de chiffrement et d'une position initiale des rotors selon l'invention,

- la figure 3 précise un procédé de détermination d'un alphabet de chiffrement selon l'invention,

- la figure 4 précise un procédé de détermination d'une position initiale des rotors selon l'invention,

- la figure 5a illustre les changements d'état possibles de la machine à état d'un client et leurs significations pour le client, et

- la figure 5b illustre les changements d'état possibles de la machine à état d'un l'invité et leurs significations pour l'invité.

Sur les figures un élément apparaissant sur plusieurs figures conserve la même référence.

La figure 1 illustre l'utilisation classique d'une machine Enigma 100. L'utilisation d'une machine telle machine 100 nécessite de l'initialiser selon une configuration précise. Cette configuration est ici entièrement déterminée par un alphabet de chiffrement 102 et la position initiale de rotors 104. Une fois cette configuration déterminée, un texte à chiffrer 106 peut effectivement être chiffré par la machine 100 pour générer un texte chiffré 108. Le déchiffrement du texte chiffré s'effectue en repositionnant la machine Enigma selon la configuration précise. Le déchiffrement du texte chiffré 108 est obtenu par chiffrement du texte chiffré 108. Le déchiffrement du texte chiffré 108 conduit au texte à chiffrer 106. En effet, la machine Enigma est un procédé de chiffrement symétrique.

Une machine Enigma à 5 rotors de 26 positions et selon un alphabet de 78 caractères, le nombre de configurations possible est de 26 5 *78!, soit plus de 1,34 * 10 122 configurations. Le chiffrement Enigma est donc sûr lorsque la transmission de la configuration choisie pour le chiffrement est sûr.

Dans l'exemple de réalisation décrit ci-après, il est mis en œuvre un procédé d'utilisation informatique d'une machine Enigma à cinq rotors et 78 caractères. Il est bien compris que ces choix ne sont donnés qu'à titre d'exemple.

Dans la suite de cet exposé, une clé désigne un ensemble de cinq caractères choisis dans l'ensemble A— Z.

A une clé sont associés 5 nombres qui la définissent, tous entre 0 et 25 et réciproquement, selon la correspondance suivante : le premier nombre correspond à la position dans l'alphabet du premier caractère. A cinq nombres tous entre 0 et 25 est également associée une et une seule clé.

A titre d'exemple, la clé associée aux nombres (6,13,2,8,0) est GNCIA et réciproquement.

Selon l'invention, un chiffrement, dit simple, d'un texte par une clé consiste en un chiffrement obtenu par décalage de chaque lettre du texte d'un nombre de lettres égal au double de la somme des cinq nombres associés à la clé, modulo 26.

A titre d'exemple, le résultat du chiffrement par la clé GNCIA du texte SECRET est YKIXKZ. En effet,

- les 5 nombres associés à la clé GNCIA sont (6,13,2,8,0),

- le double de la somme des nombres associés à la clé, modulo 26, est 6,

- le décalage de la lettre S(18) a pour résultat la lettre Y(24) et ainsi de suite pour les lettres E(4),C(2),R(17),E(4),T(19) qui sont chiffrées par les lettres K(10),I(8),X(23),K(10),Z(25). Procédé de détermination d'un alphabet de chiffrement 102 et procédé de détermination d'une position initiale des rotors 104.

Procédé de détermination d'un alphabet de chiffrement 102

La figure 2 illustre l'utilisation d'un procédé selon l'invention pour déterminer un tel alphabet de chiffrement 102 parmi les 78! possibles ainsi qu'une position des rotors parmi les 26 5 possibles.

Ce procédé nécessite le choix par un utilisateur d'une clé 202, ainsi que de trois nombres ni, n2 et n3, respectivement référencés 204, 206 et 208. Par ailleurs, le procédé nécessite également l'utilisation d'un fichier 210 appelé an, qui sera décrit par la suite.

De manière plus précise, ce procédé selon l'invention peut être décomposé en deux sous-procédés 212 et 214.

Le sous-procédé 212 a pour entrées les nombres n2 et n3 ainsi que le fichier An et pour sortie l'alphabet de chiffrement 102.

Le sous-procédé 214 a pour entrées la clé, le nombre ni et la valeur ValSer et pour sortie la position des rotors 104.

La figure 3 illustre le sous-procédé 212 de détermination de l'alphabet de chiffrement 102 à partir des nombres n2, n3 ainsi que du fichier An.

Le nombre n2 saisi par l'utilisateur est transformé lors de l'étape A(0,77), 302, en un nombre aléatoire 304, dit NbChoix, entre 0 et 77. Ensuite, une étape 306, détermine l'un des 78 alphabets pré-générés à partir de NbChoix. Ces alphabets sont générés par décalages circulaires successifs. On obtient donc le choix d'un premier alphabet Cl temporaire.

Le troisième nombre n3 est transformé lors de l'étape A(9, 39), 308, en un nombre aléatoire 310, dit Chgt, entre 9 et 39. Une étape T5 est ensuite réalisée. Elle a pour entrée le premier alphabet temporaire cl ainsi que le nombre Chgt. Cette étape T5 a pour sortie un second alphabet C2 temporaire.

Les nombres aléatoires 304 et 310 sont également des paramètres temporaires générés lors de l'étape d'inscription.

Dans une première partie de l'étape T5, le premier bloc de Chgt caractères du premier alphabet temporaire est permuté avec le dernier bloc de Chgt caractères du premier alphabet temporaire. S'il existe, le second bloc de Chgt caractères du premier alphabet temporaire est ensuite permuté avec l'avant dernier bloc de Chgt caractères du second alphabet temporaire. La même opération est répétée avec le troisième bloc de Chgt caractères s'il existe est permuté avec l'antépénultième bloc de Chgt, et on procède ainsi tant que cela est possible. Dans la seconde partie de l'étape T5, une rotation de t caractères est appliquée sur l'alphabet résultant du traitement qui vient d'être décrit. La valeur t est égale à la valeur NbChoix, élevée à la puissance 4, module 78. L'alphabet résultant de ce dernier traitement est le second alphabet temporaire C2.

Une étape T6, 316, est ensuite réalisée. Elle a pour entrée le second alphabet temporaire C2, 316, ainsi qu'un fichier An, 210. Cette étape T6 a pour sortie l'alphabet de chiffrement.

Le fichier An est un fichier de connexions. Ce fichier contient 10 lignes. Chaque ligne est un tableau d'entiers de 0 à 77. Ce tableau comprend 78 entiers. Il indique les permutations à effectuer sur le second alphabet temporaire C2 pour obtenir l'alphabet de chiffrement. Chaque ligne correspond au dernier chiffre de l'année d'inscription du client. Ainsi, la troisième ligne est utilisée pour l'année 2012.

La connaissance directe des valeurs NbChoix et Chgt ainsi que du fichier An permet donc la détermination précise d'un alphabet de chiffrement.

Procédé de détermination d'une position initiale des rotors 104

La figure 4 illustre le sous-procédé 214 de détermination de la position initiale des rotors 104 à partir d'une clé 202, et du nombre ni 204.

La clé 202 est chiffrée lors de l'étape 402 par le chiffrement simple de la clé 202 par elle même. A titre d'exemple, le résultat de l'étape 402 pour une clé 202 est UBQWO est une clé chiffrée 404 égale à KRGME. En effet, le chiffrement par la clé 202 consiste en un décalage de 16 crans modulo 26.

La clé chiffrée 404 est ensuite associée lors de l'étape Tl, 406 aux cinq nombres 408 qui la définissent, ici notés (a,b,c,d,e). A titre d'exemple, lorsque la clé chiffrée 404 est KRGME, la transformation Tl a pour résultat les nombres (a= 10, b= 17,c=6,d= 12, e=4).

Le premier nombre ni saisi par l'utilisateur est transformé lors de l'étape A(l, 16), 410, en un nombre aléatoire x, 412, entre 1 et 16. Le nombre x est utilisé lors de l'étape T2, 414, pour générer cinq nouveaux nombres. Le résultat de la transformation est obtenu à l'étape 416 et est un nombre appelé y. La transformation T2 est effectuée de la manière suivante :

- le nombre x est additionnée au nombre a, modulo 26,

- le nombre x+ 1 est additionné au nombre b, modulo 26,

- le nombre x+2 est additionné au nombre c, modulo 26,

- le nombre x+3 est additionné au nombre d, modulo 26, et

- le nombre x+4 est additionné au nombre e, modulo 26.

A titre d'exemple, lorsque x=6, cette seconde transformation a pour résultat 416 les cinq nombres y (16,24, 14,21, 14). Ces nombres définissent la position initiale 104 des rotors de la machine Enigma . Le rotor de droite est placé en i4 eme position, à sa gauche en 21 eme position, celui à la gauche du précédent en i4 eme position, celui à la gauche du précédent en 24 eme position, et le plus à gauche en 16 eme position.

De plus, lors de l'étape T, 418, le nombre x est transformé en un ensemble de 8 caractères, dit aléa, obtenu à l'étape 420. Cette transformation met en œuvre un tableau de correspondance entre le nombre x et l'aléa. A un nombre x correspond un et un seul aléa . Par exemple, au nombre x=6, un tableau de correspondance fait correspondre les caractères SIXUNSIX.

L'aléa est chiffré selon le procédé suivant :

. les lettres SIXUNSIX correspondent aux nombre 18 8 23 20 13 18 8 23 ;

. le chiffrement par la clé 202 UBQWO de l'alea consiste, ainsi qu'il a été vu plus haut, en un décalage de 16 crans modulo 26, ce qui correspond aux nombres 8 24 13 10 3 8 24 13;

. l'aléa chiffré est donc : IYN KDIYN .

En outre, la figure 4 illustre une étape A(0, 99), 422, au cours de laquelle un nombre aléatoire ValSer, 424, est généré entre 0 et 99.

La clé 202 et la valeur ValSer 424 sont utilisées lors de l'étape T3, 426, pour générer un code, 428 selon le procédé qui suit : - calcul d'un nombre z correspondant à la clé 202 par détermination des cinq nombres (m0,m l,m2,m3,m4) associés à la clé 202 puis z=mo*26 0 +m 1 *26 1 + m 2 *26 2 + rTi3*26 3 + rTi4*26 4 .

A titre d'exemple et lorsque la clé est UBQWO, les cinq nombres associés à la clé UBQWO sont (20,1,16,22,14) et:

13*26 Λ 1 + 2*26 Λ 2 + 8*26 Λ 3 + 0*26 / = 6795198

- on détermine une valeur dite Pdf, dépendante de z, selon l'algorithme suivant :

indice=4 ;

Si (z>10 A indice)

TantQue(z>10 A indice):

lndice++ ;

Fin TantQue

indice :=indice-l ;

Pdf := 10 A indice ;

Fin Si

Sinon

TantQue(z<10 A indice)

Indice-- ;

Fin TantQue

Pdf := 10 A indice ;

Fin Sinon

La valeur indice est ici : indice=6

La valeur Pdf est ici : Pdf= 1000000

- on applique l'algorithme suivant au nombre z

Si(2*10 A 6<Z<3*10 A 6) pdf*=2 ;

Si (z-pdf<=pdf) ALORS z :=d-10 (indice _1) -ValSer; Fin Si

Sinon z :=z-pdf-ValSer; Fin Sinon

Dans l'exemple donné, pour la clé 202 égale à UBQWO et une valeur 242, ValSer, égale à 7, le code 428 obtenu est : 5795191.

La valeur alea 420 et le code 428 sont des paramètres de sortie générés lors de l'étape d'inscription.

Création d'un fichier de conversion de code sur le serveur Il est créé sur le serveur un fichier comportant 26 Λ 5 lignes renseigné selon un procédé maintenant décrit :

Pour tous 5-uplet (a,b,c,d,e) où a,b,c,d,e sont des nombre compris entre 0 et 25, calculer p=a*26^0 + b*26^ 1 +c*26^2+d*26^3+e*26 / et inscrire dans la p+ 1 ème ligne en colonne les nombres a,b,c,d,e.

Ainsi, connaissant le nombre 6795198, la lecture de la 6795199 ème ligne conduit à la connaissance du le 5-uplet (20,1,16,22, 14).

Bien entendu, ces n-uplets peuvent être enregistrés dans une base de donnée parcourue à l'aide d'un arbre B+, plutôt qu'écrits dans un fichier. Dans la suite de l'exposé, il sera fait référence à un fichier, dit fichier de conversion.

Procédé d'inscription et procédé d'authentification d'un client ou d'un invité sur un terminal serveur de données II va maintenant être exposé un procédé d'inscription et de d'authentification de l'accès à des données situées sur un serveur. Ce procédé d'inscription et d'authentification d'un client ou d'un utilisateur selon l'invention met en œuvre un procédé précédemment décrit pour déterminer un alphabet de chiffrement 102 et un procédé selon l'invention pour déterminer une position initiale des rotors 104.

Le procédé d'inscription d'un utilisateur selon l'invention distingue un utilisateur, dit client, d'un utilisateur, dit invité, qui est un utilisateur invité par au moins un client. Selon l'invention, toute personne peut devenir un utilisateur client. Pour devenir un utilisateur invité d'un utilisateur client selon l'invention, il faut que l'utilisateur client invite la personne souhaitant être l'utilisateur invité.

Il en résulte que les procédures d'inscription d'un utilisateur client et d'un utilisateur invité sont différentes. Procédé d'inscription et d'authentification d'un client sur un serveur de données

Procédé d'inscription d'un client

Lorsqu'un utilisateur souhaite s'inscrire auprès du serveur, un formulaire est affiché à l'écran du terminal utilisateur et il est demandé à l'utilisateur de saisir une adresse email ainsi qu'un mot de passe. Il est aussi demandé à l'utilisateur de saisir une suite de cinq caractères, dite Clé, constituée de lettres choisies dans l'ensemble A— Z. Il est aussi demandé à l'utilisateur de choisir trois nombres ni, n2 et n3 entre 1 et 10.

Le serveur met en œuvre un procédé de détermination d'un alphabet de chiffrement 102 selon l'invention. Les valeurs n2, 206, et n3, 208, du sous- processus de détermination 212 d'un alphabet de chiffrement 102 selon l'invention sont les nombres n2 et n3 saisis par l'utilisateur. Le fichier An 210 est un fichier de connexions préétablies uniquement connu du terminal serveur. Ainsi, le déchiffrement est impossible sans la connaissance de ce fichier, ce qui de fait, authentifie le terminal serveur lorsque le déchiffrement est correct. Des valeurs NbChoix 304 et Chgt 310 sont générées par le serveur lors de la mise en œuvre de ce sous-processus 212 de détermination d'un alphabet de chiffrement.

Le serveur met en œuvre un procédé de détermination de la position initiale des rotors 104 selon l'invention. La valeur ni, 204, du sous- processus de détermination 214 d'une position initiale des rotors 104 selon l'invention est le nombre ni saisi par l'utilisateur. La Clé 202 de ce sous- processus 214 est la Clé saisie par l'utilisateur. La valeur ValSer 424 est générée lors de l'étape 422 par le serveur. Cette valeur ValSer peut aussi être lue depuis une carte d'acquisition reliée au terminal serveur. Une nouvelle valeur ValSer est générée à chaque inscription. Les valeurs alea 420 et code 428 sont générées par le serveur lors de la mise en œuvre de ce sous-processus 214 de détermination d'une position initiale des rotors.

Une fois l'alphabet de cryptage définitif et la position initiale des rotors déterminés, la machine Enigma 100 est positionnée dans une configuration de chiffrement. Dans cette configuration de chiffrement, le terminal serveur chiffre l'email de l'utilisateur.

Par ailleurs, des informations relatives au nouveau client sont enregistrées dans une table client d'une base de données au niveau du serveur. Ces informations comprennent un identifiant du client, clé primaire de la table client de la base de données. Les autres informations enregistrées relatives au nouveau client sont les valeurs ValSer, l'email (non chiffré) ainsi que l'année d'inscription du client. Le client est informé des valeurs du code correspondant à la clé, soit 428, aléa chiffré, mot de passe et identifiant du client.

Le terminal serveur enregistre également pour chaque client trois fichiers nommés JeuCle, Config, Phrase.

Le fichier JeuCle comprend la valeur ValSer.

Le fichier Config contient les valeurs Chgt, NbChoix, et mot de passe (non chiffré).

Le fichier Phrase contient le résultat du chiffrement de l'email.

Le mot de passe et l'identifiant du client sont des paramètres de sortie de l'étape d'inscription d'un client.

Trois petits fichiers (« cookies ») sont également déposés sur le terminal du client.

Authentification d'un client

Une fois inscrit, un utilisateur client connaît son code, aléa chiffré, mot de passe et identifiant. De plus, les trois fichiers (« cookies ») décrits plus haut sont enregistrés dans son terminal .

Lorsqu'un utilisateur souhaite se connecter au terminal serveur, il remplit un formulaire d'authentification dans lequel il saisit son code, alea chiffré, mot de passe, et son identifiant.

Ensuite, le serveur récupère les trois cookies déposés sur le terminal client pour retrouver les trois fichiers JeuCle, Config, et Phrase, relatifs au client, qu'il a enregistrés sur le terminal serveur lors de l'inscription du

Client.

Une première comparaison est effectuée entre le mot de passe contenu dans le fichier Config et celui saisi dans le formulaire.

Détermination de l'alphabet de chiffrement 102

Les valeurs Chgt et NbChoix provenant du fichier Config sont utilisés par le serveur pour déterminer l'alphabet Cl 306, puis l'alphabet C2 314. La connaissance par le serveur du fichier An ainsi que de la date d'inscription du client enregistrée dans la table client et associée à l'identifiant du client, permet au serveur de mettre en œuvre l'étape T6 316 l'alphabet définitif. L'alphabet définitif ne peut donc être valablement déterminé que par le serveur sur lequel le client s'est inscrit. Détermination de la position initiale des rotors 104

La connaissance de la valeur ValSer présente dans le fichier JeuCle ainsi que celle du code saisi dans le formulaire conduit à la détermination de la clé 202. Le procédé suivant est utilisé :

- ajout du code et de la valeur ValSer. Lorsque le code saisit par le client dans le formulaire est 5795191 et que la valeur ValSer est 7 :

- le code saisi additionné à la valeur ValSer pour obtenir une valeur temporaire : 1 = 5795198

- on détermine une valeur dite Pdf2, dépendante de I, selon l'algorithme suivant :

indice2=4 ;

Si (l>10 indice2)

TantQue(l>10 A indice2):

Indice2++ ;

Fin TantQue

Indice2 :=indice2-l ;

Pdf2 := 10 A indice2 ;

Fin Si

Sinon

TantQue(l<10 A indice2)

Indice2- ;

Fin TantQue

Pdf := 10 A indice2 ;

Fin Sinon

La valeur indice2 est ici : indice=6

La valeur Pdf est ici : Pdf2= 1000000

- Si(2*10 A 6<l<3*10 A 6) pdf*=2 ;

- si l-pdf2< = pdf2 alors I = | + io indice2"1 sinon I = l + pdf2.

Ici la condition I = pdf2< = pdf2 n'est pas vérifiée et 1 = 6795198

On utilise ensuite le fichier de conversion de code préalablement construit. Ce fichier associe directement à la ligne 6795199 les cinq nombres (20, 1, 16 ,22 , 14) associés aux caractères UBQWO.

Le serveur a ainsi connaissance de la clé 202. Connaissant l'aléa chiffré saisi par l'utilisateur, par exemple IYN KDIYN et la clé 202, par exemple UBQWO, le serveur peut déchiffrer l'aléa chiffré pour obtenir l'aléa 420. Il a été vu plus haut que le chiffrement par la clé UBQWO consistait en un décalage de 6 lettres. Ainsi le déchiffrement de l'aléa chiffré IYN KDIYN a pour résultat SIXUNSIX.

La connaissance de l'aléa 420 et du fichier permettant d'inverser l'étape T 418 décrite plus haut conduit le serveur à la connaissance de la valeur 412 x. A titre d'exemple, la valeur x associé à l'aléa SIXUNSIX est 6.

Connaissant la clé 202 et la valeur x 412, le serveur peut mettre en œuvre les étapes 402, 406 et 414 et ainsi trouver la valeur 416 y. La valeur 416 y définit la position initiale 104 des rotors comme décrit précédemment.

Déchiffrement et authentification

Le terminal serveur déchiffre alors le contenu du fichier Phrase et compare le résultat de ce déchiffrement à Vemail correspondant dans la table client à l'identifiant identifiant. Lorsque cette comparaison est concluante, l'utilisateur est authentifié.

Procédé d'inscription et d' authentification d'un invité sur un serveur de données

Procédé d'inscription d'un invité

Pour permettre à un invité de s'inscrire auprès du terminal serveur, un client auparavant inscrit s'authentifie auprès du terminal serveur.

Une fois authentifié, le client crée un invité en saisissant dans un formulaire son adresse email et le nom de l'invité. Le pseudonyme est alors la concaténation du nom de l'invité avec l'identifiant du client.

Le client transmet à son invité son pseudonyme par un autre canal de communication que la messagerie internet.

Pour s'inscrire auprès du serveur, l'invité procédera aux étapes décrites dans la partie d'inscription d'un client à l'exception d'une information : l'information de mot de passe est remplacée par celle de pseudonyme attribué par le client.

Pour pouvoir créer un compte invité pirate, il faut donc connaître l'adresse email ainsi que le pseudonyme saisis par le client. Authentification d'un invité

L'invité procède de la même manière qu'un client pour s'authentifier auprès du terminal serveur à l'exception du mot de passe qui est remplacé par son pseudonyme.

Ainsi, la sécurité du système repose en partie sur le procédé d'inscription d'un client ou d'un invité, générant des nombres aléatoires, ce qui rend impossible de rejouer le procédé inscription.

Par ailleurs, la dépose de petits fichiers (« cookies ») sur le terminal client ou invité rend vaine l'interception des données générées par le serveur et envoyées au client car il n'est pas possible de s'authentifier sans que ces fichiers soient sur le terminal client ou invité.

Enfin, l'utilisation du fichier An, seul connu du serveur après l'inscription, assure l'authentification du terminal serveur lorsque le client s'authentifie auprès du terminal serveur.

Fonctionnalités de la mise en œuvre du serveur selon l'invention

Accès à un coffre-fort.

Une fois authentifié, un client peut enregistrer sur le serveur des fichiers. Ces fichiers ne seront consultables que par lui-même et ses invités. Le client peut également supprimer ses fichiers. L'invention permet ainsi d'assurer l'authentification du client au coffre-fort qu'est le serveur et qui contient les fichiers du client.

Communication sécurisée d'un client avec un invité

Par ailleurs, l'invention permet également à un client de communiquer avec un invité de manière sécurisée.

La communication d'un client avec un invité s'effectue à travers l'utilisation conjointe du serveur selon l'invention et de la messagerie électronique et d'une machine à chiffrer selon l'invention.

Description d'une machine à chiffrer selon l'invention

Une machine à chiffrer selon l'invention est un logiciel fourni avec sa documentation et un fichier de conversion de code tel que définit plus haut. Le logiciel de la machine à chiffrer selon l'invention permet le chiffrement et le déchiffrement de message au moyen d'une machine Enigma à 5 rotors et utilisant un alphabet de 78 caractères. Ainsi qu'il a été vu plus haut, la détermination de la position initiale des rotors pour chaque texte à chiffrer dépend :

- de la clé 202 et du nombre ni 204, choisis par un utilisateur à chaque chiffrement,

- d'une valeur ValSer 424 propre à l'utilisateur qui est déterminée lors du processus d'inscription de l'utilisateur et qui demeure la même pour tous chiffrements ultérieurs.

La détermination de l'alphabet de chiffrement pour chaque texte dépend :

- des valeurs n2 et n3, choisies par l'utilisateur à chaque chiffrement,

- d'un fichier An 210 propre à l'utilisateur et qui demeure le même pour tous chiffrements ultérieurs.

Ainsi qu'il a été vu plus haut, la détermination de la position initiale des rotors utilisée pour le chiffrement du texte résulte de :

- la connaissance du Code 428 et de l'aléa chiffré présents dans le fichier Config et généré à chaque chiffrement, et

- la connaissance de la valeur ValSer propre à la personne ayant chiffré le texte et qui demeure la même pour tous chiffrements ultérieurs ainsi que du fichier de conversion de code.

Ainsi qu'il a été vu plus haut, la détermination de l'alphabet utilisé pour le chiffrement du texte résulte de :

- la connaissance des Chgt et NbChoix déterminées lors du chiffrement,

- ainsi que de la connaissance du fichier An.

Machine à état d'une communication entre un client et un invité

On appelle client la personne qui initie la communication.

Pour chaque couple de client/invité, il est mis en place sur le serveur un jeton indiquant l'état de la communication entre le client et l'invité. Ce jeton n'existe qu'une fois la communication initiée. Lorsqu'une communication a été initiée, ce jeton peut alors prendre trois valeurs : j = 0, j = l et j = 2.

La figure 5a et 5b illustrent les valeurs possibles du jeton et leur signification :

- lorsque le jeton est j = 0, il s'agit d'une fin de communication,

- lorsque le jeton est j = l, l'invité a reçu un message du client, et

- lorsque le jeton est j = 2, le client a reçu un message de l'invité en réponse à son message préalablement envoyé. La communication entre client et invité est concurrente. Pour ce faire, il existe deux machines à état: une pour le client et une pour l'invité. Ces deux machines indiquent l'état de la communication entre le client et l'invité.

La figure 5a illustre les changements d'état possibles (cercles El et E2) de la machine à état du client et leurs significations pour le client.

L'état E0 représente le moment auquel le client souhaite initier une communication. Un test, représenté par le losange Test sur la figure, de la valeur du jeton est alors réalisé :

- lorsque la valeur du jeton est j = 0, la machine à état du client passe à l'état El,

- lorsque la valeur du jeton est j= l, la machine à état du client revient à l'état E0, et

- lorsque la valeur du jeton est j = 2, la machine à état de communication du client passe à l'état E2.

A l'état El, le client peut envoyer un message à destination de son invité :

- s'il ne l'a pas déjà téléchargée, le client s'authentifie auprès du serveur, télécharge une machine à chiffrer selon l'invention, ainsi que ses fichiers An et ValSer,

- le client chiffre un message en utilisant sa machine de chiffrement selon l'invention, s'authentifie le cas échéant à nouveau sur le serveur et met à disposition de l'invité le fichier Config généré par le chiffrement de son message, le jeton est alors positionné à 1 et la machine à état du client passe à l'état E0. - le client envoie par messagerie électronique le résultat du chiffrement de son message qui est généré par la machine de chiffrement selon l'invention ainsi que son code, son mot de passe et son alea .

A l'état E2, le client a reçu une réponse de l'invité suite à l'envoi de son premier message.

- le client s'authentifie auprès du serveur et télécharge le fichier Config mis à disposition par l'invité après un chiffrement de message de réponse généré par l'invité. Le jeton est alors positionné à j = 0 et la machine à état du client passe à l'état E0.

- le client utilise la machine de chiffrement selon l'invention pour déchiffrer le message chiffré reçu de l'invité par messagerie électronique. La figure 5b illustre les changements d'état possibles (cercles El, E2 et

E3) de la machine à état de l'invité et leurs significations pour l'invité.

L'état E0 représente le moment auquel l'invité consulte sa boite aux lettres sur le serveur. Un test, représenté par le losange Test sur la figure, de la valeur du jeton est alors réalisé :

- lorsque la valeur du jeton est j = l, la machine à état de l'invité passe à l'état El,

- lorsque la valeur du jeton est j = 0, l'invité a reçu un message de la part du client. Un test, représenté par le losange A sur la figure est alors réalisé, et

- lorsque la valeur du jeton est j = 2, la machine à état de communication de l'invité revient à l'état E0.

Lors du test A, l'invité choisit de répondre ou non au message du client qu'il a reçu . S'il choisit de ne pas répondre, la machine à état de communication de l'invité revient à l'état E0. S'il choisit de répondre, la machine à état de communication de l'invité passe à l'état E2.

A l'état El, l'invité a reçu un message du client :

- s'il ne l'a pas déjà téléchargée, l'invité s'authentifie auprès du serveur, télécharge une machine à chiffrer selon l'invention, ainsi que le fichier ValSer et An mis à disposition par le client, - l'invité déchiffre le message en utilisant également les codes et aléa chiffrés fournis par le client et reçus par messagerie électronique en utilisant sa machine de chiffrement selon l'invention, s'authentifie le cas échéant à nouveau sur le serveur et télécharge le fichier Config mis à disposition par le client. Le jeton est alors positionné à 0. La machine à état de l'invité passe à l'état E0.

- le client envoie par messagerie électronique le résultat du chiffrement de son message qui est généré par la machine de chiffrement selon l'invention ainsi que son code, son mot de passe et son alea .

A l'état E2, l'invité envoie un message en réponse à celui reçu du client

- l'invité chiffre un message en utilisant la machine de chiffrement selon l'invention, s'authentifie le cas échéant à nouveau sur le serveur et met à disposition du client le fichier Config généré par le chiffrement de son message, le jeton est alors positionné à 2 et la machine à état de l'invité passe à l'état E0.

- l'invité envoie par messagerie électronique le résultat du chiffrement de son message qui est généré par la machine de chiffrement selon l'invention ainsi que son code, son mot de passe et son alea.

Ainsi, le procédé selon l'invention réalise à la fois l'authentification et le chiffrement de données. Par ailleurs, la dépose de petits fichiers (« cookies ») sur le terminal client ou invité rend vaine l'interception des données générées par le serveur et envoyées au client car il n'est pas possible de s'authentifier sans que ces fichiers soient sur le terminal client ou invité. Il n'est donc pas possible par la suite d'utiliser les fonctions de coffre-fort ou de télécharger une machine de chiffrement selon l'invention par la suite.

Enfin, l'utilisation du fichier An, seul connu du serveur après l'inscription, assure l'authentification du terminal serveur lorsque le client s'authentifie auprès du terminal serveur

Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention.