Nothing Special   »   [go: up one dir, main page]

WO2013024230A2 - Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique - Google Patents

Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique Download PDF

Info

Publication number
WO2013024230A2
WO2013024230A2 PCT/FR2012/051891 FR2012051891W WO2013024230A2 WO 2013024230 A2 WO2013024230 A2 WO 2013024230A2 FR 2012051891 W FR2012051891 W FR 2012051891W WO 2013024230 A2 WO2013024230 A2 WO 2013024230A2
Authority
WO
WIPO (PCT)
Prior art keywords
public
random
public key
integers
compressed
Prior art date
Application number
PCT/FR2012/051891
Other languages
English (en)
Other versions
WO2013024230A3 (fr
Inventor
Jean-Sébastien CORON
David Naccache
Mehdi TIBOUCHI
Original Assignee
Gratzer And Partners
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 Gratzer And Partners filed Critical Gratzer And Partners
Publication of WO2013024230A2 publication Critical patent/WO2013024230A2/fr
Publication of WO2013024230A3 publication Critical patent/WO2013024230A3/fr

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Definitions

  • the invention relates to so-called fully homomorphic encryption devices.
  • the invention relates to the implementation of digital key generation operations and processes intended for a homomorphic encryption algorithm implemented in microprocessors and in such a way as to provide a public key size which is actually smaller. than the prior art.
  • the term "significantly” will mean a non-constant reduction ratio and at least equal to a polynomial in a parameter ⁇ on which depends the security of the homomorphic encryption algorithm considered.
  • the invention particularly relates to infrastructure and key generation devices.
  • the public and secret keys (respectively PK and SK) are generated using a probabilistic algorithm called Gen key generation algorithm.
  • ACPH Fully Homomorphic Public Key Encryption Algorithm
  • an ACPH contains two other algorithms, Add and Mul, having, for all messages m [l] and m [2], the following properties:
  • the security of an ACPH depends on a security parameter ⁇ .
  • for example from 72 bits to 80 bits
  • also increases the size of the public keys of the ACPH.
  • ACPHs make it possible to perform calculations on the medical data of patients present in a database without having to reveal their identity or the details of their exact medical condition.
  • the numbers x [i] are such that r [i], (r [i] is typically of size proportional to ⁇ ), is small relative to x [i] (for example, in D2, r [i] is a number of 80 or 100 bits).
  • x [0] is not mandatory and a version of the algorithm without x [0] is also described in D2.
  • r is a random number of size roughly similar to that of r [i] (the difference can be for example a bit or two);
  • ⁇ Z x [l] e [l] + ... + x [k] e [k]
  • the method for generating the public key vDGHV which has been mentioned previously, is implemented on a hardware device 10 whose hardware architecture is illustrated in FIG. 1.
  • a microprocessor 11 is connected to a data input and output interface means 12, to a random or pseudo-random generator 13 and to a memory 14 in which the microprocessor reads instructions encoding a program Pg implementing the Gen generation process of vDGHV keys.
  • the microprocessor 11 starts reading the program Pg in the memory 14.
  • the program Pg instructs the microprocessor 11 to communicate the elements x [b], ..., x [k] via the data input and output interface 12 to another device.
  • Step 22 Generate an odd random number p (corresponding to the secret key SK);
  • Step 23 Generate k random numbers r [i] noted r [l], ..., r [k];
  • steps 21, 22, 23 and 24 can be performed in any order.
  • the integers q [i] are integers of size ⁇ - ⁇ bits and the r [i] are small integers of size p, bits. For security reasons, it is recommended to take ⁇ of the order of 2 ⁇ 10 7 bits, ⁇ of the order of 3000 bits and p of the order of 40 bits.
  • the main objective of the invention is therefore to reduce, by a generic method applicable to several very different types of ACPHs, the size of the public key of the ACPHs concerned.
  • This reduction, resulting in practice in a size improvement of several orders of magnitude is not a division of the size of the public key by a simple constant but a division by a polynomial in ⁇ , ⁇ being a parameter on which the security depends of the ACPHs considered.
  • the second object of the invention is to accelerate at least one of the vDGHV ACPH Dec, Dec, Mul, Add operations by choosing at least one x [i] allowing faster calculations.
  • the invention more generally aims to overcome at least some disadvantages of the known ACPH vDGHV. More specifically, a first object of the invention is to provide a technique for generating much shorter public keys for the vDGHV ACPH described above. The invention also applies, mutatis mutandis, to the ACPH described in D3, D4a and D4b.
  • Another objective of at least one embodiment of the invention is to provide a technique for accelerating at least one of the ACPH vDGHV Enc, Dec, Mul, Add operations by choosing from minus one x [i] allowing faster calculations.
  • a compressed public key generation method d [i] for a fully public-key homomorphic encryption algorithm implemented in a device comprising at least one microprocessor and a memory.
  • said compressed public key generation method comprises a deterministic, public and preferably pseudo-random generation step of at least one element of algebraic structure t [i] whose public transformation into at least one structural element algebraic x [i] of the uncompressed public key is effected by adding or subtracting t [i] from at least one element of algebraic structure d [i] whose size is significantly smaller than the size of x [i], the term "significantly" meaning a non-constant reduction ratio, and at least equal to a polynomial in a parameter ⁇ on which depends the security of said fully public-key homomorphic encryption algorithm.
  • Such a method may comprise a step for substituting said "at least one element of algebraic structure d [i]" for said "at least one element of algebraic structure x [i]" in the compressed public key.
  • a method according to the invention can generate compressed public keys for the ACPH of vDGHV (such an innovative method is applicable to all the variants of ACPHs described in the article of vDGHV) or for the ACPH of CMNT (a such an innovative process is applicable to all variants of ACPHs described in the CMNT article). It therefore includes the following steps:
  • steps a, b and c can be performed in any order.
  • a method according to the invention can further generate compressed public keys for the ACPH of vDGHV or for the ACPH of
  • the two sets of elements of the decompressed public key ⁇ x [i, 0] ⁇ and ⁇ x [i, l] ⁇ can be merged into a single set ⁇ x [i] j within which are chosen randomly pairs of elements (x [h], x [ ⁇ 2]) whose products x [ii] * x [i2] are used to create the cipher.
  • the invention provides that a method according to the invention can generate compressed public keys for the Brakerski and Vaikuntanathan ACPHs (such an innovative method is applicable to all variants of ACPHs described in the article by Brakerski and Vaikuntanathan ).
  • the method comprises the following steps, where the notation "vec" designates a vector in (Z p ) n :
  • steps a, b and c can be performed in any order.
  • the invention provides, for certain methods according to the invention, that the integers d [i] can be protected by the addition or the subtraction of a quantity z [i] xp where z [i] is an integer secret random size between 1 and 200 bits.
  • the invention provides that a compression method according to the invention has an associated decompression method. Such a method comprises the following steps:
  • the invention provides that for a method according to the invention, the generation in a deterministic, public and preferably pseudo-random manner of data can be carried out using a pseudo-random generator to which are input a seed to be expanded. and an index i of the data t [i] to be generated.
  • the invention also provides a device comprising at least one microprocessor cooperating with data input and output interface means, a random generator and a memory.
  • Said microprocessor is adapted to implement means for generating, compressing or decompressing compressed public keys d [i], for a fully public-key homomorphic encryption algorithm, according to the invention.
  • the invention further provides a computer program product, comprising program code instructions for implementing the method according to the invention when said program is executed on a computer.
  • vDGHV computer-readable and non-transitory storage medium, storing a computer program comprising a set of instructions executable by a computer or a processor for implementing a method according to the invention.
  • the algorithm resulting from the application of a method according to the invention to vDGHV requires a public key of size 10.3 megabytes only.
  • FIG. 3 presents steps of a method of gen generation of keys according to the invention.
  • Such a public key generation method comprises the deterministic, public and preferably pseudo-random generation of k + b integers t [i] of size gamma bits and their transformation into k + b integers x [i] of gamma bits by adding corrective factors d [i] of size eta bits, eta being much smaller than gamma.
  • F (se, i) the function serving for the DPPPA generation of t [i], even when F does not use seed se.
  • Such a method ensures, according to a first embodiment, the generation of compressed public key elements d [i], therefore much shorter than the x [i], that can be used with the ACPHs published in the documents D2 and / or D3, whose Gen generation methods are modified into an inventive generation method Gen 'so as to comprise the following steps:
  • Said compressed public key PKcomp can be decompressed in a public manner as follows:
  • a method for generating keys for the ACPHs described in modified D2 and / or D3 in that the purpose of the function F is to enable the generation of at least one x [i] whose arithmetic properties are likely to speed up at least one of Dec, Enc, Mul or Add operations.
  • F enabling the acceleration of computations is an F generating at least one t [i] resulting in at least one x [i] whose multiplication by the so-called FFT (Fast Fourier Transform) method. ) is faster or easier.
  • FFT Fast Fourier Transform
  • Another example of such a function F making it possible to accelerate calculations is an F generating at least one t [i] having partially periodic digit sequences making the multiplication or addition operations easier.
  • the invention also provides a computing device comprising a microprocessor cooperating with a data input and output interface means, a random generator and a memory of which said microprocessor reads the instructions encoding an inventive program for generating keys operating according to any one of the methods described above.
  • the inventive generation of the elements x [i] of the reduced-size PKcomp compressed public key for a type D2 or D3 type ACPH on a hardware architecture is performed as follows.
  • the hardware architecture of the device according to the invention takes the elements of the hardware architecture of the device 10 of the prior art described in FIG. 1, namely a microprocessor 11 cooperating with an interface means of FIG. input and output data 12, a random generator 13 and a memory 14 of which the microprocessor 11 reads the encoding instructions implementing the Gen 'key generation method according to one embodiment of the invention.
  • the inventive generation method Gen 'of compressed keys differs from the key generation method Gen described previously by the step of generating the public key of the prior art.
  • the device according to the invention transmits PKcomp to another device via the data input and output interface 12.
  • step 32 generating a random number p, difficult or impossible to factorize
  • step 33 generating k random or secret pseudo-random numbers r [i] denoted r [l], ..., r [k];
  • step 34 generate in a DPPPA manner k + 1 numbers t [i] denoted t [0], ..., t [k] from a seed se;
  • steps a, b, c and d can be performed in any order.
  • the d [i] have a size that is actually shorter than the x [i].
  • At least one x [i] is constructed to have a shape or properties facilitating or accelerating the execution of at least one of Enc, Dec, Add or Mul algorithms.
  • a mode of generating numbers x [0] is known to those skilled in the art and is used, for example, to generate particular public keys for the RSA algorithm.
  • Such an algorithm is described, for example, in the document D5 corresponding to Arjen Lenstra's article entitled “Generating RSA moduli with a proportion portion", published in the proceedings of the 1998 ASIACRYPT conference.
  • At least one of the t [i] is generated so as to result in at least one x [i] whose multiplication by the so-called FFT (Fast Fourier Transform) method is faster or more Easy.
  • FFT Fast Fourier Transform
  • x [i] can be generated directly in FFT representation so that it does not have to be translated into a polynomial.
  • the least significant rho bits of the d [i] are replaced by zeros. This allows additional compression of the public key.
  • the multiplication x [ii] * x [i2] is replaced by the corrected multiplication ⁇ [ ⁇ ] ⁇ ⁇ [ ⁇ 2] ⁇ ⁇ .
  • the integer A could be generated in a DPPPA manner and its root then calculated, knowing the value of p.
  • the inventive method can also extend to the ACPH described in D4a and D4b.
  • r [i] is a small random noise taken from Z p .
  • the data d [i] generated for the ACPHs described in the documents D2, D3, D4a or D4b can be the subject of enhanced protection by the addition of an additional multiple of p.
  • DPPPA data referred to in this document can be performed using a pseudo-random generator to which are input a seed to expand and an index i of the data to be generated.
  • any of the variants of the method according to the invention, described above, can also be implemented as hardware in a programmable component of the FPGA type.
  • FPGA Field Programmable Gâte Array
  • ASIC Application-Specific Integrated Circuit

