Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
IDENTITY-BASED XOR HOMOMORPHIC CRYPTOSYSTEMS
Document Type and Number:
WIPO Patent Application WO/2016/048777
Kind Code:
A1
Abstract:
The present principles relate to new identity-based cryptosystems. Remarkably, the cryptosystems are equipped with an XOR homomorphism: given the encryption of two bits b and b', anyone can derive the encryption of b ⊕ b'. The ciphertexts are twice shorter than previously known schemes. Further, they come with strong security guarantees: they are proved to be semantically secure under the standard quadratic residuosity assumption, in the random oracle model.

Inventors:
JOYE MARC (US)
Application Number:
PCT/US2015/050642
Publication Date:
March 31, 2016
Filing Date:
September 17, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
THOMSON LICENSING (FR)
International Classes:
H04L9/30; H04L9/00
Other References:
MARC JOYE: "On Identity-Based Cryptosystems from Quadratic Residuosity", 18 August 2014 (2014-08-18), XP055234204, Retrieved from the Internet
COCKS C: "An identity based encryption scheme based on quadratic residues", INTERNET CITATION, 2001, XP002266371, Retrieved from the Internet [retrieved on 20040105]
MICHAEL CLEAR ET AL: "Homomorphic Encryption with Access Policies: Characterization and New Constructions", 22 June 2013, PROGRESS IN CRYPTOLOGY AFRICACRYPT 2013, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 61 - 87, ISBN: 978-3-642-38552-0, XP047028501
Attorney, Agent or Firm:
SHEDD, Robert D. et al. (4 Research WayPrinceton, New Jersey, US)
Download PDF:
Claims:
CLAIMS

1. A method for communicating a message m, comprising:

accessing the message m;

accessing a user identity id and public system parameters m pk = {N, u, J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N, u G N \ Q W, N is a composite integer;

generating a ciphertext C = {ε, c, έ, c] of the message m using the user identity id, where

ε = (-l)mJN(t), c = t + ^f mod N, έ = (-l)mJN(i), and c = i +

^ mod N, where t, t E (Έ / N1 x , Rld = Jf(id); and

transmitting the ciphertext C = {ε, c, έ, c] via a communication channel.

2. The method of claim 1 wherein N = pq, p and q are prime.

3. The method of claim 1 wherein the message m G {0,1}·

4. The method of claim 1 wherein Ή(χ) is defined as h(i, x) where i is the smallest nonnegative integer such that h(i, x) G N, wherein h is a cryptographic hash function mapping bit-strings to elements οΐ Έ/ΝΈ.

5. The method of claim 1 wherein Ή (x) = Qi ° h ° ··· ° h) (x) = hl (x) where i is the smallest positive integer such that hl (x) G N, wherein h is a cryptographic hash function mapping bit-strings to elements οΐ Έ/ΝΈ.

6. The method of claim 1 wherein:

c is instead chosen to be min + ~ m°d N, N— (t + mod N)); and c is instead chosen to be min ( i mod N, N - (t + ^ - mod N)).

7. The method of claim 6 wherein:

if c≠ £ + ~ mod N then ε is instead chosen to be (— l)m/w( " 7N ( 1); and if c≠ t + ^ - mod N, then έ is instead chosen to be (-l mJN i JN -1).

8. The method of claim 1 wherein N is such that ]N{— 1) = 1.

9. The method of claim 2 wherein p≡ q≡ 3 (mod 4). 10. The method of claim 8 wherein u =— 1.

11. A method for processing a ciphertext, comprising:

receiving the ciphertext C = {ε, c, έ, c], via a communication channel;

accessing the ciphertext C = {ε, c, έ, c], where ε = (-l)mJN(t), c = t + ^f mod N, έ = (-l)mJN(i), and c = i +

^ - mod N; t, i G (Έ/ΝΈ)Χ, Rid = Jf(id), u G JN \ QRN and N is a composite integer; and

generating a plaintext message m by accessing a private key usk = {rid} for a user with an identity id by following steps:

if rid2≡ Ή (id) (mod N), setting v = ε and γ = c; otherwise setting v = έ and γ = c;

determining τ = ]Ν γ + 2rid) using the private key rid; and

if e {±l} ,

1—v · τ

m = 12. The method of claim 11 wherein the private key usk = {rid} for the user with the identity id is generated by a master secret key msk, wherein ff id = Ή (id) and if ffid G then rid = Κ^1 2 mod N, otherwise rid = (uRld z mod N.

13. The method of claim 12 wherein N = pq, p and q are prime, and the master secret key is msk = {p, q}.

14. The method of claim 11 wherein τ is evaluated as τ = ]Ν γ— 2rid) instead.

15. The method of claim 11 wherein the determination of if rid2≡ Jf(id) (mod N is precomputed.

16. The method of claim 12 wherein rid is deterministic.

17. A method for generating a private key for an identity based cryptosystem wherein the private key is used to decrypt a ciphertext C = {ε, c, έ, c], where ε = (-l)mJN(t), c = t + ^f mod N, έ = (-l)mJN(i), and c = i +

^ - mod N; t, i G (Έ/ΝΈ)Χ , Rid = Ή (id) , u G JN \ QRN, and N is a composite integer, comprising steps of:

setting a master secret key msk; and

generating, using the master secret key msk, the private key usk = {rid} for a user with an identity id, using public system parameters m pk = {N, u, J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N, u G N \ Q W, and N is a composite integer; wherein ffid = Ή (id) and if ffid G Q W, then rid = ffid1 '2 mod N,

1

otherwise rid = (uRld)^ mod N.

18. The method of claim 17 wherein N is such that ]N{— 1) = 1. 19. The method of claim 17 wherein N = pq, p and q are prime.

20. The method of claim 19 wherein p≡ q≡ 3 (mod 4).

21. The method of claim 18 wherein

22. An apparatus for communicating a message m, comprising:

a processor configured to access the message m, the processor further configured to access a user identity id and public system parameters m pk = {N, u, Ή}, where Ή is a cryptographic hash function mapping bit-strings to elements of N, u G N \ Q W, N is a composite integer;

an encryptor configured to generate a ciphertext C = {ε, c, έ, c] of the message m using the user identity id, where

ε = (-l)mJN(t), c = t + ?f mod N, έ = (-l)mJN(i), and c = i + ^ mod N, where t, t G (Έ / N1 x , Rld = K (id) ; and

a communication interface, coupled to a communication channel, configured to transmit the ciphertext C = {ε, c, έ, c] via the communication channel.

23. The apparatus of claim 22 wherein N = pq, p and q are prime.

24. The apparatus of claim 22 wherein the message m G {0,1}·

25. The apparatus of claim 22 wherein Ή (x) is defined as h(i, x) where i is the smallest nonnegative integer such that h(i, x) G N, wherein h is a cryptographic hash function mapping bit-strings to elements οΐ Έ/ΝΈ.

26. The apparatus of claim 22 wherein Ή (x) = (h ° h ° ··· ° h) (x) = hl (x) where i is the smallest positive integer such that hl (x) G N, wherein h is a cryptographic hash function mapping bit-strings to elements οΐ Έ/ΝΈ.

27. The apparatus of claim 22 wherein:

c is instead chosen to be min (t m°d N, N— (t + ~ - mod N)); and c is instead chosen to be min ( i mod N, N - (t + ^ - mod N)).

28. The apparatus of claim 27 wherein:

if c≠ £ + ~ mod N then ε is instead chosen to be (— l)m/w( " 7N ( 1); and if c≠ t + ^ - mod N, then έ is instead chosen to be (-l mJN i JN -1).

29. The apparatus of claim 22 wherein N is such that JN(— 1) = 1.

30. The apparatus of claim 23 wherein p≡ q≡ 3 (mod 4). 31. The apparatus of claim 29 wherein u =— 1.

32. An apparatus for processing a ciphertext, comprising:

a communication interface, coupled to a communication channel, configured to receive the ciphertext C = {ε, c, έ, c] via the communication channel;

a processor configured to access the ciphertext C = {ε, c, έ, c], where ε = (-l)m;w(t), c = t + ^f mod N, έ = (-l)m/w(t), and c = i +

^ - mod N; t, i G (Έ/ΝΈ)Χ, Rid = Ή (id), u G JN \ Q N, and N is a composite integer; and

the processor generates a plaintext message m by accessing a private key usk = { jdl f°r a user wim an identity id by following steps:

if rid2≡ Ή (id) (mod N), setting v = ε and γ = c; otherwise setting v = έ and γ = c;

determining τ = ]Ν γ + 2rid) using the private key rid; and

if e {±l} ,

1—v · τ

m

33. The apparatus of claim 32 wherein the private key usk = {rid} for the user with the identity id is generated by a master secret key msk, wherein ffid = Ή (id) and if ffid G then rid = Κ^1 2 mod N, otherwise rid = (uRld) z mod N.

34. The apparatus of claim 33 wherein N = pq , p and q are prime, and the master secret key is msk = {p, q}.

35. The apparatus of claim 32 wherein τ is evaluated as τ = ]Ν γ— 2rid) instead.

