Biometric identification using filters and by secure multipart calculation
09729548 · 2017-08-08
Assignee
Inventors
- Alain Patey (Issy-les-Moulineaux, FR)
- Herve Chabanne (Issy-les-Moulineaux, FR)
- Julien Bringer (Issy-les-Moulineaux, FR)
- Melanie Favre (Issy-les-Moulineaux, FR)
Cpc classification
G09C1/00
PHYSICS
H04L9/00
ELECTRICITY
H04L63/0861
ELECTRICITY
H04L63/20
ELECTRICITY
International classification
G09C1/00
PHYSICS
H04L9/32
ELECTRICITY
Abstract
The invention is about an identification process of an individual or object, in a system comprising a control server and a management server of a database comprising N indexed data of N stored individuals, in which, to identify the individual or object, its datum is compared to each of the N data of the base. The process comprises steps during which: the control server acquires the datum of the individual or object to be identified, the reference data of the base and the datum of the individual or object to be identified are converted into simplified data of lesser size, a set of p index of simplified data of the base, p being less than N, having the most similarities to the simplified datum of the individual or object to be identified, securely between each of the N simplified data of the database and the simplified datum of the individual or object to be identified, the management server scrambles the N reference data of the database, and transfers to the control server p scrambled data corresponding to the simplified data identified previously, from the p scrambled data the control server determines, by secure multi-party computation between each of the p scrambled data and the datum of the individual or object, the index or the indices of one or more scrambled data whereof the corresponding reference data have a rate of similarity to the datum of the individual or object, which exceeds a predetermined threshold.
Claims
1. An identification process of an individual or object (I), in a system comprising a control server (SC) and a management server (SG) of a database (DB) comprising N indexed reference data (b.sub.i) of N stored individuals, each of the datum (b) of the individual (I) and the reference data (b.sub.i) comprising a set of n indexed bits, the process comprising steps during which: the control server (SC) acquires (100) the datum (b) of the individual or object to be identified the control server (SC) and the management server (SG) convert (210) the reference data (b.sub.i) of the base and the datum (b) of the individual or object (I) to be identified into simplified data (s.sub.i, s), the simplified data (s.sub.i, s) being coded on t bits, t being less than n, the conversion comprising defining of an indexation set comprising indexing numbers of the bits of each of the datum of the individual and of the reference data, said indexing numbers being selected to relate to the most pertinent bits of the datum of the individual and the reference data, and generating a simplified datum from the datum of the individual or a reference datum as comprising only the bits of the datum that are indexed by the indexing numbers of the indexation set, the control server (SC) determines (200) a set of p index (i.sub.0, . . . , i.sub.p-1) of simplified data (s.sub.i.sub.
2. The identification process according to claim 1, in which the transfer of p scrambled data (b′.sub.i.sub.
3. The identification process according to claim 1, in which, after the control server (SC) has determined the index or the indices (i.sub.ID) of the scrambled data (b′.sub.i.sub.
4. The identification process according to claim 1, in which, for scrambling the N data (b.sub.i) of the base (DB), the management server (SG) generates, for each of the p reference data (b.sub.i.sub.
5. The identification process according to claim 1, in which the identification relates to an individual, and the reference data (b.sub.i) of the base (DB) and the datum (b) of the individual (I) to be identified are biometric data.
6. The identification process according to claim 5, in which the biometric data (b, b.sub.i) are binary codes of iris images.
7. The identification process according to claim 1, in which the determining of simplified data (s.sub.i) of the base (DB) having the most similarities to the simplified datum (s) of the individual (I) or object is performed by computation of Hamming distances between the simplified data (s.sub.i) of the base (DB) and the simplified datum (s) of the individual.
8. The identification process according to claim 1, in which the determination step of N simplified data (s.sub.i) of the base (DB) having the most similarities to the simplified datum (s) of the individual (I) to be identified is performed by secure multi-party computation.
9. The identification process according to claim 1, in which, during the step of secure multi-party computation between the scrambled data (b′.sub.i.sub.
10. The identification process according to claim 1, in which, to compute and compare the rate of similarity between the data (b.sub.i.sub.
11. The identification process according to claim 10, in which the function (f) to be evaluated of each garbled circuit (C.sub.0 . . . C.sub.p-1) comprises computation of the normalized Hamming distance between each datum (b.sub.i.sub.
12. The identification process according to claim 1, comprising a preliminary step (10) during which the data (b.sub.0 . . . b.sub.N-1) of the base (DB) are reindexed randomly by the management server (SG).
13. An identification system of an individual, comprising at least one control server (SC) of an individual (I) to be identified, and at least one management server (SG) of a base (DB) of N reference data (b.sub.0 . . . b.sub.N-i) of stored individuals, the control server (SC) being adapted to proceed with acquisition of a datum (b) of the individual (I), wherein the control server (SC) and the management server (SG) comprise processors adapted for the steps during which: the control server (SC) and the management server (SG) convert (210) the reference data (b.sub.i) of the base and the datum (b) of the individual or the object (I) to be identified into simplified data (s.sub.i, s), the simplified data (s.sub.i, s) being coded on t bits, the control server (SC) determines (200) a set of p index (i.sub.0, . . . i.sub.p-1) of simplified data (s.sub.i.sub.
14. An identification process of an individual or object (I), in a system comprising a control server (SC), and a management server (SG) of a database (DB) comprising N indexed reference data (b.sub.i) of N stored individuals, each of the datum (b) of the individual (I) and the reference data (b.sub.i) comprising a set of n indexed bits, the process comprising steps during which: the control server (SC) acquires (100) the datum (b) of the individual or object to be identified, the control server (SC) and the management server (SG) convert (210) the reference data (b.sub.i) of the base and the datum (b) of the individual or object (I) to be identified into simplified data (s.sub.i, s), the simplified data (s.sub.i, s) being coded on t bits, t being less than n, the control server (SC) determines (200) a set of p index (i.sub.0, . . . , i.sub.p-1) of simplified data (s.sub.i.sub.
Description
DESCRIPTION OF FIGURES
(1) Other characteristics, aims and advantages of the present invention will emerge from the following detailed description with respect to the attached figures, given by way of non-limiting examples, and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED DESCRIPTION OF AT LEAST ONE EMBODIMENT
(9) In reference to
(10) A database DB comprises a set of N indexed biometric data b.sub.i, i being between 0 and N−1, of stored individuals as being for example authorised to enter a site, or on the contrary whose presence is prohibited on this site.
(11) This database DB is linked to a management server SG, fitted with computation means executed by an appropriate computer program.
(12) The individual I is identified with a control server SC, also fitted with computation means executed by an appropriate computer program, and also comprises means for acquisition and processing of a datum particular to the individual, especially a biometric datum b.
(13) The datum b can originate as is known from a digitised and encoded image of a biometric character such as the face, or a fingerprint, or even the iris of the individual, or a combination of several of these data. By way of non-limiting example, the case of digital acquisition of the iris of the individual I will be taken hereinbelow.
(14) The datum b can also be stored in digital form in an identity document of the individual.
(15) The datum b of the individual and the data b.sub.0 to b.sub.N-1 of the base must be the same kind so as to be compared. In particular, the information they contain must relate to the same biometric characters: in the present example the iris.
(16) In this case, the database DB can also comprise, for each datum of iris b.sub.i, a corresponding mask code m.sub.i, and the control server can also acquire a mask code m corresponding to the image of iris b, or process the datum b in light of obtaining them. These mask codes indicate the visible, and therefore exploitable, zones of the iris, these zones being typically those not masked by the eyelids.
(17) The mask codes m and m.sub.i have been shown in parentheses in
(18) In the same way, from the image of the iris acquired from the individual I, the control server generates a mask code m corresponding to the visible part of the iris.
(19) These types of data generally contain lots of information, and are typically coded in a format of 256 octets, or 2048 bits. Hereinbelow the number of bits of data b and b.sub.i is named n.
(20) An embodiment of an identification process will now be described in reference to
(21) Before each identification process, the management server SG randomly reindexes the set of data b.sub.i from the base (step 10) so that the control server SC can store no information on the history of the identifications and their correspondences with the biometric data used for the latter.
(22) During a step 100, the control server SC proceeds with acquisition of the datum b of the individual. Then, it initiates a first rapid filtering step 200 of the N biometric data of the base, identifying the p data, p being less than N and fixed in advance by the servers SC and SG, having the greatest similarities to b.
(23) Rapid Filtering
(24) To minimise the computational time for this step, the control server SC and the data server SG simplify the data b and b.sub.0 to b.sub.N-1, typically by reducing the size of these data during a step 210.
(25) By way of example, in the event where the data are iris images coded on 2048 bits, the servers SC and SG can reduce the sizes of the data to 128 bits. To achieve this, the servers SC and SG can agree on an indexation set A which is a sub-set of set {1, . . . , n}, such that the bits of data b and b.sub.i indexed by the elements of A are among the most significant of the data. The cardinal of A is named t, t being less than n. In the case of the example hereinabove, n is 2048 and t is 128.
(26) The servers SG and SC generate simplified data s and s.sub.i, i being between 0 and N−1, these data comprising respectively the bits of b and b.sub.i indexed by A, such that the data s and s.sub.i are coded on t bits instead of n initially.
(27) With these simplified data, the servers SC and SG can run N comparison operations of 1:1 between s and each of the s.sub.i, i being between 0 and N−1, for identifying the p simplified data s.sub.i of the base DB the closest to s. The mathematical functions of comparison of biometric data are known by those skilled in the art.
(28) In the event where the data are iris images, it is possible to calculate a Hamming distance D.sub.i for example between s and each of the s.sub.i the Hamming distance being the number of incoherent bits between the two compared data. A similar filtering technique is described in the document F. Hao, J. Daugman, and P. Zielinski. “A fast search algorithm for a large fuzzy database”. IEEE Transactions on Information Forensics and Security, 3(2), 2008.
(29) The p data the closest to s are in this case the p data having the smallest Hamming distances from s.
(30) The filtering step is conducted securely, that is, such that the servers SG and SC obtain no information on the data of the others, respectively the biometric datum b of the individual or those b.sub.i of the base.
(31) To do so, a method of secure multi-party computation may be used, utilising the Yao protocol described hereinbelow in the description of the securing of the filtering step in reference to
(32) First, it is necessary to explain two prerequisites employed in the Yao protocol: oblivious transfers and garbled circuits.
(33) Oblivious Transfers
(34) The Yao protocol uses oblivious transfers, which are computation operations between two parties P1 and P2.
(35) In this type of operation, P1 has a list of N indexed elements X.sub.i, and P2 knows the number N of elements of the list and selects an index i between 0 and N−1. Via oblivious transfer, P2 recovers the i.sup.st element of P1, that is, the element of P1 indexed by i.
(36) P1 learns no information on the index of the element recovered by P2.
(37) P2 per se retrieves no information on the other elements of the list held by P1.
(38) Garbled Circuits
(39) The Yao protocol also uses garbled circuits.
(40) In short, a garbled circuit, a diagram of which is illustrated by way of example in
(41) Conventionally, each logic gate is attributed with a truth table, setting up the logic link between the outputs and the inputs. The truth table of the logic function <<AND>> is illustrated by way of example in
(42) To ensure securing of the evaluation of the function, each possible input and each output of each elementary logic gate are encrypted by the creator of the garbled circuit, by means of random pairs of encryption keys corresponding to the two possible Boolean values, particular to each input or output. In
(43) This produces a truth table where the binary values of inputs and outputs are replaced by encryption keys.
(44) The outputs of each logic gate are then encrypted by the encryption keys by the values of the corresponding inputs to obtain an encrypted or garbled truth table in
(45) So for example, in the case of the function AND, the encryption key k.sub.0.sup.z corresponding to the value 0 of z appears in all cases where x and y are not equal to 1. However, this key k.sub.0.sup.z is not encrypted in the same way according to the values taken by x and y: in fact, if x and y are both 0, the key k.sub.0.sup.z is encrypted by means of the keys k.sub.0.sup.x and k.sub.0.sup.y: this encrypted key is noted Enc.sub.k.sub.
(46) Finally, the input keys are removed from the table, and the keys obtained for each output are reordered randomly as in
(47) To evaluate the function of the circuit from the encryption keys, a correlation table T between the encryption keys of the result of the function evaluated and the corresponding values of the bits is generated by the creator of the circuit.
(48) Yao Protocol
(49) Finally, the Yao protocol is a method of secure computation in which several parties want to make a computation from data which they have, without sharing the nature of these data with each other.
(50) To achieve this, one of the parties creates a garbled computation circuit of a function to be evaluated, as described hereinabove, as well as pairs of encryption keys (one for the binary value 0 and one for the binary value 1) for each of the bits of inputs and outputs of the logic gates of the circuit. The creator of the garbled circuit also generates a correlation table T from the encryption keys of the result of the function and the result itself.
(51) The creator of the garbled circuit then sends the other party (or other parties) the garbled circuit, the correlation table, and the encryption keys of the bits of the input data belonging to the creator.
(52) In this way, for each input bit x of the creator of the circuit equal to 0 (respectively 1), the creator sends only the encryption key k.sub.0.sup.x (resp. k.sub.1.sup.x). As these keys are random, the users of the garbled circuit can obtain no information on the corresponding bits of the data kept by the creator.
(53) Also, users of the garbled circuit recover from the creator, by oblivious transfer, the keys corresponding to the bits of the input data of the function which they have.
(54) Therefore, for each input bit y of the user, the creator prepares a list with two elements composed of k.sub.0.sup.y and k.sub.1.sup.y and the index selected by the user for oblivious transfer is the value of the bit y.
(55) The recourse to the oblivious transfer method lets the creator get no information on the values of the bits of the data of the users of the circuit.
(56) Finally, the user of the garbled circuit can evaluate the function by means of the keys he has obtained, and translate the result he gets at output of the function by means of the correlation table. He can optionally send the result to the creator of the circuit.
(57) In reference again to the rapid filtering step 200, to execute filtering of the simplified biometric data s.sub.i of the base, the control servers SC and management servers SG use the Yao protocol for the secure computation of a filtering function the constitutive elements of which are illustrated in
(58) During a step 220 the management server SG creates a garbled circuit C representing a function f (noted C(f) in
(59) The computation function of the Hamming distance is known by those skilled in the art. It is noted in D.sub.i=∥(s⊕s.sub.i)∥.
(60) The Hamming distances calculated in this way are compared to each other by the logical operations illustrated in
(61) In
(62)
(63) To do this it uses a comparison function <<>>> whereof the output (1 if D.sub.0 is greater than D.sub.1 and 0 if not) is the input c of a consecutive function MUX′.
(64) Finally, in reference to
(65) At the end of this logical diagram the minimal distance D.sub.min is obtained from the compared N distances. This comparison step is iterated p times, each time excluding the minimal distance identified at the preceding step, to finally obtain the minimal p distances D.sub.i.
(66) Once the garbled circuit C is generated, the management server SG creates the encryption keys from each of the inputs of the function f, as well as the encryption keys of the outputs of each elementary logical operation of the function f, the outputs of a logical operation being the inputs of a subsequent logical operation. It generates in particular a pair of encryption keys for each bit of each simplified datum s and s.sub.i.
(67) Finally, the management server SG generates a correlation table T but, contrary to conventional Yao protocols, this correlation table does not relate to the keys of outputs of the evaluated function, but to the outputs from comparison steps <<>>> of the Hamming distances of each operation <<2-1>>.
(68) The management server SG sends the control server SC the garbled circuit C, the correlation table T, and the encryption keys of the bits of the simplified biometric data s.sub.i, of the base DB, noted, for each bit u of each datum s.sub.i, k.sup.0(s.sub.i.sup.u) or k.sup.1(s.sub.i.sup.u) according to the value of the bit u. The set of encryption keys is noted more simply k(s.sub.0), . . . k(s.sub.N-1) in
(69) Also, by oblivious transfer, the control server SC retrieves the encryption keys k(s) of the bits of the simplified biometric datum of the individual s.
(70) During a step 230 the control server SC can evaluate the comparison function between the simplified data s.sub.i of the base and the simplified datum s of the individual by means of the garbled circuit C and of keys k, to identify the p data s.sub.i, having the most similarities to the datum s of the individual.
(71) Since the control server SC has only the correlation table T of the keys of the outputs of the comparison steps <<>>>, the result it gets is not the value of the different Hamming distances, which where appropriate would provide it with information on the data, but the index of the selected p data si.sub.0 . . . si.sub.p-1.
(72) On completion of this filtering step, the server SC knows only the list {i.sub.0, . . . , i.sub.p-1} of the indices of the p simplified data {s.sub.i0, . . . , s.sub.ip-1} having the minimal Hamming distances with the datum s of the individual such that the control server SC learns no information on the selected simplified data {s.sub.i0, . . . , s.sub.ip-1} and a fortiori on the data of the corresponding base {b.sub.i0, . . . , b.sub.ip-1}.
(73) The management server SG thus has obtained no information on the simplified biometric datum s of the individual and a fortiori on the original datum b.
(74) Comparison and Selection
(75) The comparison and selection step 300 is run on the data b.sub.i.sub.
(76) As is known by those skilled in the art, this threshold is selected to set up the correspondence of biometric data with optimal rates of false positives and false negatives.
(77) Similarly to the Yao protocol, the management server SG creates, during a step 310, p garbled circuits C0 . . . Cp−1, each being used to evaluate a comparison function f′ with a biometric datum b.sub.i.sub.
(78) The comparison function f′ utilised in comparison and selection step 300 is separate from the function f utilised for the filtering 200.
(79) In the event where the biometric data are iris images, the comparison function f′ can be the normalized Hamming distance, that is, the Hamming distance calculated on 2048-bit codes, and taking into account the masks associated with the iris images, that is, the codes indicating the zones of the iris which are masked, typically by an eyelid, and which are therefore not relevant for comparison.
(80) For more information on the normalized Hamming distance reference can be made to the Daugman method described in the document J. Daugman, <<How Iris Recognition Works>> IEEE transactions on circuits and systems for video technology, Vol. 14, No. 1, JANUARY 2004.
(81) If X and Y are noted as two iris images coded on 2048 bits, and m(X) and m(Y) their associated masks, the normalized Hamming distance is
(82)
(83) The aim of this step is therefore to calculate f(b, b.sub.i.sub.
(84) To optimise computation, the circuits C.sub.j, j being between 0 and p−1, are preferably built to make the comparison ∥(X⊕Y)∩m(X)∩m(Y)∥<ε∥m(X)∩m(Y)∥, and not
(85)
(86) For each circuit C.sub.j the management server SG also generates the encryption keys k of the inputs and outputs of each logic gate, in particular comprising a pair of encryption keys for each input bit of the function to be evaluated, that is, for each input bit of the datum b and the data of the base b.sub.i, as well as the correlation table T of the output keys of the function.
(87) The management server SG sends the control server SC the garbled circuits C.sub.j and the respective correlation tables T.sub.j of the circuits.
(88) The control server SC retrieves the encryption keys of the bits of the biometric datum b of the individual I by oblivious transfer and for each garbled circuit.
(89) The control server SC must finally retrieve the values of the data bi.sub.j of the base which have been selected, as well as the corresponding keys so they can be compared to the datum b of the individual, without learning any information on these data.
(90) For this to happen, the management server SG first scrambles the set of data b.sub.i, during a step 320, to obtain the scrambled data b′.sub.i.
(91) More precisely, for each of the p reference data b.sub.i.sub.
(92) The {0,1} permutation can have only two results on the bits of the data b.sub.i: either it converts the binary values of the bits (1, 0) in their opposite (0, 1) or it keeps the values of the bits.
(93) In the same way the management server can scramble the masks m.sub.i to create scrambled masks m′.sub.i.
(94) Through oblivious transfer, the control server SC retrieves the scrambled data b′.sub.i.sub.
(95) The control server gets no information on the selected data and the management server SG gets no information on the index of these data.
(96) Next, for the control server to be able to evaluate the garbled circuit with the scrambled data b′.sub.i.sub.
(97) The encryption keys generated by the management server SG for a bit u of a datum b.sub.i of the base are noted respectively k.sup.0(b.sub.i.sup.u) and k.sup.1(b.sub.i.sup.u)) as a function of the binary value of the bit u.
(98) For a bit of a scrambled datum b′.sub.i.sub.
(99)
as a function of the binary value, 0 or 1 of the bit u. With these encryption keys the control server SC can perform computations from the scrambled functions since there is the relation k′(b′.sub.i.sub.
(100) The management server retrieves finally, by oblivious transfer, the encryption keys k′.sup.0(b′.sub.i.sub.
(101) It finally evaluates the function during a step 330 from the encryption keys obtained, outputting the fact that the biometric datum bi.sub.j corresponding to the scrambled datum b′.sub.i.sub.
(102) A the issue of the set of evaluations made on the garbled circuits C.sub.j the control server SC has the index i of the biometric datum b.sub.i stored in the base which corresponds to the datum of the individual, if it exists. The server can also have several indices, if several data of the base correspond to that of the individual I.
(103) The control server SC communicates the obtained index i.sub.ID to the management server SG during a step 400, the management server SG which identifies the biometric datum b.sub.ID, and the corresponding individual stored, which has been identified as the individual I.
(104) If the identification system is placed upstream of a zone with controlled access, for example, the control server SC or the management server SG can authorize access of the individual I to the zone, or not.
(105) Therefore the process according to the invention enables faster identification than processes proposed to date, due to the rapid filtering step performed on simplified biometric data.
(106) Yet it remains quite safe, due to the step for scrambling selected data after the rapid filtering step.