FR3013477A1 - METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE - Google Patents

METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE Download PDF

Info

Publication number
FR3013477A1
FR3013477A1 FR1361482A FR1361482A FR3013477A1 FR 3013477 A1 FR3013477 A1 FR 3013477A1 FR 1361482 A FR1361482 A FR 1361482A FR 1361482 A FR1361482 A FR 1361482A FR 3013477 A1 FR3013477 A1 FR 3013477A1
Authority
FR
France
Prior art keywords
data
masking
signature
message
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1361482A
Other languages
French (fr)
Other versions
FR3013477B1 (en
Inventor
Alberto Battistello
Olivier Chamley
Christophe Giraud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1361482A priority Critical patent/FR3013477B1/en
Publication of FR3013477A1 publication Critical patent/FR3013477A1/en
Application granted granted Critical
Publication of FR3013477B1 publication Critical patent/FR3013477B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un système et un procédé de vérification de la validité d'une signature numérique de message, comportant une étape de détermination (300) de premières données de signature de message, une étape de transmission (320), à un dispositif de calcul, de deuxièmes données de calcul basées sur les premières données de signature de message, une étape de réception (330), de la part du dispositif de calcul, d'un résultat intermédiaire de calcul sur les deuxièmes données, et une étape de vérification (340) de la validité de la signature à partir du résultat intermédiaire. Le procédé comporte en outre une étape de masquage (310), d'au moins une partie des premières données de signature de message, à partir d'au moins une donnée de masquage, et l'étape de vérification (340) précitée fait intervenir cette donnée de masquage.A system and method for verifying the validity of a digital message signature, including a step of determining (300) first message signature data, a transmitting step (320), to a device calculating, second calculation data based on the first message signature data, a receiving step (330), on the part of the computing device, an intermediate calculation result on the second data, and a verification step (340) the validity of the signature from the intermediate result. The method further comprises a step of masking (310), at least a portion of the first message signature data, from at least one masking data, and the verification step (340) mentioned above involves this masking data.

Description

DOMAINE DE L'INVENTION L'invention concerne le domaine de la cryptographie. Elle concerne plus particulièrement un procédé et un système pour la vérification de la validité d'une signature numérique de message.FIELD OF THE INVENTION The invention relates to the field of cryptography. It relates more particularly to a method and a system for verifying the validity of a digital message signature.

CONTEXTE DE L'INVENTION Les mécanismes de signature et de vérification de signature permettent de certifier l'origine de données échangées entre deux dispositifs. Les données peuvent par exemple être des messages contenant des informations fournies par un dispositif d'origine vers un dispositif de destination. Par exemple encore, les données peuvent être une application transmise par un dispositif d'origine à un dispositif de destination pour l'exécution de l'application par ce dernier. De manière générale, ainsi que dans ce qui suit, il est fait référence à un message échangé entre le dispositif d'origine et le dispositif de destination, bien que les données échangées peuvent être d'une autre nature. Lorsque le dispositif d'origine transmet un message à un dispositif de destination, il lui adjoint des données (la « signature » du message) qui vont permettre au dispositif de destination de vérifier que le message émane bien du dispositif d'origine. Le mécanisme de signature permet ainsi au dispositif de destination, si la signature est valide, de faire confiance au message reçu. Par exemple, si le message reçu est une application, le dispositif d'origine peut l'exécuter sans risque. A contrario, si un message non signé ou signé avec une signature non valide est reçu, il n'est pas traité (ou pas exécuté s'il s'agit d'une application) afin de ne pas compromettre la sécurité du dispositif. Par exemple, l'ECDSA (pour « Elliptic Curve Digital Signature Algorithm ») et le RSA (pour « Rivest Shamir Adleman »), sont des mécanismes de signature connus, réputés difficiles à contourner.BACKGROUND OF THE INVENTION Signature and signature verification mechanisms make it possible to certify the origin of data exchanged between two devices. The data may for example be messages containing information provided by an originating device to a destination device. For example again, the data may be an application transmitted by an originating device to a destination device for execution of the application by the latter. In general, as well as in what follows, reference is made to a message exchanged between the originating device and the destination device, although the data exchanged may be of a different nature. When the original device transmits a message to a destination device, it adds data (the "signature" of the message) that will allow the destination device to verify that the message is from the original device. The signature mechanism thus allows the destination device, if the signature is valid, to trust the received message. For example, if the received message is an application, the original device can run it safely. On the other hand, if an unsigned or signed message with an invalid signature is received, it is not processed (or not executed if it is an application) in order not to compromise the security of the device. For example, ECDSA (for "Elliptic Curve Digital Signature Algorithm") and RSA (for "Rivest Shamir Adleman"), are known signature mechanisms, known to be difficult to circumvent.

Une attaque possible contre les mécanismes de signature est de tenter de retrouver la signature du dispositif d'origine pour l'adjoindre à des données afin de leur donner l'apparence d'une origine qu'elles n'ont pas. Ainsi, par exemple, il est possible de faire exécuter des applications par un dispositif de destination en lui faisant croire que les applications proviennent d'un dispositif d'origine de confiance alors que ce n'est pas le cas.A possible attack against signature mechanisms is to try to find the signature of the original device to add it to data in order to give them the appearance of an origin they do not have. Thus, for example, it is possible to execute applications by a destination device by making it believe that the applications come from a trusted source device when this is not the case.

Pour éviter de telles attaques, les mécanismes de signature mettent en oeuvre des procédés permettant notamment de complexifier la tâche consistant à calculer la signature et en particulier de rendre inefficace la recherche de la signature par essais aléatoires.To avoid such attacks, the signature mechanisms implement processes that make it possible in particular to complicate the task of calculating the signature and, in particular, to make the search for the signature by random tests ineffective.

De façon générale, les calculs cryptographiques mis en oeuvre dans la vérification de signature sont complexes et requièrent une puissance et une capacité de calcul conséquentes. A titre d'exemple, l'ECDSA sur la courbe elliptique P-192, normalisée par le NIST (National Institute of Standards and Technology) met en jeu une double multiplication scalaire requérant l'exécution de 3584 multiplications modulaires sur un corps de Galois GF(p) où p est un nombre premier de 192 bits. L'algorithme de signature RSA 1024, quant à lui, repose sur une exponentiation modulaire requérant l'exécution de 1536 multiplications modulaires entre des nombres de 1024 bits. Or, les dispositifs sécurisés mettant typiquement en oeuvre les calculs de vérification de signature peuvent être limités en capacité de calcul. Par exemple, certains composants classiquement utilisés pour vérifier les signatures disposent d'une mémoire vive (RAM) d'au plus 32Ko et d'une unité de traitement (CPU) fonctionnant en moyenne à 30MHz, alors que ces composants peuvent être intégrés dans des téléphones portables avec par exemple 2Go de mémoire vive et avec des processeurs par exemple 4 coeurs fonctionnant à plus de 2GHz. Dans ce contexte, il est intéressant de pouvoir déléguer ces calculs de vérification à des dispositifs plus puissants. Cette délégation est particulièrement intéressante lorsque le dispositif sécurisé fonctionne en association avec un autre dispositif dont la capacité de calcul est plus grande. Par exemple, le dispositif sécurisé peut être une clé USB sécurisée (token) branchée sur un PC. Par exemple encore, les calculs de vérification peuvent être délégués à un dispositif hôte accueillant le dispositif sécurisé. De façon générale, les dispositifs plus puissants chargés de faire une partie des calculs de vérification délégués peuvent ne pas être sécurisés, c'est-à-dire qu'un attaquant peut accéder et modifier les données manipulées par ces dispositifs. Ils peuvent ainsi être particulièrement exposés aux attaques. L'avantage associé à la délégation de calcul en termes de charge de calcul peut alors être obtenu au prix de compromettre la sécurité du mécanisme de signature. Au cours d'un calcul de vérification de signature mis en oeuvre par un dispositif auquel il est délégué, un attaquant peut modifier les données manipulées et ainsi provoquer par exemple la validation artificielle d'une signature alors que celle-ci est erronée, typiquement dans le but de faire exécuter une application malveillante. Ainsi, il existe un besoin pour améliorer la sécurité des calculs de vérification de signature numérique, notamment dans le cas où ceux-ci sont délégués à un dispositif non sécurisé. La présente invention s'inscrit dans ce cadre.In general, the cryptographic calculations implemented in the signature verification are complex and require considerable power and computing capacity. For example, the ECDSA on the P-192 elliptic curve, standardized by the National Institute of Standards and Technology (NIST), involves a double scalar multiplication requiring the execution of 3584 modular multiplications on a GF Galois body. (p) where p is a prime number of 192 bits. The RSA signature algorithm 1024, on the other hand, is based on a modular exponentiation requiring the execution of 1536 modular multiplications between 1024-bit numbers. However, the secure devices typically implementing the signature verification calculations can be limited in computing capacity. For example, some components conventionally used to verify signatures have a random access memory (RAM) of up to 32K and a processing unit (CPU) running on average at 30MHz, whereas these components can be integrated into mobile phones with for example 2GB of RAM and with processors for example 4 cores operating at more than 2GHz. In this context, it is interesting to be able to delegate these verification calculations to more powerful devices. This delegation is particularly interesting when the secure device works in association with another device whose computing capacity is greater. For example, the secure device may be a secure USB key (token) connected to a PC. For example again, the verification calculations can be delegated to a host device hosting the secure device. In general, the more powerful devices that perform part of the delegated verification calculations may not be secure, that is, an attacker can access and modify the data manipulated by these devices. They can thus be particularly exposed to attacks. The advantage associated with the calculation delegation in terms of computing load can then be obtained at the cost of compromising the security of the signature mechanism. During a signature verification calculation implemented by a device to which it is delegated, an attacker can modify the manipulated data and thus cause, for example, the artificial validation of a signature when the latter is erroneous, typically in the purpose of running a malicious application. Thus, there is a need to improve the security of digital signature verification calculations, especially in the case where they are delegated to an unsecured device. The present invention falls within this framework.

RESUME DE L'INVENTION Un premier aspect de l'invention concerne un procédé de vérification de la validité d'une signature numérique de message, comportant les étapes suivantes : - de détermination de premières données de signature de message, - de transmission, à un dispositif de calcul, de deuxièmes données de calcul basées sur les premières données de signature de message, - de réception, de la part du dispositif de calcul, d'un résultat intermédiaire de calcul sur les deuxièmes données, et - de vérification de (ou de délibération sur) la validité de la signature à partir du résultat intermédiaire. Selon l'invention, ce procédé de vérification comporte en outre une étape de masquage, d'au moins une partie des premières données de signature de message, à partir d'au moins une donnée de masquage, et l'étape de vérification (ou de délibération) fait intervenir cette donnée de masquage. Ainsi, une partie des calculs de vérification est déléguée au dispositif de calcul, sans pour autant que celui-ci ait accès à des données sensibles permettant à un attaquant de parvenir artificiellement à la validation d'une (fausse) signature. En effet, il sera très difficile pour un attaquant de retrouver la signature numérique pour l'adjoindre à des données afin de donner l'impression qu'elles proviennent d'un dispositif de confiance. De plus, l'invention permet de bénéficier des avantages associés à la délégation de calcul en termes de charge de calcul, sans toutefois compromettre la sécurité du mécanisme de vérification de signature, notamment lorsque le dispositif de calcul n'est pas sécurisé. Le procédé est par exemple mis en oeuvre par un dispositif sécurisé dont la capacité de calcul est plus faible que la capacité de calcul dudit dispositif de calcul. La vitesse d'exécution ou de réalisation du mécanisme (global) de vérification en est ainsi globalement augmentée. En outre, les capacités de calcul du dispositif sécurisé peuvent ainsi être dédiées entièrement aux tâches de sécurité (e.g. validation finale ou délibération sur la validité de la signature en fonction du résultat des calculs) sans être monopolisées par une charge trop importante de calcul. Les calculs sur les deuxièmes données par le dispositif de calcul comprennent par exemple une opération d'exponentiation modulaire, et/ou une opération de multiplication scalaire. Ces deux opérations sont réputées coûteuses en termes de calculs.SUMMARY OF THE INVENTION A first aspect of the invention relates to a method for verifying the validity of a digital message signature, comprising the following steps: determining first message signature data, transmitting data, computing device, second calculation data based on the first message signature data, - receiving, on behalf of the computing device, an intermediate calculation result on the second data, and - verifying (or deliberation on) the validity of the signature from the intermediate result. According to the invention, this verification method further comprises a step of masking, at least part of the first message signature data, from at least one masking data, and the verification step (or deliberation) uses this masking data. Thus, part of the verification calculations is delegated to the computing device, without the latter having access to sensitive data allowing an attacker to artificially arrive at the validation of a (false) signature. Indeed, it will be very difficult for an attacker to find the digital signature to add to data to give the impression that they come from a trusted device. In addition, the invention makes it possible to benefit from the advantages associated with the calculation delegation in terms of computing load, without, however, compromising the security of the signature verification mechanism, especially when the computing device is not secure. The method is for example implemented by a secure device whose computing capacity is lower than the computing capacity of said computing device. The speed of execution or realization of the (global) verification mechanism is thereby increased overall. In addition, the computing capabilities of the secure device can thus be dedicated entirely to security tasks (e.g. final validation or deliberation on the validity of the signature as a function of the result of the calculations) without being monopolized by an excessive calculation load. The calculations on the second data by the computing device comprise for example a modular exponentiation operation, and / or a scalar multiplication operation. These two operations are considered expensive in terms of calculations.