36. The apparatus of claim 32 wherein the determination of if rid2≡ Ή (id) (mod N is precomputed.

37. The apparatus of claim 33 wherein rid is deterministic.

38. An apparatus for generating a private key for an identity based cryptosystem wherein the private key is used to decrypt a ciphertext C = {ε, c, έ, c], where ε = (- l)mJN (t), c = t + ^f mod N, έ = (-l)m JN (i), and c = i +

^ - mod N; t, i G (Έ/ΝΈ)Χ , Rid = Ή (id) , u G JN \ QRN, and N is a composite integer, comprising:

a processor configured to set a master secret key msk = {p, q], and generate, using the master secret key msk, the private key usk = {rid} for a user with an identity id , using public system parameters mpk = {N, u, J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N, u G N \ Q W, and N is a composite integer; wherein ffid = Ή (id) and if ffid G Q W , then rld = Rld^2 mod N, otherwise rid =

(uffj mod N; and

a communication interface, coupled to a communication channel, configured to transmit the private key usk = {rid} via the communication channel. 39. The apparatus of claim 38 wherein N is such that ]N {— 1) = 1.

40. The apparatus of claim 38 wherein N = pq , p and q are prime.

41. The apparatus of claim 40 wherein p≡ q≡ 3 (mod 4) .

42. The apparatus of claim 39 wherein u =—1.

43. A computer program product stored in non- transitory computer-readable storage media comprising computer-executable instructions for:

accessing the message m;

accessing a user identity id and public system parameters mpk = {N,u,J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N, u G N \ Q W, N is a composite integer;

generating a ciphertext C = {ε, c, έ, c] of the message m using the user identity id, where

ε = (-l)m;w(t), c = t + ^f mod N, έ = (-l mJN(i , and c = i + ^mod N, where t,t E (Έ / N1 x , ffid =Jf(id);and

transmitting the ciphertext C = {ε, c, έ, c] to a device via a communication channel.

44. A computer program product stored in non-transitory computer-readable storage media comprising computer-executable instructions for:

receiving the ciphertext C = {ε, c, έ, c], via a communication channel;

accessing the ciphertext C = {ε, c, έ, c], where ε = (-l)mJN(t), c = t + ?f mod N, έ = (-l)mJN(i), and c = i +

^ - mod N; t, I G (Έ/ΝΈ)Χ, Rld = Ή (id), u G JN \ QRN, and N is a composite integer; and

generating a plaintext message m by accessing a private key usk = {rid} for a user with an identity id by following steps:

if rid2≡ Ή (id) (mod N , setting v = ε and γ = c; otherwise setting v = έ and γ = c;

determining τ = ]Ν γ + 2rid) using the private key rid; and

if e{±l},

45. A computer program product stored in non- transitory computer-readable storage media for generating a private key for an identity based cryptosystem wherein the private key is used to decrypt a ciphertext C = {ε, c, έ, c], where ε = (-l)mJN(t), c = t + ^f mod N, έ = (-l)mJN(i), and c = i +

^ - mod N; t, i G (Έ/ΝΈ)Χ , ffid = Ή (id) , u G JN \ QRN, and N is a composite integer, comprising computer-executable instructions for:

setting a master secret key msk; and

generating, using the master secret key msk, the private key usk = {rid} for a user with an identity id, using public system parameters m pk = {N, u, J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N, u G N \ Q W, and N is a composite integer; wherein ffid = Ή (id) and if ffid G Q W, then rid = ffjd1''2 mod N,

1

otherwise rid = (uRld)z mod N.

Description:
IDENTITY-BASED XOR HOMOMORPHIC CRYPTOSYSTEMS

RELATED APPLICATION

This patent application claims the benefit of 1) U.S. Provisional Application No. 62/098386 filed on December 31, 2014, 2) U.S. Provisional Application No. 62/055,729 filed on September 26, 2014 both with the same title, and 3) U.S. Provisional Application No. 62/055716 filed on September 26, 2014, titled "XOR- homomorphic Crypto systems with Fast Key Generation", the disclosures of both are incorporated by reference herein in their entirety.

Field of Invention

The present principles relate to cryptography, and more specifically, to identity-based homomorphic cryptosystems. Background Information

This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

Referenced Documents

[1] Mihir Bellare and Phillip Rogaway. Random oracles are practical: A paradigm for designing efficient protocols. In st ACM Conference on Computer and Communications Security, pages 62-73. ACM Press, 1993.

[2] Dan Boneh and Matthew K. Franklin. Identity-based encryption from the Weil pairing. SIAM J. CompuL , 32(3):586-615, 2003.

[3] Michael Clear, Arthur Hughes, and Hitesh Tewari. Homomorphic encryption with access policies: Characterization and new constructions. In A. Youssef, A. Nitaj, and A. E. Hassanien, editors, Progress in Cryptology — AFRICACRYPT 2013, volume 7918 of Lecture Notes in Computer Science, pages 61- 87. Springer, 2013.

[4] Clifford Cocks. An identity based encryption scheme based on quadratic residues. In B. Honary, editor, Cryptography and Coding, volume 2260 of Lecture Notes in Computer Science, pages 360-363. Springer, 2001.

[5] Shafi Goldwasser and Silvio Micali. Probabilistic encryption. /. Comput. Syst. Sci., 28(2):270-299, 1984.

[6] Marc Joye. U.S. Provisional Application No. 62/055716 filed on

September 26, 2014, titled "XOR-homomorphic Crypto systems with Fast Key Generation."

[7] Marc Joye and Gregory Neven, editors. Identity-Based Cryptography, volume 2 of Cryptology and Information Security Series. IOS Press, 2009.

[8] Karl Rubin and Alice Silverberg. Compression in finite fields and torus- based cryptography. SIAM J. Comput, 37(5): 1401-1428, 2008.

[9] Adi Shamir. Identity-based cryptosystems and signature schemes. In G. R. Blakley and D. Chaum, editors, Advances in Cryptology, Proceedings of CRYPTO '84, volume 196 of Lecture Notes in Computer Science, pages 47-53. Springer, 1985.

Identity-based encryption

Identity-based cryptography is an extension of the public -key paradigm which was put forward by Shamir [9]. A major issue with public -key cryptography is the management of trust. Other issues to be dealt with include recovering the public key and companion certificate, checking them, and then only encrypting and sending the messages. We refer the reader to the excellent introduction [7] by Joux for details. Identity-based cryptography aims at solving these practical issues by simplifying key management.

Formally, we define an identity-based encryption (IBE) scheme [2] as a tuple of four algorithms (SETUP, EXTRACT, ENCRYPT, DECRYPT), where the process 300 is illustrated in Figure 3 :

Setup The setup algorithm SETUP 310 is a randomized algorithm that takes on input some security parameter κ and outputs the system parameters m pk together

R

with the master secret key msk: (m pk, msk) <- SETUP(1 K ). Key derivation The key derivation algorithm EXTRACT , or Key Derivation 320, takes on input an identity id and master secret key msk and returns a secret key for the user with identity id : usk <- EXTRACT msk (id) .

Encryption Let M denote the message space. The encryption algorithm ENCRYPT 330 is a randomized algorithm that takes on input an identity id and a plaintext m G M , and returns a ciphertext C. We write C <- ENCRYPT mpk (id, m).

Decryption The decryption algorithm DECRYPT 340 takes on input secret key usk (corresponding to identity id) and ciphertext C and returns the corresponding plaintext m or a special symbol 1 indicating that the ciphertext is invalid. We write m - DECRYPT usk (C) if C is a valid ciphertext and ± - DECRYPT usk (C) if it is not.

We require that, with non-negligible probability, DECRYPT usk (ENCRYPT mpk (id, m)) = m for all messages m E M. The specific processes associated with each of these steps as they relate to the present principles is described in further detail below.

Security notions

The notion of indistinguishability (IND) of encryptions [5] captures a strong notion of data-privacy: The adversary should not learn any information whatsoever about a plaintext given its encryption beyond the length of the plaintext. The definitions for the public -key setting naturally extend to the identity-based paradigm. The standard definition is strengthened by allowing the adversary to issue chosen private-key extraction queries [2].

We view an adversary Λ as a pair (Λ 1 , Λ 2 ) of probabilistic algorithms. This corresponds to adversary Λ running in two stages. Upon receiving the system parameters m pk, in the "find" stage, algorithm Λ issues private-key extraction queries id 1( id ni and receives back the private key uskj corresponding to identity \ά(. usk j <- EXTRACT msk (id j ). The queries may be asked adaptively. Once the adversary decides not to make further oracle queries, it outputs a challenge identity id* (with id*≠ id; , 1 < i < ¾), two (different) equal-size messages m 0 and m 1 G M , and some state information s. In the "guess" stage, algorithm ·Λ 2 receives a challenge ciphertext C which is the encryption of m b for identity id* and where b is chosen at random in {0,1}· Algorithm ·Λ 2 can issue more private -key extraction queries id ni+1 , ... , id n2 ; the only restriction is that id;≠ id * , n < i < n 2 . The goal of cZ 2 is to recover the value of b from 5 and C.

A public-key encryption scheme is said semantically secure (or indistinguishable) if

(mpk,msk) <- SETUP(1 K ),

r / |EXTRACT msk (-)/- , EXTRACT msk () f Γ ,

Pr (id ,m 0 ,m 1 ,s <- <A 1 msK (mpk),: & 2 msK (s, C) = b

[b ^{0,1},C <- ENCRYPT mpk (id * ,m ¾ )

is negligible in the security parameter for any polynomial-time adversary Λ; the probability is taken over the random coins of the experiment according to the distribution induced by SETUP and over the random coins of the adversary.

Adversary Λ = (·Λ 1 ,·Λ 2 ) can encrypt any message of its choice for any identity. In other words, the adversary can mount chosen-Identity, Chosen-Plaintext Attacks (ID-CPA). Hence, we write IND-ID-CPA the security notion achieved by a semantically secure identity-based encryption scheme.

Remark 1. As messages m 0 and m 1 are supposed to be different, when the message space is M = {0,1}, the previous relation simplifies to

(mpk,msk) <- SETUP(1 K ),

EXTRACT msk () . EXTRAC W .) (S) C) = &

Pr (id * ,s) <- A (mpk),

b <- {0,1}, C <- ENCRYPT mpk (id * , b) Complexity assumptions

It is useful to introduce some notations. Let N = pq be the product of two (odd) primes p and q. The Jacobi symbol modulo N of an integer a is denoted by 7 w ( ). The set of integers whose Jacobi symbol is 1 is denoted by N , N = {a G ¾l/iv( ) = 1}; tne set of quadratic residues is denoted by Q W , Q W = {a G N\J p (a) = J q (a) = 1}. Note that QR N is a subset of J N .

[Quadratic Residuosity Assumption] Let RSAGen be a probabilistic algorithm which, given a security parameter κ, outputs primes p and q and their product N = pq. The Quadratic Residuosity (QR) assumption asserts that the success probability defined as the distance

Pr [D(x,N) = l\x ,]-Pr[V(x,N) = l\x^ N \QR N ] is negligible for any probabilistic polynomial-time distinguisher D; the probabilities are taken over the experiment of running (N, p, q) <- RSAGen ( 1 K ) and choosing at random x G QM W and x G N \ QM W .

Random oracle model

The random oracle model is an idealized model introduced by Bellare and Rogaway [1] to analyze the security of certain cryptographic constructions using hash functions. Informally, the random oracle model assumes that the output of a hash function behaves as the output of a random generator.

The group {Τ ρ γ x {T q f

Let p be an odd prime, let Δ G IF p x , and let δ 2 = A. Define the multiplicative group

G p = {x + y\x, y G W p and x 2 — Ay 2 = 1). Where it is defined, consider the map

To ease the notation, we augment IF p with a special symbol∞ and define ψ(∞ ~ ) = 1. There are two cases to distinguish:

1. Ιΐ δ <£ W p then G p = [ip(u) \u G IF p U {∞}}—see [8, Section 2];

2. If δ G IF p then G p = {ip(u) \u G IF p U {∞}, u≠ ±δ}.

(Observe that 0 ί G p when δ E W p .)

We are interested in the second case. From now on, we will suppose that δ G IF p * and thus that Δ G QR p . For convenience, we write T p = W p \ {±£}) U (oo). We so have G p = ψ(Τ ρ ). Clearly, map T p → G p is injective and thus defines a bijection. Indeed, suppose τ/>(«ι) = ^{ 2 ) for some u , u 2 p . This implies + δ) (u 2 — δ) = (u 2 + δ) u — δ) and in turn u x = u 2 . The inverse map is given

Furthermore, map yields a homomorphism from T p to G p . We have ψ(∞ = 1. Let u x , u 2 G T p \ {∞). We have:

1 u x — δ —u x + δ

τ/Ό½) u + δ — u — δ = ! -Mi) and, if u ≠

u 1 u 2 + Δ

(i½ + δ) (u 2 + δ) u u 2 + Δ + 8 u 1 + u 2 ) u + u 2

1 -δ)(μ 2 -δ) u u 2 + Δ - δ(π + u 2 ) u i u 2 + Δ

u x + u 2

U 1 U 2

where —

u 1 +u 2

Consequently, T p endows a group structure. Its order is #T p = p— 1. We write T p multiplicatively and use © to denote its group law. We have:

• the neutral element is∞:

u®∞ =∞®u = u for all u G T p ; the inverse of u G T p \ {∞) is— u:

u © (— u) = (—u) © u · given u x , u 2 G T p \ {∞), their multiplication is given by:

oo ot erwse.

Remark that 0 is of order 2 as an element of T p , namely 0 © 0 = oo. Remark also that for u G T p , u≠ 0, oo, we have u © 0 = A/u.

Let (T p ) 2 c p represent the subgroup of squares in T p .

(T p 2 ={u® u\u G T p }

The group (T p ) 2 has (p— l)/2 elements.

Let u 1 ,u 2 T p . Define w 1 =u 1 ®u 1 and w 2 =u 2 ®u 2 . Then letting u 3 : = u x © u 2 we get:

w 3 : = w 1 © w 2

= (u ® u ) ® (u 2 ® u 2 ) = (u ® u 2 ) ® (u ® u 2 ) = u 3 ® u 3 .

Further, for any 1 < i < 3, if W j ≠ oo then 2w; + 28 = , and thus / T ,C2w / + 25)

Ui p (1)

The previous setting naturally extends through Chinese remaindering. Let N = pq be an RSA (Rivest-Shamir-Adleman) modulus. Then (T p ) 2 x ( q ) 2 is a group and has order φ(Ν).

SUMMARY OF THE INVENTION

The present invention recognizes the need to improve the existing systems and methods for implementing cryptosystems, especially homomorphic identify -based cryptosystems and methods.

In accordance with an aspect of the present principles, a method for communicating a message m is presented, comprising:

accessing the message m;

accessing a user identity id and public system parameters mpk = {N, u, Ή}, where Ή is a cryptographic hash function mapping bit-strings to elements of N , u G N \ Q W , N is a composite integer;

generating a ciphertext C = {ε, c, έ, c] of the message m using the user identity id, where

ε = (-l) m , = t + ?f mod N, έ = (-l) m J N (t), and c = t + ^ mod N, where t, i E (Έ/ ΝΈ Χ , R ld = Jf(id) ; and

transmitting the ciphertext C = {ε, c, έ, c] to a device via a communication channel.

In accordance with another aspect of the present principles, a method for processing a ciphertext is presented, comprising:

receiving the ciphertext C = {ε, c, έ, c], via a communication channel;

accessing the ciphertext C = {ε, c, έ, c], where ε = (-l m J N (t , c = t + ^ mod N, έ = (-l m J N (t , and c = t +

^ - mod N; t, i G (Έ/ΝΈ) Χ , R ld = (id), u G J N \ QR N , and N is a composite integer; and generating a plaintext message m by accessing a private key usk = {r id } for a user with an identity id by following steps:

if r id 2 ≡≡ Ή (id) (mod N , setting v = ε and γ = c; otherwise setting v = έ and γ = c;

determining τ = ] Ν γ + 2r id ) using the private key r id ; and if r G {±1} ,

1— v · τ

m

In accordance with another aspect of the present principles, a method is presented for generating a private key for an identity based cryptosystem wherein the private key is used to decrypt a ciphertext C = {ε, c, έ, c], where ε = (-l) m ; w (t), c = t + ^ mod N, έ = (-l m J N (t , and c = t +

^ητ mod N; t, t G (Έ/ΝΈ) Χ , R id = Jf(id), u G J N \ QR N , and N is a composite integer, comprising steps of:

setting a master secret key msk; and

generating, using the master secret key msk, the private key usk = {r id } for a user with an identity id, using public system parameters m pk = {N, u, J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N , u G N \ Q W , and N is a composite integer; wherein ff id = Ή (id) and if ff id G Q W , then r id =

R^ 1 2 mod N, otherwise r id = (uff id ) 2 mod N.

In accordance with another aspect of the present principles, an apparatus for communicating a message m is presented, comprising:

a processor configured to access the message m, the processor further configured to accessing a user identity id and public system parameters m pk = {N, u, where Ή is a cryptographic hash function mapping bit-strings to elements of N , u G N \ Q W , N is a composite integer;

an encryptor configured to generate a ciphertext C = {ε, c, έ, c] of the message m using the user identity id , where

ε = (-1Γ , c = t + ^ mod N, έ = -l) m ] N t), and c = t + ^ mod N, where t, i G (Z/NZ) x , ff id = W (id) ; and a communication interface, coupled to a communication channel, configured to transmit the ciphertext C = {ε, c, έ, c] via the communication channel.

In accordance with another aspect of the present principles, an apparatus for processing a ciphertext is presented, comprising:

a communication interface, coupled to a communication channel, configured to receive the ciphertext C = {ε, c, έ, c] via the communication channel;

a processor configured to access the ciphertext C = {ε, c, έ, c], where ε = (-l) m J N (t), c = t + ^f mod N, έ = (-l) m J N (t), and c = t + ^ητ mod N; t, i G (Έ/ΝΈ) Χ , R ld = (id), u G J N \ QR N , and N is a composite integer; and

the processor generates a plaintext message m by accessing a private key usk = {r id } for a user with an identity id by following steps:

if r id 2 ≡≡ Ή (id) (mod N), setting v = ε and γ = c; otherwise setting v = έ and γ = c;

determining τ = ] Ν γ + 2r id ) using the private key r id ; and if G {±l) ,

1— v · τ

m = .

2

In accordance with another aspect of the present principles, an apparatus is presented for generating a private key for an identity based cryptosystem wherein the private key is used to decrypt a ciphertext C = {ε, c, έ, c], where ε = (-l) m ; w (t), c = t + ^ mod N, έ = (-l m J N (t , and c = t +

^ητ mod N; t, i G (Έ/ΝΈ) Χ , R ld = (id), u G J N \ QR N , and N is a composite integer, comprising:

a processor configured to set a master secret key msk, and generate, using the master secret key msk, the private key usk = {r id } for a user with an identity id , using public system parameters m pk = {N, u, Ή}, where Ή is a cryptographic hash function mapping bit-strings to elements of N , u G N \ Q W , and N is a composite integer; wherein ff id = Ή (id) and if ff id G Q W , then r id = Κ^ 1 2 mod N, otherwise r id = (uff mod N; and a communication interface, coupled to a communication channel, configured to transmit the private key usk = {r id } via the communication channel.

In accordance with another aspect of the present principles, a computer program product stored in non-transitory computer-readable storage media is presented, comprising computer-executable instructions for:

accessing the message m;

accessing a user identity id and public system parameters m pk = {N, u, Ή}, where Ή is a cryptographic hash function mapping bit-strings to elements of N , u E N \ Q W , N is a composite integer;

generating a ciphertext C = {ε, c, έ, c] of the message m using the user identity id , where

ε = (-l) m , = t + ?f mod N, έ = (-l) m J N (t), and c = t + ^ mod N, where t, i G (Z/NZ) x , i? id = Jf(id) ; and

transmitting the ciphertext C = {ε, c, έ, c] to a device via a communication channel.

In accordance with another aspect of the present principles, a computer program product stored in non-transitory computer-readable storage media is presented, comprising computer-executable instructions for:

receiving the ciphertext C = {ε, c, έ, c], via a communication channel;

accessing the ciphertext C = {ε, c, έ, c], where ε = (-l) m J N (t), c = t + ^ mod N, έ = (-l) m J N (t), and c = t +

UR

- - mod N; t, i G (Έ/ΝΈ) Χ , R id = (id), u G J N \ Q N , and N is a composite integer; and

generating a plaintext message m by accessing a private key usk = {r id } for a user with an identity id by following steps:

if r id 2 ≡ Ή (id) (mod N), setting v = ε and γ = c; otherwise setting v = έ and γ = c;

determining τ = ] Ν γ + 2r id ) using the private key r id ; and if e {±l} , 1— v · τ

m

In accordance with another aspect of the present principles, a computer program product stored in non-transitory computer-readable storage media is presented, for generating a private key for an identity based cryptosystem wherein the private key is used to decrypt a ciphertext C = {ε, c, έ, c], where ε = (-l m J N (t , c = t + ^ mod N, έ = (-l m J N (t , and c = t +

^ - mod N; t, i G (Έ/ΝΈ) Χ , ff id = (id), u G J N \ QR N , and N is a composite integer, comprising computer-executable instructions for:

setting a master secret key msk; and

generating, using the master secret key msk, the private key usk = {r id } for a user with an identity id, using public system parameters m pk = {N, u, J }, where Ή is a cryptographic hash function mapping bit-strings to elements of N , u G N \ Q W , and N is a composite integer; wherein ff id = Ή (id) and if ff id G Q W , then r id =

R^ 1 2 mod N, otherwise r id = (uR ld ) 2 mod N.

DETAILED DESCRIPTION OF THE DRAWINGS

The above-mentioned and other features and advantages of this invention, and the manner of attaining them, will become more apparent and the invention will be better understood by reference to the following description of embodiments of the invention taken in conjunction with the accompanying drawings, wherein:

Figures 1 to 3 show exemplary apparatus according to the present principles; and

Figures 4 to 6 show exemplary processes according to the present principles. The examples set out herein illustrate exemplary embodiments of the invention. Such examples are not to be construed as limiting the scope of the invention in any manner.

DETAILED DESCRIPTION

Homomorphic encryption is a form of encryption which allows for combining two ciphertexts through a non-private operation that results in a third ciphertext which, when decrypted, yields a plaintext that is the combination of the corresponding two plaintexts through a specific operation. Mathematically, for two ciphertexts C = ENCRYPT^i) and C 2 = ENCRYPT(m 2 ) , there exists a non-private operation d such that C x dC 2 = ENCRYPT (m-L * m 2 ) for some specific operation *. Examples of known operations * include the modular addition and the modular multiplication. This application is concerned with the XOR operation, or equivalently, the addition modulo 2.

Only one XOR-homomorphic identity-based cryptosystem is known to date: a recent cryptosystem by Clear, Hughes, and Tewari [3]. Its security relies on the quadratic residuosity assumption in the random oracle model. However, the cryptosystem by Clear et al. has ciphertexts twice longer than Cocks' IBE [4] (also semantically secure under the quadratic residuosity assumption in the random oracle model).

The present principles provide XOR-homomorphic identity-based cryptosystems with short ciphertexts. As will be seen, the resulting ciphertexts are as short as in the Cocks' IBE scheme. Extra useful properties offered by the proposed cryptosystems are listed later.

Main ideas

Let N = pq be an RSA modulus. As shown in [6], the algebraic structure behind T p x T q gives rise to XOR-homomorphic public-key encryption schemes. If the user' s public key therein is defined as the output of a hash function (modeled as a random oracle), they can be turned into XOR-homomorphic IBE schemes. The complication is that the user' s public key in the schemes of [6] are required to be quadratic residues modulo N; i.e., elements of Q W .

To address this issue, we assume a hash function Ή mapping arbitrary identities to a superset of Q W (note that in the current state of affairs, it is unknown how to output an element of Q W without the knowledge of prime factors p and q.)

As in Cocks' IBE scheme [4], we suppose that this superset is J w ; namely, the set of integers modulo N whose Jacobi symbol is 1 :

Ή : {0),\γ→ N , d H> Jf(id).

The probability that a random element in (Έ/ΝΈ) Χ (where (Έ/ΝΈ) Χ denotes the multiplicative group of Έ/ΝΈ, as well known in the art) is also in N is 1/2. Hence, it is easy to build an efficient hash function mapping to N on top of a "regular" cryptographic hash function, say h, mapping bit-strings to Έ/ΝΈ (or a subset thereof). See e.g. [1] for examples of such "regular" cryptographic hash functions (sometimes referred to as full-domain hash functions).

Back to our case, we can for example define Ή(χ) as h(i, x) where i is the smallest nonnegative integer such that h(i, x) G J w . Yet another possibility is to successively apply h until the output is an element in N : define Ή(χ) as Ή(χ) = Qi o h o · · · o h)(x) = h l (x) where i is the smallest positive integer such that h l (x) G

The user's secret key is then defined as Ή (id) 1 / 2 mod N. Of course, this is only defined when Ή (id) G Q N . When Ή (id) G J N \ Q N , the user's secret key is defined as (uJ (id)) 1 / 2 mod N where u is a predetermined element in N \ Q W — note that in this case u · Ή (id) G Q W , as desired.

Remark 2. The above technique slightly generalizes Cocks' technique. In [4], Cocks considers Blum integers; namely, RSA moduli N = pq with p, q≡ 3 (mod 4). Doing so, his original scheme corresponds to the case u =— 1. Remember that when p, q≡ 3 (mod 4), we have J p (—1) = J q (—1) =—1 and therefore -1 G J N \ QR N .

Now when someone wishes to encrypt a message for a user with identity id, s/he cannot know whether Ή (id) G Q W . Again, as in [4], this can be solved by encrypting twice: once with ff id : = Ή (id) and once with ff id : = u · Ή (id) mod N. As the recipient knows either a square -root modulo N of ff id or of ff id , the recipient will be able to decrypt.

Remark 3. Where defined, square-roots modulo N are not unique. For security reasons, it is important that, given some input, key derivation algorithm always returns the same square root. The notation (-) 1 / 2 mod N is used to refer to a well- identified square-root modulo N (for example as the output of a deterministic algorithm, as the smallest square root among the possible square roots, or as a value in a history list).

Exemplary embodiments

First exemplary embodiment

The exemplary embodiments are now described in the framework of the flow diagram of Figure 3. Our first cryptosystem is defined as follows. SETUP(1 K ) Given a security parameter κ, SETUP generates an RSA modulus N = pq where p and q are prime. It also selects an element u G N \ QM W . The public system parameters are m pk = {N, u, where Ή is a cryptographic hash function mapping bit-strings to J w ; i.e., J : {0,1} * N . The master secret key is msk = {p, q}.

EXTRACT msk (id) Given identity id, key derivation algorithm EXTRACT first sets ff id = Ή (id). If ff id G Q W it computes r id = R^ 2 mod N; otherwise it computes r id = (uR^) 1 ^ 2 mod N. EXTRACT returns user's private key usk = {r id }.

ENCRYPT mpk (id, m) To encrypt a message m G {0,1} for a user with identity id, ENCRYPT first defines ff id = Ή (id). It chooses at random t, i G (Έ/ΝΈ) Χ satisfying gcd ( t 2 — ff jd , N) = gcd ( t 2 — uR ld , N) = 1 and computes ε = (-l) m , c = t + -^ mod N, έ = (-l) m J N (i), and c

= t + ^2- mod N.

t

The returned ciphertext is C = {ε, c, έ, c}.

DECRYPT usk (C) From usk = {r id } and C = {ε, c, έ, c], if r id 2 ≡ Ή (id) (mod N), DECRYPT sets v = ε and γ = c; otherwise it sets v = έ and γ = c. Next it computes τ = ] Ν γ + 2r id ) using secret key r id . If τ £ {±1} it returns 1; otherwise it returns plaintext m as m

Remark 4. As an alternative, we see from Eq. (1) that the decryption algorithm can evaluate τ as τ = ] Ν γ— 2r id ). Also the test r id 2 ? Ή (id) (mod N can be precomputed.

Remark 5. In a practical implementation, for better efficiency, the encryption algorithm can randomly draw t, i G Έ/ΝΈ.

Correctness

Correctness is straightforward and follows from [6]. Homomorphic property

Let C 1 = (ε 1( c 1( έ 1( c x ) and C 2 = (ε 2 , c 2 , έ 2 , c 2 ) be the respective encryption of ges m 1 and m 2 for a user with identity id. Then, letting ff id = Ή (id) and u · Ή (id) mod N, we get from [6, § 2.2.3] that C 3 = (ε 3 , c 3 , έ 3 , c 3 ) with

C 1 C 2 +

ε 3 = ε ί - 2 - J N (c 1 + c 2 , c 3 = mod N, ε 3

Ci + c 2

= £ 1 - £ 2 - J N c 1 + c 2 ), and

c 2 + R jd

c 3 =— ; ;— mod N

Cl + C 2

is the encryption of message m 3 = © m 2 (for the user with identity id).

Note that given the encryption of a message m G {0,1}, it is easy to get the encryption of the complementary value. If C = (ε, c, ε, c) is the encryption of m G {0,1} then C = (— ε, c,— ε, c) is the encryption of—an.

Security analysis

We start with a useful lemma. It shows that, given a ciphertext C = {ε, c, ε, c}, among its two components (ε, c) and (έ, c) , one carries no information whatsoever about the corresponding plaintext.

Lemma 1. Using the previous notations, ifJi d ^ ) Q W then the pair (ε, c) corresponds with the same probability to the encryption of message m = 0 or of m = 1. Conversely, ifu J{(jd Q W then the pair (ε, c) corresponds with the same probability to the encryption of message m = 0 or of m = 1.

Proof Suppose that Ή (id) £ QR N (i.e., Ή (id) G J N \ QR N ). Let ff id = Jf(id). We have ε = (— l) m / w (t) and c = t + -^ mod N for some random t G (Έ/ΝΈ) Χ . Consider also t 1( t 2 , t 3 G (Έ/ΝΈ) Χ such that

• t 1 ≡ t (mod p), t 1 ≡ ffj d /t (mod q) ;

• ¾ ≡ ff id A (mod p), t 2 ≡ t (mod q) ;

• t 3 ≡ ffi d /t (mod p), t 3 ≡ ffi d /t (mod q).

(Note that the condition gcd ( t 2 - ff id , N) = 1 implies gcd ( ^ 2 - ff id , N) = gcd ( t 2 2 - R id , N) = gcd ( t 3 2 - R id , N) = 1.) The four possible values t, t l5 t 2 , and t 3 are equally likely since c≡ t + ff id /t≡ t 1 + ffj d /ti = t 2 + (mod N). At the same time, since ff i d G Jw \ QH&j we a l so have J N t) = J N t 3 )≠ ] Ν {ί ) = J N (t 2 ). Hence component c leaks no information about J N (t); it has the same probability to be 1 or — 1.

The case u Ή (id) £ Q W is proved similarly.

Proposition 1. The scheme is I N D-ID-CPA under the quadratic residuosity assumption in the random oracle model.

Proof. Let Λ = (·Λ 1 , ·Λ 2 ) be an I N D-I D-CPA adversary against the scheme that can break the scheme with probability e. We will use Λ to decide whether a random element w in N is quadratic residue modulo N or not.

Let Ή : {0,1} * → JJ be a hash function viewed as a random oracle. Consider the following distinguisher D(w, N) for solving the QR problem:

1. Select u G J W ;

2. Set mpk = [N, u, JC), and give m pk to ^EXTRACT^O O HA§ oracle access to EXTRACT msk (-) and Ή (·), it may issue a number of extraction and hash queries, after what it returns a pair (id*, s);

3. Depending on id* :

(a) If Jf(icT) = w then i. Choose a random bit b G {0,1}, let ff id * = Ή (id*) , and compute the encryption of b as C b = {s b , c b , i b , c b ] where

R *

¾ = (-i O, c b = t + ^- mod N,

uR *

s b = (-l) 1 - b J N (i), c¾ = t +— mod N, for some random elements t, i G (Έ/ΝΈ) Χ such that gcd ( t 2 — ff i d * , N) = gcd ( t 2 - uR id ., N) = 1;

/ G-.i·ve C r & = { r¾, c¾, ¾ - , c-¾- j> * t.o Λi 2 EXTRACT msk (-),3f

11. ( — Λ Λ2 may issue more extraction and hash queries, after what it returns its guess b' iii. If b' = b return 1; otherwise return 0.

(b) If Jf(icT)≠ w then

i. Choose a random bit b' £ {0,1};

ii. Return b' .

It remains to detail how T) simulates answers to oracle queries. D maintains a history list HistfJf] composed of triplets. The list is initialized to 0. It also maintains a counter k initialized to 0. Let q Hi denote the number of hash queries that are not followed by extract queries and let q Ei denote the number of extract queries, made by Λ χ . Without loss of generality, we assume that Λ χ issues a hash query on id * . Finally, we let / denote a random integer in {1, ... , q Hi + q Ei ] chosen by D.

Hash queries When Λ queries oracle Ή on some id, D checks whether there is an entry of the form (id, h, r) in Hist[Jf] ; i.e., a triplet with id as the first component. If so, it returns h. Otherwise, it does the following:

1. Increment k ;

2. Depending on k:

(a) If k = /q, define h = w and append (id, h, 1) to Hist[Jf] ;

(b) Else (if k≠ /q), define h = u ~ i r 2 mod N with r <- (Έ/ΝΈ) Χ

R

and ; - {0,1} and append (id, h, r) to H ist[Jf ] ;

3. Return h.

Extraction queries When Λ queries oracle EXTRACT on some id, D checks whether there is an entry of the form (id, h, r) in HistfJf ]. If not, it calls Ή (id) so that there is an entry. Let (id, h, r) denote the entry in HistfJf] corresponding to id. Depending on it, D does the following:

1. If r≠± then return r;

2. If r =1 then abort. We now analyze the success probability of D in solving the QR challenge. If u is chosen at random in N , with a probability of 1/2, u is an element in N \ Q W , and so the resulting mpk appear as valid system parameters (note that when more information is known about N, for example that N is a Blum integer, then one can select u =— 1 and mpk then always represent valid system parameters). Provided that u G N \ QM W , three cases can be distinguished.

Case 1 The first case supposes w = Ή (id * ) G Q W . The condition w = Jf(id * ) requires that id * is the / -th query to Ή. Further, since Ή (id * ) G Q W , Lemma 1 teaches that C b = {£ b ,c b ,i b ,c b } is a valid ciphertext for b. Namely, component (¾, c b ) correctly decrypts to b and component (s b ,c b ) is of no use. Hence, D returns 1 exactly when Λ wins in the I ND- ID- CPA game, provided that there is no abort. But since Λ is not allowed to submit id * to EXTRACT (and so there is no abort when id * is the / -th query), we get Pr [D(w, N) = l|w G Q W Aw = K (id * )] = e.

Case 2 The second case supposes w = Ή (id * ) G j N \ Q W . Since Ή (id * ) G N \ Q W , Lemma 1 teaches that C b = {s b , c b , l b , c b ] is a valid ciphertext for (1— b) — it is worth noticing that ¾ = (— l) 1~b J N (t). Hence, D returns 1 exactly when Λ looses in the I ND- ID-CPA game. We therefore get Pr [T>(w,N) = l\w G QR N Aw = KQd * )] = l-e.

Case 3 The last case supposes w≠ Ή (id * ). In this case D returns a random bit, regardless of w. Therefore, we have Pr [ ) (w, N) = l\w G Q W Aw≠ Jf(id * )] = Pr[D(w,N) = Aw≠ Jf(id * )] = 1/2.

We so obtain:

Pr [D(w,N) = l|w G QR N ]

= Pr [w = (id * )] · Pr [O w,N = l\w G QM W Λ w = Jf(id * )]

+ Pr [w≠ Jf(id * )] · Pr [D(w,N) = l|w G QM W Aw≠ Jf(id * )]

and similarly,

Pr[2)(w,N) =

Putting all together, we get:

|Pr[2)(w,N) = l|wG QM w ]-Pr[2)(w,N) = l|w G N \ QR N ]\

2 1 which must be negligible by the QR assumption. As a consequence, \ e— - \ must be negligible, which means that the scheme is I N D- I D-CPA secure under the QR assumption. Second exemplary embodiment

Suppose that ff id = J-C \d G QR N . As shown in [6], if {ε, c) with ε = (— l) m / w (t) and c = t + ff id /t mod N is a valid encryption for message m G {0,1} then so is C : = {ε', c'} where ε' = ε 1) and c' = N— c. The case Ή (id) G N \ Q W is similar.

As a result, if £ represents the bit-length of RSA modulus N this allows us to reduce to size a ciphertext to at most 2£ bits. Here is an implementation of a so- obtained cryptosystem.

SETUP(1 K ) Given a security parameter κ, SETUP generates an RSA modulus N = pq where p and q are prime. It also selects an element u G N \ Q W . The public system parameters are m pk = {N, u, where Ή is a cryptographic hash function mapping bit-strings to J w ; i.e., J : {0,1}*→ N . The master secret key is msk = {p, q}.

EXTRACT msk (id) Given identity id, key derivation algorithm EXTRACT first sets ff id = Ή (id) . If ff id G Q W it computes r id = ffjd 1 '' 2 mod N; otherwise it computes r id = (uR^) 1 ^ 2 mod N. EXTRACT returns user's private key usk = {Yjd}-

ENCRYPT mpk (id, m) To encrypt a message m G {0,1} for a user with identity id , ENCRYPT first defines ff id = Ή (id). It chooses at random t, t E TL/NTL and computes ε' = (-ΓΤ , c' = t + ^ mod N, έ' = (-l) m J N (t), and

uRj f i

c' = i + mod N.

t

Define c = min ( c', N— c') and c = min ( c', N— c') . If c = c' then define ε = ε' ; otherwise define ε = ε' · J N (—1). Similarly, if c = c' then define έ = έ'; otherwise define έ = έ' · J N (—1) . The returned ciphertext is C = {ε, c, έ, c}.

DECRYPT usk (C) From usk = {r id } and C = {ε, c, έ, c], if r id 2 ≡ Ή (id) (mod N), DECRYPT sets v = ε and γ = c; otherwise it sets v = έ and γ = c. Next it computes τ = ] N (j + 2r id ) using secret key r id . If τ <t {±1} it returns 1; otherwise it returns plaintext m as

1— v · τ

m =

Remark 6. As an alternative, the decryption algorithm can evaluate τ as τ = ] Ν {γ— 2r id ). Also the test r ld 2 ≡K (\d) (mod N)

can be precomputed.

Third exemplary embodiment

Assume now primes p and q satisfy the extra condition p≡ q (mod 4). In this case, we know that J p (—1) = J q (—1) and therefore J N (— 1) = 1. Note that it is easily verified that N is the product of two primes that are congruent modulo 4 by checking that N≡ 1 (mod 4).

SETUP(1 K ) Given a security parameter κ, SETUP generates an RSA modulus N = pq where p and q are prime and p≡ q (mod 4). It also selects an element ii £ j w \ Q W . The public system parameters are mpk = {N, u, J } where Ή is a cryptographic hash function mapping bit-strings to J w ; i.e., J : {0,1} * N . The master secret key is msk = {p, q}.

EXTRACT msk (id) Given identity id, key derivation algorithm EXTRACT first sets ff id = Ή (id) . If ff id G Q W it computes r id = Κ^ 1 2 mod N; otherwise it computes r id = (uR^) 1 ^ 2 mod N. EXTRACT returns user's private key usk = {r id }.

ENCRYPT mpk (id, m) To encrypt a message m G {0,1} for a user with identity id , ENCRYPT first defines ff id = Ή (id). It chooses at random t, i E TL/NTL and computes

£ = (-l) m J N (t), ' = t + ^ mod N, i = (-l) m J N (t), and

uRiri

c' = t + mod N.

t

Define c = min ( c', N— c') and c = min ( c\ N— c'). The returned ciphertext is C = {ε, c, έ, c}.

DECRYPT usk (C) From usk = {r id } and C = {ε, c, έ, c], if r id 2 ≡ Ή (id) (mod N , DECRYPT sets v = ε and γ = c; otherwise it sets v = έ and γ = c. Next it computes τ = ] N (j + 2r id ) using secret key r id . If τ <t {±1} it returns 1; otherwise it returns plaintext m as

1— v · τ

m =

Remark 7. As an alternative, the decryption algorithm can evaluate τ as τ = ] Ν {γ— 2r id ). Also the test

r id 2 = Jf (id) (mod N)

can be precomputed.

Fourth exemplary embodiment

Assume further that RSA modulus N is a so-called Blum integer. Namely, N is the product of two primes p and q such that p≡ q≡ 3 (mod 4). In this case,— 1 is an element of N \ Q W . The choice u =— 1 is therefore valid for the system parameters. As the value can be global (and thus implicit in the description) there is no need to explicitly include it in mpk. The choice u =— 1 also slightly improves the performance of the key derivation algorithm and of the encryption algorithm.

SETUP(1 K ) Given a security parameter κ, SETUP generates an RSA modulus

N = pq where p and q are prime and p≡ q≡ 3 (mod 4). The public system parameters are m pk = {N, J } where Ή is a cryptographic hash function mapping bit- strings to J w ; i.e., Ή : {0,1} *→ Jw Th e master secret key is msk = {p, q}.

EXTRACT msk (id) Given identity id, key derivation algorithm EXTRACT first sets ff id = H " (id) . If ff id G Q N it computes r id = ff id 1/2 mod N; otherwise it computes r id = (— R^) 1 ^ 2 mod N. EXTRACT returns user's private key usk = {r id }.

ENCRYPT mpk (id, m) To encrypt a message m G {0,1} for a user with identity id , ENCRYPT first defines ff id = Ή (id). It chooses at random t, i E TL/NTL and computes = (-l) m J N (t), c' = t + ! - mod N, i = (-l) m J N (i), and

R- c' = i mod N.

t

Define c = min ( c', N— c') and c = min ( c', N— c'). The returned ciphertext is C = {ε, c, έ, c}. DECRYPT usk (C) From usk = {r id } and C = {ε, c, έ, c], if r id 2 ≡ Ή (id) (mod N), DECRYPT sets v = ε and γ = c; otherwise it sets v = έ and γ = c. Next it computes τ = ] Ν γ + 2r id ) using secret key r id . If τ £ {±1} it returns 1; otherwise it returns plaintext m as

