Brevet FR2990317A1 — publié le 20131108

- 1 - « 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 oeuvre 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 oeuvre une machine de chiffrement de type Enigma à chiffrement symétrique, - 2 - 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 transmis audit client pour y être enregistrés. 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 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. - 3 - 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 oeuvre 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 oeuvre 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 oeuvre 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 oeuvre et d'un mode de réalisation nullement limitatif, et des dessins annexés suivants : - la figure 1 illustre la mise en oeuvre 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, et - la figure 4 précise un procédé de détermination d'une position initiale des rotors selon l'invention. Sur les figures un élément apparaissant sur plusieurs figures conserve la même référence. - 4 - 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 265*78!, soit plus de 1,34 * 10122 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 oeuvre 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'a 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, - 5 - 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 265 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 n1 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 - 6 - 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. 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 n1 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. - 7 - La clé chiffrée 404 est ensuite associée lors de l'étape Ti, 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 Ti a pour résultat les nombres (a=10,b=17,c=6,d=12, e=4). Le premier nombre n1 saisi par l'utilisateur est transformé lors de l'étape A(1,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 14ème position, à sa gauche en 21ème position, celui à la gauche du précédent en 14ème position, celui à la gauche du précédent en 24ème position, et le plus à gauche en 16ème 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 oeuvre 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; - 8 - . l'aléa chiffré est donc : IYNKDIYN. 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,m1,m2,m3,m4) associés à la clé 202 puis z=m0*26°+mi*261+m2*262+m3*263+m4*264. 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: z=6*26^0+13*26^1+2*26^2+8*26^3+0*26^4 = 6795198 on détermine une valeur dite Pdf, dépendante de z, selon l'algorithme suivant : indice=4 ; Si (z>10^indice) TantQue(z>10^indice): Indice++ ; Fin TantQue indice :=indice-1; Pdf := 10^indice ; Fin Si Sinon TantQue(z 10Aindice2) TantQue(I>10Aindice2): Indice2++ ; Fin TantQue Indice2 :=indice2-1; Pdf2 := 10^indice2 ; Fin Si Sinon TantQue(1 REVENDICATIONS1. Procédé de sécurisation d'une connexion à un serveur de données, mettant en oeuvre 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 transmis audit client pour y être enregistrés. 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 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.- 21 - 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 oeuvre 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 oeuvre 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 oeuvre 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 indiquant l'état de la communication entre le client et l'invité, ledit jeton n'existant qu'une fois la communication initiée.