IP Library Granted Patent US 9,356,783
Granted Patent B2
US 9,356,783 · App. 14/476,057 · Granted May 31, 2016

Method for ciphering and deciphering, corresponding electronic device and computer program product

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,356,783
App. No.
14/476,057
Granted
May 31, 2016
Kind
B2
Abstract

In one embodiment, it is proposed a method for ciphering a plaintext M belonging to a group of prime order p, such method being performed by an electronic device. The method is remarkable in that it comprises: encrypting said plaintext M in function of a public vector Z=(Z 1 , . . . , Z l )ε l of l elements of said group , where l≧2 log 2 (p), and a one-time private vector K comprising l binary elements (K[1], . . . , K[l])ε{0,1} l , said encrypting delivering a first ciphertext belonging to a group k 1 for an integer k 1 ≧1; encrypting said l binary elements delivering a second ciphertext in a group k 2 , for an integer k 2 >1.

Claims (138)

1. Method for ciphering a plaintext M belonging to a group of prime order p, said method being performed by an electronic device, and wherein it comprises:

encrypting said plaintext M in function of a public vector Z=(Z 1 , . . . , Z i )ε l of l elements of said group , where l≧2 log 2 (p), and a one-time private vector K comprising l binary elements (K[1], . . . , K[l])ε{0,1} l , said step delivering a first ciphertext belonging to a group k 1 for an integer k 1 ≧1;

encrypting said binary elements delivering a second ciphertext in a group k 2 , for an integer k 2 >1.

2. Method according to claim 1 , wherein said method comprises:

obtaining said public vector Z=(Z 1 , . . . , Z l )ε l of l elements of said group ;

obtaining said one-time private vector comprising binary elements (K[1], . . . , K[l])ε{0,1} l .

3. Method according to claim 1 , wherein said encrypting said plaintext M comprises multiplying it with a value corresponding to g(K,Z) where a function g is a universal hash function compatible with a Groth-Sahai proof scheme.

4. Method according to claim 3 , wherein K 1 =1 and said function g is defined by an equation: g(K,Z)=Π i=1 l Z i K[i] .

5. Method according to claim 1 , wherein said encrypting said l binary elements comprises encoding each binary element K[i], with 1<i<l, as a set of elements from the group .

6. Method according to claim 1 , wherein said encrypting said l binary elements comprises using a pairing based cryptography scheme in which operations in a target group T are replaced by operations in said group .

7. Method according to claim 6 , wherein said pairing based cryptography scheme is a Waters IBE scheme, and each binary element K[i] is encrypted in such way that corresponding ciphertext of a binary element K[i] has the following form:

(

C

i

,

1

,

C

i

,

2

,

C

i

,

3

,

C

i

,

4

)

=

(

g

s

i

,

H

𝔾

(

ID

)

s

i

,

g

K

[

i

]

s

i

ω

i

,

g

2

ω

i

)

,

where s i ,ω i are random values from p and g, g 2 are public elements of , randomly chosen, (g 0 ,g 1 )=(g α 0 ,g α 1 ) are public elements of where α 0 ,α 1 are random values from p , IDε{0,1} L public identity, and hash function H : {0,1} L → , where L is an integer.

8. Method for deciphering a ciphertext C belonging to a group k 1 of prime order p, for an integer k 1 ≧1, said method being performed by an electronic device, wherein it comprises:

determining a one-time private vector comprising l binary elements (K[1], . . . , K[l])ε{0,1} l from obtained encrypted data in group k 2 , for an integer k 2 >1;

determining a plaintext M belonging to said group in function of said ciphertext C, a public vector Z=(Z 1 , . . . , Z l )ε l of l elements of said group , where l≧2 log 2 (p), and said one-time private vector.

9. Method according to claim 8 , wherein it comprises obtaining a public vector Z=(Z 1 , . . . , Z l )ε l of l elements of said group .

10. Method according to claim 8 , wherein said determining a plaintext M comprises dividing said ciphertext C with a value corresponding to g(K,Z) where a function g is a universal hash function compatible with a Groth-Sahai proof scheme.

11. Method according to claim 10 , wherein k 1 =1 and said function g is defined by an equation: g(K,Z)=Π i=1 l Z i K[i] .

12. Method according to claim 8 , wherein said determining said l binary elements comprises obtaining l encrypted data, each encrypted data having the following form:

