Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HOMOMORPHIC ENCRYPTION METHOD AND ASSOCIATED DEVICES AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2022/129979
Kind Code:
A1
Abstract:
The disclosed technology concerns an homomorphic encryption technique that enables to carry on operations on encrypted messages without decrypting them, these encrypted messages being associated to unencrypted messages that belong to a discrete set consisting of pi distinct elements, with pi being an odd number, the elements of said discrete set being such that twice the difference between any two of these elements is not an integer number, said discrete set being for instance the discrete torus Tpi= {-(pi-1)/2, -(pi- 1)/2+1,..., (pi-1)/2-1,(pi-1 )/2}/pi. In particular, a specific bootstrapping procedure form such encrypted messages is disclosed. The disclosed technology concerns also an homomorphic encryption technique for carrying on operations on encrypted messages associated to unencrypted messages that belong Zp, p being equal to the product of r integer numbers pi, i=1..r that are pairwise coprime. The disclosed technology concerns also associated electronic devices and systems implementing such techniques.

Inventors:
KOSKAS MICHEL (FR)
CHARTIER PHILIPPE (FR)
LEMOU MOHAMMED (FR)
MEHATS FLORIAN (FR)
Application Number:
PCT/IB2020/001147
Publication Date:
June 23, 2022
Filing Date:
December 18, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
RAVEL TECH (FR)
International Classes:
H04L9/00
Other References:
ILARIA CHILLOTTI ET AL: "TFHE: Fast Fully Homomorphic Encryption over the Torus", vol. 20180510:205538, 8 May 2018 (2018-05-08), pages 1 - 59, XP061025748, Retrieved from the Internet [retrieved on 20180508]
OKADA HIROKI ET AL: "Integerwise Functional Bootstrapping on TFHE", ADVANCES IN INTELLIGENT DATA ANALYSIS XIX; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], vol. 7, no. 499304, 25 November 2020 (2020-11-25), pages 107 - 125, XP047572334, ISSN: 0302-9743, ISBN: 978-3-540-69901-9
ILARIA CHILLOTTI ET AL: "Programmable Bootstrapping Enables Efficient Homomorphic Inference of Deep Neural Networks *", 15 October 2020 (2020-10-15), XP055837258, Retrieved from the Internet [retrieved on 20210902]
HALEVI SHAI ET AL: "An Improved RNS Variant of the BFV Homomorphic Encryption Scheme", 3 February 2019, ADVANCES IN DATABASES AND INFORMATION SYSTEMS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CHAM, PAGE(S) 83 - 105, ISBN: 978-3-319-10403-4, XP047502870
LLARIA CHILLOTTINICOLAS GAMAMARIYA GEORGIEVAMALIKA IZABACHENE: "TFHE: Fast fully homomorphic encryption over the torus", JOURNAL OF CRYPTOLOGY, vol. 33, no. 1, 2020, pages 34 - 91
Attorney, Agent or Firm:
CAMUS, Olivier et al. (FR)
Download PDF:
Claims:
CLAIMS 1. Method for determining an encrypted message ci, which is an encrypted version of a message mi, ci being equal to (ai,bi) where bi is determined from mi and from a secret key s, bi being equal to mi+ei+ai.s with ai being a randomly selected vector for projecting s and ei being a random noise component added to mi+ai.s, wherein the message mi belongs to a discrete set consisting of pi distinct elements, with pi being an odd number, the elements of said discrete set being such that twice the difference between any two of these elements is not an integer number, said discrete set being the discrete torus or the set Tpi,N[X] of polynomials of degree N-1 whose coefficients belong to Tpi, or another discrete set in bijective relationship with Tpi.. 2. A Method for bootstrapping the encrypted message ci=(ai,bi) determined according to claim 1, the method for bootstrapping comprising a determination of a refreshed encrypted message ci’=(ai’,bi’), which is an encrypted version of a value g(mi) of a function g applied to the message mi, ci’ having a noise component ei’ smaller than ei. 3. Method according to claim 2, wherein the determination of ci’ comprises a step of determining homomorphically the constant coefficient coefo(Xq.Wg(X)) of Xq.Wg(X) mod (XN+1), where - is a polynomial of degree N-1 whose coefficients wj are given by the following formula: with being the integer number that is the nearest to 2Nmi and with being the ceiling function applied to , and where - q is the integer number that is the nearest to 2N(bi-ai.s): q =