Ainsi, par exemple dans le cas d'une signature de type RSA, le résultat intermédiaire de calcul peut être obtenu au moins à partir d'une opération d'exponentiation modulaire sur les deuxièmes données.Thus, for example in the case of an RSA type signature, the intermediate calculation result can be obtained at least from a modular exponentiation operation on the second data.

En variante, par exemple dans le cas d'une signature sur courbe elliptique (e.g. ECDSA), le résultat intermédiaire de calcul peut être obtenu au moins à partir d'au moins une multiplication scalaire sur les deuxièmes données. Par exemple, le résultat intermédiaire de calcul est obtenu au moins à partir d'au moins une double multiplication scalaire sur les deuxièmes données. Selon des modes de réalisation, l'étape de vérification comprend : - une étape de démasquage de ladite au moins une partie des premières données masquée au cours de l'étape de masquage, - une étape d'application d'une première fonction cryptographique au résultat de l'étape de démasquage, et - une étape de comparaison du résultat intermédiaire de calcul avec le résultat de l'application de la première fonction cryptographique. Le procédé peut ainsi être mis en oeuvre même dans les cas où le message n'est pas reçu par le dispositif sécurisé via un canal de communication sécurisé avec le fournisseur de la signature (i.e. le dispositif signataire ou le dispositif d'origine). En outre, le masquage et le démasquage du message peuvent se faire via l'utilisation d'une donnée de masquage basée sur un secret partagé entre l'entité d'origine émettant le message (e.g. le signataire) et l'entité de destination le recevant (dispositif sécurisé).As a variant, for example in the case of an elliptic curve signature (e.g. ECDSA), the intermediate calculation result can be obtained at least from at least one scalar multiplication on the second data. For example, the intermediate calculation result is obtained at least from at least one double scalar multiplication on the second data. According to embodiments, the verification step comprises: a step of unmasking said at least part of the first data masked during the masking step; a step of applying a first cryptographic function to the result of the unmasking step, and - a step of comparing the intermediate calculation result with the result of the application of the first cryptographic function. The method can thus be implemented even in cases where the message is not received by the secure device via a secure communication channel with the provider of the signature (i.e. the signatory device or the original device). In addition, the masking and unmasking of the message can be done through the use of masking data based on a shared secret between the originating entity issuing the message (eg the signer) and the destination entity on the other hand. receiving (secure device).

Selon des modes de réalisation, les deuxièmes données de calcul transmises au dispositif de calcul au cours de l'étape de transmission peuvent correspondre au résultat de l'étape de masquage. Par exemple, les deuxièmes données peuvent comporter ou être fonction du résultat de l'étape de masquage. Selon des modes de réalisation, l'étape de vérification comprend : - l'étape de masquage précitée, laquelle comprend l'application d'une deuxième fonction cryptographique à au moins une partie des premières données de signature de message, et le masquage du résultat de l'application de la deuxième fonction cryptographique, à partir de la donnée de masquage précitée, et - une étape de comparaison du résultat intermédiaire de calcul avec le résultat du masquage. Par exemple, l'étape de vérification comprend une étape de comparaison du résultat intermédiaire de calcul avec la donnée de masquage. La donnée de masquage étant par exemple un nombre aléatoire très grand (typiquement supérieur à 100 bits), la probabilité qu'un attaquant tombe précisément sur cette donnée est très faible. C'est pourquoi il peut être avantageux de s'en servir comme élément de comparaison pour déterminer si la signature est valide ou non. Selon des modes de réalisation, l'étape de détermination comprend la réception des premières données de signature de message.According to embodiments, the second calculation data transmitted to the computing device during the transmission step may correspond to the result of the masking step. For example, the second data may comprise or be a function of the result of the masking step. According to embodiments, the verification step comprises: the aforementioned masking step, which comprises the application of a second cryptographic function to at least a part of the first message signature data, and the masking of the result the application of the second cryptographic function, from the aforementioned masking data, and a step of comparing the intermediate calculation result with the result of the masking. For example, the verification step comprises a step of comparing the intermediate calculation result with the masking data. The masking data being for example a very large random number (typically greater than 100 bits), the probability that an attacker falls precisely on this data is very low. Therefore, it may be advantageous to use it as a comparator to determine whether the signature is valid or not. According to embodiments, the determining step comprises receiving the first message signature data.

Par exemple, la partie des premières données de signature de message masquée au cours de l'étape de masquage sont reçues par un dispositif sécurisé dont la capacité de calcul est plus faible que la capacité de calcul du dispositif de calcul, et les étapes de transmission de deuxièmes données, de réception d'un résultat intermédiaire et de vérification de la validité de la signature sont mises en oeuvre dans le dispositif sécurisé. Un deuxième aspect de l'invention concerne un programme d'ordinateur ainsi qu'un produit programme d'ordinateur et un support de stockage pour de tels programme et produit, permettant la mise en oeuvre d'un procédé selon le premier aspect lorsque le programme est chargé et exécuté par un processeur d'un dispositif informatique.For example, the portion of the first message signature data masked during the masking step is received by a secure device whose computing capacity is lower than the calculation capacity of the computing device, and the transmission steps. second data, receiving an intermediate result and verifying the validity of the signature are implemented in the secure device. A second aspect of the invention relates to a computer program as well as a computer program product and a storage medium for such a program and product, allowing the implementation of a method according to the first aspect when the program is loaded and executed by a processor of a computing device.

Le support peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple une ROM de microcircuit, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur, ou encore une mémoire flash. D'autre part, le support peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur une plateforme de stockage d'un réseau de type Internet. Alternativement, le support peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Un troisième aspect de l'invention concerne un dispositif pour la vérification de la validité d'une signature numérique de message, comportant : - un module de réception de premières données de signature de message, - un module de transmission, à un dispositif de calcul, de deuxièmes données de calcul basées sur les premières données de signature de message, - un module de réception, de la part du dispositif de calcul, d'un résultat intermédiaire de calcul sur les deuxièmes données, et - un module de vérification de (ou de délibération sur) la validité de la signature à partir du résultat intermédiaire.The medium may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a microcircuit ROM, or a magnetic recording means, for example a hard disk, or a flash memory. On the other hand, the medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention may in particular be downloaded to a storage platform of an Internet type network. Alternatively, the support may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question. A third aspect of the invention relates to a device for checking the validity of a digital message signature, comprising: a module for receiving first message signature data, a transmission module, for a computing device second calculation data based on the first message signature data; - a receiving module, on the part of the computing device, an intermediate calculation result on the second data; and - a verification module of or deliberation on) the validity of the signature from the intermediate result.

Selon l'invention, au moins une partie des premières données de signature de message sont masquées à partir d'au moins une donnée de masquage, et le module de vérification (ou de délibération) utilise cette donnée de masquage. Par exemple, le dispositif selon le troisième aspect de l'invention est un dispositif sécurisé.According to the invention, at least a portion of the first message signature data is masked from at least one masking data, and the verification (or deliberation) module uses this masking data. For example, the device according to the third aspect of the invention is a secure device.

De manière générale, le dispositif sécurisé peut être conforme aux Critères Communs (ISO/CEI 15408) ou à la norme FIPS. Dans des modes de réalisation, le dispositif comprend en outre un module de masquage de ladite au moins une partie des premières données de signature de message à partir de ladite au moins une donnée de masquage.In general, the secure device can comply with Common Criteria (ISO / IEC 15408) or FIPS. In embodiments, the device further comprises a masking module of said at least a portion of the first message signature data from said at least one masking data.

Ainsi, le dispositif peut masquer lui-même une partie des données reçues du dispositif générant la signature du message. En variante, le dispositif peut comporter en outre un module de masquage, d'au moins une partie des premières données de signature de message, à partir d'au moins une donnée de masquage, et le module de vérification (ou de délibération) utilise cette donnée de masquage. Un quatrième aspect de l'invention concerne un système pour la vérification de la validité d'une signature numérique de message, comportant : un module de détermination de premières données de signature de message, un module de transmission, à un dispositif de calcul, de deuxièmes données de calcul basées sur les premières données de signature de message, - un module de réception, de la part du dispositif de calcul, d'un résultat intermédiaire de calcul sur les deuxièmes données, et - un module de vérification de (ou de délibération sur) la validité de la signature à partir du résultat intermédiaire. Selon des modes de réalisation, le système comprend un dispositif sécurisé et un dispositif signataire, le dispositif signataire comprenant le module de détermination des premières données, et le dispositif sécurisé comprenant le module de transmission des deuxièmes données, le module de réception du résultat intermédiaire et le module de vérification du résultat intermédiaire. Le dispositif signataire et le dispositif sécurisé peuvent communiquer via un canal sécurisé de communication. Ainsi, le message et la signature peuvent transiter par ce canal de communication sans forcément être masqués.Thus, the device can itself hide part of the data received from the device generating the signature of the message. Alternatively, the device may further comprise a masking module, at least a part of the first message signature data, from at least one masking data, and the verification (or deliberation) module uses this masking data. A fourth aspect of the invention relates to a system for verifying the validity of a digital message signature, comprising: a module for determining first message signature data, a transmission module, a computing device, second calculation data based on the first message signature data, - a receiving module, on the part of the computing device, an intermediate calculation result on the second data, and - a verification module of (or of deliberation on) the validity of the signature from the intermediate result. According to embodiments, the system comprises a secure device and a signatory device, the signatory device comprising the first data determination module, and the secure device comprising the second data transmission module, the intermediate result receiving module and the verification module of the intermediate result. The signatory device and the secure device can communicate via a secure communication channel. Thus, the message and the signature can pass through this communication channel without necessarily being masked.

Par exemple, le système précité comprend le dispositif de calcul. Le dispositif de calcul comprend le dispositif sécurisé. Le dispositif sécurisé peut être une carte à puce (par exemple conforme à la norme ISO 7816, amovible par rapport à un terminal hôte. Cette carte à puce amovible peut être insérée dans un terminal hôte, par exemple un téléphone mobile.For example, the aforementioned system comprises the computing device. The computing device comprises the secure device. The secure device may be a smart card (eg compliant with ISO 7816, removable from a host terminal) This removable smart card may be inserted into a host terminal, for example a mobile phone.

En variante, un dispositif sécurisé peut être un élément sécurisé embarqué eSE (pour embedded Secure Element) inamovible par rapport à un terminal hôte (par exemple un téléphone mobile) dans lequel l'eSE serait inséré. Le dispositif sécurisé peut par exemple avoir la fonction d'un module d'identité de souscripteur auprès d'un opérateur de télécommunications (e.g. une UICC pour Universal Integrated Circuit Card, amovible ou embarquée, par exemple une carte SIM ou USIM). Le dispositif de calcul peut être par exemple un terminal hôte (e.g. téléphone mobile) comprenant le dispositif sécurisé.As a variant, a secure device may be an embedded secure element eSE (for Embedded Secure Element) irremovable with respect to a host terminal (for example a mobile telephone) in which the eSE would be inserted. The secure device may for example have the function of a subscriber identity module with a telecommunications operator (e.g. a UICC for Universal Integrated Circuit Card, removable or embedded, for example a SIM or USIM card). The computing device may be for example a host terminal (e.g. mobile phone) comprising the secure device.

Les échanges entre le dispositif de calcul et le dispositif sécurisé sont par exemple conformes à la norme ISO 7816 et les messages et requêtes échangés sont par exemple des trames APDU. Ainsi, par exemple, lorsque la signature numérique d'un message est valide, un programme (ou une application) contenu(e) au moins en partie (e.g. mise à jour du dispositif sécurisé) dans le message vérifié peut être chargée en mémoire non volatile du dispositif sécurisé ou bien être exécutée dans le dispositif sécurisé. Puis, dans le cas du chargement de l'application ou du programme en mémoire non volatile du dispositif sécurisé, lors de la réception par celui-ci d'une commande (par exemple APDU) visant ce programme (ou cette application), le dispositif sécurisé peut exécuter la commande, par exemple à l'aide du programme (ou de l'application), et renvoyer une réponse (par exemple sous la forme d'une réponse APDU) à cette commande. La réponse à la commande est par exemple formée à partir du résultat du traitement, par le programme (ou l'application), d'une partie des données comprises dans la commande.The exchanges between the computing device and the secure device are, for example, in accordance with the ISO 7816 standard and the exchanged messages and requests are, for example, APDU frames. Thus, for example, when the digital signature of a message is valid, a program (or an application) contained at least in part (eg update of the secure device) in the verified message can be loaded into memory. volatile of the secure device or be executed in the secure device. Then, in the case of loading the application or the program in the non-volatile memory of the secure device, when it receives a command (for example APDU) targeting this program (or this application), the device Secure can execute the command, for example using the program (or application), and return a response (for example in the form of an APDU response) to this command. The response to the command is, for example, formed from the result of the processing, by the program (or the application), of part of the data included in the command.

Par exemple, le dispositif signataire et le dispositif de sécurisation communiquent via un réseau de téléphonie mobile. Les avantages, buts et caractéristiques particuliers du dispositif, du système, du programme d'ordinateur et du support d'informations sont similaires à ceux du procédé selon le premier aspect.For example, the signatory device and the security device communicate via a mobile telephone network. The particular advantages, aims and features of the device, the system, the computer program and the information carrier are similar to those of the method according to the first aspect.

BREVE DESCRIPTION DES FIGURES D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures : - Les Figures la et lb illustrent des exemples de contexte de mise en oeuvre de modes de réalisation, - La Figure 2 représente un exemple d'architecture pour les dispositifs représentés sur les Figures la et 1 b, - La Figure 3 représente les étapes générales d'un procédé de vérification conforme à l'invention, - Les Figures 4 à 7 représentent des étapes de procédés de vérification selon des modes de réalisation.BRIEF DESCRIPTION OF THE FIGURES Other features and advantages of the invention will become apparent in the following description, illustrated by the accompanying figures which illustrate embodiments having no limiting character. In the figures: FIGS. 1a and 1b illustrate exemplary context of implementation of embodiments, FIG. 2 represents an exemplary architecture for the devices represented in FIGS. 1a and 1b, FIG. 3 represents the general steps of a verification method according to the invention, - Figures 4 to 7 show verification process steps according to embodiments.

DESCRIPTION DETAILLEE DE L'INVENTION La Figure la illustre un contexte de mise en oeuvre de modes de réalisation. Un dispositif 10a génère un message à destination d'un dispositif 14a. Afin de permettre au dispositif 14a de vérifier l'origine du message, le dispositif 10a lui adjoint une signature numérique. Le dispositif 10a sera appelé dispositif signataire 10a.DETAILED DESCRIPTION OF THE INVENTION Figure la illustrates a context for implementing embodiments. A device 10a generates a message to a device 14a. In order to enable the device 14a to verify the origin of the message, the device 10a adds a digital signature. The device 10a will be called signatory device 10a.

Le dispositif 14a est en charge de la vérification de la validité de la signature numérique du message. Afin d'éviter les attaques pouvant consister à « forcer » la vérification positive de la validité de signatures ne provenant pas du dispositif 10a, le dispositif 14a est sécurisé.The device 14a is in charge of verifying the validity of the digital signature of the message. In order to avoid attacks that may consist in "forcing" the positive verification of the validity of signatures not coming from the device 10a, the device 14a is secure.

Afin d'alléger la charge de calcul du dispositif sécurisé 14a, une partie des calculs de vérification sont délégués, de manière sécurisée, à un dispositif de calcul 12a, présentant une puissance de calcul plus importante que le dispositif sécurisé 14a habituellement en charge de la vérification. Ainsi, le système de la Figure la comporte un dispositif signataire 10a (dispositif d'origine du message et de la signature), un dispositif sécurisé 14a (dispositif de destination du message et de la signature) et un dispositif de calcul 12a. Par exemple, le dispositif sécurisé 14a est un dispositif déporté tel qu'une clé USB, pouvant être branché à un dispositif de calcul 12a, par exemple un PC. Cependant, les dispositifs 12a et 14a peuvent être intégrés dans un même dispositif. Le dispositif signataire 10a est capable de générer une signature numérique d'un message, et de transmettre la signature numérique et le message au dispositif sécurisé 14a, possiblement sous forme masquée, via un canal sécurisé de communication 16a. En pratique, un canal est dit sécurisé lorsque par les données transmises par ce canal sont encryptées et qu'une clé est nécessaire pour les décrypter.In order to alleviate the computing load of the secure device 14a, part of the verification calculations are delegated, in a secure manner, to a computing device 12a, having a larger computing power than the secure device 14a usually in charge of the verification. Thus, the system of Figure la comprises a sign device 10a (original device of the message and the signature), a secure device 14a (destination device of the message and the signature) and a computing device 12a. For example, the secure device 14a is a remote device such as a USB key, which can be connected to a computing device 12a, for example a PC. However, the devices 12a and 14a can be integrated in the same device. The signing device 10a is capable of generating a digital signature of a message, and of transmitting the digital signature and the message to the secure device 14a, possibly in masked form, via a secure communication channel 16a. In practice, a channel is said to be secure when the data transmitted by this channel are encrypted and a key is needed to decrypt them.

Par exemple, un jeu de une ou plusieurs clés mémorisées par le dispositif signataire et le dispositif sécurisé peut être utilisé pour encrypter et décrypter les données transmises par ce canal. Le canal sécurisé 16a est par exemple établi directement entre les dispositifs 10a et 14a. Il s'agit par exemple d'un canal de communication RF (Radio fréquence), infrarouge, ou par connexion filaire (par exemple selon le protocole USB), ou autre. La Figure lb illustre un autre contexte de mise en oeuvre de modes de réalisation. Un dispositif 10b transmet un message signé à un dispositif sécurisé 14b intégré à un dispositif hôte 12b. Par exemple, le dispositif 14b est un module d'identification de souscripteur à un réseau 16b (par exemple une carte SIM) et le dispositif 12b est un terminal mobile (e.g. téléphone mobile intelligent ou Smartphone en anglais). Les dispositifs 10b et 14b communiquent via le réseau 16b. Le réseau 16b peut être sécurisé ou non. Il s'agit par exemple d'un réseau de communications téléphonique et/ou Internet. Ainsi, dans cet exemple de contexte, le signataire 10b et le terminal mobile 12b communiquent par exemple via le réseau téléphonique 16b, à l'aide du module d'identification 14b. Les contextes illustrés par les Figures la et lb ne sont pas incompatibles. Les caractéristiques présentées dans un contexte peuvent être mises en oeuvre dans l'autre.For example, a set of one or more keys stored by the signing device and the secure device can be used to encrypt and decrypt the data transmitted by this channel. The secure channel 16a is for example established directly between the devices 10a and 14a. This is for example an RF (Radio Frequency), infrared or wired connection (for example according to the USB protocol) or other communication channel. Figure lb illustrates another context of implementation of embodiments. A device 10b transmits a signed message to a secure device 14b integrated with a host device 12b. For example, the device 14b is a subscriber identification module to a network 16b (for example a SIM card) and the device 12b is a mobile terminal (e.g. smart mobile phone or Smartphone). The devices 10b and 14b communicate via the network 16b. The network 16b can be secured or not. This is for example a network of telephone and / or Internet communications. Thus, in this context example, the signer 10b and the mobile terminal 12b communicate for example via the telephone network 16b, using the identification module 14b. The contexts illustrated by Figures 1a and 1b are not incompatible. The characteristics presented in one context can be implemented in the other.

Le message transmis par le signataire au dispositif sécurisé peut par exemple comprendre un programme (ou une application ou une partie d'application, par exemple une mise à jour). Ce programme peut être sécurisé ou non. Ce programme peut être mémorisé dans une mémoire par exemple non-volatile du dispositif sécurisé, une fois que la signature du message correspondant a été vérifiée par un procédé de vérification conforme à l'invention. Il peut être ensuite exécuté en partie ou entièrement par le dispositif sécurisé. La Figure 2 représente un exemple d'architecture pour les dispositifs de la Figure la ou 1 b, c'est-à-dire le dispositif signataire 10a ou 10b, le dispositif de calcul 12a ou 12b et/ou le dispositif sécurisé 14a ou 14b.The message sent by the signer to the secure device may for example include a program (or an application or part of an application, for example an update). This program can be secure or not. This program can be stored in a non-volatile memory of the secure device, for example, once the signature of the corresponding message has been verified by a verification method according to the invention. It can then be executed in part or entirely by the secure device. FIG. 2 represents an exemplary architecture for the devices of FIG. 1a or 1b, that is to say the signatory device 10a or 10b, the computing device 12a or 12b and / or the secure device 14a or 14b .

Selon cette architecture, un dispositif peut comprendre un bus de communication 2 relié aux éléments suivants : - une unité de traitement 20 notée CPU (sigle de Central Processing Unit en anglais), pouvant comporter un ou plusieurs processeurs; - une ou plusieurs mémoires non volatiles 22 par exemple ROM (acronyme de Read Only Memory en anglais) pouvant constituer un support au sens de l'invention, c'est-à- dire pouvant comprendre un programme informatique comprenant des instructions pour la mise en oeuvre des procédés selon l'invention ; - une mémoire vive 24 ou mémoire cache ou mémoire volatile par exemple RAM (acronyme de Random Access Memory en anglais) comprenant des registres adaptés à l'enregistrement des variables et paramètres créés et modifiés au cours de l'exécution du programme précité ; lors de la mise en oeuvre de l'invention. Les codes d'instructions du programme stocké en mémoire non volatile sont chargés en mémoire RAM en vue d'être exécutés par l'unité de traitement CPU ; - une interface de communication 26 adaptée à transmettre et à recevoir des données, par exemple via un réseau de télécommunications ou une interface de lecture/écriture. C'est par exemple via cette interface que les dispositifs signataire et sécurisé peuvent envoyer/recevoir un message et sa signature. C'est également par cette interface que le dispositif sécurisé peut déléguer les calculs de vérification au dispositif de calcul. De façon optionnelle, cette architecture comprend également une interface d'entrées/sorties 28 I/O (pour Input/Output en anglais), par exemple un écran, un clavier, une souris ou un autre dispositif de pointage tel qu'un écran tactile. Cette interface permet par exemple à un utilisateur de lancer l'exécution d'instructions par l'unité de traitement 20. Le dispositif signataire et/ou le dispositif sécurisé peuvent en outre comprendre un crypto-processeur 29 recevant des instructions de la part de l'unité de traitement 20 pour crypter et/ou décrypter des données, par exemple une signature numérique ou un message. Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité de traitement est susceptible de communiquer des instructions à tout élément du dispositif directement ou par l'intermédiaire d'un autre élément de ce dispositif.According to this architecture, a device may comprise a communication bus 2 connected to the following elements: a processing unit 20 denoted CPU (acronym for Central Processing Unit in English), which may comprise one or more processors; one or more nonvolatile memories 22, for example ROM (acronym for Read Only Memory in English), which may constitute a medium within the meaning of the invention, that is to say may comprise a computer program comprising instructions for the implementation of methods of the invention; a random access memory 24 or cache memory or volatile memory for example RAM (acronym for Random Access Memory in English) comprising registers adapted to the recording of the variables and parameters created and modified during the execution of the aforementioned program; during the implementation of the invention. The instruction codes of the program stored in non-volatile memory are loaded into RAM memory for execution by the CPU processing unit; a communication interface 26 adapted to transmit and receive data, for example via a telecommunications network or a read / write interface. It is for example via this interface that the signatory and secure devices can send / receive a message and its signature. It is also through this interface that the secure device can delegate the verification calculations to the computing device. Optionally, this architecture also includes an input / output interface 28 I / O (for Input / Output in English), for example a screen, a keyboard, a mouse or other pointing device such as a touch screen . This interface allows for example a user to start the execution of instructions by the processing unit 20. The signing device and / or the secure device may further comprise a crypto-processor 29 receiving instructions from the user. processing unit 20 for encrypting and / or decrypting data, for example a digital signature or a message. The communication bus allows communication and interoperability between the various elements included in the device or connected to it. The representation of the bus is not limiting and, in particular, the processing unit is able to communicate instructions to any element of the device directly or via another element of this device.

La Figure 3 représente les étapes générales d'un procédé de vérification de signature numérique d'un message selon l'invention. Un tel procédé peut être mis en oeuvre par un dispositif sécurisé ou un système de vérification de signature numérique, par exemple tels que décrits en référence aux Figures la, 1b ou 2. Lors d'une étape 300, des premières données de signature de message sont déterminées. Ces premières données peuvent comprendre un ou plusieurs éléments de signature et éventuellement le message correspondant.Figure 3 shows the general steps of a digital signature verification method of a message according to the invention. Such a method can be implemented by a secure device or a digital signature verification system, for example as described with reference to FIGS. 1a, 1b or 2. In a step 300, first message signature data are determined. These first data may comprise one or more signature elements and possibly the corresponding message.

Notamment, le dispositif signataire peut appliquer une fonction cryptographique au message, de sorte qu'au moins une partie des premières données de signature dépende du résultat de cette fonction. Par exemple, la fonction cryptographique peut être une fonction de hachage (e.g. SHA-1).In particular, the signatory device can apply a cryptographic function to the message, so that at least a portion of the first signature data depends on the result of this function. For example, the cryptographic function may be a hash function (e.g., SHA-1).

Cette étape peut aussi être mise en oeuvre au moins partiellement par le dispositif sécurisé, en collaboration avec le dispositif signataire qui génère la signature. Ainsi, l'étape de détermination peut comprendre la réception, par un canal sécurisé entre le dispositif signataire et le dispositif sécurisé, des premières données de signature. Pour simplifier, on utilisera simplement le terme « premières données » pour désigner l'ensemble.This step can also be implemented at least partially by the secure device, in collaboration with the signing device that generates the signature. Thus, the determination step may comprise receiving, by a secure channel between the signatory device and the secure device, first signature data. For simplicity, simply use the term "first data" to designate the set.

En variante, l'étape de détermination peut comprendre la réception par une communication classique (i.e. pas forcément sécurisée) des premières données de signature, accompagnées du message correspondant sous forme masquée. Afin de garantir la sécurité du message, le dispositif signataire et le dispositif sécurisé peuvent partager un secret leur permettant de masquer/démasquer les données échangées (i.e. le message et/ou les données de signature). Le secret partagé peut être par exemple utilisé en entrée d'un générateur de nombre pseudo-aléatoire (en anglais PRNG pour « Pseudo Random Number Generator ») afin d'obtenir des valeurs de masquage/démasquage. Selon des modes de réalisation, les premières données de signature déterminées à l'étape 300 sont masquées au cours d'une étape 310 dans le dispositif signataire puis reçues par le dispositif sécurisé sous forme masquée. En variante, le dispositif sécurisé peut masquer lui-même les premières données reçues. Ainsi, l'étape de masquage 310 est réalisée soit par le dispositif signataire, soit par le dispositif sécurisé, à partir d'une donnée de masquage.Alternatively, the determining step may include receiving by a conventional communication (i.e. not necessarily secure) the first signature data, accompanied by the corresponding message in masked form. In order to guarantee the security of the message, the signatory device and the secure device may share a secret allowing them to hide / unmask the exchanged data (i.e. the message and / or the signature data). The shared secret can be used, for example, at the input of a pseudo-random number generator (PRNG) to obtain masking / unmasking values. According to embodiments, the first signature data determined in step 300 are masked during a step 310 in the signatory device and then received by the secure device in masked form. Alternatively, the secure device can itself hide the first received data. Thus, the masking step 310 is performed either by the signing device or by the secure device, from a masking data.

La donnée de masquage peut être par exemple un nombre aléatoire (aléa) ou comme expliqué précédemment, un nombre pseudo-aléatoire basé sur un secret partagé entre le dispositif signataire et le dispositif sécurisé. Comme expliqué précédemment, le masquage peut porter sur les données de signature et/ou sur le message lui-même.The masking data may be for example a random number (random) or as explained above, a pseudo-random number based on a secret shared between the signing device and the secure device. As explained above, the masking may relate to the signature data and / or the message itself.

L'opération de masquage consiste par exemple en une addition faisant intervenir un opérateur de type OU exclusif (aussi appelé XOR). Le procédé comporte en outre une étape de transmission 320 (au dispositif de calcul) de données de calcul (deuxièmes données) basées sur les données de signature (premières données) de message. C'est ainsi qu'une partie des calculs de vérification de signature est déléguée au dispositif de calcul, plus puissant que le dispositif sécurisé. Les données de calcul peuvent être directement une partie des premières données (e.g. signature).The masking operation consists, for example, in an addition involving an exclusive OR operator (also called XOR). The method further comprises a transmission step 320 (to the computing device) of calculation data (second data) based on the signature data (first data) of the message. Thus, part of the signature verification calculations is delegated to the computing device, more powerful than the secure device. The calculation data can be directly part of the first data (e.g. signature).

En variante, les données de calcul peuvent être issues du masquage des premières données, par exemple par le dispositif sécurisé. Une fois les calculs réalisés avec les deuxièmes données par le dispositif de calcul, le dispositif sécurisé reçoit (étape 330) le résultat correspondant, dit « résultat intermédiaire ».As a variant, the calculation data may be derived from the masking of the first data, for example by the secure device. Once the calculations made with the second data by the computing device, the secure device receives (step 330) the corresponding result, called "intermediate result".

Au cours d'une étape de vérification 340, le résultat intermédiaire est utilisé pour déterminer si la signature numérique du message est valide ou non. La délibération finale (vérification 340) sur la validité de la signature est réalisée dans le dispositif sécurisé. En effet, une partie des calculs de vérification est déléguée au dispositif de calcul, plus puissant, mais la mise en oeuvre de la partie critique des calculs, à savoir la délibération, se fait dans le dispositif sécurisé. Cette étape de vérification 340 peut utiliser directement la donnée de masquage de l'étape de masquage 310 comme élément de comparaison avec le résultat intermédiaire. En variante, l'étape de vérification 340 peut utiliser la donnée de masquage dans des calculs permettant d'obtenir un élément de comparaison avec le résultat intermédiaire.During a verification step 340, the intermediate result is used to determine whether the digital signature of the message is valid or not. The final deliberation (verification 340) on the validity of the signature is performed in the secure device. Indeed, a part of the verification calculations is delegated to the computing device, more powerful, but the implementation of the critical part of the calculations, namely the deliberation, is done in the secure device. This verification step 340 can directly use the masking data of the masking step 310 as a comparison element with the intermediate result. Alternatively, the verification step 340 may use the masking data in calculations to obtain a comparison element with the intermediate result.

Comme expliqué plus en détail ci-après en référence aux Figures 4 à 7, ce résultat intermédiaire est comparé par exemple au résultat d'une fonction cryptographique appliquée au message m, ou encore à la donnée de masquage (e.g. nombre aléatoire ou pseudo-aléatoire) utilisée dans le masquage 310. Dans la suite de la description, des mises en oeuvre des étapes générales évoquées ci-dessus sont décrites dans le cadre de signatures numériques de type ECDSA et RSA. L'invention ne se limite toutefois pas à ces mises en oeuvre. D'autres types de signature numérique peuvent être mises en oeuvre conformément à des modes de réalisation de l'invention. En outre, les modes de réalisation décrits ci-dessous ne sont pas exclusifs les uns des autres, certaines caractéristiques décrites en regard d'une mise en oeuvre peuvent être utilisées et/ou adaptées pour d'autres mises en oeuvre. En référence à la Figure 4, des étapes d'un procédé de vérification dans le cadre d'une signature de type ECDSA sont décrites. Le procédé peut être mis en oeuvre par exemple dans l'un des systèmes décrits précédemment, entre un dispositif signataire, un dispositif sécurisé et un dispositif de calcul.As explained in more detail below with reference to FIGS. 4 to 7, this intermediate result is compared for example with the result of a cryptographic function applied to the message m, or else with the masking data (eg random or pseudo-random number ) used in masking 310. In the remainder of the description, implementations of the general steps mentioned above are described in the context of digital signatures of ECDSA and RSA type. The invention is however not limited to these implementations. Other types of digital signature may be implemented in accordance with embodiments of the invention. In addition, the embodiments described below are not exclusive of each other, some features described with regard to an implementation can be used and / or adapted for other implementations. With reference to FIG. 4, steps of a verification method in the context of an ECDSA type signature are described. The method can be implemented for example in one of the systems described above, between a signatory device, a secure device and a computing device.

Au cours d'une étape 400, le dispositif signataire génère une signature (s, r) à partir d'un message m, selon l'algorithme de génération de signature ECDSA. Au cours d'une étape 410, le dispositif sécurisé reçoit le message m avec la signature générée (s, r), l'ensemble étant désigné par 'premières données'. Ces premières données sont reçues par exemple via un canal sécurisé avec le dispositif signataire. Au cours d'une étape 420, une fonction cryptographique h est appliquée au message m reçu à l'étape 410, par le dispositif sécurisé, de sorte que la valeur obtenue h(m) ne permet pas de remonter au message m. La fonction cryptographique h est par exemple une fonction de hachage.During a step 400, the signing device generates a signature (s, r) from a message m, according to the ECDSA signature generation algorithm. During a step 410, the secure device receives the message m with the generated signature (s, r), the set being designated by 'first data'. These first data are received for example via a secure channel with the signatory device. During a step 420, a cryptographic function h is applied to the message m received at step 410, by the secure device, so that the value obtained h (m) does not go back to the message m. The cryptographic function h is for example a hash function.

Au cours d'une étape 430, le dispositif sécurisé effectue un masquage de la valeur h(m) ainsi que d'une partie des premières données constituée par les éléments de signature s et r, à partir d'une donnée de masquage I. Cette donnée de masquage est par exemple un nombre aléatoire. En pratique, le masquage d'une de ces valeurs (h(m), s ou r) peut se faire par une opération de multiplication modulaire avec la donnée de masquage I. Au cours d'une étape 440, les valeurs masquées à l'étape 430 (désignées par 'deuxièmes données') sont ensuite transmises sous forme masquée au dispositif de calcul. Celui-ci utilise les valeurs masquées reçues pour obtenir un résultat intermédiaire I,'. Le dispositif de calcul procède aux calculs de vérification standards de l'ECDSA, mais sur les valeurs masquées reçues. Ici, les calculs réalisés par le dispositif de calcul visent à retrouver le nombre aléatoire I, utilisé comme donnée de masquage à l'étape 430. Le résultat intermédiaire I,' est ensuite transmis au dispositif sécurisé (étape de réception 460) pour être utilisé pour la vérification de la validité de la signature numérique précitée. Pour ce faire, le dispositif sécurisé compare le résultat intermédiaire I,' avec le nombre aléatoire I, utilisé pour le masquage (à l'étape 430). Lorsque cette comparaison est positive, c'est-à-dire si le résultat intermédiaire I,' et le nombre aléatoire I, correspondent, la signature numérique est considérée comme valide par le dispositif sécurisé. En conséquence, le message afférant est certifié, autrement dit, le dispositif sécurisé (de destination du message) est assuré que le message émane bien d'un dispositif de confiance (le dispositif signataire). Dans ce cas, le message peut être traité sans danger apparent pour le dispositif sécurisé. Au contraire, lorsque le résultat intermédiaire I,' et le nombre aléatoire I, ne correspondent pas, la signature numérique n'est pas validée et le message n'est pas certifié. Il représente potentiellement un danger puisque sa source n'est pas authentifiée par le dispositif sécurisé. Ainsi, l'avantage associé à la délégation des calculs à un dispositif plus puissant (dispositif de calcul) est obtenu sans compromettre la sécurité du mécanisme de signature.During a step 430, the secure device masks the value h (m) as well as a part of the first data constituted by the signature elements s and r, from a masking data I. This masking data is for example a random number. In practice, the masking of one of these values (h (m), s or r) can be done by means of a modular multiplication operation with the masking data I. During a step 440, the masked values at 1 step 430 (denoted by 'second data') are then transmitted in masked form to the computing device. This uses the masked values received to obtain an intermediate result I '. The computing device performs the standard ECDSA verification calculations, but on the received masked values. Here, the computations made by the computing device aim to recover the random number I, used as masking data in step 430. The intermediate result I, 'is then transmitted to the secure device (receiving step 460) to be used. for checking the validity of the aforementioned digital signature. To do this, the secure device compares the intermediate result I 'with the random number I used for the masking (in step 430). When this comparison is positive, that is to say if the intermediate result I 'and the random number I correspond, the digital signature is considered valid by the secure device. As a result, the afferent message is certified, that is, the secure device (destination of the message) is assured that the message is from a trusted device (the signatory device). In this case, the message can be processed without apparent danger for the secure device. On the contrary, when the intermediate result I 'and the random number I do not match, the digital signature is not validated and the message is not certified. It is potentially dangerous because its source is not authenticated by the secure device. Thus, the advantage associated with the delegation of calculations to a more powerful device (computing device) is obtained without compromising the security of the signature mechanism.

Un exemple non limitatif de pseudo code pour l'implémentation de ce mode de réalisation est donné ci-dessous : Dispositif signataire Dispositif sécurisé Dispositif de calcul r= [k]P li = random(21°g2(q))1{0} h = hash(m) s = k-1(h + rd) mod(q) m, s, r-> -> m, s, r h = hash(m) hi = li * h mod(q) si = li * s mod(q) ri = ii * r mod(q) hb sb ri -> -> hb sb ri r= [5i4 hiy + [sil t'in li' = ri * ri mod(q) Ij'+_ <- I( h == ii, Dans cet exemple de pseudo code : - d est une clé secrète (ou clé cryptographique privée), - P et Q sont des points d'une courbe elliptique vérifiant la relation Q = [d]P, autrement dit le point Q est le résultat de la multiplication scalaire du point P par l'entier d, P et Q étant utilisés comme des clés cryptographiques publiques, - q est l'ordre du point P, - k est un nombre aléatoire tiré entre 1 et q-1, - les flèches -> et <- désignent la transmission ou la réception de données. Contrairement à l'état de l'art, l'opération de double multiplication scalaire permettant d'obtenir r (puis I,') n'est pas effectuée dans le dispositif sécurisé mais dans le dispositif de calcul. La puissance de calcul du dispositif de calcul est avantageusement exploitée pour mettre en oeuvre cette opération présentant un coût calculatoire très important (près de 90% du coût des calculs du mécanisme de vérification). De plus, les données transmises (deuxièmes données) au dispositif de calcul pour effectuer cette opération sont masquées (étape 430). Ainsi, le dispositif de calcul réalise les calculs « à l'aveugle ». La validité de la signature revenant toujours au dispositif sécurisé, le processus de vérification en est d'autant plus difficile à détourner. Par conséquent, la sécurité des données n'est pas compromise par la délégation de ce calcul au dispositif de calcul.A non-limiting example of pseudo code for the implementation of this embodiment is given below: Signatory device Secure device Calculation device r = [k] P li = random (21 ° g 2 (q)) 1 {0} h = hash (m) s = k-1 (h + rd) mod (q) m, s, r-> -> m, s, rh = hash (m) hi = li * h mod (q) si = li * s mod (q) ri = ii * r mod (q) hb sb ri -> -> hb sb ri r = [5i4 hiy + [siin li '= ri * ri mod (q) Ij' + _ <- I (h == ii, In this example of pseudo code: - d is a secret key (or private cryptographic key), - P and Q are points of an elliptic curve satisfying the relation Q = [d] P, in other words the point Q is the result of the scalar multiplication of the point P by the integer d, P and Q being used as public cryptographic keys, - q is the order of the point P, - k is a random number pulled between 1 and q-1, - the arrows -> and <- indicate the transmission or reception of data.In contrast to the state of the art, the double multiplication operation scalar action to obtain r (then I, ') is not performed in the secure device but in the computing device. The calculation power of the computing device is advantageously exploited to implement this operation having a very high computational cost (nearly 90% of the cost of the calculations of the verification mechanism). In addition, the data transmitted (second data) to the computing device to perform this operation are masked (step 430). Thus, the computing device performs the calculations "blind". The validity of the signature always returning to the secure device, the verification process is all the more difficult to divert. Therefore, the security of the data is not compromised by the delegation of this calculation to the computing device.

Ces modes de réalisation peuvent facilement être implémentés avec les signatures obtenues par des algorithmes classiques de fourniture de signature comme l'ECDSA. En effet, seul le mécanisme de vérification de la signature est modifié. En pratique, afin de garantir un niveau optimal de sécurisation, le nombre aléatoire lest avantageusement de la taille du module q, typiquement 192 bits. En référence à la Figure 5, des étapes d'un procédé de vérification dans le cadre d'une signature de type RSA sont décrites. Le procédé peut être mis en oeuvre par exemple dans l'un des systèmes décrits précédemment, entre un dispositif signataire, un dispositif sécurisé et un dispositif de calcul.These embodiments can easily be implemented with signatures obtained by conventional signature delivery algorithms such as ECDSA. Indeed, only the verification mechanism of the signature is modified. In practice, in order to guarantee an optimal level of security, the random number is advantageously of the size of the module q, typically 192 bits. With reference to FIG. 5, steps of a verification method in the context of an RSA-type signature are described. The method can be implemented for example in one of the systems described above, between a signatory device, a secure device and a computing device.

Ici, la procédure de signature par le dispositif signataire est modifiée. En effet, une fonction cryptographique h est appliquée au message m que le dispositif signataire entreprend de signer. Par exemple, la fonction cryptographique peut être une fonction de hachage (e.g. SHA-1). Le résultat h(m), aussi appelé condensat ou haché (ou hash en anglais), est ensuite masqué (étape 500) à l'aide d'une donnée de masquage I, (par exemple un nombre aléatoire généré par le dispositif signataire) au cours d'une addition modulaire par exemple. En pratique, afin de garantir un niveau optimal de sécurisation, le nombre aléatoire I, comporte avantageusement le même nombre d'octets que le module utilisé dans les calculs de vérification RSA.Here, the signing procedure by the signatory device is modified. Indeed, a cryptographic function h is applied to the message m that the signatory device undertakes to sign. For example, the cryptographic function may be a hash function (e.g., SHA-1). The result h (m), also called condensate or hash in English, is then masked (step 500) using a masking data I, (for example a random number generated by the signatory device) during a modular addition for example. In practice, in order to guarantee an optimal level of security, the random number I advantageously comprises the same number of bytes as the module used in the RSA verification calculations.

Le dispositif signataire génère ensuite (étape 510) une signature S, à partir de la valeur masquée h(m) obtenue à l'étape 500. Par exemple, cette étape peut mettre en oeuvre une exponentiation modulaire, de façon similaire à l'algorithme de signature RSA. Ainsi, cette étape comporte par exemple la mise en oeuvre la fonction de signature RSA sur la signature S.The signatory device then generates (step 510) a signature S, from the masked value h (m) obtained in step 500. For example, this step can implement a modular exponentiation, similar to the algorithm RSA signature. Thus, this step comprises for example the implementation of the RSA signature function on the signature S.

Le dispositif sécurisé reçoit, via un canal de communication sécurisé avec le dispositif signataire, le message m avec la signature générée S, ainsi que la donnée de masquage I,. L'ensemble de ces données reçues sont désignées par 'premières données'. Au cours d'une étape 520, le dispositif sécurisé transmet la signature S, (désignée par les 'deuxièmes données') au dispositif de calcul. Le dispositif de calcul utilise la signature reçue pour obtenir un résultat intermédiaire h,' au cours d'une étape 530. Ici, les calculs réalisés par le dispositif de calcul à l'étape 530 comprennent une exponentiation modulaire visant à retrouver la valeur masquée h(m), auquel le dispositif signataire a appliqué une exponentiation modulaire à l'étape 510. Les calculs effectués par le dispositif de calcul correspondent à la mise en oeuvre classique de la fonction de vérification selon l'algorithme RSA, mis à part qu'ils sont effectués sur des données masquées, à savoir ici sur la signature S. Au cours d'une étape 540, une fonction cryptographique (par exemple la même qui est utilisée dans le calcul de la signature par le signataire) est appliquée au message m reçu par le dispositif sécurisé.The secure device receives, via a secure communication channel with the signatory device, the message m with the generated signature S, as well as the masking data I ,. All of these received data are designated by 'first data'. During a step 520, the secure device transmits the signature S, (designated by the 'second data') to the computing device. The computing device uses the received signature to obtain an intermediate result h 'in a step 530. Here, the calculations made by the computing device in step 530 include a modular exponentiation to recover the masked value h. (m), to which the signatory device has applied a modular exponentiation in step 510. The calculations performed by the computing device correspond to the conventional implementation of the verification function according to the RSA algorithm, except that they are performed on masked data, namely here on the signature S. During a step 540, a cryptographic function (for example the same which is used in the calculation of the signature by the signer) is applied to the message m received by the secure device.

Le résultat h(m) de cette fonction cryptographique h, est ensuite masqué au cours d'une seconde étape de masquage 550, similaire à la première étape de masquage 500, à partir de la donnée de masquage I, reçue par le dispositif sécurisé. Autrement dit, cette étape consiste à masquer indirectement (via la fonction h) une partie des premières données, c'est-à- dire ici le message m. Le dispositif sécurisé reçoit (étape 560) le résultat intermédiaire h,' de la part du dispositif de calcul en vue d'être utilisé pour la vérification de la validité de la signature numérique précitée. Cette étape de réception peut indifféremment avoir lieu avant, pendant ou après l'une des étapes 540 ou 550.The result h (m) of this cryptographic function h, is then masked during a second masking step 550, similar to the first masking step 500, from the masking data I, received by the secure device. In other words, this step consists in indirectly hiding (via the function h) a part of the first data, that is to say here the message m. The secure device receives (step 560) the intermediate result h 'from the computing device for use in verifying the validity of the aforementioned digital signature. This reception step may equally well take place before, during or after one of the steps 540 or 550.

Au cours d'une étape 570 (et après l'étape de réception 560), le dispositif sécurisé confronte le résultat intermédiaire h,' au résultat de la seconde étape de masquage h,. Si le résultat intermédiaire h,' et la valeur masquée h, correspondent, la signature numérique est considérée comme valide par le dispositif sécurisé. En conséquence, le message associé est certifié et peut être traité par le dispositif sécurisé.During a step 570 (and after the receiving step 560), the secure device confronts the intermediate result h, 'with the result of the second masking step h ,. If the intermediate result h, 'and the masked value h, correspond, the digital signature is considered valid by the secure device. As a result, the associated message is certified and can be processed by the secure device.

Au contraire, lorsque le résultat intermédiaire h,' et la valeur masquée h, ne correspondent pas, la signature numérique n'est pas validée et le message n'est alors pas certifié. Un exemple non limitatif de pseudo code pour l'implémentation de ces modes de réalisation est donné ci-dessous : Dispositif signataire Dispositif sécurisé Dispositif de calcul Ii = random(210g2(N))1{0} -> ni, Sb Ii Si -> -> Si hi' = Sie mod(N) h = hash(m) h = hash(m) hi = li + h mod(N) hi' <- <- h( hi = li + h mod(N) hi == hi' Si= hid mod(N) m, Sb Ii -> Dans cet exemple de pseudo code : N est un le produit de deux nombres premiers aléatoires p et q, e est une clé publique, d est une clé secrète, correspondant typiquement à l'inverse modulaire de e modulo le plus petit commun multiple (PPCM) de p-1 et q-1, - les flèches -> et <- désignent la transmission ou la réception de données.On the contrary, when the intermediate result h, 'and the masked value h, do not match, the digital signature is not validated and the message is not then certified. A non-limiting example of a pseudo code for the implementation of these embodiments is given below: Signatory device Secure device Calculation device Ii = random (210g2 (N)) 1 {0} -> ni, Sb Ii Si - > -> If hi '= Sie mod (N) h = hash (m) h = hash (m) hi = li + h mod (N) hi' <- <- h (hi = li + h mod (N) hi == hi 'If = hid mod (N) m, Sb Ii -> In this pseudo code example: N is a product of two random primes p and q, e is a public key, d is a secret key , typically corresponding to the modular inverse of e modulo the least common multiple (PPCM) of p-1 and q-1, - the arrows -> and <- denote the transmission or reception of data.

Contrairement à l'état de l'art, l'opération d'exponentiation modulaire mise en jeu dans le processus de vérification de la signature n'est pas effectuée dans le dispositif sécurisé mais dans le dispositif de calcul. La puissance de calcul du dispositif de calcul est avantageusement exploitée pour mettre en oeuvre cette opération présentant un coût calculatoire très important (près de 90% du coût des calculs du mécanisme de vérification). De plus, les données transmises (deuxièmes données) au dispositif de calcul pour effectuer cette opération ne sont pas « en clair » (autrement dit, la signature transmise à l'étape 520 ne dépend pas directement de la valeur h(m), mais de la valeur masquée h,) dans le dispositif signataire (étape 500). Ainsi, les calculs sont réalisés « à l'aveugle » pour le dispositif de calcul. La validité de la signature revenant toujours au dispositif sécurisé, le processus de vérification en est d'autant plus difficile à détourner. Par conséquent, la sécurité des données n'est pas mise en danger par la délégation de ce calcul au dispositif de calcul.Unlike the state of the art, the modular exponentiation operation involved in the signature verification process is not performed in the secure device but in the computing device. The calculation power of the computing device is advantageously exploited to implement this operation having a very high computational cost (nearly 90% of the cost of the calculations of the verification mechanism). In addition, the transmitted data (second data) to the computing device for performing this operation are not "in the clear" (that is, the signature transmitted in step 520 does not depend directly on the value h (m), but the masked value h,) in the signatory device (step 500). Thus, the calculations are made "blind" for the computing device. The validity of the signature always returning to the secure device, the verification process is all the more difficult to divert. Therefore, the security of the data is not endangered by the delegation of this calculation to the computing device.

Les exemples de mise en oeuvre décrits ci-dessus peuvent être adaptés lorsque le dispositif de sécurité et le dispositif signataire partagent un secret. En référence à la Figure 6, des étapes d'un procédé de vérification de type ECDSA sont décrites dans le cas d'un partage de secret entre le dispositif de sécurité et le dispositif signataire. Le procédé peut être mis en oeuvre par exemple dans l'un des systèmes décrits précédemment, entre un dispositif signataire, un dispositif sécurisé et un dispositif de calcul. Ici, le dispositif signataire et le dispositif sécurisé partagent une donnée secrète t, par exemple une clé cryptographique. Ce secret t leur permet de masquer les données échangées (notamment les données de signature).The implementation examples described above may be adapted when the security device and the signing device share a secret. With reference to FIG. 6, steps of an ECDSA type verification method are described in the case of a secret sharing between the security device and the signing device. The method can be implemented for example in one of the systems described above, between a signatory device, a secure device and a computing device. Here, the signatory device and the secure device share a secret data t, for example a cryptographic key. This secret t allows them to hide the data exchanged (including the signature data).

Le secret partagé t peut être par exemple utilisé en entrée d'un générateur de nombre pseudo-aléatoire (en anglais PRNG pour « Pseudo Random Number Generator ») afin d'obtenir des valeurs de masquage, e.g. I, = PRNG(t)', = PRNG(t)1-1. Au cours d'une étape 600, le dispositif signataire génère une signature (s, r) (désignée par 'premières données') à partir d'un message m, selon l'algorithme de génération de signature ECDSA. Plus précisément, une fonction cryptographique, par exemple de hachage est appliquée au message m pour obtenir un haché qui sera utilisé pour le calcul de la signature, notamment de l'élément s de la signature. Le dispositif signataire réalise un masquage (étape 610) des premières données (i.e. de la signature), faisant intervenir les données pseudo-aléatoires précitées I, = PRNG(t)' et = PRNG(t)1-1. Au cours d'une étape 620, le dispositif sécurisé reçoit le message m avec la signature masquée (s' r,).The shared secret t can for example be used at the input of a pseudo-random number generator (in English PRNG for "Pseudo Random Number Generator") in order to obtain masking values, eg I, = PRNG (t). , = PRNG (t) 1-1. During a step 600, the signing device generates a signature (s, r) (denoted by 'first data') from a message m, according to the ECDSA signature generation algorithm. More precisely, a cryptographic function, for example a hash function, is applied to the message m to obtain a hash that will be used for the calculation of the signature, in particular of the element s of the signature. The signatory device masks (step 610) the first data (i.e. the signature), involving the aforementioned pseudo-random data I, = PRNG (t) 'and = PRNG (t) 1-1. During a step 620, the secure device receives the message m with the masked signature (s' r,).

Au cours d'une étape 630, une fonction cryptographique h est appliquée au message m reçu à l'étape 620, par le dispositif sécurisé, de sorte que la valeur obtenue h(m) ne permet pas de remonter au message m. La fonction cryptographique h est par exemple une fonction de hachage.During a step 630, a cryptographic function h is applied to the message m received in step 620, by the secure device, so that the value obtained h (m) does not go back to the message m. The cryptographic function h is for example a hash function.

Au cours d'une étape 640, le dispositif sécurisé effectue un premier masquage de la valeur h(m) ainsi qu'un deuxième masquage de la valeur masquée h(m) obtenue, avec des valeurs pseudo aléatoires basées sur le secret partagé (utilisées à l'étape de masquage 610). En pratique, le premier masquage peut comprendre une addition modulaire et le deuxième masquage peut comprendre une multiplication modulaire.During a step 640, the secure device first masks the value h (m) and a second mask of the masked value h (m) obtained, with pseudo random values based on the shared secret (used at the masking step 610). In practice, the first masking may comprise a modular addition and the second masking may comprise a modular multiplication.

Au cours d'une étape 650, la valeur masquée h' obtenue à l'issue de l'étape 640 est transmise avec la signature masquée (s' r,) reçue par le dispositif sécurisé à l'étape 620 au dispositif de calcul. Celui-ci utilise les valeurs masquées reçues (`deuxièmes données') pour obtenir un résultat intermédiaire I,' au cours d'une étape de calcul 660. Dans ce mode de réalisation, les calculs réalisés par le dispositif de calcul visent à retrouver un des nombres pseudo aléatoires I, utilisés comme données de masquage lors des étapes 610 et 640. Par exemple, ces calculs peuvent comprendre une double multiplication scalaire à partir des deuxièmes données transmises par le dispositif sécurisé (similaire aux calculs de vérification standards selon l'algorithme ECDSA), puis une multiplication scalaire utilisant le résultat de l'opération précédente. Le résultat intermédiaire I,' est ensuite transmis au dispositif sécurisé (étape de réception 670) pour être utilisé pour la vérification de la validité de la signature numérique précitée. Pour ce faire, le dispositif sécurisé compare le résultat intermédiaire I,' avec un des nombres aléatoires utilisés pour le masquage I. Lorsque cette comparaison est positive, c'est-à-dire si le résultat intermédiaire I,' et le nombre aléatoire I, correspondent, la signature numérique est considérée comme valide par le dispositif sécurisé. En conséquence, le message afférant est certifié et peut être traité sans compromettre la sécurité du dispositif sécurisé.During a step 650, the masked value h 'obtained at the end of step 640 is transmitted with the masked signature (s',) received by the secure device in step 620 to the computing device. This uses the masked values received (`second data ') to obtain an intermediate result I,' during a calculation step 660. In this embodiment, the calculations carried out by the computing device are aimed at finding a pseudo random numbers I, used as masking data during steps 610 and 640. For example, these calculations may comprise a double scalar multiplication from the second data transmitted by the secure device (similar to the standard verification calculations according to the algorithm ECDSA), then a scalar multiplication using the result of the previous operation. The intermediate result I, 'is then transmitted to the secure device (receive step 670) to be used for checking the validity of the aforementioned digital signature. To do this, the secure device compares the intermediate result I 'with one of the random numbers used for the masking I. When this comparison is positive, that is to say if the intermediate result I' and the random number I , match, the digital signature is considered valid by the secure device. As a result, the afferent message is certified and can be processed without compromising the security of the secure device.

Au contraire, lorsque le résultat intermédiaire I,' et le nombre aléatoire I, ne correspondent pas, la signature numérique n'est pas validée et le message n'est pas certifié. Il représente potentiellement un danger pour la sécurité puisque sa source n'est pas authentifiée par le dispositif sécurisé. Un exemple non limitatif de pseudo code pour la mise en oeuvre de ces modes de réalisation est donné ci-dessous : Dispositif signataire Dispositif sécurisé Dispositif de calcul h-i = PRNG(tri Ii-i = PRNG(trl I = PRNG(01 li = PRNG(tf r= [k]P h = hash(m) hi = h + li_i mod(q) s = k-1(hi + rd) mod(q) si = h * s mod(q) ri = h *r mod(q) m, si, ri -> -> m, si, ri h = hash(m) hi = h + li_i mod(q) = hi * h mod(q) s' r,-> -> h', s' r, r = [sil hiiy + [sil rin I(= ri * ri mod(q) i <- ii' h == ii' Dans cet exemple de pseudo code : - d est une clé secrète, - P et Q sont des points vérifiant la relation Q = [d]P, autrement dit le point Q est le résultat de la multiplication scalaire du point P par l'entier d, P et Q étant utilisés comme des clés cryptographiques publiques, - q est l'ordre du point P, - k est un nombre aléatoire tiré entre 1 et q-1, - les flèches -> et <- désignent la transmission ou la réception de données. Contrairement à l'état de l'art, l'opération de double multiplication scalaire n'est pas effectuée dans le dispositif sécurisé mais dans le dispositif de calcul. La puissance de calcul du dispositif de calcul est avantageusement exploitée pour mettre en oeuvre cette opération présentant un coût calculatoire très important (près de 90% du coût des calculs du mécanisme de vérification). De plus, les données transmises (deuxièmes données h', s' r,) au dispositif de calcul pour effectuer cette opération sont masquées. Ainsi, les calculs sont réalisés « à l'aveugle » pour le dispositif de calcul. La validité de la signature revenant toujours au dispositif sécurisé, le processus de vérification en est d'autant plus difficile à détourner. Par conséquent, la sécurité des données n'est pas compromise par la délégation de ce calcul au dispositif de calcul.On the contrary, when the intermediate result I 'and the random number I do not match, the digital signature is not validated and the message is not certified. It represents a potential security risk since its source is not authenticated by the secure device. A non-limiting example of pseudo code for the implementation of these embodiments is given below: Signatory device Secure device Calculation device hi = PRNG (tri Ii-i = PRNG (trl I = PRNG (01 li = PRNG (tf r = [k] P h = hash (m) hi = h + li_i mod (q) s = k-1 (hi + rd) mod (q) if = h * s mod (q) ri = h * r mod (q) m, si, ri -> -> m, si, ri h = hash (m) hi = h + li_i mod (q) = hi * h mod (q) s' r, -> -> h ', s', r = [sil hiy + [sil rin I (= ri * ri mod (q) i <- ii 'h == ii' In this pseudo code example: - d is a secret key, - P and Q are points verifying the relation Q = [d] P, in other words the point Q is the result of the scalar multiplication of the point P by the integer d, P and Q being used as public cryptographic keys, - q is the order of the point P, - k is a random number drawn between 1 and q-1, - the arrows -> and <- denote the transmission or reception of data, unlike the state of the art, the double m operation scalar ultiplication is not performed in the secure device but in the computing device. The calculation power of the computing device is advantageously exploited to implement this operation having a very high computational cost (nearly 90% of the cost of the calculations of the verification mechanism). In addition, the data transmitted (second data h ', s' r,) to the computing device to perform this operation are hidden. Thus, the calculations are made "blind" for the computing device. The validity of the signature always returning to the secure device, the verification process is all the more difficult to divert. Therefore, the security of the data is not compromised by the delegation of this calculation to the computing device.

De plus, dans ici, la signature (s, r) est reçue déjà masquée par le dispositif sécurisé. Le dispositif n'a donc pas de masquage de la signature à effectuer lui-même, il lui suffit de transmettre les éléments de signature masqués directement au dispositif de calcul.In addition, in here, the signature (s, r) is received already masked by the secure device. The device therefore has no masking of the signature to perform itself, it is sufficient to transmit the masked signature elements directly to the computing device.

En pratique, afin de garantir un niveau optimal de sécurisation, les nombres pseudo aléatoires I, et Li comptent avantageusement le même nombre de bits que le module q, typiquement 192 bits. En référence à la Figure 7, des étapes d'un procédé de vérification de type RSA sont décrite dans le contexte d'un secret partagé entre le dispositif sécurisé et le dispositif signataire. Le procédé peut être mis en oeuvre par exemple dans l'un des systèmes décrits précédemment, entre un dispositif signataire, un dispositif sécurisé et un dispositif de calcul. Il est supposé ici que le dispositif signataire et le dispositif sécurisé ne communiquent pas via un canal sécurisé.In practice, in order to guarantee an optimal level of security, the pseudo-random numbers I, and Li advantageously count the same number of bits as the module q, typically 192 bits. Referring to Figure 7, steps of an RSA type verification method are described in the context of a shared secret between the secure device and the signer device. The method can be implemented for example in one of the systems described above, between a signatory device, a secure device and a computing device. It is assumed here that the signatory device and the secure device do not communicate via a secure channel.

Le dispositif signataire et le dispositif sécurisé partagent une donnée secrète t, par exemple une clé. Ce secret t leur permet de masquer/démasquer les données échangées (ici, le message m). Le secret partagé t peut être par exemple utilisé en entrée d'un générateur de nombre pseudo-aléatoire (en anglais PRNG pour « Pseudo Random Number Generator ») afin d'obtenir une valeur de masquage, e.g. I, = PRNG(t)'. Conformément à des algorithmes de signature classique, comme par exemple l'algorithme RSA, une signature S est générée (étape 700) par le dispositif signataire à partir du message m. Selon RSA, la signature S est obtenue par une exponentiation modulaire de la valeur d'un condensat ou haché (hash) du message m. Le message m et la signature S constituent ici les 'premières données'. Ici, une partie des premières données constituée par le message m est masquée au cours d'une étape 710, en utilisant un nombre pseudo aléatoire I, obtenu à partir du secret partagé t précité. En pratique, afin de garantir un niveau optimal de sécurisation, le nombre pseudo aléatoire I, comporte avantageusement le même nombre d'octets que le module N utilisé pour les calculs de vérification. Au cours d'une étape 720, le dispositif sécurisé reçoit ensuite la signature S et le message masqué m' et il transmet la signature S (les 'deuxièmes données') au dispositif de calcul à l'étape 730. Le dispositif de calcul utilise la signature reçue pour obtenir (étape 740) un résultat intermédiaire h'. Au cours d'une étape 750, le dispositif sécurisé démasque le message masqué m, reçu à l'étape 720, en utilisant le nombre pseudo aléatoire I, obtenu à partir du secret partagé t précité. Ainsi, le secret partagé entre le dispositif signataire et le dispositif sécurisé a permis d'assurer la sécurité du message lors de sa transmission par une voie non sécurisée.The signatory device and the secure device share a secret data t, for example a key. This secret t allows them to hide / unmask the data exchanged (here, the message m). The shared secret t can for example be used at the input of a pseudo-random number generator (in English PRNG for "Pseudo Random Number Generator") in order to obtain a masking value, eg I, = PRNG (t). . In accordance with conventional signature algorithms, such as for example the RSA algorithm, a signature S is generated (step 700) by the signatory device from the message m. According to RSA, the signature S is obtained by a modular exponentiation of the value of a condensate or hash of the message m. The message m and the signature S constitute here the 'first data'. Here, part of the first data constituted by the message m is masked during a step 710, using a pseudo-random number I, obtained from the aforementioned shared secret t. In practice, in order to guarantee an optimal level of security, the pseudo-random number I advantageously comprises the same number of bytes as the module N used for the verification calculations. During a step 720, the secure device then receives the signature S and the masked message m 'and transmits the signature S (the' second data ') to the computing device in step 730. The computing device uses the signature received to obtain (step 740) an intermediate result h '. During a step 750, the secure device unmasks the masked message m, received in step 720, using the pseudo-random number I, obtained from the aforementioned shared secret t. Thus, the shared secret between the signatory device and the secure device has ensured the security of the message when it is transmitted by an unsecured channel.

Au cours d'une étape 760, une fonction cryptographique h (e.g. une fonction de hachage) est appliquée au message m démasqué à l'étape 750 par le dispositif sécurisé. Au cours d'une étape 770, le dispositif sécurisé reçoit le résultat intermédiaire de calcul h' qui sera utilisé pour la vérification de la validité de la signature numérique précitée. Il est à noter que dans ce mode de réalisation, les calculs réalisés par le dispositif de calcul comprennent une exponentiation modulaire visant à retrouver la valeur h(m). Cette étape de réception peut indifféremment avoir lieu avant, pendant ou après l'une des étapes 750 ou 760.During a step 760, a cryptographic function h (e.g. a hash function) is applied to the message m unmasked in step 750 by the secure device. During a step 770, the secure device receives the intermediate calculation result h 'which will be used to verify the validity of the aforementioned digital signature. It should be noted that in this embodiment, the calculations carried out by the computing device comprise a modular exponentiation aimed at recovering the value h (m). This reception step may equally take place before, during or after one of steps 750 or 760.

Au cours d'une étape 780 (et après l'étape de réception 770), le dispositif sécurisé confronte le résultat intermédiaire h' à la valeur h(m) calculée à l'étape 760. Si le résultat intermédiaire h' et la valeur h(m) correspondent, la signature numérique est considérée comme valide par le dispositif sécurisé. En conséquence, le message associé est certifié et peut être traité par le dispositif sécurisé.During a step 780 (and after the reception step 770), the secure device confronts the intermediate result h 'with the value h (m) calculated in step 760. If the intermediate result h' and the value h (m) match, the digital signature is considered valid by the secure device. As a result, the associated message is certified and can be processed by the secure device.

Au contraire, lorsque le résultat intermédiaire h' et la valeur h(m) ne correspondent pas, la signature numérique n'est pas validée et le message n'est alors pas certifié. Un exemple non limitatif de pseudo code pour la mise en oeuvre de ces modes de réalisation est donné ci-dessous : Dispositif signataire Dispositif sécurisé Dispositif de calcul I = PRNG(t)I li = PRNG(t)I rni=melj h = hash(m) S = hd mod(N) -> m, S m, S -> m=mieli h = hash(m) S -> -> s h' = Se mod(N) h == h' h' <- <- h' Dans cet exemple de pseudo code : - N est un le produit de deux nombres premiers, - d est l'exposant privé, e est l'exposant public, le signe ED désigne une opération de masquage ou de démasquage, les flèches -> et <- désignent la transmission ou la réception de données.On the contrary, when the intermediate result h 'and the value h (m) do not match, the digital signature is not validated and the message is not certified. A non-limiting example of a pseudo code for the implementation of these embodiments is given below: Signatory device Secure device Calculation device I = PRNG (t) I li = PRNG (t) I rni = melj h = hash (m) S = hd mod (N) -> m, S m, S -> m = mieli h = hash (m) S -> -> sh '= Se mod (N) h == h' h '< - <- h 'In this example of pseudo code: - N is a product of two prime numbers, - d is the private exponent, e is the public exponent, the sign ED denotes a masking or unmasking operation, arrows -> and <- denote the transmission or reception of data.

Contrairement à l'état de l'art, l'opération d'exponentiation modulaire mise en jeu dans le processus de vérification de la signature n'est pas effectuée dans le dispositif sécurisé mais dans le dispositif de calcul. La puissance de calcul du dispositif de calcul est avantageusement exploitée pour mettre en oeuvre cette opération présentant un coût calculatoire très important (près de 90% du coût des calculs du mécanisme de vérification).Unlike the state of the art, the modular exponentiation operation involved in the signature verification process is not performed in the secure device but in the computing device. The calculation power of the computing device is advantageously exploited to implement this operation having a very high computational cost (nearly 90% of the cost of the calculations of the verification mechanism).

De manière générale, l'ordre de grandeur du rapport entre la puissance du dispositif sécurisé et la puissance du dispositif de calcul peut être, par exemple, d'environ 1/200. La présente invention a été décrite et illustrée dans la présente description détaillée en référence aux figures jointes. Toutefois la présente invention ne se limite pas aux formes de réalisation présentées. D'autres variantes, modes de réalisation et combinaisons de caractéristiques peuvent être déduits et mis en oeuvre par la personne du métier à la lecture de la présente description et des figures annexées. D'autres modes de réalisations sont bien entendu envisageables. Par exemple, l'invention couvre aussi une combinaison des modes de réalisation décrits. Par exemple, l'invention couvre aussi les modes dans lesquels le message (de la part du signataire) est reçu masqué par le dispositif sécurisé et les données envoyées au dispositif de calcul sont également masquées. Dans les revendications, le terme "comporter" n'exclut pas d'autres éléments ou d'autres étapes. L'article indéfini « un » n'exclut pas le pluriel. Un seul processeur ou plusieurs autres unités peuvent être utilisées pour mettre en oeuvre l'invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes, n'exclut pas en effet la possibilité de les combiner. Les signes de référence ne sauraient être compris comme limitant la portée de l'invention.In general, the order of magnitude of the ratio between the power of the secure device and the power of the computing device can be, for example, about 1/200. The present invention has been described and illustrated in the present detailed description with reference to the accompanying figures. However, the present invention is not limited to the embodiments presented. Other variants, embodiments and combinations of features may be deduced and implemented by the person skilled in the art upon reading the present description and the appended figures. Other embodiments are of course conceivable. For example, the invention also covers a combination of the described embodiments. For example, the invention also covers the modes in which the message (on behalf of the signatory) is received masked by the secure device and the data sent to the computing device are also masked. In the claims, the term "include" does not exclude other elements or other steps. The indefinite article "one" does not exclude the plural. A single processor or several other units may be used to implement the invention. The various features presented and / or claimed can be advantageously combined. Their presence in the description or in different dependent claims does not exclude the possibility of combining them. The reference signs can not be understood as limiting the scope of the invention.

Claims (18)

REVENDICATIONS1. Procédé de vérification de la validité d'une signature numérique de message, comportant les étapes suivantes : - de détermination (300) de premières données de signature de message, - de transmission (320), à un dispositif de calcul, de deuxièmes données de calcul basées sur lesdites premières données de signature de message, - de réception (330), de la part dudit dispositif de calcul, d'un résultat intermédiaire de calcul sur les deuxièmes données, et - de vérification (340) de la validité de ladite signature à partir dudit résultat intermédiaire, caractérisé en ce que : - le procédé comporte en outre une étape de masquage (310), d'au moins une partie desdites premières données de signature de message, à partir d'au moins une donnée de masquage, et en ce que - ladite étape de vérification (340) fait intervenir ladite donnée de masquage.REVENDICATIONS1. A method of verifying the validity of a digital message signature, comprising the steps of: - determining (300) first message signature data, - transmitting (320), to a computing device, second data of computing based on said first message signature data, - receiving (330), from said computing device, an intermediate calculation result on the second data, and - checking (340) the validity of said signature from said intermediate result, characterized in that: the method further comprises a step of masking (310), at least a part of said first message signature data, from at least one masking data; , and in that - said verification step (340) involves said masking data. 2. Procédé de vérification selon la revendication 1, dans lequel ladite étape de vérification comprend : - une étape de démasquage (750) de ladite au moins une partie desdites premières données masquée au cours de ladite étape de masquage, - une étape d'application (760) d'une première fonction cryptographique au résultat de ladite étape de démasquage, et - une étape de comparaison (780) dudit résultat intermédiaire de calcul avec le résultat de l'application de ladite première fonction cryptographique.2. The verification method as claimed in claim 1, wherein said verification step comprises: a step of unmasking (750) said at least part of said first masked data during said masking step, a step of applying (760) a first cryptographic function to the result of said unmasking step, and - a step of comparing (780) said intermediate calculation result with the result of the application of said first cryptographic function. 3. Procédé de vérification selon la revendication 1, dans lequel ladite étape de vérification comprend : - ladite étape de masquage, laquelle comprend l'application (540) d'une deuxième fonction cryptographique à au moins une partie desdites premières données de signature de message, et laquelle comprend en outre le masquage (550) du résultat de l'application de ladite deuxième fonction cryptographique, à partir de ladite donnée de masquage, et une étape de comparaison (570) dudit résultat intermédiaire de calcul avec le résultat du masquage.The verification method of claim 1, wherein said verifying step comprises: said masking step, which comprises applying (540) a second cryptographic function to at least a portion of said first message signature data and which further comprises masking (550) the result of applying said second cryptographic function, from said masking data, and a step of comparing (570) said intermediate calculation result with the result of the masking. 4. Procédé de vérification selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit résultat intermédiaire de calcul est obtenu au moins à partir d'une opération d'exponentiation modulaire sur lesdites deuxièmes données.4. Verification method according to any one of claims 1 to 3, characterized in that said intermediate calculation result is obtained at least from a modular exponentiation operation on said second data. 5. Procédé de vérification selon la revendication 1, dans lequel lesdites deuxièmes données de calcul transmises au dispositif de calcul au cours de l'étape de transmission (440) correspondent au résultat de ladite étape de masquage (430).The verification method according to claim 1, wherein said second calculation data transmitted to the computing device during the transmission step (440) corresponds to the result of said masking step (430). 6. Procédé de vérification selon la revendication 1 ou la revendication 5, dans lequel ladite étape de vérification comprend une étape de comparaison (470, 680) dudit résultat intermédiaire de calcul avec ladite donnée de masquage.The verification method of claim 1 or claim 5, wherein said verifying step comprises a step of comparing (470, 680) said computational intermediate result with said masking data. 7. Procédé de vérification selon la revendication 6, mis en oeuvre par un dispositif sécurisé dont la capacité de calcul est plus faible que la capacité de calcul dudit dispositif de calcul.7. The verification method according to claim 6, implemented by a secure device whose computation capacity is lower than the computing capacity of said computing device. 8. Procédé de vérification selon l'une quelconque des revendications 1 à 7, caractérisé en ce que ledit résultat intermédiaire de calcul est obtenu au moins à partir d'au moins une multiplication scalaire sur lesdites deuxièmes données.8. Verification method according to any one of claims 1 to 7, characterized in that said intermediate calculation result is obtained at least from at least one scalar multiplication on said second data. 9. Procédé de vérification selon l'une quelconque des revendications 1 à 8, dans lequel ladite étape de détermination comprend la réception (410) desdites premières données de signature de message.The verification method of any one of claims 1 to 8, wherein said determining step comprises receiving (410) said first message signature data. 10. Procédé de vérification selon l'une quelconque des revendications 1 à 9, dans lequel ladite au moins une partie desdites premières données de signature de message masquée au cours de l'étape de masquage sont reçues (620) par un dispositif sécurisé dont la capacité de calcul est plus faible que la capacité de calcul dudit dispositif de calcul, et dans lequel les étapes de transmission (650) de deuxièmes données, de réception (670) d'un résultat intermédiaire et de vérification (680) de la validité de la signature sont mises en oeuvre dans ledit dispositif sécurisé.The verification method according to any one of claims 1 to 9, wherein said at least a part of said first masked message signature data during the masking step is received (620) by a secure device whose computing capacity is lower than the computing capacity of said computing device, and wherein the steps of transmitting (650) second data, receiving (670) an intermediate result and verifying (680) the validity of the signature are implemented in said secure device. 11. Dispositif (14a, 14b) pour la vérification de la validité d'une signature numérique de message, comportant : - un module de réception de premières données de signature de message, - un module de transmission, à un dispositif de calcul (12a, 12b), de deuxièmes données de calcul basées sur lesdites premières données de signature de message, - un module de réception, de la part dudit dispositif de calcul (12a, 12b), d'un résultat intermédiaire de calcul sur les deuxièmes données, et - un module de vérification de la validité de ladite signature à partir dudit résultat intermédiaire, caractérisé en ce que :- au moins une partie desdites premières données de signature de message sont masquées à partir d'au moins une donnée de masquage, et en ce que - ledit module de vérification utilise ladite donnée de masquage.11. Device (14a, 14b) for verifying the validity of a digital message signature, comprising: - a module for receiving first message signature data, - a transmission module, for a computing device (12a , 12b), second calculation data based on said first message signature data, - a receiving module, from said computing device (12a, 12b), of an intermediate calculation result on the second data, and a module for verifying the validity of said signature from said intermediate result, characterized in that: at least part of said first message signature data is masked from at least one masking data, and that - said verification module uses said masking data. 12. Dispositif selon la revendication 11, comprenant en outre un module de masquage de ladite au moins une partie desdites premières données de signature de message à partir de ladite au moins une donnée de masquage.The apparatus of claim 11, further comprising a masking module of said at least a portion of said first message signature data from said at least one masking data. 13. Système (10a, 10b, 14a, 14b) pour la vérification de la validité d'une signature numérique de message, comportant : - un module de détermination de premières données de signature de message, - un module de transmission, à un dispositif de calcul (12a, 12b), de deuxièmes données de calcul basées sur lesdites premières données de signature de message, - un module de réception, de la part dudit dispositif de calcul (12a, 12b), d'un résultat intermédiaire de calcul sur les deuxièmes données, et - un module de vérification de la validité de ladite signature à partir dudit résultat intermédiaire, caractérisé en ce que : - le dispositif comporte en outre un module de masquage, d'au moins une partie desdites premières données de signature de message, à partir d'au moins une donnée de masquage, et en ce que - ledit module de vérification utilise ladite donnée de masquage.13. System (10a, 10b, 14a, 14b) for verifying the validity of a digital message signature, comprising: - a module for determining first message signature data, - a transmission module, for a device calculation method (12a, 12b), second calculation data based on said first message signature data, - a receiving module, from said computing device (12a, 12b), an intermediate calculation result on the second data, and - a module for checking the validity of said signature from said intermediate result, characterized in that: - the device further comprises a masking module, at least a part of said first signature data of message, from at least one masking data, and in that - said verification module uses said masking data. 14. Système selon la revendication 13, comprenant un dispositif sécurisé (14a, 14b) et un dispositif signataire (10a, 10b), ledit dispositif signataire (10a, 10b) comprenant ledit module de détermination desdites premières données, et ledit dispositif sécurisé (14a, 14b) comprenant ledit module de transmission desdites deuxièmes données, ledit module de réception dudit résultat intermédiaire et ledit module de vérification dudit résultat intermédiaire.14. System according to claim 13, comprising a secure device (14a, 14b) and a signatory device (10a, 10b), said signatory device (10a, 10b) comprising said module for determining said first data, and said secure device (14a). , 14b) comprising said module for transmitting said second data, said module for receiving said intermediate result and said verification module for said intermediate result. 15. Système selon la revendication 14, dans lequel ledit dispositif signataire (10a, 10b) et ledit dispositif sécurisé (14a, 14b) communiquent via un canal sécurisé de communication.15. System according to claim 14, wherein said signatory device (10a, 10b) and said secure device (14a, 14b) communicate via a secure communication channel. 16. Système selon l'une quelconque des revendications 13 à 15, comprenant en outre ledit dispositif de calcul (12a, 12b).The system of any one of claims 13 to 15, further comprising said computing device (12a, 12b). 17. Système selon la revendication 16, dans lequel ledit dispositif de calcul (12a, 12b) comprend ledit dispositif sécurisé (14a, 14b).The system of claim 16, wherein said computing device (12a, 12b) comprises said secure device (14a, 14b). 18. Programme d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 10 lorsqu'il est chargé et exécuté par un processeur d'un dispositif de vérification de la validité d'une signature numérique de message.518. A computer program comprising instructions for carrying out a method according to any one of claims 1 to 10 when it is loaded and executed by a processor of a device for verifying the validity of a digital signature of message.5
FR1361482A 2013-11-21 2013-11-21 METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE Active FR3013477B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1361482A FR3013477B1 (en) 2013-11-21 2013-11-21 METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1361482A FR3013477B1 (en) 2013-11-21 2013-11-21 METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE

Publications (2)

Publication Number Publication Date
FR3013477A1 true FR3013477A1 (en) 2015-05-22
FR3013477B1 FR3013477B1 (en) 2017-06-09

Family

ID=50933200

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1361482A Active FR3013477B1 (en) 2013-11-21 2013-11-21 METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE

Country Status (1)

Country Link
FR (1) FR3013477B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003009522A1 (en) * 2001-07-18 2003-01-30 France Telecom Method of carrying out a cryptographic task using a public key

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003009522A1 (en) * 2001-07-18 2003-01-30 France Telecom Method of carrying out a cryptographic task using a public key

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Chapter 11: Digital Signatures ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1 October 1996 (1996-10-01), XP001525011, ISBN: 978-0-8493-8523-0, Retrieved from the Internet <URL:http://www.cacr.math.uwaterloo.ca/hac/> *
SUSAN HOHENBERGER ET AL KILLIAN J: "How to Securely Outsource Cryptographic Computations", 10 February 2005, THEORY OF CRYPTOGRAPHY : SECOND THEORY OF CRYPTOGRAPHY CONFERENCE, TCC 2005, CAMBRIDGE, MA, USA, FEBRUARY 10 - 12, 2005 ; PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE], BERLIN [U.A.] : SPRINGER, BERLIN, HEIDELBERG, PAGE(S) 264 - 282, ISBN: 978-3-540-24573-5, XP047029375 *

Also Published As

Publication number Publication date
FR3013477B1 (en) 2017-06-09

Similar Documents

Publication Publication Date Title
EP2256987B1 (en) Protection of a generation of prime numbers for the RSA algorithm
US10333718B2 (en) Method for the generation of a digital signature of a message, corresponding generation unit, electronic apparatus and computer program product
US20160294794A1 (en) Security System For Data Communications Including Key Management And Privacy
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
FR2986631A1 (en) DEVICE AND METHOD FOR GENERATING A MESSAGE AUTHENTICATION CODE
EP2345202A2 (en) Digital signature method in two steps
FR3015080A1 (en) INTEGRITY VERIFICATION OF PAIR OF CRYPTOGRAPHIC KEYS
EP2296086A1 (en) Protection of prime number generation against side-channel attacks
WO2016102833A1 (en) Secure electronic entity, electronic apparatus and method for verifying the integrity of data stored in such a secure electronic entity
JP2021100236A (en) Method, system, and non-transitory computer readable medium for secure key management
CN114553590A (en) Data transmission method and related equipment
EP3185468B1 (en) Data-transmission method, data-receiving method, corresponding devices and programs
EP3965361B1 (en) Data exchange between a client and a remote device, for example a secure module
FR2902252A1 (en) CRYPTOGRAPHIC SYSTEMS FOR ENCRYPTING INPUT DATA USING AN ADDRESS ASSOCIATED WITH INPUT DATA, ERROR DETECTION CIRCUITS, AND METHODS OF OPERATING THE SAME.
FR3005186A1 (en) PROJECT FOR VALIDATION OF A CRYPTOGRAPHIC PARAMETER, AND CORRESPONDING DEVICE
FR3013477A1 (en) METHOD AND SYSTEM FOR VERIFYING THE VALIDITY OF A DIGITAL MESSAGE SIGNATURE
FR3015076A1 (en) GENERATION OF CRYPTOGRAPHIC KEYS
FR3015079A1 (en) INTEGRITY VERIFICATION OF PAIR OF CRYPTOGRAPHIC KEYS
WO2019122679A1 (en) Cryptographic method for group signature
EP3100403B1 (en) Imbalanced montgomery ladder for resisting side-channel attacks
FR3143243A1 (en) MESSAGE SIGNATURE AND DECRYPTION SECURED BY DOUBLE RSA-CRT
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
Bagha et al. A rsa-biometric based user authentication scheme for smart homes using smartphones
WO2017009067A1 (en) Method of secure delegation of expensive calculations for public key encryption algorithms
WO2015132524A2 (en) Message generation for a cryptographic keys generation test

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

CA Change of address

Effective date: 20200218

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200218

CJ Change in legal form

Effective date: 20200218

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11