(

C

i

,

1

,

C

i

,

2

,

C

i

,

3

,

C

i

,

4

)

=

(

g

s

i

,

H

𝔾

(

ID

)

s

i

,

g

K

[

i

]

s

i

ω

i

,

g

2

ω

i

)

,

where s i ,ω i are random values from p , and g, g 2 are randomly chosen public elements of , and elements (g 0 ,g 1 )=(g α 0 ,g α 1 ) are public elements of where α 0 ,α 1 are random values from p , IDε{0,1} L a public identity, and hash function H : {0,1} L → , where L is an integer.

13. Method according to claim 12 , wherein said determining said l binary elements comprises:

obtaining a private key d ID =(d 0,1 ,d 0,2 ,d 1,1 ,d 1,2 )=(g 2 α 0 ,H (ID) r 0 ,g r 0 ,g 2 α 1 ,H (ID) r 1 ,g r 2 ) where r 0 ,r 1 are random values from p ; and

decrypting performed on each l encrypted data that comprises determining μ b =e(C i,1 ,d b,1 )/e(C i,2 ,d b,2 ) for each bε{0,1}, and if μ b =(C i,3 , C i,4 ) for some bε{0,1}, the binary element K[i] is set to value of b.

14. A computer-readable and non-transitory storage medium storing a computer program comprising a set of computer-executable instructions to implement a method for cryptographic computations when the instructions are executed by a computer, wherein the instructions comprise instructions, which when executed, configure the computer to perform a method for ciphering a plaintext M belonging to a group˜of prime order p, wherein it comprises:

encrypting said plaintext M in function of a public vector Z=(Z.sub.1, . . . , Z.sub.1).epsilon..sup.1 of 1 elements of said group, where 1.gtoreq.2 log.sub.2(p), and a one-time private vector K comprising 1 binary elements (K[1], . . . , K[1]).epsilon.[0,1].sup.1, said step delivering a first ciphertext belonging to a group.sup.k.sup.1 for an integer k.sub.1.gtoreq.1; encrypting said 1 binary elements delivering a second ciphertext in a group.sup.k.sup.2, for an integer k.sub.2>1.

15. A computer-readable and non-transitory storage medium storing a computer program comprising a set of computer-executable instructions to implement a method for cryptographic computations when the instructions are executed by a computer, wherein the instructions comprise instructions, which when executed, configure the computer to perform a method for deciphering a ciphertext C belonging to a group.sup.k.sup.1 of prime order p, for an integer k.sub.1.gtoreq.1, wherein it comprises: determining a one-time private vector comprising 1 binary elements (K[1], . . . , K[1]).epsilon.[0,1].sup.1 from obtained encrypted data in group.sup.k.sup.2, for an integer k.sub.2>1; determining a plaintext M belonging to said group in function of said ciphertext C, a public vector Z=(Z.sub.1, . . . , Z.sub.1).epsilon..sup.1 of 1 elements of said group, where 1.gtoreq.2 log.sub.2(p), and said one-time private vector.

16. Electronic device for ciphering a plaintext M belonging to a group of prime order p, wherein said electronic device further comprises:

first encrypting module configured to encrypt said plaintext M in function of a public vector Z=(Z 1 , . . . , Z l )ε l of l elements of said group , where l≧2 log 2 (p), and a one-time private vector K comprising l binary elements (K[1], . . . , K[l])ε{0,1} l , said first encrypting module delivering a first ciphertext belonging to a group k 1 for an integer k 1 ≧1;

second encrypting module configured to encrypt said l binary elements delivering a second ciphertext in a group k 2 , for an integer k 2 >1.

17. Electronic device for deciphering a ciphertext C belonging to a group k 1 of prime order p, for an integer k 1 ≧1, wherein said electronic device further comprises:

first determining module configured to determine a one-time private vector comprising l binary elements (K[1], . . . , K[l])ε{0,1} l from obtained encrypted data in group k 2 , for an integer k 2 >1;

second determining module configured to determine a plaintext M belonging to said group in function of said ciphertext C, a public vector (Z 1 , . . . , Z l )ε l of l elements of said group , where l>2 log 2 (p), and said one-time private vector.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2020
From: THOMSON LICENSING S.A.S.
To: MAGNOLIA LICENSING LLC
Reel/Frame 053570/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2015
From: JOYE, MARC; LIBERT, BENOIT
To: THOMSON LICENSING
Reel/Frame 036567/0194 →