1— v · τ

Remark 8. When N = pq is a Blum integer, if R £ Q W then a square-root of R is given by R(N+5- P -q)/8 mod N _ notice that Ν +* ~ ν-<ι ≡ z

8

Remark 9. As an alternative, the decryption algorithm can evaluate τ as τ = JN(Y— 2r id ). Also the test

r id 2 = Jf (id) (mod N)

can be precomputed.

There are several advantages for the proposed cryptosystems:

• identity-based paradigm;

• homomorphic property w.r.t. the XOR operation (or equivalently addition modulo 2 ) ;

• almost free encryption of the complementary value;

• strong security guarantees.

The proposed encryption schemes can be used in any application requiring efficient identity-based encryption when the homomorphism property w.r.t. the XOR operation is needed. The homomorphism property is a central ingredient in a number of applications, including, to name a few, electronic voting, private information retrieval, or secure multi-party computation.

Compared with [6], the new cryptosystems proposed in this application present the advantage of being identity-based. This solves a number of practical issues in real systems. On the downside, the ciphertexts are twice longer.

FIG. 1 illustrates a block diagram of an exemplary system in which various aspects of the exemplary embodiments of the present principles may be implemented. System 100 may be embodied as a device including the various components described below and is configured to perform the processes described above. Examples of such devices, include, but are not limited to, personal computers, laptop computers, smartphones, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. System 100 may be communicatively coupled to other similar systems, and to trusted third parties via a communication channel as shown in Figure 2 and as known by those skilled in the art to implement the exemplary cryptosystems described above.

