WO2005125085A2 - Chip card reader, system and method of performing a pairing operation on an elliptic curve - Google Patents

Chip card reader, system and method of performing a pairing operation on an elliptic curve Download PDF

Info

Publication number
WO2005125085A2
WO2005125085A2 PCT/EP2005/052654 EP2005052654W WO2005125085A2 WO 2005125085 A2 WO2005125085 A2 WO 2005125085A2 EP 2005052654 W EP2005052654 W EP 2005052654W WO 2005125085 A2 WO2005125085 A2 WO 2005125085A2
Authority
WO
WIPO (PCT)
Prior art keywords
secure module
points
module
result
secure
Prior art date
Application number
PCT/EP2005/052654
Other languages
French (fr)
Other versions
WO2005125085A3 (en
Inventor
Benoit Chevallier-Mames
David Naccache
Jean-Sébastien CORON
Marc Chancerel
Original Assignee
Gemplus
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 Gemplus filed Critical Gemplus
Publication of WO2005125085A2 publication Critical patent/WO2005125085A2/en
Publication of WO2005125085A3 publication Critical patent/WO2005125085A3/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1016Devices or methods for securing the PIN and other transaction-data, e.g. by encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Definitions

  • the invention relates to a cryptographic method implemented by a secure calculation module in a system also comprising a non-secure calculation module but having more material resources.
  • the invention is particularly advantageous for the implementation of cryptographic methods in a smart card associated with a reader, or more generally in any secure calculation module (for example a TMP module for "Trusted Module Platform") installed in a non-PC secure but with significant hardware resources, or even in a PC associated with a remote server.
  • a card is often required to implement complex cryptographic protocols before transmitting encrypted data to the card reader, which must not have access to the secret data.
  • identity-based encryption protocol the public key encryption protocol with keyword research
  • key exchange protocol between three users
  • short signature etc.
  • the points A, B that one seeks to couple are for example a key, public or private, and a message, to be encrypted or decrypted, within the framework of a cryptography protocol with asymmetric keys.
  • the invention aims to remedy this difficulty, to allow the use of complex and costly cryptographic protocols in a secure calculation module.
  • This object is achieved with a cryptographic method according to the invention implemented by a secure calculation module, and characterized in that, during the process, the secure module subcontracts the production of a coupling f of two points A, B of an elliptical curve, to an insecure calculation module having greater material resources, then the secure module checks the accuracy of the result provided by the unsecured module.
  • the essential idea of the invention is to subcontract to the non-secure module the execution of the most expensive operations on the elliptical curves, while verifying that the result provided by the non-secure module is exact.
  • non-secure module has much larger calculation means than the card, the implementation of the most complex cryptographic protocols becomes possible with the invention.
  • the secure module is limited to simple operations, requiring few resources and therefore quick to implement, such as for example operations of addition, multiplication, etc., as will be seen better in examples.
  • the secure module • masks the secret point or points by one or more random numbers to produce one or more hidden secret points, • sub- processes the non-secure module to carry out the coupling f from the hidden secret point or points (Al, Bl, etc.), the non-secure module producing an intermediate result (SI), • deduces the expected result S from the intermediate result (SI) and the random number (s) used to hide the secret point (s). • checks the accuracy of the expected result S.
  • the non-secure module never has access to any secret data manipulated during the process, all the secret data being masked by one or more random numbers.
  • the secure module to verify the result S provided by the non-secure module, the secure module: • subcontracts to the non-secure module the production of at least one additional coupling f from at minus a point Al obtained by linear combination of point A with a coefficient ri, the unsecured module producing at least one additional result, then • checks the consistency between the intermediate result previously supplied and the additional result (s) by linearly combining the intermediate result previously provided and the additional result (s).
  • This first embodiment will be favored in particular for the realization of any function f having properties of linearity or bilinearity. If the function f takes several input variables, it is possible to mask one or more of these input variables, by more or less complex linear combinations, depending on the level of security which it is desired to be able to guarantee. Thus, if one or more input variables of the function f are public data, it is not essential to hide them, which makes it possible to lighten the calculations performed by the secure module to verify the results provided by the module unsecured and determine the expected initial result. Conversely, if one or more input variables of the function f are secret data, we will use more or less complex linear combinations to hide them. These principles are detailed below in examples.
  • the first embodiment of the invention can be chosen for the realization of a coupling of two points A, B of an elliptical curve.
  • Two parameters are also used, namely two points generating the elliptical curve.
  • the coordinates of these points, as well as the value of the coupling of these two points ⁇ G, H> are stored in the secure module, for example during an initialization phase of the process.
  • This first variant may in particular be used when the points A, B are public data.
  • the fourth variant described above requires for the secure module the calculation of several modular inverses, when solving the system of three equations with three unknowns.
  • the secure module can subcontract the calculation of a modular inverse to the non-secure module, by proceeding as follows, for a number A for which the secure module must calculate the modular inverse.
  • This second embodiment is particularly advantageous for sub-contracted operations f whose inverse 1 / f is inexpensive to calculate for the secure module.
  • the secure module If in addition the number A must be masked from the non-secure module, then the secure module: • masks the integer A by multiplying it by a random number a, • subcontracts to the non-secure module the realization of the inversion of the number masked integer aA, • checks the accuracy of the intermediate result provided by the insecure module by multiplying the intermediate result l / (aA) by the integer A, • calculates the expected result 1 / A by multiplying the intermediate result l / ( aA) by the random number a.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Finance (AREA)
  • Algebra (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

The invention relates to a cryptographic method which is implemented by a secure calculation module. During the method, the secure module subcontracts a non-secure calculation module with greater physical resources to perform a pairing operation f on an elliptic curve, such as to produce a result S as a function of at least two points A, B of an elliptic curve, and subsequently the secure module verifies the accuracy of the result provided by the non-secure module. Points A, B can also be masked by one or more random numbers prior to transmission to the non-secure module. The invention can be used to perform operations involving the pairing of two points of an elliptic curve, inversions of integers or divisions of integers.

Description

PROCEDE DE REALISATION D'UNE OPERATION DE COUPLAGE SUR UNE COURBE ELLIPTIQUE. PAR UN SYSTEME COMPRENANT UNE CARTE A PUCE ET UN LECTEUR DE CARTE METHOD OF PERFORMING A COUPLING OPERATION ON AN ELLIPTICAL CURVE. BY A SYSTEM COMPRISING A CHIP CARD AND A CARD READER
L'invention concerne un procédé cryptographique mis en oeuvre par un module de calcul sécurisé dans un système comprenant également un module de calcul non sécurisé mais disposant de ressources matérielles plus importantes. L'invention est notamment intéressante pour la mise en oeuvre de procédés cryptographiques dans une carte à puce associée à un lecteur, ou plus généralement dans tout module de calcul sécurisé (par exemple un module TMP pour "Trusted Module Platform) installé dans un PC non sécurisé mais disposant de ressources matérielles importantes, ou même dans un PC associé à un serveur distant.The invention relates to a cryptographic method implemented by a secure calculation module in a system also comprising a non-secure calculation module but having more material resources. The invention is particularly advantageous for the implementation of cryptographic methods in a smart card associated with a reader, or more generally in any secure calculation module (for example a TMP module for "Trusted Module Platform") installed in a non-PC secure but with significant hardware resources, or even in a PC associated with a remote server.
Pour sécuriser des données secrètes, une carte est souvent amenée à mettre en oeuvre des protocoles cryptographiques complexes avant dé transmettre des données chiffrées au lecteur de carte, qui ne doit pas avoir accès aux données secrètes. A titre d'exemple, on peut citer le protocole de chiffrement basé sur l'identité, le protocole de chiffrement par clé publique avec recherche de mots clés, le protocole d'échange de clés entre trois utilisateurs, la signature courte, etc.To secure secret data, a card is often required to implement complex cryptographic protocols before transmitting encrypted data to the card reader, which must not have access to the secret data. As an example, we can cite the identity-based encryption protocol, the public key encryption protocol with keyword research, the key exchange protocol between three users, the short signature, etc.
Si ces protocoles ont montré leur efficacité pour la protection de données, ils ont cependant l'inconvénient d'être particulièrement coûteux, en terme de ressources matérielles de calcul nécessaires à leur mise en oeuvre. En particulier, certaines opérations élémentaires utilisées dans ces protocoles sont particulièrement coûteuses comme par exemple les opérations d'inversion d'un nombre entier ou les opérations de couplage ("pairing" en anglais) sur courbes elliptiques. Une courbe elliptique est un ensemble de points ayant des caractéristiques communes et dont les coordonnées peuvent notamment être calculées à partir des coordonnées de certains points de la courbe, appelés points générateurs, par des opérations simples telles qu'une multiplication par un scalaire. Pour plus de détails sur les courbes elliptiques, on pourra se reporter notamment à la publication FR 2 828 779. La mise en oeuvre classique d'une opération de couplage de type C = <A, B> est détaillée notamment dans le document "Identity based encryption from the Weil pairing" D. Boneh et M. Franklin (http: //crypto. stanford.edu/~dabo/abstracts/ibe.html) . Les points A, B que l'on cherche à coupler sont par exemple une clé, publique ou privée, et un message, à chiffrer ou à déchiffrer, dans le cadre d'un protocole de cryptographie à clés asymétriques.If these protocols have shown their effectiveness for the protection of data, they have however the disadvantage of being particularly expensive, in term of material resources of calculation necessary for their implementation. In particular, certain elementary operations used in these protocols are particularly expensive such as for example the inversion operations. of an integer or the pairing operations on elliptic curves. An elliptical curve is a set of points having common characteristics and whose coordinates can in particular be calculated from the coordinates of certain points of the curve, called generator points, by simple operations such as multiplication by a scalar. For more details on the elliptical curves, reference may be made in particular to the publication FR 2 828 779. The conventional implementation of a coupling operation of type C = <A, B> is detailed in particular in the document "Identity based encryption from the Weil pairing "D. Boneh and M. Franklin (http: // crypto. stanford.edu/~dabo/abstracts/ibe.html). The points A, B that one seeks to couple are for example a key, public or private, and a message, to be encrypted or decrypted, within the framework of a cryptography protocol with asymmetric keys.
Parce que certaines opérations sont coûteuses, les protocoles cryptographiques sont particulièrement difficiles à implémenter dans une carte à puce ou un module de calcul sécurisé car les temps de calcul deviennent prohibitifs, les ressources matérielles de la carte ou du module sécurisé étant nécessairement limitées de par leur taille réduite .Because certain operations are expensive, cryptographic protocols are particularly difficult to implement in a smart card or a secure computing module because the computing times become prohibitive, the hardware resources of the card or of the secure module being necessarily limited by their reduced size.
L'invention a pour but de remédier à cette difficulté, pour permettre l'utilisation de protocoles cryptographiques complexes et coûteux dans un module de calcul sécurisé.The invention aims to remedy this difficulty, to allow the use of complex and costly cryptographic protocols in a secure calculation module.
Ce but est atteint avec un procédé cryptographique selon l'invention mis en oeuvre par un module de calcul sécurisé, et caractérisé en ce que, au cours du procédé, le module sécurisé sous-traite la réalisation d'un couplage f de deux points A, B d'une courbe elliptique, à un module de calcul non sécurisé disposant de ressources matérielles plus importantes, puis le module sécurisé vérifie l'exactitude du résultat fourni par le module non sécurisé.This object is achieved with a cryptographic method according to the invention implemented by a secure calculation module, and characterized in that, during the process, the secure module subcontracts the production of a coupling f of two points A, B of an elliptical curve, to an insecure calculation module having greater material resources, then the secure module checks the accuracy of the result provided by the unsecured module.
Ainsi, l'idée essentielle de l'invention est de sous- traiter au module non sécurisé la réalisation des opérations les plus coûteuses sur les courbes elliptiques, tout en vérifiant que le résultat fourni par le module non sécurisé est exact.Thus, the essential idea of the invention is to subcontract to the non-secure module the execution of the most expensive operations on the elliptical curves, while verifying that the result provided by the non-secure module is exact.
Dans un même procédé, plusieurs opérations, éventuellement de types différents, peuvent ainsi être sous-traitées, au fur et à mesure du calcul. Le module non sécurisé disposant de moyens de calcul beaucoup plus importants que la carte, la mise en oeuvre des protocoles cryptographiques les plus complexes devient possible avec l'invention. Le module sécurisé quant à lui se limite à des opérations simples, demandant peu de ressources et donc rapides à mettre en oeuvre, comme par exemple des opérations d'adition, de multiplication, etc., comme on le verra mieux par la suite dans des exemples .In the same process, several operations, possibly of different types, can thus be subcontracted, as the calculation proceeds. As the non-secure module has much larger calculation means than the card, the implementation of the most complex cryptographic protocols becomes possible with the invention. The secure module is limited to simple operations, requiring few resources and therefore quick to implement, such as for example operations of addition, multiplication, etc., as will be seen better in examples.
De préférence, et notamment si l'un au moins des points A, B étant un point secret, le module sécurisé : • masque le ou les points secrets par un ou des nombres aléatoires pour produire un ou des points secrets masqués, • sous-traite au module non sécurisé la réalisation du couplage f à partir du ou des points secrets masqués (Al, Bl, etc.), le module non sécurisé produisant un résultat intermédiaire (SI), • déduit le résultat attendu S à partir du résultat intermédiaire (SI) et du ou des nombres aléatoires utilisés pour le masquage du ou des points secrets. • vérifie l'exactitude du résultat attendu S.Preferably, and in particular if at least one of the points A, B being a secret point, the secure module: • masks the secret point or points by one or more random numbers to produce one or more hidden secret points, • sub- processes the non-secure module to carry out the coupling f from the hidden secret point or points (Al, Bl, etc.), the non-secure module producing an intermediate result (SI), • deduces the expected result S from the intermediate result (SI) and the random number (s) used to hide the secret point (s). • checks the accuracy of the expected result S.
Ainsi, le module non sécurisé n'a jamais accès aux éventuelles données secrètes manipulées au cours du procédé, toutes les données secrètes étant masquées par un ou plusieurs nombres aléatoires.Thus, the non-secure module never has access to any secret data manipulated during the process, all the secret data being masked by one or more random numbers.
Selon un premier mode de réalisation selon l'invention, pour vérifier le résultat S fourni par le module non sécurisé, le module sécurisé : • sous-traite au module non sécurisé la réalisation d'au moins un couplage f supplémentaire à partir d'au moins un point Al obtenu par combinaison linéaire du point A avec un coefficient ri, le module non sécurisé produisant au moins un résultat supplémentaire, puis • vérifie la cohérence entre le résultat intermédiaire précédemment fourni et le ou les résultats supplémentaires en combinant linéairement le résultat intermédiaire précédemment fourni et le ou les résultats supplémentaires.According to a first embodiment according to the invention, to verify the result S provided by the non-secure module, the secure module: • subcontracts to the non-secure module the production of at least one additional coupling f from at minus a point Al obtained by linear combination of point A with a coefficient ri, the unsecured module producing at least one additional result, then • checks the consistency between the intermediate result previously supplied and the additional result (s) by linearly combining the intermediate result previously provided and the additional result (s).
Ce premier mode de réalisation sera privilégié notamment pour la réalisation de toute fonction f présentant des propriétés de linéarité ou de bilinéarité. Si la fonction f prend plusieurs variables d'entrée, il est possible de masquer une ou plusieurs de ces variables d'entrée, par des combinaisons linéaires plus ou moins complexes, en fonction du niveau de sécurité que l'on souhaite pouvoir garantir. Ainsi, si une ou plusieurs variables d'entrée de la fonction f sont des données publiques, il n'est pas indispensable de les masquer, ce qui permet d'alléger les calculs réalisés par le module sécurisé pour vérifier les résultats fournis par le module non sécurisé et déterminer le résultat initial attendu. Inversement, si un ou plusieurs variables d'entrée de la fonction f sont des données secrètes, on utilisera des combinaisons linéaires plus ou moins complexes pour les masquer. Ces principes font être détaillés ci-dessous dans des exemples .This first embodiment will be favored in particular for the realization of any function f having properties of linearity or bilinearity. If the function f takes several input variables, it is possible to mask one or more of these input variables, by more or less complex linear combinations, depending on the level of security which it is desired to be able to guarantee. Thus, if one or more input variables of the function f are public data, it is not essential to hide them, which makes it possible to lighten the calculations performed by the secure module to verify the results provided by the module unsecured and determine the expected initial result. Conversely, if one or more input variables of the function f are secret data, we will use more or less complex linear combinations to hide them. These principles are detailed below in examples.
Le premier mode de réalisation de l'invention peut être choisi pour la réalisation d'un couplage de deux points A, B d'une courbe elliptique.The first embodiment of the invention can be chosen for the realization of a coupling of two points A, B of an elliptical curve.
Selon une première variante, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages S = <A, B>, SI = <G, B>, S2 = <A, H> et S3 = <A3, B3>, avec A3 = r3.A+s3.G et B3 = t3.B+u3.H, r3, s3, t3, u3 étant des coefficients entiers, • vérifie l'exactitude du résultat S en vérifiant l'égalité : S3 = r3.t3.S + s3.t3.Sl + r3.u3.S2 + s3.u3.<G, H>According to a first variant, to calculate the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of the couplings S = <A, B>, SI = <G, B>, S2 = <A, H> and S3 = <A3, B3>, with A3 = r3.A + s3.G and B3 = t3.B + u3.H, r3, s3, t3, u3 being integer coefficients, • checks the accuracy of the result S by checking the equality: S3 = r3.t3.S + s3.t3.Sl + r3.u3.S2 + s3.u3. <G , H>
Dans cette première variante, on utilise la propriété de bilinéarité de la fonction de couplage sur courbe elliptique.In this first variant, the bilinearity property of the coupling function on the elliptical curve is used.
La propriété permet d'écrire : S3 = <A3, B3> = <r3.A+s3.G, t3.B+u3.H> = r3.t3.<A,B> + s3.t3.<G,B> + r3.u3.<A,H> + s3.u3.<G,H>The property allows to write: S3 = <A3, B3> = <r3.A + s3.G, t3.B + u3.H> = r3.t3. <A, B> + s3.t3. <G, B> + r3.u3. <A, H> + s3.u3. <G, H>
Selon cette propriété, le résultat C = <A, B> du couplage entre deux points A et B est un élément d'un ensemble mathématique possédant une structure de groupe. Pour plus de simplicité, dans la suite du brevet, les opérations effectuées dans cet ensemble seront notées additivement, c'est à dire que l'on notera par exemple <A+A'> = <A,B> + <A',B> et <A,B+B> = <A, B> + <A,B'> pour exprimer la propriété de bilinéarité de l'opération de couplage entre deux points .According to this property, the result C = <A, B> of the coupling between two points A and B is an element of a mathematical set having a group structure. For simplicity, in the remainder of the patent, the operations carried out in this set will be denoted additively, that is to say that we will note for example <A + A '> = <A, B> + <A', B> and <A, B + B> = <A, B> + <A, B '> to express the bilinearity property of the coupling operation between two points.
On utilise également deux paramètres, à savoir deux points générateurs de la courbe elliptique. Les coordonnées de ces points, ainsi que la valeur du couplage de ces deux points <G, H> sont mémorisées dans le module sécurisé, par exemple au cours d'une phase d'initialisation du procédé.Two parameters are also used, namely two points generating the elliptical curve. The coordinates of these points, as well as the value of the coupling of these two points <G, H> are stored in the secure module, for example during an initialization phase of the process.
Le calcul du résultat S = <A, B> et sa vérification par le module sécurisé est ici très rapide, dans la mesure où l'intervention du module sécurisé est limitée à la réalisation d'additions ou de multiplications par un scalaire entier.The calculation of the result S = <A, B> and its verification by the secure module is here very rapid, insofar as the intervention of the secure module is limited to carrying out additions or multiplications by an integer scalar.
Cette première variante pourra notamment être utilisée lorsque les points A, B sont des données publiques.This first variant may in particular be used when the points A, B are public data.
Dans une deuxième variante, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages SI = <G, B>, S2 = <A2, B>, S3 = <A2, H> et S4 = <A4, B4> avec : A2 = A+s2.G, A4 = r4.A+s4.G, B4 = t4.B+u4.H, • détermine S = <A, B> en résolvant l'équation S2 = S + s2.<G, B>, • détermine <A, H> en résolvant l'équation S3 = <A, H> + s2.<G, H> • vérifie l'exactitude des calculs de couplages précédents en vérifiant l'équation : S4 = r4.t4.S + s4.t4.Sl + r4.u4.<A, H> + s4.u4.<G, H> A noter dans ce mode de réalisation, que le module non sécurisé n'a pas accès au point A et ignore ses coordonnées, puisque il reçoit du module sécurisé uniquement les points G, B, A2, A3, H, A4 et B4, nécessaires pour calculer les couplages SI à S4 demandés. Si de plus, les coefficients s2, s3, r4, s4, t4 et u4 sont choisis aléatoirement à chaque mise en oeuvre du procédé, alors le module non sécurisé ne dispose d'aucun moyen de retrouver des informations relatives au point A. Cette variante pourra par exemple être utilisée dans le cas où A est une donnée secrète et B une donnée publique.In a second variant, to calculate the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of the couplings SI = <G, B>, S2 = <A2, B>, S3 = <A2, H> and S4 = <A4, B4> with: A2 = A + s2.G, A4 = r4.A + s4.G, B4 = t4. B + u4.H, • determines S = <A, B> by solving the equation S2 = S + s2. <G, B>, • determines <A, H> by solving the equation S3 = <A, H > + s2. <G, H> • checks the accuracy of the previous coupling calculations by checking the equation: S4 = r4.t4.S + s4.t4.Sl + r4.u4. <A, H> + s4 .u4. <G, H> Note in this embodiment, that the non-secure module does not have access to point A and ignores its coordinates, since it receives from the secure module only the points G, B, A2, A3, H, A4 and B4, necessary to calculate the couplings SI to S4 requested. If in addition, the coefficients s2, s3, r4, s4, t4 and u4 are chosen randomly at each implementation of the method, then the non-secure module has no means of retrieving information relating to point A. This variant could for example be used in the case where A is a secret datum and B a public datum.
Dans une troisième variante, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages SI = <G, B2>, S2 = <A2, H>, S3 = <A2, B2> et S4 = <A4, B4> avec : A2 = A+s2.G, A4 = r4.A+s4.G, B2 = B+u2.H, et B4 = t4.B+u4.H, • détermine <G, B> en résolvant l'équation SI = <G, B>+ul.<G, H> • détermine <A, H> en résolvant l'équation S2 = <A, H> + s2.<G, H> • détermine S = <A, B> en résolvant l'équation S3 = <A, B> + u2.<A, H> + s2.<G, B> + s2.u2.<G, H> • vérifie l'exactitude des calculs de couplages précédents en vérifiant l'équation : S4 = r4.t4.S + s4.t4.Sl + r4.u4.<A, H> + s4.u4.<G, H>In a third variant, to calculate the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of the couplings SI = <G, B2>, S2 = <A2, H>, S3 = <A2, B2> and S4 = <A4, B4> with: A2 = A + s2.G, A4 = r4.A + s4.G, B2 = B + u2.H, and B4 = t4.B + u4.H, • determines <G, B> by solving the equation SI = <G, B> + ul. <G, H> • determines <A, H> in solving the equation S2 = <A, H> + s2. <G, H> • determine S = <A, B> by solving the equation S3 = <A, B> + u2. <A, H> + s2 . <G, B> + s2.u2. <G, H> • check the accuracy of the previous coupling calculations by checking the equation: S4 = r4.t4.S + s4.t4.Sl + r4.u4. <A, H> + s4.u4. <G, H>
Dans cette variante, les données A, B ne sont jamais directement accessibles par le module non sécurisé, ce qui est intéressant notamment si A et B sont des données secrètes . chacune Selon une quatrième variante, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages SI = <A1, Bl>, S2 = <A2, B2>, S3 = <A3, B3> et S4 = <A4, B4> avec : Al = rl.A+sl.G, A2 = r2.A+s2.G, A3 = r3.A+s3.G, A4 = r4.A+s4.G, Bl = tl.B+ul.H, B2 = t2.B+u2.H, B3 = t3.B+u3.H, B4 = t4.B+u4.H, • détermine <A, B>, <A, H> et <G, B> en résolvant un système de trois équations à 3 inconnues^: Si = rι.ti.<A,B>+Si. ti.<G,B>+rι.Ui.<A,H>+Si.Ui.<G,H>, pour i variant de 1 à 3 • vérifie la cohérence des calculs de couplages précédents en vérifiant l'équation : S4 = r4.t4.<A,B>+s4.t4.<G,B>+r4.u4.<A,H>+s4.u4.<G,H>,In this variant, the data A, B are never directly accessible by the non-secure module, which is advantageous in particular if A and B are secret data. each According to a fourth variant, for calculate the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of the couplings SI = <A1, Bl>, S2 = < A2, B2>, S3 = <A3, B3> and S4 = <A4, B4> with: Al = rl.A + sl.G, A2 = r2.A + s2.G, A3 = r3.A + s3. G, A4 = r4.A + s4.G, Bl = tl.B + ul.H, B2 = t2.B + u2.H, B3 = t3.B + u3.H, B4 = t4.B + u4. H, • determines <A, B>, <A, H> and <G, B> by solving a system of three equations with 3 unknowns ^: Si = rι.ti. <A, B> + Si. ti. <G, B> + rι.Ui. <A, H> + Si.Ui. <G, H>, for i varying from 1 to 3 • check the consistency of the previous coupling calculations by checking the equation: S4 = r4.t4. <A, B> + s4.t4. <G, B> + r4.u4. <A, H> + s4.u4. <G, H>,
La quatrième variante décrite précédemment nécessite pour le module sécurisé le calcul de plusieurs inverses modulaires, lors de la résolution du système de trois équations à trois inconnues.The fourth variant described above requires for the secure module the calculation of several modular inverses, when solving the system of three equations with three unknowns.
Selon un deuxième mode de réalisation, le module sécurisé peut sous-traiter le calcul d'un inverse modulaire au module non sécurisé, en procédant de la manière suivante, pour un nombre A dont le module sécurisé doit calculer l'inverse modulaire.According to a second embodiment, the secure module can subcontract the calculation of a modular inverse to the non-secure module, by proceeding as follows, for a number A for which the secure module must calculate the modular inverse.
Ce deuxième mode de réalisation est notamment intéressant pour des opérations sous-traitées f dont l'inverse 1/f est peu coûteuse à calculer pour le module sécurisé.This second embodiment is particularly advantageous for sub-contracted operations f whose inverse 1 / f is inexpensive to calculate for the secure module.
C'est le cas par exemple de l'opération f (A) = 1/A, dont l'inverse 1/f (A) est immédiat. Ainsi, dans cet exemple, pour vérifier l'exactitude du résultat S fourni par le module non sécurisé, le module sécurisé multiplie simplement le nombre A au résultat fourni par le module non sécurisé.This is the case for example of the operation f (A) = 1 / A, the inverse of which 1 / f (A) is immediate. So, in this example, to check the accuracy of the result S provided by the non-secure module, the secure module simply multiplies the number A to the result provided by the non-secure module.
Si de plus le nombre A doit être masqué au module non sécurisé, alors le module sécurisé : • masque le nombre entier A en le multipliant par un nombre aléatoire a, • sous-traite au module non sécurisé la réalisation de l'inversion du nombre entier masqué a.A, • vérifie l'exactitude du résultat intermédiaire fourni par le module non sécurisé en multipliant le résultat intermédiaire l/(a.A) par le nombre entier A, • calcule le résultat attendu 1/ A en multipliant le résultat intermédiaire l/(a.A) par le nombre aléatoire a.If in addition the number A must be masked from the non-secure module, then the secure module: • masks the integer A by multiplying it by a random number a, • subcontracts to the non-secure module the realization of the inversion of the number masked integer aA, • checks the accuracy of the intermediate result provided by the insecure module by multiplying the intermediate result l / (aA) by the integer A, • calculates the expected result 1 / A by multiplying the intermediate result l / ( aA) by the random number a.
Là encore, l'intervention du module sécurisé est limitée à la réalisation de multiplications de nombres entiers.Here again, the intervention of the secure module is limited to the production of integer multiplications.
Le deuxième mode de réalisation de l'invention, qui permet une réalisation rapide d'une inversion peut être utilisé pour réaliser des opérations plus complexes comme par exemple une division de type B/A : le module sécurisé sous-traite avantageusement la réalisation de l'opération T = 1/A puis réalise ensuite l'opération S = B*T, beaucoup moins coûteuseThe second embodiment of the invention, which allows rapid completion of an inversion, can be used to carry out more complex operations such as, for example, a division of type B / A: the secure module advantageously subcontracts the realization of the operation T = 1 / A then performs the operation S = B * T, much less expensive
La mise en oeuvre d'une telle division peut être utilisée notamment pour résoudre des équations linéaires telles que celles que l'on peut être amené à résoudre lors de la réalisation d'une opération de couplage sur courbe elliptique selon l'invention. The implementation of such a division can be used in particular for solving linear equations such as those which one may have to solve when carrying out a coupling operation on an elliptical curve according to the invention.

Claims

REVENDICATIONS
1. Procédé cryptographique mis en oeuvre par un module de calcul sécurisé, caractérisé en ce que, au cours du procédé, le module sécurisé sous-traite la réalisation d'un couplage f de deux points A, B d'une courbe elliptique, à un module de calcul non sécurisé disposant de ressources matérielles plus importantes, puis le module sécurisé vérifie l'exactitude du résultat fourni par le module non sécurisé.1. Cryptographic method implemented by a secure calculation module, characterized in that, during the process, the secure module subcontracts the production of a coupling f of two points A, B of an elliptical curve, to an unsecured calculation module with more material resources, then the secure module checks the accuracy of the result provided by the unsecured module.
2. Procédé selon la revendication 1, au cours duquel, l'un au moins des points A, B étant un point secret, le module sécurisé : • masque le ou les points secrets par un ou des nombres aléatoires pour produire un ou des points secrets masqués, • sous-traite au module non sécurisé la réalisation du couplage f à partir du ou des points secrets masqués (Al, Bl, etc.), le module non sécurisé produisant un résultat intermédiaire (SI) , • déduit le résultat attendu S à partir du résultat intermédiaire (SI) et du ou des nombres aléatoires utilisés pour le masquage du ou des points secrets. • vérifie l'exactitude du résultat attendu S.2. Method according to claim 1, during which, at least one of the points A, B being a secret point, the secure module: • masks the secret point or points with one or more random numbers to produce one or more points hidden secrets, • subcontracts to the non-secure module the realization of the coupling f from the hidden secret point (s) (Al, Bl, etc.), the non-secure module producing an intermediate result (SI), • deduces the expected result S from the intermediate result (SI) and the random number (s) used to hide the secret point (s). • checks the accuracy of the expected result S.
3. Procédé selon la revendication 2, dans lequel le module sécurisé : • masque le ou les points secrets en combinant linéairement le ou les points secrets avec un ou des nombres aléatoires, et • déduit le résultat attendu S à partir du résultat intermédiaire, de la ou des combinaisons linéaires précédemment réalisées et de la propriété de bilinéarité d'un couplage.3. Method according to claim 2, in which the secure module: • masks the secret point or points by linearly combining the secret point or points with one or more random numbers, and • deduces the expected result S from the intermediate result, from the linear combination (s) previously performed and the bilinearity property of a coupling.
4. Procédé selon la revendication 1 ou 2, dans lequel, pour vérifier le résultat attendu S, le module sécurisé : • sous-traite au module non sécurisé la réalisation d'au moins un couplage f supplémentaire à partir d'au moins un point Al obtenu par combinaison linéaire du point A avec un coefficient ri, le module non sécurisé produisant au moins un résultat supplémentaire, puis • vérifie la cohérence entre le résultat intermédiaire précédemment fourni et le ou les résultats supplémentaires en combinant linéairement le résultat intermédiaire précédemment fourni et le ou les résultats supplémentaires.4. Method according to claim 1 or 2, in which, to verify the expected result S, the secure module: • subcontracts to the non-secure module the production of at least one additional coupling f from at least one point Al obtained by linear combination of point A with a coefficient ri, the unsecured module producing at least one additional result, then • checks the consistency between the intermediate result previously supplied and the additional result (s) by linearly combining the intermediate result previously supplied and the additional result (s).
5. Procédé selon la revendication 3, dans lequel, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages S = <A, B>, SI = <G, B>, S2 = <A, H> et S3 = <A3, B3>, avec A3 = r3.A+s3.G et B3 = t3.B+u3.H, r3, s3, t3, u3 étant des coefficients entiers, • vérifie l'exactitude du résultat S en vérifiant l'égalité : S3 = r3.t3.S + s3.t3.Sl + r3.u3.S2 + s3.u3.<G, H>5. Method according to claim 3, in which, to calculate the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of couplings S = <A, B>, SI = <G, B>, S2 = <A, H> and S3 = <A3, B3>, with A3 = r3.A + s3.G and B3 = t3.B + u3.H, r3, s3, t3, u3 being integer coefficients, • checks the accuracy of the result S by checking the equality: S3 = r3.t3.S + s3.t3.Sl + r3.u3.S2 + s3.u3. <G, H>
6. Procédé selon la revendication 3, dans lequel, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs6. Method according to claim 3, in which, for calculating the coupling of two points A, B of an elliptical curve also comprising two generating points
G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages SI = <G, B>, S2 = <A2, B>, S3 = <A2, H> et S4 = <A4, B4> avec : A2 = A+s2.G, A4 = r4.A+s4.G, B4 = t4.B+u4.H, • détermine S = <A, B> en résolvant l'équation S2 = S + s2.<G, B>, • détermine <A, H> en résolvant l'équation S3 = <A, H> + s2.<G, H> • vérifie l'exactitude des calculs de couplages précédents en vérifiant l'équation : S4 = r4.t4.S + s4.t4.Sl + r4.u4.<A, H> + s4.u4.<G, H>G, H, the secure module: • subcontracts to the non-secure module the calculation of the couplings SI = <G, B>, S2 = <A2, B>, S3 = <A2, H> and S4 = <A4, B4 > with: A2 = A + s2.G, A4 = r4.A + s4.G, B4 = t4.B + u4.H, • determines S = <A, B> by solving the equation S2 = S + s2. <G, B>, • determines <A, H> by solving the equation S3 = <A, H> + s2. <G , H> • checks the accuracy of the previous coupling calculations by checking the equation: S4 = r4.t4.S + s4.t4.Sl + r4.u4. <A, H> + s4.u4. <G, H>
7. Procédé selon la revendication 3, dans lequel, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages SI = <G, Bl>, S2 = <A2, H>, S3 = <A3, B3> et S4 = <A4, B4> avec : A2 = A+s2.G, A3 = A+s3.G, A4 = r4.A+s4.G, Bl = B+ul.H, B3 = B+u3.H et B4 = t4.B+u4.H, • détermine <G, B> en résolvant l'équation SI = <G, B>+ul.<G, H> • détermine <A, H> en résolvant l'équation S2 = <A, H> + s2.<G, H> • détermine S = <A, B> en résolvant l'équation S3 = <A, B> + u3.<A, H> + s3.<G, B> + s3.u3.<G, H> • vérifie l'exactitude des calculs de couplages précédents en vérifiant l'équation : S4 = r4.t4.S + s4.t4.Sl + r4.u4.<A, H> + s4.u4.<G, H>7. Method according to claim 3, in which, for calculating the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of couplings SI = <G, Bl>, S2 = <A2, H>, S3 = <A3, B3> and S4 = <A4, B4> with: A2 = A + s2.G, A3 = A + s3.G, A4 = r4.A + s4.G, Bl = B + ul.H, B3 = B + u3.H and B4 = t4.B + u4.H, • determine <G, B> by solving the equation SI = <G, B> + ul. <G, H> • determine <A, H> by solving the equation S2 = <A, H> + s2. <G, H> • determine S = <A, B> in solving the equation S3 = <A, B> + u3. <A, H> + s3. <G, B> + s3.u3. <G, H> • check the accuracy of the previous coupling calculations by checking l 'equation: S4 = r4.t4.S + s4.t4.Sl + r4.u4. <A, H> + s4.u4. <G, H>
8. Procédé selon la revendication 3, dans lequel, pour calculer le couplage de deux points A, B d'une courbe elliptique comprenant également deux points générateurs G, H, le module sécurisé : • sous-traite au module non sécurisé le calcul des couplages SI = <A1, Bl>, S2 = <A2, B2>, S3 = <A3, B3> et S4 = <A4, B4> avec : Al = rl.A+sl.G, A2 = r2.A+s2.G, A3 = r3.A+s3.G, A4 = r4.A+s4.G, Bl = tl.B+ul.H, B2 = t2.B+u2.H, B3 = t3.B+u3.H, B4 = t4.B+u4.H, • détermine <A, B>, <A, H> et <G, B> en résolvant un système de trois équations : Si = ri. ti.<A,B>+Si. ti.<G,B>+ri.Ui.<A,H>+Si.Ui.<G,H>, pour i variant de 1 à 3 • vérifie la cohérence des calculs de couplages précédents en vérifiant l'équation : S4 = r4.t4.<A,B>+s4.t4.<G,B>+r4.u4.<A,H>+s4.u4.<G,H>,8. The method of claim 3, wherein, for calculating the coupling of two points A, B of an elliptical curve also comprising two generator points G, H, the secure module: • subcontracts to the non-secure module the calculation of SI = <A1, Bl>, S2 = <A2, B2>, S3 = <A3, B3> and S4 = <A4, B4> couplings with: Al = rl.A + sl.G, A2 = r2.A + s2.G, A3 = r3.A + s3.G, A4 = r4.A + s4.G, Bl = tl.B + ul.H, B2 = t2.B + u2.H, B3 = t3.B + u3.H, B4 = t4.B + u4.H, • determine <A, B>, <A, H> and <G, B> by solving a system of three equations: Si = ri. ti. <A, B> + Si. ti. <G, B> + ri.Ui. <A, H> + Si.Ui. <G, H>, for i varying from 1 to 3 • check the consistency of the previous coupling calculations by checking the equation: S4 = r4.t4. <A, B> + s4.t4. <G, B> + r4.u4. <A, H> + s4.u4. <G, H>,
9. Procédé selon l'une des revendications 3 à 7, dans lequel au moins un des coefficients ri, Si, ti, Ui, pour i variant entre 1 à 4, est un nombre aléatoire.9. Method according to one of claims 3 to 7, wherein at least one of the coefficients ri, Si, ti, Ui, for i varying between 1 to 4, is a random number.
10. Procédé selon la revendication 1 ou 2, dans lequel le module sécurisé vérifie l'exactitude du résultat fourni par le module non sécurisé en calculant l'inverse de la fonction sous-traitée au module non sécurisé.10. The method of claim 1 or 2, wherein the secure module verifies the accuracy of the result provided by the non-secure module by calculating the inverse of the function outsourced to the non-secure module.
11. Procédé selon la revendication précédente dans lequel l'opération sous-traitée au module non sécurisé est une inversion d'un nombre entier A, et dans lequel, pour vérifier l'exactitude du résultat S fourni par le module non sécurisé, le module sécurisé multiplie le nombre A au résultat fourni par le module non sécurisé.11. Method according to the preceding claim in which the operation subcontracted to the non-secure module is an inversion of an integer A, and in which, to verify the accuracy of the result S provided by the non-secure module, the module secure multiplies the number A to the result provided by the non-secure module.
12. Procédé selon la revendication précédente en combinaison avec la revendication 2, dans lequel le module sécurisé : • masque le nombre entier A en le multipliant par un nombre aléatoire a, • sous-traite au module non sécurisé la réalisation de l'inversion du nombre entier A masqué, • vérifie l'exactitude du résultat intermédiaire fourni par le module non sécurisé en multipliant le résultat intermédiaire par le nombre entier A, • calcule le résultat attendu en multipliant le résultat intermédiaire par le nombre aléatoire. 12. Method according to the preceding claim in combination with claim 2, in which the secure module: • masks the integer A by multiplying it by a random number a, • subcontracts to the non-secure module the realization of the inversion of the masked integer A, • checks the accuracy of the intermediate result provided by the insecure module by multiplying the intermediate result by the integer A, • calculates the expected result by multiplying the intermediate result by the random number.
PCT/EP2005/052654 2004-06-17 2005-06-08 Chip card reader, system and method of performing a pairing operation on an elliptic curve WO2005125085A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0406542 2004-06-17
FR0406542A FR2871970B1 (en) 2004-06-17 2004-06-17 METHOD OF REALIZING A COUPLING OPERATION ON AN ELLIPTICAL CURVE BY A SYSTEM COMPRISING A CHIP CARD AND A CARD READER

Publications (2)

Publication Number Publication Date
WO2005125085A2 true WO2005125085A2 (en) 2005-12-29
WO2005125085A3 WO2005125085A3 (en) 2006-07-13

Family

ID=34945991

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/052654 WO2005125085A2 (en) 2004-06-17 2005-06-08 Chip card reader, system and method of performing a pairing operation on an elliptic curve

Country Status (2)

Country Link
FR (1) FR2871970B1 (en)
WO (1) WO2005125085A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2330772A1 (en) 2009-12-01 2011-06-08 Gemalto SA Public-key encryption method without certificate
FR3006782A1 (en) * 2013-06-11 2014-12-12 France Telecom METHOD AND SYSTEM FOR DELEGATION OF A CALCULATION OF A BILINEARY COUPLING VALUE TO A CALCULATION SERVER

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
F. ZHANG, R. SAFAVI-NAINI, C.-Y. LIN: "New Proxy Signature, Proxy Blind Signature and Proxy Ring Signature Schemes from Bilinear Pairings" CRYPTOLOGY EPRINT ARCHIVE, REPORT 2003-104, [Online] 25 mai 2003 (2003-05-25), pages 1-11, XP002302948 Extrait de l'Internet: URL:http://planeta.terra.com.br/informatic a/paulobarreto/pblounge.html> [extrait le 2004-10-28] *
JAKOBSSON M, WETZEL S: "Secure server-aided signature generation" PUBLIC KEY CRYPTOGRAPHY. INTERNATIONAL WORKSHOP ON PRACTICE AND THEORY IN PUBLIC KEY CRYPTOGRAPHY, PKC 2001. SPRINGER-VERLAG, LECTURE NOTES IN COMPUTER SCIENCE, vol. 1992, 15 février 2001 (2001-02-15), pages 383-401, XP002226955 Cheju Island, South Korea *
R. DUTTA, R. BARUA, P. SARKAR: "Pairing-Based Cryptography : A Survey" CRYPTOLOGY EPRINT ARCHIVE, REPORT 2004-064, [Online] 26 février 2004 (2004-02-26), pages 1-45, XP002302949 Extrait de l'Internet: URL:http://planeta.terra.com.br/informatic a/paulobarreto/pblounge.html> [extrait le 2004-10-28] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2330772A1 (en) 2009-12-01 2011-06-08 Gemalto SA Public-key encryption method without certificate
WO2011067217A1 (en) 2009-12-01 2011-06-09 Gemalto Sa Public-key encryption method without a certificate
FR3006782A1 (en) * 2013-06-11 2014-12-12 France Telecom METHOD AND SYSTEM FOR DELEGATION OF A CALCULATION OF A BILINEARY COUPLING VALUE TO A CALCULATION SERVER
WO2014199071A1 (en) * 2013-06-11 2014-12-18 Orange Method and system for delegating a calculation of a bilinear coupling value to a calculation server
US20160142206A1 (en) * 2013-06-11 2016-05-19 Orange Method and system for delegating calculation of a bilinear pairing value to a calculation server
US10122530B2 (en) 2013-06-11 2018-11-06 Orange Method and system for delegating calculation of a bilinear pairing value to a calculation server

Also Published As

Publication number Publication date
FR2871970A1 (en) 2005-12-23
FR2871970B1 (en) 2006-09-29
WO2005125085A3 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
DK3268914T3 (en) DETERMINING A COMMON SECRET FOR SECURE EXCHANGE OF INFORMATION AND Hierarchical, Deterministic cryptographic keys
US6341349B1 (en) Digital signature generating/verifying method and system using public key encryption
EP3091689B1 (en) Method for generating a message signature from a signature token encrypted by means of an homomorphic encryption function
CN107683502B (en) Generating cryptographic function parameters from compact source code
EP1710952B1 (en) Cryptographic Applications of the Cartier Pairing
EP1166494B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
EP1944904A1 (en) Secure processing device, secure processing method, encrypted confidential information embedding method, program, storage medium, and integrated circuit
CN111066285A (en) Method for recovering public key based on SM2 signature
EP1380917A2 (en) Method and system for validating software code
US7729494B2 (en) Squared Weil and Tate pairing techniques for use with elliptic curves
CN109767218B (en) Block chain certificate processing method and system
US20070192622A1 (en) Computer system, computer program, and addition method
JP4818663B2 (en) System and method for homogenous map-based signature generation and verification
CN116830523A (en) threshold key exchange
US7440569B2 (en) Tate pairing techniques for use with hyperelliptic curves
WO2005125085A2 (en) Chip card reader, system and method of performing a pairing operation on an elliptic curve
JP5434925B2 (en) Multi-party distributed multiplication apparatus, multi-party distributed multiplication system and method
US8731187B2 (en) Computing genus-2 curves using general isogenies
US20220345312A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
CN112769539B (en) Method and system for generating RSA key and cooperating with RSA signature and decryption
US7769167B2 (en) Weil and Tate pairing techniques using parabolas
WO2006010692A2 (en) Method for protecting a public key algorithm in an electronic component
CA2288767A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
WO2007042419A1 (en) Cryptographic method using an identity-based encryption system
Mihailescu et al. Ring Learning with Errors Cryptography

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase in:

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase