Pseudo-homomorphic authentication of users with biometry
View Patent ↗Methods for the generation and use of session keys for authentication of a user of a server device are disclosed. The methods use a biological objects of the user to generate responses to challenges. During enrollment, the server device receives a password, hashes it a first number of times, and sends the hash to the user. The user interprets the hash as a set of challenges for the biological object, applies the challenges, and stores the responses. During authentication, the server hashes the password a second number of times, less than the first number, and sends the hash to the user. The user iteratively applies second hash to the biological object, compares the responses to the stored responses, and if there is not a match, hashes the challenges again until there is a match. The number of hashes needed for a match is a session key or subkey.
1 . A method of generating and using a session key at a client device, comprising:
receiving a first challenge bitstream, the first challenge bitstream comprising a password that has been iteratively hashed a first number of times according to a hashing method;
generating, from the first challenge bitstream, a first series of challenges, the first series of challenges specifying measurement conditions for measuring physical properties of a biological object;
measuring the biological object according to the first series of challenges;
receiving a first response bitstream from the measurement of the biological object;
storing the first response bitstream;
receiving a second challenge bitstream, the second challenge bitstream comprising the password that has been iteratively hashed a second number of times by the hashing method, the second number of times being less than the first predetermined number of times;
iteratively performing the following steps n times until a stop condition is reached:
hashing the second challenge bitstream using the hashing method;
generating from the hashed second challenge bitstream a second series of challenges;
measuring the biological object according to the second series of challenges;
receiving a second response bitstream from the measurement of the biological object; and
comparing the first response bitstream to the second response bitstream, wherein the stop condition is reached when the first response bitstream matches the second response bitstream, and using n as a session key.
2 . The method of claim 1 , wherein the biological object is one of a human face, fingerprint, iris or retina.
3 . The method of claim 1 , wherein measuring the biological object according to the first and second series of challenges comprises taking electronic image data from the biological object and extracting data about the biological object from the image data on the basis of the challenges.
4 . The method of claim 3 , wherein extracting data about the biological object from the image data on the basis of the challenges comprises taking a Fourier transform of the image data and extracting one or more frequencies of features in the image data from the Fourier transform.
5 . The method of claim 3 , wherein extracting data about the biological object from the image data on the basis of the challenges comprises determining the density or level of grayness of one or more portions of the image data identified by the challenges.
6 . The method of claim 3 , wherein extracting data about the biological object from the image data on the basis of the challenges comprises determining an orientation of a gradient of shading or grayness of one or more portions of the image data identified by the challenges.
7 . The method of claim 1 , further comprising pre-enrolling the client device by taking repeated calibration measurements of the biological object, determining calibration data on the basis of the repeated measurements, storing the calibration data, and applying the calibration data during future measurements.
8 . The method of claim 7 , wherein determining calibration data comprises defining the orientation and origin of a reference coordinate system with respect to identifiable features of the biological object, and wherein applying the calibration data during future measurements comprises aligning image data of the biological object to the reference coordinate system.
9 . The method of claim 8 , wherein aligning image data of the biological object to the reference coordinate system comprises rotating and translating the image data with respect to the reference coordinate system.
10 . The method of claim 7 , wherein determining calibration data on the basis of repeated measurements comprises determining a size value of the biological object, and wherein applying the calibration data during measurements comprises scaling image data of the biological object according to the size value.
11 . The method of claim 1 , wherein the hashing method is one of SHA-1, SHA-2, SHA-3, Shake, or a lighter custom hash function.
12 . The method of claim 1 , wherein using n as a session key comprises combining n with a plurality of additional subkeys.
13 . The method of claim 1 , wherein using n as a session key comprises using n to generate an encryption key according to a symmetrical keying algorithm.
14 . The method of claim 1 , wherein measuring the biological object according to the first and second series of challenges comprises taking an electronic image of the biological object with an image capture device and extracting data from the electronic image in accordance with the first and second challenges.
15 . The method of claim 1 , wherein when the first response bitstream matches the second response bitstream occurs when the first response bitstream is within a predetermined Hamming distance from the second response bitstream.