Identification method of an entity
10230724 ยท 2019-03-12
Assignee
Inventors
- Julien Bringer (Issy les Moulineaux, FR)
- Roch Olivier Lescuyer De Chaptal-Lamure (Issy les Moulineaux, FR)
- Herve Chabanne (Issy les Moulineaux, FR)
- Eduardo Soria-Vazquez (Issy les Moulineaux, FR)
Cpc classification
H04L2209/46
ELECTRICITY
H04L63/0861
ELECTRICITY
G06F21/32
PHYSICS
H04L9/3218
ELECTRICITY
H04L63/0442
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
H04L9/08
ELECTRICITY
G06F21/32
PHYSICS
Abstract
A biometric identification method of an entity including computation of a matching value between biometric data of an entity u and reference biometric data u, by application of a function F to the biometric data. A non-interactive, publicly verifiable computation method is performed wherein representation of the function is obtained by converting an arithmetic circuit into a polynomial representation. A matching value is obtained by evaluating the arithmetic circuit and the reference biometric data as inputs. Proof of correction of the computation execution of the matching values is obtained. Verification of said received proof. The function is encoded with an integer k>1 of a vector of a biometric datum on at least one input wire of the circuit. The function includes at least m scalar products. Evaluation of the circuit is iteratively computed depending on the value of m.
Claims
1. A biometric identification method of an entity, by a biometric identification system comprising a client device and a remote computation device, comprising: computation of at least one matching value between at least one biometric datum of the entity u and at least one reference biometric datum u, by application of a function F to said biometric data, each of said data being a vector of N binary integers u.sub.i or u.sub.i with 1iN, each integer being coded on n bits, said function F comprising a scalar product between a biometric datum of the entity and a reference biometric datum, said computation performing a non-interactive, publicly verifiable computation method comprising steps of: representation of said function F in form of an arithmetic circuit comprising wires transporting values of finite prime field .sub.q, with q a prime number, and connecting addition and multiplication operators, conversion of said arithmetic circuit into a polynomial representation, QAP (Quadratic Arithmetic Program) or multi-QAP, generation of a public evaluation key and of a public verification key as a function of said polynomial representation, obtaining by the remote computation device of the arithmetic circuit and of the public evaluation key, for each biometric datum of the entity, determination of at least one matching value between said biometric datum and at least one reference biometric datum by the remote computation device by evaluating the arithmetic circuit having as inputs the biometric datum of the entity and the reference biometric datum, for each determined matching value, generation by the remote computation device of a proof of correction of computation execution of matching value, so-called generated proof, from said polynomial representation, the public evaluation key and result of the evaluation of the arithmetic circuit, transmission by the remote computation device of matching values and generated proofs to the client device, verification of said generated proofs received by the client device by means of the public verification key, identification of the entity by the client device as the function of the matching values and result of said verification of the generated proofs, wherein: representation of said function F comprises encoding an integer k>1 of binary integers of a vector of a biometric datum on at least one input wire of the arithmetic circuit, and the function F comprising at least m scalar products, m being a divider of length N of biometric data vectors, if the divider m is equal to 2 or 3, the arithmetic circuit comprises at least N/(k*m) multiplication operators connected to input wires of the arithmetic circuit, a storage memory, and at least one addition operator, and evaluation of the arithmetic circuit iteratively comprises computation of each of the m scalar products by means of said N/(k*m) multiplication operators, storage of m results of computations of said scalar products in said storage memory and summation of said results by means of said addition operator, if the divider m is greater than or equal to 4, the arithmetic circuit comprises at least one first computation sub-circuit of the scalar product comprising N/(k*m) first multiplication operators connected to input wires of the arithmetic circuit and a first storage memory, and a second computation sub-circuit of the scalar product comprising N/(k*m) second multiplication operators connected to the input wires of the arithmetic circuit and a second storage memory, each one of said first and second computation sub-circuits being also connected to an output of the storage memory of the other one of said first and second computation sub-circuits, and evaluation of the arithmetic circuit iteratively comprises computation of each of the m scalar products by using alternatively one of said first and second computation sub-circuit to compute sum of the scalar product of values of the input wires of the used one of said first and second computation sub-circuits and value stored in the storage memory of the other one of said first and second computation sub-circuits, wherein said biometric identification method delegates to a remote entity a comparison of biometric datum in terms of a protocol of verifiable computations suitable for a real-time execution.
2. The identification method according to claim 1, wherein the verification of said received proofs comprises batch verification of pairings.
3. The identification method according to claim 1, wherein: if the divider m of the length N of the biometric data vectors is equal to 1, given an asymmetric bilinear environment (q, G.sub.1, G.sub.2, G.sub.T, g.sub.1, g.sub.2, e) where q is a prime number G.sub.1, G.sub.2 and G.sub.T three groups of order q, g.sub.1 a generator of G.sub.1, g.sub.2 a generator of G.sub.2, and e a non-degenerate bilinear pairing e: G.sub.1G.sub.2.fwdarw.G.sub.T and the arithmetic circuit being represented in form of a QAP of the circuit Q=(t, V, W, Y) of size and degree , with V={vi}, W={wi}, Y={yi}, 0i, and given I.sub.io={1, . . . , } set of indices corresponding to input/output wires of the arithmetic circuit and I.sub.mid={+1, . . . , } set of indices of intermediate wires of the arithmetic circuit not being input wires of the arithmetic circuit, the generation of the public evaluation key and of the public verification key comprises: generation of random variables r.sub.v, r.sub.w, s, .sub.v, .sub.w, .sub.y, , in .sub.q, definition of coefficients r.sub.y=r.sub.v.Math.r.sub.w, g.sub.v1=g.sub.1.sup.r.sup.
VK.sub.F1=(g.sub.1,{g.sub.v1.sup.v.sup.
VK.sub.F2=(g.sub.2,g.sub.2.sup..sup.
v.sub.mid(x)=.sub.iI.sub.
e(g.sub.v1.sup.v.sup.
e((g.sub.v1.sup.V.sup..sub.q on bits with a security parameter.
4. The identification method according to claim 1 wherein: if the divider m of the length N of the biometric data vectors is greater than or equal to 2, given an asymmetric bilinear environment (q, G.sub.1, G.sub.2, G.sub.T, g.sub.1, g.sub.2, e) where q is a prime number G.sub.1, G.sub.2 and G.sub.T three groups of order q, g.sub.1 a generator of G.sub.1, g.sub.2 a generator of G.sub.2, and e a non-degenerate bilinear pairing e: G.sub.1G.sub.2.fwdarw.G.sub.T, the arithmetic circuit being represented in form of a multi-QAP Q=({B.sub.b}.sub.b[1,l],t,V,W, of size and degree , with {B.sub.b}.sub.b[1,l] a set of l banks B.sub.b of Q used in the computation of the function F, and V={vi}, W={wi}, Y={yi} with 0i, the generation of the public evaluation key and of the public verification key comprises: generation of random variables s, {(.sub.bv, .sub.bw, .sub.by, .sub.b,.sub.b)}.sub.b[1,l], r.sub.v, r.sub.w in .sub.q, definition of following coefficients: r.sub.y=r.sub.y.Math.r.sub.w, g.sub.v1=g.sub.1.sup.r.sup.
({EK.sub.Fb}.sub.b[1,l],{g.sub.1.sup.s.sup.
EK.sub.Fb2=({g.sub.w2.sup.w.sup..sub.q: o.sub.b=(o.sub.bv, o.sub.bw, o.sub.by), computation of a digest D.sub.b equal to (D.sub.b1,D.sub.b2) from the instance of the bank B.sub.b: B.sub.b.sup.(T.sup.
D.sub.b1=(g.sub.v1.sup.v.sup.
with:
v.sup.(b)(s)=.sub.iB.sub.
w.sup.(b)(s)=.sub.iB.sub.
y.sup.(b)(s)=.sub.iB.sub.
5. The identification method according to claim 1 wherein: if the divider m of the length N of the biometric data vectors is greater than or equal to 2, given an asymmetric bilinear environment (q, G.sub.1, G.sub.2, G.sub.T, g.sub.1, g.sub.2, e) where q is a prime number G.sub.1, G.sub.2 and G.sub.T three groups of order q, g.sub.1 a generator of G.sub.1, g.sub.2 a generator of G.sub.2, and e a non-degenerate bilinear pairing e: G.sub.1G.sub.2.fwdarw.G.sub.T, the arithmetic circuit being represented in form of a multi-QAP Q=({B.sub.b}.sub.b[1,l], t, V, W, of size and degree , with {B.sub.b}.sub.b[1,l] a set of l banks B.sub.b of Q used in computation of the function F, and V={vi}, W={wi}, Y={yi} with 0i, the generation of the public evaluation key and the public verification key comprises: generation of random variables s,{(.sub.bv,.sub.bw,.sub.by, .sub.b, .sub.b)}.sub.b[1,l], r.sub.v, r.sub.w in .sub.q, generation of random variables s,{(.sub.bv, .sub.bw, .sub.by, .sub.b, .sub.b)}.sub.b[1,l], r.sub.v, r.sub.w in
.sub.q, definition of the following coefficients: r.sub.y=r.sub.b.Math.r.sub.w, g.sub.v1=g.sub.1.sup.r.sup.
({EK.sub.Fb}.sub.b[1,l],{g.sub.1.sup.s.sup..sub.q: o.sub.b=(o.sub.bv, o.sub.bw, o.sub.by), computation of a digest D.sub.b equal to (D.sub.b1,D.sub.b2) from the instance of the bank B.sub.b: B.sub.b.sup.(T.sup.
D.sub.b1=(g.sub.v1.sup.v.sup.
with:
v.sup.(b)(s)=.sub.iB.sub.
w.sup.(b)(s)=.sub.iB.sub.
y.sup.(b)(s)=.sub.iB.sub.
6. The identification method according to claim 1, wherein the identification of the entity comprises comparison of the matching values with a predetermined threshold.
7. The identification method according to claim 1, wherein the function F comprises comparison of result of the scalar product between said biometric data of the entity and said reference biometric data with a predetermined threshold.
8. The identification method according to claim 1, wherein the encoding of k binary integers u.sub.i or u.sub.i on an input wire of an j.sup.th multiplication operator, 1jN/k, is equal to
9. A computer program product comprising code instructions for execution of a method according to a biometric identification method of an entity, by a biometric identification system comprising a client device and a remote computation device, comprising: computation of at least one matching value between at least one biometric datum of the entity u and at least one reference biometric datum u, by application of a function F to said biometric data, each of said data being a vector of N binary integers u.sub.i or u.sub.i with 1iN, each integer being coded on n bits, said function F comprising a scalar product between a biometric datum of the entity and a reference biometric datum, said computation performing a non-interactive, publicly verifiable computation method comprising steps of: representation of said function F in form of an arithmetic circuit comprising wires transporting values of finite prime field .sub.q, with q a prime number, and connecting addition and multiplication operators, conversion of said arithmetic circuit into a polynomial representation, QAP (Quadratic Arithmetic Program) or multi-QAP, generation of a public evaluation key and of a public verification key as a function of said polynomial representation, obtaining by the remote computation device of the arithmetic circuit and of the public evaluation key, for each biometric datum of the entity, determination of at least one matching value between said biometric datum and at least one reference biometric datum by the remote computation device by evaluating the arithmetic circuit having as inputs the biometric datum of the entity and the reference biometric datum, for each determined matching value, generation by the remote computation device of a proof of correction of computation execution of matching value, so-called generated proof, from said polynomial representation, the public evaluation key and result of the evaluation of the arithmetic circuit, transmission by the remote computation device of matching values and generated proofs to the client device, verification of said generated proofs received by the client device by means of the public verification key, identification of the entity by the client device as the function of the matching values and result of said verification of the generated proofs, wherein: representation of said function F comprises encoding an integer k>1 of binary integers of a vector of a biometric datum on at least one input wire of the arithmetic circuit, and the function F comprising at least m scalar products, m being a divider of length N of biometric data vectors, if the divider m is equal to 2 or 3, the arithmetic circuit comprises at least N/(k*m) multiplication operators connected to the input wires of the arithmetic circuit, a storage memory, and at least one addition operator, and evaluation of the arithmetic circuit iteratively comprises computation of each of the m scalar products by means of said N/(k*m) multiplication operators, storage of m results of computations of said scalar products in said storage memory and summation of said results by means of said addition operator, if the divider m is greater than or equal to 4, the arithmetic circuit comprises at least one first computation sub-circuit of the scalar product comprising N/(k*m) first multiplication operators connected to input wires of the arithmetic circuit and a first storage memory, and a second computation sub-circuit of the scalar product comprising N/(k*m) second multiplication operators connected to the input wires of the arithmetic circuit and a second storage memory, each one of said first and second computation sub-circuits being also connected to an output of the storage memory of the other one of said first and second computation sub-circuits, and evaluation of the arithmetic circuit iteratively comprises computation of each of the m scalar products by using alternatively one of said first and second computation sub-circuit to compute sum of the scalar product of values of the input wires of the used one of said first and second computation sub-circuits and value stored in the storage memory of the other one of said first and second computation sub-circuits, wherein said biometric identification method delegates to a remote entity a comparison of biometric datum in terms of a protocol of verifiable computations suitable for a real-time execution, when said computer program product is executed by a processor.
10. A biometric identification system comprising a client device and a remote computation device wherein: said client device and said remote computation device each comprise a processor, an interface and a memory for performing steps of an identification method according to a biometric identification method of an entity, by a biometric identification system comprising a client device and a remote computation device, comprising: computation of at least one matching value between at least one biometric datum of the entity u and at least one reference biometric datum u, by application of a function F to said biometric data, each of said data being a vector of N binary integers u.sub.i or u.sub.i with 1iN, each integer being coded on n bits, said function F comprising a scalar product between a biometric datum of the entity and a reference biometric datum, said computation performing a non-interactive, publicly verifiable computation method comprising steps of: representation of said function F in form of an arithmetic circuit comprising wires transporting values of the finite prime field .sub.q, with q a prime number, and connecting addition and multiplication operators, conversion of said arithmetic circuit into a polynomial representation, QAP (Quadratic Arithmetic Program) or multi-QAP, generation of a public evaluation key and of a public verification key as a function of said polynomial representation, obtaining by the remote computation device of the arithmetic circuit and of the public evaluation key, for each biometric datum of the entity, determination of at least one matching value between said biometric datum and at least one reference biometric datum by the remote computation device by evaluating the arithmetic circuit having as inputs the biometric datum of the entity and the reference biometric datum, for each determined matching value, generation by the remote computation device of a proof of correction of computation execution of matching value, so-called generated proof, from said polynomial representation, the public evaluation key and result of the evaluation of the arithmetic circuit, transmission by the remote computation device of matching values and generated proofs to the client device, verification of said generated proofs received by the client device by means of the public verification key, identification of the entity by the client device as the function of the matching values and result of said verification of the generated proofs, wherein: representation of said function F comprises encoding an integer k>1 of binary integers of a vector of a biometric datum on at least one input wire of the arithmetic circuit, and the function F comprising at least m scalar products, m being a divider of length N of biometric data vectors, if the divider m is equal to 2 or 3, the arithmetic circuit comprises at least N/(k*m) multiplication operators connected to input wires of the arithmetic circuit, a storage memory, and at least one addition operator, and evaluation of the arithmetic circuit iteratively comprises computation of each of the m scalar products by means of said N/(k*m) multiplication operators, storage of m results of computations of said scalar products in said storage memory and summation of said results by means of said addition operator, if the divider m is greater than or equal to 4, the arithmetic circuit comprises at least one first computation sub-circuit of the scalar product comprising N/(k*m) first multiplication operators connected to input wires of the arithmetic circuit and a first storage memory, and a second computation sub-circuit of the scalar product comprising N/(k*m) second multiplication operators connected to the input wires of the arithmetic circuit and a second storage memory, each one of said first and second computation sub-circuits being also connected to an output of the storage memory of the other one of said first and second computation sub-circuits, and evaluation of the arithmetic circuit iteratively comprises computation of each of the m scalar products by using alternatively one of said first and second computation sub-circuit to compute sum of the scalar product of values of the input wires of the used one of said first and second computation sub-circuits and value stored in the storage memory of the other one of said first and second computation sub-circuits, wherein said biometric identification method delegates to a remote entity a comparison of biometric datum in terms of a protocol of verifiable computations suitable for a real-time execution.
Description
PRESENTATION OF THE FIGURES
(1) Other characteristics and advantages of the present invention will emerge from the following description of a preferred embodiment. This description will be given in reference to the appended drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED DESCRIPTION
(9) The present invention relates to implementing a biometric identification method of an entity 1 by an identification system 2 comprising a client device 3 and a remote computation device 4 capable of being connected together by a communications network 5, as represented in
(10) The client device and the remote computation device can each comprise a random access memory and internal storage means such as rewritable non-volatile memory (flash memory or EEPROM memory) and processing means comprising a processor. They can also comprise an interface for dialoguing with each other, of wired type such as an Ethernet link, or wireless such as a Wifi or Bluetooth connection.
(11) The aim of this method carried out is to allow the device to delegate to the remote computation device the computations necessary for biometric identification of the entity to be identified, so that the computations made by the remote computation device are publicly verifiable, all this happening over a sufficiently short period to be acceptable in terms of an identification method.
(12) For conducting such biometric identification the client device acquires at least one biometric datum of the entity to be identified u. To identify the entity, this at least one biometric datum u must be compared to one or more reference biometric data u, stored in advance.
(13) By way of example, such biometric data can be fingerprints, DNA, voice or even iris images or venous networks. Each of these biometric data is a vector of N binary integers u.sub.i or u.sub.i with 1iN. Each integer u.sub.i or u.sub.i is coded on n bits. For example in the case of a face biometric datum, there can typically be N=3000 and n=8.
(14) The client device can comprise or be connected to a device for capturing such biometric data, such as a fingerprint reader, a microphone, or an iris-imaging device. This capture device can be employed to acquire the biometric datum u acquired for the entity 1. The reference biometric data u can be stored in the storage means of the client device or of the remote computation device.
(15) The identification method can comprise the steps described hereinbelow in reference to
(16) First of all at least one matching value can be computed F1 between at least one biometric datum of the entity u and at least one reference biometric datum u, by application of a function F, so-called correlation function, to said biometric data. Function F comprises a scalar product between a biometric datum of the entity and a reference biometric datum. Such a scalar product in fact computes a score S=.sub.j=1.sup.N(u.sub.j.Math.u.sub.j) which is all the higher since the data compared are similar. Such a score can be used as matching value. To determine if an attempt at identification has succeeded, the matching values can be compared to a predetermined threshold T. Alternatively, function F can comprise the comparison of the result of the scalar product between the biometric data of the entity u and the reference biometric data u, i.e. of the score S, to this predetermined threshold T. Computation of the matching value can comprise computation of the value (ST) and the matching value coming from such computation can be a sign bit for example taking the value 1 if ST>0, the value 0 if not.
(17) To ensure the quality of the result obtained, computation of such a matching value F1 employs a non-interactive, publicly verifiable computation method. Such a method generally being divided into three phases: representation of the function F to be evaluated in the form of a system constraints represented in the form of an arithmetic circuit. transformation of this arithmetic circuit into polynomial representation called Quadratic Arithmetic Programs (abbreviated to QAP below). generation of a proof of correction of the computation execution from the QAP.
(18) The non-interactive, publicly verifiable computation method carried out more precisely first comprises a representation step E1 of said function F in the form of an arithmetic circuit. Such an arithmetic circuit comprises wires transporting values of the finite prime field Zq, with q a prime number, and connecting addition and multiplication operators. Typically the size q of the values of the circuit wires can be equal to 256 bits.
(19) The arithmetic circuit is then converted E2 into a polynomial representation, QAP (Quadratic Arithmetic Program) or multi-QAP. Such representations and the way to attain them from an arithmetic circuit are described in more detail in the publications cited hereinabove on the existing Pinocchio and Geppetto protocols.
(20) Next a public evaluation key and a public verification key are generated E3 as a function of said polynomial representation. The remote computation device then obtains E4 the arithmetic circuit and the public evaluation key.
(21) The representation steps in the form of an arithmetic circuit E1, conversion into a polynomial representation E2 and generation of keys E3 can be conducted by the client device itself. Alternatively these steps can be delegated to a trusted third party. Since such steps are independent of the value of the biometric data to be compared, they can be conducted once only, prior to comparisons of biometric data described hereinbelow, and do not need to be repeated as long as the format of the biometric data to be compared does not change.
(22) For each biometric datum of the entity at least one matching value between said biometric datum and at least one reference biometric datum is then determined E5 by the remote computation device by evaluating the arithmetic circuit with the biometric data of the entity and the reference biometric datum as inputs.
(23) For each determined matching value the remote computation device generates E6 a proof of correction of the computation execution of the matching value, so-called generated proof, from said polynomial representation, the public evaluation key and the result of evaluation of the arithmetic circuit. It then transmits E7 the matching values and said generated proofs to the client device.
(24) The latter verifies E8 the received proof by means of the public verification key. The verification step of said received proofs E8 can comprise or not batch verification of pairings.
(25) Finally the entity is identified F2 by the client device as a function of the matching values and the result of said verification of proofs.
(26) The integers u.sub.i and u.sub.i constituting the data of the entity and the reference data are usually encoded on a number of bits n far less than the size q of the values of wires of the circuit. By way of example the number of bits n can be equal to 8 bits and the size q can be equal to 256 bits. To limit the number of multipliers necessary for representation of the function F in the form of an arithmetic circuit, several integers u respectively u.sub.i are encoded on each input wire of the arithmetic circuit. Representation of said function E1 comprises encoding an integer k>1 of binary integers of a vector of a biometric datum on at least one input wire of the circuit. In practice, encoding E.sub.k.sup.((j1)k+1)(u) or E.sub.k.sup.((j1)k+1)(u) of k binary integers u.sub.i or u.sub.i on an input wire of a j.sup.th multiplication operator, 1jN/k, can be defined by the formula:
(27)
with .sub.1, . . . , .sub.k predetermined integers.)
(28) A multiplier having on input E.sub.k.sup.((j1)k+1)(u) and E.sub.k.sup.((j1)k+1)(u) has on its output wire the product of encodings of successive k binary integers u.sub.i or u.sub.i coded on its input wires. This product is noted E.sub.u.Math.u,k.sup.((j1)k+1)=E.sub.k.sup.((j1)k+1)(u). E.sub.k.sup.((j1)k+1)(u). By way of example, for j=1, there is: E.sub.u.Math.u,k.sup.(1)=2.sup.2.Math..sup.
(29) To further reduce the number of multipliers of the arithmetic circuit, the method as carried out also proposes splitting computation of the scalar product of the biometric datum of the entity u and of the reference biometric datum u of lengths N into several computations of scalar products of vectors of lesser size coming from splitting of the vectors u and u. The combination of the results of these scalar products produces the score S corresponding to the result of the scalar product of u and u.
(30) For this, function F comprising at least m scalar products, function F can be decomposed into at least m occurrences of sub-functions, m being a divider m of the length N of the biometric data vectors. Only the split sub-functions are represented by their own sub-circuit in the arithmetic circuit, reducing the number of multipliers of the circuit. To combine decomposition of the scalar product of u and u into m scalar sub-products, and coding of k integers on each input wire of the circuit, it is possible to select k such that k divides m. The scalar product of u and u can be decomposed into m scalar sub-products of vectors of length N/km. The sum of the results of these m scalar products produces an encoded score {tilde over (S)} defined by the following formula:
(31)
and of the following form if the expression hereinabove is deployed and if the terms are gathered by power of 2: {tilde over (S)}=2.sup.2.Math..sup.
(32) To extract the score S from its encoded version {tilde over (S)}, it is possible to extract the k sub-terms corresponding to the coefficients 2.sup.2.Math..sup.
(33) The paragraphs hereinbelow present the specific features of the method for different ranges of value of the divider m. m can be determined by making a compromise between the computational powers of the client device and the remote computation device as well especially as memories.
(34) In a first mode of operation in which the divider m is equal to 1, function F can be put in the form of the circuit represented in .sub.q, as is known to keep on bits, the split gate contains an input wire (containing the integer a) and output wires. In terms of elementary arithmetic constraints, its definition is given for example in the cited article Pinocchio, paragraph 3.2. It is recalled here by way of indication. It is clear that c.sub.0 is the input wire and c.sub.1, . . . , c.sub. the output wires. The arithmetic circuit of the gate so-called split gate is defined as follows: concatenation of the bits on output is equal to the input
(35)
i{1, . . . ,}:c.sub.j.Math.(1c.sub.j)=0
When a split gate gate is used within a circuit, the integer is determined as an achieved upper limit given the size of the circuit inputs and all the arithmetic gates located between the inputs and the split gate.
(36) An example of implementation is represented in
(37) In a second mode of operation in which the divider m is equal to 2 or 3, function F can be decomposed into a function F1 computing a scalar sub-product between two vectors of size N/km, to be used m times, and a function F2 computing the sum of m values, corresponding to a coded score, and performing extraction of the corresponding score equal to the preferred scalar product.
(38) As represented in
(39) With F.sub.1 and F.sub.2 defined as such, evaluation of function F corresponds to m applications of function F.sub.1 followed by application of function F.sub.2. The circuit represented in
(40)
with 1jN/km. In
(41) The m applications of function F.sub.1 compute the coded sub-scores {tilde over (S)}.sub.z, for z{1, . . . , m}:
(42)
(43) By way of example, for z=1, there is:
(44)
(45) During the iteration z the N/km output wires of the multipliers thus carry the values
(46)
whereof the sum is equal to the encoded score {tilde over (S)}.sub.z described hereinabove. The circuit comprises an additional output multiplier, numbered r.sub.N/km+1, necessary for conversion of the circuit into the form of QAP. The m coded sub-scores {tilde over (S)}.sub.z noted {tilde over (S)}.sub.z.sup.(out) in
(47) As in the case of the circuit in
(48) According to a variant not represented, function F1 can comprise decoding of the coded sub-score {tilde over (S)}.sub.z obtained during its evaluation into a sub-score S.sub.z. Such decoding can be done similarly to the decoding of the coded score {tilde over (S)} presented hereinabove. Function F2 comprises only the summation of the sub-scores S.sub.z to obtain the score S corresponding to the scalar product u.Math.u, according to the formula:
(49)
(50) In a third mode of operation in which the divider m is greater than or equal to 4, it is possible to decompose function F into a function F.sub.1 and a function F.sub.2, alternatively use and m times the total, which each take on input two vectors of size N/km and a sub-score, and on output return an updated sub-score defined as the sum of the sub-score given on input with the result of the scalar product of the vectors provided on input; and a function F.sub.3 which decodes a coded score {tilde over (S)} into a score S.
(51) As represented in
(52) With F.sub.1, F.sub.2 and F.sub.3 defined as such, evaluation of the function F then corresponds to m applications alternatively of function F.sub.1 and function F.sub.2 followed by application of function F.sub.3.
(53) The circuit represented in
(54)
with 1jN/km. In
(55) The m applications of functions F.sub.1 and F.sub.2 compute the coded sub-scores {tilde over (S)}.sub.z, for z{1, . . . , m}:
(56)
(57) The N/km output wires of the multipliers of a sub-circuit during the iteration z carry the values
(58)
whereof the sum, added to the coded sub-score of the preceding iteration {tilde over (S)}.sub.z-1, is equal to the encoded score {tilde over (S)}.sub.z described hereinabove. The sub-score {tilde over (S)}.sub.0 can be also initialized at 0 during the first iteration. The coded score {tilde over (S)} is constructed iteratively, each iteration adding to the sub-score coming from the preceding iteration the result of the current scalar sub-product .sub.j=1.sup.N/k.Math.mE.sub.u.Math.u,k.sup.((z1)(N/m)+(j1).Math.k+1).
(59) The circuit comprises an additional output multiplier for each sub-circuit, numbered r.sub.N/km+1, r.sub.2N/km+2 necessary for conversion of the circuit in the form of QAP. On completion of its evaluation each sub-circuit stores the coded sub-scores {tilde over (S)}.sub.z computed in the storage memory corresponding to its bus (Bus Bank) r2.sub.N/km+3, r.sub.2N/km+219 in terms of the verifiable computation method.
(60) On completion of m iterations of functions F1 and F2, the coded score g is thus stored in one of the two storage memories. In the example of
(61) Within the scope of the method described hereinabove the operations to be carried out for generation of the evaluation and verification public keys, and for generation and verification of computation proof can be derived from existing verifiable computation protocols such as Pinocchio, when m=1, and Geppetto, when m>1. The paragraphs hereinbelow describe these operations in more detail as a function of the value of the divider m.
(62) It is to be understood that the embodiment to be described is a particularly advantageous embodiment which is not limiting. The skilled person can use other ways to perform generation of the evaluation and verification public keys, generation and verification of computation proof, and derive said operations from other verifiable existing computation protocols.
(63) Case m=1: In the first mode of operation where m=1, an asymmetric bilinear environment (q, G.sub.1, G.sub.2, G.sub.T, g.sub.1, g.sub.2, e) is defined with q a prime number, G.sub.1, G.sub.2 and G.sub.T three groups of order q, g.sub.1 a generator of G.sub.1, g.sub.2 a generator of G.sub.2, and e a non-degenerate bilinear pairing e: G.sub.1G.sub.2.fwdarw.G.sub.T.
(64) The arithmetic circuit can be represented in the form of a polynomial representation of the circuit Q=(t,V,W,Y) of size and degree , with V={vi}, W={wi}, Y={yi}, 0i.
(65) The following are noted hereinbelow:
(66) I.sub.io={1, . . . , } the set of indices corresponding to the input/output wires of the circuit,
(67) I.sub.mid={+1, . . . , } the set of indices of the intermediate wires of the circuit not being input wires of the circuit.
(68) During generation step E3 of a public evaluation key and a public verification key, random variables r.sub.v, r.sub.w, s, .sub.v, .sub.w, .sub.y, , are first generated in .sub.q.
(69) Then the following coefficients are defined: r.sub.y=r.sub.v.Math.r.sub.w, g.sub.v1=g.sub.1.sup.r.sup.
(70) The public evaluation key EK.sub.F is then generated as equal to (EK.sub.F1, EK.sub.F2) where
(71)
(72) The public verification key VK.sub.F is also generated as equal to (VK.sub.F1, VK.sub.F2) where:
VK.sub.F1=(g.sub.1,{g.sub.v1.sup.v.sup.
VK.sub.F2=(g.sub.2,g.sub.2.sup..sup.
(73) The remote computation device then obtains E4 the arithmetic circuit and the public evaluation key.
(74) For each biometric datum of the entity, at least one matching value between the biometric datum of the entity and at least one reference biometric datum can then be determined E5 by the remote computation device by evaluating the arithmetic circuit received from the biometric data of the entity and the reference biometric data. The set of values of the circuit {c.sub.i}.sub.i[1,] can then be obtained.
(75) Generation E6 by the remote computation device, for each determined matching value, of a proof of correction of the computation execution of the matching value, so-called generated proof =(.sub.1,.sub.2) can then comprise:
(76) determination of a polynomial h(x) such that p(x)=h(x).Math.t(x) with p(x)=(v.sub.0(x)+.sub.i=1.sup.c.sub.i.Math.v.sub.i(x)).Math.(w.sub.0(x)+.sub.i=1.sup.c.sub.i.Math.w.sub.i(x))(x)+.sub.i=1.sup.c.sub.i.Math.y.sub.i(x)),
(77) computation of:
(78)
and .sub.2=(g.sub.w2.sup.W.sup.
where: v.sub.mid(x)=.sub.iI.sub.
The remote computation device then transmits E7 the matching values and said generated proofs to the client device.
(79) The proofs received by the client device are of the form (.sub.r1, .sub.r12) with: .sub.r1 in the form of: (g.sub.v1.sup.V.sup.
(80) The client device then verifies E8 each received proof (.sub.r1, .sub.r2) by performing the following equality tests:
e(g.sub.v1.sup.v.sup.
e((g.sub.v1.sup.V.sup.
e((g.sub.1.sup.Z,g.sub.2.sup.)=e(g.sub.v1.sup.V.sup..sub.q on bits with a security parameter. In this mode of operation the verification step of said received proofs therefore comprises batch verification of pairings.
(81) Case m>1:
(82) Bank B is called a sub-set of indices [1, ] (in other words a sub-set of the circuit wires) and an instance of a bank B is a set of values for these indices (for example noted {c.sub.j}.sub.jB).
(83) The function F is divided into sub-functions F.sub.1, . . . , F.sub.. For example in the case of
(84) =((f.sub.l, (T.sub.l1, . . . , T.sub.ll))).sub.l[1,L] is defined as a scheduling of length L with f.sub.l{1, . . . , } the index of the function to be computed.
(85) By way of example, in the case m=2 or m=3 described hereinabove in reference to
(86) The banks used are: (B.sub.io, B.sub.L.sub.
(87) B.sub.io: banks of input/output type. Number of instances: m+1 B.sub.L.sub.
The scheduling of proofs, of length m+1, is:
=((1,(1,1,0,1,0, . . . 0)), . . . ,(1,(m,m,0, . . . ,1)),(2,(m+1,0,1, . . . ,1)))
In other words, the scheduling of proofs is: For l{1, . . . , m}: digest of B.sub.L.sub.
By way of example, in the case m4 described hereinabove in reference to
The scheduling of proofs, of length m+1, is:
=(.sub.1,.sub.2, . . . .sub.m,.sub.m+1)
where: For l {1, . . . , m}: If l odd: digest of B.sub.L.sub.
.sub.l=(1,(l,l/2,0,0,l/2,l/21)) If l even: digest of B.sub.L.sub.
.sub.l=(2,(l,0,l/2,0,l/21,l/2)) For l=m+1: digest of B.sub.L.sub.
.sub.l=(3,(m+1,0,0,1,l,0)) or .sub.l=(3,+1,0,0,1,0,l)).
For a number x the notation x/2 (respectively x/2) designates the natural integer greater than or equal (respectively less then or equal) to the rational value x/2. For more information on the use of banks and such scheduling, the paragraphs hereinbelow can be viewed in the light of the publication referenced hereinabove describing the Geppetto protocol from which the protocol presented hereinbelow is derived.
(88) In these second and third modes of operation, an asymmetric bilinear environment (q, G.sub.1, G.sub.2, G.sub.T, g.sub.1, g.sub.2, e) is defined with q a prime number, G.sub.1, G.sub.2 and G.sub.T three groups of order q, g.sub.1 a generator of G.sub.1, g.sub.2 a generator of G.sub.2, and e a non-degenerate bilinear pairing e: G.sub.1G.sub.2.fwdarw.G.sub.T.
(89) The arithmetic circuit can be represented in the form of a multi-QAP Q=({B.sub.b}.sub.b[1,l], t, V, W, Y) of size and degree , with {B.sub.b}.sub.b[1,l] a set of l banks B.sub.b of Q used in computing the function F, and V={vi}, W={wi}, Y={yi} with 0i.
(90) During the generation step E3 by the client device of a public evaluation key and a public verification key, random variables s,{(.sub.bv, .sub.bw, .sub.by, .sub.b, .sub.b)}.sub.b[1,l], r.sub.v, r.sub.w are generated in .sub.q.
(91) Next, the following coefficients are defined: r.sub.y=r.sub.v.Math.r.sub.w, g.sub.v1=g.sub.1.sup.r.sup.
(92) The public evaluation key EK.sub.F is generated as equal to:
({EK.sub.Fb}.sub.b[1,l],{g.sub.1.sup.s.sup.
Each public bank key EK.sub.Fb is equal to (EK.sub.Fb1, EK.sub.Fb2) and generated by computing:
(93)
(94) The public verification key VK.sub.F is also generated as equal to: ({VK.sub.Fb}.sub.b[1,l], g.sub.1, g.sub.2, g.sub.y2.sup.t(s)). Each public bank key VK.sub.Fb is equal to (g.sub.2.sup..sup.
(95) The remote computation device obtains E4 the arithmetic circuit and the public evaluation key.
(96) For each biometric datum of the entity, at least one matching value between said biometric datum and at least one reference biometric datum can then be determined E5 by the remote computation device by evaluating the arithmetic circuit received from the biometric data of the entity and the reference biometric data. The remote computation device evaluates each sub-function F.sub. from the biometric data of the entity and the reference biometric data for obtaining the matching value and the values of the circuit.
(97) Generation E6 by the remote computation device, for each determined matching value, of a proof of correction of the computation execution of the matching value can comprise for each l={1, . . . , L} a list of digests and proofs obtained as described hereinbelow.
(98) Let .Math.[1,l] be the set of indices b[1,l] such that T.sub.lb0 in the scheduling =((f.sub.l, (T.sub.l1, . . . , T.sub.ll))).sub.l[1,L].
(99) Hereinbelow the following: =U.sub.bB.sub.b, {c.sub.j}.sub.jB.sub.
(100) For each bank B.sub.b such as b,
(101) the remote computation device generates pledging random variables o.sub.b=(o.sub.bv, o.sub.bw, o.sub.by) in .sub.q.
(102) it then computes the digest D.sub.b equal to (D.sub.b1, D.sub.b2) from the instance of the bank of variables B.sub.b: B.sub.b.sup.(T.sup.
(103)
v.sup.(b)(s)=.sub.iB.sub.
w.sup.(b)(s)=.sub.iB.sub.
y.sup.(b)(s)=.sub.iB.sub.
The remote computation device then determines a polynomial h.sup.(l)(x) such that p.sup.(l)(x)=h.sup.(l)(x).Math.t(x)
with p.sup.(l)(x)=(v.sub.0(x)+.sub.ic.sub.i.Math.v.sub.j(x)+.sub.bo.sub.bv.Math.t(x)).Math.(w.sub.0(x)+.sub.ic.sub.i.Math.w.sub.j(x)+.sub.bo.sub.bw.Math.t(x))(y.sub.0(x)+.sub.ic.sub.i.Math.y.sub.j(x)+.sub.bo.sub.by.Math.t(x))
Finally, it computes a proof element .sup.(l) equal to g.sub.1.sup.h.sup.
(104) The remote computation device then transmits E7 the matching values and said generated proofs comprising the list of computed digests and proof elements to the client device.
(105) The proofs received by the client device are of the form of: D.sub.1.sup.(1), . . . , D.sub.l.sup.(1), .sup.(1), . . . , D.sub.1.sup.(L), . . . , D.sub.l.sup.(L), .sup.(L) where for all l{1, . . . , L} and {1, . . . ,l}:
(106)
and .sup.(l)=g.sub.1.sup.H.sup.
(107) Two verification implementation variants of the received proof E8 are specified hereinbelow.
(108) In a first implementation variant, the client device then verifies each received proof by performing: verification of L.Math.e digests, for l{1, . . . , L} and b{1, . . . , l} comprising the following equality tests:
(109)
(110)
(111) In a second implementation variant, the client device then verifies each received proof by executing batch verification comprising, given a correction parameter : selection of a random vector (d.sub.1, . . . , d.sub.3.Math.l) of elements of size , batch verification of the L.Math.l digests, in l times by executing the following equality tests, for b{1, . . . , l}:
(112)
(113)
(114) The method performed carries out biometric identification by comparing biometric data in terms of the scope of a publicly verifiable computation protocol and minimizing the time necessary for production and verification of proofs relative to proper execution of this computation, by way of minimization of the number of multipliers employed to represent this computation in the form of an arithmetic circuit.