4. Method according to claim 3, wherein N is below 50 times pi, or even below 30 times pi. 5. Method according to claim 3 or 4, wherein N is above pi, or even above 5 times pi. 6. Method for homomorphically multiplying two messages m1i and m2i, each belonging to the discrete torus Tpi or to the set of polynomials Tpi,N[X], the method comprising a determination of an encrypted message c3i which is an encrypted version of the product of m1i by m2i, c3i being determined from encrypted messages c1i and c2i without decrypting c1i or c2i, c1i and c2i being encrypted versions of m1i and m2i respectively, that have been determined according to the method of claim 1, the determination of c3i comprising homomorphically determining Where and are determined homomorphically by executing the method for bootstrapping according to any of claims 2 to 5, the function g being the function respectively, 7. Method for determining an encrypted message cf,i, which is an encrypted version of a value f(m1i,m2i) of a two-variable function f applied to messages m1i and m2i, m1i and m2i belonging each to said discrete set, cƒ,i being determined from encrypted messages c1i and c2i without decrypting c1i or c2i, c1i and c2i being encrypted versions of m1i and m2i respectively, that have been determined according to the method of claim 1, the determination of cƒ,i comprising: - determining c1'i and c2'i, from c1i and c2i respectively, by executing the method for bootstrapping according to any of claims 2 to 5, the function g employed during this bootstrapping being a function gmap that maps said discrete set onto a set S whose elements µj belong each to the torus T=]-1/2,1/2] and are such that, for any set of indexes (i,j,k,l) with (i,j)≠(k,l), (k,l) being different from (j,i): is different from α modulo ½, with α and β being two constant and integer, given numbers, c1'i and c2'i being the encrypted versions of respectively, where belong each to S, - determining homomorphicically, from c1'i and c2'I, an encrypted message cs which is an encrypted version of - determining cf,i from cs by executing the method for bootstrapping according to any of claims 2 to 5, the function g employed during this bootstrapping being a one-variable function gf defined by the following condition: for any couple of messages m1j, m2j belonging each to said discrete set, 8. Method according to claim 7, wherein the elements of the set S are such that for any set of indexes (i,j,k,l) with (i,j)≠(k,l), α is different from modulo ½, even when (k,l)=(j,i). 9. Method according to claim 8, wherein α=1 and β=-1, cs being determined by computing the homomorphic difference between c1'i and or wherein α=-1 and β=1, cs being determined by computing the homomorphic difference between 10. Method according to claim 7, wherein the function f is symmetric, f(m1i,m2i) being equal to f(m2i,m1i) for any couple of messages m1i and m2i, and wherein α and β are each equal to 1, cs being determined by computing the homomorphic sum of c1'i and c2': cs = 11. Method for determining an encrypted message C, which is an encrypted version of a message x belonging to p being equal to where the integer numbers pi are pairwise coprime, the method comprising: - (D) decomposing x into its components xi, i=1...r, with xi equal to x modulo pi, - (E) for each component xi whose associated factor pi is odd, determining an encrypted version ci of a message mi, according to the method of claim 1, mi being, among the elements of said discrete set, the element that is associated to xi by a given bijective relationship between and said discrete set, - if a component xi is associated to a factor pi equal to 2, determining an encrypted version ci of a quantity Qi associated to xi and that can takes two distinct values, ci being equal to (ai,bi) with bi= Qi+ei+ai.s, - returning C=(c1,...ci,...cr). 12. Method for bootstrapping the encrypted message C=(c1,...ci,...cr) determined according to claim 11, this method comprising: - for each ci whose associated factor pi is odd, determining a refreshed encrypted message c'i, from ci, by executing the method for bootstrapping according to any of claims 2 to 5, - returning C'=(c'1,...,c'i,...c'r). 13. Method for determining an encrypted message C3=(c31,...c3i,...c3r), which is an encrypted version of the product of two messages x1 and x2, each belonging to C3 being determined from encrypted messages C1 and C2, without decrypting C1 or C2, C1 and C2 being encrypted versions of x1 and x2 respectively, C1=(c11,...c1i,...c1r) and C2=(c21,...c2i,...c2r) having been determined from x1 and x2 respectively, according to the method of claim 11, wherein said discrete set is Tpi or Tpi,N[X], wherein each component c3i of C3 is determined from the corresponding components c1i and c2i of C1 and C2, according to the method for multiplying of claim 6, when c1i and c2i are associated to a factor pi that is odd. 14. Encrypting device (2), comprising one or more processors and at least one memory, the encrypting device being programmed to make the processor or processors executing the following steps: - receiving data representative of an unencrypted message mi, that belongs to a discrete set consisting of pi distinct elements, with pi being an odd number and wherein the elements of said discrete set are such that twice the difference between any two of these elements is not an integer number, said discrete set being the discrete torus Tpi or the set Tpi,N[X] of polynomials of degree N-1 whose coefficients belong to Tpi, or to another discrete set in bijective relationship with Tpi , - processing said data according to the method of claim 1, to determine encrypted data representative of the encrypted message ci, the secret key s employed during said processing, stored at least transitorily in the memory of the encrypting device, being accessed by the processor or processors during said processing. 15. Cryptographic system (1) comprising the encrypting device (2) of claim 14 and a processing device (3), the processing device (3) comprising one or more processors and at least one memory, the processing device being programmed to make the processor or processors executing the following steps: - receiving data, representative of the encrypted message ci that has been produced by the encrypting device (2), - processing said data, according to the method for bootstrapping of any of claims 2 to 5, to determine refreshed data, representative of the encrypted message c'i, said processing being achieved without decrypting ci and without using, reading or accessing the secret key s. 16. Computer-readable program product comprising instructions that, when executed by a computer, make the computer to execute the bootstrapping method according to any of claim 2 to 5. 17. Computer-readable program product comprising instructions that, when executed by a computer, make the computer to execute the encrypting method according to claim 11.

Description:
HOMOMORPHIC ENCRYPTION METHOD AND ASSOCIATED DEVICES AND SYSTEM TECHNICAL FIELD The disclosed technology concerns methods, devices and systems for homomorphic encryption. BACKGROUND Homomorphic encryption, which allows one to perform calculations or data processing on encrypted data, without decrypting it first, has attracted a lot of attention recently. Indeed, digital data processing of personal data has become ubiquitous in our everyday lives. Confidentiality and privacy protection of such data has thus become critical, as such personal data tends to circulate more and more in our digital environment. In this context, homomorphic encryption is a very promising solution, as it enables to process data while preserving very securely data anonymization and privacy at the same time, as the data is not decrypted during its processing. Homomorphic encryption is usually based on the “learning with error” encryption scheme, in which the encrypted message c=(a,b) is derived from the unencrypted message m according to the following formula: b=m+e+a.s, where: - s is a secret key, - a is randomly chosen vector, for projecting the secret key s, and - e is a random noise component, added to m+a.s. To decrypt the message, someone possessing the secret key s may compute the quantity b-a.s (equal to m+e), and then round the result to remove the noise component e and retrieve the message m. Of course, the noise term e has to be, and to remain small enough, if one wants to be able to retrieve the message m. When two encrypted messages are summed up, or even worse, when they are homomorphically multiplied together, one obtains an encrypted message, which is an encrypted version of the sum, or product of the two initial, unencrypted messages, whose noise component is higher than for the two initial encrypted messages. So, to prevent the noise term from increasing and increasing in the course of data processing, a refreshing procedure, usually named “bootstrapping”, is executed repeatedly, usually after each operation on the encrypted message c. This procedure produces a refreshed version of c, that is an encrypted message c’ which is decrypted as m (when decrypted using s), and whose noise component is smaller than the one of c. The bootstrapping procedure usually comprises the homomorphic (that is: in encrypted form) computation of X q .V(X) where: - V(X) is the following polynomial:1+X+X 2 +X 3 +…+X N-1 , - and q is equal to the integer number that is the nearest to 2N(b-a.s) : The constant term of X q .V(X) mod (X N +1), that is coef o (X q .V(X)), is a refreshed version of c: it is an encrypted version of m, but with a noise component e’ smaller than the noise component e of c. One may note that the initial noise e is somehow washed out when (homomorphically) computing q, thanks to the rounding operation In this operation, the factor 2N plays the role of an expansion factor, that enables to spread the possible values of b-a.s (impaired by some noise) sufficiently, before rounding. Such a bootstrapping procedure is very useful and ingenious, but also very time- consuming (in particular because the operations involved have to be carried on homomorphically), all the more that it has to be executed repeatedly. The homomorphic encryption scheme succinctly described above, which combines “learning with error” and a bootstrapping procedure, is usually carried on with binary messages (that is, messages whose values are either 0 or 1). Indeed, in this technical field, most of the tools have been specifically developed and optimized for such messages. To perform homomorphic operations on a longer message, the message is decomposed into binary messages (classical binary decomposition), each binary message is encrypted separately, and the operation is then carried on, homomorphically, bit by bit. But in this process, one has to take into account the (encrypted) carry resulting from each binary addition, and to propagate this carry to the next binary operation. The process is thus a serial one, which is time consuming. Besides, each binary operation is carried homomorphically, which multiplies the number of homomorphic (and thus time-consuming) operations. SUMMARY In this context, a homomorphic encryption technology, that enables to process efficiently messages longer than binary ones, is disclosed. An aspect of this technology concerns a method for determining an encrypted message c i , which is an encrypted version of a message mi, c i being equal to (a i ,b i ) where b i is determined from mi and from a secret key s, b i being equal to mi+ei+a i .s with a i being a randomly selected vector for projecting s and ei being a random noise component added to mi+a i .s, wherein the message mi belongs to a discrete set consisting of p i distinct elements, with p i being an odd number and wherein the elements of said discrete set are such that twice the difference between any two of these elements is not an integer number, said discrete set being the discrete torus or the set T pi ,N[X] of polynomials of degree N-1 whose coefficients belong to T pi , or another discrete set in bijective relationship with T pi . The inventors have developed a homomorphic cryptographic technique for such “long” messages (longer than binary messages), enabling, among other things, adding, multiplying and refreshing (i.e.: bootstrapping) these messages while they remain encrypted. These operations are carried on without decomposing the message into binary, independently encrypted, smaller messages. In other words, the encrypted message is treated as a whole, with no decomposition onto smaller fields. So, the burden of dealing with encrypted carries and serial processing of the numerous and encrypted bits is avoided. It may be noted that the fact that a homomorphic processing is possible for long messages (without decomposing it), and the fact that this processing can be fast and efficient is far from being an immediate, straightforward result. Indeed, as mentioned above, most of the homomorphic cryptography tools currently available are adapted specifically to binary messages. So, the inventors had to go against the usual practice and prejudices and had to move forward in the development of specific (and elaborated) tools intended for longer messages, without knowing whether a direct homomorphic processing of long messages was actually possible or not, or whether it could be executed efficiently or not. In particular, the inventors had to elaborate a new homomorphic multiplication scheme and a new bootstrapping method (presented below), to develop such an encryption protocol. Only once these quite complex tools had been developed could the inventors be sure that such a treatment could actually be carried out. And, in the process of developing these new tools, the inventors realized that working with messages belonging to the discrete Torus T pi , or to the set of polynomials T pi ,N[X], or to another equivalent discrete set, with: - pi being an odd number, - and such that for any couple grouping two of the elements of said set, twice the difference between these two elements is not an integer number was very fruitful, as it turns out that these specific features make different operations, involved in the multiplication and bootstrapping process mentioned above, feasible (as will be described in more details later). The fact that a direct homomorphic processing of a "long" message is not only possible, but that it can also be achieved efficiently, in a limited time, is also far from obvious, at first glance. Indeed, when the message mi is long, that is when the integer number p i is quite large, for example equal to 17, 21, or more, one would expect at first sight to have to use polynomials whose degree N-1 is high, during bootstrapping operations. Indeed, as explained above, in the calculation of the quantity q, the integer N acts as a kind of expansion coefficient. So, when p i is large, as the possible values of the message mi (distributed in the interval ]-1/2;1/2]) are then close to each other, one expects to have to choose a number N that is large, in order to be able to spread these values sufficiently apart, before the rounding operation involved in the calculation of the quantity q. And a large N considerably increases the calculation time. More precisely, a rough estimate leads to the conclusion that N would have to be of the order of 10000 (with p i =20 and n=500, for instance), or greater, for the bootstrapping operation to work properly (that is with a low probability of losing of degrading the message m during this operation). And such values of N are almost prohibitive, in terms of computation time. But in fact, a complete, acute probability calculation shows that such a bootstrapping operation can be successfully performed with polynomials whose degree N-1 is much smaller than what the first approximate estimate mentioned above suggests. More precisely, it can be shown that an integer number N of the order of 1000 (e.g.1024) turns out to be sufficient for typical values of pi (about 20-40, for example). According to the disclosed technology, N may be selected as small as 50 times p i , or below, or even below 30 times p i , to take advantage of this surprisingly favorable scaling and accelerate the bootstrapping processing. The method for bootstrapping developed by the inventors, mentioned above, is a method for bootstrapping an encrypted message c i =(ai,b i ) determined as described above, this method comprising a determination of a refreshed encrypted message c i ’=(a i ’,b i ’), which is an encrypted version of a value g(mi) of a function g applied to the message mi, c i ’ having a noise component ei’ smaller than ei. The determination of c i ’ comprises a step of determining homomorphically the constant coefficient coef o (X q .Wg(X)) of X q .Wg(X) mod (X N +1), where is a polynomial of degree N-1, whose coefficients wj are given by the following formula: with being the integer number that is the nearest to 2nM i and with being the ceiling function applied to and where q is the integer number that is the nearest to So, during this bootstrapping operation, in addition to reducing (refreshing) the noise component of a cipher text, an arbitrary function g can be applied to the corresponding message mi. This accelerates considerably numerous data processing routines. Indeed, to apply such a function g to a message, instead of: carrying on an elementary operation (homomorphically), then bootstrapping the result (to counter the noise increase due to the preceding operation), carrying on another elementary operation, then bootstrapping the result, and so on, one just has to execute one time the special bootstrapping procedure presented above. In this bootstrapping procedure, the degree N-1 of the polynomial Wg(X) may be selected so as to be above p i , or even above 5 times p i . The disclosed technology concerns also a method for homomorphically multiplying two messages m1 i and m2 i , each belonging to the discrete torus T pi or to the set of polynomials T pi ,N[X], the method comprising a determination of an encrypted message c3 i which is an encrypted version of the product of m1 i by m2 i , c3 i being determined from encrypted versions c1 i and c2 i of the messages m1 i and m2 i , without decrypting c1 i or c2 i , the method comprising homomorphically determining Where and or and or and are determined homomorphically by executing the method for bootstrapping presented above, the function g being the function or, respectively, It may be noted that the tools presented above, for homomorphic processing of messages m i belonging to such a discrete set of p i elements (with p i odd), can, in addition to their own benefits, be applied in an extremely beneficial manner to a cryptographic technic for even longer messages, decomposed into smaller components mi, based on the Chinese remainder theorem decomposition, which, again, enables to avoid the burden of dealing with carries (so, in other words, the tools mentioned above are some kinds of basic bricks of this Chinese-remainder processing method, presented in more detail below). The disclosed technology concerns also a method for determining an encrypted message cf,i, which is an encrypted version of a value f(m1 i ,m2 i ) of a two-variable function f applied to messages m1 i and m2 i , m1 i and m2 i belonging each to the discrete set mentioned above (for instance the torus T pi or the set of polynomials T pi ,N[X]), cf,i being determined from encrypted messages c1 i and c2 i without decrypting c1 i or c2 i , c1 i and c2 i being encrypted versions of m1 i and m2 i respectively, that have been determined according to the method for encrypting presented above, the determination of cf,i comprising: - determining c1’i and c2’i, from c1 i and c2 i respectively, by executing the method for bootstrapping presented above, the function g employed during this bootstrapping being a function gmap that maps said discrete set onto a set S whose elements µj belong each to the torus T=]-1/2,1/2] and are such that, for any set of indexes (i,j,k,l) with (i,j)≠(k,l), (k,l) being different from (j,i): α.µi+β.µj is different from α.µk+ β.µl modulo ½, with α and β being two constant and integer, given numbers, c1’i and c2’i being the encrypted versions of m1 i =gmap(m1 i ) and m2 i =gmap(m2 i ) respectively, where m1 i and m2 i belong each to S, - determining homomorphicically, from c1’i and c2’I, an encrypted message cs which is an encrypted version of α.m1 i +β.m2 i , - determining cf,i from cs by executing the method for bootstrapping presented above, the function g employed during this bootstrapping being a one-variable function gf from T to T pi , defined by the following condition: for any couple of messages m1 j , m2 j belonging each to said discrete set, g f (α. m1 j + β. m2 j ) = f(m1 j , m2 j ) that is: According to an aspect of this technology, the elements of the set are such that for any set of indexes (i,j,k,l) with (i,j)≠(k,l), β is different from modulo ½, even when (k,l)=(j,i). In this case, one may have, in particular : α=1 and β=-1, cs being determined by computing the homomorphic difference between or α=-1 and β=1, cs being determined by computing the homomorphic difference between c2’i and c1’: According to another aspect of this technology, the function f is symmetric, f(m1 i ,m2 i ) being equal to f(m2 i ,m1 i ) for any couple of messages m1 i and m2 i , α and β are each equal to 1, and cs is determined by computing the homomorphic sum of c1’i and The disclosed technology also concerns such a method for determining an encrypted message cf,i, which is an encrypted version of a value f(m1 i ,m2 i ) of a two- variable function f, as such, independently from the bootstrapping method in question. Indeed, as the skilled person will appreciate, the method for homomorphically evaluating f, based on the intermediate mapping of said discrete set (e.g.:T pi ) onto S, can be achieved independently from this specific bootstrapping procedure, using any method for homomorphically mapping said discrete set on S (the mapping method being possibly different from the one described above), and using then any method for homomorphically applying a function like the function gf to the quantity According to an aspect of the disclosed technology, any of the methods presented above is executed by a computer (programmed or otherwise arranged to execute the method in question), that is an electronic device or system (possibly distributed among several distant, remote devices) comprising at least one processor for executing logical operations, and one memory device for storing data. In particular, an aspect of the technology concerns an encrypting device, comprising one or more processors and at least one memory, the encrypting device being programmed to make the processor or processors executing the following steps: - receiving data representative of an unencrypted message mi, that belongs to the discrete set mentioned above, - processing said data according to the method for encrypting presented above, to determine encrypted data representative of the encrypted message c i , the secret key s employed during said processing, stored at least transitorily in the memory of the encrypting device, being accessed by the processor or processors during said processing. An aspect of the disclosed technology concerns a cryptographic system comprising such an encrypting device and a processing device, the processing device comprising one or more processors and at least one memory, the processing device being programmed to make the processor or processors executing the following steps: - receiving data, representative of an encrypted message c i produced by the encrypting device, - processing said data, according to the method for bootstrapping that has been presented above, to determine refreshed data, representative of the encrypted message c’i, said processing being achieved without decrypting c i and without using, reading or accessing the secret key s. In particular, the secret key s may be completely absent from the processing device (which is a separate device distinct from the encrypting device), and remain absent from the processing device at all time. The disclosed technology also concerns such a processing device, as such, independently from the encrypting device. The processing device may also be programmed to execute the method for multiplying presented above, and the method for determining an encrypted message cf,i, which is an encrypted version of a value f(m1 i ,m2 i ) of the two-variable function f. The disclosed technology concerns also a computer-readable program product comprising instructions that, when executed by a computer, make the computer to execute any of the method presented above. The disclosed technology concerns also a method for determining an encrypted message C, which is an encrypted version of a message x belonging to being equal to where the integer numbers p i are pairwise coprime, the method comprising: - decomposing x into its components x i , i=1...r, with x i equal to x modulo p i , - for each componen xt i whose associated factor p i is odd, determining an encrypted version c i of a message mi, according to the method for encrypting that has been presented above mi being, among the elements of said discrete set, the element that is associated to x i by a given bijective relationship between and said discrete set, - if a component x i is associated to a factor p i equal to 2, determining an encrypted version c i of a quantity Q i associated to x i and that can takes two distinct values c i being equal to (a i ,b i ) with b i = Q i +e i +a i .s, - returning C=(c 1 ,...c i ,...c r ). An aspect of this technology concerns a method for bootstrapping the encrypted message C=(c 1 ,...c i ,...c r ) determined according the encrypting method that has just been described, this (generalized) bootstrapping method comprising: - for each c i whose associated factor p i is odd, determining a refreshed encrypted message c'i, from c i , by executing the method for bootstrapping that has been presented before, - returning C'=(c' 1 ,...,c' i ,...c' r ). This technology concerns also a method for determining an encrypted message C3=(c3 1 ,...c3 i ,...c3 r ), which is an encrypted version of the product of two messages x1 and x2, each belonging to C3 being determined from encrypted messages C1 and C2, without decrypting C1 or C2, C1 and C2 being encrypted versions of x1 and x2 respectively, C1=(c1 1 ,...c1 i ,...c1 r ) and C2=(c2 1 ,...c2 i ,...c2 r ) having been determined from x1 and x2 respectively, according to the method for encrypting that has just been presented, wherein said discrete set is T pi or T pi ,N[X], and wherein each component c3 i of C3 is determined from the corresponding components c1 i and c2 i of C1 and C2, according to the method for multiplying that was described above for messages belonging to the discrete torus T pi , when c1 i and c2 i are associated to a factor p i that is odd. The disclosed technology concerns such a method for bootstrapping a message C, or such a method for multiplying homomorphically two messages x1 and x2, in itself, independently from the bootstrapping method (for messages belonging to T pi ) that has been presented above. Indeed, as the skilled person will appreciate, these two methods, for processing encrypted messages, associated to unencrypted messages x belonging to (with p being equal to where the integer numbers p i are pairwise coprime), take advantage of the Chinese remainder theorem to process the encrypted “sub- messages” c i , i=1..r, independently from each other, without having to deal with, or anyhow considering (encrypted) carries. This technique could clearly be applied using other “sub-routines” than the one presented above, for the homomorphic processing of the sub-messages mi. In particular, any multiplying or bootstrapping method for elements belonging to the discrete set mentioned above (e.g.: the discrete torus T pi ) could be used, instead of the one described above. According to the disclosed technology, these encrypting and processing techniques (based on a “Chinese remainder” decomposition), could be executed by a computer. The disclosed technology concerns also an electronic device, comprising at least one processor and one memory, programmed or otherwise configured to execute one of these methods. The disclosed technology concerns also a computer-readable program product comprising instructions, whose execution by a computer make the computer to execute anyone of these methods. BRIEF DESCRIPTION OF THE DRAWINGS Other characteristics and benefits of the disclosed technology will become clear from the description which is given below, by way of example and non-restrictively, in reference to the figure, in which: Figure 1 represents, as a block-diagram, operations carried on to multiply homomorphically two messages. Figure 2 represents, as a block-diagram, operations carried on to evaluate homomorphically a two-variable function. Figure 3 represents, as a block-diagram, an encryption step of a long message x, based on a Chinese remainder decomposition. Figure 4 represents, as a block-diagram, operations carried on to add homomorphically two encrypted messages obtained previously according to the encryption step of figure 3. Figure 5 represents, as a block-diagram, operations carried on to multiply homomorphically two encrypted messages, obtained previously according to the encryption step of figure 3, said multiplication comprising several sub-multiplications carried on according to the process represented in figure 1. Figure 6 schematically illustrate a cryptographic system according to the disclosed technology. DETAILED DESCRIPTION As mentioned above, the disclosed technology concerns an homomorphic encryption technique that enables to carry on operations on encrypted messages without decrypting them, these encrypted messages being associated to unencrypted messages that are each longer than a single bit, and that are processed without being decomposed into individual binary messages. The disclosed technology concerns more particularly a technique for encrypting and processing messages mi, that belong to a discrete set consisting of p i distinct elements, with p i being an odd number, these messages being encrypted and processed directly, without decomposing these messages into smaller (for instance binary) messages that would be encrypted separately. This technology is presented below in the case where the discrete set in question is the discrete torus or the set T pi ,N[X] of polynomials of degree N-1 whose coefficients belong to T pi . Still, as the skilled person will appreciate, this technology can be applied as well (possibly, with minor modifications for the homomorphic addition or multiplication) to another discrete set of messages in bijective relationship with T pi , like (that is T pi with an offset of +1/p i ; it may be noted that for this alternative example, the different operations described below – including the bootstrapping procedure, but also the homomorphic multiplication - can be implemented in the same manner as in the case of T pi , even if the values may have to be shifted to reintegrate them in the interval [-1/2, 1/2[ ) for instance. The disclosed technology concerns also a technique for encrypting and processing even longer messages x, using a specific decomposition of the message x into smaller messages mi, this decomposition being based on the Chinese remainder theorem decomposition and enabling to process the sub-messages mi separately from each other, without having to take into account possible carries. The encryption technique for encrypting and processing a message m i , without decomposing it, will be presented first. The technique for encrypting and processing a longer message x, composed of several such messages mi, based on a Chinese remainder theorem decomposition, will be presented then. Finally, electronic devices and systems for implementing such methods will be presented. Homomorphic encryption and processing of a message mi belonging to T pi , or to T pi ,N[X]. As mentioned above, this homomorphic encryption technique is applied to messages mi that belong to the discrete torus or to the set T pi ,N[X] of polynomials of degree N-1 whose coefficients belong to T pi . More precisely, the set of polynomials T pi ,N[X] is the finite field composed of the polynomials of degree N-1 defined modulo X N +1, and whose coefficients belong to T pi : T pi ,N[X]=T pi [X]/(X N +1). Remarkably, the integer number p i is odd (which makes some of the operations described below possible). Encryption An unencrypted message mi, belonging to T pi , is encrypted according to the “learning with error” scheme: the encrypted message c i =(a i ,b i ) (or, in other words, the cypher text c i ), which is the encrypted version of mi, is determined by: - randomly choosing a vector a i , and - computing the quantity b i =m i +e i +a i .s where s is a secret key and where ei is a noise component, added to mi+a i .s. When mi belongs to T pi , the noise component ei belongs to the torus T=]-1/2,1/2]. And when mi belongs to T pi ,N[X], ei belongs to the set TN[X] of polynomials of degree N- 1, defined modulo (X N +1) and whose coefficients belong each to T. ei is randomly chosen according to a predefined statistical distribution. At least one feature of this distribution, for instance its standard deviation (or the standard deviation of each of its coefficients, when ei is a polynomial), is determined depending on the integer number p i . For instance, the standard deviation of this distribution is all the smaller than p i is high (this standard deviation may be inversely proportional to p i , for example). The secret key s is a vector having n components, each belonging to the set of integers Z, or to the set of polynomials of degree N-1, defined modulo (X N +1) and whose coefficients belong each to Z. In other words, s belongs to Z n , or to ZN[X] n , where ZN[X]= Z[X]/(X N +1). The secret key s may more particularly belong to B n , or to BN[X] n , where B={0,1} (B being the set constituted by the binary values 0 and 1). The vector a i has also n components, and is such that the scalar product a i .s belongs either to T pi (when mi belongs to T pi ), or to T pi ,N[X] (when mi belongs to T pi ,N[X]). For instance, if mi belongs of T pi , and if s belongs to B n , a i belongs to T pi n (each of the n components of a i belongs to T pi ). In the following, for the sake of clarity, we consider that mi belongs to T pi , and that s belongs to Z n or B n . Besides, in the following, we consider more specifically that s belongs to B n (which simplifies some of the operations involved in the bootstrapping procedure described below). To decrypt the encrypted message c i =(a i ,b i ), a decryption module or a decryption device that has access to the secret key s computes b i -a i .s (which is equal to mi+ei), and then rounds it to the nearest value belonging to the discrete Torus T pi , thus removing the noise component ei and obtaining mi. The encrypted message c i , obtained by encrypted mi using the secret key s, may be also noted Homomorphic operations An objective of the instant technology is to carry on operations homomorphically, that is to say to carry on operations on one, two or more messages m1 i , m2 i , …, but using their encrypted version c1 i , c2 i , … (instead of the unencrypted messages m1 i , m2 i , …) and without decrypting them, without knowing or having access to the secret key s. More generally, determining homomorphically a given quantity is meant determining an encrypted version of this quantity, on the basis of encrypted messages, without using or determining unencrypted versions (unencrypted counterparts) of these encrypted messages, and without using (in particular without accessing) the secret key s. In practice, it is particularly interesting to be able to achieve two-operands homomorphic operations, like a homomorphic addition, multiplication or comparison of two messages (which is very useful for sorting encrypted data without decrypting them). In the case of a two-operands operation, the usual (“normal”) operation, whose operands are m1 i and m2 i , is noted Op and its result is noted m3 i : m3 i =Op(m1 i ,m2 i ). The corresponding homomorphic operation (that is, the homomorphic counterpart of Op) is noted Hop. So, the homomorphic operation Hop is an operation: - whose operands are two cipher texts c1 i and c2 i , which are encrypted versions of two messages m1 i and m2 i respectively (each belonging to T pi ); - which produces a cipher text c3 i =Hop(c1 i ,c2 i ), that it determined from c1 i and c2 i without decrypting c1 i or c2 i , without using the secret key s (in particular, without knowing or accessing the secret key s); - the cipher text c3 i being an encrypted version of m3 i =Op(m1 i ,m2 i ). In other words, when decrypting c1 i , c2 i and c3 i using the secret key s, one gets respectively m1 i , m2 i and m3 i =Op(m1 i ,m2 i ). Homomorphic addition The homomorphic addition is noted ⊕, (Hop=⊕). The homomorphic addition of two cipher texts, c3 i =c1 i ⊕c2 i , is readily achieved by summing the two cipher texts c1 i =(a1 i ,b1 i ) and c2 i =(a2 i ,b2 i ) component by component: c3 i =(a3 i ,b3 i ) with a3 i =a1 i +a2 i and b3 i =b1 i +b2 i . Indeed, b3 i - s.a3 i =m1 i +m2 i +e1 i +e2 i is rounded as m1 i +m2 i (provided that e1 i +e2 i is small enough). So, c3 i =c1 i ⊕c2 i is indeed decrypted as m3 i =m1 i +m2 i . A homomorphic subtraction ⊖ can be achieved similarly by subtracting two cipher texts component by component. A homomorphic multiplication for messages belonging to the discrete torus is much more complicated to develop and to implement. It will be presented later, after having described a new bootstrapping technique for messages belonging to the discrete torus (as this bootstrapping technique is used to carry on the homomorphic multiplication in question). Method for bootstrapping an encrypted message c i A method for bootstrapping an encrypted message c i =(a i ,b i ), that had been determined, as described above, by encrypting a message mi using the secret key s, is presented below. This method comprises a homomorphic determination of a refreshed encrypted message c i ’=(a i ’,b i ’), which is an encrypted version of a value g(mi) of a function g applied to the message mi, c i ’ having a noise component ei’ smaller than the noise component ei of c i . The result c i ’ of this bootstrapping method, applied to c i , is noted G(c i ). So, this new bootstrapping method is a bootstrapping method adapted to messages mi that belong to the discrete torus T pi . It enables to refresh encrypted messages c i associated to such messages mi, that is to say to reduce the noise components ei of these cypher texts c i . And it enables also, at the same time, to apply an arbitrary function g to the message mi. In other words, this method enables to homomorphically determine the value g(mi) of the function g, applied to mi. The function g can be any function from T pi to T pi . In other words, g maps elements of T pi to elements of T pi (or elements of T pi ,N[X] to elements of T pi ,N[X]). The determination of c i ’ comprises a step of determining homomorphically the constant coefficient coef o (X q .W g (X)) of a polynomial X q .Wg(X) mod (X N +1), where q is the integer number that is the nearest to 2N(b i -a i .s): q = The homomorphic determination of coef o (X q .Wg(X)) is carried on in a way similar to prior art techniques, like described in section 6 of Ilaria Chillotti, Nicolas Gama, Mariya Georgieva, and Malika Izabachène, “TFHE: Fast fully homomorphic encryption over the torus”, Journal of Cryptology, 33(1):34–91, 2020, for instance, but using a specially designed polynomial W g (X), associated to the function g considered. The coefficients of the polynomial Wg(X), of degree N-1, are noted wj: They belong each to T pi and are determined as follow. Let’s consider a function fw, from Z to T pi , defined as: denoting the ceiling function. The coefficients wj of Wg(X) are then defined, depending on g, such that, for any mi belonging to T pi : So, the coefficients wj are related to the function g by the following equation: It can be proven that, given that p i is odd, and that twice the difference between any two of the elements of the discrete set considered (namely T pi , here) is not an integer number: a) it is possible, for any function g from T pi to T (and more generally for any function from any discrete set of p i elements such as defined above, to T), to construct a corresponding function fw, and thus a polynomial Wg(X), that fulfills the conditions given above, and that b) thanks to this particular choice of polynomial (i.e.: thanks to the use of the particular polynomial Wg(X)), homomorphically determining coef o (X q .Wg(X)) actually leads to the determination of an encrypted version of g(mi). The detailed (and quite elaborate) proof of these results is not presented here, for the sake of conciseness and as it not directly useful in view of implementing the instant technology. Still, it is noted that point a) is far from being immediate. Indeed, it can be readily noted that, for any z belonging to Z, So the function fw defined above is quite constrained, and a detailed analysis is in fact required to ensure that an adequate fw function can actually be constructed for any function g (provided that the conditions above, regarding p i and the elements of the set, are fulfilled). It may be noted that this bootstrapping technique, presented above in the case where the discrete set with p i elements is T pi (or T pi ,N[X]), can be applied as well in the case of another discrete set consisting of p i elements (with pi odd, and such that twice the difference between any two of the elements of this set is not an integer number). In particular, the formula giving the values of the coefficients wj of the polynomial Wg remains the same. As mentioned in the section entitled “summary”, the degree N-1 of the polynomial W g (X) can be chosen so that N is below 50 times p i , or even below 30 times p i , which is high enough to avoid enables erasing or degrading the message mi, while leading to a reasonably fast execution of this bootstrapping procedure. Besides, N may be chosen as equal to or higher p i , or even than 5 times p i . The coefficients w j of W g (X) are then numerous enough to adjust the polynomial Wg(X) to any, arbitrary function g, from T pi to T pi . Some details regarding the homomorphic evaluation of coef o (X q .Wg(X)) in itself are presented now. They are outlined briefly, as this evaluation is carried on in a way similar to prior art techniques (such as the one described in ***Ref1), apart from the specific choice of the polynomial W g (X). As known in the art, a polynomial such as X q .Wg(X) modulo (X N +1) can be decomposed into several successive modular products : where In the equation above, each product “.” is a modular product: the left term, for instance belongs to Z N [X], while the right term, for instance W g (X), or belongs to T pi,N [X]. Such a product is completely similar to the product y.mi of an integer number y with a number mi belonging to T pi , which is usually designated as a modular product (due to the modular structure of T pi , defined modulo 1). It is known that a modular product y.mi, or X j .Wg(X), can be computed homomorphically in the form of a so-called external product where is the encrypted version of the message m i (c i being computed as explained above), and where χ s ,(z) is the so-called TGSW encrypted form of z (TGSW standing for “Gentry, Sahai, Waters” Torus encryption, the TGSW scheme having been suggested in the article “Homomorphic encryption from learning with errors: Conceptually-simpler, asymptotically-faster, attribute-based”, by C. Gentry, A. Sahai, and B. Waters, InCrypto’13, 2013). Besides, as known in the art, a quantity like χ s , can be computed without knowing the secret key component sk, k=1...n (more generally, without knowing the secret key s). Indeed, as the secret key components sk, k=1...n belong each to B={0,1}, the quantity is equal to which is encrypted as And so, an encrypted version of X q .Wg(X) modulo (X N +1) can be computed without knowing or having access to the secret key s as it can be computed using an encrypted versions χ s ,(s k ) of the secret key components sk, sometimes designated as a Bootstrap Key BKk in the literature. Usually, the Bootstrap Key BK k = χ s ,(s k ), which is an encrypted version of the secret key component sk, encrypted using another key s’, is a public key. The way to compute the TGSW encrypted version χ s ,(y) of an integer number y or, equivalently, to compute the TRGSW (GSW Torus 'Ring') encrypted version χ s ,(P) of a polynomial P belonging to Z N [X], is recalled below. The way to compute the external product is also recalled. χ s ,(y) is defined as being equal to with: - where the z j , j=1…l(n+1) are l(n+1) distinct encrypted versions of 0, the null value 0 being encrypted with and where l is a given, fixed integer number; and - a matrix whose dimension is (n + 1) x (n + 1) x l and whose coefficients belong to the Torus being equal to: B being an integer number higher than or equal to 2. The external product between: - an encrypted message corresponding to a message m belonging to the discrete torus T pi , more generally to the torus T, and - an encrypted version C = χ s ,(y) of an integer number y, C ∈ is computed as explained below. The n+1 components c j , j=1..n+1 of the encrypted message are each decomposed, using a kind of numeral system of base B (like the one used to compute χ c8 ) : Then, one computes where h,i ^I^ z denotes the usual row-vector matrix product and where is a matrix of dimension (n+1)×l whose expression is: with The result, which be n+1 longs to T , is an encrypted version of y.m . In other words, decrypting this quantity using s gives y.m. This technique can be applied to any message m belonging to the torus T. So, it can also be applied, like here, to messages belonging to the discrete torus T pi . Homomorphic multiplication First, it is noted that the usual, natural multiplication cannot be used as such for multiplying two messages belonging to the discrete torus T pi . For elements belonging to the discrete torus T pi , a multiplication, noted x T , can however be defined, according to the following equation: where m1 i =x1 i /p i and m2 i =x2 i /p i each belong each to T pi , x1 i and x2 i being integer numbers, and where “.” is the usual, natural multiplication. Clearly, the product m3 i = m1 i x T m2 i belongs also to T pi . Besides, this multiplication between elements of the discrete torus complies with the modular nature of T pi . Indeed, for any couple of messages m1 i , m2 i belonging to T pi 2 : as x2 i is an integer number, and so, (m1 i + 1) x T m2 i = m1 i x T m2 i . The homomorphic multiplication procedure described here is noted It produces a cyphertext which is an encrypted version of m3 i = m1 i x T m2 i , c1 i and c2 i being encrypted versions of m1 i and m2 i respectively. To determine c3 i , that is to say to determine homomorphically the quantity (x1 i . x2 i )/p i mod (1), the bootstrapping procedure described above is exploited, as well as the fact that xy=((x+y) 2 -(x-y) 2 )/4. This identity is employed to switch from the two-operands multiplication operation xy to a single-operand squaring operation, this squaring operation being carried on homomorphically thanks to this specific bootstrapping procedure (thanks to an appropriate choice of the function g). More precisely, to determine homomorphically one determines homomorphically the quantity M below : where (m1 i + m2 i ) 2 = (m1 i + m2 i ) · (m1 i + m2 i ), “.” being the usual, natural multiplication. Indeed,

as (pi+1)/2 is the inverse of 2, in Z pi . In this respect, it is noted that it is useful to have p i odd, as it allows 2 to be inversible, in Z pi . To determine homomorphically the quantity one computes where Gsq denotes the bootstrapping procedure described above, in the particular case where the function g is the function: And so, finally c3 i is determined, homomorphically, from c1 i and c2 i , according to the following equation, where is the external product mentioned above (see figure 1): As the skilled person will appreciate, several modifications can be made to this homomorphic multiplication procedure, without departing from the disclosed technology. For instance, instead of using the bootstrapping “function” G sq to determine homomorphically the quantity M, one could use another bootstrapping “function”, noted G sq , which corresponds to the bootstrapping procedure described above in the particular case where the function g is the function: In this case the encrypted product c3 i is determined, homomorphically, according to the following equation: Still, using G sq will enable a faster computation than G sq' , as it prevents from computing two extra external products And for even faster computation, c3 i could be determined homomorphically, from c1 i and c2 i , according to the following equation: where G sq'' denotes the bootstrapping function presented above in the case where the function g is the function: Homomorphic evaluation of a two-variable function The disclosed technology concerns also a method for evaluating a two-variable function, that is an arbitrary two-operands function, homomorphically. Being able to evaluate such a quantity is very useful for homomorphic data bases processing. Indeed, it enables, inter alia, to compare two ciphers texts c1 i and c2 i without decrypting them (for instance to sort the data base). To this end, the two-variable function employed could be the Max, or Min function. In this respect, one may note that a function returning (in an encrypted form) the maximum, or the minimum of a set of two messages is a two-variable function. And due to the modular nature of the messages employed here, the maximum or minimum of two messages cannot be determined by simply looking at the sign of the difference of these two messages. As explained below, to evaluate homomorphically a two-variable function f, each of the two inputs of this function (which belong each to T pi ) is mapped on a specifically designed set of values S. The elements µj of Sbelong each to T, and such that, for any set of indexes (i,j,k,l) with (i,j)≠(k,l), (k,l) being also different from (j,i) : is different from modulo ½, where α and β are two constant and integer, given numbers. So: Then, taking advantage of this property, the two-operand function f is transformed into a one-operand function gf by first computing a linear combination of these two messages (multiplied respectively by the coefficients α and β), in order to obtain a single operand (the two messages having been preliminarily mapped onto The one- operand function gf is then homomorphically evaluated, by using the specific bootstrapping procedure described above. More precisely, the two input messages m1 i and m2 i are first mapped onto corresponding elements of thanks to a mapping function gmap: where m is one of the elements of S. g map is chosen among the different possible functions that map T pi on It may be noted that it can be proven that it is always possible to build a set fulfilling the condition above (and fulfilling also one the additional conditions given below for In practice, the set can be chosen among different sets fulfilling these conditions. Preferably, the set S that is chosen is the one for which the values of the set are the more spaced apart from each other. The “mapped” messages associated respectively to m1 i and m2 i are noted and respectively: The “one-operand” function gf corresponding to f is then defined as: that is: The fact that two different couples of messages (m1 i , m2 i ) and (m1’i, m2’i) always lead to two different values of the intermediate quantity (respectively, due to the specific structure of S, is one of the elements that enables to apply the method to any, arbitrary two variable function f from T pi ×T pi to T pi , or even from T pi ×T pi to T. The encrypted version of f(m1 i , m2 i ) is noted When c ƒ,i is decrypted using the secret key s, it gives f(m1 i , m2 i ). c ƒ,i is determined, homomorphically, from the ciphertexts c1 i and c2 i (without decrypting c1 i or c2 i ), according to the following equation: where Gf denotes the bootstrapping function described above in the particular case where g is gf, and where Gmap denotes the bootstrapping function described above, in the particular case where g is gmap. It may be noted that the uncyphered values of = and β are used directly to compute c ƒ,i . In other words, the coefficients = and β are not ciphered. This method can be applied to any function f (in particular, whether f is symmetric or not). When the function f is symmetric, α and β are chosen equal to each other. For instance, they may be chosen each as being equal to 1. In this case, c ƒ,i is determined homomorphically from c1 i and c2 i according to the following equation (see figure 2): This way to compute c ƒ,i is beneficial as there is no multiplication by α or β to be carried on, and as the noise terms are not amplified, as they are multiplied by 1. It may be noted that the Max(c1 i , c2 i ) function, for instance, whose output is the cipher text c1 i , or c2 i , that is associated to the highest of the two messages m1 i and m2 i (highest, with respect to usual order of T pi values), is a symmetric function. When the function f is not symmetric, α and β are chosen different from each other, and the elements of are such that, for any set of indexes (i,j,k,l) with (i,j)≠(k,l), α.µi+β.µj is different from modulo ½, even when (k,l)=(j,i). In this case, α and β can be chosen as being equal to +1 and -1 respectively, for instance. c ƒ,i is then determined homomorphically from c1 i and c2 i according to the following equation Again, this kind of implementation is beneficial, as it involves no multiplication by a coefficient higher than 1, and so no noise amplification. This method for evaluating homomorphically a two-variable function has been presented above in a case where the function f is a function from T pi ×T pi to T pi , or from T pi ×T pi to T. Still, it can be implemented identically when the two variables of the function f each belongs to a discrete set of p i elements (possibly different from T pi , but consisting of p i elements, with pi odd, and such that twice the difference between any two of the elements of this set is not an integer number), the values of function f belonging to T. Carry-less processing of a message m, by decomposing it into orthogonal sub-messages mi. As mentioned above, the disclosed technology also concerns a technique for encrypting and processing 'very long' messages x (or m), using a specific decomposition of the message x into smaller messages x i , this decomposition being based on the Chinese remainder theorem decomposition and enabling to process the sub-messages xi, or, for instance, their counterparts x i /p i , separately from each other, without having to take into account possible carries. This technique can be applied to any message belonging to p being equal to where the integer numbers p i are pairwise coprime. More precisely, for any message x belonging to the corresponding encrypted message C is determined by executing the following operations (figure 3): - Step D: decomposing x into its components x i , i=1...r, with x i equal to x modulo p i (the Chinese remainder theorem stating that such a decomposition is always possible), - Step E: for each component x i whose associated factor p i is odd, determining an encrypted version c i of a message mi, according to the encryption method presented above, mi being, among the elements of the discrete set of p i elements mentioned above (e.g.: T pi ), the element that is associated to x i by a given bijective relationship between and said discrete set, - if a component x i is associated to a factor p i equal to 2, determining an encrypted version c i of a quantity Qi associated to x i and that can takes two distinct values, c i being equal to (a i ,b i ) with b i = Q i +e i +a i .s, - returning C=(c 1 ,...c i ,...c r ). Below, we consider the case in which the discrete set consisting of p i distinct elements is T pi . The componen xt i may be associated (bijectively) to a corresponding element mi of T pi according to the following equation, for instance: m i =x i /p i , or according to the following equation mi=-x i /p i , or, alternatively, according to the following equation mi=(x i +1)/p i . Besides, we consider below that the same secret key s is used on the different fields In other words, here, the same secret key s is used to cipher the different messages m 1 , …m i , …m r . Still, in alternative, different keys could be used to cipher the different (sub-) messages m 1 , …m i , …m r . In may be noted that, in other embodiments, the discrete set in question may be another set than T pi , and that another operation than the one mentioned above could be used to map onto this discrete set (for instance, mi could be obtained by multiplying xi by any integer number that is coprime with p i , and then be divided by p i ). Besides, here, the decomposition of x is carried on such that the only even factor p i , should there be one, is two. So, except from, possibly, a factor two, all the other factors p i are odd. And so, their corresponding messages mi can all be processed, individually, according to the methods described in detail above, for elements belonging to T pi , except, possibly, for one of them, associated to a factor p i equal to two, which is processed, for instance, according to existing, known techniques for binary messages. When processing such an encrypted message C=(c 1 ,...c i ,...cr), or when processing a couple (C1,C2) of two such messages C1=(c1 1 ,...c1 i ,...c1 r ) and C2=(c2 1 ,...c2 i ,...c2 r ), the components c 1 ,...c i ,...c r of C, or the couples of components (c1 1 , c2 1 ) ... (c1 i , c2 i ),... (c1 r , c2 r ) are processed, homomorphically, independently from each other (that is, without taking into account any carry). For instance, the homomorphic addition of two such messages C1 and C2 is achieved as follow (see figure 4): Similarly, the homomorphic multiplication of two such messages C1 and C2 is achieved as follow, based on the T pi ×T pi homomorphic multiplication ⊙ presented above (see figure 5): Similarly, a refreshed version C’ of such an encrypted message C=(c 1 ,...c i ,...c r ) is determined by computing the following quantity Electronic devices and system Figure 6 represents schematically a cryptographic system 1 comprising an encrypting device 2 and a processing device 3, for processing encrypted messages without decrypting them. The encrypting device 2 and the processing device 3 comprise each at least one processor, and at least one memory. The encrypting device 2 is programmed, or otherwise arranged for executing the following steps: - receiving data representative of an unencrypted message mi, that belongsto a discrete set consisting of p i distinct elements, with pi being an odd number, said discrete set being the discrete torus T pi = or the set T pi ,N[X] of polynomials of degree N-1 whose coefficients belong to T pi , or to another discrete set in bijective relationship with T pi , - processing said data according to the method for encrypting such messages, that has been presented above, to determine encrypted data representative of the encrypted message c i , the secret key s employed during said processing, for instance stored, at least temporarily, in the memory of the encrypting device, being accessed by the processor or processors during said processing. The processing device 3, which is distinct from the encrypting device 2, is configured for receiving the encrypted message c i from the encrypting device 2, and, possibly, to receive other such encrypted messages. The processing device 3 is programmed, or otherwise arranged to execute the following steps: - receiving data, representative of the encrypted message c i produced by the encrypting device 2, - processing said data, according to the method for bootstrapping described above, to determine refreshed data, representative of the encrypted message c' i , said processing being achieved without decrypting c i and without using, reading or accessing the secret key s. In particular, during this bootstrapping, the unencrypted message mi corresponding to c i does not appear nor result from an operation, nor it is used, read or accessed. The unencrypted message mi, just as the secret key s, thus remains absent from the processing device 3 at all time. The processing device could also be programmed to execute the homomorphic multiplication method presented above and/or to homomorphic evaluate of a two- variable function like the one presented above. The processing device 3 could also be programmed to execute one or several of the homomorphic processing methods for encrypted messages like the message C=(c 1 ,...c i ,...c r ), that has been presented above. And the encrypting device 2 could be programmed to produce such encrypted messages, from unencrypted messages x belonging to Zp.