The system 100 may include at least one processor 110 configured to execute instructions loaded therein for implementing the various processes as discussed above. Processor 110 may include embedded memory, input output interface and various other circuitry as known in the art. The system 100 may also include at least one memory 120 (e.g., a volatile memory device, a non-volatile memory device). System 100 may additionally include a storage device 140, which may include nonvolatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drive, and/or optical disk drive. The storage device 140 may comprise an internal storage device, an attached storage device and/or a network accessible storage device, as non-limiting examples. System 100 may also include an encryption/decryption module 130 configured to process data to provide an encrypted message or decrypted message.

Encryption/decryption module 130 represents the module(s) that may be included in a device to perform the encryption and/or decryption functions. As is known, a device may include one or both of the encryption and decryption modules, for example, encryption may be done on a regular PC since encryption does not involve secret key so that the PC need not include secure memory for storing the input parameters (i.e., the public system parameters and the user's identity). Decryption however, requires secret keys (i.e., the decryption key) and is done in a secure device, for example a smart card. As memory is expensive on smart card, the encryption functionality may not always be provided on a smart card. The encryption and/or decryption may be performed using shared resources as known to those skilled in the art. Additionally, encryption/decryption module 130 may be implemented as a separate element of system 100 or may be incorporated within processors 110 as a combination of hardware and software as known to those skilled in the art.

Program code to be loaded onto processors 110 to perform the various processes described hereinabove may be stored in storage device 140 and

subsequently loaded onto memory 120 for execution by processors 110. In accordance with the exemplary embodiments of the present principles, one or more of the processor(s) 110, memory 120, storage device 140 and encryption/decryption module 130 may store one or more of the various items during the performance of the processes discussed herein above, including, but not limited to a public key, a private keys, encrypted messages, equations, formula, matrices, variables, operations, and operational logic.

The system 100 may also include communication interface 150 that enables communication with other devices via communication channel 160. The

communication interface 150 may include, but is not limited to a transceiver configured to transmit and receive data from communication channel 160. The communication interface may include, but is not limited to, a modem or network card and the communication channel may be implemented within a wired and/or wireless medium. The various components of system 100 may be connected or

communicatively coupled together using various suitable connections, including, but not limited to internal buses, wires, and printed circuit boards.

As a non- limiting example, one or more of the above-identified components may receive and/or store the information (e.g., to be encrypted, resulting from decryption) and/or the ciphertext (e.g., to be decrypted, to be operated on

homomorphically, resulting from encryption). As a further non-limiting example, one or more of the above-identified components may receive and/or store the encryption function(s) and/or the decryption function(s), as described herein above.

The exemplary embodiments of this invention may be carried out by computer software implemented by the processor 110 or by hardware, or by a combination of hardware and software. As a non-limiting example, the exemplary embodiments of this invention may be implemented by one or more integrated circuits. The memory 120 may be of any type appropriate to the technical environment and may be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory and removable memory, as non-limiting examples. The processor 110 may be of any type appropriate to the technical environment, and may encompass one or more of microprocessors, general purpose computers, special purpose computers and processors based on a multi-core architecture, as non-limiting examples.

Figure 2 illustrates an arrangement wherein data is exchanged between two terminals 210 and 220 in accordance with the present principles. Each of the terminals 210 and 220 include encryptor/decryptor modules 230 and 240,

respectively, and may additionally include each of the other components of system 100 described above, as appropriate. Terminals 210 and 220 are communicatively coupled to each other via communication channel 250, which may be implemented via wired and/or wireless medium. Additionally, arrangement 200 may include a trusted third party 260 communicatively coupled to terminals 210 and 220, wherein third party 260 may in some cases, among other things, generate common parameters and the keys, distribute them to the terminals in a manner known to those skilled in the art. For example, in identity based encryption, the setup algorithm is performed by the trusted third party to generate, among other things, the master secret key.

Following key generation, a message can be encrypted and decrypted by the terminals as described above, and transmitted and received via communication channel 250.

Figure 3 illustrates a generalized flow diagram of an identity-based cryptosystem.

Figures 4 to 6 show exemplary flow charts according to the present principles.

The flow charts illustrate the homomorphic crypto-processes discussed above. The processes of Figures 4 - 6 may be executed by e.g., a processor 110 of Figure 1. The processes may represent, e.g., computer program products having the computer- executable instructions which may be stored in non-transitory computer-readable storage media 120 of Figure 1 as described before.

The foregoing has provided by way of exemplary embodiments and non- limiting examples a description of the method and systems contemplated by the inventor. It is clear that various modifications and adaptations may become apparent to those skilled in the art in view of the description. However, such various modifications and adaptations fall within the scope of the teachings of the various embodiments described above.

The embodiments described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed above may also be implemented in other forms (for example, an apparatus or program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

Reference to "one embodiment" or "an embodiment" or "one implementation" or "an implementation" of the present principles, as well as other variations thereof, mean that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase "in one embodiment" or "in an embodiment" or "in one implementation" or "in an implementation", as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.

Additionally, this application or its claims may refer to "determining" various pieces of information. Determining the information may include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.

Further, this application or its claims may refer to "accessing" various pieces of information. Accessing the information may include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.

Additionally, this application or its claims may refer to "receiving" various pieces of information. Receiving is, as with "accessing", intended to be a broad term. Receiving the information may include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, "receiving" is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.

As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described embodiments. For example, a signal may be formatted to carry the bitstream of a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired and/or wireless links, as is known. The signal may be stored on a processor-readable medium.

While several embodiments have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the functions and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the present embodiments. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the teachings herein is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific embodiments described herein. It is, therefore, to be understood that the foregoing embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereof, the embodiments disclosed may be practiced otherwise than as specifically described and claimed. The present embodiments are directed to each individual feature, system, article, material and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials and/or methods, if such features, systems, articles, materials and/or methods are not mutually inconsistent, is included within the scope of the present embodiments.