Electronic lock and method
First Claim
1. An electronic lock for dynamic controlled access comprisinga mechanical locking mechanism;
- a clock;
a microprocessor;
a memory storing a hash function and instructions for identifying, based at least partly on a current time, at least two currently valid arguments to be hashed by the hash function to produce a hash, each of the currently valid arguments comprising a currently valid time period that includes the current time, at least two of the currently valid time periods being different time periods, the hash of each currently valid argument returning a currently valid access code, such that at least two respective access codes are valid at the current time; and
a human interface device configured to permit a human user to input an access code and to transmit the input access code to the microprocessor;
the memory further containing programmed instructions for the microprocessor toreceive a signal from the clock indicating the current time,receive the input access code transmitted from the human interface device,compare the input access code to one of the currently valid access codes, the one of the currently valid access codes having been returned by the microprocessor identifying and hashing one of the currently valid arguments, to determine whether the input access code equals the returned valid access code,if the input access code does not equal the returned currently valid access code and the input access code has not yet been compared to all of the currently valid access codes, compare the input access code to another currently valid access code returned by the microprocessor hashing another one of the currently valid arguments, at least until either the input access code is determined to equal one of the currently valid access codes or the input access code has been compared to all of the currently valid access codes and does equal any of the currently valid access codes, andif the input access code is determined to equal one of the currently valid access codes, unlock the mechanical locking mechanism.
1 Assignment
0 Petitions
Accused Products
Abstract
An electronic lock, system and method for dynamic controlled access, without the lock communicating with or connected to a code server, are provided. The lock includes a locking mechanism, a clock, a microprocessor, and a memory storing a hash function and programmed instructions for the microprocessor to perform certain operations. The microprocessor and memory may be comprised in a microcontroller. When an access code is entered into the lock, the lock microcontroller hashes currently valid access start date/duration combinations with lock identifying data to return valid access codes. If the entered access code equals any of the valid access codes, the locking mechanism is opened. The lock identifying data may include data stored by a lock manufacturer and/or data created by a lock owner. Static access codes may also be programmed into the lock if desired. Caching of valid access codes may be used to reduce processing time.
117 Citations
40 Claims
-
1. An electronic lock for dynamic controlled access comprising
a mechanical locking mechanism; -
a clock; a microprocessor; a memory storing a hash function and instructions for identifying, based at least partly on a current time, at least two currently valid arguments to be hashed by the hash function to produce a hash, each of the currently valid arguments comprising a currently valid time period that includes the current time, at least two of the currently valid time periods being different time periods, the hash of each currently valid argument returning a currently valid access code, such that at least two respective access codes are valid at the current time; and a human interface device configured to permit a human user to input an access code and to transmit the input access code to the microprocessor; the memory further containing programmed instructions for the microprocessor to receive a signal from the clock indicating the current time, receive the input access code transmitted from the human interface device, compare the input access code to one of the currently valid access codes, the one of the currently valid access codes having been returned by the microprocessor identifying and hashing one of the currently valid arguments, to determine whether the input access code equals the returned valid access code, if the input access code does not equal the returned currently valid access code and the input access code has not yet been compared to all of the currently valid access codes, compare the input access code to another currently valid access code returned by the microprocessor hashing another one of the currently valid arguments, at least until either the input access code is determined to equal one of the currently valid access codes or the input access code has been compared to all of the currently valid access codes and does equal any of the currently valid access codes, and if the input access code is determined to equal one of the currently valid access codes, unlock the mechanical locking mechanism. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A security system for dynamic controlled access comprising
an electronic lock comprising a mechanical locking mechanism; -
a clock; a microprocessor; a memory storing a hash function and instructions for identifying, based at least partly on a current time, at least two currently valid arguments to be hashed by the hash function, each of the currently valid arguments comprising a time period that includes the current time, the time periods comprised in the currently valid arguments collectively being the currently valid time periods, at least two of the currently valid time periods being different time periods, the hash of each currently valid argument returning a currently valid access code, such that at least two respective access codes are valid at the current time; and a human interface device configured to permit a human user to input an access code and to transmit the input access code to the lock microprocessor; the lock memory further containing programmed instructions for the lock microprocessor to receive a signal from the clock indicating the current time, receive the input access code transmitted from the human interface device, compare the input access code to one of the currently valid access codes, the one of the currently valid access codes having been returned by the microprocessor identifying and hashing one of the currently valid arguments, to determine whether the input access code equals the returned valid access code, if the input access code does not equal the returned currently valid access code and the input access code has not yet been compared to all of the currently valid access codes, compare the input access code to another currently valid access code returned by the microprocessor hashing another one of the currently valid arguments, at least until either the input access code is determined to equal one of the currently valid access codes or the input access code has been compared to all of the currently valid access codes and does not equal any of the currently valid access codes, and if the input access code is determined to equal one of the currently valid access codes, unlock the mechanical locking mechanism; and a code server comprising a microprocessor and a memory storing the same hash function stored in the lock memory, the code server programmed with instructions to prompt a user to enter a prospective time period for which access to the lock is desired, to evaluate the hash function at the argument corresponding to a time period entered by a user via a user device to return a corresponding access code, and to transmit the corresponding access code to the user, the transmitted access code being valid during the entered prospective time period. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of providing dynamic controlled access comprising
providing an electronic lock including a mechanical locking mechanism; -
a clock ; a microprocessor; a memory storing a hash function and instructions for identifying, based at least partly on a current time, at least two currently valid arguments to be hashed by the hash function, each of the currently valid arguments comprising a time period that includes the current time, the time periods comprised in the currently valid arguments collectively being the currently valid time periods, at least two of the currently valid time periods being different time periods, the hash of each currently valid argument returning a currently valid access code, such that at least two respective access codes are valid at the current time; and a human interface device configured to permit a human user to input an access code and to transmit the input access code to the lock microprocessor; the lock memory further containing programmed instructions for the lock microprocessor to receive a signal from the clock indicating the current time, receive the input access code transmitted from the human interface device, compare the input access code to one of the currently valid access codes, the one of the currently valid access codes having been returned by the microprocessor identifying and hashing one of the currently valid arguments, to determine whether the input access code equals the returned valid access code, if the input access code does not equal the returned currently valid access code and the input access code has not yet been compared to all of the currently valid access codes, compare the input access code to another currently valid access code returned by the microprocessor hashing another one of the currently valid arguments, at least until either the input access code is determined to equal one of the currently valid access codes or the input access code has been compared to all of the currently valid access codes and does not equal any of the currently valid access codes, and if the input access code is determined to equal one of the currently valid access codes, unlock the mechanical locking mechanism; and providing to a guest before the start of a prospective access time period a guest access code that will be valid during the prospective access time period. - View Dependent Claims (37)
-
-
38. An electronic lock for dynamic controlled access comprising
a mechanical locking mechanism; -
a clock configured to track the current time; a microprocessor; a memory storing a hash function; and a human interface device configured to permit a human user to input an access code and to transmit the access code input by the human user to the microprocessor; the memory containing programmed instructions for the microprocessor to receive a signal from the clock to determine the current time, receive a signal from the human interface device indicating the input access code, determine a plurality of valid arguments for the hash function, each of the valid arguments including data representing a valid time period, each valid time period including the current time, the evaluation of the hash function at each of the valid arguments returning a valid access code that is a hash of the valid argument, each valid argument and each valid access code remaining valid during the corresponding time period, evaluate the hash function at a first one of the valid arguments to return a first valid access code corresponding to the first valid argument, compare the input access code to the first valid access code to determine whether the input access code equals the first valid access code, for each time the input access code is compared to a valid access code and does not match the valid access code, hash another of the valid arguments to return another valid access code, and compare the input access code to the other valid access code until either the input access code equals one of the valid access codes or the input access code has been compared to all of the valid access codes and does not match any of the valid access codes, and if the input access code is compared to one of the valid access codes and equals the valid access code, unlock the mechanical locking mechanism; the lock further programmed with instructions to each time an argument becomes valid, hash automatically the newly valid argument to return the corresponding valid access code, and cache automatically the corresponding valid access code in a memory, each time a valid access code becomes invalid, delete automatically the newly invalid access code from the memory, each time an input access code is received, compare the input access code to any valid access codes cached in the memory until a match is found between the input access code and one of the valid access codes cached in the memory or the input access code has been compared with all the valid access codes cached in the memory and no match has been found, and if a match is found, unlock the mechanical locking mechanism.
-
-
39. An electronic lock for dynamic controlled access comprising
a mechanical locking mechanism; -
a clock configured to track the current time; a microprocessor; a memory storing a hash function; and a human interface device configured to permit a human user to input an access code and to transmit the access code input by the human user to the microprocessor; the memory containing programmed instructions for the microprocessor to receive a signal from the clock to determine the current time, receive a signal from the human interface device indicating the input access code, determine a plurality of valid arguments for the hash function, each of the valid arguments including data representing a valid time period, each valid time period including the current time, the evaluation of the hash function at each of the valid arguments returning a valid access code that is a hash of the valid argument, each valid argument and each valid access code remaining valid during the corresponding time period, evaluate the hash function at a first one of the valid arguments to return a first valid access code corresponding to the first valid argument, compare the input access code to the first valid access code to determine whether the input access code equals the first valid access code, for each time the input access code is compared to a valid access code and does not match the valid access code, hash another of the valid arguments to return another valid access code, and compare the input access code to the other valid access code until either the input access code equals one of the valid access codes or the input access code has been compared to all of the valid access codes and does not match any of the valid access codes, and if the input access code is compared to one of the valid access codes and equals the valid access code, unlock the mechanical locking mechanism; the lock further programmed with instructions to each time an argument becomes valid, cache automatically the newly valid argument in a memory, each time a cached valid argument becomes invalid, delete automatically the newly invalid argument from the memory, each time a valid argument is hashed to return a valid access code, automatically cache the valid access code in the memory and automatically delete the corresponding valid argument from the memory, each time a valid access code in the memory becomes invalid, automatically delete the newly invalid access code from the memory, each time an input access code is received, compare the input access code to any valid access codes cached in the memory until a match is found between the input access code and one of the valid access codes cached in the memory or until the input access code has been compared with all the cached valid access codes and no match has been found, if a match is found between the input access code and one of the cached valid access codes, unlock the mechanical locking mechanism, if and when the input access code has been compared with all the cached valid access codes, no match has been found, and any valid argument remains cached in the memory, hash each remaining cached valid argument in turn to return a newly calculated valid access code and compare the input access code to each newly calculated valid access code until a match is found or until no valid arguments remain in the memory and no match has been found, and if a match is found between the input access code and one of the newly calculated valid access codes, unlock the mechanical locking mechanism.
-
-
40. A security system for dynamic controlled access comprising
an electronic lock comprising a mechanical locking mechanism; -
a clock configured to track the current time; a microprocessor; a memory storing a hash function; and a human interface device configured to permit a human user to input an access code and to transmit the access code input by the human user to the lock microprocessor; the lock memory containing programmed instructions for the microprocessor to receive a signal from the clock to determine the current time, receive a signal from the human interface device indicating the input access code, determine a plurality of valid arguments for the hash function, each of the valid arguments including data representing a time period that includes the current time, the evaluation of the hash function at each of the valid arguments returning a valid access code that is a hash of the valid argument, each valid argument and each valid access code remaining valid during the corresponding time period, evaluate the hash function at a first one of the valid arguments to return a first valid access code corresponding to the first valid argument, compare the input access code to the first valid access code to determine whether the input access code equals the first valid access code, for each time the input access code is compared to a valid access code and does not match the valid access code, hash another of the valid arguments to return another valid access code, and compare the input access code to the other valid access code until either the input access code equals one of the valid access codes or the input access code has been compared to all of the valid access codes and does not match any of the valid access codes, and if the input access code is compared to one of the valid access codes and equals the valid access code, unlock the mechanical locking mechanism; and a code server comprising a microprocessor and a memory storing the same hash function stored in the lock memory, the code server programmed with instructions to prompt a user to enter a prospective time period for which access to the lock is desired, to evaluate the hash function at the argument corresponding to a time period entered by a user via a user device to return a corresponding access code, and to transmit the corresponding access code to the user, the transmitted access code being valid during the entered time period; the code server memory storing a plurality of hash functions and their respective correspondence to a plurality of electronic locks including said electronic lock and other electronic locks, and the code server further programmed with instructions to prompt a user to enter information identifying a lock, and, upon receiving information identifying one of the plurality of electronic locks, to determine the hash function corresponding to the identified lock, and to evaluate the hash function corresponding to the identified lock at the argument corresponding to the entered time period to return an access code valid for the identified lock during the entered time period.
-
Specification