Landscapes

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

Abstract

Il est proposé un procédé de génération de clés publiques compressées d[i], pour un algorithme de chiffrement pleinement homomorphique à clé publique, mis en œuvre dans un dispositif comprenant au moins un microprocesseur et une mémoire. Ledit procédé de génération de clés publiques compressées étant caractérisé par une étape de génération déterministe, publique et préférablement pseudoaléatoire d'au moins un élément de structure algébrique t[i] dont la transformation publique en au moins un élément de structure algébrique x[i] de la clé publique décompressée s'effectue par l'ajout ou par la soustraction à t[i] d'au moins un élément de structure algébrique d[i], dont la taille est significativement inférieure à la taille de x[i].

Description

Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique
L'invention concerne les dispositifs de chiffrement dit pleinement homomorphique.
Plus précisément, l'invention concerne la mise en œuvre d'opérations et de traitements numériques de génération de clés destinées à un algorithme de chiffrement homomorphique mis en œuvre dans des microprocesseurs et ce de façon à procurer une taille de clé publique signifie ativement plus réduite que l'art antérieur.
Par la suite, et comme il est habituellement admis en langage informatique, le terme « significativement » signifiera un ratio de réduction non constant et au moins égal à un polynôme en un paramètre λ dont dépend la sécurité de l'algorithme de chiffrement homomorphique considéré.
L'invention concerne tout particulièrement les infrastructures et dispositifs de génération de clés.
Le traitement cryptographique de données numériques nécessite souvent d'effectuer des opérations de chiffrement à clé publique.
Dans un algorithme de chiffrement à clé publique, le chiffreur chiffre un message m à l'aide d'un algorithme de chiffrement Enc en un chiffré c = Enc(PK,m), à l'aide d'une clé publique, notée PK.
Le destinataire du message, déchiffre le chiffré c en appliquant une fonction de déchiffrement Dec telle que m=Dec(SK,c) où SK est une clé secrète liée à la clé publique PK.
Les clés publique et secrète (respectivement PK et SK) sont générées à l'aide d'un algorithme probabiliste dit algorithme de génération de clés Gen.
Par exemple, des algorithmes de chiffrement à clé publique célèbres sont l'algorithme dit RSA décrit dans le brevet américain U.S. 4,405,829, ou l'échange de clés Diffie-Hellman décrit dans le brevet américain U.S. 4,200,770.
Il est particulièrement intéressant, pour de nombreuses applications pratiques, de disposer d'un Algorithme de Chiffrement Pleinement Homomorphique à Clé Publique (ACPH).
Un ACPH comporte outre les algorithmes Enc et Dec, deux autres algorithmes notés Add et Mul ayant, pour tous messages m[l] et m[2], les propriétés suivantes :
• m[l] x m[2]=Dec(SK, Mul(Enc(PK,m[W, Enc(PK,m[2])))
· m[l] + m[2]=Dec(SK, Add(Enc(PK,m[W, Enc(PK,m[2])))
Il est possible de montrer que même si les opérations m[l] + m [2] et m[l] x m [2] s'entendent modulo 2 (à savoir « + » représente l'opération logique de « ou exclusif » et « x » représente le « et logique »), on peut coder n'importe quel traitement complexe de données à l'aide de ces deux seules opérations.
La sécurité d'un ACPH dépend d'un paramètre de sécurité λ. En augmentant λ (par exemple de 72 bits à 80 bits) il devient de plus en plus difficile d'attaquer l'ACPH. Par contre un accroissement de λ accroît également la taille des clés publiques de l'ACPH.
Les applications des ACPH sont multiples :
- Des ACPH permettent par exemple d'effectuer des calculs sur les données médicales de patients présents dans une base de données sans pour autant avoir à révéler leur identité ni les détails de leur condition médicale exacte.
- Des ACPH permettent de connaître le nombre de voix obtenues par les candidats d'une élection sans que l'on dévoile l'identité des votants.
- Des ACPH permettent la création de protocoles de paiement anonymes.
- Des ACPH permettent la création d'un système de ventes où le montant des enchères resterait inconnu, afin d'éviter que le vendeur cherche la surenchère. Seul le montant le plus important serait dévoilé à la fin de la procédure.
Un premier ACPH a été publié par Craig Gentry dans le document Dl correspondant à l'article intitulé « Fully Homomorphic Encryption Using Idéal Lattices » paru dans les actes du colloque 41 st ACM Symposium on Theory of Computing (STOC), 2009.
Ce procédé souffrant d'une grande complexité de mise en œuvre, un second procédé d'ACPH, basé sur l'arithmétique sur les entiers fut proposé par Marten van Dijk, Craig Gentry, Shai Halevi, et Vinod Vaikuntanathan (vDGHV) dans le document D2 correspondant à l'article intitulé « Fully Homomorphic Encryption over the Integers » paru dans les actes du colloque EUROCRYPT'2010 aux pages 24 à 43.
Une première réduction de la taille de la clé publique de l'algorithme D2 est décrite dans le document D3 correspondant à l'article intitulé « Fully Homomorphic Encryption over the Integers with Shorter Public Keys », paru dans les actes du colloque CRYPTO'2011, volume 6841 de la collection Lecture Notes in Computer Science, pages 483 et suivantes par Jean-Sébastien Coron and Avradip Mandai, David Naccache et Mehdi Tibouchi (CMNT). Le document D3 corrige également une faille de sécurité dans D2 en remarquant que le paramètre p doit être un nombre difficile ou impossible à factoriser.
Plus récemment, un autre ACPH a été publié par Zvika Brakerski et Vinod Vaikuntanathan dans le document D4a correspondant à l'article intitulé « Efficient fully homomorphic encryption from (standard) LWE » paru dans les actes de FOCS 2011 ainsi que dans le document D4b correspondant à l'article « Fully homomorphic encryption for ring-LWE and security for key dépendent messages » publié dans les actes du colloque CRYPTO 2011 par Zvika Brakerski et Vinod Vaikuntanathan.
Par opposition à D2 et D3, les ACPHs décrits dans D4a et D4b sont basés sur le problème dit « LWE », bien connu à l'homme de l'art et décrit par Oded Regev dans l'article « On lattices, learning with errors, random linear codes, and cryptography » paru dans les actes du 37e colloque annuel ACM symposium on Theory of Computing, 2005, pages 84-93.
Dans la méthode vDGHV, décrite dans D2, un procédé de génération Gen de clés secrètes et publiques commence par générer un nombre impair p, (p est typiquement de taille proportionnelle à λ2), correspondant à une clé secrète SK, appelée clé secrète vDGHV, et une clé publique PK, appelée clé publique vDGHV correspondant à une collection de nombres entiers x[i] = q[i]x p + r[i], (x[i] est typiquement de taille proportionnelle à λ5), pour i allant de 0 à k, où q[i] et r[i] sont des nombres aléatoires respectant les contraintes spécifiées dans les document D2 et/ ou D3. k est typiquement de taille proportionnelle à λ3.
Les nombres x[i] sont tels que r[i], (r[i] est typiquement de taille proportionnelle à λ), est de faible taille relativement à x[i] (par exemple, dans D2, r[i] est un nombre de 80 ou 100 bits).
Dans une des variantes décrites dans D2, l'un des éléments de la clé publique vDGHV, l'élément noté x[0], présente une particularité : pour l'élément x[0], la condition r[0]=0 doit être observée. L'emploi de x[0] n'est pas obligatoires et une version de l'algorithme sans x[0] est également décrite dans D2. Nous noterons de manière générique par b=0 ou b=l l'index par lequel débute la variante considérée.
Afin de chiffrer (via l'algorithme Enc) un bit m, l'expéditeur calcule : c = m + 2 r + 2 Z où :
• r est un nombre aléatoire de taille à peu près similaire à celle des r[i] (la différence pouvant par exemple être d'un bit ou deux) ;
· Z = x[l] e[l] + ... + x[k] e[k] où les e[i] sont des bits aléatoires (i.e e[i] = 0 ou 1 de manière aléatoire) ou des petits entiers.
• Si la variante à x[0] est utilisée le chiffré est réduit modulo x[0]. Afin de déchiffrer (via l'algorithme Dec) un chiffré c, le récepteur calcule : m = (c mod p) mod 2. La mise en œuvre des opérations Add et Mul, utilise la technique dite de « bootstrapping », connue de l'homme du métier et décrite dans les documents Dl et D2.
Le procédé de génération de la clé publique vDGHV, dont il a été question précédemment est mis en œuvre sur un dispositif matériel 10 dont l'architecture matérielle est illustrée par la figure 1.
Un microprocesseur 11 est connecté à un moyen d'interface d'entrée et de sortie de données 12, à un générateur aléatoire ou pseudo-aléatoire 13 et à une mémoire 14 dans laquelle le microprocesseur lit les instructions encodant un programme Pg mettant en œuvre le procédé de génération Gen de clés vDGHV.
Au démarrage, le microprocesseur 11 commence à lire le programme Pg dans la mémoire 14. Lors de son exécution sur le microprocesseur 11, le programme Pg génère la clé secrète SK correspondant à un nombre impair p, et la clé publique PK = x[b], ...,x[k].
Une fois les éléments x[i] obtenus, le programme Pg donne instruction au microprocesseur 11 de communiquer les éléments x[b], ...,x[k] via l'interface d'entrée et de sortie de données 12 à destination d'un autre dispositif.
Le procédé de génération Gen de clés vDGHV (variante à b=0), illustré par la figure 2, met en œuvre les étapes suivantes (dans n'importe quel ordre) :
• Etape 21 : définir r[0]=0 ;
• Etape 22 : Générer un nombre aléatoire impair p (correspondant à la clé secrète SK) ;
Il est connu (document D3) que dans le cas de la variante à b=0, le paramètre p doit être un entier difficile ou impossible à factoriser afin de doter l'algorithme de chiffrement d'un niveau de sécurité approprié.
• Etape 23 : Générer k nombres aléatoires r[i] notés r[l], ...,r[k] ;
• Etape 24 : Générer k+1 nombres aléatoires q[i] notés q[0], ...,q[k]. Puis, une étape finale 25 est mise en œuvre afin de former les éléments x[i] = q[i] p + r[i] pour i allant de 0 à k. Les éléments x[i] définissant alors la clé publique PK.
Remarquons que les étapes 21, 22, 23 et 24 peuvent être réalisées dans n'importe quel ordre.
Le procédé de génération Gen de clés de l'ACPH de vDGHV mentionné précédemment présente l'inconvénient de produire une clé publique de taille gigantesque.
En effet, même avec l'amélioration décrite dans document D3, la clé publique PK reste une collection de k+b entiers x[i] définis par les relations x[i]=q[i]x +r[i] pour i=b, ...k où p est un nombre de taille η bits. Les entiers q[i] sont des entiers de taille γ-η bits et les r[i] sont des entiers petits de taille p, bits. Pour des raisons de sécurité, il est recommandé de prendre γ de l'ordre de 2 xlO7 bits, η de l'ordre de 3000 bits et p de l'ordre de 40 bits.
Les relations entre le paramètre de sécurité λ et les paramètres η, p, et γ sont : ρ~λ, η~λ2, et γ~λ5, où l'opérateur « ~ » signifie « proportionnel à ».
Ceci résulte en une collection de x[i] dont la taille totale est de l'ordre de 800 mégaoctets. Une telle clé est gigantesque et empêche tout déploiement industriel pratique de cet ACPH.
L'invention a donc pour objectif principal de réduire, par un procédé générique applicable à plusieurs types très différents d' ACPHs, la taille de la clé publique des ACPHs concernés. Cette réduction, résultant en pratique en une amélioration de taille de plusieurs ordres de grandeur n'est pas une division de la taille de la clé publique par une simple constante mais une division par un polynôme en λ, λ étant un paramètre dont dépend la sécurité des ACPHs considérés.
L'invention a pour second objectif d'accélérer au moins l'une des opérations Enc, Dec, Mul, Add de l'ACPH de vDGHV par le choix d'au moins un x[i] permettant des calculs plus rapides.
L'invention a plus généralement pour objectif de pallier à au moins certains inconvénients de l'ACPH connu de vDGHV. Plus précisément, un premier objectif de l'invention est de fournir une technique permettant de générer des clés publiques beaucoup plus courtes pour l'ACPH de vDGHV décrit précédemment. L'invention s'applique aussi, mutatis mutandis, aux ACPH décrits dans D3, D4a et D4b.
Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une technique permettant d'accélérer au moins l'une des opérations Enc, Dec, Mul, Add de l'ACPH de vDGHV par le choix d'au moins un x[i] permettant des calculs plus rapides.
A cette fin, il est proposé un procédé génération de clés publiques compressées d[i], pour un algorithme de chiffrement pleinement homomorphique à clé publique, mis en œuvre dans un dispositif comprenant au moins un microprocesseur et une mémoire. Selon l'invention, ledit procédé de génération de clés publiques compressées comporte une étape de génération déterministe, publique et préférablement pseudo-aléatoire d'au moins un élément de structure algébrique t[i] dont la transformation publique en au moins un élément de structure algébrique x[i] de la clé publique décompressée s'effectue par l'ajout ou par la soustraction à t[i] d'au moins un élément de structure algébrique d[i], dont la taille est significativement inférieure à la taille de x[i], le terme « significativement » signifiant un ratio de réduction non constant, et au moins égal à un polynôme en un paramètre λ dont dépend la sécurité dudit algorithme de chiffrement pleinement homomorphique à clé publique.
Un tel procédé peut comporter une étape pour substituer ledit « au moins un élément de structure algébrique d[i] » audit « au moins un élément de structure algébrique x[i] » dans la clé publique compressée.
Un procédé conforme à l'invention peut générer des clés publiques compressées pour l'ACPH de vDGHV (un tel procédé innovant est applicable à toutes les variantes d'ACPHs décrites dans l'article de vDGHV) ou pour l'ACPH de CMNT (un tel procédé innovant est applicable à toutes les variantes d'ACPHs décrites dans l'article de CMNT). Il comporte dès lors les étapes suivantes :
(a) Générer un entier impair secret p ;
(b) Générer de manière déterministe, publique et préférablement pseudo-aléatoire une collection d'entiers pseudo-aléatoires t[i] ;
(c) Générer de manière aléatoire ou pseudo-aléatoire des entiers secrets r[i] ;
(c) Déduire des entiers t[i] et r[i] les clés publiques compressées d[i] définies par la relation d[i]=r[i]-t[i] mod p ;
(d) Retourner la clé publique compressée PKcomp constituée par l'ensemble des entiers d[i] et par l'information publique nécessaire afin de régénérer les entiers t[i].
Remarquons que les étapes a, b et c peuvent être réalisées dans n'importe quel ordre.
Un procédé conforme à l'invention peut en outre générer des clés publiques compressées pour l'ACPH de vDGHV ou pour l'ACPH de
CMNT lorsque l'un des entiers r[i] est nul.
Un procédé conforme à l'invention peut en outre générer des clés publiques compressées pour l'ACPH de CMNT où les éléments x[i] se déclinent en deux familles dites x[i,0] et x[i,l] et où la définition des x[i,j] décompressés est modifiée de x[i,j] = t[i,j]+d[i,j]= t[i,j]+(r[i,j]-t[i,j] mod p) à x[ j]= t[i,j] + D[i,j]= tlijj+ia1-2) r[i,j]-t[i,j] mod p) où a est un nombre secret, aléatoire et inversible modulo p et où les D[i,j] remplacent les d[i,j] dans
PKcomp.
En variante, les deux ensembles d'éléments de la clé publique décompressée {x[i,0]} et {x[i,l]}, peuvent être fusionnés en un ensemble unique {x[i]j au sein duquel sont choisis aléatoirement des couples d'éléments (x[h], x[Ï2]) dont les produits x[ii]*x[i2] servent à la création du chiffré. Il peut alors être prévu que la définition des éléments de l'ensemble fusionné (x[i]} soit modifiée à x[i]= tlij+ia^rlij-tli] mod p) où a est un nombre secret, aléatoire et inversible modulo p, dont le carré A = a2 mod p est intégré dans PKcomp de sorte à ce que, lors du chiffrement, la multiplication χ[ίι]χχ[Ϊ2] puisse être remplacée par une multiplication corrigée à X[ÎI]*X[Î2] xA.
L'invention prévoit qu'un procédé conforme à l'invention puisse générer des clés publiques compressées pour l'ACPH de Brakerski et Vaikuntanathan (un tel procédé innovant est applicable à toutes les variantes d'ACPHs décrites dans l'article de Brakerski et Vaikuntanathan). Selon cette variante, le procédé comporte les étapes suivantes, où la notation « vec » désigne un vecteur dans (Zp)n :
(a) Prendre pour clé secrète vec(s) un élément aléatoire de (Zp)n;
(b) Générer un vecteur vec(a[i]) de manière déterministe, publique et préférablement pseudo-aléatoire ;
(c) Prendre pour r[i] des petits aléas dans Zp ;
(d) Retourner la clé publique compressée PKcomp constituée par l'ensemble des entiers d[i]=<vec(a[i]),vec(s)>+r[i] mod p et par l'information publique nécessaire pour régénérer les vecteurs vec(a[i]).
Remarquons que les étapes a, b et c peuvent être réalisées dans n'importe quel ordre.
Avantageusement, l'invention prévoit, pour certains procédés conformes à l'invention, que les entiers d[i] puissent être protégés par l'ajout ou la soustraction d'une quantité z[i]x p où z[i] est un entier aléatoire secret de taille comprise entre 1 et 200 bits.
L'invention prévoit qu'un procédé de compression conforme à l'invention admette un procédé de décompression associé. Un tel procédé comporte les étapes suivantes :
- Régénérer les éléments t[i] ;
- Ajouter ou soustraire à chaque t[i] l'élément d[i] afin d'obtenir un élément x[i] de la clé publique décompressée, ou afin d'obtenir un élément x'[i] lié à x[i] et intervenant dans l'opération de chiffrement.
Selon le procédé de compression prévu par l'invention pour l'ACPH de vDGHV ou pour l'ACPH de CMNT, un tel procédé de décompression, mis en œuvre dans un dispositif comprenant au moins un microprocesseur et une mémoire, peut se caractériser par le fait que la clé publique décompressée x[i] correspondante à PKcomp est formée par l'ensemble des entiers x[i]=t[i]+d[i] où les t[i] sont régénérés par le chiffreur et où les d[i] sont lus dans la clé publique compressée.
En variante, dans le cas de l'ACPH de Brakerski et Vaikuntanathan, la clé publique décompressée x[i] correspondante à PKcomp peut être formée par l'ensemble des x[i] = (vec(a[i]),d[i]) = (vec(a[i]), <vec(a[i]),vec(s)>+r[i] mod p) où les éléments vec(a[i]) sont régénérés de manière déterministe, publique et préférablement pseudo-aléatoire par le chiffreur et où les éléments d[i] sont lus dans la clé publique compressée.
L'invention prévoit que pour un procédé conforme à l'invention, la génération de manière déterministe, publique et préférablement pseudoaléatoire de données puisse s'effectuer à l'aide d'un générateur pseudo- aléatoire auquel sont fournies en entrée une graine à expanser et un indice i de la donnée t[i] à générer.
L'invention prévoit également un dispositif comprenant au moins un microprocesseur coopérant avec un moyen d'interface d'entrée et de sortie de données, un générateur aléatoire et une mémoire. Ledit microprocesseur est adapté pour mettre en œuvre des moyens de génération, compression ou décompression de clés publiques compressées d[i], pour un algorithme de chiffrement pleinement homomorphique à clé publique, selon l'invention.
L'invention prévoit en outre un produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en œuvre du procédé conforme à l'invention lorsque ledit programme est exécuté sur un ordinateur.
Il est également prévu un médium de stockage lisible par ordinateur et non transitoire, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur ou un processeur pour mettre en œuvre un procédé conforme à l'invention. De manière comparative, l'algorithme vDGHV, dans sa forme originelle, nécessite une clé de publique de 802 mégaoctets pour le choix de sécurité λ=72. L'algorithme résultant de l'application d'un procédé conforme à l'invention à vDGHV nécessite une clé de publique de taille 10,3 mégaoctets seulement.
L'emploi des variantes du procédé inventif utilisant le nombre a exposées précédemment (a étant un nombre secret, aléatoire et inversible modulo p) permettent une réduction supplémentaire de la taille de la clé publique à 5,15 mégaoctets (division de la taille par un facteur additionnel de 2).
D'autres caractéristiques et avantages apparaîtront plus clairement à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent parmi lesquelles :
- la figure 1 (précédemment décrite) présente un dispositif matériel de génération de clés de l'ACPH de vDGHV selon l'art antérieur (commun aux variantes b=0 et b=l) ;
- la figure 2 (précédemment décrite) présente les étapes principales d'un procédé de génération Gen de clés de l'ACPH de vDGHV (variante à sécurité renforcée à b=0 selon D3) ;
- la figure 3 présente des étapes d'un procédé de génération Gen' de clés conforme à l'invention.
De manière détaillée, il est prévu qu'un procédé de génération de clés secrètes et publiques Gen' de l'ACPH de vDGHV produisant une clé publique de taille réduite, puisse comprendre une étape de génération d'une clé secrète SK correspondant à la génération d'un nombre aléatoire p impair (si b=l) ou difficile ou impossible à factoriser (si b=0).
Un tel procédé de génération de clé publique comprend la génération déterministe, publique et préférablement pseudo-aléatoire de k+b entiers t[i] de taille gamma bits et leur transformation en k+b entiers x[i] de gamma bits en leur ajoutant des facteurs correctifs d[i] de taille eta bits, eta étant beaucoup plus petit que gamma.
La génération déterministe, publique et préférablement pseudoaléatoire (ci-après « DPPPA ») dont il est question pour la génération des entiers t[i] est idéalement un générateur pseudo-aléatoire F(se,i)=t[i] dont la graine se est intégrée dans la clé publique compressée. Cependant, il est clair à l'homme de l'art que les t[i] peuvent également être des séquences constantes de chiffres, par exemple, des morceaux successifs de gamma bits, prélevés par F[i] en position gamma *i sur une constante telle que pi=3,14159... Nous noterons par F(se,i) la fonction servant à la génération DPPPA des t[i], et ce y compris lorsque F n'utilise pas de graine se.
Un tel procédé assure, selon un premier mode de réalisation, la génération d'éléments de clé publique compressés d[i], donc beaucoup plus courtes que les x[i], pouvant être utilisées avec les ACPHs publiés dans les documents D2 et/ ou D3 dont les procédés de génération Gen sont modifiés en un procédé de génération inventif Gen' de sorte à comporter les étapes suivantes :
(a) si b=0 définir r[0]=0 ;
(b) générer un nombre aléatoire p, impair (si b=l) ou difficile ou impossible à factoriser (si b=0) ;
(c) générer k nombres aléatoires ou pseudo-aléatoires secrets r[i] notés r[l], ...,r[k] ;
(d) générer de manière DPPPA à partir d'une graine se les k+b nombres pseudo-aléatoires F(se,i)=t[i] notés t[b], ...,t[k] ;
(e) former des éléments d[i] = r[i]-t[i] mod p pour i allant de b à k;
(f) retourner ladite clé publique compressée PKcomp = {se, d[b], ...,d[k]} et la clé secrète SK = p.
Remarquons que les étapes a, b, c et d peuvent être réalisées dans n'importe quel ordre. Ladite clé publique compressée PKcomp peut se décompresser de manière publique ainsi :
(a) régénérer à l'aide de F à partir de la graine se les k+b nombres pseudo-aléatoires t[0], ...,t[k] ;
(b) former des éléments x[i] = t[i]+d[i] pour i allant de b à k;
(c) retourner ladite clé publique décompressée PK = {x[b], ...,x[k]} dont l'emploi est parfaitement similaire et compatible aux clés x[i] de l'ACPH de vDGHV et aux clés x[i] dont il est question dans D3.
Ainsi, ce procédé permet un décroissement considérable de la taille de la clé publique.
Dans une variante, il est proposé un procédé de génération de clés pour les ACPH décrits dans D2 et/ ou D3 modifié en ce que la fonction F a pour but de permettre la génération d'au moins un x[i] dont les propriétés arithmétiques sont de nature à accélérer au moins l'une des opérations Dec, Enc, Mul ou Add.
Une exemple d'une telle fonction F permettant l'accélération de calculs dans le cas b=0 est la génération d'un x[0] ayant une forme particulière permettant d'accélérer la réduction modulaire modulo x[0].
Un autre exemple d'une telle fonction F permettant l'accélération de calculs est un F générant au moins un t[i] résultant en au moins un x[i] dont la multiplication par la méthode dite de FFT (« Fast Fourier Transform ») est plus rapide ou plus aisée.
Un autre exemple d'une telle fonction F permettant l'accélération de calculs est un F générant au moins un t[i] présentant des séquences de chiffres partiellement périodiques rendant les opérations de multiplication ou d'addition plus aisées.
Dans une autre variante, il est proposé d'étendre les techniques précédentes applicables aux ACPH de D2 et/ ou D3 aux ACPHs basés sur le problème LWE décrits dans D4a et D4b. De telles extensions étant évidentes à l'homme de l'art. L'invention prévoit également un dispositif de calcul comportant un microprocesseur coopérant avec un moyen d'interface d'entrée et de sortie de données, un générateur aléatoire et une mémoire de laquelle ledit microprocesseur lit les instructions encodant un programme inventif de génération de clés fonctionnant selon l'un quelconque des procédés décrits précédemment.
La génération inventive des éléments x[i] de la clé publique compressée PKcomp à taille réduite pour un ACPH de type D2 ou de type D3 sur une architecture matérielle est effectuée de la manière suivante.
L'architecture matérielle du dispositif selon l'invention (non représenté) reprend les éléments de l'architecture matérielle du dispositif 10 de l'art antérieur décrit dans la figure 1, à savoir un microprocesseur 11 coopérant avec un moyen d'interface d'entrée et de sortie de données 12, un générateur aléatoire 13 et une mémoire 14 de laquelle le microprocesseur 11 lit les instructions encodant mettant en œuvre le procédé de génération Gen' de clés selon un mode de réalisation de l'invention.
Le procédé de génération inventif Gen' de clés compressées diffère du procédé de génération Gen de clés décrit précédemment par l'étape de génération de la clé publique de l'art antérieur. Au démarrage, le microprocesseur 11 génère la clé secrète p selon un mode de réalisation de l'invention, et les éléments correspondants PKcomp=(se, d[b], ...,d[k]} de la clé publique compressée. Une fois les éléments x[i] générés, le dispositif selon l'invention transmet PKcomp à destination d'un autre dispositif via l'interface d'entrée et de sortie de données 12.
La figure 3 présente des étapes d'un procédé inventif de génération Gen' de clés compressées, dans le cas b=0, selon un mode de réalisation de l'invention :
(a) étape 31 : définir r[0]=0 ;
(b) étape 32 : générer un nombre aléatoire p, difficile ou impossible à factoriser ; (c) étape 33 : générer k nombres aléatoires ou pseudo-aléatoires secrets r[i] notés r[l], ...,r[k] ;
(d) étape 34 : générer de manière DPPPA k+1 nombres t[i] notés t[0], ...,t[k] à partir d'une graine se ;
(e) étape 35 : former des éléments d[i] = r[i]-t[i] mod p pour i allant de 0 à k;
(f) étape 36 : retourner ladite clé publique compressée PKcomp = {se, d[0], ...,d[k]} et la clé secrète SK = p.
Remarquons que les étapes a,b,c et d peuvent être réalisées dans n'importe quel ordre.
La décompression de PKcomp en une clé décompressée s'effectue selon les étapes suivantes :
(a) recevoir PKcomp = {se, d[0], ...,d[k]} ;
(b) régénérer les k+1 nombres t[0], ...,t[k] à partir de la graine se ; (c) calculer x[i] = t[i] + d[i] pour i allant de 0 à k ;
(d) retourner la clé décompressée PK = {x[0], ...,x[k]j.
Selon un premier mode de réalisation, les d[i] ont une taille signifie ativement plus courte que les x[i].
Selon un second mode de réalisation, au moins un x[i] est construit afin d'avoir une forme ou des propriétés facilitant ou accélérant l'exécution d'au moins l'un les algorithmes Enc, Dec, Add ou Mul. Par exemple, dans le cas b=0 un tel mode de génération de nombres x[0] est connu de l'homme du métier et est, par exemple utilisé afin de générer des clés publiques particulières pour l'algorithme RSA. Un tel algorithme est par exemple décrit dans le document D5 correspondant l'article de Arjen Lenstra intitulé « Generating RSA moduli with a predetermined portion », publié dans les actes du colloque ASIACRYPT 1998.
Selon un troisième mode de réalisation au moins l'un des t[i] est généré de sorte à résulter en au moins un x[i] dont la multiplication par la méthode dite de FFT (« Fast Fourier Transform ») est plus rapide ou plus aisée. Par exemple, x[i] peut être généré directement en représentation FFT de sorte à ne pas avoir à être traduit en polynôme.
Selon un quatrième mode de réalisation les rho bits les moins significatifs des d[i] sont remplacés par des zéros. Ceci permet une compression supplémentaire de la clé publique.
Dans les quatre cas précédents, les tailles des paramètres p, x[i] et r[i] suivent les mêmes recommandations que celles décrites dans le document D2 ou dans le document D3.
Selon un cinquième mode de réalisation, propre seulement à la variante du document D3, où les éléments x[i] se déclinent en deux familles (dites x[i,0] et x[i,l]), il est proposé de modifier la définition des x[i,j] décompressées de x[i,j]=t[i,j]+d[i,j]=t[i,j]+(r[i,j]-t[i,j] mod p) en x[i,j]= t[i,j]+D[i,j] où D[i,j]=(a1-2) r[i,j]-t[i,j] mod p) et où a est un nombre aléatoire inversible modulo p. Il est évident à l'homme de l'art qu'une telle variante, qui n'a pas d'impact sur la sécurité, permet une réduction supplémentaire de la taille de la PKcomp dont les éléments sont maintenant D[i,j].
Selon un sixième mode de réalisation, propre seulement à la variante du document D3, où les éléments de la clé publique se déclinent en deux ensembles (dits {x[i,0]} et {x[i,l]}), il est proposé de fusionner les deux ensembles {x[i,0]} et {x[i,l]} en un ensemble unique {x[i]j au sein duquel sont choisis aléatoirement des couples d'éléments (x[h], x[Ï2]) dont les produits remplacent les produits de couples d'éléments (x[i,0], x[i,l]) lors du chiffrement. Il est évident à l'homme de l'art qu'une telle variante permet une réduction supplémentaire de la taille de PKcomp.
Selon un septième mode de réalisation, la définition des éléments de l'ensemble fusionné {x[ï]j du sixième mode de réalisation est modifiée à x[i]= tlij+ r lij-tli] mod p) où a est un nombre aléatoire inversible modulo p, dont le carré A = a2 mod p est intégré dans PKcomp. Lors du chiffrement, la multiplication x[ii]*x[i2] est remplacée par la multiplication corrigée χ[ίι]χχ[Ϊ2]χΑ. Il est évident à l'homme de l'art qu'une telle variante permet une réduction supplémentaire de la taille de la PKcomp. Selon un huitième mode de réalisation, afin d'obtenir une réduction supplémentaire de la taille de PKcomp lors de la mise en œuvre du septième mode de réalisation, l'entier A pourrait être généré de manière DPPPA et sa racine a calculée ensuite, connaissant la valeur de p.
Selon un neuvième mode de réalisation, le procédé inventif peut aussi s'étendre à l'ACPH décrit dans D4a et D4b.
Par la suite la notation « vec » désignera un vecteur dans K=(Zp)n. alors que les nombres dépourvus de la notation « vec » seront des entiers.
Dans l'ACPH décrit dans D4a et D4b la clé publique est un ensemble de chiffrés de la forme x[i] = (vec(a[i]),<vec(a[i]),vec(s)>+r[i] mod p) où vec(a[i]) est un élément aléatoire de K et la clé secrète vec(s) est aussi un élément aléatoire de K. r[i] est un petit bruit aléatoire pris dans Zp.
Ainsi, afin de transposer le procédé inventif à la compression d'une clé publique pour ACPH de type D4a ou D4b, il suffit de générer les vec(a[i]) de manière DPPPA et ne sauvegarder que les termes correctifs de la clé publique compressée d[i]=<vec(a[i]),vec(s)>+r[i] mod p.
Selon un dixième mode de réalisation les données d[i] générées pour les ACPHs décrits dans les documents D2, D3, D4a ou D4b, peuvent faire l'objet d'une protection renforcée par l'ajout d'un multiple supplémentaire de p.
Ainsi, pour le cas de l'ACPH du document D2, la clé compressée renforcée d'[i] est définie par la relation d'[i] = d[i] + z[i] p = (r[i]-t[i] mod p)+ z[i] p où z[i] est un entier signé aléatoire dont la recherche exhaustive dépasse les moyens de calcul actuels.
Selon un onzième mode de réalisation, la génération de manière
DPPPA de données dont il est question dans le présent document peut s'effectuer à l'aide d'un générateur pseudo-aléatoire auquel sont fournies en entrée une graine à expanser et un indice i de la donnée à générer.
Par ailleurs, l'une quelconque des variantes du procédé selon l'invention, décrites précédemment, peut également être implémentée sous forme de matériel dans un composant programmable de type FPGA (« Field Programmable Gâte Array » en anglais) ou de type ASIC (« Application-Specific Integrated Circuit » en anglais).

Claims

REVENDICATIONS
1. Procédé de génération de clés publiques compressées d[i], pour un algorithme de chiffrement pleinement homomorphique à clé publique, mis en œuvre dans un dispositif comprenant au moins un microprocesseur (11) et une mémoire (14), ledit procédé de génération de clés publiques compressées étant caractérisé en ce qu'il comporte une étape (34) de génération déterministe, publique et préférablement pseudoaléatoire d'au moins un élément de structure algébrique t[i] dont la transformation publique (35) en au moins un élément de structure algébrique x[i] de la clé publique décompressée s'effectue par l'ajout ou par la soustraction à t[i] d'au moins un élément de structure algébrique d[i], dont la taille est significativement inférieure à la taille de x[i], le terme « significativement » signifiant un ratio de réduction non constant, et au moins égal à un polynôme en un paramètre λ dont dépend la sécurité dudit algorithme de chiffrement pleinement homomorphique à clé publique.
2. Procédé selon la revendication 1 pour la génération de clés publiques compressées pour l'algorithme de chiffrement pleinement homomorphique à clé publique de van Dijk, Gentry, Halevi et Vaikuntanathan ou pour l'algorithme de chiffrement pleinement homomorphique à clé publique de Coron, Mandai, Naccache et Tibouchi, caractérisé en ce qu'il comporte les étapes suivantes :
(a) Générer (32) un entier impair secret p ;
(b) Générer (34) de manière déterministe, publique et préférablement pseudo-aléatoire une collection d'entiers pseudo-aléatoires m ;
(c) Générer (31, 33) de manière aléatoire ou pseudo-aléatoire des entiers secrets r[i] ; (c) Déduire (35) des entiers t[i] et r[i] les clés publiques compressées d[i] définies par la relation d[i]=r[i]-t[i] mod p ;
(d) Retourner (36) la clé publique compressée PKcomp constituée par l'ensemble des entiers d[i] et par l'information publique nécessaire afin de régénérer les entiers t[i].
3. Procédé selon la revendication 2 pour générer des clés publiques compressées pour l'algorithme de chiffrement pleinement homomorphique à clé publique van Dijk, Gentry, Halevi, et Vaikuntanathan ou pour l'algorithme de chiffrement pleinement homomorphique à clé publique de Coron, Mandai, Naccache et Tibouchi, caractérisé en ce que l'un des entiers r[i] est nul.
4. Procédé selon les revendications 2 ou 3 pour la génération de clés publiques compressées pour l'algorithme de chiffrement pleinement homomorphique à clé publique de Coron, Mandai, Naccache et Tibouchi, caractérisé en que les éléments x[i] se déclinent en deux familles dites x[i,0] et x[i,l] et où la définition des x[i,j] décompressés est modifiée de x[i,j] = t[i,j]+d[i,j]= t[i,j]+(r[i,j]-t[i,j] mod p) à x[i,j]= t[i,j] + D[i,j]= tlijj+ia1-2) r[i,j]- t[i,j] mod p) où a est un nombre secret, aléatoire et inversible modulo p et où des entiers D[i,j] sont utilisés en lieu et place des entiers d[i,j].
5. Procédé selon l'une quelconque des revendications 1 à 3 pour la génération de clés publiques compressées pour l'algorithme de chiffrement pleinement homomorphique à clé publique de Coron, Mandai, Naccache et Tibouchi, caractérisé en que les éléments x[i] se déclinent en deux ensembles {x[i,0]} et {x[i,l]}, définis pour j=0 etj=l par la relation x[i,j]= t[i,j] + D[i,j]= tlijj+ia1-2) r[i,j]-t[i,j] mod p) où a est un nombre secret, aléatoire et inversible modulo p, r[i,j] sont des entiers secrets générés (31, 33) de manière aléatoire ou pseudo-aléatoire, éventuellement à l'exception d'un entre les r[i,j], et où D[i,j] sont des entiers utilisés en lieu et place des entiers d[i,j], sont fusionnés en un ensemble unique (x[i]} au sein duquel sont choisis aléatoirement des couples d'éléments (x[h], x[Ï2]) dont les produits x[h]xx[Î2] servent à la création du chiffré.
6. Procédé selon la revendication 5 caractérisé en que, la définition des éléments de l'ensemble fusionné (x[i]} est modifiée à x[i]= tlij+ia^rlij-tli] mod p) où a est un nombre secret, aléatoire et inversible modulo p, dont le carré A = a2 mod p est intégré dans PKcomp de sorte à ce que, lors du chiffrement, la multiplication x[h]xx[Î2] puisse être remplacée par une multiplication corrigée à χ[ίι]*χ[ί2]χΑ.
7. Procédé selon la revendication 1 pour la génération de clés publiques compressées pour l'algorithme de chiffrement pleinement homomorphique à clé publique de Brakerski et Vaikuntanathan, caractérisé par les étapes suivantes, où la notation « vec » désigne un vecteur dans (Zp)n :
(a) Prendre pour clé secrète vec(s) un élément aléatoire de (Zp)n;
(b) Générer un vecteur vec(a[i]) de manière déterministe, publique et préférablement pseudo-aléatoire ;
(c) Prendre pour r[i] des petits aléas dans Zp ;
(d) Retourner la clé publique compressée PKcomp constituée par l'ensemble des entiers d[i]=<vec(a[i]),vec(s)>+r[i] mod p et par l'information publique nécessaire pour régénérer les vecteurs vec(a[i]).
8. Procédé de génération de clés publiques compressées selon l'une quelconque des revendications 1 à 7, où les entiers d[i] sont protégés par l'ajout ou la soustraction d'une quantité z[i]x p où z[i] est un entier aléatoire secret de taille comprise entre 1 et 200 bits.
9. Procédé de décompression de clés publiques compressées selon la revendication 1, caractérisé en ce qu'il comporte les étapes suivantes : - Régénérer les éléments t[i] ;
- Ajouter ou soustraire à chaque t[i] l'élément d[i] afin d'obtenir un élément x[i] de la clé publique décompressée, ou afin d'obtenir un élément x'[i] lié à x[i] et intervenant dans l'opération de chiffrement.
10. Procédé de décompression selon la revendication 9 de clés publiques compressées selon un procédé conforme à l'une quelconque des revendications 1, 2, 3, 4, 5, 6, 8, ledit procédé de décompression étant mis en œuvre dans un dispositif comprenant au moins un microprocesseur (11) et une mémoire (14), caractérisé en ce que la clé publique décompressée x[i] correspondante à PKcomp est formée par l'ensemble des entiers x[i]=t[i]+d[i] où les t[i] sont régénérés par le chiffreur et où les d[i] sont lus dans la clé publique compressée.
11. Procédé de décompression selon la revendication 9 de clés publiques compressées selon un procédé conforme à l'une quelconque des revendications 1, 7, 8, ledit procédé de décompression étant mis en œuvre dans un dispositif comprenant au moins un microprocesseur (11) et une mémoire (14), caractérisé en ce que la clé publique décompressée x[i] correspondante à PKcomp est formée par l'ensemble des x[i] = (vec(a[i]),d[i]) = (vec(a[i]), <vec(a[i]),vec(s)>+r[i] mod p) où les éléments vec(a[i]) sont régénérés de manière déterministe, publique et préférablement pseudo-aléatoire par le chiffreur et où les éléments d[i] sont lus dans la clé publique compressée et r[i] est un petit bruit aléatoire pris dans Zp.
12. Procédé selon l'une quelconque des revendications 1 à 11, où la génération de manière déterministe, publique et préférablement pseudoaléatoire de données s'effectue à l'aide d'un générateur pseudo-aléatoire auquel sont fournies en entrée une graine à expanser et un indice i de la donnée t[i] à générer.
13. Dispositif comprenant au moins un microprocesseur (11) coopérant avec un moyen d'interface d'entrée et de sortie de données (12), un générateur aléatoire (13) et une mémoire (14), caractérisé en ce que ledit microprocesseur met en œuvre des moyens de génération, compression ou décompression de clés publiques compressées d[i], pour un algorithme de chiffrement pleinement homomorphique à clé publique, selon l'une quelconque des revendications 1 à 12.
14. Produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en œuvre du procédé selon l'une quelconque des revendications 1 à 12 lorsque ledit programme est exécuté sur un ordinateur.
15. Médium de stockage lisible par ordinateur et non transitoire, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur ou un processeur pour mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 12.
PCT/FR2012/051891 2011-08-12 2012-08-13 Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique WO2013024230A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1157331 2011-08-12
FR1157331A FR2979043B1 (fr) 2011-08-12 2011-08-12 Dispositif et procede de compression de cles publiques pour algorithme de chiffrement pleinement homomorphique

Publications (2)

Publication Number Publication Date
WO2013024230A2 true WO2013024230A2 (fr) 2013-02-21
WO2013024230A3 WO2013024230A3 (fr) 2014-03-20

Family

ID=46275863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2012/051891 WO2013024230A2 (fr) 2011-08-12 2012-08-13 Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique

Country Status (2)

Country Link
FR (1) FR2979043B1 (fr)
WO (1) WO2013024230A2 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109861821A (zh) * 2019-02-26 2019-06-07 清华大学 一种用于lwe公钥密码的错误协调方法
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831297A (zh) * 2019-01-24 2019-05-31 中国人民武装警察部队工程大学 一种支持门限解密的多身份全同态加密方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009009868A1 (fr) * 2007-07-17 2009-01-22 Certicom Corp. Procede de compression de valeur cryptographique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009009868A1 (fr) * 2007-07-17 2009-01-22 Certicom Corp. Procede de compression de valeur cryptographique

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
JEAN-SÉBASTIEN CORON ET AL: "Fully Homomorphic Encryption over the Integers with Shorter Public Keys", 6 août 2011 (2011-08-06), ADVANCES IN CRYPTOLOGY Â CRYPTO 2011, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 487 - 504, XP019161023, ISBN: 978-3-642-22791-2 section 3.1 *
JEAN-SÉBASTIEN CORON ET AL: "Public Key Compression and Modulus Switching for Fully Homomorphic Encryption over the Integers", 15 avril 2012 (2012-04-15), ADVANCES IN CRYPTOLOGY EUROCRYPT 2012, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 446 - 464, XP019175409, ISBN: 978-3-642-29010-7 sections 1 à 4 *
LENSTRA A K: "Generating RSA moduli with a predetermined portion", LECTURE NOTES IN COMPUTER SCIENCE/COMPUTATIONAL SCIENCE (CPAIOR 2011), SPRINGER, DE, no. 1514, 1 octobre 1998 (1998-10-01), pages 1-10, XP002108059, DOI: 10.1007/3-540-49649-1_1 ISBN: 978-3-540-24128-7 *
MARC JOYE ED - LIQUN CHEN ET AL: "RSA Moduli with a Predetermined Portion: Techniques and Applications", 7 mai 2007 (2007-05-07), INFORMATION SECURITY PRACTICE AND EXPERIENCE; [LECTURE NOTES IN COMPUTER SCIENCE], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 116 - 130, XP019088340, ISBN: 978-3-540-79103-4 section 4, algorithmes 2 et 3 *
MARTEN VAN DIJK ET AL: "Fully Homomorphic Encryption over the Integers", 30 mai 2010 (2010-05-30), ADVANCES IN CRYPTOLOGY Â EUROCRYPT 2010, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 24 - 43, XP019142529, ISBN: 978-3-642-13189-9 section 3 *
ZVIKA BRAKERSKI ET AL: "Fully Homomorphic Encryption from Ring-LWE and Security for Key Dependent Messages", 6 août 2011 (2011-08-06), ADVANCES IN CRYPTOLOGY Â CRYPTO 2011, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 505 - 524, XP019161024, ISBN: 978-3-642-22791-2 le document en entier *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing
CN109861821A (zh) * 2019-02-26 2019-06-07 清华大学 一种用于lwe公钥密码的错误协调方法
CN109861821B (zh) * 2019-02-26 2020-10-30 清华大学 一种用于lwe公钥密码的错误协调方法

Also Published As

Publication number Publication date
WO2013024230A3 (fr) 2014-03-20
FR2979043A1 (fr) 2013-02-15
FR2979043B1 (fr) 2016-02-12

Similar Documents

Publication Publication Date Title
EP2707989B1 (fr) Dispositif et procede de generation de cles a securite renforcee pour algorithme de chiffrement pleinement homomorphique
EP2256987B1 (fr) Protection d&#39;une génération de nombres premiers pour algorithme RSA
EP1358732B2 (fr) Procede de cryptage securise et composant utilisant un tel procede de cryptage
EP2296086B1 (fr) Protection d&#39;une génération de nombres premiers contre des attaques par canaux cachés
FR3001315A1 (fr) Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
FR2986631A1 (fr) Dispositif et procede de production d&#39;un code d&#39;authentification d&#39;un message
EP2458776A1 (fr) Procédé et système de protection d&#39;un dispositif de cryptographie
EP2415199B1 (fr) Procede pour effectuer une tache cryptographique dans un composant electronique
FR2788650A1 (fr) Procede cryptographique a cles publique et privee
WO2001093014A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un alrogithme de cryptographie a cle publique sur courbe elliptique
EP3373509B1 (fr) Procédé de signature électronique d&#39;un document avec une clé secrète prédéterminée
EP3334121A1 (fr) Procédé de génération d&#39;une signature électronique d&#39;un document associé à un condensat
WO2013024230A2 (fr) Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique
EP2179535B1 (fr) Procede asymetrique de chiffrement ou de verification de signature
EP2517397A1 (fr) Procede de chiffrement et de dechiffrement
EP4150852B1 (fr) Procédé, systèmes et services cryptographiques d&#39;évaluation de fonctions univariées à valeurs réelles sur des données chiffrées
CA2867241A1 (fr) Procede de cryptage d&#39;une pluralite de donnees en un ensemble securise
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
WO2018084691A2 (fr) Un efficace cryptosysteme entierement homomorphe a base des quaternions
EP3407537B1 (fr) Procédé de signature électronique d&#39;un document avec une clé secrète prédéterminée
EP0962069B1 (fr) Systeme cryptographique comprenant un systeme de chiffrement et de dechiffrement et un systeme de sequestre de cles
EP2530867A1 (fr) Procédé de traitement cryptographique de données
EP3840282A1 (fr) Procédé de traitement cryptographique, dispositif électronique et programme d&#39;ordinateur associés
WO1998051038A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
EP4024753B1 (fr) Procédé et module électronique de calcul d&#39;une quantité cryptographique avec multiplications sans retenue, procédé et dispositif électronique de traitement d&#39;une donnée et programme d&#39;ordinateur associés

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12824245

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 12824245

Country of ref document: EP

Kind code of ref document: A2