Abstract:
The invention provides a device and a method for biometric user authentication during client-server communication. The device is a sensor for recording of a user&#39;s biometric data and an access card which belongs to the user. The method is based on the user&#39;s representation on the server by an array of random numbers unrelated to the user&#39;s biometric data. The information recorded on the access card is the array of coefficients calculated in such a way that applying these coefficients to the biometric data of the user produces the array of random numbers saved on the server.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    Not applicable. 
       STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH AND DEVELOPMENT 
       [0002]    Not applicable. 
       REFERENCE TO SEQUENCE LISTING, A TABLE, OR A COMPUTER PROGRAM LISTING COMPACT DISC APPENDIX 
       [0003]    Not applicable. 
       TECHNICAL FIELD 
       [0004]    This invention relates to authentication of a user in a client-server communication. 
       BACKGROUND 
       [0005]    There are different authentication schemes in computer security that allow user to login to the server. They are based on security credentials e.g., a password or a fingerprint or an access card provided by the user at the client. 
         [0006]    In these schemes a user&#39;s biometry can be used in order to increase the security of communications. However, using biometric data puts the user&#39;s privacy in danger since storing biometric data long term (even in encrypted form) introduces the possibility that at some moment of time it will be revealed or decoded. 
       SUMMARY 
       [0007]    It is therefore the objective of the present invention to provide a device and the method for client-server communication where the login to the server is based on user&#39;s biometric data, but the biometric data itself is not saved in any form neither on the server, nor on the client. 
         [0008]    The proposed device is comprised of a biometric sensor located client-side, e.g. a webcam used to make pictures of the user&#39;s palm, and the access card with information recorded during enrollment. 
         [0009]    The proposed method is based on server-side representation of the user by an array of random numbers unrelated to the user&#39;s biometric data. The information on the access card is an array of coefficients calculated in such a way that applying these coefficients to the biometric data of the user (e.g. to his palm&#39;s image) produces the array of random numbers saved on the server. 
         [0010]    The advantage of the method is that real biometric data cannot be retrieved even theoretically from data of the server or of the client if they are compromised. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  illustrates the process of enrollment. 
           [0012]      FIG. 2  illustrates the process of authentication. 
           [0013]      FIG. 3  illustrates extracting array Z from various user biometric data: face image, palm image, signature, and audio recording. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0014]      FIG. 1  illustrates the process of enrollment. 
         [0015]    An array R={r 1 , r 2 , r 3  . . . , r N } of random numbers (not related to biometric data of the user) is generated on the server. The array R represents the user at the server. 
         [0016]    Biometric data of the user is collected on the client as an array Z of N components: Z={z 1 , z 2 , z 3  . . . , z N }. Example technique for extracting a biometric array from the user&#39;s face image is given in section [0024], from the user&#39;s palm image—in section [0025], from the signature—in section [0026], and from the audio-record—in section [0027]. 
         [0017]    An array C={c 1 , c 2 , c 3  . . . , C N } is saved on the user&#39;s access card; the values of c i  are calculated using the formulas: 
         [0000]        c   1   =r   1 /( z   1   −  z   ), 
         [0000]        c   2   =r   2 /( z   2   −  z   ), 
         [0000]      . . . , 
         [0000]        c   N   =r   N /( z   N   −  z   ),  (1)
 
         [0000]    where  z =(z 1 +z 2 + . . . +z N )/N (average of Z). Per formulas in (1), R=(Z−  z )C. 
         [0018]    If one of the components of the array Z is equal to its average (e.g., z 1 =  z ), then the calculation of C using the formulas (1) is impossible (division by zero). Such a situation can be easily avoided. As an example, if all z i  values are between 0 and 1, then introducing N more artificial points z N+1 , z N+2 , z N+3 , . . . , z 2N  calculated by the formula z N+1 =3−z i  to the array Z solves the problem by making  z =1.5 and different from all 2N values of z i . N more random numbers of r i  have to be appended to the array R as well. 
         [0019]      FIG. 2  illustrates the process of authentication. 
         [0020]    When the user submits an access card, a random public/private pair is generated at the client side (for RSA encryption; see U.S. Pat. No. 4,405,829). The public key is sent to the server along with the connection request. 
         [0021]    Then, the server performs the following operations (numerated in  FIG. 2 ):
   1) Generates a random permutation P of N integers (from 1 to N), for example, for N=32: “2, 30, 4, 1, 5, 7, 6, 8, 16, 15, 28, 13, 9, 10, 11, 12, 20, 19, 18, 17, 21, 23, 22, 24, 32, 31, 3, 29, 25, 26, 27, 14”.   2) Encodes this string using the public key and sends the encoded permutation to the client.   
 
         [0024]    After that, the client performs the following operations:
   3) Extracts a biometric array Z new  from the image of the user&#39;s palm (as described in sections [0023]-[0027]).   4) Builds an array R new =(Z new −  z   new )C, where is the average of the array Z new  and C are the coefficients from the access card, which were created during enrollment.   5) Decodes the permutation P from the received encoded string using the private key.   6) Applies the decoded permutation P to R new  and submits the array P[R new ] to the server. Note that when Z new =Z, P[R new ] is exactly equal to P[R].   
 
         [0029]    After that, the server performs the following operations:
   7) Applies the generated permutation P to the representational array R=(Z−  z )C, which was created on the server during enrollment.   8) Calculates the correlation coefficient between the array P[R] and the array P[R new ] submitted by the client and makes the verification decision.   
 
         [0032]    If the correlation coefficient is sufficiently close to 1 (e.g., greater than 0.7), the server grants authorization; otherwise, the user&#39;s access to the server is denied. 
         [0033]    The reason that the correlation coefficient is required to be close to 1 is as follows. If the average values of two arrays A and B are equal to zero (as is the case for A=(Z−  z ) and B=(Z new −  z   new )) and the correlation coefficient between the arrays A and B is equal to 1, then after the multiplication of each of the arrays by the same array C (component-by-component), the correlation coefficient between the arrays {a 1 *c 1 , a 2 *c 2 , a 3 *c 3 , . . . , a N *c N } and {b 1 *c 1 , b 2 *c 2 , b 3 *c 3 , b N *c N } is equal to 1 as well; shuffling the last two arrays in the same order also does not change their correlation coefficient. If this correlation coefficient is equal to 1, it means Z=const*Z new . If the correlation coefficient is close to 1, it means Z and Z new  are probably derived from the biometric data of the same user. 
         [0034]      FIG. 3  illustrates a way of extracting array Z from various biometric data: a face image, a palm image, a signature, and an audio recording. 
         [0035]    The face image  100  can be represented as a frame of 48×48 pixels (see U.S. patent application Ser. No. 13/936,190) so that the biometric array Z is represented as the array {z i } of the brightness values of the pixels in the frame, where 0&lt;=z i &lt;255 and N=48*48 to account for each pixel in the frame. 
         [0036]    The palm  200  can be presented in a similar manner, see U.S. patent application Ser. No. 14/034,274. 
         [0037]    User&#39;s signature  300  can be presented as three arrays 
         [0000]        X={x   0   , x   1   , x   2   , . . . , x   K−1 } 
         [0000]        Y={y   0   , y   1   , y   2   , . . . , y   K−1 } 
         [0000]        T={t   0   , t   1   , t   2   , . . . , t   K−1 } 
         [0000]    where K is a number of data points in the signature, X corresponds to the x-coordinates and Y corresponds to the y-coordinates of the points of the signature registered on each “mouse move”—at the moments T. The triplet sequence Z={x 0 , y 0 , t 0 , x 1 , y 1 , t 1 , . . . , x K−1 y K−1 , t K−1 }, where N=3*K is an example of biometric array Z extracted from the user&#39;s signature. The pair sequence Z={x 0 , y 0 , x 1 , y 1 , . . . , x K−1 , y K−1 }, where N=2*K is another example of biometric array Z, see U.S. Pat. No. 8,060,752 and U.S. Pat. No. 7,783,893. 
         [0038]    In the case of the audio recording  400  array Z is a sequence of N volume intensities in the phrase “My secrete word” pronounced by a user. For the audio recording in  FIG. 3  N-1024. 
         [0039]    The last step of deriving Z is “twisting” it: the sequence Z={z 1 , z 2 , z 3  . . . , z N } is shuffled and the value of each z i  is multiplied by a random number between 0 and 1. The shuffle pattern and the multipliers are determined based on the information extracted from the user&#39;s access card or based on other source of information that a hacker cannot have. This is done in order to protect the real biometry of the user: if the hacker knows both the array C and the array R, he can calculate Z, but this Z will be not real, but twisted, biometry. 
         [0040]    The security of the proposed system is very difficult to compromise for the following reasons. 
         [0041]    To get access to the server, the hacker has to produce the permuted representational array; having just the representational array is not enough for that. The hacker can intercept an encoded permutation string sent from the server, but he has to decode it in order to build a permuted representational array. However, the corresponding private key to do that is not available to him since it is not stored anywhere (it is an internal variable of a program running on the client). So the hacker can only use the trial and error method. In the proposed scheme, he has just one attempt to break encryption per response because private and public keys and permutations are randomly generated for each request. 
         [0042]    The advantages of the proposed method are as follows:
       the user is represented on the server only by an array of random numbers that are not related to his biometric data, and his real biometric data cannot be retrieved even theoretically from the data on the server or the client alone if either is compromised;   the method uses randomly generated private and public keys that are not saved anywhere and a random permutation that is different for each request/response, so there is no need for the user to create/memorize/store any passwords; there is also no need to store any helper data.       
 
         [0045]    Although the present invention has been described in terms of the preferred application, it is to be understood that the disclosure is not to be interpreted as limiting. Various modifications will become apparent to those skilled in the art after having read this disclosure. For example, the described device and method can be used to restrict access to facilities. Other examples: using the device and method for voting machines and ATMs. It is intended that the appended claims be interpreted as covering all alterations and modifications in the spirit and within scope of the invention.