FR3079989A1 - Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données - Google Patents

Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données Download PDF

Info

Publication number
FR3079989A1
FR3079989A1 FR1800295A FR1800295A FR3079989A1 FR 3079989 A1 FR3079989 A1 FR 3079989A1 FR 1800295 A FR1800295 A FR 1800295A FR 1800295 A FR1800295 A FR 1800295A FR 3079989 A1 FR3079989 A1 FR 3079989A1
Authority
FR
France
Prior art keywords
key
pseudo
encryption
data
selection
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.)
Granted
Application number
FR1800295A
Other languages
English (en)
Other versions
FR3079989B1 (fr
Inventor
Youssef Ben-Naser
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 FR1800295A priority Critical patent/FR3079989B1/fr
Priority to PCT/FR2019/050845 priority patent/WO2019197780A1/fr
Priority to EP19726049.0A priority patent/EP3777007A1/fr
Publication of FR3079989A1 publication Critical patent/FR3079989A1/fr
Application granted granted Critical
Publication of FR3079989B1 publication Critical patent/FR3079989B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26606Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Nonlinear Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention a notamment pour objet un procédé de chiffrement ou déchiffrement d'un flux de données, le procédé comprenant les étapes suivantes, - génération d'une liste de nombres pseudo-aléatoires ; - création d'un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ; - pour chaque donnée du flux de données, o sélection d'une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé et o chiffrement ou déchiffrement de la donnée considérée à l'aide de la clé de chiffrement sélectionnée.

Description

La présente invention concerne la gestion de données dans des systèmes informatiques, notamment leur stockage et leur transmission, et plus particulièrement des procédés, des dispositifs et des programmes d’ordinateur pour le chiffrement et le déchiffrement de données pour leur transmission et/ou leur stockage.
Le chiffrement de données est utilisé dans de très nombreuses situations pour rendre ces données inintelligibles afin d’en assurer la confidentialité de telle sorte que seul le destinataire puisse, après déchiffrement, y avoir accès en « clair ». Le chiffrement est typiquement utilisé à des fins commerciales et pour la protection de données personnelles.
Le chiffrement se fait typiquement à l’aide d’une clé, appelée clé de chiffrement. De même, le déchiffrement se fait généralement à l’aide d’une clé, appelée clé de déchiffrement. Lorsque la clé de déchiffrement est la même que celle de chiffrement, le chiffrement est dit symétrique ou chiffrement à clé secrète. A l’inverse, lorsque la clé de déchiffrement est différente de celle de chiffrement, le chiffrement est dit asymétrique ou chiffrement à clé publique.
La figure 1, comprenant les figures 1a et 1b, illustre le chiffrement symétrique et le chiffrement asymétrique, respectivement.
Comme illustré sur la figure 1a, le chiffrement symétrique nécessite la transmission d’une clé secrète pour permettre le déchiffrement de données préalablement chiffrées avec cette même clé.
Plus précisément, une clé secrète notée k est générée (étape 100) pour chiffrer des données 105 (étape 110). Les données chiffrées 115 sont par exemple transmises à un système informatique distant par un premier canal de communication référencé 120 tandis que la clé secrète est transmise à ce système informatique distant par un second canal de communication référencé 125. Ce second canal de communication est sécurisé. Les données chiffrées reçues, référencées 115’, peuvent alors être décodées à l’aide de la clé secrète k’ également reçue (étape 130) pour obtenir des données référencées 105’ correspondant aux données initiales.
Ce procédé de chiffrement/déchiffrement permet ainsi à un premier système informatique 135 de transmettre des données de façon sécurisée à un second système informatique 140, via un canal de communication 120 non sécurisé, par exemple Internet.
Il est observé ici que le chiffrement symétrique est généralement facile à mettre en œuvre et nécessite des ressources moindres que celles nécessaires à la mise en œuvre d’un chiffrement asymétrique. Cependant, la transmission de la clé secrète présente une vulnérabilité non négligeable du procédé.
Comme illustré sur la figure 1 b, le chiffrement asymétrique nécessite la génération d’une clé de chiffrement, appelée clé publique, et d’une clé de déchiffrement appelée clé privée. Ainsi, pour qu’un premier système informatique 150 puisse recevoir des données de façon sécurisée d’un second système informatique 155, il doit tout d’abord générer deux clés correspondantes (étape 160), une clé publique kp et une clé privée ks.
La clé publique est transmise au second système informatique, via un canal de communication 165, qui peut l’utiliser pour chiffrer des données 170 (étape 175). Les données chiffrées 180 sont alors transmises au premier système informatique via le canal de communication 165 ou un autre (non représenté).
Le premier système informatique 150 utilise alors la clé privée ks (correspondant à la clé publique kp utilisée par le second système informatique 155) pour déchiffrer les données chiffrées reçues référencées 180’ (étape 185) afin d’obtenir des données référencées 170’ correspondant aux données initiales.
A nouveau, ce procédé de chiffrement/déchiffrement permet à un premier système informatique 150 de transmettre des données de façon sécurisée à un second système informatique 155.
Cependant, si ce procédé de chiffrement asymétrique offre généralement une sécurité supérieure à celle d’un chiffrement symétrique, sa mise en œuvre nécessite plus de ressources.
Des procédés similaires peuvent être utilisés pour stocker des données de façon sécurisée.
Alors que les procédés décrits précédemment sont couramment utilisés, il existe un besoin constant d’amélioration, en particulier pour améliorer la sécurité de données transmises ou stockées.
L’invention permet de résoudre au moins un des problèmes exposés précédemment.
L’invention a ainsi pour objet un procédé de chiffrement ou déchiffrement d’un flux de données, le procédé comprenant les étapes suivantes,
- génération d’une liste de nombres pseudo-aléatoires ;
- création d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
- pour chaque donnée du flux de données, o sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé et o chiffrement ou déchiffrement de la donnée considérée à l’aide de la clé de chiffrement sélectionnée.
Le procédé selon l’invention permet ainsi d’améliorer la protection des données du flux de données tout en limitant les ressources nécessaires au chiffrement et/ou au déchiffrement de ces données.
Selon des modes de réalisation du procédé de chiffrement, le procédé comprend en outre, pour chaque donnée du flux de données, les étapes suivantes,
- création d’un ensemble comprenant la donnée considérée chiffrée ;
- sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
- chiffrement de l’ensemble créé à l’aide de la seconde clé de chiffrement sélectionnée.
Selon des modes de réalisation du procédé de déchiffrement, le procédé comprend en outre, pour chaque donnée du flux de données, les étapes préalables suivantes,
- sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
- déchiffrement d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée.
L’invention a également pour objet un procédé de transmission d’un flux de données chiffrées, le procédé comprenant les étapes préalables suivantes,
- génération d’une liste de nombres pseudo-aléatoires ;
- création d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
- pour chaque donnée chiffrée du flux de données chiffrées, o sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé ;
o déchiffrement d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée ;
o sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé ;
o chiffrement d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la seconde clé de chiffrement sélectionnée.
Le procédé selon l’invention permet ainsi d’améliorer la protection des données transmises tout en limitant les ressources nécessaires au chiffrement et/ou au déchiffrement de ces données.
Selon des modes de réalisation, le procédé comprend en outre une étape d’authentification suite à l’étape de déchiffrement d’un ensemble, l’étape d’authentification conditionnant l’exécution d’au moins une étape suivante.
Selon des modes de réalisation, le procédé comprend en outre une étape de sélection de nombres pseudo-aléatoires dans la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
Selon des modes de réalisation, le procédé comprend en outre une étape de décomposition de nombres pseudo-aléatoires de la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
Selon des modes de réalisation, un mécanisme de sélection utilise une valeur d’indice d’une clé précédemment sélectionnée.
Selon des modes de réalisation, un mécanisme de sélection utilise une valeur d’une clé précédemment sélectionnée.
L’invention a également pour objet un dispositif de chiffrement ou déchiffrement d’un flux de données comprenant une pluralité de générateurs de nombres pseudo-aléatoires, un module de sélection de nombres pseudoaléatoires et un module de chiffrement ou déchiffrement, le dispositif étant caractérisé en ce que le module de sélection est connecté à chaque générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires, un générateur de nombres pseudo-aléatoires sélectionnant des nombres pseudo-aléatoires générés par au moins un autre générateur de nombres pseudo-aléatoires pour générer une liste de clés de chiffrement, des clés de chiffrement distinctes de la liste de clés de chiffrement générée étant utilisées pour chiffrer ou déchiffrer des données du flux de données.
Le dispositif selon l’invention permet ainsi d’améliorer la protection des données du flux de données tout en limitant les ressources nécessaires au chiffrement et/ou au déchiffrement de ces données.
Selon des modes de réalisation, au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est un générateur chaotique de nombres pseudo-aléatoires, hyper-chaotique, pseudo-chaotique ou de type chaotique.
Selon des modes de réalisation, le dispositif comprend en outre un module de sélection de clés de chiffrement.
Selon des modes de réalisation, le dispositif comprend en outre un module de décomposition de nombres pseudo-aléatoires pour générer des clés de chiffrement dont la longueur est égale à la longueur des données à chiffrer ou à déchiffrer.
Selon des modes de réalisation, au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est implémenté de façon logicielle.
L’invention a également pour objet des programmes d’ordinateur comprenant des instructions adaptées à la mise en œuvre d’au moins certaines des étapes du procédé décrit précédemment lorsque lesdits programmes d’ordinateur sont exécutés sur un microcontrôleur. Les avantages procurés par ces programmes d’ordinateur sont similaires à ceux évoqués précédemment au regard du procédé.
D’autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d’exemple non limitatif, au regard des dessins annexés dans lesquels :
- la figure 1, comprenant les figures 1a et 1b, illustre le chiffrement symétrique et le chiffrement asymétrique, respectivement ;
- la figure 2 illustre schématiquement un système de chiffrement et déchiffrement selon certains modes de réalisation de l’invention ;
- la figure 3, comprenant les figures 3a à 3e, illustre des exemples de communications sécurisées entre deux éléments, ici entre deux dispositifs spécifiques, entre deux clients, entre un client et un dispositif spécifique et entre deux clients via un ou plusieurs dispositifs spécifiques ;
- la figure 4, comprenant les figures 4a à 4d, illustre des exemples de modules de chiffrement et de déchiffrement utilisant des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudochaotiques ou de type chaotique ;
- la figure 5 illustre une variante de générateur de clés pouvant être utilisé dans des modules de chiffrement et de déchiffrement ;
- la figure 6 illustre un exemple de sélection de clés dans une liste de clés possibles pour former un flux de clés à utiliser ;
- la figure 7 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour chiffrer des données à transmettre à un dispositif distant via un dispositif spécifique ;
- la figure 8 illustre schématiquement des étapes mises en œuvre dans un dispositif spécifique pour recevoir des données chiffrées d’un client léger ou un client lourd, directement ou via un dispositif spécifique, et les retransmettre à un client léger ou un client lourd, directement ou via un autre dispositif spécifique ;
- la figure 9 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour déchiffrer des données reçues ;
- la figure 10 illustre schématiquement un exemple de structure d’un paquet de données utilisé pour transmettre des données de façon sécurisée, conformément à certains modes de réalisation ;
- la figure 11, comprenant les figures 11a et 11b, illustre des exemples de mécanismes de chiffrement/déchiffrement pouvant être mis en œuvre pour transférer des données de façon sécurisée ;
- la figure 12, comprenant les figures 12a et 12b, illustre un exemple de mécanisme pour synchroniser l’utilisation de clés de chiffrement et de déchiffrement entre un émetteur et un récepteur ; et
- la figure 13 illustre un exemple d’architecture d’un dispositif spécifique ou d’un dispositif mettant en œuvre un client léger ou un client lourd.
De façon générale, l’invention a pour objet le chiffrement et le déchiffrement à la volée, par flot, de données, notamment à des fins de transmission et/ou de stockage. Une clé de chiffrement/déchiffrement distincte est de préférence utilisée pour chaque donnée élémentaire, par exemple pour chaque mot de n bits.
Selon certains modes de réalisation, le chiffrement et le déchiffrement sont basés sur un schéma symétrique sans transmission de clés, les clés étant générées de façon indépendante pour le chiffrement et le déchiffrement. Les générateurs de clés de chiffrement/déchiffrement sont alors identiques pour le chiffrement et le déchiffrement de telle sorte que des clés ayant le même indice dans les flux de clés générés soient identiques.
Toujours selon certains modes de réalisation particuliers, les clés de chiffrement/déchiffrement sont générées par des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo-chaotiques ou de type chaotique.
La figure 2 illustre schématiquement un système de chiffrement et déchiffrement selon certains modes de réalisation de l’invention.
Comme illustré, le système comprend ici un module de chiffrement 200 et un module de déchiffrement 205 permettant de chiffrer des données 210, les transmettre via un réseau de communication 215 non sécurisé et les déchiffrer après réception. Les modules 200 et 205 comprennent chacun un générateur de clés K, et K’,, référencés 220 et 220’, respectivement. Ces générateurs sont ici similaires de telle sorte que la clé K, générée par le générateur 220 (i.e. la /θ'11® clé du flux de clés généré par le générateur 220) est égale à la clé K’, générée par le générateur 220’ (i.e. la /®me clé du flux de clés généré par le générateur 220’).
Les données à transmettre sont ici décomposées en données élémentaires ordonnées.
Chaque donnée élémentaire est chiffrée par le module de chiffrement 200, selon l’ordre des données élémentaires, à l’aide d’une fonction de chiffrement 225, de préférence avec une clé de chiffrement particulière. Ainsi, à titre d’exemple, la donnée dj, référencée 210-i, est chiffrée à l’aide de la clé de chiffrement Kit la donnée di+1 à l’aide de la clé Ki+1 et ainsi de suite. Les données chiffrées 230, en particulier la donnée chiffrée 230-i correspondant à la donnée 210-i, sont transmises au module de déchiffrement 205 via le réseau de communication 215.
Ces données chiffrées sont ici transmises de façon ordonnée ou avec une indication d’ordre telle qu’un numéro de paquet.
Après avoir été réordonnées, le cas échéant, les données chiffrées 230’ reçues par le module de déchiffrement 205, similaires aux données chiffrées 230 transmises par le module de chiffrement 200 aux erreurs de transmission près, sont déchiffrées dans le module de déchiffrement 205. Chaque donnée est déchiffrée avec une clé correspondant à celle utilisée pour le chiffrement, de façon symétrique, à l’aide d’une fonction de déchiffrement 235. Ainsi, toujours à titre d’exemple, la donnée d’i, référencée 23O’-i, est déchiffrée à l’aide de la clé de déchiffrement K), la donnée d’i+i à l’aide de la clé K’i+1 et ainsi de suite. Les données déchiffrées référencées 210’ sont ainsi similaires aux données non chiffrées 210, en particulier la donnée déchiffrée 210’-i est similaire à la donnée non chiffrée 210-i.
Comme illustré avec la flèche 240, une synchronisation est ici nécessaire entre le module de chiffrement 200 et le module de déchiffrement 205 pour que la clé de déchiffrement utilisée pour déchiffrer une donnée corresponde à la clé de chiffrement utilisée pour chiffrer cette donnée.
Selon un mode de réalisation particulier, les données et les clés sont ordonnées et les clés sont utilisées de façon systématique, l’une après l’autre pour chiffrer et déchiffrer les données. En cas d’erreur de transmission, une donnée manquante est (re)demandée pour permettre la poursuite du déchiffrement.
Selon un autre mode de réalisation particulier, un indice de clé est associé à chaque donnée chiffrée de telle sorte que le module de déchiffrement utilisé puisse retrouver la clé permettant de déchiffrer la donnée correspondante.
Dans un autre mode de réalisation encore, une ou plusieurs données d’initialisation ainsi qu’un mécanisme de calcul d’indices, pseudo-aléatoire ou non, sont connus du module de chiffrement et du module de déchiffrement pour permettre la détermination d’un indice de clé à chaque donnée à chiffrer ou à déchiffrer. Un indice de clé est, par exemple, la position de la clé dans une liste de clés générées.
La figure 3, comprenant les figures 3a à 3e, illustre des exemples de communications sécurisées entre deux éléments, ici entre deux dispositifs spécifiques (génériquement référencés 300), entre deux clients (génériquement référencés 305), entre un client et un dispositif spécifique et entre deux clients via un ou plusieurs dispositifs spécifiques.
Les dispositifs spécifiques sont par exemple des serveurs de relais et sont notamment pourvus d’éléments matériels spécifiques, typiquement un ou plusieurs générateurs de nombres pseudo-aléatoires, par exemple des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo-chaotiques ou de type chaotique.
Les clients sont typiquement des clients dits légers, par exemple des applications mises en œuvre dans des téléphones intelligents (smartphones), sans utiliser d’élément matériel spécifique. Des clients dits lourds sont des applications reliées de façon sécurisée à des dispositifs spécifiques, utilisant des éléments matériels spécifiques.
Plus précisément, la figure 3a illustre un exemple de communications sécurisées entre deux dispositifs spécifiques tandis que la figure 3b illustre un exemple de communications sécurisées entre deux clients et que la figure 3c illustre un exemple de communications sécurisées entre un client et un dispositif spécifique.
Les figures 3d et 3e illustrent des exemples de communications sécurisées entre deux clients via un et deux dispositifs spécifiques, respectivement. Dans une telle configuration, le système peut être configuré de telle sorte que le ou les dispositifs spécifiques ne puissent déchiffrer les données échangées entre les clients.
Ainsi, par exemple, concernant le schéma illustré sur la figure 3d, le client 305-1 peut chiffrer des données à l’aide d’une première clé KXi connue des clients 305-1 et 305-2 mais inconnue du dispositif spécifique 300-1 puis chiffrer ces données à l’aide d’une clé Kaî connue du client 305-1 et du dispositif spécifique 300-1. Lorsque ces données sont reçues par le dispositif spécifique 300-1, elles sont déchiffrées à l’aide de la clé Kaî (sans être compréhensibles car toujours chiffrées à l’aide de la clé Kx?) puis chiffrées à l’aide d’une clé Καί connue du dispositif spécifique 300-1 et du client 305-2. Lorsque ces données sont reçues par le client 305-2, elles sont déchiffrées à l’aide de la clé Καί puis à l’aide de la clé KXi pour être compréhensibles.
Selon d’autres configurations encore (non représentées), une communication sécurisée peut être établie entre un client et un dispositif spécifique via un ou plusieurs autres dispositifs spécifiques.
La figure 4, comprenant les figures 4a à 4d, illustre des exemples de modules de chiffrement et de déchiffrement utilisant des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudochaotiques ou de type chaotique.
La figure 4a illustre par exemple un module de chiffrement d’un dispositif spécifique tandis que la figure 4b illustre un module de déchiffrement correspondant d’un dispositif spécifique.
Comme illustré sur la figure 4a, le générateur de clés 220 comprend un ensemble de générateurs chaotiques de nombres pseudo-aléatoires, hyperchaotiques, pseudo-chaotiques ou de type chaotique, génériquement référencés G. Plus précisément, cet ensemble comprend n générateurs (Gy à Gn) de nombres pseudo-aléatoires utilisés comme générateurs de clés. Les sorties de ces générateurs sont reliées à un module de sélection 400.
Le générateur de clés 220 comprend en outre un générateur de nombres pseudo-aléatoires Gs utilisé pour sélectionner une sortie d’un des générateurs de nombres pseudo-aléatoires Gi à Gn à l’aide du module de sélection 400.
Le générateur de nombres pseudo-aléatoires Gs est par exemple un générateur chaotique de nombres pseudo-aléatoires, hyper-chaotique, pseudochaotique ou de type chaotique dont une entrée est définie par un paramètre d’initialisation.
Selon des modes de réalisation particuliers, un test est effectué dans le module de sélection 400 pour interdire la sélection d’un nombre aléatoire dont la valeur est proche de celle d’un nombre aléatoire préalablement sélectionné. En d’autres termes, le module de sélection 400 peut comparer la différence entre un nombre aléatoire préalablement sélectionné et un nombre aléatoire potentiellement sélectionné à un seuil prédéterminé afin de vérifier que deux nombres aléatoires successifs parmi les nombres aléatoires sélectionnés ont des valeurs dont la différence est supérieure à un seuil prédéterminé.
Comme illustré, les générateurs de nombres pseudo-aléatoires Gi à Gn sont ici connectés en cascade de telle sorte qu’une ou plusieurs entrées d’un générateur de nombres pseudo-aléatoires soient reliées à une ou plusieurs sorties d’un autre générateur de nombres pseudo-aléatoires, à l’exception d’un générateur de nombres pseudo-aléatoires dont l’entrée ou les entrées sont définies par un ou plusieurs paramètres d’initialisation (ici le générateur de nombres pseudo-aléatoires Gn).
Toujours selon un mode de réalisation particulier, la sortie du module de sélection 400 est reliée à l’entrée d’un module de décomposition 405 permettant de décomposer les nombres pseudo-aléatoires générés par les générateurs de nombres pseudo-aléatoires Gi à Gn en clés dont la longueur correspond à celle des données à chiffrer. Cette longueur peut être fixe ou variable. L’utilisation de clés ayant la même longueur que les données à chiffrer permet notamment une optimisation des ressources nécessaires au chiffrement.
A titre d’illustration, si les nombres pseudo-aléatoires générés par les générateurs de nombres pseudo-aléatoires Gi à Gn sont codés sur 256 bits, chaque nombre pseudo-aléatoire peut être décomposé en une clé de 256 bits, en deux clés de 128 bits, en quatre clés de 64 bits, en 8 clés de 32 bits, en 16 clés de 16 bits ou en 32 clés de 8 bits. D’autres décompositions sont bien entendu possibles.
Le générateur de clés 220 produit ainsi un flot ordonné de clés qui sont transmises à un module de chiffrement 225 pour chiffrer des données.
Selon un mode de réalisation particulièrement simple, la f33 clé du flot de clés est utilisée pour chiffrer la /®me donnée du flux de données à chiffrer.
Le générateur de clés 220’ illustré sur la figure 4b est similaire au générateur de clés 220 illustré sur la figure 4a afin que ces générateurs de clés génèrent des flots de clés identiques.
Le générateur de clés 220’ comprend donc un ensemble de générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo-chaotiques ou de type chaotique, génériquement référencés G’. Cet ensemble comprend n générateurs (G’i à G’n) de nombres pseudo-aléatoires utilisés comme générateurs de clés. Les sorties de ces générateurs sont reliées à un module de sélection 450.
Le générateur de clés 220’ comprend en outre un générateur de nombres pseudo-aléatoires G’$ utilisé pour sélectionner une sortie d’un des générateurs de nombres pseudo-aléatoires à l’aide du module de sélection 450.
A nouveau, le générateur de nombres pseudo-aléatoires G’s est par exemple un générateur chaotique de nombres pseudo-aléatoires, hyperchaotique, pseudo-chaotique ou de type chaotique dont une entrée est définie par un paramètre d’initialisation.
Les générateurs de nombres aléatoires G’i à G’n sont connectés en cascade de telle sorte qu’une ou plusieurs entrées d’un générateur de nombres pseudo-aléatoires soient reliées à une ou plusieurs sorties d’un autre générateur de nombres pseudo-aléatoires, à l’exception d’un générateur de nombres pseudo-aléatoires dont une ou plusieurs entrées sont définies par un ou plusieurs paramètres d’initialisation (ici le générateur de nombres pseudoaléatoires G’n).
Toujours selon un mode de réalisation particulier, la sortie du module de sélection 450 est reliée à l’entrée d’un module de décomposition 455 permettant de décomposer les nombres pseudo-aléatoires générés par les générateurs de nombres pseudo-aléatoires Gf à G’n en clés dont la longueur correspond à celle des données à déchiffrer. A nouveau, cette longueur peut être fixe ou variable, l’utilisation de clés ayant la même longueur que les données à chiffrer permettant une optimisation des ressources nécessaires au chiffrement.
Le générateur de clés 220’ produit ainsi un flot ordonné de clés qui sont transmises à un module de déchiffrement 235 pour déchiffrer des données chiffrées reçues.
Selon un mode de réalisation très simple, la f33 clé du flot de clés est utilisée pour déchiffrer la f*™ donnée élémentaire chiffrée d’un flux de données élémentaires chiffrées.
Les valeurs d’initialisation et de paramétrage du générateur de clés 220’ illustré sur la figure 4b sont les mêmes que celles du générateur de clés 220 illustré sur la figure 4a. De telles valeurs peuvent être prédéterminées et mémorisées localement ou déterminées lors de l’établissement d’un lien de communication.
Selon un mode de réalisation particulier, le premier générateur de nombres pseudo-aléatoires (Gi et Gf) est un module logiciel. Celui-ci peut être utilisé seul, par exemple lorsqu’une communication sécurisée doit être établie avec un client léger (e.g. entre un client léger et un dispositif spécifique). Dans ce cas, les générateurs de nombres pseudo-aléatoires G2 à Gn, s’ils existent, ne sont pas utilisés. De même, lorsqu’un générateur de clés correspondant au générateur de clés 220 est mis en œuvre dans un client léger, les générateurs de nombres pseudo-aléatoires G2 à Gn ne sont pas implémentés. En outre, dans ce cas, le générateur de nombres pseudo-aléatoires utilisé pour sélectionner une sortie d’un générateur de nombres pseudo-aléatoires à l’aide d’un module de sélection peut être mis en œuvre de façon logicielle. Il est également observé ici que lorsque les générateurs de nombres pseudoaléatoires G2 à Gn ne sont pas utilisés, c’est le premier générateur de nombres pseudo-aléatoires (Gy) qui est initialisé (pour assurer une correspondance entre les flux de clés générés dans les modules de chiffrement et de déchiffrement).
L’utilisation des générateurs de nombres pseudo-aléatoires G2 à Gn peut être prédéfinie (par exemple selon la nature des équipements devant communiquer) ou peut être définie de façon dynamique, par exemple à l’aide d’un indicateur dans les données transmises.
La figure 4c illustre un module de chiffrement d’un dispositif spécifique tandis que la figure 4d illustre un module de déchiffrement correspondant d’un client léger.
Le générateur de clés 220” illustré sur la figure 4c est similaire au générateur de clés 220 illustré sur la figure 4a cependant, comme illustré, les générateurs de nombres pseudo-aléatoires G2 à Gn ne sont pas utilisés. En outre, c’est le générateur G1 qui est initialisé.
Le générateur de clés 220’” illustré sur la figure 4d est ici mis en œuvre dans un client léger. Il ne comprend donc qu’un générateur de nombres pseudo-aléatoires G”’i dont les valeurs sont utilisées pour générer des clés et un générateur de nombres pseudo-aléatoires G”’s utilisé pour sélectionner, à l’aide du module de sélection 450’, une sortie du générateur de nombres pseudo-aléatoires dont les valeurs sont utilisées pour générer des clés.
Ces deux générateurs de nombres pseudo-aléatoires sont ici implémentés de façon logicielle.
La figure 5 illustre une variante de générateur de clés pouvant être utilisé dans des modules de chiffrement et de déchiffrement. Selon ce mode de réalisation, les clés générées ne sont pas utilisées de façon systématique et chronologique mais de façon aléatoire.
Comme illustré, le générateur de clés 500 comprend notamment un ensemble (G”i à G”n) de n générateurs chaotiques de nombres pseudoaléatoires (hyper-chaotiques, pseudo-chaotiques ou de type chaotique), un premier module de sélection 505 et un module de décomposition 510 permettant de décomposer les nombres pseudo-aléatoires générés, comme les générateurs de clés 220 et 220’ illustrés sur les figures 4a et 4b, respectivement.
Le générateur de clés 500 comprend en outre un générateur d’indices 515 et un second module de sélection 520.
Le générateur d’indices 515 est notamment relié au module de décomposition 510 afin d’associer un indice, typiquement un numéro d’ordre à chaque clé générée. Selon un mode de réalisation particulièrement simple, la première clé générée est associée à l’indice 1, la seconde à l’indice 2 et ainsi de suite.
Le second module de sélection 520 a pour objet de sélectionner la prochaine clé devant être utilisée pour chiffrer ou déchiffrer une donnée élémentaire. Cette sélection est ici basée sur les indices des clés. Selon un mode de réalisation particulier, la première sélection est effectuée selon une variable d’initialisation (prédéterminée ou déterminée lors de l’établissement d’un lien de communication) et une sélection suivante est effectuée en fonction de l’indice de la clé courante et de la clé courante. A titre d’illustration, l’indice de la prochaine clé (indice_cléi+i) est égal à la somme de l’indice de la clé courante (indice_cléj) avec la valeur de la clé courante (c/é,) :
indice_cléi+1 = indice_cléi + cZéj
Les clés sélectionnées sont transmises sous forme de flux de clés pour chiffrer ou déchiffrer les données élémentaires (le même générateur de clés 500 doit être utilisé pour le chiffrement et le déchiffrement, avec les mêmes paramètres d’initialisation).
La figure 6 illustre un exemple de sélection de clés dans une liste de clés possibles pour former un flux de clés à utiliser.
Selon l’exemple illustré, l’indice d’initialisation (indice_cléi) est égal à i+3. Ainsi, la première clé (Kp est la clé ayant l’indice i+3. Pour trouver l’indice de la clé suivante (jndice_clé2), l’indice i+3 est ajouté à la valeur de la clé Κι. Il est supposé ici que le résultat est égal à j+2. La seconde clé (K2) est ainsi la clé ayant l’indice j+2. A nouveau, pour trouver l’indice de la clé suivante (indice_clé3), l’indice j+2 est ajouté à la valeur de la clé K2. Il est supposé ici que le résultat est égal à k+3. La troisième clé (K3) est ainsi la clé ayant l’indice k+3. A nouveau, pour trouver l’indice de la clé suivante (indice_clé4), l’indice k+3 est ajouté à la valeur de la clé K3. Il est supposé ici que le résultat est égal à I. La quatrième clé (K4) est ainsi la clé ayant l’indice I. Le processus se poursuit ainsi tant que des clés sont nécessaires.
La figure 7 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour chiffrer des données à transmettre à un dispositif distant via un dispositif spécifique.
Comme illustré, une première étape a ici pour objet la réception d’un flux de données à chiffrer (étape 700). Il est observé qu’une étape de décomposition des données peut être nécessaire si les données reçues ne sont pas élémentaires (c’est-à-dire si des données reçues n’ont pas une longueur inférieure ou égale à la taille maximale des clés de chiffrement/déchiffrement).
Parallèlement, un flux de clés est généré (étape 705). Le générateur de clés utilisé pour générer ce flux est par exemple le générateur de clés 220 illustré sur la figure 4a ou le générateur de clés 500 illustré sur la figure 5.
II est observé ici que le processus décrit en référence à la figure 7 utilise un double chiffrement avec deux jeux de clés distincts. Ces jeux de clés peuvent être issus d’un même flux de clés ou de deux flux différents. Si les deux jeux de clés sont issus du même flux de clés, les mécanismes de sélection de clés sont, de préférence, distincts.
Dans une étape suivante, une première donnée du flux de données à chiffrer est sélectionnée pour être chiffrée (étape 710).
Parallèlement, une première clé du flux de clés est sélectionnée en utilisant un premier mécanisme de sélection (étape 715).
La donnée sélectionnée est alors chiffrée à l’aide de la première clé sélectionnée (étape 720). Un algorithme de chiffrage standard bit à bit peut être utilisé. II peut s’agir, par exemple, d’une disjonction exclusive (fonction XOR).
Selon la taille de la donnée élémentaire chiffrée, celle-ci est assemblée avec une ou plusieurs autres données chiffrées ou traitée seule. Le traitement de la donnée élémentaire chiffrée, seule ou agrégée avec d’autres, consiste tout d’abord à créer un ensemble comprenant la ou les données élémentaires chiffrées ainsi qu’un en-tête (étape 725). Comme décrit en référence à la figure 10, ce dernier peut comprendre des informations relatives au chiffrement/déchiffrement.
Dans une étape suivante, une signature de l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête est, de préférence, calculée (étape 730). Une telle signature, calculée de façon standard, permet d’effectuer un contrôle d’intégrité et/ou d’authentification lors de la réception de l’ensemble de données et détecter, le cas échéant, une erreur de transmission.
La signature calculée et l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête sont alors encapsulés dans un paquet de données (étape 735).
Dans une étape suivante, une seconde clé du flux de clés est sélectionnée en utilisant un second mécanisme de sélection (étape 740).
Le paquet de données préalablement créé est alors chiffré à l’aide de la seconde clé sélectionnée (étape 745) et le paquet chiffré est transmis (étape 750). A nouveau, un algorithme de chiffrage standard peut être utilisé. La transmission du paquet chiffré utilise par exemple un protocole de communication standard.
L’algorithme retourne alors aux étapes 710 et 715 pour, le cas échéant, chiffrer et transmettre des données élémentaires du flux de données élémentaires non transmises.
A titre d’illustration, le premier et le second mécanismes de sélection de clés peuvent consister en un mécanisme de sélection séquentielle de clés dans un flux de clés à partir d’un indice prédéterminé, comme décrit en référence à la figure 4a, ou un mécanisme plus complexe comme décrit en référence à la figure 5. Ces mécanismes peuvent être identiques ou distincts.
Il est observé ici que dans certaines applications, par exemple des applications de téléphonie utilisant un réseau de communication de données, les étapes de chiffrement/déchiffrement des paquets (e.g. les étapes 740 et 745) peuvent être ignorées pour alléger le processus.
La figure 8 illustre schématiquement des étapes mises en œuvre dans un dispositif spécifique pour recevoir des données chiffrées d’un client léger ou un client lourd, directement ou via un dispositif spécifique, et les retransmettre à un client léger ou un client lourd, directement ou via un autre dispositif spécifique.
Le processus décrit ici vise le traitement de données reçues, chiffrées selon un double chiffrement, afin de les déchiffrer partiellement et les rechiffrer pour améliorer la sécurité de leur transmission.
Comme illustré, une première étape a ici pour objet la réception d’un flux de paquets comprenant des données chiffrées (étape 800). Parallèlement, un flux de clés est généré (étape 705’). Ce flux de clés est le même que celui généré à l’étape 705 dans la figure 7.
Dans une étape suivante, un premier paquet du flux de paquets comprenant des données chiffrées est sélectionné pour être partiellement déchiffré (étape 805).
Parallèlement, une première clé du flux de clés est sélectionnée en utilisant un premier mécanisme de sélection (étape 810). Ce premier mécanisme de sélection de clés est identique au second mécanisme de sélection de clés décrit en référence à la figure 7 (étape 740).
Le paquet sélectionné est alors déchiffré à l’aide de la première clé sélectionnée (étape 815). L’algorithme de déchiffrage correspond à l’algorithme de chiffrage utilisé, décrit en référence à la figure 7 (étape 745). Ce déchiffrement permet l’obtention d’une signature et d’un ensemble comprenant une ou plusieurs données chiffrées ainsi qu’un en-tête.
Dans une étape suivante, une signature de l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête est, de préférence, calculée (étape 820).
La signature calculée est alors comparée avec la signature déchiffrée pour authentifier le paquet sélectionné et vérifier son intégrité (étape 825). Si une erreur de transmission est détectée, une nouvelle copie du paquet est demandée au dispositif à l’origine du paquet sélectionné.
Dans le cas contraire, si le paquet sélectionné est authentifié et intègre, une seconde clé du flux de clés est sélectionnée en utilisant un second mécanisme de sélection (étape 830).
Le paquet de données préalablement partiellement déchiffré est alors chiffré à l’aide de la seconde clé sélectionnée (étape 783) et le paquet chiffré est transmis (étape 840). A nouveau, la transmission du paquet chiffré peut être basée sur un protocole de communication standard.
L’algorithme retourne alors aux étapes 805 et 810 pour, le cas échéant, traiter un paquet suivant non traité du flux de paquets de données reçu.
A nouveau, le premier et le second mécanismes de sélection de clés peuvent consister en un mécanisme de sélection séquentielle de clés dans un flux de clés à partir d’un indice prédéterminé, comme décrit en référence à la figure 4a, ou un mécanisme plus complexe comme décrit en référence à la figure 5. Ces mécanismes peuvent être identiques ou distincts.
La figure 9 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour déchiffrer des données reçues.
Comme illustré, une première étape a ici pour objet la réception d’un flux de paquets comprenant des données chiffrées (étape 900). Parallèlement, un flux de clés est généré (étape 705”). Ce flux de clés est le même que celui généré à l’étape 705 dans la figure 7.
Dans une étape suivante, un premier paquet du flux de paquets comprenant des données chiffrées est sélectionné pour être déchiffré (étape 905).
Parallèlement, une première clé du flux de clés est sélectionnée en utilisant un premier mécanisme de sélection (étape 910). Ce premier mécanisme de sélection de clés est identique au second mécanisme de sélection de clés décrit en référence à la figure 8 (étape 830).
Le paquet sélectionné est alors déchiffré à l’aide de la première clé sélectionnée (étape 915). L’algorithme de déchiffrage correspond à l’algorithme de chiffrage utilisé, décrit en référence à la figure 8 (étape 835). Ce déchiffrement permet l’obtention d’une signature et d’un ensemble comprenant une ou plusieurs données chiffrées ainsi qu’un en-tête.
Dans une étape suivante, une signature de l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête est, de préférence, calculée (étape 920).
La signature calculée est alors comparée avec la signature déchiffrée pour authentifier le paquet sélectionné et vérifier son intégrité (étape 925). Si une erreur de transmission est détectée, une nouvelle copie du paquet est demandée au dispositif à l’origine du paquet sélectionné.
Dans le cas contraire, si le paquet sélectionné est authentifié et intègre, une seconde clé du flux de clés est sélectionnée en utilisant un second mécanisme de sélection (étape 930). Ce second mécanisme de sélection de clés est identique au premier mécanisme de sélection de clés décrit en référence à la figure 7 (étape 720).
L’ensemble comprenant une ou plusieurs données chiffrées ainsi qu’un en-tête est alors déchiffré à l’aide de la seconde clé sélectionnée (étape 935) pour obtenir une ou plusieurs données déchiffrées ainsi qu’un en-tête.
L’algorithme retourne alors aux étapes 905 et 910 pour, le cas échéant, traiter un paquet suivant non traité du flux de paquets de données reçu.
A nouveau, le premier et le second mécanismes de sélection de clés peuvent consister en un mécanisme de sélection séquentielle de clés dans un flux de clés à partir d’un indice prédéterminé, comme décrit en référence à la figure 4a, ou un mécanisme plus complexe comme décrit en référence à la figure 5. Ces mécanismes peuvent être identiques ou distincts.
La figure 10 illustre schématiquement un exemple de structure d’un paquet de données utilisé pour transmettre des données de façon sécurisée, conformément à certains modes de réalisation.
Comme illustré, la structure 1000 du paquet comprend ici trois parties. La première partie, référencée 1005, correspond aux données à transmettre tandis que la deuxième partie, référencée 1010, correspond à l’entête et que la troisième partie, référencée 1015, correspond à la signature (ou empreinte numérique).
Les première et deuxième parties sont ici chiffrées selon un premier niveau de chiffrement selon lequel seuls l’émetteur et le destinataire peuvent déchiffrer ces données.
Les première et la deuxième parties chiffrées ainsi que la signature sont, de préférence, chiffrées selon un second niveau de chiffrement selon lequel seules deux entités directement liées l’une à l’autre peuvent déchiffrer partiellement ces données. Ces deux entités sont, par exemple, un client léger et un dispositif spécifique ou deux dispositifs spécifiques.
Selon des modes de réalisation particuliers, l’en-tête comprend plusieurs indications parmi lesquelles une indication d’acquittement. De telles indications peuvent par exemple préciser que l’un des dispositifs est un client léger et que, par conséquent, seul un générateur de nombre pseudo-aléatoire doit être utilisé (comme décrit en référence aux figures 4c et 4d). De telles indications peuvent également préciser un type d’application, par exemple la voix sur IP (ou VoIP, sigle de Voice over Internet Protocol en terminologie anglo-saxonne), pour laquelle un traitement particulier peut être appliqué, par exemple l’absence de mécanisme d’acquittement (dans le cas d’une application de type VoIP, il n’est pas nécessaire d’utiliser un mécanisme d’acquittement, une réinitialisation du canal de communication étant nécessaire en cas de coupure réseau).
Comme décrit en référence à la figure 12, une indication d’acquittement peut être utilisée pour décider de la retransmission de paquets non reçus par le destinataire ou comprenant des erreurs.
La figure 11, comprenant les figures 11a et 11b, illustre des exemples de mécanismes de chiffrement/déchiffrement pouvant être mis en œuvre pour transférer des données de façon sécurisée.
La configuration illustrée sur la figure 11a permet le transfert de données de façon sécurisée entre trois clients 1100-1 à 1100-3 via un dispositif spécifique 1105. A ces fins, quatre jeux de clés sont utilisés.
Un premier jeu de clés notées Ka permet de chiffrer les données à transmettre selon un premier niveau de chiffrement. Ces clés ne sont identifiables que par les clients 1100-1 à 1100-3 de telle sorte que le dispositif spécifique 1105 ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
Un deuxième jeu de clés notées KDn permet de chiffrer des données préalablement chiffrées avec les clés Ka, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-1 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon, un troisième jeu de clés notées KD2i permet de chiffrer des données préalablement chiffrées avec les clés Ka, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-2 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon encore, un quatrième jeu de clés notées Kd3î permet de chiffrer des données préalablement chiffrées avec les clés KCi, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-3 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
La configuration illustrée sur la figure 11b permet le transfert de données de façon sécurisée entre deux clients 1100-1 et 1100-2 via un dispositif spécifique 1105 et entre deux clients 1100-2 et 1100-3 via un dispositif spécifique 1105. A ces fins, cinq jeux de clés sont utilisés.
Un premier jeu de clés notées Kcu permet de chiffrer les données à transmettre selon un premier niveau de chiffrement. Ces clés ne sont identifiables que par les clients 1100-1 et 1100-2 de telle sorte que le client 1100-3 et le dispositif spécifique 1105 ne puissent pas les déterminer et donc ne puissent pas déchiffrer les données.
Un deuxième jeu de clés notées Kc2i permet de chiffrer les données à transmettre selon un premier niveau de chiffrement. Ces clés ne sont identifiables que par les clients 1100-2 et 1100-3 de telle sorte que le client 1100-1 et le dispositif spécifique 1105 ne puissent pas les déterminer et donc ne puissent pas déchiffrer les données.
Un troisième jeu de clés notées Kdu permet de chiffrer des données préalablement chiffrées avec les clés KCu, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-1 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon, un quatrième jeu de clés notées KD2i permet de chiffrer des données préalablement chiffrées avec les clés KCu ou KC2i, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-2 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon encore, un cinquième jeu de clés notées KD3i permet de chiffrer des données préalablement chiffrées avec les clés KC2i, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-3 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
Le choix des paramètres d’initialisation qui définissent les jeux de clés peut être déterminé de différentes façons. Il peut notamment être effectué de façon manuelle par les utilisateurs qui se mettent d’accord sur les paramètres d’initialisation à utiliser ou de façon automatique à partir des identifiants des clients et des dispositifs spécifiques (un jeu de paramètres d’initialisation peut être prédéterminé et associé à chaque couple émetteur/récepteur).
La figure 12, comprenant les figures 12a et 12b, illustre un exemple de mécanisme pour synchroniser l’utilisation de clés de chiffrement et de déchiffrement entre un émetteur et un récepteur. Les étapes illustrées sur la figure 12a sont mises en œuvre dans l’émetteur tandis que les étapes illustrées sur la figure 12b sont mises en œuvre dans le récepteur.
Comme illustré sur la figure 12a, une première étape (étape 1200) a pour objet la sélection d’une clé K,, le chiffrement d’une donnée à l’aide de la clé K, et la création d’un message M, comprenant la donnée chiffrée.
Le message créé est ensuite transmis (étape 1205) avec un indicateur d’acquittement ayant une première valeur, par exemple 0, pour indiquer que ce message n’est pas une réponse à un message précédent.
L’émetteur attend ensuite la réception d’un message de réponse du récepteur au message Mj précédemment émis (étape 1210). Un indicateur d’acquittement ayant une seconde valeur, par exemple 1, est associé au message de réponse référencé M’, pour indiquer que ce dernier fait suite à un message reçu.
Après un temps prédéterminé Θ suivant l’émission du message M, et en l’absence de réception d’un message de réponse, le message M est réémis (étapes 1215 et 1205).
Si le message M’, est reçu avec l’indicateur d’acquittement ayant la seconde valeur, la variable / est incrémentée (étape 1220) et l’algorithme retourne à l’étape 1200 pour sélectionner une nouvelle clé, chiffrer la donnée élémentaire suivante et la transmettre.
Comme illustré sur la figure 12b, suite à la réception d’un message M, associé à un indicateur d’acquittement ayant une première valeur (étape 1250), par exemple 0, indiquant que ce message n’est pas une réponse à un message précédent, un message de réponse M’, est transmis avec un indicateur d’acquittement ayant une seconde valeur, par exemple 1, pour indiquer que ce dernier fait suite à un message reçu (étape 1255).
Le message reçu est ensuite traité (étape 1260). Il peut également être traité en parallèle, par exemple pour qu’un message de réponse ne soit transmis, avec un indicateur d’acquittement, que si le message reçu correspondant est intègre et authentifié.
La figure 13 illustre un exemple d’architecture d’un dispositif spécifique ou d’un dispositif mettant en œuvre un client léger ou un client lourd.
Le dispositif 1300 comporte de préférence un bus de communication 1302 auquel sont reliés :
- une unité centrale de traitement ou microprocesseur 1304 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;
- une mémoire morte 1306 (ROM, acronyme de Read Only Memory en terminologie anglo-saxonne) pouvant comporter un système d’exploitation et des programmes tels que Prog ;
- une mémoire vive ou mémoire cache 1308 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et
- une interface de communication 1310 reliée à un réseau de communication distribué 1312, par exemple un réseau de communication sans fil et/ou un réseau de communication filaire, l'interface étant apte à transmettre et à recevoir des données, notamment vers ou depuis un autre module et/ou vers ou depuis un ordinateur, une tablette ou un téléphone intelligent (smartphone).
Optionnellement, le dispositif 1300 peut également disposer des éléments suivants :
- une interface d’entrée/sortie 1314 ; et/ou
- un lecteur 1316 de support amovible de stockage 1318 tel qu’une carte mémoire.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 1300 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du dispositif 1300 directement ou par l'intermédiaire d'un autre élément du dispositif 1300.
Le code exécutable de chaque programme permettant à l'appareil programmable de mettre en œuvre les processus selon l'invention peut être stocké, par exemple, dans la mémoire morte 1306.
Selon une variante, le code exécutable des programmes pourra être reçu par l'intermédiaire du réseau de communication 1312, via l'interface 1310, pour être stocké de façon identique à celle décrite précédemment.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif 1300 avant d'être exécutés.
L'unité centrale 1304 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées, par exemple, dans la mémoire morte 1306 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple la mémoire morte 1306, sont transférés dans la mémoire vive 1308 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention.
La présente invention a été décrite et illustrée dans la présente description détaillée en référence aux figures jointes. Toutefois, la présente 5 invention ne se limite pas aux formes de réalisation présentées. D'autres variantes et modes de réalisation peuvent être déduits et mis en œuvre par la personne compétente dans le domaine de l’invention à la lecture de la présente description et des figures annexées.
Dans les revendications, le terme « comporter » n'exclut pas d'autres 10 éléments ou d'autres étapes. L'article indéfini « un » n’exclut pas le pluriel. Un seul processeur ou plusieurs autres unités peuvent être utilisés pour mettre en œuvre l'invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes n'exclut pas, 15 en effet, la possibilité de les combiner. Les signes de référence ne sauraient être compris comme limitant la portée de l'invention.

Claims (15)

  1. REVENDICATIONS
    1. Procédé de chiffrement ou déchiffrement d’un flux de données, le procédé comprenant les étapes suivantes,
    - génération d’une liste de nombres pseudo-aléatoires ;
    - création (705, 705”) d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
    - pour chaque donnée du flux de données, o sélection (715, 930) d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé et o chiffrement (720) ou déchiffrement (935) de la donnée considérée à l’aide de la clé de chiffrement sélectionnée.
  2. 2. Procédé de chiffrement selon la revendication 1 comprenant en outre, pour chaque donnée du flux de données, les étapes suivantes,
    - création (725) d’un ensemble comprenant la donnée considérée chiffrée ;
    - sélection (740) d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
    - chiffrement (745) de l’ensemble créé à l’aide de la seconde clé de chiffrement sélectionnée.
  3. 3. Procédé de déchiffrement selon la revendication 1 comprenant en outre, pour chaque donnée du flux de données, les étapes préalables suivantes,
    - sélection (910) d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
    - déchiffrement (915) d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée.
  4. 4. Procédé de transmission d’un flux de données chiffrées, le procédé comprenant les étapes préalables suivantes,
    - génération d’une liste de nombres pseudo-aléatoires ;
    - création (705’) d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
    - pour chaque donnée chiffrée du flux de données chiffrées, o sélection (810) d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé ;
    o déchiffrement (815) d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée ;
    o sélection (830) d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé ;
    o chiffrement (835) d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la seconde clé de chiffrement sélectionnée.
  5. 5. Procédé selon la revendication 3 ou la revendication 4 comprenant en outre une étape d’authentification suite à l’étape de déchiffrement d’un ensemble, l’étape d’authentification conditionnant l’exécution d’au moins une étape suivante.
  6. 6. Procédé selon l’une quelconque des revendications 1 à 5 comprenant en outre une étape de sélection de nombres pseudo-aléatoires dans la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
  7. 7. Procédé selon l’une quelconque des revendications 1 à 6 comprenant en outre une étape de décomposition de nombres pseudoaléatoires de la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
  8. 8. Procédé selon l’une quelconque des revendications 1 à 7 selon lequel un mécanisme de sélection utilise une valeur d’indice d’une clé précédemment sélectionnée.
  9. 9. Procédé selon l’une quelconque des revendications 1 à 8 selon lequel un mécanisme de sélection utilise une valeur d’une clé précédemment sélectionnée.
  10. 10. Dispositif de chiffrement ou déchiffrement d’un flux de données comprenant une pluralité de générateurs de nombres pseudo-aléatoires, un module de sélection de nombres pseudo-aléatoires et un module de chiffrement ou déchiffrement, le dispositif étant caractérisé en ce que le module de sélection est connecté à chaque générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires, un générateur de nombres pseudo-aléatoires sélectionnant des nombres pseudo-aléatoires générés par au moins un autre générateur de nombres pseudo-aléatoires pour générer une liste de clés de chiffrement, des clés de chiffrement distinctes de la liste de clés de chiffrement générée étant utilisées pour chiffrer ou déchiffrer des données du flux de données.
  11. 11. Dispositif selon la revendication 10 selon lequel au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est un générateur chaotique de nombres pseudoaléatoires, hyper-chaotique, pseudo-chaotique ou de type chaotique.
  12. 12. Dispositif selon la revendication 10 ou la revendication 11 comprenant en outre un module (520) de sélection de clés de chiffrement.
  13. 13. Dispositif selon l’une quelconque des revendications 10 à 12 comprenant en outre un module (510) de décomposition de nombres pseudoaléatoires pour générer des clés de chiffrement dont la longueur est égale à la longueur des données à chiffrer ou à déchiffrer.
  14. 14. Dispositif selon l’une quelconque des revendications 10 à 13 selon lequel au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est implémenté de façon logicielle.
  15. 15. Programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’une quelconque des revendications 1 à 9 lorsque ledit programme est exécuté sur un ordinateur.
FR1800295A 2018-04-10 2018-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données Expired - Fee Related FR3079989B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1800295A FR3079989B1 (fr) 2018-04-10 2018-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données
PCT/FR2019/050845 WO2019197780A1 (fr) 2018-04-10 2019-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données
EP19726049.0A EP3777007A1 (fr) 2018-04-10 2019-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1800295 2018-04-10
FR1800295A FR3079989B1 (fr) 2018-04-10 2018-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données

Publications (2)

Publication Number Publication Date
FR3079989A1 true FR3079989A1 (fr) 2019-10-11
FR3079989B1 FR3079989B1 (fr) 2020-05-01

Family

ID=63637919

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1800295A Expired - Fee Related FR3079989B1 (fr) 2018-04-10 2018-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données

Country Status (3)

Country Link
EP (1) EP3777007A1 (fr)
FR (1) FR3079989B1 (fr)
WO (1) WO2019197780A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202213961A (zh) * 2020-09-22 2022-04-01 香港商吉達物聯科技股份有限公司 可調式五階加密系統、發送端裝置及接收端裝置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0615361A1 (fr) * 1993-03-12 1994-09-14 Hughes Aircraft Company Système et procédé pour le chiffrage à grande vitesse utilisant un générateur de séquence de clé multiple

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10469247B2 (en) * 2014-12-17 2019-11-05 Telefonaktiebolaget Lm Ericsson (Publ) Stream ciphering technique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0615361A1 (fr) * 1993-03-12 1994-09-14 Hughes Aircraft Company Système et procédé pour le chiffrage à grande vitesse utilisant un générateur de séquence de clé multiple

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DVB ORGANIZATION: "tm-cbms2337r1_ts_102474v010301d - SPP Rev D (18Crypt new).doc", DVB, DIGITAL VIDEO BROADCASTING, C/O EBU - 17A ANCIENNE ROUTE - CH-1218 GRAND SACONNEX, GENEVA - SWITZERLAND, 13 November 2009 (2009-11-13), XP017806099 *
EBU PROJECT GROUP B/CA: "Functional model of a conditional access system", EBU TECHNICAL REVIEW, 1 January 1995 (1995-01-01), XP055543338, Retrieved from the Internet <URL:https://tech.ebu.ch/docs/techreview/trev_266-ca.pdf> [retrieved on 20190116] *

Also Published As

Publication number Publication date
WO2019197780A1 (fr) 2019-10-17
FR3079989B1 (fr) 2020-05-01
EP3777007A1 (fr) 2021-02-17

Similar Documents

Publication Publication Date Title
EP2323306B1 (fr) Procédé de transmission de données sécurisé et système de chiffrement et de déchiffrement permettant une telle transmission
EP2892176A2 (fr) Procédé de conversion d&#39;un contenu a accès conditionnel et récepteur pour la mise en oeuvre de ce procédé
FR3002400A1 (fr) Generation d&#39;une cle de session pour l&#39;authentification et la transmission de donnees securisees
CN110944012B (zh) 抗协议分析数据安全传输方法、系统、信息数据处理终端
EP3928232A1 (fr) Méthode cryptographique de vérification des données
FR2877119A1 (fr) Procede et dispositif pour generer une cle de decryptage d&#39;un contenu
WO2018211026A1 (fr) Procede de securisation d&#39;une communication sans gestion d&#39;etats
WO2016102833A1 (fr) Entité électronique sécurisée, appareil électronique et procédé de vérification de l&#39;intégrité de données mémorisées dans une telle entité électronique sécurisée
EP3545641A1 (fr) Procédé de chiffrement cherchable
EP3185468B1 (fr) Procédé de transmission de données, procédé de réception de données, dispositifs et programmes correspondants
EP3734901B1 (fr) Procédé de transmission sécurisée de données
FR3057122B1 (fr) Procede et dispositif de detection d&#39;intrusions sur un reseau utilisant un algorithme de chiffrement homomorphe
FR3079989A1 (fr) Procédés, dispositifs et programmes d&#39;ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données
FR3105467A1 (fr) liaison série asynchrone sécurisée
WO2012042170A1 (fr) Système d&#39;échange de données entre au moins un émetteur et un récepteur
WO2003019899A2 (fr) Reseau numerique local, procedes d&#39;installation de nouveaux dispositifs et procedes de diffusion et de reception de donnees dans un tel reseau
US9571468B2 (en) Encoding data using a variable number of pixels and bits based on entropy
Al-Halboosi Agile Encryption Scheme for Multimedia Files Using Random Data
WO2023057649A1 (fr) Procédé de génération d&#39;un nombre pseudo-aléatoire et procédé de chiffrement symétrique d&#39;un message
WO2024125942A1 (fr) Procedes de distribution quantique et dispositifs de telecommunication associes
WO2011098702A1 (fr) Authentification par mot de passe a usage unique
WO2024023234A1 (fr) Procédés de distribution quantique et dispositifs de télécommunication associés
FR2900776A1 (fr) Procede de securisation de donnees
WO2010133459A1 (fr) Procede de chiffrement de parties particulieres d&#39; un document pour les utilisateurs privileges
EP3021515A1 (fr) Amelioration de l&#39;integrite authentique de donnees a l&#39;aide du dernier bloc chiffrant ces donnees en mode cbc

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20191011

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

ST Notification of lapse

Effective date: 20231205