Procédé et dispositif d'émission de données chiffrées, procédé et dispositif d'extraction de données Method and device for transmitting encrypted data, method and device for extracting data
DOMAINE TECHNIQUE TECHNICAL AREA
La présente invention appartient au domaine des télécommunications numériques, et concerne plus particulièrement un procédé d'émission d'un paquet comportant des données chiffrées, ainsi qu'un procédé d'extraction de données incluses dans un tel paquet. The present invention belongs to the field of digital telecommunications, and more particularly relates to a method of transmitting a packet comprising encrypted data, as well as a method for extracting data included in such a packet.
ÉTAT DE LA TECHNIQUE STATE OF THE ART
La présente invention trouve une application particulièrement avantageuse, bien que nullement limitative, dans les systèmes de communication sans fil à bande ultra étroite. Par « bande ultra étroite » (« Ultra Narrow Band » ou UNB dans la littérature anglo-saxonne), on entend que le spectre fréquentiel instantané des signaux radioélectriques émis par des terminaux, à destination d'un réseau d'accès, est de largeur fréquentielle inférieure à deux kilohertz, voire inférieure à un kilohertz. The present invention finds a particularly advantageous, though in no way limiting, application in ultra-narrowband wireless communication systems. By "ultra narrow band" ("Ultra Narrow Band" or UNB in the English literature), it is meant that the instantaneous frequency spectrum of the radio signals emitted by terminals, to an access network, is of width frequency less than two kilohertz, or even less than one kilohertz.
De tels systèmes de communication sans fil UNB sont particulièrement adaptés pour des applications du type M2M (acronyme anglo-saxon pour « Machine-to-Machine ») ou du type « Internet des objets » (« Internet of Things » ou loT dans la littérature anglo-saxonne). Such UNB wireless communication systems are particularly suitable for applications of the type M2M (acronym for machine-to-machine) or the Internet of Things ("Internet of Things" or loT in the literature Anglo-Saxon).
Dans un tel système de communication sans fil UNB, les échanges de données se font principalement sur un lien montant depuis des terminaux à destination d'un réseau d'accès dudit système. In such a UNB wireless communication system, the data exchanges are mainly on a link rising from terminals to an access network of said system.
Les terminaux émettent des paquets qui sont collectés par des stations de base du réseau d'accès, sans avoir à s'associer préalablement à une ou plusieurs stations de base du réseau d'accès. En d'autres termes, les paquets émis par un terminal ne sont pas destinés à une station de base spécifique du réseau d'accès, et le terminal émet ses paquets en supposant qu'ils pourront être reçus par au moins une station de base. The terminals transmit packets that are collected by base stations of the access network, without first having to associate with one or more base stations of the access network. In other words, the packets transmitted by a terminal are not intended for a specific base station of the access network, and the terminal sends its packets assuming that they can be received by at least one base station.
De telles dispositions sont avantageuses en ce que le terminal n'a pas besoin de réaliser des mesures régulières, gourmandes notamment d'un point de vue consommation électrique, pour déterminer la station de base la plus appropriée pour recevoir ses paquets. La complexité repose sur le réseau
d'accès, qui doit être capable de recevoir des paquets pouvant être émis à des instants arbitraires, et sur des fréquences centrales arbitraires à l'intérieur d'une bande fréquentielle de multiplexage des différents terminaux. Such provisions are advantageous in that the terminal does not need to perform regular measurements, particularly greedy in terms of power consumption, to determine the most appropriate base station to receive its packets. Complexity rests on the network access, which must be able to receive packets that can be transmitted at arbitrary times, and at arbitrary central frequencies within a frequency band multiplexing the different terminals.
Dans de nombreuses applications, il peut être nécessaire de chiffrer les données incluses dans les paquets, afin d'en assurer la confidentialité sur le lien montant entre les terminaux et le réseau d'accès. In many applications, it may be necessary to encrypt the data included in the packets, to ensure the confidentiality on the upstream link between the terminals and the access network.
Il existe de nombreux protocoles de chiffrement. Par exemple, dans un protocole de chiffrement à clé symétrique, la même clé est utilisée pour chiffrer et déchiffrer les données. Ladite clé doit par conséquent être connue ou pouvoir être déterminée à la fois par le terminal qui émet les données, et par le réseau d'accès qui reçoit lesdites données. There are many encryption protocols. For example, in a symmetric key encryption protocol, the same key is used to encrypt and decrypt the data. Said key must therefore be known or can be determined both by the terminal that transmits the data, and by the access network that receives said data.
En outre, pour améliorer la confidentialité des échanges, il est souhaitable de faire varier la clé utilisée au cours du temps, par exemple à chaque nouvelle émission d'un paquet. In addition, to improve the confidentiality of exchanges, it is desirable to vary the key used over time, for example at each new issue of a packet.
Dans un tel cas, il faut prévoir des moyens pour assurer que le terminal et le réseau d'accès utilisent chacun de leur côté la même clé pour respectivement chiffrer et déchiffrer les données. In such a case, means must be provided to ensure that the terminal and the access network each use the same key for respectively encrypting and decrypting the data.
Par exemple, il est possible de changer la clé à chaque paquet, selon une méthode de génération de clé prédéfinie connue a priori du terminal et du réseau d'accès. Le réseau d'accès, lorsqu'il reçoit un paquet, met à jour la clé en appliquant la même méthode de génération de clé que le terminal. For example, it is possible to change the key to each packet, according to a predefined key generation method known prior to the terminal and the access network. The access network, when receiving a packet, updates the key by applying the same key generation method as the terminal.
Un inconvénient d'une telle approche est que, dans un système de communication sans fil UNB, le réseau d'accès ne reçoit pas forcément tous les paquets émis par le terminal, de sorte que le réseau d'accès ne sait pas a priori combien de fois la clé a été modifiée entre le paquet précédent reçu du même terminal et le paquet en cours. A disadvantage of such an approach is that, in a UNB wireless communication system, the access network does not necessarily receive all the packets transmitted by the terminal, so that the access network does not know a priori how much times the key has been changed between the previous packet received from the same terminal and the current packet.
Alternativement, il est possible d'inclure, dans le paquet émis par le terminal, des informations à partir desquelles le réseau d'accès peut déterminer la clé utilisée, selon la méthode de génération de clé prédéfinie. Toutefois, étant donné que le nombre de clés différentes possibles est préférentiellement très élevé pour améliorer la confidentialité des échanges, la quantité d'informations à inclure dans un paquet peut s'avérer importante. Or, dans un système de communication sans fil UNB, la quantité d'informations
pouvant être incluses dans un paquet est très limitée. Alternatively, it is possible to include, in the packet sent by the terminal, information from which the access network can determine the key used, according to the predefined key generation method. However, since the number of possible different keys is preferentially very high to improve the confidentiality of exchanges, the amount of information to be included in a packet can be important. However, in a UNB wireless communication system, the amount of information can be included in a package is very limited.
EXPOSÉ DE L'INVENTION STATEMENT OF THE INVENTION
La présente invention a pour objectif de remédier à tout ou partie des limitations des solutions de l'art antérieur, notamment celles exposées ci-avant, en proposant une solution qui permette d'assurer une bonne confidentialité des échanges tout en limitant la quantité d'informations à inclure dans les paquets. The present invention aims to remedy all or part of the limitations of the solutions of the prior art, including those described above, by proposing a solution that ensures good confidentiality of trade while limiting the amount of information to include in packages.
A cet effet, et selon un premier aspect, l'invention concerne un procédé d'émission, par un dispositif émetteur, de paquets à destination d'un dispositif récepteur d'un système de communication, comportant, pour l'émission d'un paquet, dit « paquet chiffré », comportant des données chiffrées selon un protocole de chiffrement à clé symétrique : For this purpose, and according to a first aspect, the invention relates to a method of sending, by a transmitting device, packets destined for a receiving device of a communication system, comprising, for the transmission of a packet, called "encrypted packet", comprising data encrypted according to a symmetric key encryption protocol:
- une détermination de la valeur d'une information de génération, a determination of the value of a generation information,
- une détermination d'une clé de chiffrement, à utiliser pour chiffrer les données à inclure dans le paquet chiffré à émettre, en fonction de la valeur de l'information de génération, a determination of an encryption key, to be used to encrypt the data to be included in the encrypted packet to be transmitted, according to the value of the generation information,
- un chiffrement des données à inclure dans le paquet chiffré à émettre en fonction de la clé de chiffrement, an encryption of the data to be included in the encrypted packet to be transmitted according to the encryption key,
- un calcul d'une information tronquée en décomposant l'information de génération en une première partie et une seconde partie, la première partie variant plus lentement, au cours du temps, que la seconde partie, l'information tronquée étant représentative de ladite seconde partie de l'information de génération, a calculation of a truncated information by decomposing the generation information into a first part and a second part, the first part varying more slowly over time than the second part, the truncated information being representative of said second part; part of the generation information,
- un calcul d'un code de vérification du paquet chiffré en fonction des données chiffrées et de la première partie de l'information de génération, a calculation of a verification code of the encrypted packet based on the encrypted data and the first part of the generation information,
- une formation du paquet chiffré à émettre à partir de l'information tronquée, du code de vérification, et des données chiffrées. a formation of the encrypted packet to be transmitted from the truncated information, the verification code, and encrypted data.
Ainsi, selon l'invention, la clé de chiffrement est déterminée en fonction de la valeur d'une information de génération variable au cours du temps. Par conséquent, la clé de chiffrement change à chaque fois que la valeur de l'information de génération change, et peut prendre autant de valeurs différentes que l'information de génération. Thus, according to the invention, the encryption key is determined according to the value of a variable generation information over time. Therefore, the encryption key changes each time the value of the generation information changes, and can take as many different values as the generation information.
Par contre, l'information de génération n'est pas incluse telle quelle
dans le paquet chiffré à émettre, et c'est une information tronquée qui est incluse dans le paquet chiffré émis. Avantageusement, l'information de génération étant décomposée en une première partie et une seconde partie, la première partie variant plus lentement que la seconde partie, l'information tronquée est calculée en fonction de la seconde partie, sans tenir compte de la première partie. Typiquement, la première partie de l'information de génération correspond à une partie qui ne varie pas ou peu sur la durée d'émission de plusieurs paquets consécutifs, tandis que la seconde partie est susceptible de varier d'un paquet à un autre. However, the generation information is not included as it is in the encrypted packet to be transmitted, and it is truncated information that is included in the transmitted encrypted packet. Advantageously, the generation information being decomposed into a first part and a second part, the first part varying more slowly than the second part, the truncated information is calculated according to the second part, without taking into account the first part. Typically, the first part of the generation information corresponds to a part that does not vary or little over the duration of transmission of several consecutive packets, while the second part is likely to vary from one packet to another.
Par conséquent, le nombre de valeurs différentes que peut prendre la clé de chiffrement peut être choisi en fonction du niveau de confidentialité souhaité, et ce sans impacter la quantité d'informations à émettre dans le paquet chiffré pour permettre au dispositif récepteur de déterminer la clé de chiffrement. En effet, la quantité d'informations à émettre peut être limitée à la quantité d'informations nécessaires pour encoder l'information tronquée. Therefore, the number of different values that the encryption key may take may be chosen according to the desired level of confidentiality, without affecting the amount of information to be transmitted in the encrypted packet to enable the receiving device to determine the key. encryption. Indeed, the amount of information to be transmitted can be limited to the amount of information needed to encode the truncated information.
Par contre, le dispositif récepteur doit, lors de la réception d'un paquet chiffré émis par le dispositif émetteur, estimer la valeur de la première partie de l'information de génération dudit paquet chiffré (non incluse dans ledit paquet chiffré) afin d'en déduire, à partir de l'information tronquée, la valeur de l'information de génération et ainsi pouvoir déterminer la clé de chiffrement utilisée par le dispositif émetteur. Le code de vérification, qui est calculé par le dispositif émetteur en fonction des données chiffrées et de la première partie de l'information de génération, est alors utilisé par le dispositif récepteur pour déterminer si la valeur estimée de la première partie de l'information de génération est correcte, c'est-à-dire si elle correspond bien à la première partie de l'information de génération utilisée par le dispositif émetteur, en évaluant l'intégrité du paquet chiffré en fonction des données chiffrées et de la valeur estimée de la première partie de l'information de génération. Si le paquet chiffré est considéré comme intègre, alors cela signifie en outre que la valeur estimée de la première partie de l'information de génération correspond bien à la première partie de l'information de génération utilisée par le dispositif émetteur. On the other hand, the receiving device must, when receiving an encrypted packet transmitted by the transmitting device, estimate the value of the first part of the generation information of said encrypted packet (not included in said encrypted packet) in order to deducing, from the truncated information, the value of the generation information and thus be able to determine the encryption key used by the transmitting device. The verification code, which is calculated by the sending device according to the encrypted data and the first part of the generation information, is then used by the receiving device to determine whether the estimated value of the first part of the information generation is correct, that is to say if it corresponds to the first part of the generation information used by the sending device, by evaluating the integrity of the encrypted packet based on the encrypted data and the estimated value of the first part of the generation information. If the encrypted packet is considered as integrity, then it means furthermore that the estimated value of the first part of the generation information corresponds to the first part of the generation information used by the transmitting device.
Dans des modes particuliers de mise en œuvre, le procédé d'émission
peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. In particular modes of implementation, the method of transmission may further comprise one or more of the following features, taken singly or in any technically feasible combination.
Dans des modes particuliers de mise en œuvre, le code de vérification est calculé en fonction en outre d'une clé d'authentification du dispositif émetteur, de sorte que le code de vérification permette également de vérifier l'authenticité du paquet chiffré. In particular modes of implementation, the verification code is further calculated based on an authentication key of the transmitting device, so that the verification code also makes it possible to verify the authenticity of the encrypted packet.
Dans des modes particuliers de mise en œuvre, le procédé d'émission comporte également une formation et une émission d'un paquet, dit « paquet de recalage », incluant une information de recalage représentative de la première partie de l'information de génération. Ce paquet de recalage peut être émis de manière récurrente, par exemple de manière périodique, ou bien à chaque fois que la première partie de l'information de génération varie, ou encore à chaque fois que le dispositif émetteur émet un nombre prédéterminé de paquets chiffrés. Lors de la réception, par le dispositif récepteur, d'un paquet chiffré émis par le dispositif émetteur, l'estimation d'une valeur candidate de la première partie de l'information de génération dudit paquet chiffré est effectuée en fonction en outre de l'information de recalage extraite d'un paquet de recalage précédemment reçu. In particular modes of implementation, the transmission method also comprises a formation and a transmission of a packet, called "registration packet", including a registration information representative of the first part of the generation information. This registration packet can be issued recurrently, for example periodically, or whenever the first part of the generation information varies, or whenever the transmitting device transmits a predetermined number of encrypted packets. . Upon receiving, by the receiving device, an encrypted packet transmitted by the transmitting device, estimating a candidate value of the first part of the generation information of said encrypted packet is performed in addition to reset information extracted from a previously received registration packet.
Dans des modes particuliers de mise en œuvre, l'information de génération est un compteur de paquets correspondant au nombre de paquets émis par le dispositif émetteur ou une date de génération du paquet à émettre. In particular modes of implementation, the generation information is a packet counter corresponding to the number of packets transmitted by the transmitting device or a generation date of the packet to be transmitted.
Selon un second aspect, la présente invention concerne un dispositif émetteur pour émettre des paquets à destination d'un dispositif récepteur d'un système de communication, comportant, pour l'émission d'un paquet, dit « paquet chiffré », comportant des données chiffrées selon un protocole de chiffrement à clé symétrique: According to a second aspect, the present invention relates to a transmitting device for sending packets to a receiving device of a communication system, comprising, for the transmission of a packet, said "encrypted packet", comprising data encrypted according to a symmetric key encryption protocol:
- des moyens configurés pour déterminer la valeur d'une information de génération, means configured to determine the value of a generation information,
- des moyens configurés pour déterminer une clé de chiffrement, à utiliser pour chiffrer les données à inclure dans le paquet chiffré à émettre, en fonction de la valeur de l'information de génération, means configured to determine an encryption key, to be used for encrypting the data to be included in the encrypted packet to be transmitted, as a function of the value of the generation information,
- des moyens configurés pour chiffrer des données à inclure dans le paquet chiffré à émettre en fonction de la clé de chiffrement,
- des moyens configurés pour calculer une information tronquée en décomposant l'information de génération en une première partie et une seconde partie, la première partie variant plus lentement, au cours du temps, que la seconde partie, l'information tronquée étant représentative de ladite seconde partie, means configured to encrypt data to be included in the encrypted packet to be transmitted according to the encryption key, means configured to calculate a truncated information by decomposing the generation information into a first portion and a second portion, the first portion varying more slowly over time than the second portion, the truncated information being representative of said second party,
- des moyens configurés pour calculer un code de vérification du paquet chiffré en fonction des données chiffrées et de la première partie de l'information de génération, means configured to calculate a verification code of the encrypted packet based on the encrypted data and the first part of the generation information,
- des moyens configurés pour former le paquet chiffré à émettre à partir de l'information tronquée, du code de vérification, et des données chiffrées. means configured to form the encrypted packet to be transmitted from the truncated information, the verification code, and encrypted data.
Dans des modes particuliers de réalisation, le dispositif émetteur peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. In particular embodiments, the transmitter device may further comprise one or more of the following characteristics, taken separately or in any technically possible combination.
Dans des modes particuliers de réalisation, le code de vérification est calculé en fonction en outre d'une clé d'authentification du dispositif émetteur, de sorte que le code de vérification permette de vérifier en outre l'authenticité du paquet chiffré. In particular embodiments, the verification code is further calculated according to an authentication key of the transmitting device, so that the verification code also makes it possible to verify the authenticity of the encrypted packet.
Dans des modes particuliers de réalisation, le dispositif émetteur comporte en outre des moyens configurés pour former et émettre un paquet, dit « paquet de recalage », incluant une information de recalage représentative de la première partie de l'information de génération. In particular embodiments, the transmitter device further comprises means configured to form and transmit a packet, called "registration packet", including a registration information representative of the first part of the generation information.
Dans des modes particuliers de réalisation, l'information de génération est un compteur de paquets correspondant au nombre de paquets émis par ledit dispositif émetteur ou une date de génération du paquet à émettre. In particular embodiments, the generation information is a packet counter corresponding to the number of packets transmitted by said transmitting device or a generation date of the packet to be transmitted.
Selon un troisième aspect, la présente invention concerne un procédé d'extraction, par un dispositif récepteur, de données incluses dans un paquet chiffré, dit « paquet chiffré en cours », émis par un dispositif émetteur d'un système de communication conformément à un procédé d'émission selon l'un quelconque des modes de mise en œuvre de l'invention. Ledit procédé d'extraction comporte : According to a third aspect, the present invention relates to a method of extraction, by a receiver device, of data included in an encrypted packet, called "encrypted packet in progress", transmitted by a device that transmits a communication system in accordance with a transmission method according to any one of the embodiments of the invention. Said extraction process comprises:
- une extraction, à partir du paquet chiffré en cours, de l'information tronquée, du code de vérification, et des données chiffrées,
- une estimation d'une valeur candidate pour la première partie de l'information de génération du dispositif émetteur pour le paquet chiffré en cours en fonction de l'information tronquée extraite dudit paquet chiffré en cours, an extraction, from the current encrypted packet, of the truncated information, the verification code, and the encrypted data, an estimate of a candidate value for the first part of the generating information of the transmitting device for the current encrypted packet as a function of the truncated information extracted from said current encrypted packet,
- une détermination si la valeur candidate estimée est correcte par une évaluation de l'intégrité du paquet chiffré en cours en fonction de la valeur candidate estimée, des données chiffrées, et du code de vérification extraits dudit paquet chiffré en cours, a determination if the estimated candidate value is correct by evaluating the integrity of the current encrypted packet as a function of the estimated candidate value, the encrypted data, and the verification code extracted from said current encrypted packet,
- lorsque la valeur candidate estimée est considérée comme correcte : - when the estimated candidate value is considered correct:
o une détermination d'une clé de déchiffrement en fonction de la valeur candidate estimée et en fonction de l'information tronquée extraite, a determination of a decryption key as a function of the estimated candidate value and as a function of the extracted truncated information,
o un déchiffrement des données chiffrées extraites en fonction de la clé de déchiffrement. o a decryption of the extracted encrypted data according to the decryption key.
Dans des modes particuliers de mise en œuvre, le procédé d'extraction peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. In particular modes of implementation, the extraction method may further comprise one or more of the following characteristics, taken separately or in any technically possible combination.
Dans des modes particuliers de mise en œuvre, l'intégrité du paquet chiffré en cours est évaluée en fonction en outre d'une clé d'authentification du dispositif émetteur. In particular modes of implementation, the integrity of the current encrypted packet is evaluated in addition to an authentication key of the transmitting device.
Dans des modes particuliers de mise en œuvre, le procédé d'extraction comporte en outre une extraction d'une information de recalage incluse dans un paquet émis par le dispositif émetteur, dit « paquet de recalage ». L'estimation de la valeur candidate de la première partie de l'information de génération pour le paquet chiffré en cours est alors effectuée en outre en fonction de cette information de recalage. In particular modes of implementation, the extraction method further comprises an extraction of registration information included in a packet transmitted by the transmitting device, called "registration packet". The estimate of the candidate value of the first part of the generation information for the current encrypted packet is then further performed according to this registration information.
Dans des modes particuliers de mise en œuvre, plusieurs valeurs candidates pour la première partie de l'information de génération sont estimées, et l'intégrité du paquet chiffré en cours est évaluée pour chaque valeur candidate estimée jusqu'à ce qu'un critère d'arrêt soit vérifié. In particular embodiments, several candidate values for the first part of the generation information are estimated, and the integrity of the current encrypted packet is evaluated for each estimated candidate value until a criterion of stop is checked.
Dans des modes particuliers de mise en œuvre, l'information de
génération correspond à un compteur de paquets du dispositif émetteur dont la valeur de la première partie pour le paquet chiffré en cours est estimée en fonction en outre de la valeur de la première partie estimée et vérifiée pour un paquet précédent reçu du même dispositif émetteur. In particular modes of implementation, information from generation is a packet counter of the transmitting device whose value of the first part for the current encrypted packet is further estimated based on the value of the estimated first part and verified for a previous packet received from the same transmitting device.
Dans des modes particuliers de mise en œuvre, l'information de génération correspond à une date de génération du paquet émis par le dispositif émetteur dont la valeur de la première partie est estimée en fonction en outre de la première partie de la date de réception dudit paquet chiffré en cours par le dispositif récepteur. In particular modes of implementation, the generation information corresponds to a generation date of the packet transmitted by the transmitting device whose value of the first part is estimated as a function also of the first part of the date of receipt of said encrypted packet in progress by the receiving device.
Selon un quatrième aspect, la présente invention concerne un dispositif récepteur pour recevoir des paquets d'un dispositif émetteur d'un système de communication selon l'un quelconque des modes de réalisation de l'invention. Pour extraire les données incluses dans un paquet chiffré en cours, ledit dispositif récepteur comporte : According to a fourth aspect, the present invention relates to a receiver device for receiving packets of a transmitting device of a communication system according to any one of the embodiments of the invention. To extract the data included in a current encrypted packet, said receiver device comprises:
- des moyens configurés pour extraire, à partir du paquet chiffré en cours, l'information tronquée, le code de vérification, et les données chiffrées, means configured to extract, from the current encrypted packet, the truncated information, the verification code, and the encrypted data,
- des moyens configurés pour estimer une valeur candidate de la première partie d'une information de génération du dispositif émetteur pour le paquet chiffré en cours en fonction de l'information tronquée extraite dudit paquet chiffré en cours, means configured to estimate a candidate value of the first part of a generation information of the transmitting device for the current encrypted packet as a function of the truncated information extracted from said current encrypted packet,
- des moyens configurés pour déterminer si la valeur candidate estimée est correcte en évaluant l'intégrité du paquet chiffré en cours en fonction de la valeur candidate estimée, des données chiffrées, et du code de vérification extraits dudit paquet chiffré en cours, means configured to determine whether the estimated candidate value is correct by evaluating the integrity of the current encrypted packet as a function of the estimated candidate value, the encrypted data, and the verification code extracted from said current encrypted packet,
- des moyens configurés pour déterminer une clé de déchiffrement en fonction de la valeur de l'information de génération du dispositif émetteur estimée pour le paquet chiffré en cours, means configured to determine a decryption key as a function of the value of the generation information of the estimated transmitter device for the current encrypted packet,
- des moyens configurés pour déchiffrer les données chiffrées extraites du paquet chiffré en cours en fonction de la clé de déchiffrement. means configured to decrypt the encrypted data extracted from the current encrypted packet as a function of the decryption key.
Dans des modes particuliers de réalisation, le dispositif récepteur peut
comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. In particular embodiments, the receiving device can in addition, include one or more of the following characteristics, taken separately or in any technically feasible combination.
Dans des modes particuliers de réalisation, l'intégrité du paquet chiffré en cours est évaluée en fonction en outre d'une clé d'authentification du dispositif émetteur. In particular embodiments, the integrity of the current encrypted packet is evaluated in addition to an authentication key of the transmitting device.
Dans des modes particuliers de réalisation, le dispositif récepteur comporte en outre des moyens configurés pour extraire l'information de recalage à partir d'un paquet de recalage émis par le dispositif émetteur. La valeur candidate de la première partie de l'information de génération pour le paquet chiffré en cours est alors estimée en outre en fonction de cette information de recalage. In particular embodiments, the receiver device further comprises means configured to extract the registration information from a registration packet transmitted by the transmitting device. The candidate value of the first portion of the generation information for the current encrypted packet is then further estimated based on this registration information.
Dans des modes particuliers de réalisation, plusieurs valeurs candidates pour la première partie de l'information de génération sont estimées, et l'intégrité du paquet chiffré en cours est évaluée pour chaque valeur candidate estimée jusqu'à ce qu'un critère d'arrêt soit vérifié. In particular embodiments, several candidate values for the first portion of the generation information are estimated, and the integrity of the current encrypted packet is evaluated for each estimated candidate value until a stopping criterion be checked.
Dans des modes particuliers de réalisation, l'information de génération correspond à un compteur de paquets dudit dispositif émetteur dont la valeur de la première partie pour le paquet chiffré en cours est estimée en fonction en outre de la valeur de la première partie estimée et vérifiée pour un paquet précédent reçu du même dispositif émetteur. In particular embodiments, the generation information corresponds to a packet counter of said transmitting device whose value of the first part for the current encrypted packet is estimated in addition to the value of the first estimated and verified part. for a previous packet received from the same transmitting device.
Dans des modes particuliers de réalisation, l'information de génération correspond à une date de génération du paquet émis par le dispositif émetteur dont la valeur de la première partie est estimée en fonction en outre de la première partie de la date de réception dudit paquet chiffré en cours par le dispositif récepteur. In particular embodiments, the generation information corresponds to a generation date of the packet transmitted by the sending device whose value of the first part is estimated in addition to the first part of the date of receipt of said encrypted packet. in progress by the receiving device.
Selon un cinquième aspect, la présente invention concerne un système de communication comportant au moins un dispositif émetteur selon l'un quelconque des modes de réalisation de l'invention, et au moins un dispositif récepteur selon l'un quelconque des modes de réalisation de l'invention. According to a fifth aspect, the present invention relates to a communication system comprising at least one transmitting device according to any one of the embodiments of the invention, and at least one receiving device according to any one of the embodiments of the invention. 'invention.
PRÉSENTATION DES FIGURES PRESENTATION OF FIGURES
L'invention sera mieux comprise à la lecture de la description suivante, donnée à titre d'exemple nullement limitatif, et faite en se référant aux figures
qui représentent : The invention will be better understood on reading the following description, given by way of non-limiting example, and with reference to FIGS. that represent :
- Figure 1 : une représentation schématique d'un système de communication sans fil, - Figure 1: a schematic representation of a wireless communication system,
- Figure 2 : un diagramme illustrant les principales étapes d'un procédé d'émission d'un paquet comportant des données chiffrées, FIG. 2: a diagram illustrating the main steps of a method of sending a packet containing encrypted data,
- Figure 3 : un diagramme illustrant les principales étapes d'un mode préféré de mise en œuvre du procédé d'émission de la figure 2, avec émission d'un paquet de recalage, FIG. 3 is a diagram illustrating the main steps of a preferred embodiment of the transmission method of FIG. 2, with the transmission of a registration packet,
- Figure 4 : un diagramme illustrant les principales étapes d'un procédé d'extraction de données incluses dans un paquet chiffré, FIG. 4: a diagram illustrating the main steps of a data extraction method included in an encrypted packet,
- Figure 5 : un diagramme illustrant les principales étapes d'un mode préféré de mise en œuvre du procédé d'extraction de la figure 4, et mettant en évidence l'utilisation d'un paquet de recalage,FIG. 5: a diagram illustrating the main steps of a preferred mode of implementation of the extraction method of FIG. 4, and highlighting the use of a registration packet,
- Figure 6 : un diagramme illustrant les principales étapes d'évaluation d'intégrité d'un paquet chiffré, FIG. 6: a diagram illustrating the main steps of evaluating the integrity of an encrypted packet,
- Figure 7 : un diagramme illustrant les principales étapes d'un mode préféré de mise en œuvre du procédé d'extraction de la figure 5, et mettant en évidence l'estimation de plusieurs valeurs candidates. - Figure 7: a diagram illustrating the main steps of a preferred embodiment of the extraction method of Figure 5, and highlighting the estimation of several candidate values.
Dans ces figures, des références identiques d'une figure à une autre désignent des éléments identiques ou analogues. Pour des raisons de clarté, les éléments représentés ne sont pas à l'échelle, sauf mention contraire. In these figures, identical references from one figure to another designate identical or similar elements. For the sake of clarity, the elements shown are not to scale unless otherwise stated.
DESCRIPTION DÉTAILLÉE DE MODES DE RÉALISATION DETAILED DESCRIPTION OF EMBODIMENTS
La figure 1 représente schématiquement un système 1 0 de communication sans fil, par exemple de type UNB, comportant plusieurs terminaux 20 et un réseau d'accès 30. Dans l'exemple illustré par la figure 1 , le réseau d'accès 30 comporte plusieurs stations de base 31 et un serveur 32. FIG. 1 schematically represents a wireless communication system 10, for example of the UNB type, comprising several terminals 20 and an access network 30. In the example illustrated in FIG. 1, the access network 30 comprises several base stations 31 and a server 32.
Les terminaux 20 et les stations de base 31 du réseau d'accès 30 échangent des données sous la forme de signaux radioélectriques. Par « signal radioélectrique », on entend une onde électromagnétique se propageant via des moyens non filaires, dont les fréquences sont comprises dans le spectre traditionnel des ondes radioélectriques (quelques hertz à plusieurs centaines de gigahertz). The terminals 20 and the base stations 31 of the access network 30 exchange data in the form of radio signals. By "radio signal" is meant an electromagnetic wave propagating via non-wired means, the frequencies of which are included in the traditional spectrum of radio waves (a few hertz to several hundred gigahertz).
Notamment, les terminaux 20 sont adaptés à émettre des paquets sur
un lien montant à destination du réseau d'accès 30. In particular, the terminals 20 are adapted to transmit packets on an uplink link to the access network 30.
Les paquets sont par exemple émis de façon asynchrone. Par « émettre de façon asynchrone », on entend que les terminaux 20 déterminent de manière autonome quand ils émettent et/ou sur quelle fréquence centrale ils émettent, sans coordination desdits terminaux 20 entre eux et avec les stations de base 31 du réseau d'accès 30. For example, packets are sent asynchronously. By "asynchronously transmitting" is meant that the terminals 20 determine autonomously when they transmit and / or on which central frequency they transmit, without coordination of said terminals 20 to each other and to the base stations 31 of the access network. 30.
Dans la suite de la description, on se place de manière non limitative dans le cas où les terminaux 20 sont au moins asynchrones en temps, de sorte que les paquets sont émis à des instants non connus a priori du réseau d'accès 30. Rien n'exclut cependant, suivant d'autres exemples, de considérer des terminaux 20 synchronisés temporellement avec les stations de base 31 . In the remainder of the description, one places oneself in a nonlimiting manner in the case where the terminals 20 are at least asynchronous in time, so that the packets are transmitted at times not known a priori of the access network 30. Nothing However, according to other examples, this does not exclude the consideration of terminals 20 synchronized temporally with the base stations 31.
Chaque station de base 31 est adaptée à recevoir les paquets des terminaux 20 qui se trouvent à sa portée. Chaque paquet ainsi reçu est par exemple transmis au serveur 32 du réseau d'accès 30, éventuellement accompagné d'autres informations comme un identifiant de la station de base 31 qui l'a reçu, la puissance mesurée dudit paquet reçu, la date de réception mesurée dudit paquet, la fréquence centrale mesurée dudit paquet reçu, etc. Le serveur 32 traite par exemple l'ensemble des paquets reçus des différentes stations de base 31 . Each base station 31 is adapted to receive the packets of the terminals 20 which are within range. Each packet thus received is for example transmitted to the server 32 of the access network 30, possibly accompanied by other information such as an identifier of the base station 31 which received it, the measured power of said received packet, the date of reception. measured from said packet, the measured center frequency of said received packet, etc. The server 32 processes, for example, all the packets received from the various base stations 31.
A) Procédé d'émission de paquets A) Method of sending packets
La figure 2 représente schématiquement les principales étapes d'un procédé 50 d'émission, par un terminal 20 et à destination du réseau d'accès 30, de paquets comportant des données chiffrées selon un protocole de chiffrement à clé symétrique. FIG. 2 diagrammatically represents the main steps of a method 50 for sending, by a terminal 20 and destined for the access network 30, packets comprising data encrypted according to a symmetric key encryption protocol.
Par exemple, le terminal 20 comporte un circuit de traitement (non représenté sur les figures), comportant un ou plusieurs processeurs et des moyens de mémorisation (disque dur magnétique, mémoire électronique, disque optique, etc.) dans lesquels est mémorisé un produit programme d'ordinateur, sous la forme d'un ensemble d'instructions de code de programme à exécuter pour mettre en œuvre les différentes étapes du procédé 50 d'émission de paquets. Alternativement ou en complément, le circuit de traitement comporte un ou des circuits logiques programmables (FPGA, PLD, etc.), et/ou un ou des circuits intégrés spécialisés (ASIC), et/ou un ensemble
de composants électroniques discrets, etc., adaptés à mettre en œuvre tout ou partie desdites étapes du procédé 50 d'émission de paquets. For example, the terminal 20 comprises a processing circuit (not shown in the figures), comprising one or more processors and storage means (magnetic hard disk, electronic memory, optical disk, etc.) in which a program product is stored. computer, in the form of a set of program code instructions to be executed to implement the different steps of the packet sending method. Alternatively or in addition, the processing circuit includes one or more programmable logic circuits (FPGA, PLD, etc.), and / or one or more specialized integrated circuits (ASICs), and / or a set discrete electronic components, etc., adapted to implement all or part of said steps of the method of transmitting packets.
En d'autres termes, le circuit de traitement comporte un ensemble de moyens configurés de façon logicielle (produit programme d'ordinateur spécifique) et/ou matérielle (FPGA, PLD, ASIC, composants électroniques discrets, etc.) pour mettre en œuvre les étapes du procédé 50 d'émission de paquets à destination du réseau d'accès 30. In other words, the processing circuit comprises a set of means configured in software (specific computer program product) and / or hardware (FPGA, PLD, ASIC, discrete electronic components, etc.) to implement the steps of the packet sending method 50 to the access network 30.
Le terminal 20 comporte également des moyens de communication sans fil, considérés comme connus de l'homme de l'art, permettant au terminal 20 d'émettre des paquets, à destination des stations de base 31 du réseau d'accès 30, sous la forme de signaux radioélectriques. The terminal 20 also comprises wireless communication means, considered as known to those skilled in the art, enabling the terminal 20 to send packets to the base stations 31 of the access network 30, under the form of radio signals.
Tel qu'illustré par la figure 2, le procédé 50 d'émission de paquets chiffrés comporte les étapes suivantes, toutes exécutées par le terminal 20, qui seront décrites en détail ci-après : As illustrated in FIG. 2, the method for transmitting encrypted packets comprises the following steps, all executed by the terminal 20, which will be described in detail below:
- 51 détermination de la valeur d'une information de génération, - 51 determining the value of a generation information,
- 52 détermination d'une clé de chiffrement en fonction de la valeur de l'information de génération, Determining an encryption key according to the value of the generation information,
- 53 chiffrement des données à inclure dans le paquet chiffré à émettre en fonction de la clé de chiffrement, Encryption of the data to be included in the encrypted packet to be transmitted according to the encryption key,
- 54 calcul d'une information tronquée à partir de l'information de génération, Computing a truncated information from the generation information,
- 55 calcul d'un code de vérification du paquet chiffré en fonction des données chiffrées et de la première partie de l'information de génération, Computing a verification code of the encrypted packet based on the encrypted data and the first part of the generation information,
- 56 formation du paquet chiffré à émettre à partir de l'information tronquée, du code de vérification, et des données chiffrées. The formation of the encrypted packet to be transmitted from the truncated information, the verification code, and the encrypted data.
Ainsi, la clé de chiffrement est déterminée en fonction de la valeur d'une information de génération qui est variable au cours du temps. Par conséquent, la clé de chiffrement change à chaque fois que la valeur de l'information de génération change. Par contre, l'information de génération n'est pas incluse telle quelle dans le paquet chiffré à émettre, et c'est une information tronquée qui est incluse dans le paquet chiffré émis. Thus, the encryption key is determined according to the value of a generation information that is variable over time. As a result, the encryption key changes each time the value of the generation information changes. On the other hand, the generation information is not included as it is in the encrypted packet to be transmitted, and it is truncated information that is included in the transmitted encrypted packet.
L'information de génération peut être toute information variable au
cours du temps qui peut être décomposée en une première partie et une seconde partie, la première partie variant plus lentement que la seconde partie. Par conséquent, la première partie, qui ne varie pas ou peu sur la durée d'émission de plusieurs paquets consécutifs, n'a pas à être incluse dans le paquet chiffré à émettre. Par contre, la seconde partie, qui varie d'un paquet à un autre, est incluse dans le paquet chiffré à émettre sous toute forme adaptée, et l'information tronquée est calculée à partir de ladite seconde partie uniquement, c'est-à-dire sans tenir compte de la première partie. Generation information can be any variable information at course of time that can be broken down into a first part and a second part, the first part varying more slowly than the second part. Therefore, the first part, which does not vary or little over the transmission duration of several consecutive packets, does not have to be included in the encrypted packet to be transmitted. On the other hand, the second part, which varies from one packet to another, is included in the encrypted packet to be transmitted in any suitable form, and the truncated information is calculated from said second part only, that is to say to say without taking into account the first part.
Par exemple, l'information de génération est la date de génération du paquet chiffré à émettre. La date de génération est par exemple exprimée sous la forme année-mois-jour-heure-minute-seconde, et est donc décomposable en une première partie qui varie lentement, telle que la partie correspondant à année-mois-jour, tandis que la seconde partie, qui varie plus rapidement, est la partie correspondant à heure-minute-seconde. L'information tronquée est donc, dans cet exemple, représentative de la partie correspondant à heure-minute- seconde, et est par exemple calculée à partir de la partie heure-minute- seconde au moyen d'une fonction de calcul inversible et connue a priori du terminal 20 et du réseau d'accès 30. For example, the generation information is the generation date of the encrypted packet to be transmitted. The generation date is for example expressed as year-month-day-hour-minute-second, and is therefore decomposable into a first part that varies slowly, such as the part corresponding to year-month-day, while the second part, which varies more rapidly, is the part corresponding to hour-minute-second. The truncated information is therefore, in this example, representative of the part corresponding to hour-minute-second, and is for example calculated from the hour-minute-second part by means of an invertible calculation function known to the priori of the terminal 20 and the access network 30.
Dans la suite de la description, on se place de manière non limitative dans le cas où l'information de génération est un compteur de paquets correspondant au nombre de paquets émis par le terminal 20. L'information tronquée est désignée ci-après par « compteur tronqué ». In the remainder of the description, reference is non-limiting in the case where the generation information is a packet counter corresponding to the number of packets transmitted by the terminal 20. The truncated information is hereinafter referred to as " truncated counter ".
A.1 ) Détermination de la valeur du compteur de paquets A.1) Determination of the value of the packet counter
Au cours de l'étape 51 de détermination, le terminal 20 met à jour la valeur d'un compteur de paquets, qui correspond au nombre de paquets émis par ledit terminal 20. During the determining step 51, the terminal 20 updates the value of a packet counter, which corresponds to the number of packets transmitted by said terminal 20.
De préférence, la valeur dudit compteur de paquets est incrémentée à chaque nouvelle émission de paquet. Rien n'exclut cependant, suivant d'autres exemples, de n'incrémenter ladite valeur du compteur de paquets que pour certains paquets. Par exemple, il est possible, afin d'augmenter la probabilité de réception, par le réseau d'accès 30, des données incluses dans un paquet, de dupliquer Nr fois lesdites données afin de les inclure dans Nr paquets émis successivement, par exemple sur des fréquences centrales différentes,
comportant tous les mêmes données. Dans un tel cas, par exemple, il est possible de n'incrémenter la valeur dudit compteur de paquets que tous les Nr paquets, c'est-à-dire uniquement lorsque de nouvelles données doivent être émises par le terminal 20. Preferably, the value of said packet counter is incremented with each new packet transmission. However, there is nothing to preclude, according to other examples, incrementing said value of the packet counter only for certain packets. For example, it is possible, in order to increase the probability of reception, by the access network 30, of the data included in a packet, of duplicating Nr times said data in order to include them in Nr packets sent successively, for example on different central frequencies, with all the same data. In such a case, for example, it is possible to increment the value of said packet counter only all Nr packets, that is to say only when new data must be sent by the terminal 20.
Dans la suite de la description, on se place de manière non limitative dans le cas où la valeur du compteur de paquets est incrémentée à chaque nouvelle émission d'un paquet. In the remainder of the description, one places oneself in a nonlimiting manner in the case where the value of the packet counter is incremented with each new transmission of a packet.
La valeur du compteur de paquets est par exemple incrémentée modulo Ne, Ne étant un nombre entier positif prédéterminé. Ainsi, le compteur de paquets du terminal 20 peut prendre Ne valeurs différentes. Par exemple, le nombre Ne est égal à 2Nb1 , Nb1 étant un nombre entier positif prédéterminé, de sorte que la valeur du compteur de paquets peut être encodée au moyen de Nb1 bits. Par exemple, Nb1 est égal à 128, de sorte que le compteur de paquets du terminal 20 peut prendre plus de 1038 valeurs différentes. The value of the packet counter is, for example, incremented modulo Ne, Ne being a predetermined positive integer. Thus, the packet counter of the terminal 20 can take Ne different values. For example, the number Ne is equal to 2 Nb1 , Nb1 being a predetermined positive integer, so that the value of the packet counter can be encoded by means of Nb1 bits. For example, Nb1 is equal to 128, so that the packet counter of the terminal 20 can take more than 10 38 different values.
A.2) Détermination de la clé de chiffrement A.2) Determination of the encryption key
Au cours de l'étape 52 de détermination, la clé de chiffrement, à utiliser pour chiffrer les données à inclure dans le paquet chiffré à émettre, est déterminée en fonction de la valeur du compteur de paquets. During the determination step 52, the encryption key, to be used for encrypting the data to be included in the encrypted packet to be transmitted, is determined according to the value of the packet counter.
Ainsi, la clé de chiffrement à utiliser est modifiée à chaque fois que la valeur du compteur de paquets est incrémentée. En outre, comme le compteur de paquets peut prendre Ne valeurs différentes, il en résulte que la clé de chiffrement peut également prendre Ne valeurs différentes. Thus, the encryption key to be used is changed each time the value of the packet counter is incremented. In addition, as the packet counter may take different values, it follows that the encryption key may also take different values.
Par conséquent, le nombre Ne est avantageusement prédéterminé de sorte à assurer notamment un bon niveau de confidentialité des échanges. Par exemple, en considérant le nombre Ne égal à 2Nb1 et Nb1 égal à 128, alors la clé de chiffrement peut prendre plus de 1038 valeurs différentes, ce qui permet d'assurer un bon niveau de confidentialité. Consequently, the number Ne is advantageously predetermined so as to ensure in particular a good level of confidentiality of exchanges. For example, considering the number Ne equal to 2 Nb1 and Nb1 equal to 128, then the encryption key can take more than 10 38 different values, which ensures a good level of confidentiality.
La clé de chiffrement est déterminée, à partir de la valeur du compteur de paquets, selon une méthode de génération de clé prédéfinie, connue a priori du terminal 20 et du réseau d'accès 30. L'invention peut mettre en œuvre tout type de méthode de génération de clé adaptée connue de l'homme de l'art, et le choix d'une méthode de génération de clé particulière ne constitue qu'une variante de mise en œuvre de l'invention. En outre, la clé de chiffrement peut
également être déterminée à partir d'informations additionnelles qui, le cas échéant, sont par exemple concaténées avec le compteur de paquets pour obtenir un mot de génération de taille supérieure à celle du seul compteur de paquets. Par exemple, il peut être envisagé de concaténer avec le compteur de paquets une séquence statique générée de manière pseudo-aléatoire, unique pour un terminal 20 donné, et connue a priori par le réseau d'accès 30. The encryption key is determined, from the value of the packet counter, according to a predefined key generation method, known a priori from the terminal 20 and the access network 30. The invention can implement any type of adapted key generation method known to those skilled in the art, and the choice of a particular key generation method is only an alternative embodiment of the invention. In addition, the encryption key can It can also be determined from additional information which, if necessary, is for example concatenated with the packet counter to obtain a generation word of greater size than that of the single packet counter. For example, it may be envisaged to concatenate with the packet counter a static sequence generated in a pseudo-random manner, unique for a given terminal 20 and known a priori by the access network 30.
A.3) Chiffrement des données A.3) Data encryption
Au cours de l'étape 53 de chiffrement, les données à inclure dans le paquet chiffré à émettre sont chiffrées en fonction de la clé de chiffrement, selon le protocole de chiffrement à clé symétrique considéré. During the encryption step 53, the data to be included in the encrypted packet to be transmitted is encrypted according to the encryption key, according to the symmetric key encryption protocol considered.
De manière générale, l'invention est applicable à tout type de protocole de chiffrement à clé symétrique connu de l'homme de l'art, et le choix d'un protocole de chiffrement à clé symétrique particulier ne constitue qu'une variante d'implémentation de l'invention. In general, the invention is applicable to any type of symmetric key encryption protocol known to those skilled in the art, and the choice of a particular symmetric key encryption protocol is only a variant of implementation of the invention.
Dans des modes préférés de mise en œuvre, le protocole de chiffrement à clé symétrique utilisé est un protocole de chiffrement de flux (aussi connu sous le terme de chiffrement par flot, « stream cipher » dans la littérature anglo-saxonne) éventuellement émulé à partir d'un protocole de chiffrement par bloc comme l'AES (« Advanced Encryption Standard »). In preferred modes of implementation, the symmetric key encryption protocol used is a stream encryption protocol (also known as stream cipher in the English literature) possibly emulated from a block encryption protocol like AES (Advanced Encryption Standard).
En effet, contrairement aux protocoles de chiffrement par bloc, un protocole de chiffrement de flux permet de chiffrer des données quelle que soit leur taille par rapport à la taille de la clé de chiffrement. Par conséquent, il est possible de choisir des clés de chiffrement longues, pouvant ainsi prendre un nombre très élevé de valeurs différentes, sans avoir à augmenter d'autant la quantité des données à inclure dans un paquet. In fact, unlike block encryption protocols, a stream encryption protocol makes it possible to encrypt data regardless of their size relative to the size of the encryption key. Therefore, it is possible to choose long encryption keys, which can take a very large number of different values, without having to increase by the same amount of data to include in a package.
Dans la suite de la description, on se place de manière non limitative dans le cas d'un protocole de chiffrement de flux. De manière conventionnelle, les données se présentent par exemple sous forme de bits, de même que la clé de chiffrement qui comporte au moins Nb1 bits. Les données chiffrées sont par exemple obtenues en combinant un à un les bits successifs des données et de la clé de chiffrement, par exemple au moyen d'une fonction logique de type « OU EXCLUSIF » (« XOR » dans la littérature anglo-saxonne). In the remainder of the description, one places oneself in a nonlimiting manner in the case of a flow encryption protocol. Conventionally, the data is for example in the form of bits, as is the encryption key which comprises at least Nb1 bits. The encrypted data are for example obtained by combining one by one the successive bits of the data and the encryption key, for example by means of a logic function of the type "EXCLUSIVE OR" ("XOR" in the English-language literature) .
A.4) Calcul du compteur tronqué
Au cours de l'étape 54 de calcul, un compteur tronqué est déterminé à partir de la valeur du compteur de paquets du terminal 20. A.4) Truncated counter calculation During the calculation step 54, a truncated counter is determined from the value of the packet counter of the terminal 20.
A cet effet, tel qu'indiqué précédemment, le compteur de paquets est décomposé en un première partie et une seconde partie. For this purpose, as indicated above, the packet counter is decomposed into a first part and a second part.
Par exemple, la seconde partie du compteur de paquets correspond à la valeur dudit compteur de paquets modulo Nt, Nt étant un nombre entier positif prédéterminé inférieur à Ne. En d'autres termes, la seconde partie correspond au reste de la division euclidienne de la valeur du compteur de paquets par Nt, tandis que la première partie correspond au quotient de ladite division euclidienne de la valeur du compteur de paquets par Nt. For example, the second part of the packet counter corresponds to the value of said modulo packet counter Nt, where Nt is a predetermined positive integer less than Ne. In other words, the second part corresponds to the rest of the Euclidean division of the packet counter value by Nt, while the first part corresponds to the quotient of the Euclidean division of the packet counter value by Nt.
Par exemple, le nombre Nt est égal à 2Nb2, Nb2 étant un nombre entier positif prédéterminé inférieur à Nb1 , de sorte que la seconde partie correspond alors aux Nb2 bits de poids faible (« Least Significant Bits » ou LSB dans la littérature anglo-saxonne) parmi les Nb1 bits du compteur de paquets. Par exemple, Nb2 est égal à 12, de sorte que la seconde partie correspond à la valeur du compteur de paquets modulo 4096. Le nombre Nt peut par exemple être choisi de telle sorte que la probabilité, pour le réseau d'accès 30, de manquer Nt paquets consécutifs émis par le même terminal 20 est inférieure à une valeur seuil prédéfinie, par exemple inférieure à 10"6. For example, the number Nt is equal to 2 Nb2 , Nb2 being a predetermined positive integer less than Nb1, so that the second part then corresponds to the Nb2 least significant bits ("Least Significant Bits" or LSB in the English literature). Saxon) among the Nb1 bits of the packet counter. For example, Nb2 is equal to 12, so that the second part corresponds to the value of the modulo packet counter 4096. The number Nt can for example be chosen such that the probability, for the access network 30, of Missing consecutive packets transmitted by the same terminal 20 is less than a predefined threshold value, for example less than 10 -6 .
Le compteur tronqué est représentatif de la seconde partie du compteur de paquets, et est par exemple calculé à partir de ladite seconde partie selon une fonction de calcul inversible connue a priori du terminal 20 et du réseau d'accès 30. Dans la suite de la description, on se place de manière non limitative dans le cas où le compteur tronqué est choisi égal à la seconde partie, de sorte que ledit compteur tronqué correspond à la valeur du compteur de paquets modulo Nt. The truncated counter is representative of the second part of the packet counter, and is for example calculated from said second part according to an invariable calculation function known prior to the terminal 20 and the access network 30. In the following description, it is placed in a nonlimiting manner in the case where the truncated counter is chosen equal to the second part, so that said truncated counter corresponds to the value of the packet counter modulo Nt.
A.5) Calcul du code de vérification A.5) Calculation of the verification code
Au cours de l'étape 55 de calcul, un code de vérification est déterminé à partir des données chiffrées et de la première partie du compteur de paquets. During the calculation step 55, a verification code is determined from the encrypted data and the first part of the packet counter.
En effet, le réseau d'accès 30 doit, lors de la réception d'un paquet chiffré émis par le terminal 20, estimer la valeur de la première partie du compteur de paquets pour ledit paquet chiffré afin d'en déduire, à partir du compteur tronqué, la valeur de l'information de génération, et ainsi pouvoir
déterminer la clé de déchiffrement pour pouvoir déchiffrer les données chiffrées contenues dans ledit paquet chiffré. Indeed, the access network 30 must, when receiving an encrypted packet transmitted by the terminal 20, estimate the value of the first part of the packet counter for said encrypted packet in order to deduce, from the truncated counter, the value of generation information, and so power determining the decryption key to be able to decrypt the encrypted data contained in said encrypted packet.
Le code de vérification, qui est calculé par le terminal 20 en fonction des données chiffrées et de la première partie du compteur de paquets, est alors utilisé par le réseau d'accès 30 pour évaluer l'intégrité du paquet chiffré. Si le paquet chiffré est considéré comme intègre, alors cela signifie que les données chiffrées extraites du paquet chiffré et la valeur estimée de la première partie du compteur de paquets sont correctes. Dans le cas contraire, cela signifie que les données chiffrées extraites du paquet chiffré et/ou la valeur estimée de la première partie du compteur de paquets ne sont pas correctes. The verification code, which is calculated by the terminal 20 based on the encrypted data and the first part of the packet counter, is then used by the access network 30 to evaluate the integrity of the encrypted packet. If the encrypted packet is considered integrity, then it means that the encrypted data extracted from the encrypted packet and the estimated value of the first part of the packet counter are correct. If not, it means that the encrypted data extracted from the encrypted packet and / or the estimated value of the first part of the packet counter are not correct.
L'utilisation d'un tel code de vérification, calculé en fonction de la première partie de l'information tronquée qui n'est pas incluse dans le paquet chiffré, permet donc de vérifier la valeur de la première partie du compteur de paquets estimée par le réseau d'accès 30, et permet donc d'éviter le cas où les données chiffrées d'un paquet chiffré seraient déchiffrées à partir d'une clé de déchiffrement erronée du fait d'une erreur dans l'estimation de la première partie du compteur de paquets. The use of such a verification code, calculated according to the first part of the truncated information that is not included in the encrypted packet, thus makes it possible to check the value of the first part of the estimated packet counter by the access network 30, and therefore avoids the case where the encrypted data of an encrypted packet would be decrypted from an incorrect decryption key due to an error in the estimation of the first part of the packet counter.
Différentes méthodes plus ou moins robustes sont connues de l'homme de l'art pour vérifier l'intégrité de données, comme par exemple l'utilisation d'un bit de parité, ou un contrôle de redondance cyclique (CRC). Dans la suite de la description, on se place de manière non limitative dans le cas où le code de vérification est un Code d'Authentification de Message ou CAM (« Message Authentication Code » ou MAC dans la littérature anglo- saxonne) calculé en fonction en outre d'une clé d'authentification du terminal 20 qui est également connue a priori par le réseau d'accès 30. Various more or less robust methods are known to those skilled in the art for verifying the integrity of data, such as for example the use of a parity bit, or a cyclic redundancy check (CRC). In the remainder of the description, one places oneself in a nonlimiting manner in the case where the verification code is a Message Authentication Code (CAM) or MAC ("Message Authentication Code" or MAC in English literature) calculated according to in addition to an authentication key of the terminal 20 which is also known a priori by the access network 30.
Il est en effet courant, dans un système de communication, d'utiliser un code d'authentification de message pour vérifier simultanément l'authenticité d'un paquet reçu et l'intégrité des données contenues dans ce paquet. Dans notre exemple, comme ce code est calculé en fonction en outre de la première partie du compteur de paquets, il permet également, sans augmenter la quantité d'informations à inclure dans le paquet chiffré, de vérifier au niveau du réseau d'accès 30 l'estimation de la première partie du compteur
de paquets d'un paquet reçu. Ainsi, un tel code de vérification permet au réseau d'accès 30 : It is indeed common in a communication system to use a message authentication code to simultaneously check the authenticity of a received packet and the integrity of the data contained in this packet. In our example, since this code is further calculated based on the first part of the packet counter, it also allows, without increasing the amount of information to be included in the encrypted packet, to check at the access network 30 the estimate of the first part of the counter packets of a received packet. Thus, such a verification code enables the access network 30:
- de vérifier l'intégrité des données chiffrées reçues ; - verify the integrity of the received encrypted data;
- de vérifier la valeur estimée de la première partie du compteur de paquets ; to check the estimated value of the first part of the packet counter;
- d'authentifier le terminal 20 qui a émis le paquet chiffré. - Authenticate the terminal 20 that issued the encrypted packet.
A.6) Formation du paquet chiffré à émettre A.6) Formation of the encrypted packet to be transmitted
Au cours de l'étape 56 de formation, le paquet chiffré à émettre est formé à partir des données chiffrées, du code de vérification, et du compteur tronqué. En d'autres termes, la valeur du compteur de paquets n'est pas incluse dans le paquet chiffré à émettre, qui ne comporte que le compteur tronqué. During the training step 56, the encrypted packet to be transmitted is formed from the encrypted data, the verification code, and the truncated counter. In other words, the value of the packet counter is not included in the encrypted packet to be transmitted, which includes only the truncated counter.
On comprend donc que la quantité d'informations incluses, dans le paquet chiffré, pour encoder le compteur tronqué est inférieure à celle nécessaire pour encoder la valeur du compteur de paquets, puisque le compteur tronqué correspond par exemple aux Nb2 bits de poids faible parmi les Nb1 bits du compteur de paquets. Par conséquent, les (Nb1 - Nb2) bits de poids fort (« Most Significant Bits » ou MSB dans la littérature anglo-saxonne) du compteur de paquets, qui correspondent à la première partie dudit compteur de paquets, ne sont pas inclus dans le paquet chiffré à émettre, ce qui correspond à 1 1 6 bits non inclus dans le cas où Nb1 est égal à 128 et où Nb2 est égal à 12. It is therefore understood that the quantity of information included in the encrypted packet for encoding the truncated counter is less than that necessary to encode the value of the packet counter, since the truncated counter corresponds, for example, to the Nb2 least significant bits among the Nb1 bits of the packet counter. Therefore, the (Nb1 - Nb2) most significant bits (MSB) of the packet counter, which correspond to the first part of said packet counter, are not included in the packet counter. coded packet to be transmitted, which corresponds to 1 1 6 bits not included in the case where Nb1 is equal to 128 and Nb2 is equal to 12.
Ainsi, il est possible d'assurer un bon niveau de confidentialité, par le choix d'une valeur Ne élevée, tout en limitant la quantité d'informations à inclure dans le paquet chiffré, par le choix d'une valeur Nt significativement inférieure. Thus, it is possible to ensure a good level of confidentiality, by choosing a high Ne value, while limiting the amount of information to be included in the encrypted packet, by choosing a significantly lower value Nt.
Le paquet chiffré ainsi formé est ensuite émis, par le terminal 20, à destination du réseau d'accès 30. The encrypted packet thus formed is then transmitted by the terminal 20 to the access network 30.
A.7) Variante de mise en œuyre utilisant un paquet de recalaqe A.7) Embodiment variant using a recalibration package
La figure 3 représente les principales étapes d'une variante de mise en œuvre du procédé 50 d'émission comportant, outre les étapes décrites ci-avant en référence à la figure 2, une étape 56 de formation d'un paquet de recalage à partir d'une information de recalage représentative de la première partie du
compteur de paquets. FIG. 3 represents the main steps of an implementation variant of the transmission method 50 comprising, in addition to the steps described above with reference to FIG. 2, a step 56 of forming a registration packet from a registration information representative of the first part of the packet counter.
Ce paquet de recalage peut être émis de manière récurrente, par exemple de manière périodique, ou bien à chaque fois que la valeur de la première partie du compteur de paquets varie, ou à chaque fois que le terminal 20 émet un nombre prédéterminé de paquets chiffrés, etc. This registration packet may be issued recurrently, for example periodically, or whenever the value of the first part of the packet counter varies, or whenever the terminal 20 transmits a predetermined number of encrypted packets. etc.
Comme cela sera expliqué plus en détail par la suite, l'information de recalage permet, lors de la réception d'un paquet chiffré par le réseau d'accès 30, d'améliorer l'estimation de la valeur de la première partie du compteur de paquets. As will be explained in more detail below, the registration information makes it possible, when receiving an encrypted packet by the access network 30, to improve the estimate of the value of the first part of the counter. packets.
Il est à noter que le compteur de paquets du terminal 20 peut ne compter que les paquets chiffrés, tout comme il peut également compter l'ensemble des paquets émis, en incluant les paquets de recalage. Ce choix de comportement du compteur de paquets ne constitue qu'une variante de mise en œuvre de l'invention. It should be noted that the packet counter of the terminal 20 can count only the encrypted packets, just as it can also count the set of transmitted packets, including the registration packets. This choice of behavior of the packet counter is only one variant of implementation of the invention.
Il est à noter également que le paquet de recalage peut ne comporter que l'information de recalage, tout comme il peut également comporter d'autres informations, comme par exemple des données chiffrées, ou la seconde partie du compteur de paquets (par exemple si le compteur de paquets est incrémenté lors de l'émission d'un paquet de recalage). It should also be noted that the registration packet may comprise only the registration information, just as it may also include other information, such as for example encrypted data, or the second part of the packet counter (for example if the packet counter is incremented when issuing a registration packet).
Dans la suite de la description, on se place de manière non limitative dans le cas où ; In the remainder of the description, one places oneself in a nonlimiting manner in the case where;
- l'information de recalage est la première partie du compteur de paquets, c'est-à-dire les (Nb1 - Nb2) bits de poids fort du compteur de paquets dans l'exemple considéré, the registration information is the first part of the packet counter, that is to say the (Nb1-Nb2) most significant bits of the packet counter in the example considered,
- un paquet de recalage est émis à chaque fois que le compteur a été incrémenté Nt fois exactement, c'est-à-dire à chaque fois que la seconde partie du compteur de paquets (les Nb2 bits de poids faible) repasse à zéro, c'est-à-dire aussi à chaque fois que la première partie du compteur de paquets (les (Nb1 - Nb2) bits de poids fort) est incrémentée, a reset packet is sent each time the counter has been incremented exactly one time, that is to say each time the second part of the packet counter (the Nb2 least significant bits) returns to zero, that is to say also whenever the first part of the packet counter (the (Nb1 - Nb2) most significant bits) is incremented,
- le compteur de paquets du terminal 20 est incrémenté lors de l'émission d'un paquet de recalage. - The packet counter of the terminal 20 is incremented when issuing a registration packet.
Pour permettre au réseau d'accès 30 de discriminer les différents
types de paquets reçus (paquet chiffré, paquet de recalage, ou autre), une information permettant d'identifier le type de paquet peut être incluse dans le paquet. Cet aspect sort du cadre de l'invention. To enable the access network 30 to discriminate between different received packet types (encrypted packet, registration packet, or other), information identifying the type of packet may be included in the packet. This aspect is outside the scope of the invention.
B) Procédé d'extraction des données incluses dans le paquet B) Method of extracting the data included in the packet
La figure 4 représente schématiquement les principales étapes d'un procédé 60 d'extraction, par le réseau d'accès 30, de données incluses dans un paquet reçu d'un terminal 20, ledit paquet ayant été émis conformément à un procédé 50 d'émission selon l'un des modes de mise en œuvre de l'invention. Dans la suite de la description, on désigne le paquet chiffré à partir duquel on cherche à extraire des données par « paquet chiffré en cours », afin de le distinguer d'autres paquets précédemment reçus du même terminal 20. FIG. 4 schematically represents the main steps of a method 60 for extracting, by the access network 30, data included in a packet received from a terminal 20, said packet having been transmitted in accordance with a method 50 of FIG. emission according to one of the embodiments of the invention. In the remainder of the description, the encrypted packet is designated from which it is sought to extract data by "encrypted packet in progress", in order to distinguish it from other packets previously received from the same terminal 20.
Tel qu'illustré par la figure 4, le procédé 60 d'extraction de données comporte les étapes suivantes, qui seront décrites en détail ci-après : As illustrated in FIG. 4, the data extraction method 60 comprises the following steps, which will be described in detail below:
- 61 extraction, à partir du paquet chiffré en cours, de l'information tronquée, du code de vérification, et des données chiffrées incluses dans le paquet chiffré en cours, Extracting, from the current encrypted packet, the truncated information, the verification code, and the encrypted data included in the current encrypted packet,
- 62 estimation d'une valeur candidate pour la première partie de l'information de génération du terminal 20 pour le paquet chiffré en cours en fonction de l'information tronquée extraite du paquet chiffré en cours, Estimating a candidate value for the first part of the generation information of the terminal for the current encrypted packet as a function of the truncated information extracted from the current encrypted packet,
- 63 évaluation d'intégrité du paquet chiffré en cours en fonction de la valeur candidate estimée, des données chiffrées, et du code de vérification extraits dudit paquet chiffré en cours, - 63 evaluation of the integrity of the current encrypted packet based on the estimated candidate value, the encrypted data, and the verification code extracted from said current encrypted packet,
- lorsque le paquet chiffré en cours est considéré comme intègre : - when the current encrypted packet is considered to include:
o 64 détermination d'une clé de déchiffrement en fonction de la valeur de l'information de génération du terminal 20 estimée pour le paquet chiffré en cours, determining a decryption key as a function of the value of the estimated terminal generation information for the current encrypted packet,
o 65 déchiffrement des données chiffrées extraites du paquet chiffré en cours en fonction de la clé de déchiffrement. decryption of the encrypted data extracted from the current encrypted packet according to the decryption key.
II est à noter que les étapes représentées par la figure 4 sont toutes mises en œuvre par le réseau d'accès 30. It should be noted that the steps represented by FIG. 4 are all implemented by the access network 30.
Dans l'exemple décrit en référence à la figure 1 , dans lequel le réseau d'accès 30 comporte une pluralité de stations de base 31 et un serveur 32, le
paquet chiffré en cours, à partir duquel on cherche à extraire les données, est initialement reçu par une ou plusieurs stations de base 31 . In the example described with reference to FIG. 1, in which the access network 30 comprises a plurality of base stations 31 and a server 32, the encrypted packet in progress, from which one seeks to extract the data, is initially received by one or more base stations 31.
Chaque station de base 31 comporte à cet effet des moyens de communication sans fil, considérés comme connus de l'homme de l'art, permettant à ladite station de base de recevoir des paquets émis par un ou plusieurs terminaux 20 sous la forme de signaux radioélectriques. Each base station 31 comprises for this purpose wireless communication means, considered as known to those skilled in the art, allowing said base station to receive packets transmitted by one or more terminals 20 in the form of signals. radio.
Par contre, les étapes du procédé 60 d'extraction de données, représentées sur la figure 4, peuvent être exécutées par la ou les stations de base 31 ayant reçu le paquet chiffré en cours et/ou par le serveur 32. On the other hand, the steps of the data extraction method 60, shown in FIG. 4, can be executed by the base station (s) 31 having received the current encrypted packet and / or by the server 32.
Dans la suite de la description, on se place de manière non limitative dans le cas où les étapes listées ci-dessus sont toutes mises en œuvre par le serveur 32, après avoir reçu le paquet chiffré en cours de la ou des stations de base 31 ayant initialement reçu ledit paquet chiffré en cours sur le lien montant. In the remainder of the description, one places oneself in a nonlimiting manner in the case where the steps listed above are all implemented by the server 32, after having received the current encrypted packet of the base station (s). having initially received said current encrypted packet on the up link.
A cet effet, les stations de base 31 et le serveur 32 comportent des moyens de communication de réseau respectifs, considérés comme connus de l'homme de l'art, permettant aux stations de base 31 de transmettre chaque paquet reçu au serveur 32. For this purpose, the base stations 31 and the server 32 comprise respective network communication means, considered as known to those skilled in the art, allowing the base stations 31 to transmit each received packet to the server 32.
Le serveur 32 comporte par exemple un circuit de traitement (non représenté sur les figures), comportant un ou plusieurs processeurs et des moyens de mémorisation (disque dur magnétique, mémoire électronique, disque optique, etc.) dans lesquels est mémorisé un produit programme d'ordinateur, sous la forme d'un ensemble d'instructions de code de programme à exécuter pour mettre en œuvre les différentes étapes du procédé 60 d'extraction de données. Alternativement ou en complément, le circuit de traitement comporte un ou des circuits logiques programmables (FPGA, PLD, etc.), et/ou un ou des circuits intégrés spécialisés (ASIC), et/ou un ensemble de composants électroniques discrets, etc., adaptés à mettre en œuvre tout ou partie desdites étapes du procédé 60 d'extraction de données. The server 32 comprises for example a processing circuit (not shown in the figures), comprising one or more processors and storage means (magnetic hard disk, electronic memory, optical disk, etc.) in which a program product is stored. computer, in the form of a set of program code instructions to be executed to implement the different steps of the data extraction method 60. Alternatively or in addition, the processing circuit comprises one or more programmable logic circuits (FPGA, PLD, etc.), and / or one or more specialized integrated circuits (ASIC), and / or a set of discrete electronic components, etc. , adapted to implement all or part of said steps of the data extraction method 60.
En d'autres termes, le circuit de traitement comporte un ensemble de moyens configurés de façon logicielle (produit programme d'ordinateur spécifique) et/ou matérielle (FPGA, PLD, ASIC, composants électroniques discrets, etc.) pour mettre en œuvre les étapes du procédé 60 d'extraction de données à partir du paquet chiffré en cours reçu du terminal 20.
Tel qu'indiqué précédemment, différents types d'information de génération peuvent être considérés. Dans la suite de la description, on se place de manière non limitative dans le cas où l'information de génération est le compteur de paquets du terminal 20. On se place en outre dans le cas où l'information tronquée incluse par le terminal 20 dans le paquet émis est un compteur tronqué qui correspond à la valeur dudit compteur de paquets modulo Nt. En d'autres termes, le compteur tronqué est égal à la seconde partie du compteur de paquets du terminal 20. Pour les autres cas, dans lesquels le compteur tronqué n'est pas directement égal à la seconde partie du compteur de paquets, il suffit, pour obtenir ladite seconde partie du compteur de paquets, d'appliquer sur le compteur tronqué du paquet chiffré en cours la fonction inverse de la fonction de calcul utilisée par le terminal 20. In other words, the processing circuit comprises a set of means configured in software (specific computer program product) and / or hardware (FPGA, PLD, ASIC, discrete electronic components, etc.) to implement the steps of the method 60 of extracting data from the current encrypted packet received from the terminal 20. As indicated above, different types of generation information can be considered. In the remainder of the description, one places oneself in a nonlimiting manner in the case where the generation information is the packet counter of the terminal 20. In addition, one places oneself in the case where the truncated information included by the terminal 20 in the transmitted packet is a truncated counter which corresponds to the value of said modulo packet counter Nt. In other words, the truncated counter is equal to the second part of the packet counter of the terminal 20. For the other cases, in which the truncated counter is not directly equal to the second part of the packet counter, it is sufficient to obtain said second part of the packet counter, to apply to the truncated counter of the current encrypted packet the inverse function of the calculation function used by the terminal 20.
B.1 ) Extraction du compteur tronqué, du code de vérification, et des données chiffrées B.1) Extraction of truncated counter, verification code, and encrypted data
Au cours de l'étape 61 d'extraction, le serveur 32 extrait du paquet chiffré en cours le compteur tronqué, le code de vérification, et les données chiffrées. L'extraction du compteur tronqué, du code de vérification, et des données chiffrées dépend de la manière dont ils ont été incorporés dans le paquet chiffré en cours, et sort du cadre de l'invention. During the extraction step 61, the server 32 extracts from the current encrypted packet the truncated counter, the verification code, and the encrypted data. The extraction of the truncated counter, the verification code, and the encrypted data depends on the manner in which they have been incorporated into the current encrypted packet, and is beyond the scope of the invention.
B.2) Estimation d'une valeur candidate de la première partie du compteur de paquets B.2) Estimation of a candidate value of the first part of the packet counter
Au cours de l'étape 62 d'estimation, le serveur 32 estime une valeur candidate de la première partie du compteur de paquets du terminal 20 qui a émis le paquet chiffré en cours. In the estimation step 62, the server 32 estimates a candidate value of the first portion of the packet counter of the terminal 20 that has issued the current encrypted packet.
En effet, tel qu'indiqué précédemment, le paquet chiffré en cours comporte uniquement le compteur tronqué du terminal 20 qui l'a émis, et ne comporte donc pas entièrement la valeur du compteur de paquets dudit terminal 20, puisque le compteur tronqué correspond uniquement aux Nb2 bits de poids faible parmi les Nb1 bits du compteur de paquets. Indeed, as indicated above, the current encrypted packet comprises only the truncated counter of the terminal 20 that sent it, and therefore does not fully include the value of the packet counter of said terminal 20, since the truncated counter only corresponds to to the Nb2 least significant bits among the Nb1 bits of the packet counter.
Toutefois, étant donné que la clé de chiffrement, utilisée par ledit terminal 20 pour chiffrer les données incluses dans le paquet chiffré en cours, a été déterminée en fonction de la valeur du compteur de paquets dudit terminal 20, le serveur 32 doit estimer la valeur de la première partie dudit compteur de
paquets du terminal 20 pour en déduire la valeur complète du compteur de paquets, et ainsi pouvoir déterminer à son tour la clé de déchiffrement à utiliser, qui est identique à la clé de chiffrement. However, since the encryption key, used by said terminal 20 to encrypt the data included in the current encrypted packet, has been determined according to the value of the packet counter of said terminal 20, the server 32 must estimate the value. of the first part of said counter of packets of the terminal 20 to deduce the full value of the packet counter, and thus be able to determine in turn the decryption key to use, which is identical to the encryption key.
En pratique, le serveur 32 peut estimer la valeur de la première partie du compteur de paquets du terminal 20 lors de l'émission du paquet chiffré en cours, en fonction : In practice, the server 32 can estimate the value of the first part of the packet counter of the terminal 20 when transmitting the current encrypted packet, depending on:
- du compteur tronqué extrait dudit paquet chiffré en cours et the truncated counter extracted from said current encrypted packet and
- de la valeur de la première partie du compteur de paquets dudit terminal 20 estimée et vérifiée pour un paquet précédent reçu du même terminal 20. the value of the first part of the packet counter of said estimated and verified terminal for a previous packet received from the same terminal 20.
Par « paquet précédent reçu », il est entendu le dernier paquet reçu du terminal 20 avant le paquet chiffré en cours, parmi les paquets pour lesquels le compteur de paquets du terminal 20 est incrémenté, et pour lequel la valeur de la première partie du compteur de paquets a pu être estimée et vérifiée. Il est à noter qu'il peut donc s'agir d'un autre paquet chiffré, ou d'un autre type de paquet comme par exemple un paquet de recalage. By "previous packet received", it is understood the last packet received from the terminal 20 before the current encrypted packet, among the packets for which the packet counter of the terminal 20 is incremented, and for which the value of the first part of the counter of packages could be estimated and verified. It should be noted that it may therefore be another encrypted packet, or another type of packet such as a registration packet.
Ainsi, le serveur 32 mémorise la valeur estimée de la première partie du compteur de paquets utilisée par le terminal 20 lors de l'émission du paquet précédent reçu dudit terminal 20, et met à jour la valeur estimée de ladite première partie du compteur de paquets à chaque fois qu'un nouveau paquet est reçu dudit terminal 20. Pour initialiser ce processus, il est par exemple possible de forcer le terminal 20 à utiliser une valeur initiale prédéfinie de la première partie du compteur de paquets lors de sa toute première émission de paquet, de préférence égale à zéro. Le cas échéant, le serveur 32 considère, lorsqu'il reçoit pour la première fois un paquet émis par ce terminal 20 (qui n'est pas nécessairement le premier paquet émis par le terminal 20 si certains paquets ont été manqués par le réseau d'accès 30), que la valeur estimée de la première partie du compteur de paquets pour le paquet précédent reçu du même terminal 20 est égale à ladite valeur initiale prédéfinie. Thus, the server 32 stores the estimated value of the first part of the packet counter used by the terminal 20 when transmitting the previous packet received from said terminal 20, and updates the estimated value of said first part of the packet counter each time a new packet is received from said terminal 20. To initialize this process, it is for example possible to force the terminal 20 to use a predefined initial value of the first part of the packet counter during its very first broadcast. packet, preferably zero. If necessary, the server 32 considers, when it receives for the first time a packet transmitted by this terminal 20 (which is not necessarily the first packet sent by the terminal 20 if some packets have been missed by the network of access 30), that the estimated value of the first part of the packet counter for the previous packet received from the same terminal 20 is equal to said predefined initial value.
A partir de la valeur de la première partie du compteur de paquets estimée pour le paquet précédent reçu du terminal 20, et à partir du compteur tronqué extrait du paquet chiffré en cours, il est alors possible pour le serveur 32 d'estimer la valeur dudit compteur de paquets dudit terminal 20 pour le
paquet chiffré en cours. From the value of the first part of the estimated packet counter for the previous packet received from the terminal 20, and from the truncated counter extracted from the current encrypted packet, it is then possible for the server 32 to estimate the value of said packet counter of said terminal 20 for the encrypted package in progress.
Par exemple, la valeur de la première partie du compteur de paquets du terminal 20 pour le paquet chiffré en cours est estimée selon l'expression suivante : For example, the value of the first part of the packet counter of the terminal 20 for the current encrypted packet is estimated according to the following expression:
C1(n) = (C1(n - l)+ k) modulo 2(Nb1 "Nb2) et la valeur du compteur de paquets du terminal 20 pour le paquet chiffré en cours est estimée selon l'expression suivante : C 1 (n) = (C 1 (n-1) + k) modulo 2 (Nb 1 "Nb 2) and the value of the packet counter of the terminal 20 for the current encrypted packet is estimated according to the following expression:
C(n) = (C1(n) Nt + C2(n)) C (n) = (C 1 (n) Nt + C 2 (n))
expressions dans lesquelles : expressions in which:
- C(n) correspond à la valeur du compteur de paquets du terminal 20 estimée pour le paquet chiffré en cours, C (n) is the value of the packet counter of the estimated terminal for the current encrypted packet,
- C-i(n) correspond à la première partie du compteur de paquets pour le paquet chiffré en cours, - C-i (n) is the first part of the packet counter for the current encrypted packet,
- C2(n) correspond au compteur tronqué extrait du paquet chiffré en cours, C 2 (n) corresponds to the truncated counter extracted from the current encrypted packet,
- Ci(n-1 ) correspond à la valeur de la première partie du compteur de paquets du terminal 20 estimée et vérifiée pour le paquet précédent, Ci (n-1) corresponds to the value of the first part of the packet counter of the terminal 20 estimated and verified for the preceding packet,
- k est un nombre entier à déterminer. k is an integer to be determined.
Dans notre exemple, la valeur k correspond au nombre de retours à zéro de la seconde partie du compteur de paquets du terminal 20 depuis le paquet précédent reçu. En effet, la valeur de la première partie du compteur de paquets (correspondant aux (Nb1 - Nb2) bits de poids fort du compteur) est incrémentée à chaque fois que la valeur de la seconde partie du compteur de paquets (la partie tronquée, correspondant aux Nb2 bits de poids faible du compteur) repasse à zéro. In our example, the value k corresponds to the number of returns to zero of the second part of the packet counter of the terminal 20 from the previous packet received. Indeed, the value of the first part of the packet counter (corresponding to the (Nb1 - Nb2) most significant bits of the counter) is incremented each time the value of the second part of the packet counter (the truncated part, corresponding the Nb2 low-order bits of the counter) returns to zero.
Par exemple, il est possible de considérer d'office que le nombre de paquets éventuellement manqués par le réseau d'accès 30, entre le paquet chiffré en cours et le paquet précédent reçu du même terminal 20, est inférieur à Nt. For example, it is possible to consider ex officio that the number of packets possibly missed by the access network 30, between the current encrypted packet and the previous packet received from the same terminal 20, is less than Nt.
Dans ce cas, si le compteur tronqué du paquet chiffré en cours est supérieur au compteur tronqué du paquet précédent, alors le nombre k est égal
à zéro (k = 0). Pour obtenir la valeur estimée du compteur de paquets pour le paquet chiffré en cours, il suffit de remplacer, dans la valeur du compteur de paquets estimée pour le paquet précédent, les Nb2 bits de poids faible par les Nb2 bits du compteur tronqué extrait du paquet chiffré en cours. In this case, if the truncated counter of the current encrypted packet is greater than the truncated counter of the previous packet, then the number k is equal at zero (k = 0). To obtain the estimated value of the packet counter for the current encrypted packet, it is sufficient to replace, in the estimated packet counter value for the previous packet, the Nb2 least significant bits by the Nb2 bits of the truncated counter extracted from the packet. encrypted in progress.
Par contre, si le compteur tronqué du paquet chiffré en cours est inférieur au compteur tronqué du paquet précédent, alors le nombre k est égal à un (k = 1 ), car il y a eu un retour à zéro. Pour obtenir la valeur estimée du compteur de paquets pour le paquet chiffré en cours, il faut alors remplacer, dans la valeur du compteur de paquets estimée pour le paquet précédent, les Nb2 bits de poids faible par les Nb2 bits du compteur tronqué extrait du paquet chiffré en cours, mais également ajouter un (1 ) aux (Nb1 - Nb2) bits de poids fort de la valeur du compteur de paquets estimée pour le paquet précédent. On the other hand, if the truncated counter of the current encrypted packet is smaller than the truncated counter of the previous packet, then the number k is equal to one (k = 1) because there has been a return to zero. To obtain the estimated value of the packet counter for the current encrypted packet, it is then necessary to replace, in the estimated packet counter value for the previous packet, the Nb2 least significant bits by the Nb2 bits of the truncated counter extracted from the packet. encrypted in progress, but also add one (1) to the (Nb1 - Nb2) most significant bits of the value of the estimated packet counter for the previous packet.
La figure 5 représente les principales étapes d'une variante de mise en œuvre du procédé 60 d'extraction de données comportant, outre les étapes décrites ci-avant en référence à la figure 4, une étape 66 d'extraction, à partir d'un paquet de recalage, d'une information de recalage représentative de la première partie du compteur de paquets. FIG. 5 represents the main steps of an implementation variant of the data extraction method 60 comprising, besides the steps described above with reference to FIG. 4, a step 66 of extraction, starting from a registration packet, a registration information representative of the first part of the packet counter.
En effet, l'estimation de la valeur de la première partie du compteur de paquets d'un paquet chiffré en cours peut être erronée, notamment dans le cas où un grand nombre, par exemple supérieur à Nt, de paquets consécutifs seraient manqués par le réseau d'accès. Une telle erreur est d'autant plus grave qu'elle entraîne une erreur d'estimation pour tous les paquets suivants. Indeed, the estimate of the value of the first part of the packet counter of an encrypted packet in progress may be erroneous, particularly in the case where a large number, for example greater than Nt, of consecutive packets would be missed by the access network. Such an error is all the more serious as it leads to an estimation error for all subsequent packets.
Il convient donc de corriger cette situation où la valeur mémorisée par le serveur 32 d'une valeur estimée de la première partie du compteur de paquets du terminal 20 est « désynchronisée » avec la valeur réelle de la première partie du compteur de paquets du terminal 20 pour un paquet donné. C'est l'objectif du paquet de recalage. It is therefore appropriate to correct this situation where the value stored by the server 32 of an estimated value of the first part of the packet counter of the terminal 20 is "out of sync" with the actual value of the first part of the packet counter of the terminal 20 for a given packet. This is the goal of the registration package.
En effet l'information de recalage incluse dans le paquet de recalage est représentative de la première partie du compteur de paquets. Elle doit permettre en conséquence de déterminer avec une bonne précision la valeur de la première partie du compteur de paquets. Au mieux, et comme c'est le cas dans le mode de mise en œuvre décrit, elle permet de déterminer sans erreur la valeur de la première partie du compteur de paquets. De manière générale,
la valeur de l'information de génération pour un paquet chiffré en cours peut être estimée en concaténant la première partie de l'information de génération déterminée à l'aide de l'information de recalage, avec l'information tronquée extraite du paquet chiffré en cours. Indeed, the registration information included in the registration packet is representative of the first part of the packet counter. It must therefore make it possible to determine with a good accuracy the value of the first part of the packet counter. At best, and as is the case in the embodiment described, it allows to determine without error the value of the first part of the packet counter. Generally, the value of the generation information for a current encrypted packet can be estimated by concatenating the first part of the generation information determined using the registration information, with the truncated information extracted from the encrypted packet by Classes.
Dans le mode de mise en œuvre considéré, décrit à titre d'exemple non limitatif, l'information de recalage est la première partie du compteur de paquets, un paquet de recalage est émis à chaque fois que le compteur de paquets du terminal 20 a été incrémenté Nt fois exactement, c'est-à-dire à chaque fois que la première partie du compteur change, et le compteur de paquets du terminal 20 est incrémenté à chaque émission d'un paquet de recalage. Il est donc aisé, à la réception d'un paquet de recalage, de déterminer la valeur du compteur de paquets du terminal 20 puisqu'elle correspond, pour ses (Nb1 - Nb2) bits de poids fort, à la valeur de l'information de recalage, et pour ses Nb2 bits de poids faible, à une valeur nulle. En conséquence, un paquet de recalage peut jouer le rôle d'un « paquet précédent reçu » pour lequel la valeur du compteur de paquets a été déterminée sans erreur. In the embodiment considered, described by way of nonlimiting example, the registration information is the first part of the packet counter, a reset packet is sent each time the packet counter of the terminal 20 has It has been incremented exactly one time, that is to say each time the first part of the counter changes, and the packet counter of the terminal 20 is incremented each time a reset packet is transmitted. It is therefore easy, on receiving a registration packet, to determine the value of the packet counter of the terminal 20 since it corresponds, for its (Nb1 - Nb2) most significant bits, to the value of the information for resetting, and for its Nb2 low-order bits, to a zero value. As a result, a registration packet may play the role of a "previous received packet" for which the value of the packet counter has been determined without error.
Lors de la réception d'un paquet de recalage, une « désynchronisation » peut être détectée si la valeur de la première partie du compteur de paquets estimée pour le paquet de recalage à partir d'un paquet précédent est différente de la valeur de la première partie du compteur de paquets déterminée à partir de l'information de recalage. Le système 10 est alors resynchronisé pour le terminal 20 en réinitialisant la valeur de la première partie du compteur de paquets du terminal 20 mémorisée par le serveur 32 avec la valeur de l'information de recalage. Upon receiving a registration packet, a "desynchronization" may be detected if the value of the first portion of the estimated packet counter for the registration packet from a previous packet is different from the value of the first packet. part of the packet counter determined from the registration information. The system 10 is then resynchronized for the terminal 20 by resetting the value of the first part of the packet counter of the terminal 20 stored by the server 32 with the value of the registration information.
B.3) Evaluation de l'intégrité du paquet chiffré en cours B.3) Evaluation of the integrity of the current encrypted packet
La figure 6 détaille un mode préféré de mise en œuvre de l'étape 63 d'évaluation d'intégrité du paquet chiffré en cours. FIG. 6 details a preferred mode of implementation of step 63 of evaluating the integrity of the current encrypted packet.
Tel qu'illustré par la figure 6, l'étape 63 comporte une étape 631 de calcul d'un code de vérification à partir des données chiffrées et de la valeur candidate estimée de la première partie du compteur de paquets. Ce calcul est effectué selon la même méthode que celle utilisée par le terminal 20 pour calculer le code de vérification à l'émission du paquet chiffré.
L'étape 63 comporte ensuite une étape 632 de comparaison du code de vérification calculé par le serveur 32 avec le code de vérification extrait du paquet chiffré en cours, il est possible d'évaluer l'intégrité du paquet chiffré en cours. Le paquet chiffré n'est considéré comme intègre que si le code de vérification extrait du paquet chiffré en cours et le code de vérification calculé sont identiques. As illustrated in FIG. 6, step 63 includes a step 631 of calculating a verification code from the encrypted data and the estimated candidate value of the first part of the packet counter. This calculation is carried out according to the same method as that used by the terminal 20 to calculate the verification code on issue of the encrypted packet. Step 63 then comprises a step 632 comparing the verification code calculated by the server 32 with the verification code extracted from the current encrypted packet, it is possible to evaluate the integrity of the current encrypted packet. The encrypted packet is considered integral only if the verification code extracted from the current encrypted packet and the calculated verification code are identical.
Si le paquet chiffré en cours est considéré comme intègre, alors la valeur candidate estimée de la première partie du compteur de paquets est jugée correcte, et le serveur 32 peut exécuter l'étape 64 de détermination de la clé de déchiffrement, et l'étape 65 de déchiffrement des données chiffrées. If the current encrypted packet is considered integrity, then the estimated candidate value of the first part of the packet counter is considered correct, and the server 32 can perform the step 64 of determining the decryption key, and the step 65 of decryption of the encrypted data.
Si le paquet chiffré en cours n'est pas considéré comme intègre, alors la valeur candidate estimée de la première partie du compteur de paquets est jugée incorrecte, et il n'est en conséquence pas possible de déterminer la clé de déchiffrement. Dans ce cas, le paquet chiffré en cours peut par exemple être simplement ignoré, ou bien il peut éventuellement être mémorisé pour repasser ultérieurement par une nouvelle étape d'estimation d'une valeur candidate de la première partie du compteur de paquets, par exemple suite à la réception d'un paquet de recalage. If the current encrypted packet is not considered integrity, then the estimated candidate value of the first part of the packet counter is considered incorrect, and therefore it is not possible to determine the decryption key. In this case, the current encrypted packet may, for example, simply be ignored, or it may possibly be memorized in order to revert later by a new step of estimating a candidate value of the first part of the packet counter, for example following upon receipt of a registration package.
Dans le mode de mise en œuvre considéré, décrit à titre d'exemple non limitatif, le code de vérification est un Code d'Authentification de Message ou CAM (« Message Authentication Code » ou MAC dans la littérature anglo- saxonne) calculé en fonction en outre d'une clé d'authentification qui est connue à la fois par le terminal 20 et par le serveur 32. Le serveur 32 peut par exemple déterminer la clé d'authentification à utiliser grâce à une information incluse dans le paquet chiffré en cours qui permet d'identifier de manière unique le terminal 20 qui a émis le paquet. De manière plus générale, la détermination, par le serveur 32, de la clé d'authentification à utiliser peut mettre en œuvre toute méthode connue de l'homme de l'art et sort du cadre de l'invention. In the implementation mode considered, described by way of non-limiting example, the verification code is a Message Authentication Code (CAM) or MAC ("Message Authentication Code" or MAC in English literature) calculated according to in addition to an authentication key which is known by both the terminal 20 and the server 32. The server 32 may for example determine the authentication key to use through information included in the current encrypted packet which makes it possible to uniquely identify the terminal 20 that sent the packet. More generally, the determination by the server 32 of the authentication key to be used can implement any method known to those skilled in the art and is beyond the scope of the invention.
Dans un tel cas, le code de vérification permet de vérifier simultanément l'authenticité du paquet chiffré en cours, l'intégrité des données chiffrées contenues dans ce paquet chiffré, et aussi la valeur candidate
estimée de la première partie du compteur de paquets du paquet chiffré en cours. In such a case, the verification code makes it possible simultaneously to verify the authenticity of the current encrypted packet, the integrity of the encrypted data contained in this encrypted packet, and also the candidate value. estimated from the first part of the packet counter of the current encrypted packet.
B.4) Détermination de la clé de déchiffrement B.4) Determination of the decryption key
Au cours de l'étape 64 de détermination, le serveur 32 détermine la clé de déchiffrement à utiliser pour déchiffrer les données chiffrées extraites du paquet chiffré en cours. During the determination step 64, the server 32 determines the decryption key to be used for decrypting the encrypted data extracted from the current encrypted packet.
La valeur du compteur de paquets du terminal 20 pour le paquet chiffré en cours est déduite à partir de la valeur candidate estimée et vérifiée de la première partie, et à partir de l'information tronquée. La clé de déchiffrement est ensuite déterminée, à partir de la valeur du compteur de paquets du terminal 20 pour le paquet chiffré en cours, selon la même méthode de génération de clé que celle utilisée par le terminal 20 pour générer la clé de chiffrement. En l'absence d'erreurs, la clé de déchiffrement est donc identique à la clé de chiffrement. The value of the packet counter of the terminal 20 for the current encrypted packet is derived from the estimated and verified candidate value of the first portion, and from the truncated information. The decryption key is then determined from the packet counter value of the terminal 20 for the current encrypted packet using the same key generation method used by the terminal 20 to generate the encryption key. In the absence of errors, the decryption key is identical to the encryption key.
B.5) Déchiffrement des données chiffrées B.5) Decryption of encrypted data
Au cours de l'étape 65 de déchiffrement, le serveur 32 déchiffre les données chiffrées extraites du paquet chiffré en cours, en fonction de la clé de déchiffrement obtenue à l'issue de l'étape 64 de détermination. During the decryption step 65, the server 32 decrypts the encrypted data extracted from the current encrypted packet, as a function of the decryption key obtained at the end of the determination step 64.
Le déchiffrement des données chiffrées dépend du protocole de chiffrement à clé symétrique considéré, et sort du cadre de l'invention. Par exemple, dans le cas d'un protocole de chiffrement de flux dans lequel les données chiffrées sont obtenues en combinant un à un les bits successifs des données et de la clé de chiffrement au moyen d'une fonction logique de type « OU EXCLUSIF », alors les données non chiffrées sont obtenues également en combinant un à un les bits successifs des données chiffrées et de la clé de déchiffrement au moyen d'une fonction logique de type « OU EXCLUSIF ». B.6) Estimation de plusieurs valeurs candidates The decryption of the encrypted data depends on the symmetric key encryption protocol considered, and is outside the scope of the invention. For example, in the case of a stream encryption protocol in which the encrypted data is obtained by combining one by one the successive bits of the data and the encryption key by means of an "EXCLUSIVE OR" logical function. , then the unencrypted data is also obtained by combining one by one the successive bits of the encrypted data and the decryption key by means of an "EXCLUSIVE OR" type logical function. B.6) Estimation of several candidate values
La figure 7 représente les principales étapes d'une variante de mise en œuvre du procédé 60 d'extraction de données comportant, outre les étapes décrites ci-avant en référence à la figure 5, l'estimation et la vérification de plusieurs valeurs candidates de la première partie du compteur de paquets jusqu'à ce qu'un critère d'arrêt soit vérifié.
Ainsi, un ensemble de plusieurs valeurs candidates de la première partie du compteur de paquets du paquet chiffré en cours est défini, et chaque valeur candidate estimée est vérifiée itérativement à l'aide du code de vérification. Le critère d'arrêt est par exemple vérifié lorsque, pour une valeur candidate donnée, l'intégrité du paquet chiffré en cours est vérifiée, ou bien dès que l'ensemble des valeurs candidates est épuisé sans qu'aucune valeur candidate n'ait pu permettre de considérer le paquet chiffré en cours comme intègre. FIG. 7 represents the main steps of an implementation variant of the data extraction method 60 comprising, besides the steps described above with reference to FIG. 5, the estimation and verification of several candidate values of the first part of the packet counter until a stop criterion is verified. Thus, a set of several candidate values of the first part of the packet counter of the current encrypted packet is defined, and each estimated candidate value is iteratively verified using the verification code. The stopping criterion is for example checked when, for a given candidate value, the integrity of the current encrypted packet is verified, or as soon as the set of candidate values is exhausted without any candidate value being able to be satisfied. allow to consider the current encrypted packet as integrity.
Cette variante de mise en œuvre permet de pallier la possibilité qu'un grand nombre, par exemple supérieur à Nt, de paquets consécutifs soient manqués par le réseau d'accès 30. En effet, dans un tel cas l'estimation de la valeur candidate de la première partie du compteur de paquets pour le paquet chiffré en cours telle qu'elle a été présentée dans la section B.3 est fausse, et il est alors avantageux d'estimer plusieurs valeurs candidates différentes de la première partie du compteur de paquets, afin de permettre l'extraction des données. This implementation variant overcomes the possibility that a large number, for example greater than Nt, consecutive packets are missed by the access network 30. In fact, in such a case the estimate of the candidate value of the first part of the packet counter for the current encrypted packet as presented in section B.3 is false, and it is then advantageous to estimate several different candidate values of the first part of the packet counter , to allow the extraction of data.
Dans le mode de mise en œuvre considéré, et décrit à titre d'exemple non limitatif, la variable k introduite dans la section B.3 représente, pour un paquet chiffré en cours, le nombre de retours à zéro de la seconde partie du compteur de paquets du terminal 20 depuis le dernier paquet précédent reçu pour lequel la valeur de la première partie du compteur de paquets a pu être estimée et vérifiée. In the embodiment considered, and described by way of non-limiting example, the variable k introduced in section B.3 represents, for an encrypted packet in progress, the number of returns to zero of the second part of the counter. of packets of the terminal 20 since the last previous received packet for which the value of the first part of the packet counter could be estimated and verified.
Pour obtenir différentes valeurs candidates, il est possible d'incrémenter itérativement la valeur de k, en partant d'une valeur nulle, et de procéder ainsi jusqu'à ce que l'intégrité du paquet chiffré en cours soit vérifiée pour une valeur candidate donnée. To obtain different candidate values, it is possible to incrementally increment the value of k, starting from a null value, and proceed until the integrity of the current encrypted packet is checked for a given candidate value. .
Le paquet chiffré en cours peut cependant être considéré comme n'étant pas intègre suite à une erreur de transmission altérant les données chiffrées (par exemple due à des interférences) ou bien si une mauvaise clé d'authentification a été utilisée. Dans un tel cas, il serait fâcheux d'itérer indéfiniment sur des valeurs candidates pour lesquelles le paquet chiffré ne pourra pas être considéré comme intègre. Aussi, il convient de borner l'ensemble des valeurs candidates possibles.
Pour ce faire, il est par exemple possible de définir la fréquence maximale à laquelle le terminal 20 peut émettre des paquets à destination du réseau d'accès 30. En mémorisant la date de réception du dernier paquet reçu, et en calculant le nombre maximum de paquets qui auraient pu être émis par le terminal 20 depuis cette date à la date de réception du paquet chiffré en cours, il est possible de définir le nombre maximum de retours à zéro qu'aurait pu faire la seconde partie du compteur de paquets du terminal 20 pendant cette période de temps selon l'expression suivante :
The current encrypted packet can, however, be considered as not being integrated due to a transmission error altering the encrypted data (for example due to interference) or if a bad authentication key has been used. In such a case, it would be unfortunate to iterate indefinitely on candidate values for which the encrypted packet can not be considered as integrity. Also, it is necessary to limit all the possible candidate values. For this purpose, it is possible, for example, to define the maximum frequency at which the terminal 20 can send packets to the access network 30. By memorizing the reception date of the last packet received, and by calculating the maximum number of packets that could have been sent by the terminal 20 since this date on the date of receipt of the current encrypted packet, it is possible to define the maximum number of returns that could have made the second part of the packet counter of the terminal 20 during this period of time as follows:
expression dans laquelle : expression in which:
- t(n-1 ) est la date de réception du paquet précédent, t (n-1) is the date of receipt of the previous packet,
- t(n) est la date de réception du paquet courant, t (n) is the date of receipt of the current packet,
- Fmax est la fréquence maximale d'émission de paquets, - F max is the maximum frequency of transmission of packets,
- E[x] correspond à la partie entière de x, - E [x] corresponds to the integer part of x,
- kmax est le nombre maximal de retours à zéro de la seconde partie du compteur de paquets du terminal 20 pendant la période de temps entre t(n-1 ) et t(n). k max is the maximum number of zero returns of the second part of the packet counter of the terminal 20 during the period of time between t (n-1) and t (n).
L'ensemble des valeurs candidates de la première partie du compteur de paquets à considérer est alors défini par : The set of candidate values of the first part of the packet counter to be considered is then defined by:
C1(n) = (C1(n - l)+ k) modulo 2(Nb1 "Nb2), avec k variant entre 0 et kmax.C 1 (n) = (C 1 (n - 1) + k) modulo 2 (Nb1 "Nb2) , with k varying between 0 and k max .
On comprend cependant qu'il existe d'autres méthodes pour définir un ensemble de valeurs candidates de la première partie du compteur de paquets. En particulier, il est par exemple possible d'estimer la valeur la plus probable de la première partie du compteur de paquets en fonction d'un temps moyen d'émission de paquets par le terminal 20. D'autres valeurs candidates peuvent ensuite être définies à partir de la valeur la plus probable, et vérifiées itérativement par ordre décroissant de probabilité. Le choix d'une méthode particulière ne constitue qu'une variante d'implémentation de l'invention. However, it is understood that there are other methods for defining a set of candidate values of the first part of the packet counter. In particular, it is for example possible to estimate the most probable value of the first part of the packet counter as a function of an average packet transmission time by the terminal 20. Other candidate values can then be defined from the most likely value, and checked iteratively in descending order of probability. The choice of a particular method is only a variant of implementation of the invention.
En effet, bien que, dans l'exemple considéré ici à titre non limitatif, les terminaux 20 émettent leurs paquets de manière asynchrone, lesdits terminaux 20 peuvent néanmoins émettre leurs paquets avec une certaine régularité. Par
exemple, un terminal 20 peut émettre un nombre prédéterminé de paquets par jour, sans toutefois émettre lesdits paquets de manière strictement périodique. Dans un tel cas, lesdits paquets seront néanmoins émis, en moyenne, de manière sensiblement périodique. Dans un tel cas, notamment, il est avantageux d'estimer la période d'émission moyenne entre les émissions de paquets consécutifs par ledit terminal 20, car celle-ci peut permettre d'améliorer l'estimation de la valeur de la première partie du compteur de paquets. Indeed, although, in the example considered here without limitation, the terminals 20 transmit their packets asynchronously, said terminals 20 can nevertheless issue their packets with a certain regularity. By For example, a terminal 20 may transmit a predetermined number of packets per day, without, however, transmitting said packets in a strictly periodic manner. In such a case, said packets will nevertheless be transmitted, on average, substantially periodically. In such a case, in particular, it is advantageous to estimate the average transmission period between consecutive packet transmissions by said terminal 20, since this can make it possible to improve the estimate of the value of the first part of the packet. packet counter.
Par exemple, la période d'émission moyenne dudit terminal 20 est calculée selon l'expression suivante :
expression dans laquelle : For example, the average transmission period of said terminal 20 is calculated according to the following expression: expression in which:
- Tem correspond à la période d'émission moyenne estimée pour le terminal 20, Tem corresponds to the estimated average emission period for the terminal 20,
- C(m) correspond à la valeur du compteur de paquets du terminal - C (m) is the value of the packet counter of the terminal
20 estimée pour le paquet de rang m reçu dudit terminal 20,Estimated for the rank of packet received from said terminal 20,
- t(m) correspond à la date de réception mesurée pour le paquet de rang m reçu dudit terminal 20, t (m) corresponds to the date of reception measured for the packet of rank m received from said terminal 20,
- C(m-1 ) correspond à la valeur du compteur de paquets du terminal 20 estimée pour le paquet de rang (m-1 ) reçu dudit terminal 20, C (m-1) corresponds to the value of the packet counter of the terminal 20 estimated for the rank packet (m-1) received from said terminal 20,
- t(m-1 ) correspond à la date de réception mesurée pour le paquet de rang (m-1 ) reçu dudit terminal 20, t (m-1) corresponds to the measured reception date for the rank packet (m-1) received from said terminal 20,
- M correspond au nombre total de paquets reçus dudit terminal 20. Une fois estimée la période d'émission moyenne du terminal 20, la valeur notée kpr0b la plus probable pour calculer la première partie du compteur de paquets pour le paquet chiffré en cours est par exemple estimée selon l'expression suivante :
M is the total number of packets received from the terminal 20. Once the average transmission period of the terminal 20 has been estimated, the value noted k pr0 b most likely to calculate the first part of the packet counter for the current encrypted packet is for example estimated according to the following expression:
expression dans laquelle (t(n) - t(n-1 )) correspond à la durée écoulée entre la date de réception du paquet chiffré en cours et la date de réception du paquet
précédent, et p est un nombre entier qui est déterminé comme suit : expression where (t (n) - t (n-1)) is the time elapsed between the date of receipt of the current encrypted packet and the date of receipt of the packet previous, and p is an integer which is determined as follows:
- p = 0 si C2(n) > C2(n-1 ), - p = 0 if C 2 (n)> C 2 (n-1),
- p = 1 si C2(n) < C2(n-1 ). - p = 1 if C 2 (n) <C 2 (n-1).
Les valeurs candidates à itérer peuvent alors être, par exemple, définies par l'ensemble : The candidate values to be iterated can then be, for example, defined by the set:
k = kprob ± i, i N, k≥0, k≤ kprob + kmax k = k prob ± i, i N, k≥0, k≤ k prob + k max
B.7) Autres types d'information de génération B.7) Other types of generation information
Dans les exemples de mise en œuvre du procédé 60 d'extraction décrits ci-dessus, on a considéré de manière non limitative le cas où l'information de génération est le compteur de paquets du terminal 20. In the exemplary embodiments of the extraction method 60 described above, the case in which the generation information is the packet counter of the terminal 20 has been considered in a nonlimiting manner.
Toutefois, tel qu'indiqué précédemment, d'autres types d'information de génération peuvent être considérés, et le choix d'un type particulier d'information de génération, variable au cours du temps, ne constitue qu'une variante de mise en œuvre de l'invention. However, as indicated above, other types of generation information can be considered, and the choice of a particular type of generation information, variable over time, is only a variant of implementation. of the invention.
On comprend également que l'estimation de la valeur de la première partie de l'information de génération du terminal 20 pour le paquet chiffré en cours peut dépendre du type d'information de génération considéré. It is also understood that the estimation of the value of the first part of the generation information of the terminal 20 for the current encrypted packet may depend on the type of generation information considered.
Par exemple, dans le cas où l'information de génération correspond au compteur de paquets du terminal 20, l'estimation de la première partie de la valeur dudit compteur de paquets du terminal 20 pour le paquet chiffré en cours tient avantageusement compte de la valeur de la première partie dudit compteur de paquets estimée pour le paquet précédent reçu du même terminal For example, in the case where the generation information corresponds to the packet counter of the terminal 20, the estimation of the first part of the value of said packet counter of the terminal 20 for the current encrypted packet advantageously takes account of the value of the first part of said estimated packet counter for the previous packet received from the same terminal
20. 20.
Dans le cas où l'information de génération considérée correspond à la date de génération, par le terminal 20, du paquet à émettre, alors il n'est pas nécessaire de tenir compte de la valeur de la première partie de la date de génération estimée pour le paquet précédent reçu du même terminal 20, et la valeur de la première partie de la date de génération du paquet chiffré en cours par le terminal 20 est par exemple estimée en fonction de la date de réception dudit paquet chiffré en cours. En effet, la date de génération du paquet chiffré en cours par le terminal 20 et la date de réception dudit paquet chiffré en cours par le réseau d'accès 30 ont en principe des premières parties respectives
sensiblement identiques, et diffèrent principalement par leurs secondes parties respectives. Etant donné que l'information tronquée extraite du paquet chiffré en cours est représentative de la seconde partie de la date de génération dudit paquet chiffré en cours par le terminal 20, on comprend qu'il est possible d'estimer la valeur de la date de génération dudit paquet chiffré en cours en fonction de l'information tronquée extraite dudit paquet chiffré en cours et en fonction de la date de réception dudit paquet chiffré en cours par le réseau d'accès 30. Par exemple, la valeur de la date de génération du paquet chiffré en cours est obtenue en combinant la première partie de la date de réception du paquet chiffré en cours avec la seconde partie de la date de génération déterminée à partir de l'information tronquée extraite dudit paquet chiffré en cours. In the case where the generation information considered corresponds to the generation date, by the terminal 20, of the packet to be transmitted, then it is not necessary to take into account the value of the first part of the estimated generation date. for the previous packet received from the same terminal 20, and the value of the first part of the date of generation of the current encrypted packet by the terminal 20 is for example estimated according to the date of receipt of said current encrypted packet. Indeed, the generation date of the current encrypted packet by the terminal 20 and the date of receipt of said current encrypted packet by the access network 30 have, in principle, respective first portions. substantially identical, and differ mainly in their respective second parts. Since the truncated information extracted from the current encrypted packet is representative of the second part of the date of generation of said current encrypted packet by the terminal 20, it is understood that it is possible to estimate the value of the date of generating said current encrypted packet based on the truncated information extracted from said current encrypted packet and depending on the date of receipt of said current encrypted packet by the access network 30. For example, the value of the generation date the current encrypted packet is obtained by combining the first part of the date of receipt of the current encrypted packet with the second part of the generation date determined from the truncated information extracted from said current encrypted packet.
L'utilisation d'une date de génération de paquet comme information de génération suppose néanmoins que les dates courantes du terminal 20 et du réseau d'accès 30 sont synchronisées avec une précision suffisante. The use of a packet generation date as generation information, however, assumes that the current dates of the terminal 20 and the access network 30 are synchronized with sufficient accuracy.
De manière plus générale, il est à noter que les modes de mise en œuvre et de réalisation considérés ci-dessus ont été décrits à titre d'exemples non limitatifs, et que d'autres variantes sont par conséquent envisageables. More generally, it should be noted that the modes of implementation and realization considered above have been described by way of non-limiting examples, and that other variants are therefore possible.
Notamment, l'invention a été décrite en considérant uniquement des paquets émis sur le lien montant, depuis les terminaux 20 vers le réseau d'accès 30. L'invention est cependant applicable, alternativement ou en complément, sur un lien descendant depuis le réseau d'accès 30 vers les terminaux 20. En d'autres termes, l'invention est applicable de manière plus générale à l'émission, par un dispositif émetteur, d'un paquet comportant des données chiffrées et à l'extraction, par un dispositif récepteur, des données incluses dans un tel paquet. In particular, the invention has been described by considering only packets transmitted on the uplink from the terminals 20 to the access network 30. The invention is however applicable, alternatively or in addition, on a downlink from the network. In other words, the invention is more generally applicable to the transmission, by a transmitting device, of a packet containing encrypted data and to the extraction, by a receiving device, data included in such a package.
En outre, l'invention a été décrite en considérant un système 10 de communication sans fil UNB. Rien n'exclut cependant, suivant d'autres exemples, de considérer d'autres types de systèmes de communication, y compris des systèmes de communication filaires. L'invention trouve cependant une application particulièrement avantageuse dans les systèmes de communication sans fil bas débit, c'est-à-dire de débit inférieur à 1 kilobit/s.
In addition, the invention has been described by considering a UNB wireless communication system. However, there is nothing to preclude, in other examples, considering other types of communication systems, including wired communication systems. However, the invention finds a particularly advantageous application in low speed wireless communication systems, that is to say with a flow rate of less than 1 kilobit / s.